AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?!
Thema durchsuchen
Ansicht
Themen-Optionen

CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?!

Ein Thema von lorrey · begonnen am 11. Feb 2004 · letzter Beitrag vom 11. Feb 2004
Antwort Antwort
lorrey

Registriert seit: 29. Jul 2003
42 Beiträge
 
Delphi 7 Professional
 
#1

CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?!

  Alt 11. Feb 2004, 12:18
Hallo!

Ich hab folg. Problem:

In meiner Anwendung ist ein DBGrid, das mit offenen Rechnungen von verschiedenen Projekten gefüllt wird.
Aus diesen Sätzen wird die Summe aller offenen Rechnungen berechnet, indem ich im Grid und im Query ein verstecktes Feld hinzugefügt habe, was vom Typ fkCalculated ist.

Somit hab ich die Berechung der Gesamtsumme in CalcFields eingebaut - siehe Code:

Code:
procedure TRechnung_UebersichtDlg.ReUebersichtQryCalcFields(
  DataSet: TDataSet);
begin

   dOverallSum := dOverallSum + ReUebersichtQry.fieldbyname('dAmountSum').asFloat;

end;
Nix spannendes soweit... dies funktioniert auch prima!

ABER:

Er berechnet nur die Sätze die im Grid sichtbar sind - d.h. wenn viele Sätze drin sind und man nach unten scrollen kann,
nimmt er nur die, die wirklich auf dem Screen (im Grid) sichtbar sind und die die quasi auf der nächste "Seite" sind lässt er weg !!!

Die Datenbank kann ich leider nicht rechnen lassen, da dort noch keine sub selects möglich sind ...!
Würde auch allein schon aus Performance Gründen gerne mit der schon vorhandenen Datenmenge im Grid rechnen.

Hab ihr so was schon mal gehabt?!?

Wie kann man das lösen?


Gruss
lorrey
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#2

Re: CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?

  Alt 11. Feb 2004, 13:24
Hallo lorrey

Ich bin mir nicht sicher aber ich habe sowas auch schon gemacht, dann habe ich aber die Berechnung in OnCalcFields -Ereignis in der Query gemacht aber es könnte auch sein das ein FetchAll in der Query dir hilft.

also sicher bin ich nicht aber teste mal was ich geschrieben habe

MFG
Cobra
  Mit Zitat antworten Zitat
lorrey

Registriert seit: 29. Jul 2003
42 Beiträge
 
Delphi 7 Professional
 
#3

Re: CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?

  Alt 11. Feb 2004, 15:21
Zitat von Cobra:
Hallo lorrey

Ich bin mir nicht sicher aber ich habe sowas auch schon gemacht, dann habe ich aber die Berechnung in OnCalcFields -Ereignis in der Query gemacht aber es könnte auch sein das ein FetchAll in der Query dir hilft.

also sicher bin ich nicht aber teste mal was ich geschrieben habe

Hi Cobra!

Nein leider besteht das Porblem immer noch, dass er nur die sichtbaren im Grid nimmt
Auch FetchAll bringt da nichts

Nebenbei OnCalcFields heist das Event, die Procedure dazu ist CalcFields - also das jeden wir vom gleichen...

Greetz!
  Mit Zitat antworten Zitat
Cobra

Registriert seit: 29. Okt 2002
55 Beiträge
 
#4

Re: CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?

  Alt 11. Feb 2004, 15:58
Zitat von lorrey:

Nebenbei OnCalcFields heist das Event, die Procedure dazu ist CalcFields - also das jeden wir vom gleichen...

Greetz!
Jetzt hab ichs auch gesehen

Habe mir mal meinen Code angeschaut und musste feststellen ich im CalcFields nur Strings anders zusammensetze.
Sorry bin wohl keine große hilfe.


MFG
Cobra
  Mit Zitat antworten Zitat
lorrey

Registriert seit: 29. Jul 2003
42 Beiträge
 
Delphi 7 Professional
 
#5

Re: CalcFields nur bei sichtbaren Feldern im DBGrid ... ?!?

  Alt 11. Feb 2004, 16:21
Jetzt hab ich ne andere Lösung - und zwar einfach mit einer Schleife!
Ist zwar nicht das beste von der Performance her, aber so nimmt er wenigstens alle Sätze!

Anbei der Code:

Code:
   try
      ReUebersichtDBG.DataSource.DataSet.First;

      while ( not ReUebersichtDBG.DataSource.DataSet.EOF ) do
      begin
         CalcOverallSum;
         ReUebersichtDBG.DataSource.DataSet.Next;
      end;

   finally
       ReUebersichtDBG.DataSource.DataSet.First;
   end;

Danke für die Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz