1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| //cette fonction est nécessaire elle sert à créer une propriété de la source de donnée, elle fait appel au système de réflexion
// une version plus aboutie ainsi que beaucoup d'autres fonctions très utiles sont disponibles dans la bibliothèque Delphi_OOo de B. Marcelly (voir site fr.openoffice.org)
function CreatePropertyValue(nom,valeur:variant):variant ;
var
PropertyValue :variant;
begin
CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(PropertyValue);
PropertyValue.Name := nom;
PropertyValue.Value := valeur;
result:=propertyvalue;
end;
Datacontext:=OpenOffice.createInstance('com.sun.star.sdb.DatabaseContext');
// creation d'un tableau dynamique de propertyvalues qui définissent le format de la datasource
arguments:= VarArrayCreate([0,7], varVariant);
arguments[0]:= createPropertyValue('Extension','txt' );
arguments[1]:= createPropertyValue('CharSet','ISO-8859-15') ;//ou 'ISO646-FR1'
arguments[2]:= createPropertyValue('FixedLength',true) ;
arguments[3]:= createPropertyValue('HeaderLine',true) ;
arguments[4]:= createPropertyValue('FieldDelimiter',';') ;
arguments[5]:= createPropertyValue( 'StringDelimiter','"') ;
arguments[6]:= createPropertyValue('DecimalDelimiter','.') ;
arguments[7]:= createPropertyValue('ThousandDelimiter',',') ;
//création de la datasource avec parametres
instance:=Datacontext.createInstance;
//enregistrement dans openoffice
datacontext.registerObject('src1',instance);
// Url de la source de donnée
instance.URL:= 'sdbc:flat:'+ <URL du dossier txt qui contient la source de donnée>;
instance.Info:= arguments; |
Partager