Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Suche geeignete Komponente ? (https://www.delphipraxis.net/69607-suche-geeignete-komponente.html)

Vader 17. Mai 2006 18:27

Datenbank: Paradox • Version: 7 • Zugriff über: TQuery

Suche geeignete Komponente ?
 
hallo,

ich hab bei einer datenbank gesehen das bei einen eingabefeld schon vorgegebene sachen drinnen stehen
wie zb. title des eingabefeldes kohlenhydrate und dann kann man verschiedene schon auswählen ohne das man sie selber
eingeben muß wie zb. brot ,nudeln,reis usw...

welche komponente brauche ich dazu und wie weise ich die einzelnen sachen zu ?

mfg vader

mkinzler 17. Mai 2006 18:30

Re: Suche geeignete Komponente ?
 
Meinst du de LookupComboBox oder ein Edit mit Autocompletion?

Vader 17. Mai 2006 18:56

Re: Suche geeignete Komponente ?
 
hallo,


ja LookupComboBox , wie weise ich der die sachen bzw wörter zu ?
mfg vader

mkinzler 17. Mai 2006 19:04

Re: Suche geeignete Komponente ?
 
Kommen die Daten aus einer Datenbank? Mit der Eigenschaft .ListSource kannst du die Komponente mit einem DataSet (Table, Query, usw.) verbinden. mit .ListField kannst du das Feld des DataSets auswählen, welches in der Liste angezeigt wird.

Vader 17. Mai 2006 19:15

Re: Suche geeignete Komponente ?
 
habe ich gemacht, aber es zeigt mir in der LookupComboBox nichts an ?
mfg vader

mkinzler 17. Mai 2006 19:17

Re: Suche geeignete Komponente ?
 
In der Auswahl (Edit) oder der Liste?

Vader 17. Mai 2006 19:23

Re: Suche geeignete Komponente ?
 
In der Auswahl (Edit) zeigt er mir nichts
mfg vader

mkinzler 17. Mai 2006 19:45

Re: Suche geeignete Komponente ?
 
Hast du auch .DataSource und .DataField gesetzt?

Vader 17. Mai 2006 20:39

Re: Suche geeignete Komponente ?
 
ja, und bei laufzeit des programmes werden die daten nicht im LookupComboBox angezeigt ?
mfg vader

Vader 17. Mai 2006 20:49

Re: Suche geeignete Komponente ?
 
jetzt hat's gefunzt, aber das wollte ich ja gar nicht, ich habe eine datenbank Bestellungen und ein dbedit
wo
ich bei einer bestellung immer händisch eintragen muß wer das in der firma bestellt zb. lager oder einkauf oder
instandhaltung usw, da möchte ich im dbedit oder welche komponente das kann gleich den auswählen den ich brauche, aber der muß dann im dbgrid im datensatz
angezeigt werden !
mfg vader

Vader 18. Mai 2006 17:10

Re: Suche geeignete Komponente ?
 
nein , das war es nicht was ich wollte also keine LookupComboBox !!!!

ich habe eine datenbank die Bestellungen heißt und ein dbedit
wo
ich bei einer bestellung immer händisch eintragen muß wer das in der firma bestellt zb. lager oder einkauf oder
instandhaltung usw, da möchte ich im dbedit oder welche komponente das kann gleich den auswählen den ich brauche, aber der muß dann im dbgrid im datensatz
angezeigt werden !
mfg vader

Vader 19. Mai 2006 06:19

Re: Suche geeignete Komponente ?
 
kann mir da keiner weiter helfen ?
mfg vader

marabu 19. Mai 2006 07:09

Re: Suche geeignete Komponente ?
 
Hallo Vader,

ich fürchte, dass du dich mit der Gestaltung der Benutzerschnittstelle beschäftigst ohne vorher ein Datenmodell entwerfen zu haben. Zuerst musst du festlegen, welche Informationen (Attribute) du zu jeder Entität speichern willst:

BESTELLUNG: ZEITPUNKT, BESTELLER, LIEFERANT, WARE, MENGE

Aus der Entität (Bestellung, Singular) machst du dann eine Tabelle (BESTELLUNGEN, Plural). Dabei wird ein Primärschlüssel (ID, Autoincrement) hinzugefügt und für jedes Attribut geprüft, ob es selbst wieder eine Entität sein könnte (LIEFERANT, GEGENSTAND) oder ob ein fester Wertebereich existiert (BESTELLER: Lager, Einkauf). In solchen Fällen werden neue Entitäten (mit Attributen) und Pseudo-Entitäten (ohne Attribute, nur für Lookup) gebildet, aus denen du dann auf gleiche Weise Tabellen ableitest:

BESTELLUNGEN: ZEITPUNKT, BESTELLER_ID, WAREN_ID, MENGE
BESTELLER: ID, NAME
WAREN: ID, BEZEICHNUNG, LIEFERANTEN_ID, LIEFERZEIT
LIEFERANTEN: ID, NAME, TELEFON

Wenn du dann die Bestellungen in einem DBGrid erfassen willst, dann unterlegst du einfach die Tabelle BESTELLUNGEN mit statischen Feldern (Feld-Editor), machst alle Schlüsselfelder unsichtbar und fügst für die Fremdschlüssel (BESTELLER_ID, WAREN_ID) entsprechende Lookup-Felder (BESTELLER, WARE) hinzu. Danach kannst du dann im Feld BESTELLER aus dem Wertevorrat der Tabelle BESTELLER anhand von BESTELLER.NAME den korrekten BESTELLER.ID in das Feld BESTELLUNGEN.BESTELLER_ID eintragen.

Grüße vom marabu


PS: Wenn du ohne Grid arbeiten möchtest, dann musst du eine DBLookupComboBox anstelle deines DBEdit verwenden.

Vader 19. Mai 2006 08:48

Re: Suche geeignete Komponente ?
 
danke für die information marabu, werd das einmal probieren !

Vader 19. Mai 2006 11:50

Re: Suche geeignete Komponente ?
 
hallo marabu,

habe gleich eine frage: ain deinem beispiel müßte ich jetzt 4 tabellen anlegen

BESTELLUNGEN
BESTELLER
WAREN
LIEFERANTEN

ist das richtig ?
mfg vader

marabu 19. Mai 2006 11:56

Re: Suche geeignete Komponente ?
 
Ja, aber mein Beispiel ist synthetisch. Kannst du es nachvollziehen, dann kannst du es auch an deine Bedürfnisse anpassen.

marabu

Vader 19. Mai 2006 12:08

Re: Suche geeignete Komponente ?
 
mkinzler schreibt

Zitat:

Meinst du de LookupComboBox oder ein Edit mit Autocompletion?
wie geht das mit Edit mit Autocompletion, wahrscheinlich würde das für meine ganz einfache
datenbank genügen, ich brauche ja nur das detail im moment, und keine verknüpfungen zwischen
tabellen !!
mfg vader

mkinzler 19. Mai 2006 12:11

Re: Suche geeignete Komponente ?
 
Ja, wobei die Tabelle BESTELLUNGEN, Fremdschlüssel auf die anderen Tabellen besitzt

mkinzler 19. Mai 2006 12:15

Re: Suche geeignete Komponente ?
 
Zitat:

Zitat von Vader
mkinzler schreibt

Zitat:

Meinst du de LookupComboBox oder ein Edit mit Autocompletion?
wie geht das mit Edit mit Autocompletion, wahrscheinlich würde das für meine ganz einfache
datenbank genügen, ich brauche ja nur das detail im moment, und keine verknüpfungen zwischen
tabellen !!
mfg vader

Ich würde trotzdem, alleine wegen des Lerneffekts zur vollständigen Lösung raten.

Vader 19. Mai 2006 15:26

Re: Suche geeignete Komponente ?
 
hallo,

ok dann arbeite ich mal durch und hänge schon, welchen typ muß ich ID geben, alpha oder numerisch usw... ?
mfg vader

marabu 19. Mai 2006 15:32

Re: Suche geeignete Komponente ?
 
Zitat:

Zitat von Vader
welchen typ muß ich ID geben, alpha oder numerisch usw... ?

Zitat:

Zitat von marabu
Dabei wird ein Primärschlüssel (ID, Autoincrement) hinzugefügt

Im Database Desktop trägst du diesen Typ mit einem + in die Typspalte ein.

marabu

Vader 19. Mai 2006 16:35

Re: Suche geeignete Komponente ?
 
ich finde nur den typ + - ( Zähler ) an bei mir das meinst du ?
mfg vader

mkinzler 19. Mai 2006 16:39

Re: Suche geeignete Komponente ?
 
Zitat:

ich finde nur den typ + - ( Zähler ) an bei mir das meinst du ?
Ja, den meint er. Dieser Typ bewirkst das automatisch hochgezählt wird.

Vader 19. Mai 2006 16:54

Re: Suche geeignete Komponente ?
 
danke,
mfg vader

Vader 19. Mai 2006 18:48

Re: Suche geeignete Komponente ?
 
hallo,

marubu schreibt
Zitat:

BESTELLUNGEN: ZEITPUNKT, BESTELLER_ID, WAREN_ID, MENGE
welchen typ nehme ich bei "BESTELLER_ID" auch + ?
mfg vader

mkinzler 19. Mai 2006 18:50

Re: Suche geeignete Komponente ?
 
Es bietet sich an für alle ID-Spalten aller Tabellen diesen datentyp zu nehmen.

Vader 19. Mai 2006 19:12

Re: Suche geeignete Komponente ?
 
jetzt habe in meiner tabelle bestellungen ID + *
Besteller_ID +
Waren_ID +
Menge N angelegt, aber wenn ich die tabelle

speichern will kommt die fehlermeldung " Tabellen dürfen nur ein Nummernfeld haben ?
mfg vader

marabu 19. Mai 2006 19:17

Re: Suche geeignete Komponente ?
 
Gib jedem ID-Feld den Typ Autoincrement (+) wenn es ein Primärschlüssel ist (WAREN.ID) und gib ihm den Typ Integer (I) wenn es ein Fremdschlüssel ist (alle Felder mit Endung _ID).

marabu

mkinzler 19. Mai 2006 19:18

Re: Suche geeignete Komponente ?
 
Ich gabe deine letzte Frage falsch verstanden in dieser tabelle sind die Felder ja fremdschlüssel und brauchen somit den typ Numeric.

Vader 19. Mai 2006 20:20

Re: Suche geeignete Komponente ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,
habs versucht aber es funzt nicht , hab mein projekt hier mal angehängt, was habe ich da falsch gemacht ?
mfg vader

mkinzler 19. Mai 2006 20:31

Re: Suche geeignete Komponente ?
 
Die .KeyField-Eigenschaften der DBLookupComobos sind falsch. Hier mußt du die ID-Felder auswählen, da sie ja als FK-Felder in die Bestellungen-Tabelle geschrieben werden.

Vader 19. Mai 2006 21:16

Re: Suche geeignete Komponente ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
ja aber irgenwas passt nicht, ich sehe jetzt im DBGrid nur die ID-Nummern, ich möchte ja Bestellername und
Warenbezeichnung auch sehen ?
mfg vader

mkinzler 19. Mai 2006 21:18

Re: Suche geeignete Komponente ?
 
Dann mußt du die Abfrage, die hinter dem Grid liegt so ändern das du die Bestellung-Tabelle (Master) mit den Bezeichnungen aus den Detail-Tabellen joinst.

Vader 19. Mai 2006 21:43

Re: Suche geeignete Komponente ?
 
das versteh ich jetzt aber nicht ?
mfg vader

Vader 19. Mai 2006 21:51

Re: Suche geeignete Komponente ?
 
hallo,
marabu schreibt:
Zitat:

Wenn du dann die Bestellungen in einem DBGrid erfassen willst, dann unterlegst du einfach die Tabelle BESTELLUNGEN mit statischen Feldern (Feld-Editor), machst alle Schlüsselfelder unsichtbar und fügst für die Fremdschlüssel (BESTELLER_ID, WAREN_ID) entsprechende Lookup-Felder (BESTELLER, WARE) hinzu. Danach kannst du dann im Feld BESTELLER aus dem Wertevorrat der Tabelle BESTELLER anhand von BESTELLER.NAME den korrekten BESTELLER.ID in das Feld BESTELLUNGEN.BESTELLER_ID eintragen.

wie meint er das -> dann unterlegst du einfach die Tabelle BESTELLUNGEN mit statischen Feldern (Feld-Editor),
und die lookup -felder im dbgrid ?
mfg vader

mkinzler 19. Mai 2006 21:53

Re: Suche geeignete Komponente ?
 
Ändere die Abfrage von Query3 auf:

SQL-Code:
select
     b.ID, be.NAME, w.BEZEICHNUNG, b.menge
from
    bestellungen b, Besteller be, Waren w
where
    be.ID = b.Besteller_id and w.ID = b.Waren_id;

Vader 19. Mai 2006 22:33

Re: Suche geeignete Komponente ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
kommt der fehler ?
mfg vader

mkinzler 19. Mai 2006 22:34

Re: Suche geeignete Komponente ?
 
Hast du auch was an Query2 geändert?

Vader 20. Mai 2006 06:04

Re: Suche geeignete Komponente ?
 
nein habe ich nicht !
mfg vader

Vader 20. Mai 2006 15:33

Re: Suche geeignete Komponente ?
 
hallo,

wie ich den code in query3 reingeschrieben habe ist dann der fehler sofort gekommen !!!!


Delphi-Quellcode:
select
     b.ID, be.NAME, w.BEZEICHNUNG, b.menge
from
    bestellungen b, Besteller be, Waren w
where
    be.ID = b.Besteller_id and w.ID = b.Waren_id;

was ist da falsch ?
mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 Uhr.
Seite 1 von 2  1 2      

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