Witam,
mam pewien problem z ADOQuery i dbgrid w Delphi i nie mogę sobie z nim poradzić. Przeszukałem neta ale nie znalazłem odpowiedzi więc chciałbym Was zapytać.
Zrobiłem sobie program, który wczytuje przez ADOQuery do dbgrida pewne dane. Dane ładnie się wczytują i dbgrid pokazuje je poprawnie. Dalej chciałbym dane z jednej kolumny zsumowac jeśli warunek z innej jest spełniony i tu pojawia się właśnie problem. Dane dobrze się sumują (porównane z raportem z bazy) ale nie ma danych w dbgrid - dbgrid jest pusty. Jak zrobić żeby warunki zliczały się i dbgrid był z danymi? Może mi ktoś pomóc z tym problemem bo juz nie mogę sobie poradzić?
form1.ADOQueryCZ.Active := True;
While not form1.ADOQueryCZ.Eof do Begin //Kończy działanie jeśli wszystkie wiersze zostały odczytane
//form1.ADOQueryCZ.Fields.Fields[0].Value;
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'OM' then
begin
nowe:= nowe + form1.ADOQueryCZ.Fields.Fields[0].Value;
end else
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'OE' then
begin
odrzuty:= odrzuty + form1.ADOQueryCZ.Fields.Fields[0].Value;
end else
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'OO' then
begin
nierozpoznane:= nierozpoznane + form1.ADOQueryCZ.Fields.Fields[0].Value;
end else
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'CO' then
begin
skartonowane:= skartonowane + form1.ADOQueryCZ.Fields.Fields[0].Value;
end else
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'RI' then
begin
doDruku:= doDruku + form1.ADOQueryCZ.Fields.Fields[0].Value;
end else
if form1.ADOQueryCZ.Fields.Fields[5].Value = 'OI' then
begin
doSpakownia:= doSpakownia + form1.ADOQueryCZ.Fields.Fields[0].Value;
end;
form1.ADOQueryCZ.Next; //Skocz do następnego "wiersza" - pozycji w bazie
End;
form1.Label1.Caption := 'Nowe '+ IntToStr(nowe);
form1.Label3.Caption := 'Odrzuty '+ IntToStr(odrzuty);
form1.Label2.Caption := 'Nierozpoznane '+ IntToStr(nierozpoznane);
form1.Label4.Caption := 'Skartonowane '+ IntToStr(skartonowane);
form1.Label5.Caption := 'Do druku '+ IntToStr(doDruku);
form1.Label6.Caption := 'Do spakowania '+ IntToStr(doSpakownia);
Form1.ADOQueryCZ.Active := False;