Die Eigenschaften von FormControls, wie heightMode und widthMode werden im Form Designer über Enums gesetzt. Leider hat man hier mittels X++ Probleme, denn es wird bei der Verwendung dieser Methoden nicht angegeben um welchem Enum es sich handelt. Das hat zufolge, dass man immer wieder probieren muss, um die gewünschte Eigenschaft richtig zu setzten. Desweiteren ist so auch der Quellcode schlechter lesbar.
Der Aufruf sieht normal so aus:
FormControl.heightMode(1);
Besser ist es, wenn man sprechende Parameter mit dem richtigen Enum verwendet
FormControl.heightMode(FormHeight::ColumnHeight);
Mögliche Optionen:
FormHeight::Auto
FormHeight::ColumnHeight
Ähnlich sieht der Parameter bei widthMode aus, nur wird hier der Enum FormWidth genutzt.
FormControl.witdthMode(FormWidth::ColumnHeight);
Mögliche Optionen:
FormWidth::Auto
FormWidth::ColumnHeight
Wie schon bei den letzten beiden Eigenschaft kann man bei TopMode auch nur raten, was mittels X++ übergeben werden muss.
FormControl.TopMode(0);
Besser ist, wenn auch hier ein sprechender Parameter mit dem richtigen Enum verwendet wird.
FormControl.TopMode(FormTop::Auto);
Mögliche Optionen:
FormTop::Auto
FormTop::ButtomEdge
FormTop::Center
FormTop::TopEdge
Bei FormGroupControls gibt es die Eigenschaft frameOptionButton, auch hier tritt dasselbe Problem auf.
FormControl.frameOptionButton(0);
Der Enum lautet hier FormFrameOptionButton und ermöglicht somit die korrekte Zuweisung oder besser lesbaren Quellcode zu schreiben.
FormControl.frameOptionButton(FormFrameOptionButton::None);
Mögliche Optionen:
FormFrameOptionButton::None
FormFrameOptionButton::Hide
FormFrameOptionButton::Check
FormFrameOptionButton::Radio
Es kommt nicht nur bei FormControls zu dieser Art von Problemen. Bei QueryRanges gibt es die Eigenschaft Status, auch hier kann es beim Setzen zu Schwierigkeiten dieser Eigenschaft mittels X++ kommen.
QueryBuildRange.Status(0);
Besser ist auch hier den sprechenden Parameter mit dem Richtigen Enum zu verwenden.
QueryBuildRange.Status(RangeStatus::Hidden);
Mögliche Optionen:
RangeStatus::Hidden
RangeStatus::Locked
RangeStatus::Open
Das waren erstmal die Sachen, die mir noch in Erinnerung sind. Es gibt wahrscheinlich einige andere Stellen, bei denen es Schwierigkeiten bereitet, den richtigen Parameter zu wählen.
Ich habe mit den genannten Enums bisher positive Erfahrungen sammeln können, ob es aber wirklich die Richtigen sind, wird man wohl nicht in Erfahrung bringen können.