ARCWAY Cockpit

Standardbeispiel: Erstellen eigener Berichtsvorlagen

Hier finden Sie ein Standardbeispiel, mit dem Sie Schritt für Schritt eine Berichtsvorlage erstellen können. Das Beispiel beschreibt die Erstellung einer Berichtsvorlage für ein DocBook. Möchten Sie einen Bericht in einem anderen Format erstellen, gehen Sie das Beispiel trotzdem komplett durch, da die Unterschiede zu anderen Formaten nur gering sind. Eine Auflistung dieser Abweichungen finden Sie hier.
Beachten Sie auch die Anleitung: Erstellen eigener Berichtsvorlagen.

Beispiel-Header (DocBook)

Der folgenden Beispiel-Header zeigt wie ein Header für eine Berichtsvorlage aussehen könnte:

################### TEMPLATE HEADER #####################
##targetType="docbook"
##templateEncoding="Cp1252"
##targetEncoding="UTF-8"
###########################################################
<?xml version="1.0" encoding="UTF-8"?>

Der Parameter targetType legt fest, dass der Bericht als DocBook erstellt werden soll. Als Zeichenkodierung (Parameter templateEncoding) wird "Cp1252" verwendet. Das targetEncoding muss für DocBooks "UTF-8" sein.
Unter dem Templateheader befindet sich der XML-Header, der bei DocBooks immer an dieser Stelle kommen muss.

Zurück...

DocBook-Beispiel

Der folgende XML-Abschnitt zeigt mit einem einfachen Beispiel die wichtigsten Strukturierungselemente, die von der Dokumentengenerierung des ARCWAY Cockpit unterstützt werden.


<book>
  <title>Titel des Buches</title>
  <subtitle>Untertitel des Buches</subtitle>
  <chapter>
    <title>Titel des Kapitels</title>
    <section>
      <title>Titel des Abschnitts</title>
      <para>
        Dies ist ein Absatz ....
      </para>
      <table>
        <tgroup cols="2">
          <colspec colwidth="35mm"/>
          <colspec colwidth="70mm"/>
          <thead>
            <row>
            <entry>Spalte 1</entry><entry>Spalte 2</entry>
            </row>
          </thead>
          <tbody>
            <row>
            <entry>Feld 1.1</entry><entry>Feld 1.2</entry>
            </row>
            <row>
            <entry>Feld 2.1</entry><entry>Feld 2.2</entry>
            </row>
          </tbody>
          </tgroup>
      </table>
      <para>
        Dies ist ein Absatz mit einer Liste
      </para>
      <para>
        <simplelist type="inline">
          <member>Listenelement 1</member>
          <member>Listenelement 2</member>
          <member>Listenelement 3</member>
        </simplelist>
      </para>
    </section>
  </chapter>
</book>

Mit einer Berichtsvorlage, die einen Header und diesen DocBook-Block enthält, können schon Berichte erstellt werden. Testen Sie Ihren ersten Entwurf, wie hier beschrieben.

Zurück...

DocBook-Beispiel mit Velocity-Anweisungen

Das folgende Beispiel erweitert das DocBook-Beispiel um einige Velocity-Anweisungen:


#macro (title $arg1)
  <title>$arg1</title>
#end

#set ($three = ["1", "2", "3"])
<book>
  #title ("Titel des Buches")
  <subtitle>Untertitel des Buches</subtitle>
  #foreach ($count in $three)
  <chapter>
    #title ("Titel des Kapitels $count")
    <section>
      #title ("Titel des Abschnitts")
      <para>
        Dies ist ein Absatz ....
      </para>
      <table>
        <tgroup cols="2">
          <colspec colwidth="35mm"/>
          <colspec colwidth="70mm"/>
          <thead>
            <row>
            <entry>Spalte 1</entry><entry>Spalte 2</entry>
            </row>
          </thead>
          <tbody>
            <row>
            <entry>Feld 1.1</entry><entry>Feld 1.2</entry>
            </row>
            <row>
            <entry>Feld 2.1</entry><entry>Feld 2.2</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
      <para>
        Dies ist ein Absatz mit einer Liste
      </para>
      <para>
        <simplelist type="inline">
          <member>Listenelement 1</member>
          <member>Listenelement 2</member>
          <member>Listenelement 3</member>
        </simplelist>
      </para>
    </section>
  </chapter>
  #end
