AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid eine Spalte hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid eine Spalte hinzufügen

Ein Thema von barnti · begonnen am 17. Mär 2004 · letzter Beitrag vom 17. Mär 2004
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

DBGrid eine Spalte hinzufügen

  Alt 17. Mär 2004, 11:07
Hallo,

ich erzeuge zur Laufzeit alle Spalten eines DBGrids, indem ich über Query.FieldCount iteriere. So erhalte ich alle Spalten, die ich durch die Abfrage der Query in der DB abfrage.

Zusätzlich möchte ich jetzt nachträglich dem Grid eine Spalte hinzufügen. Dazu schaue ich in die DB und ermittle welches der Felder ein Fremdschlüssel ist. Für dieses möchte ich dann eine zusätzliche Spalte erzeugen und in der entsprechenden Tabelle den Fremdschlüssel 'nachschlagen' und in der neuen Spalte eintragen.

Ist das Möglich? Kann ich zu den persistent erzeugten Feldern des Grids eine weitere Spalte hinzufügen? Eine 'normale' Spalte funktioniert ja:

Delphi-Quellcode:
var Column: TColumn;
...
  Column:= DBGrid1.Columns.Add;
  Column.FieldName:= 'Kundenname';
Das Problem ist nun die neu erzeugte Spalte mit Werten zu versehen. So möchte ich alle Rechnungen im Grid darstellen. Statt der Kundennummer soll ein weiteres Feld 'Kundenname' hinzugefügt werden, welches anhand der 'Kundennummer' den 'Kundennamen' bereitstellt.

Ich möchte die Abfrage nicht in einem SQL-Statement unterbringen. Ich möchte ein zusätzliches Feld hinzufügen, welches nicht in der DB existiert.
Gruß,

Barnti
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#2

Re: DBGrid eine Spalte hinzufügen

  Alt 17. Mär 2004, 17:09
hallo barnti!

entweder denkst du zu kompliziert oder ich zu einfach
mal zum mitschreiben:

- du erstellst eine abfrage mit einer query
- anhand der ausgewählten felder, die von abfrage zu abfrage variieren können,
ermittelst du die benötigte spaltenanzahl zur darstellung des ergebnisses im dbgrid

wieso ermittelst du erst hinterer, ob du einen fremdschlüssel ausgewählt hast?
nachdem die abfrage beendet ist, macht das doch nicht mehr viel sinn?

ich würde gleich in der abfrage den kundennamen und nicht die kunden_id einbinden,
somit wird gleich die richtige feldanzahl zur darstellung ermittelt und niemand braucht sich
mit persistenten feldern abquälen.

oder hab ich dabei ein wichtiges detail übersehen?

mfg, stefan
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: DBGrid eine Spalte hinzufügen

  Alt 17. Mär 2004, 19:30
Hallo,

Zitat:
entweder denkst du zu kompliziert oder ich zu einfach
...das kann ich Dir so nicht beantworten. Ich versuche es mal zu erklären:

Das mit der Abfrage ist prinzipiell gut. Allerdings möchte ich alle Darstellungen dynamisch aus der DB generieren. Dazu gehört dann auch die Abfrage der Frendschlüssel mit den zugehörigen 'ListField' für das Lookup. Ausserdem brauche ich in der Darstellung im Grid die Möglichkeit den Fremdschlüssel über ein Lookup auswählen zu können. Das geht mit einer einfachen Abfrage und der Darstellung im Grid nicht.
Vielleicht kannst Du mir jetzt sagen, ob ich zu kompliziert denke!? Ich bin für alle Wege offen und freue mich über jeden Verbesserungsvorschlag.

Eine Frage hätte ich da: Gibt es überhaupt die Möglichkeit neben den Feldern des zugrundeliegenden Datasets andere Columns hinzuzufügen, für die kein Feld existiert? Ich glaube, dass habe ich noch nicht richtig verstanden...

Danke für Dein Interesse. Freue mich auf weitere Anregungen!
Gruß,

Barnti
  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 08:49 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