Thema: Delphi Abfragemaske designen

Einzelnen Beitrag anzeigen

Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Abfragemaske designen

  Alt 21. Nov 2005, 16:58
Zitat von Hansa:
Zitat von Igotcha:
- für jedes Eingabeobjekt der Suchmaske (TEdit, TComboBox) wird ein "SearchItem"-Objekt erstellt
- diesem Objekt wird das entsprechende TWinControl und die Art der Information (Text-oder Zahlauswertung [z.B. Itemindex]) mitgegeben
Jetzt erkläre mir mal, warum TObject, TwinControl gebraucht werden, um lediglich einen simplen string zusammenzusetzen.
Delphi-Quellcode:
mySearchItem:=TSearchItem.Create;
mySearchItem.FComponent:=Edit1;
mySearchItem.FDBField:='nachname';
mySerachItem.FType:=0; // Abfrage als Text
mySearchList.Add(mySearchItem);

mySearchItem:=TSearchItem.Create;
mySearchItem.FComponent:=ComboBox1;
mySearchItem.FDBField:='titel';
mySerachItem.FType:=1; // Abfrage als Zahl
mySearchList.Add(mySearchItem);

Query.SQL.Text:='SELECT * FROM table '+CreateSQLWhereClause(mySearchList);

mySearchList.free;

Text der SQL-Query:

SELECT * FROM table WHERE nachname='TextausEdit1AND titel=2 // 2=ItemIndex aus ComboBox, bei Typ=0, Text aus ComboBox
Der Vorteil ist, dass man dieses Verfahren generisch für Suchmasken verwenden kann. Ich habe eine Funktion, die mir für alle meine Suchmasken den korrekten "WHERE"-Teil erstellt, die ich parametrisieren kann (z.B. bei Comboboxen zeige mir den Text oder den Itemindex) und wo ich die Suchmaske selbst problemlos erweitern kann, ohne die Funktion zur Generierung des "WHERE"-Teils anzupassen bzw. zu erweitern.

Vielleicht sollte ich nochmal erwähnen, dass meine Suchmasken zwischen 5-15 Filterkriterien anbieten und an Suchmasken habe ich so an die 10 Stück.

Gruß Igotcha
  Mit Zitat antworten Zitat