Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ComboBox im DBGrid (https://www.delphipraxis.net/64154-combobox-im-dbgrid.html)

Quake 28. Feb 2006 10:20

Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX

ComboBox im DBGrid
 
Hallo,

ich bräuchte mal einen kleinen Denkanstoß.

Ich habe eine Auftrags-AuftragsArtikel Datenbank Konstruktion und eine Artikel Tabelle. Also 3 Tabellen

Auftrag -> Anschrift des Kunden
AuftragsArtikel -> Die Artikel des Auftrags
Artikel -> Artikeldaten z.B Bezeichnung und Preis

Die Auftragsartikel sollen in ein DBGrid eingegeben werden. Ich möchte nun, dass in diesem DBGrid in der Spalte Bezeichung zum einen eine Artikelbezeichnung eingegeben werden kann, die noch nicht in der Artikel-Tabelle vorhanden ist.
Zum andern möchte ich, dass mir beim eingeben der Artikelbezeichung eine ComboBox angezeigt wird in der die Artikel aus der Artikel-Tabelle mit den gleichen Anfangsbuchstaben angezeit wird (muss nicht unbedingt gefiltert sein, es reicht auch zum ersten Eintrag zu springen der der Eingebe entspricht). Wähle ich dann einen Artikel aus, der in der Artikel-Tabelle vorhanden ist, soll der Preis aus der Artikel-Tabelle in das DBGrid für die AuftragsArtikel übernommen werden.

Wo benötige ich nun den Denkanstoß? Eine Lookup kann ich ja nicht verwenden, da ich ja auch Bezeichnungen eingeben Möchte, die nicht bei den Artikeln existieren bzw. ich den Preis verändern möchte. Wie mache ist es dann? Über die PickList der der DBGrid.Columns[] ? Dan müsste ich aber alle Artikelbezeichungen vorher in die Picklist kopieren. :gruebel:

Vielen Dank im voraus

Martin

Frank Borland 28. Feb 2006 11:02

Re: ComboBox im DBGrid
 
Du mußt Deine Controls in DrawColumnCell selber zeichnen. Hier ist mal noch ein Denkanstoß
Dann kommmt da noch QuantumGrid... :-D


Gruß


Malte

Quake 28. Feb 2006 14:50

Re: ComboBox im DBGrid
 
Hallo,

Ich habe mir mal den "Denkanstoß" angeschaut. Das DBGrid hat zwar ein paar mehr Optionen, aber das ist auch nicht das was ich suche.
Die Quantums sind mir etwas zu teuer. :roll:

Ich suche noch ein bissl oder zur Not progge ich mein eigenes Look&Feel DBGrid.

mikhal 28. Feb 2006 14:55

Re: ComboBox im DBGrid
 
Persistente Felder bei deiner TTable oder TQuery anlegen, dann neues Feld hinzufügen, Art Nachschlagen, dann im unteren Bereich des Dialogs die Nachschlagetabelle wie bei einer DBLookupComboBox definieren.

Im DBGrid nur die Columns definieren, die angezeigt werden sollen.

Grüße
Mikhal

Quake 28. Feb 2006 15:13

Re: ComboBox im DBGrid
 
Aber dann kann ich doch auch nur Artikelbezeichnungen eingen die auch in der Artikel Tabelle stehen, oder?

mikhal 28. Feb 2006 16:47

Re: ComboBox im DBGrid
 
Ja.

Grüße
Mikhal

Quake 29. Mär 2007 10:14

Re: ComboBox im DBGrid
 
Hallo,

ich muss jetzt noch einmal an meinen alten Thread anknüpfen. Ich komme erst jetzt dazu an mein Projekt weiter zu arbeiten.

Ziel soll es sein, eine DBLookUpCombobox in einem DBGrid zu haben, wie es auch in MS-Access eines gibt. Ich möchte also in der Zelle des DBGrids eine Artikelbezeichnung eingeben und diese soll dann automatisch vervollständigt werden. Das Verwenden einer DBLookupComboBox scheitert aber an der Forderung, dass ich auch Artikelnamen eingeben möchte, die nicht in der LookupTabelle vorhanden sind.

Ich habe mir jetzt zwei Lösungsansätze überlegt.

1.
Ich kopiere alle Artikelnamen in die PickList der TColumn des DBGrid. Tippe ich dann was ein die Zelle ein, wird meine Eingabe nicht vervollständigt. Klappe ich die Picklist aus, erscheint meine Eingabe nicht mehr im InplaceEditor, sondern es wird nur ein Eintrag in der PickList ausgewählt.
Um dies zu umgehen, kann ich ja auf den InplaceEditor einfluss nehmen über MyDBGrid.InplaceEditor. Wie kann ich nun aber auf die PickList zugreifen.

2.
Ich kopiere alle Artikelnamen in eine ListBox und blende die ListBox unter dem InplaceEditor und einen kleinen Button im InplaceEditor ein. Die Tastaturereignisse fange ich dann ab und suche dann in der ListBox einen Eintag aus und vercollständige dann meine Eingabe im Inplace Editor.
Diese Methode ist aber zumindest sehr Aufwendig.

Oder gibt es inzwischen eine kostenlose DBGrid Komponente die dies unterstützt?

ciao
Martin

PS. Das Userhandling (usebility oder wie das auch immer heist) nach der Methode hier ist auch nicht so richtig schon.

uwewo 29. Mär 2007 10:44

Re: ComboBox im DBGrid
 
Bei der Eingabe eines neuen Artikels, muss doch sicherlich noch mehr wie nur die Beschreibung hinterlegt werden.(Preis, Menge etc.)

Warum öffnest Du im Onkeypress Deiner Zelle nicht ein neues Form, in der man den Artikel wählen oder neu eintragen kann?

Quake 29. Mär 2007 11:53

Re: ComboBox im DBGrid
 
Ja, richtig ich suche Danach den Preis usw. herraus.
Dein Vorschlag halte ich für den Anwender zu umständlich. In Access ist das ja so möglich, wie ich es haben möchte. Und es kann ja nicht angehen, das MS besser Programme schreibt als wie ich das tun tuhe :lol: .

uwewo 29. Mär 2007 12:25

Re: ComboBox im DBGrid
 
Zitat:

Zitat von Quake
Dein Vorschlag halte ich für den Anwender zu umständlich. wie ich das tun tuhe :lol: .

Warum soll das umständlich sein, es ist doch egal ob ich den Artikeltext in das DbGrid schreibe, oder sich automatisch ein Fenster öffnet.

Zitat:

Zitat von Quake
Ja, richtig ich suche Danach den Preis usw. herraus.

Bei einem neuen Artikel denke ich mal, dass es mit dem Preis heraussuchen schwierig wird.
Es sei denn fast alles kostet gleich viel.

[Edit] Ich habe übrigens, ich glaube hier im Forum von DBComboBoxen gelesen, die die Funktion unterstützen neue Artikel anzulegen.
[/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 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