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