Read-only Textfelder in SCSM-Formularen

Mit Hilfe des Authoring Tools können für SCSM Erweiterungen bereits vorhandener Formulare gebaut oder auch komplett neue Formulare erstellt werden.

Leider bietet das Authoring Tool nicht alle Eigenschaften der Formular-Steuerelemente zur Bearbeitung und Verwendung an.

Eine nützliche Eigenschaft, die davon ebenfalls betroffen ist, ist z.B. die IsReadOnly-Eigenschaft. Mit IsReadOnly kann ein Textbox-Element so markiert werden, dass der Inhalt nicht mehr bearbeitet werden kann.

Wozu überhaupt eine Textbox auf Read-Only setzen, da das Element doch für gewöhnlich für Eingaben verwendet werden soll? Read-Only Textboxen können z.B. verwendet werden, um automatisch erstellte Texte und Daten anzuzeigen, die vom Anwender nicht verändert werden sollen.

Beispiel für die konkrete Anwendung in einem Kundenprojekt: Für Change Requests erstellt eine Anwendung in Orchestrator ein Log aller Aktivitäten nach der Genehmigung des Changes. Zum Abschluss des Changes wird erneut ein Log erstellt, das die Unterschiede zum genehmigten Ablauf zeigt und alle Genehmigungs-Entscheidungen aus den Prüfaktivitäten ausweist. Das ist einfacher, als mühsam für ein Review den Verlauf des Changes durchzuarbeiten. Die Logs sollen natürlich nicht vom Anwender änderbar sein und werden daher in Read-Only Textboxen auf einem eigenen Reiter angezeigt.

Dafür gibt es doch auch die IsEnabled-Eigenschaft, mag man jetzt einwenden (im Authoring Tool: “Ist aktiviert”) … Richtig, die könnte man auch verwenden, sie hat jedoch einen gravierenden Nachteil: Inhalte von Textboxen, deren IsEnabled-Eigenschaft auf False gesetzt ist, können nicht kopiert werden, die Funktion ist im Kontext-Menü der Textbox ausgegraut. Lästig, gerade bei längeren Texten, die man noch mal separat weiterverarbeiten will, z.B. in eine Email kopieren.

Mit IstReadOnly kann man den gleichen Effeket erzielen, wie mit IsEnabled, allerdings bleibt die Kopier-Möglichkeit erhalten.

Wie wendet man diese Eigenschaft nun am besten an?

Da sie im Authoring Tool nicht angeboten wird, setzt man erst einmal im Eigenschaftenfenster der Textbox im Authoring Tool die “Ist Aktiviert”-Eigenschaft auf “Falsch” und speichert das Formular-MP. Mit einem Texteditor sucht man dann den XML-Tag im MP, welcher die Eigenschaft IsEnabled für die Textbox setzt. Die sieht z.B. so aus:

<PropertyChange Object=”TextBox_3″ Property=”IsEnabled”>
<NewValue>False</NewValue>
</PropertyChange>

Anstelle des Eigenschaften-Bezeichners “IsEnabled” trägt man jetzt “IsReadOnly” ein und setzt den NewValue auf “True”:

<PropertyChange Object=”TextBox_3″ Property=”IsReadOnly”>
<NewValue>True</NewValue>
</PropertyChange>

Danach kann man das MP auch wieder in das Authoring Tool laden und weiter bearbeiten.

Tipp: Diese Vorgehensweise kann auch für andere Eigenschaften von Steuerelementen verwendet werden, welche im Authoring Tool nicht angeboten, aber prinzipiell von .Net zur Verfügung gestellt werden. Bei der Eigenschaft muss es sich allerdings um eine sog. “Dependency Property” handeln, sonst funktioniert das mit dem XML-Tag im MP nicht.

 

 

Starten Sie jetzt Ihren Weg zu Azure!

Los geht's

top