Hi,
ich bin gerade dabei eine Datenbankanwendung zu schreiben, das derzeit darauf beschränkt ist, in einer Suchmaske einen Kunden zu suchen, das Suchergebnis in einem DBGrid zu präsentieren und nach Auswahl einer Datenzeile in eine Pflegemaske zu springen.
Das ganze ist momentan experimentell und folgendermassen aufgebaut: ein TFrame beinhaltet ein TPageControl mit mehreren Tabs. Im ersten Tab ist die Suchmaske mit dem Ergebnis-DBGrid enthalten in den weiteren Tabs die Eingabefelder (alles TDBxxx Controls) für die Pflege der Kundendaten (und dessen abhängige Tabellen wie Telefonnummern, Aktivitäten usw.). Nach der Auswahl eines Kunden im ersten Tab wird automatisch in das zweite Tab zur Datenpflege gewechselt.
Ich nutzte als Datenbank Firebird 2.1 mit den kommerziellen IbDac Komponenten, eine ganze Menge TClientDatasets usw. ausgelagert in einem TDataModule.
Was ich eigentlich machen möchte ist, die Suchmaske mehrfach verwendbar zu machen. Soll heißen der Dialog soll von anderen Teilen das Programms (bspw. Auftrag anlegen, Rechnung erfassen usw.) ebenfalls aufrufbar sein und nach Auswahl eines Kunden diesen dann bspw. in ein Eingabefeld einfügen oder ähnliches.
Mit anderen Worten: ich suche nach Möglichkeiten eine solche Suchfunktion so universell wie möglich einsetzbar zu machen. Soll diese weiterhin auf einem TFrame bleiben, wäre ein modales Suchfenster in einem eigenen Packages besser? Wo sollen die dazugehörigen TClientDataSet hin, usw, usw.?
Macht es Sinn die Komponente TDBNavigator zu verwenden um alle im Suchergebnis (im DBGrid) gefundenen Kunden nacheinander abzuarbeiten oder ist es besser lediglich immer einen einzelnen Kunden zu bearbeiten?
Gibt es hierzu eine generelle Vorgehensweise sowas zu lösen. Ich experimentiere auch mit dem
Jedi Plugin System um eine modular aufgebaute Anwendung zu bekommen, die man bei Bedarf mit neuen Packages (BPLs) erweitern kann.
Ich verwende hierzu D2009, btw.