Um Felder in Eingabemasken oder Grids zu enablen/disablen, musste bisher ausschließlich mit dem Element
OnUpdateUIState gearbeitet werden. Da dies aufgrund seiner Struktur aber mit
Case-Anweisungen umzusetzen ist, muss hier bei einer großen Anzahl von Controls in Verbindung mit verschiedenen Bedingungen ein richtiger XML-Spaghetticode erzeugt
werden. Mit dem neuen Attribut EnableWhen
des Elements FieldInfo
wird das nun erheblich vereinfacht, da eine Bedingung direkt beim Feld hinterlegt werden kann und das automatisch für alle damit
verbundenen Eingabemasken (RWIs) gilt. Im Prinzip wurde hier nur die gleiche Funktionalität nachgezogen, die es schon lange beim Element Command
gibt.
<View AllowDrop="true" FocusAfterAddNew="LST_TITEL">
<OnUpdateUIState>
<Case Condition="[LFZ_STD_MAN]=1" Break="false">
<GuiItems>
<Item FieldName="LFZ_STD" Enabled="true"/>
</GuiItems>
</Case>
<Case Condition="[LFZ_STD_MAN] is null or [LFZ_STD_MAN]=0" Break="false">
<GuiItems>
<Item FieldName="LFZ_STD" Enabled="false"/>
</GuiItems>
</Case>
</OnUpdateUIState>
</View>
Nachher
<View AllowDrop="true" FocusAfterAddNew="LST_TITEL"/>
<FieldInfo Name="LFZ_STD" Title="Stunden" />
Nachher
<FieldInfo Name="LFZ_STD" Title="Stunden" EnableWhen="LFZ_STD_MAN=1" />