</book>

Mit einer Berichtsvorlage, die einen Header und diesen DocBook-Block mit Velocity-Anweisungen enthält, können schon Berichte erstellt werden. Testen Sie Ihren ersten Entwurf, wie hier beschrieben.

Zurück...

DocBook-Beispiel mit ARCWAY Cockpit-Daten

Das folgende Beispiel ändert und erweitert das Velocity-Beispiel um dynamisch eingefügte ARCWAY Cockpit-Daten:


############################################################################
##
## MACRO: title
## Creates the <?title>-tag with the given parameter as content
##
############################################################################
#macro (title $arg1)
  <title>$arg1</title>
#end

############################################################################
##
## MACRO: showRequirementChapter
## Creates a chapter which lists all root requirement sets
##
############################################################################
#macro( showRequirementChapter )
   #if( $arrayHelper.getArraySize( $requirementDataProvider.getAllRequirements() ) > 0)
    <chapter>
      #title ("Anforderungssätze")
      <para role="StandardIndented">Dieses Kapitel listet alle Wurzel Anforderungssätze auf:</para>
             ## add a blank line
      <para role="StandardIndented"></para>
             ## get the root set and start writing the report for the root sets
       #set ($count = 0)
       #foreach( $requirementSet in $requirementDataProvider.getRootRequirementSets() )
         #set ($count = $count + 1)
         <para role="StandardIndented">$count. $requirementSet.getName()</para>
       #end
     </chapter>
   #end
#end

#set ($activeProject = $projectDataProvider.getProject())
<book>
   #title ("Anforderungen aus dem Projekt $activeProject.getName()")
   <subtitle>Automatisch generiert</subtitle>
   #showRequirementChapter()
</book>

Mit einer Berichtsvorlage, die einen Header und diesen DocBook-Block mit Velocity-Anweisungen und ARCWAY Cockpit-Daten enthält, können nun komplette Berichte erstellt werden. Binden Sie die ARCWAY Formatvorlagen ein und testen Sie Ihren ersten kompletten Entwurf, wie hier beschrieben.

Zurück...

Beispiel-Header (andere Formate)

Ändern Sie das obige Beispiel wie hier beschrieben, um eine Berichtsvorlage für andere Formate zu erstellen.

XML

Nehmen Sie den folgenden Header, wenn Sie die Berichtsvorlage mit einem üblichen Windows Texteditor erstellen und der später generierte Bericht ein XML-Dokument sein soll, das kein DocBook ist:

################### TEMPLATE HEADER #####################
##targetType="xml"
##templateEncoding="Cp1252"
##targetEncoding="UTF-8"
###########################################################
<?xml version="1.0" encoding="UTF-8"?>

Der Parameter targetType legt fest, dass der Bericht als XML erstellt werden soll. Als Zeichenkodierung (Parameter templateEncoding) wird "Cp1252" verwendet. Das targetEncoding muss für XML-Dateien "UTF-8" sein.
Unter dem Templateheader befindet sich der XML-Header, der bei XML-Dateien immer an dieser Stelle kommen muss.

CSV

Nehmen Sie den folgenden Header, wenn Sie die Berichtsvorlage mit einem üblichen Windows Texteditor erstellen und der später generierte Bericht eine CSV-Datei sein soll:

################### TEMPLATE HEADER #####################
##targetType="csv"
##templateEncoding="Cp1252"
##targetEncoding="Cp1252"
###########################################################

Der Parameter targetType legt fest, dass der Bericht als CSV erstellt werden soll. Als Zeichenkodierung (Parameter templateEncoding) wird "Cp1252" verwendet. Das targetEncoding ist mit dem Wert "Cp1252" gesetzt.


Zurück...

Abweichungen bei anderen Formaten

XML

Für eine Berichtsvorlage für XML-Dokumente ändern Sie lediglich den Header Ihre Berichtsvorlage wie im obigen Abschnitt Beispiel-Header (andere Formate) beschrieben.

CSV

Um eine Berichtsvorlage für CSV-Dokumente zu erstellen, beachten Sie folgende Hinweise: