Domino 9 und frühere Versionen > ND8: Entwicklung

CSV-Datei für Word-Seriendruck

<< < (2/2)

Axel:

--- Zitat von: jr am 04.09.08 - 20:21:26 ---Die Applikation wird derzeit mit etwa hundert Word-Vorlagen benutzt. Und da ich den Benutzern nicht zumuten kann, jedesmal die benutzten Seriendruckfelder in einer Liste zu hinterlegen, gebe ich einfach alle möglichen Seriendruckfelder aus.

--- Ende Zitat ---

Der Weg ist aber nicht unbedingt der idealste.

In so einem Fall würde ich das Ganze konfigurierbar halten, d.h. über Konfigurationsdokumente. Ich würde pro Vorlage ein Dokument erstellen, die in einem RTF-Feld die Vorlage selbst und in einem weiteren Feld die Namen aller, für den Seriendruck in Frage Felder hinterlegen.

So hast du den Aufwand einmal und die Anwendung wird performanter.

Axel

jr:
Hallo Axel,

habs jetzt mal mit Word 2007 versucht. Auch da sind nur maximal 63 Spalten möglich - schade.

Du hast natürlich recht damit, dass 300 Spalten nicht unbedingt optimal sind. Aber ich sehe da keine andere Lösung. Die meisten Vorlagen liegen schon in Konfiguratonsdokumenten und diese haben auch ein zusätzliches Feld, in das ich normalerweise die Felder eintrage oder beim Excel-Export direkte Zellenzuweisungen in der Form A5 := @Now reinschreiben kann. Das kann ich aber nur machen, wenn ich die Vorlagen selbst erstelle, weil ich dann genau weiß, welche Felder ich benutze. Da die Anwender aber beliebige Seriendruckvorlagen erstellen können, kann ich denen nicht zumuten, danach noch eine Liste mit den Feldern anzulegen.

Vielleicht kurz eine Erläuterung, wie das bei mir funktioniert:

In einem Konfigurationsdokument wird eine Reihe von Seriendruckfeldern definiert. Das sieht dann z. B. so aus:

--- Code: ---Heute       := @Today                              <-- @Formeln
Absender    := @Name([CN]; @UserName)
Empfänger   := sSenderName                         <-- direkte Feldwerte
Hallo       := "Hallo " + Empfänger                <-- Zugriff auf den bereits berechneten Spaltenwert "Empfänger"
Adresse     := @Implode(sSenderAddress; @Char(10)) <-- Mehrfachwert durch Zeilenschaltung getrennt
Preis«1..9» := val := nPrice«x»; @If(val = ""; ""; @Text(val; "C,2"))   <-- Das gibt gleich 9 Spalten!
... usw.

--- Ende Code ---

Wie gesagt, das macht dann so um die 300 Spalten. Die Anwender kennen natürlich nur die Seriendrucknamen, also Heute, Absender, Empfänger, Preis1, usw. und können diese beliebig in Ihren Seriendruckdokumenten benutzen. Außerdem hab ich noch einen Assistenten geschrieben, mit dem Sie sich Seriendruckdokumente erstellen können und alle möglichen Feldnamen werden automatisch mit Werten zur Verfügung gestellt.

Die Geschwindigkeit ist kein Problem, die 300 Werte stehen in null komma nix in der Datei. Die Zeit dafür ist minimal und der Word-Aufruf dauert um ein vielfaches länger als die CSV-Erstellung. Bis die Word-Datei fertig ist dauert es zwischen 5 und 10 Sekunden, ich denke, das ist akzeptabel.

Der Benutzer kann also jedes beliebige Feld einsetzen ohne sich darüber Gedanken machen zu müssen, ob dieses Feld noch irgend wie definiert werden muss.

Nochmals vielen Dank für Deine Hilfe,

Joachim

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln