1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <script:module xmlns:
script=
"http://openoffice.org/2000/script" script:
name=
"sw_SwXMailMerge" script:
language=
"StarBasic">
4 '*************************************************************************
6 ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8 ' Copyright
2008 by Sun Microsystems, Inc.
10 ' OpenOffice.org - a multi-platform office productivity suite
12 ' $RCSfile: sw_SwXMailMerge.xba,v $
16 ' This file is part of OpenOffice.org.
18 ' OpenOffice.org is free software: you can redistribute it and/or modify
19 ' it under the terms of the GNU Lesser General Public License version
3
20 ' only, as published by the Free Software Foundation.
22 ' OpenOffice.org is distributed in the hope that it will be useful,
23 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
24 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 ' GNU Lesser General Public License version
3 for more details
26 ' (a copy is included in the LICENSE file that accompanied this code).
28 ' You should have received a copy of the GNU Lesser General Public License
29 ' version
3 along with OpenOffice.org. If not, see
30 '
<http://www.openoffice.org/license.html
>
31 ' for a copy of the LGPLv3 License.
33 '*************************************************************************
34 '*************************************************************************
36 ' REQUIRED VARIABLES for interface/service tests:
38 ' com.sun.star.task.XJob:
39 Global vXJobArgs(
0 to
3) as Variant
41 ' com.sun.star.text.MailMerge
42 Global cMailMerge_DocumentURL as String
44 Dim cDataSourceName as String
45 Dim cDataCommand as String
46 Dim oXResultSet as Variant
48 ' Be sure that all variables are dimensioned:
53 '*************************************************************************
55 ' com.sun.star.sw.SwXMailMerge
56 '*************************************************************************
59 Dim vXJobArg0(
0 to
7) as new com.sun.star.beans.NamedValue
60 Dim vXJobArg1(
0 to
6) as new com.sun.star.beans.NamedValue
61 Dim vXJobArg2(
0 to
9) as new com.sun.star.beans.NamedValue
62 Dim vXJobArg3(
0) as new com.sun.star.beans.NamedValue
63 Dim cTestDoc as String
64 Dim cOutputURL as String
65 Dim oXConnection as Variant
66 Dim myBookMarks as Variant
68 oObj = createUnoService(
"com.sun.star.text.MailMerge")
70 cTestDoc = utils.Path2URL(cTestDocsDir +
"/" +
"MailMerge.sxw")
71 cMailMerge_DocumentURL = cTestDoc
72 cOutputURL = ConvertToURL(utils.getUserPath())
73 cDataSourceName =
"Bibliography"
74 cDataCommand =
"biblio"
75 oXResultSet = getXResultSet()
76 oXConnection = oXResultSet.ActiveConnection
78 ' create arguments for XJob:
79 myBookMarks = getMyBookMarks()
81 oObj.DataSourceName = cDataSourceName
82 oObj.Command = cDataCommand
83 oObj.CommandType = com.sun.star.sdb.CommandType.TABLE
84 oObj.OutputType = com.sun.star.text.MailMergeType.FILE
85 oObj.DocumentURL = cTestDoc
86 oObj.OutputURL = cOutputURL
87 oObj.FileNamePrefix =
"Author"
88 oObj.FileNameFromColumn = TRUE
89 oObj.Selection = DimArray()
91 ' use a simple DataBase with simple Table
92 vXJobArg0(
0).Name =
"DataSourceName" : vXJobArg0(
0).Value = cDataSourceName
93 vXJobArg0(
1).Name =
"Command" : vXJobArg0(
1).Value = cDataCommand
94 vXJobArg0(
2).Name =
"CommandType" : vXJobArg0(
2).Value = com.sun.star.sdb.CommandType.TABLE
95 vXJobArg0(
3).Name =
"OutputType" : vXJobArg0(
3).Value = com.sun.star.text.MailMergeType.FILE
96 vXJobArg0(
4).Name =
"DocumentURL" : vXJobArg0(
4).Value = cTestDoc
97 vXJobArg0(
5).Name =
"OutputURL" : vXJobArg0(
5).Value = cOutputURL
98 vXJobArg0(
6).Name =
"FileNamePrefix" : vXJobArg0(
6).Value =
"Identifier"
99 vXJobArg0(
7).Name =
"FileNameFromColumn" : vXJobArg0(
7).Value = true
101 ' use a simple DataBase with simple Table and write to printer
102 vXJobArg1(
0).Name =
"DataSourceName" : vXJobArg1(
0).Value = cDataSourceName
103 vXJobArg1(
1).Name =
"Command" : vXJobArg1(
1).Value = cDataCommand
104 vXJobArg1(
2).Name =
"CommandType" : vXJobArg1(
2).Value = com.sun.star.sdb.CommandType.TABLE
105 vXJobArg1(
3).Name =
"OutputType" : vXJobArg1(
3).Value = com.sun.star.text.MailMergeType.PRINTER
106 vXJobArg1(
4).Name =
"FileNamePrefix" : vXJobArg1(
4).Value =
"Author"
107 vXJobArg1(
5).Name =
"FileNameFromColumn" : vXJobArg1(
5).Value = true
108 vXJobArg1(
6).Name =
"DocumentURL" : vXJobArg1(
6).Value = cTestDoc
111 vXJobArg2(
0).Name =
"ActiveConnection" : vXJobArg2(
0).Value = oXConnection
112 vXJobArg2(
1).Name =
"DataSourceName" : vXJobArg2(
1).Value = cDataSourceName
113 vXJobArg2(
2).Name =
"Command" : vXJobArg2(
2).Value = cDataCommand
114 vXJobArg2(
3).Name =
"CommandType" : vXJobArg2(
3).Value = com.sun.star.sdb.CommandType.TABLE
115 vXJobArg2(
4).Name =
"OutputType" : vXJobArg2(
4).Value = com.sun.star.text.MailMergeType.FILE
116 vXJobArg2(
5).Name =
"ResultSet" : vXJobArg2(
5).Value = oXResultSet
117 vXJobArg2(
6).Name =
"OutputURL" : vXJobArg2(
6).Value = cOutputURL
118 vXJobArg2(
7).Name =
"FileNamePrefix" : vXJobArg2(
7).Value =
"Identifier"
119 vXJobArg2(
8).Name =
"FileNameFromColumn" : vXJobArg2(
8).Value = true
120 vXJobArg2(
9).Name =
"Selection" : vXJobArg2(
9).Value = myBookMarks()
122 vXJobArgs(
0) = vXJobArg0()
123 vXJobArgs(
1) = vXJobArg1()
124 vXJobArgs(
2) = vXJobArg2()
125 vXJobArgs(
3) = DimArray()
127 out.log(
"com.sun.star.text.MailMerge created.")
134 Sub XMailMergeEvent()
135 oObj.execute(vXJobArgs(
2))
138 Function getXResultSet() as Variant
139 Dim oRowSet as Object
140 oRowSet = createUnoService(
"com.sun.star.sdb.RowSet")
141 oRowSet.DataSourceName = cDataSourceName
142 oRowSet.Command = cDataCommand
143 oRowSet.CommandType = com.sun.star.sdb.CommandType.TABLE
147 getXResultSet() = oRowSet
150 Function getMyBookMarks() as Variant
151 Dim BookMarks(
1) as Variant
153 BookMarks(
0) = oXResultSet.getBookmark()
155 BookMarks(
1) = oXResultSet.getBookmark()
156 getMyBookMarks() = BookMarks()