Voilà, je dois réaliser un publipostage openoffice en le pilotant à partir d'une appli delphi. Ce publipostage concerne un .sxw et un .txt (avec des ";" comme séparateurs) Je sais réaliser un publipostage si la source existe dans openoffice, mon problème est que lors de l'installation de l'application , la source ne sera pas dans openoffice... Il me faut donc savoir la créer (on ne va pas demander à un utilisateur lambda de le faire). Je me suis donc renseigné et j'ai trouvé comment créer une DataSource... Celle ci se crée bien mais le problème est qu'elle ne contient aucune table... Comment puis je faire pour qu'elle en contienne ou que celles ci soient visibles.
Je vous passe mon code en même temps (juste pour la DataSource mais si quelqu'un veut le MailMerge en Delphi c'est tout à fait faisable) procedure TTest.bt_creation_datasourceClick(Sender: TObject); var arguments:variant; PropertyValue :variant; CoreReflection: Variant; begin //création d'un database context qui contient toutes les sources de données //connait open office Datacontext:=OpenOffice.createInstance('com.sun.star.sdb.DatabaseContext'); //si openoffice connait la source src1 if Datacontext.hasbyname('src1') then Memo_Enumeration.Lines.Add('src1 trouvé') else begin // Core reflection est utilisé pour pouvoir créer des property value CoreReflection := OpenOffice.createInstance ('com.sun.star.reflection.CoreReflection'); // un tableau dynamique de propertyvalues arguments:= VarArrayCreate([0,7], varVariant); CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(PropertyValue); PropertyValue.Name := 'Extension'; PropertyValue.Value := 'txt'; arguments[0]:= PropertyValue ; PropertyValue.Name := 'Charset'; PropertyValue.Value := 0; arguments[1]:= PropertyValue ; PropertyValue.Name := 'FixedLength'; PropertyValue.Value := true; arguments[2]:= PropertyValue ; PropertyValue.Name := 'HeaderLine'; PropertyValue.Value := true; arguments[3]:= PropertyValue ; PropertyValue.Name := 'FieldDelimiter'; PropertyValue.Value := ';'; arguments[4]:= PropertyValue ; PropertyValue.Name := 'StringDelimiter'; PropertyValue.Value := '"'; arguments[5]:= PropertyValue ; PropertyValue.Name := 'DecimalDelimiter'; PropertyValue.Value := '.'; arguments[6]:= PropertyValue ; PropertyValue.Name := 'ThousandDelimiter'; PropertyValue.Value := ','; arguments[7]:= PropertyValue ; //création de la datasource avec parametres Datasource:=OpenOffice.createInstance('com.sun.star.sdb.DataSource'); //enregistrement dans openoffice datacontext.registerObject('src1',Datasource); Datasource.URL:= 'sdbc:flat:file:///C:/Dossiers/coquery'; Datasource.Info:= arguments; connection:=datasource.getconnection('',''); {datasource.TableFilter.('essai'); datasource.TableTypeFilter.'TABLE';} datasource.TableTypeFilter.getType {connection.tables;} end; end; Je rappelle mon problème vient du fait que le MailMerge ne détecte pas ma table (essai) qui correspond au fichier .txt Sinon toutes mes excuses à Laurent Godard que j'ai importuné sur un mail professionnel alors que cette liste existait...(je ne le savais pas encore) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]