AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBLookupBox und Integer
Thema durchsuchen
Ansicht
Themen-Optionen

DBLookupBox und Integer

Ein Thema von barnti · begonnen am 14. Okt 2004 · letzter Beitrag vom 14. Okt 2004
Antwort Antwort
Seite 1 von 3  1 23      
barnti

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

DBLookupBox und Integer

  Alt 14. Okt 2004, 08:13
Hallo,

ich habe das Problem, dass ich gern eine DBLookupCombobox benutzen möchte um dem Benutzer Eingaben zu erleichtern.
Diese LookupBox ist Bestandteil meines DBGrids. Immer wenn der Benutzer in ein Lookupfeld wechselt wird dort die LookupBox angezeigt.
Mein Problem ist: die LookupBox ist nur hilfreich, wenn diese auf Strings zugreift. Dann Lassen sich diese durch Tastatureingabe anspringen und auswählen.
Ist der auszuwählende Wert ein Integer, wie z.B. alle Primärschlüssel meiner DB, dann geht das nicht.

Kann mir jemand sagen, wie ich dieses Problem löse, so dass ich die LookupBox auch für Primärschlüssel nutzen kann?
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 09:27
Ich denke, du meinst Fremdschlüssel. Du musst ein LookupField in deiner Datenmenge benutzen, dass die entsprechenden Texte für deine Keys anzeigt. Beispiel:
- 2 Tabellen: Artikel, Warengruppe
- in Artikel gibt es ein Feld, das Warengruppe_ID heißt und auf den Primärschlüssel aus Warengruppe verweist.
- also musst du im Artikel-Dataset ein zusätzliches Feld (vom typ Loopup) anlegen und als LookupDatenmenge das Warengruppendataset angeben. über das Feld Warengruppe_ID werden die beiden verknüft, als Anzeige dient das Feld Warengruppenname aus der Warengruppentabelle. In der Grid zeigst du jetzt nur das Lookupfeld an und nicht das ID-Feld.
Dann kannst du eine LookupComboBox nehmen und diese mit der Warengruppendatenmenge verknüpfen. Wenn du jetzt eine Warengruppe auswählst, dann wird die ID dieser Warengruppe in deinem Warengruppen_ID-Feld des Artikels eingetragen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
barnti

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

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 10:05
Hallo Stevie,

ist mir alles bekannt

Bei der jetzigen Lösung erzeuge ich für jede Tabelle, aus der ich die ID brauche eine weitere Spalte, in der die ID als String eingetragen wird. So existiert neben der 'Waren_ID' ein Feld mit der Bezeichnung 'WarenNR'.

Verwende ich ein Lookup auf diese Tabelle, verwende ich als angezeigtes Feld 'WarenNR' in der Lookupliste. So geht es auch, ist aber nur ein 'Workarround'.

Deshalb: ich möchte ein Lookup OHNE ein weiteres Feld in meiner Quelltabelle anlegen zu müssen.
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 10:15
Zitat von barnti:
Deshalb: ich möchte ein Lookup OHNE ein weiteres Feld in meiner Quelltabelle anlegen zu müssen.
Ok, die Lösung heißt TDBLookupComboBox!! In der OH wird auch genau erklärt, wie man sie verwendet.
Nachtrag: Sorry, auf Absenden gekommen...
Also, du musst deinem Grid nur klarmachen, dass die TDBLookupComboBox auch für FK-Felder angezeigt werden soll und die dementsprechende ListSource benutzen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
barnti

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

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 11:20
Hi,
Zitat von Stevie:
Zitat von barnti:
Deshalb: ich möchte ein Lookup OHNE ein weiteres Feld in meiner Quelltabelle anlegen zu müssen.
Ok, die Lösung heißt TDBLookupComboBox!! In der OH wird auch genau erklärt, wie man sie verwendet.
Nachtrag: Sorry, auf Absenden gekommen...
Also, du musst deinem Grid nur klarmachen, dass die TDBLookupComboBox auch für FK-Felder angezeigt werden soll und die dementsprechende ListSource benutzen.
Äh? Sag mal liest Du meine Beiträge auch?
Oder habe ich mich nicht richtig ausgedrückt?

Ich HABE bereits eine TDBLookupComboBox...?!

Das Problem habe ich im ersten Beitrag beschrieben: Bei der Benutzung der besagten Komponente muss man auf Strings als angezeigtes Feld zurückgreifen.
Die Schlüsselattribute (autoInc) sind aber Integer.
Ich hoffe ich habe mich jetzt besser verständlich gemacht?
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 11:27
Sorry, aber irgendwie steh ich wohl auf der Leitung.
Wieso bitte willst du AutoInc-Werte mittels eines LookupCombos ändern???
Erklär mir bitte nochmal deine Tabellenstruktur...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
barnti

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

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 12:42
Hi,

Tabelle Partie
______________
Partie_ID, Bla, Blubber


Tabelle Unterpartie
___________________
Unterpartie_ID, Partie_ID, so, und, so

Jetzt möchte ich beim Anlegen einer neuen Unterpartie die Partie_ID mittels TDBLookupCombobox auswählen und in Unterpartie eintragen.

Ich hoffe das trägt zu Deinem Verständnis bei.
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#8

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 12:50
hallo,

die kompo auf das formular, die ds einstellen hier die TAbelle partie und da das feld auswählen hier Partie_id und schon hast du eine auswahlmöglichkeit.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 12:52
Zitat von barnti:
Hi,

Tabelle Partie
______________
Partie_ID, Bla, Blubber


Tabelle Unterpartie
___________________
Unterpartie_ID, Partie_ID, so, und, so

Jetzt möchte ich beim Anlegen einer neuen Unterpartie die Partie_ID mittels TDBLookupCombobox auswählen und in Unterpartie eintragen.

Ich hoffe das trägt zu Deinem Verständnis bei.
Auf jeden Fall!

Also, du hast dann zwei DataSets und DataSources.
Für das Feld Partie_ID muss die DBLookupComboBox folgende Eigenschaften haben:
- DataSource := DataSourceUnterpartie
- ListSource := DataSourcePartie
- DataField := Partie_ID (aus DataSourceUnterpartie.Dataset)
- KeyField := Partie_ID (aus DataSetPartie.Dataset)
- ListField := Bla (aus DataSetPartie.Dataset)

Jetzt kannst du aus deinen Partien auswählen und die DBLookupComboBox
trägt die ID der ausgewählten Partie in die Unterpartie ein.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
barnti

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

Re: DBLookupBox und Integer

  Alt 14. Okt 2004, 13:11
Hi,

ich muss wohl chinesisch reden

Ich KENNE die Funktion der TDBLookupCombobox. Ich NUTZE diese bereits!!

Was nicht funktioniert:

Auswahl eines Wertes aus der Box PER Tastatur. Das geht nur mit STRINGS. Ich habe aber bei dem Beispiel INTEGER.

Mehr weiß ich dazu jetzt echt nicht zu sagen...
Gruß,

Barnti
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20:21 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