Die Klasse TeamWiSE.Runtime.CTVSupport.Schriftgut
bildet alle CTV Schriftgut-Instanzen ab.
Für jeden Typ von Schriftgut wird eine eigene, von Schriftgut
bzw. Document
abgeleitete Klasse erstellt.
string Name { get; }
Liefert den Namen der Schriftgut-Instanz.
string Type { get; }
Liefert den EDB/MDB Typnamen der Schriftgut-Instanz.
string Appl { get; }
Liefert den Namen der Anwendung zu der die Schriftgut-Instanz gehört.
string DisplayName { get; }
Liefert eine garantiert nicht-leere, ggf. technische Überschrift der Schriftgut-Instanz.
1) Liefert eine Liste aller für die Schriftgut-Instanz bekannten Schriftgut-Variablen (SGPV) als Instanz einer Klasse vom Typ ExposedVariablesFor<T>
.
public ExposedVariablesFor<T> ExposedVariables { get; }
Für jeden Schriftgut-Typ gibt es eine eigene, von ExposedVariablesSupport
abgeleitete Klasse ExposedVariablesFor<T>,
die alle für diesen Schriftguttyp definierten Schriftgut-Variablen enthält.
Für Schriftgut, welches explizit in der Basis-Assembly enthalten ist, wird, wenn die Definition der Schriftgutvariablen vom dem Standard für den Schriftgut-Typ abweicht, eine eigene ExposedVariables<T>
-Klasse erzeugt,
basierend auf der Klasse für den Schriftgut-Typ. Die einzige hier für relevante Abweichung ist zur Zeit die Angabe „Änderbar zur Laufzeit“.
Für jeden Typ von Schriftgut wird eine eigene, von Schriftgut
bzw. Document
abgeleitete Klasse erstellt, ebenso für jedes Schriftgut, welches explizit in der Basis-Assembly enthalten ist.
Hierin werden insbesondere Abweichungen in der Nutzung der Schriftgut-Variablen berücksichtigt.
Jeder Schriftguttyp, von dem Instanzen als Top-Level-Schriftgut in der CTV-Engine angelegt werden können (Schriftsatz und Schriftstück-Typen), basiert auf der Klasse Document
.
Zur Zeit unterstützt ist Schriftgut vom Typ
- Schriftsätze: Klasse Schriftsatz
- Schriftstücke: Klasse Schriftstueck
- Massenlisten: Klasse Massenliste
- Bündel: Klasse Buendel
- Statische Dokumente: Klasse StaticDocument
.
Für jedes in der Basis-Assembly((ab V9.11) bekannte Schriftgut gibt es dort eine Klasse <sgutname>
, abgeleitet von der Klasse gemäß dem Schriftgut-Typ.
Diese Typen können z.B. ein einer Switch-Anweisung abgefragt werden:
string ignoreKz = "N"; foreach (var sgut in this.Ctv.Documents) { switch (sgut) { case Schriftstueck sstk: if (int.Parse(this.Services.Application.Version) >= 69) { ignoreKz = sstk.ExposedVariables.DdaIgnoreKz.Value; } break; case SzAnfrage anfrage: // Spezifische Behandlung von bestimmtem Schriftsatz // ... break; case Schriftsatz _: return DocumentPlausi(sgut); default: break; } }