Einzelnen Beitrag anzeigen

jmich

Registriert seit: 24. Dez 2007
40 Beiträge
 
#9

AW: In Stringgrid mit Currency - Werten rechnen

  Alt 20. Jan 2022, 22:31
Das Stringgrid lade ich aus einer SQLite3 Datenbank.
hier ein Ausschnitt aus dem Code:

Delphi-Quellcode:
   sgrid_rechnungsdetail.RowCount := 2;
   for l := sgrid_rechnungsdetail.FixedRows to sgrid_rechnungsdetail.RowCount - 1 do
        sgrid_rechnungsdetail.Rows[l].Clear();

  LiteConnection_rechng.Database := ExtractFilePath(Application.ExeName)+'Rechnungen/'+sg_rechng_uebersicht.Cells[2,sg_rechng_uebersicht.Row]+'.db';
  LiteConnection_rechng.Connected := True;
  try
   liteQuery_rechng.SQL.Text := 'SELECT * from data WHERE Position ';
        liteQuery_rechng.Open;

    while not liteQuery_rechng.Eof do
       begin
         for n := sgrid_rechnungsdetail.FixedRows to sgrid_rechnungsdetail.RowCount - 1 do
         i := n;
          sgrid_rechnungsdetail.Cells[2,i]:= liteQuery_rechng.FieldByName('Position').AsString;
          sgrid_rechnungsdetail.Cells[3,i]:= liteQuery_rechng.FieldByName('LVtext').AsString;
          sgrid_rechnungsdetail.Cells[4,i]:= liteQuery_rechng.FieldByName('Anzahl').AsString;
          sgrid_rechnungsdetail.Cells[5,i]:= liteQuery_rechng.FieldByName('Einheit').AsString;
          sgrid_rechnungsdetail.Cells[6,i]:= CurrToStrF(liteQuery_rechng.FieldByName('Epreis').AsCurrency,ffCurrency,2);
          sgrid_rechnungsdetail.Cells[7,i]:= CurrToStrF(liteQuery_rechng.FieldByName('Gesamt').AsCurrency,ffCurrency,2);

         liteQuery_rechng.Next;
         sgrid_rechnungsdetail.RowCount := sgrid_rechnungsdetail.RowCount +1;
       end;
   finally
       sgrid_rechnungsdetail.RowCount := sgrid_rechnungsdetail.RowCount -1;
  end;


 // Gesamtsumme

     try
        liteQuery_rechng.SQL.Text := ' SELECT SUM(Gesamt) As Gesamt from data WHERE Position ';
        liteQuery_rechng.Open;
     finally
       lbl_rechngd_brutto.Caption := CurrToStrF(liteQuery_rechng.FieldByName('Gesamt').AsCurrency,ffCurrency,2);
     end;


   // EPreis Summe
     try
       liteQuery_rechng.SQL.Text := ' SELECT SUM(Epreis) As Epreis from data WHERE Position ';
       liteQuery_rechng.Open;
     finally
       lbl_rechngd_netto.Caption := CurrToStrF(liteQuery_rechng.FieldByName('Epreis').AsCurrency,ffCurrency,2);
     end;
Was ich aber gern zusätzlich möchte, ist die Berechnung von dem im Stringgrid geladenen Werten
unabhängig der Summenberechnung über die Query-SQL-Text. Die Werte aus SQL-Datenbank werden im Stringgrid
im Currency-Format angezeigt (z.B. 100,00 €).
Wie kann ich trotzdem mit den Werten im Stringgrid rechnen.
Oder soll ich ganz auf Currency verzichten und nur in Float Farmat rechnen?

Gruß Jmich
  Mit Zitat antworten Zitat