Excel-Berichte
Es ist möglich, Daten aus dem Programm an Excel-Dokumente zu übergeben.
Das Programm ersetzt in der Excel-Datei Platzhalter. Es stehen die selben Platzhalter zur Verfügung wie auch in den “normalen” Formularen. Informationen zu diesen Platzhalten finden sich hier:
Konfiguration
Es sind 2 Dateien nötig um die Übergabe von Daten an ein Excel-Dokument zu ermöglichen:
- Eine Excel-Vorlage (.xlt-Datei)
- Eine XML-Konfigurationsdatei
In die Excel-Vorlage werden die Platzhalter eingetragen. Darüber hinaus kann diese Vorlage natürlich beliebige Texte, Diagramme, Formeln, Verweise enthalten.
In der XML-Datei stehen die Informationen zur Excel-Vorlage sowie über die Bereiche, in welche Daten eingefügt werden sollen.
Zusätzlich muss die Druck-Konfiguration des Programms ergänzt werden. In die Druck-Konfiguration wird ein Verweis auf die XML-Konfigurationsdatei eingetragen. Das bedeutet, die Übergabe von Daten an Excel erfolgt durch das Auslösen eines Druck-Vorganges (z.B. durch Klicken auf eine Drucken-Schaltfläche). Es wird allerdings dann kein Formular gedruckt, sondern eine neue Excel-Datei aus einer Excel-Vorlage erstellt und die Daten werden durch das Ersetzen von Platzhalten in die neue Excel-Datei eingetragen.
XML-Konfigurations-Datei
In der XML-Konfigurationsdatei wird angegeben, welche Excel-Datei (.xlt-Datei) geladen werden soll. Außerdem wird eingetragen, in welchen Bereichen nach Platzhaltern gesucht werden sollen.
Beispiel:
<?xml version="1.0" encoding="ISO-8859-1"?>
<report>
<template>{rep}/Common/Auswertung.xlt</template>
<range>
<name>Anlagedaten</name>
<repeat>false</repeat>
</range>
<range>
<name>Betriebsdaten</name>
</range>
</report>
Die Bereiche, in welchen Platzhalter gesucht und ersetzt werden sollen, werden in range-Tags angegeben. Im untergeordneten Tag name wird der Name eines benannten Bereiches in der Excel-Datei angegeben. Es ist also notwendig, in der Excel-Datei benannte Bereiche zu definieren (siehe unten).
- Im
template
-Tag wird der Pfad zur Excel-Datei angegeben. Dabei können Pfad-Platzhalter verwendet werden, wie hier beschrieben: /docs/formulare.html#besondere-platzhalter-pfadangaben - Es können mehrere range-Tags angegeben werden. Innerhalb eines range-Tags werden Informationen zu den Bereichen angegeben, in denen Platzhalter gesucht werden sollen.
- Der
name
-Tag muss unterhalb von jedem range-Tag einmal angegeben werden. Hier wird der Name des benannten Bereiches in der Excel-Datei angegeben (siehe unten). - Der
repeat
-Tag ist optional und muss nicht angegeben werden. Normalerweise wird vom Programm ein benannter Bereich kopiert, bearbeitet und bei Bedarf mehrmals wieder in die Excel-Datei eingefügt. Das kann aber dazu führen, dass Verweise auf Zellen in diesem Bereich nicht funktionieren. Mit dem Tag<repeat>false</repeat>
kann dieses Verhalten geändert werden: Es wird dann der Bereich direkt bearbeitet und Verweise bleiben erhalten.
Excel-Datei
In der Excel-Datei werden die Bereiche, in der Platzhalter ersetzt werden sollen, folgendermaßen definiert:
- Zuerst werden die gewünschten Zellen markiert
- Mit dem Excel-Menü “Einfügen -> Namen -> Definieren” wird der Dialog zum Definieren von Namen geöffnet
- Im Feld “Name in der Arbeitsmappe” wird der gewünschte Name eingetragen, der mit dem Eintrag in einem der name-Tags in der XML-Konfigurationsdatei übereinstimmen muss
- Durch Klicken auf die Schaltfläche “Hinzufügen” wird der Bereich erstellt. Mit Klicken auf “OK” kann der Dialog wieder geschlossen werden
XML-Datei
Die Druck-Konfiguration erfolgt grundsätzlich genau so, wie es bei den “normalen” Formularen auch nötig ist. Informationen dazu finden sich hier: /docs/druck-konfiguration.html#konfigurationsdatei
Für die Konfiguration und Zuordnung der Druckvorgänge zu Formularen wird die Datei <Anwendungsname>.PrintSettings.xml
verwendet. Sie finden diese Datei im Verzeichnis INSTALLATIONS_VERZEICHNIS/profiles/default/conf/
Ein normaler Eintrag in der Druck-Konfiguration sieht in etwa so aus:
<object class="BusinessObjects.Order">
<job name="Angezeigter Name im Druck-Button" >
<template>
<filename>
[Pfad zur Formulardatei (XML-Dokument)]
</filename>
</template>
</job>
</object>
Wenn anstelle eines Ausdrucks eine Excel-Datei erstellt werden soll, dann kann so ein Eintrag um einen zusätzlichen job-Bereich ergänzt werden:
<object class="BusinessObjects.Order">
<job name="Angezeigter Name im Druck-Button" >
<template>
<filename>
[Pfad zur Formulardatei (XML-Dokument)]
</filename>
</template>
</job>
<job name="Excel-Auswertung">
<template>
<type>MsExcel</type>
<filename>{rep}/Common/Auswertung.xml</filename>
</template>
</job>
</object>
Mit dem zusätzlichen type-Tag wird das Programm veranlasst, statt des normalen Druck-Moduls das MS-Excel-Modul zu verwenden.
Im Tag filename wird nun der Pfad zur oben beschriebenen XML-Konfigurationsdatei angeben.