Einzelnen Beitrag anzeigen

I.A

Registriert seit: 14. Jan 2007
83 Beiträge
 
#3

Re: Datensatzmaske automatisiert erzeugen?

  Alt 19. Feb 2009, 20:07
Hallo Martin

Zitat von mschaefer:
Ja das läuft analog zu Deinem Beispiel nur mußt Du jedem Feld die DataSource zuweisen und das Datenbankfeld.
Während der Zuweisung solltest Du die DataSource aber Diasable´n.

Man könnte das sogar mit verschiedenen Feldtypen DBEdit, DBMemo, machen. Eine Möglichkeit ist dann die Auswahl des Feldetyps anhand des Feldnamens oder einer Namenserweiterung: Name, Name_Memo, Name_Grid, Name_Pict usw.

Und im dann könnte man noch die Labels davor plazieren, aber erstmal klein Anfangen. Ich denke, gerade wenn ein System dazu neigt erweitert zu werden, dann ist das eine richtig spannende Sache!
Ja das kann spannend werden.

Das mit den Feldnamen abhängig vom zu wähleneden Steuerelement ist ne klasse Anregung. Ich wollte es vom Datentyp
abhängig machen.

-Datentyp String <DBEdit>
-Datentyp Zahl (Float oder Integer) <DBEdit>
-Datentyp Memo <DBMemo>

Aber da kommt das Problem, wann muss eine DBComboBox ausgewählt werden? Bei einem logischen Feld
Typ 'L' im guten alten Dbase oder Typ Boolean könnte DBComboBox oder DBCheckbox in Frage kommen.
Der Eine Kunde könnte die ComboBox bevorzugen, der Andere die ChaecBox.
Bei einem Stringfeld kann ein einfaches Editfeld die richtige Wahl sein, ebenso die DBCombobox.
Das hängt von der Art der Daten ab. Automatisiert könnte man immer DBEdit-Komponenten erzeugen.

Besser wäre eine Komponente, die je nach konkreter Datenmenge die Eingabekomponente einstellbar
macht. Aber das Datenbankprogramm soll unabhängig von den Daten sein. Hier widersprechen sich
schon mal 2 Anforderungen und ein Kompromiss muss gesucht werden. Es bleibt eine spannende Aufgabe.

Die Feldnamen mit passender Erweiterung, (Name_Pict, Name_Cbx...) werde ich als Anregung mitnehmen.
Danke. Den Tabellenspalten wie den Labels (DBText) können ja Feldnamen ohne die Erweiterung zugewiesen
werden. Ich bleibe dran.

Es grüßt Dich Hartmut
  Mit Zitat antworten Zitat