AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Lookupfeld zur Laufzeit
Thema durchsuchen
Ansicht
Themen-Optionen

Lookupfeld zur Laufzeit

Ein Thema von needatip · begonnen am 20. Feb 2010 · letzter Beitrag vom 1. Mär 2010
 
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

Lookupfeld zur Laufzeit

  Alt 20. Feb 2010, 17:12
Datenbank: SQLServer • Version: 2008 • Zugriff über: ADO
Hallo,

ich erstelle zusätzlich zu meinen bestehenden Feldern ein Lookup-Feld zur Laufzeit.
Dies mache ich im AfterOpen Event des Datasets, da ich überprüfe ob das Feld bereits existiert.
Dazu muss ich aber erst das Dataset schließen und dann wieder öffnen, so daß dann wieder das AfterOpen Event aufgerufen würde.
Delphi-Quellcode:
procedure DSetBieterAfterOpen(DataSet: TDataSet);
var
  i: integer;
  f: TField;
begin
  // Feld Flagge für Land hinzufügen
  with DSetBieter do
    if FindField('Flagge') = nil then
    begin
      FieldDefList.Update;
      Close; // hier muss ich das Dataset schließen, damit ich ein neues Feld hinzufügen kann.
      for i := 0 to FieldDefList.Count - 1 do
        if FindField(FieldDefList[i].Name) = nil then
          FieldDefList.FieldDefs[i].CreateField(DSetBieter);
      f := TStringField.Create(DSetBieter);
      f.Size := 10;
      f.Name := 'Flagge';
      f.FieldName := 'Flagge';
      f.DisplayLabel := 'Flagge';
      f.FieldKind := fkLookUp;
      f.DataSet := DSetBieter;
      f.LookupDataSet := DSetLaender;
      f.KeyFields := 'LAND';
      f.LookupKeyFields := 'ID';
      f.LookupResultField := 'ID';
      f.LookupCache := true;
    end;
end;
Im BeforOpen Event kann ich ja das nicht machen, da ich dann noch nicht weiß ob die übrigen Felder vorhanden sind.
Wie kann man das elegant lösen?
  Mit Zitat antworten Zitat
 


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 13:40 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 by Thomas Breitkreuz