![]() |
Zellen im DBGrid zur Laufzeit 'errechnen'
hallo,
ich suche nach einem ansatz für folgendes problem: ich habe ein DBGrid welches artikel für einen shop auflistet. zwei der felder enthalten den einkaufspreis und den verkaufspreis. die differenz würde ich gerne in einem weiteren feld zu jedem artikel darstellen, ich möchte dafür aber nicht extra ein feld in der Datenbank 'verschwenden' sondern lediglich eine neue spalte aus den vorhandenen werten errechnen lassen... leider sind alle meine versuche fehlgeschlagen und ich habe keine idee mehr wie ich die felder der jeweils aktuellen zeile zur laufzeit ansprechen kann... bin für jeden tipp dankbar! gruß mgalli |
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
Hi,
füge in deine TTabel-Komponente deiner Anwendung auf die dein Grid zugreift ein berechnetes Feld ein (rechte Maustaste -> Feld hinzufügen). Im OnCalculated - Ereignis deiner Tabelle kannst du dann die Berechnung durchführen. Schau in der Hilfe bei der Tabellenkomponente nach. Nutzt du eine TQuery, dann kannst du das über die SQL lösen. Gruß oki |
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
Hai mgallie,
willkommen in der Delphi-PRAXIS. Was für eine Datenbank verwendest Du denn? |
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
hallo und schönen dank für die schnellen antworten!
zur info: ich greife über ODBC auf eine MySQL-Datenbank zu und das DBGrid fülle ich über eine TQuery-Komponente. Zitat:
wenn es sich nur auf ein feld(z.b. 'xy') beziehen würde könnte ich es doch im OnDrawColumnCell-Ereignis des DBGrid wie folgt ansprechen:
Code:
aber wie spreche ich die datenfelder eines datensatzes "zellenübergreifend" an?
IF (Column.Fieldname = 'xy') THEN Column.Field.Text := 'beispiel';
danke, mgalli |
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
Hallo,
am einfachsten gehts sicher in SQL:
SQL-Code:
Select einkaufspreis, verkaufspreis, verkaufspreis - einkaufspreis as differenz
From Tabelle |
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
Hai mgalli,
Du könntest Doch z.B.:
SQL-Code:
machen. Jetzt kannst Du das Feld "gewinn" ganz normal im DB-Grid anzeigen.
SELECT * , (vk-ek) As gewinn FROM artikeltabelle
|
Re: Zellen im DBGrid zur Laufzeit 'errechnen'
schönen dank euch dreien!
ich habe mich total auf das DBGrid versteift anstatt einfach rechnen zu lassen bevor die daten da drin landen... brauchte nur etwas zeit um das zu merken, funktioniert alles wunderbar... jetzt habe ich mir allerdings so lange den schädel über den zugriff auf die einzelnen zellen im DBGrid zerbrochen, dass es mich ehrlich gesagt immernoch interessiert... :gruebel: habt ihr dazu vielleicht noch einen tipp? danke! mgalli |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz