MacroLibs |
Top Previous Next |
Viele Vorlagen haben ganz am Anfang den Befehl "LOADLIB %MACROLIB%" stehen, manchmal nur einmal, manchmal aber auch mehrmals mit verschiedenen MacroLibs. Diese MacroLibs sind Worddokumente, die sich im DocTemplates- Verzeichnis Ihres Programms befinden. In diesen Dokumenten sind Abfragen, Abläufe und schwierige beziehungsweise eher unleserliche Passagen aus Vorlagen ausgelagert und ausprogrammiert. Wir verwenden derzeit vier verschiedene Haupt-MacroLibs und eine Neben- MacroLib, welche nicht mehr überall Verwendung findet und auch nicht mehr verwendet werden sollte:
-) NX_MacroLib Beinhaltet allgemeine Passagen, wie zum Beispiel die Einleitung im Notariatsakt, die Aufsummierung von Feldern einer bestimmten Rolle einer Rollenschablone oder eine Funktion, welche aus Zahlen den entsprechenden Buchstaben macht um eine besondere Aufzählungsart in einer Vorlage zu ermöglichen.
-) NX_MacroLib_Kanzlei Beinhaltet alle Kanzlei-spezifischen Einstellungen, wie zum Beispiel welche Briefköpfe für welche Art Dokument verwendet werden soll, oder wie gewisse Passagen in Verträgen formuliert sein sollen. Notarspezifische Dinge wie Amtsstelle sind ebenfalls enthalten. Dieses File wird von uns bei Einrichtung des Vertragsmoduls eingerichtet und nachher nicht mehr mit Updates überschrieben. Sind Änderungen oder Anpassungen erforderlich, so werden diese manuell in diesem File durchgeführt.
-) NX_MacroLib_GK Beinhaltet alle Verlassenschafts-relevanten Bausteine, damit die eigentlichen Vorlagen lesbarer und einfacher erscheinen. In der GK-MacroLib finden sich zum Beispiel Bausteine, die die Formulierungen für die Abhandlungen beziehungsweise auch den Betreff für Verlassenschaftsbriefe angeben.
-) NX_MacroLib_R Ist die eine Neben-MacroLib, die nicht mehr verwendet werden sollte. Sie beinhaltet einige Bausteine für den Liegenschafts- beziehungsweise Realitätenbereich und kann in älteren Vorlagen noch Verwendung finden.Bausteine wie beispielsweise Inventarauflistung, Lastenstandsformulierungen und Texte für Grundstücksteilungen werden hier noch gefunden. Sollten Sie Verwendung für Bausteine aus dieser MacroLib haben, kopieren Sie die entsprechende Passage entweder direkt in Ihre Vorlage oder machen darauf einen Textbaustein.
-) NX_MacroLib_ZV Ist die neueste der Haupt-MacroLibs und beinhaltet eine leicht anwendbare und übersichtliche Form der Zustellverfügung im Verlassenschaftsbereich. Wird derzeit nur bei neu einzurichtenden Vertragsmodulen eingespielt und ist auch noch nicht in allen Vorlagen eingebunden.
Wenn Updates von Seiten der ACP durchgeführt werden, werden auch alle MacroLibs (NX_MacroLib_Kanzlei ausgenommen), überschrieben. Sollten Sie also Änderungen durchführen wollen, kopieren Sie sich das entsprechende Macro in die NX_MacroLib_Kanzlei und ändern es entsprechend ab.
In den MacroLibs finden Sie in einzelne Punkte gegliederte Macros wie zum Beispiel
"###BEGIN JURIST_Notariatsakt2### |Akt.Federfuehrer[1].TitelLang" "||Akt.Federfuehrer[1].NameGedreht||WENN NICHT CALC_TXT[Akt.Federfuehrer[1].Name]= [Akt.Klagevertreter.Name]| als Substitut des öffentlichen Notars |Akt.Klagevertreter.TitelLang" "||Akt.Klagevertreter.NameGedreht| mit dem Amtsitz in |#!Amtsstelle| und der Amtskanzlei in |Akt.Klagevertreter.PLZOrt|, |Akt.Klagevertreter.Strasse||ENDE WENN||WENN CALC_TXT[Akt.Federfuehrer[1].Name]= [Akt.Klagevertreter.Name]|, |Akt.Klagevertreter.Beruf|, mit dem Amtsitz in |#!Amtsstelle| und der Amtskanzlei in |Akt.Klagevertreter.PLZOrt|, |Akt.Klagevertreter.Strasse||ENDE WENN| ###END JURIST_Notariatsakt2###"
Dieses Macro kann in einer Vorlage angesprochen werden – natürlich müssen Sie am Anfang der Vorlage das |LOADLIB NX_MacroLib| angeben – und zwar als |#%MACRONAME%|, in unserem Fall wäre das |#JURIST_Notariatsakt2|, welches sich in der NX_MacroLib findet. An der Stelle dieses Kürzels würde dann alles das, das zwischen Begin und End dieses Macros in der MacroLib steht, hineinkopiert werden. Ich könnte ebenfalls |#!JURIST_Notariatsak2| angeben, dann ignoriert das Programm die Formatierung in der MacroLib und verwendet stattdessen die Formatierung des Kürzels. Es ist ratsam in den meisten Fällen Macros mit #! anzuführen, so ist die Formatierung in der Vorlage ersichtlich.
Die Funktion, die im letzten Absatz beschrieben wurde, lässt sich aber viel leichter und übersichtlicher mit dem Textbausteinsystem realisieren. Hierzu lesen Sie bitte den Punkt "Textbausteine".
Eine weitere Funktion der Macros in MacroLibs ist das Aufrufen unter Weitergabe von Variablen.
Ebenfalls in der NX_MacroLib findet sich das folgende Macro:
"###BEGIN Stammeinlage###[_*X_] |!Declare Haelfte CUR| |!SET Haelfte [Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Anteil].NurWert]| |!DIV Haelfte 2| |WENN NICHT CALC_CUR[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital- Anteil]]=[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Bezahlt]]| |WENN NICHT CALC_CUR[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Bezahlt]]=[!GET Haelfte]|in der Höhe von |Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Bezahlt].User||Ende Wenn| |WENN CALC_CUR[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Bezahlt]]=[!GET Haelfte]|zur Hälfte|Ende Wenn||Ende Wenn| |WENN CALC_CUR[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital- Anteil]]=[Akt.Rolle2[Gesellschafter][_*X_].User[Stammkapital-Bezahlt]]| zur Gänze|Ende Wenn| ###END Stammeinlage###"
In diesem Fall würde das Macro mit |#!Stammeinlage[*X]| oder |#!Stammeinlage[1]| angesprochen werden können. Das Macro gibt für den Gesellschafter mit dem Index _*X_ den Satz "in der Höhe von € 10.000,00" oder "zur Hälfte" oder "zur Gänze" aus, je nachdem, wie viel der Gesellschafter von seinem Stammeinlagen-Anteil tatsächlich geleistet hat. Da diese Funktionalität sehr oft vorkommen kann, wurde dieser Ablauf in ein Macro geschrieben, und kann so von jeder Vorlage (LOADLIB nicht vergessen) verwendet werden. Sinnvoll wird es sein, hier eine Wiederhole-Schleife über alle Gesellschafter zu machen und mit deren Anteilen auch das Macro Stammeinlage anzugeben:
|WIEDERHOLE *P !GET Partei1.Count| Eine Stammeinlage in der Höhe von |Akt.Rolle2[Gesellschafter][*P].User[Stammkapital-Anteil].User| und |#!Stammeinlage[*P]| geleistet. |ENDE WIEDERHOLE|
Dies würde bei Gesellschaftern A (€ 35,000 / € 17,500), B (€17,500 / € 17,500), C (€ 17,500 / € 10,000) die Wiederhole-Schleife dreimal ausführen und folgende Ausgabe in der Vorlage anzeigen:
"Eine Stammeinlage in der Höhe von € 35,000 und zur Hälfte geleistet Eine Stammeinlage in der Höhe von € 17,500 und zur Gänze geleistet. Eine Stammeinlage in der Höhe von € 17,500 und in der Höhe von € 10,000 geleistet."
Neben den MacroLib-Dateien kann sich eine Vorlage auch auf sich selbst beziehen, dass heißt eine Vorlage kann mittels |LOADLIB SELF| auf sich selbst verweisen. Am Ende der Vorlage würde dann ein Block stehen, der diesem Block ähnelt:
"|BEGIN IGNORE| - - - - - HIER KOMMEN DIE MAKROS - - - - - ###BEGIN PRINTPLIST###[_Liste_] |WIEDERHOLE *_X !GET _Liste_.Count| 1. |Akt.PersonID[[!GET _Liste_[*_X]]].Name| |ENDE WIEDERHOLE| ###END PRINTPLIST### |END IGNORE|"
Dann würde das |#!PRINTPLIST[Gesellschafter]| eine Liste mit Aufzählungszeichen und den Namen der Gesellschafter ausgeben. MacroLib Referenz ist hier dann keine nötig, es reicht ein |LOADLIB SELF| am Anfang der Vorlage, beziehungsweise vor dem Macro-Kürzel.
Die Macros können ebenfalls auch mehrere Variable übergeben bekommen beziehungsweise optionale Variable enthalten.
|#Macroname[%ERSTER_PARAMETER%][%ZWEITER_PARAMETER%]...| zeigt, dass hier auch mehrere Variablen an das Macro mit übergeben werden können. In diesem Fall muss natürlich auch die Macro-Definition in der entsprechenden MacroLib richtig beschrieben sein:
"###BEGIN Macroname###[_Paramter1_][_Parameter2_]… <TEXT DES MACROS> ###END Macroname###"
Optionale Parameter setzt man, indem man dem Parameter in der Macro-Defintion einen Standardwert gibt, der gewählt wird, sollte dieser Parameter nicht mit übergeben werden. Das heißt natürlich auch, dass alle danach kommenden Parameter ebenfalls optional sein müssen. Ein Beispiel:
"###BEGIN R_EIGENSCHAFT###[_Rolle_][_Feldname_][_Wert_][_Was_=.Name][_M_=][_W_=][_S_=] <TEXT DES MACROS> ###END R_EIGENSCHAFT###"
Die Parameter Rolle, Feldname, Wert müssen befüllt werden, wird danach nichts mehr übergeben, so wird Was auf Name gesetzt und die Paramter M,W und S bleiben leer.
Standardwerte können also im Parameter mit einem angehängten = erfolgen. …[_PARAM1_=StandardWert]…
Parameter sollten immer mit _ (Unterstrich beziehungsweise Underscore , dieser lässt sich mit Shift und Bindestrich machen) beginnen und enden.
In den meisten Fällen lässt sich die Anwendung von Macros vermeiden und die Aufgabe lässt sich mittels Textbausteinen einfacher bewältigen.
|