Schulungsunterlagen mit Übungsaufgaben
Transcrição
Schulungsunterlagen mit Übungsaufgaben
Schulungsunterlagen: ARCWAY Cockpit Report Engine Erstellen und Anpassen von Berichtsvorlagen für ARCWAY Cockpit Agenda 1. Allgemeines zur Berichtsgenerierung 2. DocBook XML 3. Velocity Template Language (VTL) 4. Zugriff auf Cockpit Daten © ARCWAY AG - Schulung Berichtsvorlagen 2 Online Hilfe zu Berichtsvorlagen Verwenden Sie begleitend zu den Übungen die Detailinformationen aus der Cockpit-Online-Hilfe Wie setze ich Berichtsvorlagen ein und wie passe ich sie an? Wie passe ich Formatvorlagen an? Dokumentation der verwendeten DocBook Elemente Dokumentation der Skriptsprache VTL Dokumentation der Schnittstelle zu ARCWAY Cockpit © ARCWAY AG - Schulung Berichtsvorlagen 3 Arbeitsweise der Cockpit Report Engine © ARCWAY AG - Schulung Berichtsvorlagen 4 Online Hilfe zu Berichtsvorlagen Verwenden Sie begleitend zu den Übungen die Detailinformationen aus der Cockpit-Online-Hilfe Wie setze ich Berichtsvorlagen ein und wie passe ich sie an? Wie passe ich Formatvorlagen an? Dokumentation der verwendeten DocBook Elemente Dokumentation der Skriptsprache Dokumentation der Schnittstelle zu ARCWAY Cockpit © ARCWAY AG - Schulung Berichtsvorlagen 5 Berichtsvorlagen - Header Berichtsvorlage muss mit meinem Header beginnen, in dem • das Format des erstellten Berichtes (docBook oder z.B. XML, CVS) • die Codierung der Berichtsvorlage • die Codierung der Ausgabe-Datei eingetragen sind. Für die Erstellung von Word- oder HTML-Dateien ist der folgende Header zu verwenden: ################### TEMPLATE HEADER ##################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> © ARCWAY AG - Schulung Berichtsvorlagen 6 DocBook XML <book> Oberstes Element mit Titel und Untertitel <chapter> <section> <para> Hauptkapitel mit Titel Unterkapitel mit Titel <para> Paragraph mit Text Aufgabe 1 Erstellen Sie eine Berichtsvorlage, die einen Bericht der folgenden Struktur generiert: Aufgabe 1 1. Kapitel A 1.1 Unterkapitel a Dies ist ein Text in Unterkapitel a 2. Kapitel B Dies ist ein Text in Kapitel B 2.1 Unterkapitel b © ARCWAY AG - Schulung Berichtsvorlagen 7 DocBook XML #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> <book> <title>Aufgabe 1</title> <chapter> <title>Kapitel A</title> <section> <title>Unterkapitel a</title> <para>Dies ist ein Text in Unterkapitel a</para> </section> </chapter> <chapter> <title>Kapitel B</title> <para>Dies ist ein Text in Kapitel B</para> <section> <title>Unterkapitel b</title> </section> </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 8 Textstile für Paragraphen <para role= „Textstil“> Standard StandardBold StandardSmall StandardSmallBold • Name einer Formatvorlage in Word • Name einer Klasse in css-Datei … Aufgabe 2 Erstellen Sie eine Berichtsvorlage, die einen Bericht der folgenden Struktur generiert: Aufgabe 2 1. Kapitel A Dies ist ein Text im Format Standard Dies ist ein Text im Format StandardBold Dies ist ein Text im Format StandardSmall Dies ist ein Text im Format StandardSmallBold © ARCWAY AG - Schulung Berichtsvorlagen 9 Textstile für Paragraphen ################### TEMPLATE HEADER ##################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> <book> <title>Aufgabe 2</title> <chapter> <title>Kapitel A</title> <para role=„Standard“>Dies ist ein Text im Format Standard</para> <para role=„StandardBold“>Dies ist ein Text im Format StandardBold</para> <para role=„StandardSmall“>Dies ist ein Text im Format StandardSmall</para> <para role=„StandardSmallBold“>Dies ist ein Text im Format StandardSmallBold</para> </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 10 Tabellen - Strukturdefinition <para> oder <section> oder <chapter> <table> <tgroup> <colspec> Anzahl Spalten (z.B. cols=„2“) … <colspec> Spaltenbreite (z.B. colwidth=„40mm“) <thead> <row> <entry> Kopfzeile mit … <entry> … <entry> Einträgen pro Spalte <tbody> <row> <entry> Tabellenzeilen mit Einträgen pro Spalte … <row> <entry> © ARCWAY AG - Schulung Berichtsvorlagen … <entry> 11 Tabellen - Strukturdefinition Aufgabe 3 Erstellen Sie eine Berichtsvorlage, die einen Bericht der folgenden Struktur generiert: Aufgabe 3 1. Kapitel A Spalte 1 Spalte 2 Spalte 3 Zelle 1.1 Zelle 2.1 Zelle 3.1 Zelle 1.2 Zelle 2.2 Zelle 3.2 Zelle 1.3 Zelle 2.3 Zelle 3.3 © ARCWAY AG - Schulung Berichtsvorlagen 12 Tabellen - Strukturdefinition ################### TEMPLATE HEADER ##################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> <book> <title>Aufgabe 3</title> <chapter> <title>Kapitel A</title> <table> <tgroup cols="3"> <colspec colwidth="40mm"/> <colspec colwidth="40mm"/> <colspec colwidth="40mm"/> <thead> <row><entry>Spalte 1</entry><entry>Spalte </thead> <tbody> <row><entry>Zelle 1.1</entry><entry>Zelle <row><entry>Zelle 1.2</entry><entry>Zelle <row><entry>Zelle 1.3</entry><entry>Zelle </tbody> </tgroup> </table> </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 2</entry><entry>Spalte 3</entry></row> 2.1</entry><entry>Zelle 3.1</entry></row> 2.2</entry><entry>Zelle 3.2</entry></row> 2.3</entry><entry>Zelle 3.3</entry></row> 13 Textstile für Tabellen <table tabstyle= „Tabellenstil“> PropertiesTable Table PropertiesTableWithoutFrame <entry role= „Textstil“> • Name einer Tabellenvorlage in Word • Name einer Klasse in cssDatei Standard StandardBold StandardSmall StandardSmallBold • Name einer Formatvorlage in Word • Name einer Klasse in css-Datei … © ARCWAY AG - Schulung Berichtsvorlagen 14 Textstile für Tabellen Aufgabe 4 Erstellen Sie eine Berichtsvorlage, die einen Bericht der folgenden Struktur generiert: Aufgabe 4 1. Kapitel A Spalte 1 Spalte 2 Standard StandardBold StandardSmallBold StandardSmall © ARCWAY AG - Schulung Berichtsvorlagen Tabellenstil: PropertiesTableWithoutFrame 15 Textstile für Tabellen ################### TEMPLATE HEADER ##################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> <book> <title>Aufgabe 4</title> <chapter> <title>Kapitel A</title> <table tabstyle="PropertiesTableWithoutFrame"> <tgroup cols="2"> <colspec colwidth="40mm"/> <colspec colwidth="40mm"/> <thead> <row><entry>Spalte 1</entry><entry>Spalte 2</entry></row> </thead> <tbody> <row> <entry role="Standard">Standard</entry> <entry role="StandardBold">StandardBold</entry> </row> <row> <entry role="StandardSmallBold">StandardSmallBold</entry> <entry role="StandardSmall">StandardSmall</entry> </row> </tbody> </tgroup> </table> </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 16 Links Navigation im generierten Dokument und zu Webseiten bzw. Dateien Interne Links <anchor id=„eindeutigeID“/> … <link linkend=„eindeutigeID“>Text</link> Externe Links zu Webseite <ulink url=„http://www.arcway.com“>ARCWAY Webseite</ulink> Aufgabe 5 Erstellen Sie eine Berichtsvorlage, die im ersten Kapitel 3 Verweise auf die 3 Unterkapitel in Kapitel 2 enthält. Aufgabe 5 1. Verweise Verweis 1 Verweis 2 Verweis 3 2. Verweiseziele 2.1 Verweisziel 1 2.2 Verweisziel 2 2.3 Verweisziel 3 © ARCWAY AG - Schulung Berichtsvorlagen 17 Links #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> <book> <title>Aufgabe 5</title> <chapter> <title>Verweise</title> <para><link linkend="1">Verweis 1</link></para> <para><link linkend="2">Verweis 2</link></para> <para><link linkend="3">Verweis 3</link></para> </chapter> <chapter> <title>Verweiseziele</title> <section><title><anchor id="1"/>Verweisziel 1</title></section> <section><title><anchor id="2"/>Verweisziel 2</title></section> <section><title><anchor id="3"/>Verweisziel 3</title></section> </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 18 Skriptsprache Velocity Verwenden Sie begleitend zu den Übungen die Detailinformationen aus der Cockpit-Online-Hilfe Wie setze ich Berichtsvorlagen ein und wie passe ich sie an? Wie passe ich Formatvorlagen an? Dokumentation der verwendeten DocBook Elemente Dokumentation der Skriptsprache Dokumentation der Schnittstelle zu ARCWAY Cockpit © ARCWAY AG - Schulung Berichtsvorlagen 19 Velocity Template Language VTL http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html Editoren für VTL: http://wiki.apache.org/velocity/VelocityEditors Konstrukt Beispiel Variablen $meineVariable Methodenaufrufe $meineVariable.methode() Wertzuweisung #set( $name = „Hans“ ) #set( $i = 1 ) #set( $namen = [„Inge“, „Willi“, „Anna“] ) Verzweigung #if ( $i > 0 ) weitere Anweisungen #elseif weitere Anweisungen #else weitere Anweisungen #end Schleife #foreach ( $name in $namen) weitere Anweisungen #end © ARCWAY AG - Schulung Berichtsvorlagen 20 Zuweisung, Verzweigung und Schleife Aufgabe 6 Erstellen Sie eine Berichtsvorlage, in der die Texte „Zeile 1“, „Zeile 2“, „Zeile 3“ und „Zeile 4“ in einer Schleife ausgegeben werden. „Zeile 3“ soll dabei in Fettschrift ausgegeben werden. : Aufgabe 6 1. Zeilen Zeile 1 Zeile 2 Zeile 3 Zeile 4 © ARCWAY AG - Schulung Berichtsvorlagen 21 Zuweisung, Verzweigung und Schleife #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> #set( $lines = ["Zeile 1", "Zeile 2", "Zeile 3", "Zeile 4"] ) <book> <title>Aufgabe 6</title> <chapter> <title>Zeilen</title> #foreach($line in $lines) #if($line == "Zeile 3") <para role="StandardBold">$line</para> #else <para role="Standard">$line</para> #end #end </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 22 Makros Zusammenfassung wiederkehrender Funktionen in Makros Defintion: #macro (makroname $arg1 $arg2) Anweisungen #end Definition muss vor Aufruf erfolgen! Verwendung: #makroname( wert1, $var) Call by Reference! D.h. im Makro kann $var geändert werden! Aufgabe 7 Erstellen Sie eine Berichtsvorlage mit einem Makro „zeilenausgabe“, welches in einer Schleife mit den Werten 1-5 aufgerufen wird und daraufhin die Texte „Zeile 1“, „Zeile 2“, „Zeile 3“ und „Zeile 4“ ausgibt: Aufgabe 7 1. Zeilen Zeile 1 Zeile 2 Zeile 3 Zeile 4 © ARCWAY AG - Schulung Berichtsvorlagen 23 Makros #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> #macro( zeilenausgabe $value ) <para>Zeile $value</para> #end #set( $values = [1,2,3,4,5] ) <book> <title>Aufgabe 7</title> <chapter> <title>Zeilen</title> #foreach($value in $values ) #zeilenausgabe( $value ) #end </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 24 Schnittstelle zu Cockpit Daten Verwenden Sie begleitend zu den Übungen die Detailinformationen aus der Cockpit-Online-Hilfe Wie setze ich Berichtsvorlagen ein und wie passe ich sie an? Wie passe ich Formatvorlagen an? Dokumentation der verwendeten DocBook Elemente Dokumentation der Skriptsprache Dokumentation der Schnittstelle zu ARCWAY Cockpit © ARCWAY AG - Schulung Berichtsvorlagen 25 Benannte Objekte in Cockpit • Einstiegspunkte in das Cockpit-Objektmodell • Detaillierte Schnittstellenbeschreibung in der Cockpit-Hilfe (nur Englisch) Objektname Beschreibung $projectDataProvider Zugriff auf Projekt, Verzeichnisse, Pläne und globale Elemente $requirementDataProvider Zugriff auf Anforderungen und Anforderungssätze $issueDataProvider Zugriff auf Offene Punkte $arrayHelper Hilfsmethoden für den Umgang mit Arrays (da Velocity hier wenig Unterstützung bietet) $csvHelper Hilfsmethoden für die Ausgabe von CSV (Comma Separated Values) Dateien $dateTimeProvider Hilfsmethoden für die Abfrage der aktuelle Uhrzeit und des aktuellen Datums © ARCWAY AG - Schulung Berichtsvorlagen 26 Zugriffe auf Cockpit Projekte Aufgabe 8 Erstellen Sie eine Berichtsvorlage mit einem Kapitel. Der Titel des Kapitels soll der Projektname sein. Im Kapitel wird der Beschreibungstext zum Projekt ausgegeben. Hierfür ist für jede Zeile in der Beschreibung ein Paragraph im Bericht auszugeben.: Aufgabe 8 1. Projektname Beschreibungstext … … … © ARCWAY AG - Schulung Berichtsvorlagen 27 Zugriffe auf Cockpit Projekte #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> #set( $project = $projectDataProvider.getProject() ) <book> <title>Aufgabe 8</title> <chapter> <title>$projectDataProvider.getName()</title> #foreach($line in $projectDataProvider.getDescription()) <para role="Standard">$line</para> #end </chapter> </book> © ARCWAY AG - Schulung Berichtsvorlagen 28 Rekursive Abwicklung von Bäumen Aufgabe 9 Erstellen Sie eine Berichtsvorlage, die für jedes Verzeichnis im Projektnavigator ein Kapitel bzw. Unterkapitel in Word erzeugt und dort den Beschreibungstext ausgibt. Legen Sie dazu eine Verzeichnisstruktur in Cockpit an: Aufgabe 9 1. Kapitel 1 1.1 Unterkapitel 1.1 1.2 Unterkapitel 1.2 2. Kapitel 2 2.1 Unterkapitel 2.1 2.1.1 Unterkapitel 2.1.1 2.1.2 Unterkapitel 2.1.2 2.2 Unterkapitel 2.2 © ARCWAY AG - Schulung Berichtsvorlagen 29 Rekursive Abwicklung von Bäumen #################### TEMPLATE HEADER ###################### ##targetType="docbook" ##templateEncoding="Cp1252" ##targetEncoding="UTF-8" ########################################################### <?xml version="1.0" encoding="UTF-8"?> #set( $project = $projectDataProvider.getProject() ) #macro( writeFolder $folder ) <title>$folder.getName()</title> #foreach($line in $folder.getDescription()) <para role="Standard">$line</para> #end #foreach( $subFolder in $folder.getSubFolders() ) <section> #writeFolder( $subFolder ) </section> #end #end <book> <title>Aufgabe 9</title> #foreach($folder in $project.getRootFolders()) <chapter> #writeFolder( $folder ) </chapter> #end </book> © ARCWAY AG - Schulung Berichtsvorlagen 30 Zugriff auf „weitere Eigenschaften“ • Identifikation der Eigenschaft über eindeutige ID (z.B. custom.effort) • Alle Objekte, für die weitere Eigenschaften angelegt werden können, unterstützen die Methoden der Interface-Spezifikation ICustomPropertiesAccess (Details siehe Cockpit-Hilfe) Methode Beschreibung hasCustomProperties() Prüft, ob für das Objekt weitere Eigenschaften eingerichtet sind. getAllCustomPropertyIDs() Liefert die IDs aller weiteren Eigenschaften des Objektes. getDatatypeDisplaynameOfProperty(propertyTypeID) getDisplaynameOfProperty( propertyTypeID) Liefert Datentyp und Anzeigename der weiteren Eigenschaft. hasPropertyValue(propertyID) Prüft, ob für die weitere Eigenschaft ein Wert gesetzt ist getPropertyAsString(propertyID) getPropertyAsStringArray(propertyID) getPropertyAsStringList(propertyID) getFileProperty(propertyID) Liefert der Wert der Eigenschaft als Zeichenkette, Liste oder Array von Zeichenketten (bei mehrzeiligen Texten) oder als Datei. ... © ARCWAY AG - Schulung Berichtsvorlagen 31 Zugriff auf „weitere Eigenschaften“ Aufgabe 10 Erweitern Sie die Berichtsvorlage derart, das nach der Ausgabe der Beschreibung geprüft wird, ob das Verzeichnis über weitere Eigenschaften verfügt. Sind weitere Eigenschaften angegeben, so sollen diese in der folgenden Form ausgegeben werden: -Ein Paragraph im Format StandardBold für das Label -Ein Paragraph im Format Standard für jede Zeile des Wertes der Eigenschaft bzw. für die Grafik, bei eine Eigenschaft vom Typ „Datei“. Legen Sie verschiedenen weitere Eigenschaften für Verzeichnisse an. Belegen Sie die weiteren Eigenschaften bei einzelnen Verzeichnissen mit Werten und testen Sie Ihren Report. © ARCWAY AG - Schulung Berichtsvorlagen 32 Zugriff auf „weitere Eigenschaften“ . . . #set( $project = $projectDataProvider.getProject() ) #macro( writeFolder $folder ) <title>$folder.getName()</title> #foreach($line in $folder.getDescription()) <para role="Standard">$line</para> #end #foreach( $id in $folder.getAllCustomPropertyIDs()) #if ( $folder.hasPropertyValue( $id ) ) <para role="StandardBold">$folder.getDisplaynameOfProperty( $id )</para> #if($folder.getDatatypeDisplaynameOfProperty( $id ).equals( "Datei" )) <para role="Standard">$folder.getFileProperty( $id )</para> #else #foreach( $line in $folder.getPropertyAsStringList( $id )) <para role="Standard">$line</para> #end #end #end #end #foreach( $subFolder in $folder.getSubFolders() ) <section> #writeFolder( $subFolder ) </section> #end #end <book> <title>Aufgabe 10</title> #foreach($folder in $project.getRootFolders()) . . . © ARCWAY AG - Schulung Berichtsvorlagen 33 Kontakt: ARCWAY AG Alt Moabit 90b 10559 Berlin +49.30.800 9783-0 [email protected] www.arcway.com © ARCWAY AG - Schulung Berichtsvorlagen 34