ReportWeb Webvorlage

Das Hauptprogramm liest aus der Steuerdatei nicht nur die Report und deren Codemodul aus, sondern auch die HTML-Datei, die es als Vorlage einlesen und das Ergebnis in eine neue Datei schreiben muss. Die Vorlage selbst wird also nicht überschieben oder verändert. Sie sind frei in ihrer Wahl, eine Vorlage mit einem Editor ihrer Wahl zu erstellen. Ich nutze dazu gerne den Sharepoint Designer 2007, welcher kostenfrei ist und mit "DiskWebs" umgehen kann. Es kann aber auch jeder andere Editor sein.

Basiswissen

Eine klassische Webseite, die nicht durch ASPX, PHP Skripte oder darauf aufbauende CMS-Systeme erstellt wird, besteht aus mehreren HTML-Seiten, auf denen Informationen stehe, die miteinander verlinkt sind. Es ist ein guter Stiel, wenn alle Webseiten einem gemeinsamen Design folgen. Daher werden Formatinformationen am besten in einem Stylesheet (CSS-Datei) ausgelagert und ich die HTML-Seiten werden anhand einer Vorlage erstellt. Die meisten Web Authoring Programme erlauben die Erstellung von Vorlagen (DWT-Vorlage) oder Nutzung von Templates. Entsprechend baut sich eine einzelne Seite aus mehreren Bausteinen zusammen..

  • Die Formatierungsanweisung (CSS)
    Nutzen Sie diese Datei, um Schriftarten, Hintergrundfarben, Rahmen etc. anzupassen.
  • Die fixen Bestandteile der HTML Seite
    Diese Informationen werden in der Regel durch das Template bzw. die DWT-Datei vorgegeben. ändern Sie z.B. die DWT-Vorlage mit demi  Sharepoint Designer 2007, dann ändert er nach einer Rückfrage auch alle damit verknüpften Seiten
  • Die dynamisch ausgetauschten Bestandteile
    Die als "variabel" in der Vorlage definierten Abschnitte können nur in der Seite selbst geändert werden und werden bei einer Änderung der Vorlage beibehalten.
  • Verknüpfte Bilder
    Ich nutze oben Links einfach ein Firmenlogo. Zudem können die CSV-Downloads per Stylesheet mit einem Logo versehen werden. Diese Bilder können Sie natürlich entsprechend einfach anpassen.

Um also Reportweb an ihre Belange anzupassen, müssen Sie eigentlich nur die DWT-Vorlage und das Firmenlogo anpassen.

Sie können die mit ausgepackten Vorlagen einfach wie gehabt erst einmal nutzen aber ich gehe davon aus, dass Sie das Aussehen des Reportweb an ihre Belange anpassen wollen. Und das geht so:

  • DWT-Datei
    Schauen Sie sich die Vorlage einfach an. Sie werden vielleicht das das Format etwas anpassen wollen
  • CSS-Datei
    Zum Layout gehört unverrückbar auch die CSS-Datei mit den Formatvorgaben
  • Bilder
    Sie können einfach die Bilder durch eigene Bilder ersetzen. Am interessantesten ist sicher "LOGO.JPG"

Die DWT-Vorlage muss auch die Platzhalter enthalten, damit später das Skript die Orts findet, um die Ergebnisse ein zu pflegen. Der Sharepoint zeigt ihnen diese "Bearbeitbaren Bereiche" auch an

Diese Platzhalter sind in der HTML-Datei auch einfach wieder zu erkennen. Zuerst der Titel

Und hier als Beispiel die anderen Felder in einer Tabelle.

Ich habe hier als Muster einfach "%BEREICHNAME% als Werte eingefügt. für die spätere Verarbeitung ist das aber nicht wichtig. Die PowerShell Skripte suchen per RegEx nach den Kommentaren '<!-- #BeginEditable "bereichname" -->.*<!-- #EndEditable "bereichname" -->' um die Einfügestelle zu finden.

Ich habe die Bereiche in der DWT-Vorlage schon mit DIV und SPAN-Tags gekennzeichnet, damit Sie die Formatierung einfach per CSS anpassen können. Natürlich steht es ihnen frei mit DIV und SPAN ihre eigenen Formatierungsabschnitte einzubauen und auf CSS-Stylesheets zu verweisen. Wichtig sind aber die "grünen" Kommentare, die auch vom Sharepoint Designer und anderen Programmen so verstanden werden.

Denken Sie daran, dass Sie nach einer Änderung der DWT-Vorlage die damit verbundenen Seiten aktualisieren.

HTML-Vorlage

Das Skript "Reportweb-Worker" nutzt aber nicht direkt die DWT-Vorlage, um die Ergebnisreports zu erstellen. Stattdessen gibt es genau eine Seite, die von der DWT-Vorlage abgeleitet wird. Wenn der "Reportweb-worker.ps1" direkt die DWT-Vorlage laden und daraus eine HTML-Datei erstellen würde, dann hätte der Report keine Verbindung mehr zur DWT-Vorlage, sondern ist aus Sicht des Sharepoint Designers eine eigene unabhängige DWT-Vorlage, die eben nur eine HTM-Erweiterung hätte. Wenn der Worker aber eine HTML-Datei als Template nutze, die mit der DWT-Vorlage verbunden ist, dann sind auch alle davon abgeleitete HTML-Reports mit der Datei verbunden.

Wenn Sie die HTML-Datei anschauen, dann sollten Sie das Format der DWT-Vorlage sehen, in der aber mit Ausnahme der Felder die anderen Bereichr grau abgedeckt sind.

Diese HTML-Datei wird dann vom Worker-Prozess angezogen und die Bereiche entsprechend "ersetzt". Das können Sie auch im Code sehen.

Das reale Ersetzen übernimmt im Code dann die Funktion "Replace-htmlregion", die folgenden wesentlichen Bestandteil hat.

Insofern ist das Prinzip natürlich auch erweiterbar. Wenn Sie in der Vorlage weitere "bearbeitbare Bereiche" definieren, können Sie diese im Skript auch befüllen. Dies gilt insbesondere, da ich die Reportmodule so flexibel angelegt, habe, dass Sie zwar nackten HTML-Code liefern können, der dann in "Content" landet. Aber die Reportmodule können auch ein PSObjekt mit flexiblen Properties liefern. Wenn Sie also eine passende "Vorlage" bereit stellen kann ein Bericht verschiedene Zahlen in seiner Vorlage einfügen.

Menu und "default.htm"

Die meisten Administratoren werden ihr Reportweb mit einem Menü versehen. Die PowerShell-Skripte sind (noch) nicht dazu ausgelegt, dynamisch von den Reports gleich das Menü aufzubauen. Es bleibt also ihnen überlassen, in der Vorlage das Menü manuell aufzubauen und auf die zu erwartenden HTM-Datei zu verlinken.

Ich gehe in der Regel umgekehrt vor und sorge erst dafür, dass der Report mindestens einmal erstellt wird und damit schon als HTM-Datei vorliegt. Dann kann ich mit meinem Webeditor die DWT-Vorlage anpassen um den Report in die Menüstruktur einzubinden.

In dem Zuge schnappe ich mir dann auch gleich "default.htm", auf der ich die Reports ebenfalls mit einer Beschreibung aufliste.