Dynamische Feldlänge?

10. Oktober 2007 11:33

Guten Morgen allerseits,

ich habe folgendes vor:

Das Feld Beschreibung der Artikeltabelle ist mit der Bezeichnung UND der Einheit des Artikels gefüllt. (z.B. "Musterartikel 10x1,5L") (Aufgrund Datenübernahme aus Altsystem!)

Das ist natürlich überhaupt nicht sinnvoll!

Damit ich nicht Stunden damit verbringen muß sämtliche Objekte zu bearbeiten auf denen die Bezeichnung und die Einheit verwendet werden sollen, hab ich mir folgendes überlegt:

Zwei neue Felder in der Artikeltabelle (ArtBezeichnung & ArtEinheit). Die vorhandenen Records einmal bearbeiten und die Beschreibung von der Einheit trennen (manuell oder per Report).

Das Feld Beschreibung bleibt bestehen und wird immer dann mit den Werten der beiden neuen Felder gefüllt, wenn diese geändert werden (OnValidate-Ereignis).

Soweit auch kein Problem. Jetzt geht´s aber los:
Beschreibung hat eine MaxLength von 30. Für die Einheit brauch ich höchstens 10, also muß ArtEinheit eine MaxLength von 10 bekommen. Bleiben mir in dem Fall also noch 20 für ArtBezeichnung.

Wenn ich für die Einheit eines Artikels aber nur 2 statt 10 Stellen benötige (z.B. "1L"), habe ich 8 Stellen "verschenkt", die ich für ArtBezeichnung verwenden könnte.

Kann ich die MaxLength-Property dynamisch zuweisen?

Habe alle Ereignisse getestet. Das Ereignis OnInputChange wird zwar bei jeder Stelleneingabe ausgeführt, aber ich bekomme den eingegebenen Text nicht ausgelesen, sonst könnte ich dies ja programmieren.

Hat jemand eine Idee oder ´n Tip zu dieser "Herausforderung"?

Viele Grüße

10. Oktober 2007 13:48

Hab hier eine mögliche Lösung:

Ein Dialog wird gestartet, der zwei Variabeln abfragt. Danach wird die Länge der zusammengesetzten Variabeln kontrolliert und nur bei positiver Bedingung in die entsprechenden Felder (ArtBezeichnung & ArtEinheit) "validiert".

Etwas umständlich zwar, aber anders scheint das nicht möglich zu sein.

Danke für eure Aufmerksamkeit. Bis bald.

10. Oktober 2007 16:03

Nur als Ergänzung: falls die Datenbank je auf einem sql-server liegen sollte gäbe es den SQL-Datentyp 'VARCHAR' als Feldeigenschaft ('SQL Data Type').

Habs selbst aber noch nicht benutzt.

Markus