DatasetReport

<< Hilfenavigation einblenden

Home > Handbuch > Entwicklerhilfe > Makro-Referenz OmAPI > DatasetReport

DatasetReport

Verfügbar in diesen Editionen

Makro-Prozedur DatasetReport

Datenbank-Report-Generator für Textdateien.

Syntax

{DatasetReport:TemplateFileName,DestFileName,Table[,CopyFormat]}

Parameter

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.

Zusätzliche Variablen

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.

Rückgabewert

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.

BeginLoop-/ EndLoop-Schleife

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

Interner Funktionsablauf bei den Textformaten

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.

Sonderfall Dokumententabelle

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.

Hinweise

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&nbsp;Manager</a></nobr><br>

<nobr>Archiv: {Self:DocDB,Name}, Datum: {Date:Now,dd.mm.yyyy}</nobr><br>

</font></p>

 

</BODY>

</HTML>

Siehe auch

Datenbankexport

Report drucken

Makro-Referenz