Following code works fine but don't know why it omits the first record. However, if remove this line ListViewMain.Items.Clear; on the second call it displays correctly all records. i am using SQLite.
procedure TFMain.BtnUpCommingClick(Sender: TObject);
var t: string ;
ListItem: TListViewItem;
FullName: TField;
SimNumber: TField;
begin
ChangeTabAction2.ExecuteTarget(Self);
t := DateToStr(Tomorrow);
FDQueryUpComming.SQL.Text:='Select * from TCustomer Where PackageDate = :PackageDate';
FDQueryUpComming.ParamByName('PackageDate').AsString := t;
FDQueryUpComming.Open;
if FDQueryUpComming.RecordCount = 0 then Exit;
FullName:= FDQueryUpComming.FieldByName('CName');
SimNumber:= FDQueryUpComming.FieldByName('CSim');
FDQueryUpComming.First; // move to the first record
ListViewMain.Items.Clear;
ListViewMain.BeginUpdate;
try
while(not FDQueryUpComming.Eof)do begin
ListItem:= ListViewMain.Items.Add;
ListItem.Text:= FullName.AsString;
ListItem.Detail:= SimNumber.AsString;
FDQueryUpComming.Next;
end;
finally
ListViewMain.EndUpdate;
end;
end;