Text-Container dynamisch füllen

Previous  Next

 

 

 

01.11.2009

Text-Container dynamisch füllen

 

Auf Ihrer Report-Vorlage können Sie auch Text-Container verwenden die dynamisch mit Text gefüllt werden, z.B. für die Ausgabe  der Seitenzahl, des aktuellen Datums, einer Rechnungsnummer, eines Aktenzeichen. Auch Fließtexte, z.B. AGBs, Rechtliche Hinweise oder Copyrights können als dynamischer Text ausgegeben werden.

 

 

 

 

 

Anders als bei der Ausgabe von Datensätzen werden Text-Container in einer Report-Vorlage mit Werten aus einer Paartabelle (Schlüssel-Wert-Tabelle) dynamisch mit Text gefüllt. Die Paartabelle dient dabei als Daten-Schnittstelle. Verknüpft wird der Text-Container mit der Paartabelle mit Hilfe eines festen Schlüssels. Diesen Schlüssel tragen Sie manuell in den Eigenschaften des Text-Containers bei Datenfeld ein. Der Schlüssel kann eine beliebige Zeichenkette sein und muss daher in Anführungszeichen gesetzt werden. Es ist empfehlenswert einen möglichst aussagekräftigen Schlüsselnamen zu verwenden, um die Zusammenhänge auch später problemlos nachvollziehen zu können. Im Report-Assistenten wird die Paartabelle im letzten Arbeitsschritt der Report-Füllaktion übergeben.

 

Erzeugt wird die Paartabelle jedoch erst während der Laufzeit Ihrer Anwendung mit Hilfe einer Variablen-Definition. Die festen Schlüssel werden der Paartabelle dann mit Hilfe einer Funktion zugewiesen. In welcher Reihenfolge die Schlüssel in der Paartabelle stehen spielt keine Rolle, da die Paartabelle keinen Index besitzt und Zugriffe ausschließlich über den Schlüsselnamen erfolgen.

 

Auch die Werte, die später im Text-Container erscheinen sollen, werden der Paartabelle während der Laufzeit per Funktion aus einer Virtuellen Tabelle zugewiesen und durch die Verknüpfung automatisch an den entsprechenden Text-Container durchgereicht.

 

Hinweis: Der Schlüssel einer Paartabelle kann gewöhnlich ein beliebiger Datentyp sein oder sogar ein Objekt sein. Der Schlüssel einer Paartabelle die Sie mit einem Text-Container in einer Report-Vorlage verknüpfen, muss jedoch immer eine Zeichenkette sein.

 

Ausgangssituation für folgendes Beispiel

Nach einer Datenbank-Abfrage befinden sich Kundendaten in einer Virtuellen Tabelle Kunden. Die Virtuelle Tabelle Kunden besitzt eine Spalte kundennummer in der sich die Kundennummer befindet. Ein bereits existierende Report-Vorlage soll mit dieser Kundennummer erweitert werden.

 

 

1.Klicken Sie Ihre existierende Report-Vorlage im Projektmanagement an, um diese zu bearbeiten und fügen Sie dann rechts oben einen Text-Container ein, um dort die Kundennummer auszugeben.

 

2.Selektieren Sie den Text-Container, klicken Sie in den Eigenschaften bei Datenfeld das Symbol calldialog, und weisen Sie dem Text-Container im folgenden Dialog den  Begriff "kundennummer" als Schlüssel zu. Da es sich bei diesem Schlüssel um eine Zeichenkette handelt, müssen sie den Begriff in Anführungszeichen setzen.

 

 

Hinweis: Beachten Sie, dass der Schlüssel immer genauso lauten muss wie die Spalte der Virtuellen Tabelle, in der sich der Datensatz mit der gewünschten Kundennummer befindet.

 

Spalte der Virtuellen Tabelle = Schlüssel-Name in der Paartabelle = Schlüssel-Name für den Text-Container.

 

3.Wechseln Sie nun in den GUI-Builder, klicken Sie den Button an mit dem der Report aufgerufen wird und wechseln Sie in die Code-Ansicht um die bereits existierende Report-Aktion zu bearbeiten.

 

4.Erzeugen Sie zuerst eine Paartabelle. Fügen Sie dazu vor der Anweisung Report aufrufen die Anweisung Variable: Definition ein, geben Sie im folgenden Dialog bei Name als Variablennamen PaarTabelle_Kundennummer ein, wählen Sie bei Typ Verweis aus und wählen Sie anschließend XdevPaarTabelle aus.

    

 

5.Geben Sie nach der Variablen-Definition ein = ein und wählen Sie in der Funktionsbibliothek bei Erzeuge die Funktion erzeugePaarTabelle ( ) aus, um eine Paartabelle zu erzeugen, die Sie dann mit dem (Variablen-) Namen PaarTabelle_Kundennummer ansprechen können.

     

 

6.Weisen Sie nun der Paartabelle denselben Schlüssel "kundennummer" zu, den Sie zuvor dem Text-Container zugewiesen haben. Fügen Sie dazu die Funktion setze (schlüssel, wert) in den Code-Editor ein, die Sie in der Bibliothek bei Aktuelle Funktion, XdevPaarTabelle kundennummer finden.

 

7.Geben Sie im folgenden Dialog bei Verschiedenes schlüssel den Schlüssel "kundennummer" und bei Verschiedenes wert mit "" eine leere Zeichenkette ein, da die Paartabelle erst später mit Werten aus einer Virtuellen Tabelle Kunden gefüllt wird.

     

          

8.Wählen Sie nun in der Bibliothek bei Virtuelle Tabellen die Virtuelle Tabelle Kunden aus, welche u.A. die gewünschte Kundennummer in der Spalte kundennummer enthält und ziehen Sie die Funktion füllePaarTabelle (zeile, paarTabelle) in den Code-Editor.

 

9.Geben Sie bei Ganzzahl zeile die Zeile ein, in der sich der Datensatz mit der gewünschten Kundennummer befindet. Die Zeilennummer, bzw. die ID des Datensatzes mit der gewünschten Kundennummer wird i.d.R. durch eine vorhergehende Aktion ermittelt und wird in der Praxis hier als Variable oder Funktion übergeben.

 

10.Geben Sie bei paarTabelle, PaarTabelle_Kundennummer ein, da denn dies ist der Variablenname, mit dem die Paartabelle angesprochen werden kann.

 

Hinweis: Diese Funktion liest die Schlüssel der Paartabelle aus und vergleicht diese mit den Spaltennamen der Virtuellen Tabelle. Stimmen Schlüssel und Spaltenname überein, wird der Wert aus der Virtuellen Tabelle ausgelesen. Um den exakten Wert auslesen zu können, muss mit dem Parameter zeile die gewünschte Zeile übergeben werden.

 

11.Klicken Sie nun mit Doppelklick auf die Anweisung Report aufrufen. Übergeben Sie der Report-Aktion bei Schritt 3: Report aufrufen die Paartabelle PaarTabelle_Kundennummer mit Ihren Report-Zusatzdaten bei Parameter (Paartabelle/Hashtable).