Est ce quelqu'un a déjà réussi à en créer un et à s'en servir correctement?
Je dois réaliser un publipostage avec OOo ce que je sais faire en le pilotant de delphi mais pour des raisons de sécurité il faudrait que je puisse créer le datasource du publipostage.
J'arrive à en créer un mais il ne contient aucune table (ennuyeux).
Si quelqu'un a déjà réalisé cette opération qu'il me vienne en aide SVP.![]()
voilà mon code...
[/b]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 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'); datacontext.registerObject('src1',Datasource); Datasource.URL:= 'sdbc:flat:file:///C:/Dossiers/coquery/'; Datasource.Info:= arguments; {datasource.TableFilter:=('essai'); datasource.TableTypeFilter:= ('TABLE');} connection:=datasource.getconnection('',''); end; end;
Partager