AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zellen im DBGrid zur Laufzeit 'errechnen'
Thema durchsuchen
Ansicht
Themen-Optionen

Zellen im DBGrid zur Laufzeit 'errechnen'

Ein Thema von mgalli · begonnen am 21. Nov 2003 · letzter Beitrag vom 21. Nov 2003
Antwort Antwort
mgalli

Registriert seit: 16. Sep 2003
10 Beiträge
 
Delphi 7 Enterprise
 
#1

Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 13:58
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
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 14:10
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
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 14:12
Hai mgallie,

willkommen in der Delphi-PRAXIS.

Was für eine Datenbank verwendest Du denn?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
mgalli

Registriert seit: 16. Sep 2003
10 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 16:40
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:
Nutzt du eine TQuery, dann kannst du das über die SQL lösen.
abfragen per sql und ausrechnen ist kein problem, glaub' ich, aber wie greife ich auf die jeweiligen datenfelder im DBGrid zu?

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:
IF (Column.Fieldname = 'xy') THEN Column.Field.Text := 'beispiel';
aber wie spreche ich die datenfelder eines datensatzes "zellenübergreifend" an?

danke,

mgalli
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 16:48
Hallo,

am einfachsten gehts sicher in SQL:
SQL-Code:
Select einkaufspreis, verkaufspreis, verkaufspreis - einkaufspreis as differenz
  From Tabelle
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 16:49
Hai mgalli,

Du könntest Doch z.B.:

SELECT * , (vk-ek) As gewinn FROM artikeltabelle machen. Jetzt kannst Du das Feld "gewinn" ganz normal im DB-Grid anzeigen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
mgalli

Registriert seit: 16. Sep 2003
10 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zellen im DBGrid zur Laufzeit 'errechnen'

  Alt 21. Nov 2003, 17:12
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...

habt ihr dazu vielleicht noch einen tipp?

danke!

mgalli
  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 12:13 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