Einzelnen Beitrag anzeigen

Dummbatz

Registriert seit: 11. Mär 2003
Ort: Wehr
14 Beiträge
 
Delphi 6 Enterprise
 
#1

OpenOffice-Automation - Datenquelle für Serienbrief erstelle

  Alt 17. Nov 2009, 08:56
Hallo zusammen!

Ich bin gerade dabei mit meiner Anwendung OpenOffice zu automatisieren. Bisher klappt alles ganz gut.
Jetzt versuche ich mich an Serienbriefen mit CSV-Dateien als Datenquelle. Diese muss ich in OO als Datenbank anlegen damit sie für den Serienbrief verfügbar sind.

Dazu habe ich ein Beispiel im OOo-Forum gefunden und versucht es nach Delphi zu übersetzen:

Delphi-Quellcode:
var
  fOpenOffice, wDBContext, WDSource, wStruct, wMailMerge: variant;
  wPropertyValue: Variant;


fOpenOffice := CreateOleObject('com.sun.star.ServiceManager');
wDBContext := fOpenOffice.createInstance('com.sun.star.sdb.DatabaseContext');
wDSource := wDBContext.GetByName('file://c:/personen.csv');

wPropertyValue := VarArrayCreate([0, 5], varVariant);
wPropertyValue[0] := IMakePropertyValue('Extension', 'csv');
wPropertyValue[1] := IMakePropertyValue('HeaderLine', true);
wPropertyValue[2] := IMakePropertyValue('FieldDelimiter', ';');
wPropertyValue[3] := IMakePropertyValue('StringDelimiter', '');
wPropertyValue[4] := IMakePropertyValue('DecimalDelimiter', ',');
wPropertyValue[5] := IMakePropertyValue('ThousandDelimiter', '.');

wDSource.setPropertyValue('URL', 'sdbc:flat:file://c:/personen.csv');
wDSource.setPropertyValue('Info', wPropertyValue); // <-- Hier knallt es

wDSource.DatabaseDocument.storeAsURL('file://c:/personen.odb'), VarArrayCreate([0, -1], varVariant));

wDBContext.registerObject('my-personen', wDSource);
In der kommentierten Zeile knallt es, ich bekomme hier eine "com.sun.star.lang.IllegalArgumentException".

Hat jemand eine Idee wieso es knallt und was ich dagegen tun kann? Vielleicht ein funktionierendes Beispiel (Link)?

MfG Thomas.
Thomas
  Mit Zitat antworten Zitat