Home > Handbuch > Entwicklerhilfe > Makro-Referenz OmAPI > DatasetReport DatasetReport |
Datenbank-Report-Generator für Textdateien.
Syntax
{DatasetReport:TemplateFileName,DestFileName,Table[,CopyFormat]}
TemplateFileName: Dateiname der Vorlage. Die Datei wird im Verzeichnis "(Gemeinsame Dateien)\Template" erwartet, wenn sie ohne Pfad angegeben ist.
DestFileName: Vollständiger Dateiname des zu erstellenden Reports. Die Datei darf nicht vorhanden sein.
Table: Programminterne Kennung der Datenbanktabelle oder "AdoDataset". Die Tabelle muss geöffnet sein.
Nur bei Excel-Formaten:
CopyFormat: 0 oder 1. Bei 1 wird auch das Format der Excel-Zelle kopiert. Diese Funktion ist zeitaufwendig, versuchen Sie es zuerst mit 0 = nicht kopieren.
Neben den Standard-Variablen und -Funktionen können auch die folgenden in der Vorlagendatei verwendet werden:
{BeginLoop}: Schleifenbeginn.
{EndLoop}: Schleifenende. Der Bereich zwischen Begin- und EndLoop wird für jeden Datensatz der Tabelle verarbeitet. Diese Anweisungen müssen enthalten sein.
{FieldValue:FieldName}: Die Variable wird durch den Inhalt des mit FieldName bezeichneten Datenfeldes ersetzt.
{ReportRecordCount}: Anzahl der Datensätze.
{ReportRecordNumber}: Nummer des Datensatzes in der Schleife.
Nur bei Text-Formaten:
{BeginLoopDetailName} und {EndLoopDetailName}: Schleifen durch Detailtabellen.
Nur bei Excel-Formaten:
{EndOfSheet}: Excel-Arbeitsblätter enthalten oft sehr viele leere Zeilen, dessen Abarbeitung unnötig Zeit kostet. Zur Beschleunigung können Sie die Variable unterhalb der letzten Zeile eingeben. Die nachfolgenden Zeilen werden dann ignoriert.
Keiner, die Anweisung wird nach Ausführung durch einen Leerstring ersetzt.
Beschreibung
Ermöglicht die benutzerdefinierte Erstellung von tabellenbasierten Berichten aus Datenbank-Quellen, wie beispielsweise eine Dokumentenübersicht.
Als Vorlage kann eine Excel- oder eine beliebige Textdatei, wie HTML verwendet werden. Das Programm ersetzt die enthaltenen Variablen durch die Tabellendaten. Es werden alle Dokumente der aktuellen Suche ausgegeben.
Excel-Format
Microsoft Office Excel muss auf dem Rechner installiert sein, Office Manager nutzt das Programm per COM-Automatisierung für die Erstellung des Reports. Schleifen durch Detailtabellen sind derzeit nicht möglich.
Halten Sie für die Daten-Schleife beim Excel-Format bitte folgende Vorgabe genau ein. Die Begin- und EndLoop-Variablen müssen in der ersten Spalte enthalten sein. Es sind immer drei Zeilen nötig, eine mit BeginLoop, eine als Vorlage für die Daten und die dritte Zeile mit EndLoop:
1.Zeile n: {BeginLoop} in erster Spalte. Diese Zeile dient nur der Schleifen-Einleitung und wird gelöscht.
2.Zeile n+1: Datenzeile, die für alle Datensätze kopiert und ausgewertet wird.
3.Zeile n+2: {EndLoop} in erster Spalte. Diese Zeile dient nur der Erkennung des Schleifen-Endes und wird gelöscht.
Text-Format
1.Die Vorlagendatei wird eingelesen und in drei Bereiche aufgeteilt: Header bis zur Anweisung {BeginLoop}, Content zwischen {BeginLoop} und {EndLoop}, Footer ab {EndLoop}.
2.Header und Footer werden durch den OmAPI-Interpreter verarbeitet.
3.Programminterne Schleife für alle Datensätze der Tabelle mit Content: In einer Unterschleife durch alle Felder der Tabelle werden die Variablen {FieldValue:FieldName} durch die Daten ersetzt. Anschließend wird Content vom OmAPI-Interpreter verarbeitet.
4.Rückkehr zum zuvor markierten Datensatz in der Tabelle und Speichern des Textes in die Zieldatei.
Wenn Sie einen Report der Dokumententabelle (document oder docarch) des derzeit geöffneten Archives erstellen, können Sie auch die Detailtabellen der Versionen und des Protokolls ausgeben. Verwenden Sie hierfür die Schleifenanweisungen {BeginLoopDetailDocvers} und {EndLoopDetailDocvers} für die Versionstabelle, {BeginLoopDetailDocPrtcl} für das Protokoll.
•Die Hauptschleife BeginLoop/EndLoop muss immer genau einmal vorhanden sein.
•Detailschleifen mit BeginLoopDetailDocvers, BeginLoopDetailDocptrcl und dem entsprechenden EndLoop sind nur in der Dokumententabelle des geöffneten Archivs möglich und dürfen maximal je einmal vorhanden sein.
•Wenn Sie für die Haupttabelle einen nicht vorhandenen Feldnamen angeben, dann bleibt die Variable "{FieldValue:unbekannt}" erhalten.
•Wenn in einer Detailtabelle ein nicht vorhandenes Feld angegeben ist, dann wird dieses eventuell mit den Daten der Haupttabelle gefüllt. Sie erhalten dann aber auch eine entsprechende Warnung.
Beispiel 1
Eine Text-Vorlage zum Kennenlernen des Report-Generators:
{BeginLoop}
Dokument {ReportRecordNumber}/{ReportRecordCount}
Name : {FieldValue:Name}
Projekt: {FieldValue:Project}
Dokumentversionen:
{BeginLoopDetailDocVers} {ReportRecordNumber}
{EndLoopDetailDocVers}
Protokoll:
{BeginLoopDetailDocPrtcl} - {FieldValue:CreateDate}: {FieldValue:UserName} {FieldValue:Protocol}
{EndLoopDetailDocPrtcl}
------------------------------------------------------------
{EndLoop}
Beispiel 2
Eine HTML-Tabelle:
<HTML>
<HEAD>
<TITLE>DMS-Report</TITLE>
</HEAD>
<BODY bgcolor=white>
<TABLE BORDER=0 CELLSPACING=0 WIDTH=1154>
<TR>
<TD NOWRAP ALIGN=CENTER HEIGHT=0px>{FieldAttribute:DocDB,project,Caption}</TD>
<TD NOWRAP ALIGN=CENTER HEIGHT=0px>{FieldAttribute:DocDB,docno,Caption}</TD>
<TD NOWRAP ALIGN=CENTER HEIGHT=0px>{FieldAttribute:DocDB,name,Caption}</TD>
<TD NOWRAP ALIGN=CENTER HEIGHT=0px>{FieldAttribute:DocDB,filename,Caption}</TD>
</TR>
{BeginLoop}
<TR>
<TD NOWRAP ALIGN=LEFT HEIGHT=0px>{FieldValue:Project}</TD>
<TD NOWRAP ALIGN=LEFT HEIGHT=0px>{FieldValue:DocNo}</TD>
<TD NOWRAP ALIGN=LEFT HEIGHT=0px>{FieldValue:Name}</TD>
<TD NOWRAP ALIGN=LEFT HEIGHT=0px><a title="{FieldValue:ApplName}" target="_blank" href="{FieldValue:FileName}">{FieldValue:FileName}</a></TD>
</TR>
{EndLoop}
</TABLE>
<br>
<p align="center"><font size="1" face="Arial">
____________________________________________________________________________________________<br>
<nobr>Erstell mit <a href="https://www.officemanager.de/" target="_blank">Office Manager</a></nobr><br>
<nobr>Archiv: {Self:DocDB,Name}, Datum: {Date:Now,dd.mm.yyyy}</nobr><br>
</font></p>
</BODY>
</HTML>
Siehe auch