AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit DBLookupLisBox
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit DBLookupLisBox

Ein Thema von Tom70 · begonnen am 19. Jul 2005 · letzter Beitrag vom 19. Jul 2005
Antwort Antwort
jensw_2000
(Gast)

n/a Beiträge
 
#1

Re: Problem mit DBLookupLisBox

  Alt 19. Jul 2005, 21:15
ist es nun ein ListView oder eine DBListbox ?

Lt. deiner Beschreibung würde ich eher auf die DBListBox tippen.

Wenn die DBListBox und das DBGrid an zwei unterschiedlichen Datenquellen hängen, dann kannst du beide Datenquellen via LOOKUP miteinander verbinden.

Angenommen die Datenquelle deines DBGrids hat eine Spalte "Bezeichnung" und Datenquelle der DBListbox hat ebenfalls eine Spalte die Bezeichnungen enthält (z.B. 'Artikelbezeichnung'), dann kannst du das wie folgt lösen...

Da beim Wechseln des aktuellen Datensatzes im DBGrid ebenfalls der Datensatz-Zeiger dessen Datenmenge (ich nenne diese mal "qry_DBGrid") verschoben wird, kannst du die Datensatz-Positionierung der "DBListbox-Datenmenge" (die nenne ich mal tbl_ListBox) im onAfterScroll von "qry_DBGrid" erledigen.

Delphi-Quellcode:
procedure TForm1.qry_DBGridAfterScroll(DataSet: TDataSet);
begin

  // Hier Abbrechen, falls folgende Bedingungen erfüllt sind
  if (NOT tbl_ListBox.Active) OR // Die Datenmenge der DBListBox ist nicht aktiv
     (NOT Form1.Visible) OR // Das Formular wird nicht angezeigt
     (NOT DBGrid.Focused) OR // Das DBGrid hat nicht den Focus
     (Loading) THEN // benutzerdef. private boolsche Variable, die gesetzt werden kann, wenn z.B.
                                   // Massenänderungen, Lookups usw. auf der Datenmenge ausgeführt
                                   // werden, bei denen eine Positionierung der DBListBox unnötig ist
  begin
    // mach einfach nichts
    exit;
  end
  else begin
    // versuche den Inhalt von "qry_DBGrid->Bezeichnung" in "tbl_ListBox->ArtikelBezeichnung" zu finden
    if tbl_ListBox.locate('ArtikelBezeichnung',Dataset.Fieldvalues['Bezeichnung'],[]) then
       ShowMessage('Gefunden, der aktive Datensatz in der DBListBox ist gesetzt') else
       ShowMessage('In der DBListBox gibt es keinen Datendatz mit der Artielbezeichnung '+Dataset.FieldByName('Bezeichnung').AsString );
  end;

end;
Falls ich dich immernoch falsch verstanden habe mach doch mal bitte einen Screenshot und beschreibe die Datenmengen sowie wie betroffenen Felder etwas näher. Sonst wird das hier eher ein Ratespiel ...


Schöne Grüße,
Jens

  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 06:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz