Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid-Feld bearbeiten und Feld mit Daten füllen (https://www.delphipraxis.net/64082-dbgrid-feld-bearbeiten-und-feld-mit-daten-fuellen.html)

marabu 27. Feb 2006 15:07

Re: DBGrid-Feld bearbeiten und Feld mit Daten füllen
 
Dein Bild zeigt leider Tabellen und keine Entitäten. Wenn die Beziehung zwischen Komponenten und Artikeln 1:n ist, dann hast du das physische Datenmodell falsch implementiert. In dem Fall müsste der Komponenten-Schlüssel als Fremdschlüssel in der Tabelle Artikel auftauchen.

Vielleicht stimmen aber auch die Tabellen und du hast nur die Beziehung falsch angegeben - sie müsste dann n:1 sein. Kannst du das noch aufklären?

marabu

DADAMAN 27. Feb 2006 15:32

Re: DBGrid-Feld bearbeiten und Feld mit Daten füllen
 
War natürlich falschrum, Sorry. Ein Artikel kann natürlich in mehreren Protokollen vorkommen. :wink:

marabu 27. Feb 2006 16:18

Re: DBGrid-Feld bearbeiten und Feld mit Daten füllen
 
Zuerst zu deinem Beziehungsdatentyp KOMPONENTEN - wenn BEZEICHNUNG darin die Bezeichnung des Artikels ist, dann ist sie redundant und sollte dort nicht gespeichert werden. Da du dein Grid mit einer Query füttern möchtest, diese Query update-fähig sein soll und der Benutzer die Artikelbezeichnung in der Anzeige sehen soll, sobald er eine Artikelnummer eingetragen hat, deklarierst du BEZEICHNUNG als berechnetes Feld.

Mit einem Doppelklick auf die Query-Komponente kannst du dabei auch das Feld KOMPONENTEN_ID unsichtbar machen. Sichtbar sind dann nur die Felder PROTOKOLL_ID, ARTIKEL und BEZEICHNUNG - wobei BEZEICHNUNG nicht vom Benutzer beschreibbar ist. Damit die Bezeichnung passend zur Artikelnummer angezeigt wird, musst du für das Ereignis OnCalcFields() etwas Code (drei Zeilen) schreiben. Wenn der Primärschlüssel nicht automatisch von der Datenbank beigesteuert wird, dann kannst du das im Ereignis OnBeforePost() erledigen.

Ein DBGrid ist für diese Aufgabe nicht unbedingt ideal - immerhin werden nur Schlüssel eingegeben und diese müssen auch noch aus einer definierten Vorratsmenge stammen. Aber Hauptsache es funktioniert erstmal.

marabu

DADAMAN 27. Feb 2006 16:32

Re: DBGrid-Feld bearbeiten und Feld mit Daten füllen
 
Super, ich glaube du hast mich verstanden. :)

Werde das morgen ausprobieren, so fern eine Sicherung meiner Datenbank dann endlich zurückkopiert wurde.
Falls ich dann noch Fragen hab, meld ich mich nochmal.

Hast mir auf jeden Fall schon viel weiter geholfen. Danke. :thumb:

Und was das DBGrid angeht. Ja, ich würde das auch lieber mit anderen Komponenten lösen, aber damit dieses Programm genauso aussieht und funktioniert wie die anderen, und es soweit wie möglich Code-frei bezüglich Datenbanksachen ausfallen soll, muss ich leider darauf zurückgreifen.

Nochmal danke. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 2 von 2     12   

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