stringgrid wyszukiwanie za pomoca petli nie ktorych wersow

0

Witam,

Zaznaczam ze nie jestem wybitnym programista i prosze o odpowiedzi po ludzku :)

Napisalem taki kod:

var
i:integer;

begin

 with StringGrid2 do
  begin
  for i :- 1 to RowCount - 1 do
   begin
     if DateToStr(Date) = Cells[4,i] then
      Label17.Caption:='Dzisiejszy utarg wynosi: '+Cells[7,i];
   end;
  end;
end;

Cells[4,i] - to rubryka w ktorej umieszczone sa daty sprzedazy produktow
Cells[7,i] - to rubryka z kwotami za jakie zostaly sprzedane

Chce za pomoca labela17 wyswietlic dzienny utarg, a wiec musze wyszukac po dacie produkty ktore zostaly sprzedane np 2009-10-18 i dodac ich ceny , a wiec wartosci Cells[7,i].
Problem polega na tym ze nie wiem jak oznaczyc , nie wiem co mam do siebie dodawac gdyz Cells[7,i] pokazuje tylko jeden - ostatni sprzedany wtedy produkt , a wiec ten co jest na samym koncu :(

0

Zadeklaruj zmienną suma, w pętli dodawaj poszczególne wartości do sumy tj. suma:=suma+Cells[7,i]; Caption ustawiaj dopiero po wyjściu z pętli.

0

napisalem taki kod:

var
i,suma,celki : integer
ssuma : string;

begin

 with StringGrid2 do
 begin
   
    for i := 1 to RowCount - 1 do
    begin
      celki := StrToInt(Cells[4,i]);
      suma := suma + celki;
    end;
   ssuma := IntToStr(suma);
   if DateToStr(Date) = Cells[4,i] then
   Label17.Caption:='Dzisiejszy utarg wynosi: '+ssuma;
 end;
end;

kod sie kompiluje , ale gdy klikne na button z tym kodem wywala blad "is not valid integer value" - zaznaczam ze w tabeli Cells[7,i] sa wylacznie cyfry , nie ma zadnej litery itp.

Skad wiec on bierze to slowo, kod zle napisany ?

0

tzn tutaj jest 7 a nie 4
celki := StrToInt(Cells[4,i]);

ale dalej nie dziala.

0

Źle to napisałeś, teraz Twój kod leci po wszystkich dniach... powinieneś instrukcję IF która sprawdza dzień wrzucić do pętli FOR i sumować tylko te wartości z prawidłowym dniem. Poza tym czy jako utarg nie masz podanej wartości z przecinkiem? Jeżeli tak to się nie dziw, że zwraca taki komunikat... liczba zmiennoprzecinkowa to nie jest liczba całkowita (integer).

0

nie , nie ma tam zadnych przecinkow , same calkowite.

0

faktycznie warunek byl w zlym miejscu , dziala , dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1