Variablen in PhraseExpress
In PhraseExpress v14 (v3 auf dem Mac) hatten wir sogenannte "globale Variablen" eingeführt. Da die globalen Variablen jedoch außerhalb des Textbausteinbaums gespeichert waren, konnten keine Schreib-/Lesebeschränkungen angewendet werden und jeder Anwender war in der Lage, nach Belieben Variablen hinzuzufügen, zu löschen oder zu ändern.
Aus diesem Grund haben wir uns entschlossen, die globalen Variablen in PhraseExpress v15 (v4 auf dem Mac) in reguläre Textbausteine umzuwandeln und alle Vorkommen in den Textbausteinen, in denen eine Variable verwendet wurde, durch eine neue Art der Textbausteinverknüpfung zu ersetzen.
Während im über ein Jahr andauernden Betatest keinerlei Probleme aufgetreten sind, berichten nun einzelne Anwender von Problemen bei Verwendung von ehemals globalen Variablen mit Formularmakros und wir möchten hier über die Unterschiede aufklären:
Allgemeine Funktionsweise der Formularmakros
Vor dem dem Ausführen eines Textbausteins durchsucht PhraseExpress noch vor der Textbausteinausgabe an allererster Stelle den Textbausteininhalt auf alle Vorkommen von Formularmakro-Elementen (Eingabefelder-, Checkbox-Makro, etc). Sobald das erste Formularelement gefunden wird, sammelt PhraseExpress alle weiteren Elemente und generiert daraus schritteweise ein Formular, dass nach Hinzufügen des letzten gefundenen Formularelements angezeigt wird. Nach Ausfüllen des Formulars ersetzen die Formulareingaben dann an die Formularmakros im Textbausteininhalt und der gesamte Inhalt wird inklusive der Formulareingaben ausgegeben.
Änderung in PhraseExpress
Hatten Sie zuvor in PhraseExpress mehrere globale Variablen definiert, die einzelne Formularelemente beinhalten und mehrere davon in ein einem Textbaustein verwendet, dann wurden die Inhalte der globalen Variablen zunächst in den Textbausteininhalt "ausgepackt", dann alle ausgepackten Variablen in einem Rutsch auf Formularmakros durchsucht und daraus ein großes Formular generiert.
In PhraseExpress v15 (v4 auf dem Mac) wurden die Variablen nun in Textbausteine im Textbausteinordner "Variablen" umgewandelt und alle Vorkommen der der Variablen in Textbausteinen durch Textbausteinverknüpfungen ersetzt. Für Text funktioniert das problemlos, aber kann bei Formularelementen zu Problemen führen:
Mehrere Textbausteinverknüpfungen in einem Textbaustein werden nämlich nicht vorab "ausgepackt" und in ihrer Gesamtheit auf Formularelemente durchsucht, sondern jeder verknüpfte Textbaustein jeweils isoliert betrachtet. Dadurch wird ein zuvor gebündeltes Formular mit mehreren Formularelementen in einzelne Formulare mit jeweils einem einzigen Element aufgelöst.
Lösung
Um wieder das gleiche Verhalten der ehemaligen Variablen zu erreichen, werden wir nun statt einer #insert Textbausteinverknüpfung, die eine sequentielle Verarbeitung verursacht, durch Einführung eines neuen Makros "#embed" eine zusammengefasste Verarbeitung aller ehemaligen Variablen auslösen. Dann werden wieder alle Formularelemente gebündelt erfasst.
Die Nachfolgerversion 16 (v5 auf Mac) kann die Variablenkonvertierung nicht vornehmen.