SOG-Helpcenter Logo SOG Business - Software

Verwendung von Relationsfeldern in ObjectClasses


Um in der Definition von Objektklassen des DataDictionaries in der Lage zu sein, auf Datenfelder der verwendenden Klasse zu verweisen, ohne dass diese Datenfelder in alle DD's gleich benannt werden müssen, würde die Möglichkeit geschaffen, z.B. folgende Syntax zu verwenden:


  VScript=#obj "dyn.KontoAnwahlCtrl" ":$${PREFIX}$${FIELD}:#RELFIELD#Person,Kunde,Lieferant#2#:::#BTN#"

Erklärung


Der String legt das DD-Attribut VScript fest.

Über "#obj" kann hier ein Script vereinbart werden, dass je nach verwendetem Control ausgewertet wird. (z.B. in einer TextBox, einem ObjectSelector, einem PropertyGrid usw.)

"dyn.KontoAnwahlCtrl" verweisst auf den f401 Datensatz "06KontoAnwahlCtrl" der das Assembly und die Klasse bestimmt, die zur Bearbeitung entsprechender Eingaben verwendung findet.

Damit ein SQLSelector diese Klasse nutzen kann, muss sie das Interface "ISOGTextBoxCombiExtender" implementieren.

In dem folgenden Parameterstring ist für die notwedige Angabe der Satzart der Text "#RELFIELD#Person,Kunde,Lieferant#2#" eingetragen.
Dieser Bedeutet:

Während der Generierung des DDXML (Kommando sogdd2xml) wird für die aktuelle Tabelle eine Relation in den Gruppen "Person", "Kunde" oder "Lieferant" in den Relationskonfigurationsdateien (z.B. "sql\relation\relv2_base_cfg.xml" ) gesucht.
Wird eine entsprechende Zeile gefunden, wird das 2. Datenfeld der Relation als Satzartendatenfeld in das VScript-Attribut generiert.

Beispiel:
Umsetzung für die f010:

relv2_base_cfg.xml:

<Relations>
  <RelationGroup Name="Person">
    <Relation Table="f010" Fields="firma sa konto" Uniq="true" Master="true"/>


ddxml\f010\f010.ddxml:

... vscript="#obj &quot;dyn.KontoAnwahlCtrl&quot; &quot;:${PREFIX}${FIELD}:m_sa:::#BTN#&quot;" ...


Wird keine Relation zum aktuellen DD gefunden, wird kein VScript-Attribut erzeugt.