xref: /trunk/main/qadevOOo/tests/basic/mod/sw/SwXMailMerge/sw_SwXMailMerge.xba (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
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">
3
4'*************************************************************************
5'
6' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7'
8' Copyright 2000, 2010 Oracle and/or its affiliates.
9'
10' OpenOffice.org - a multi-platform office productivity suite
11'
12' This file is part of OpenOffice.org.
13'
14' OpenOffice.org is free software: you can redistribute it and/or modify
15' it under the terms of the GNU Lesser General Public License version 3
16' only, as published by the Free Software Foundation.
17'
18' OpenOffice.org is distributed in the hope that it will be useful,
19' but WITHOUT ANY WARRANTY; without even the implied warranty of
20' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21' GNU Lesser General Public License version 3 for more details
22' (a copy is included in the LICENSE file that accompanied this code).
23'
24' You should have received a copy of the GNU Lesser General Public License
25' version 3 along with OpenOffice.org.  If not, see
26' <http://www.openoffice.org/license.html>
27' for a copy of the LGPLv3 License.
28'
29'*************************************************************************
30'*************************************************************************
31
32' REQUIRED VARIABLES for interface/service tests:
33
34' com.sun.star.task.XJob:
35Global vXJobArgs(0 to 3) as Variant
36
37' com.sun.star.text.MailMerge
38Global cMailMerge_DocumentURL as String
39
40Dim cDataSourceName  as String
41Dim cDataCommand as String
42Dim oXResultSet as Variant
43
44' Be sure that all variables are dimensioned:
45option explicit
46
47Sub CreateObj()
48
49'*************************************************************************
50' COMPONENT:
51' com.sun.star.sw.SwXMailMerge
52'*************************************************************************
53On Error Goto ErrHndl
54
55    Dim vXJobArg0(0 to 7) as new com.sun.star.beans.NamedValue
56    Dim vXJobArg1(0 to 6) as new com.sun.star.beans.NamedValue
57    Dim vXJobArg2(0 to 9) as new com.sun.star.beans.NamedValue
58    Dim vXJobArg3(0) as new com.sun.star.beans.NamedValue
59    Dim cTestDoc as String
60    Dim cOutputURL as String
61    Dim oXConnection as Variant
62    Dim myBookMarks as Variant
63
64    oObj = createUnoService("com.sun.star.text.MailMerge")
65
66    cTestDoc = utils.Path2URL(cTestDocsDir + "/" + "MailMerge.sxw")
67    cMailMerge_DocumentURL = cTestDoc
68    cOutputURL = ConvertToURL(utils.getUserPath())
69    cDataSourceName  = "Bibliography"
70    cDataCommand = "biblio"
71    oXResultSet = getXResultSet()
72    oXConnection = oXResultSet.ActiveConnection
73
74    ' create arguments for XJob:
75    myBookMarks = getMyBookMarks()
76
77    oObj.DataSourceName = cDataSourceName
78    oObj.Command = cDataCommand
79    oObj.CommandType = com.sun.star.sdb.CommandType.TABLE
80    oObj.OutputType = com.sun.star.text.MailMergeType.FILE
81    oObj.DocumentURL = cTestDoc
82    oObj.OutputURL = cOutputURL
83    oObj.FileNamePrefix = "Author"
84    oObj.FileNameFromColumn = TRUE
85    oObj.Selection = DimArray()
86
87    ' use a simple DataBase with simple Table
88    vXJobArg0(0).Name = "DataSourceName" : vXJobArg0(0).Value = cDataSourceName
89    vXJobArg0(1).Name = "Command" : vXJobArg0(1).Value = cDataCommand
90    vXJobArg0(2).Name = "CommandType" : vXJobArg0(2).Value = com.sun.star.sdb.CommandType.TABLE
91    vXJobArg0(3).Name = "OutputType" : vXJobArg0(3).Value = com.sun.star.text.MailMergeType.FILE
92    vXJobArg0(4).Name = "DocumentURL" : vXJobArg0(4).Value = cTestDoc
93    vXJobArg0(5).Name = "OutputURL" : vXJobArg0(5).Value = cOutputURL
94    vXJobArg0(6).Name = "FileNamePrefix" : vXJobArg0(6).Value = "Identifier"
95    vXJobArg0(7).Name = "FileNameFromColumn" : vXJobArg0(7).Value = true
96
97    ' use a simple DataBase with simple Table and write to printer
98    vXJobArg1(0).Name = "DataSourceName" : vXJobArg1(0).Value = cDataSourceName
99    vXJobArg1(1).Name = "Command" : vXJobArg1(1).Value = cDataCommand
100    vXJobArg1(2).Name = "CommandType" : vXJobArg1(2).Value = com.sun.star.sdb.CommandType.TABLE
101    vXJobArg1(3).Name = "OutputType" : vXJobArg1(3).Value = com.sun.star.text.MailMergeType.PRINTER
102    vXJobArg1(4).Name = "FileNamePrefix" : vXJobArg1(4).Value = "Author"
103    vXJobArg1(5).Name = "FileNameFromColumn" : vXJobArg1(5).Value = true
104    vXJobArg1(6).Name = "DocumentURL" : vXJobArg1(6).Value = cTestDoc
105
106    ' use a XConnection
107    vXJobArg2(0).Name = "ActiveConnection" : vXJobArg2(0).Value = oXConnection
108    vXJobArg2(1).Name = "DataSourceName" : vXJobArg2(1).Value = cDataSourceName
109    vXJobArg2(2).Name = "Command" : vXJobArg2(2).Value = cDataCommand
110    vXJobArg2(3).Name = "CommandType" : vXJobArg2(3).Value = com.sun.star.sdb.CommandType.TABLE
111    vXJobArg2(4).Name = "OutputType" : vXJobArg2(4).Value = com.sun.star.text.MailMergeType.FILE
112    vXJobArg2(5).Name = "ResultSet" : vXJobArg2(5).Value = oXResultSet
113    vXJobArg2(6).Name = "OutputURL" : vXJobArg2(6).Value = cOutputURL
114    vXJobArg2(7).Name = "FileNamePrefix" : vXJobArg2(7).Value = "Identifier"
115    vXJobArg2(8).Name = "FileNameFromColumn" : vXJobArg2(8).Value = true
116    vXJobArg2(9).Name = "Selection" : vXJobArg2(9).Value = myBookMarks()
117
118    vXJobArgs(0) = vXJobArg0()
119    vXJobArgs(1) = vXJobArg1()
120    vXJobArgs(2) = vXJobArg2()
121    vXJobArgs(3) = DimArray()
122
123    out.log("com.sun.star.text.MailMerge created.")
124
125Exit Sub
126ErrHndl:
127    Test.Exception()
128End Sub
129
130Sub XMailMergeEvent()
131    oObj.execute(vXJobArgs(2))
132end sub
133
134Function getXResultSet() as Variant
135    Dim oRowSet as Object
136    oRowSet = createUnoService("com.sun.star.sdb.RowSet")
137    oRowSet.DataSourceName = cDataSourceName
138    oRowSet.Command = cDataCommand
139    oRowSet.CommandType = com.sun.star.sdb.CommandType.TABLE
140    oRowSet.execute()
141    wait(200)
142'    oRowSet.getFirst()
143    getXResultSet() = oRowSet
144end Function
145
146Function getMyBookMarks() as Variant
147    Dim BookMarks(1) as Variant
148    oXResultSet.first()
149    BookMarks(0) = oXResultSet.getBookmark()
150    oXResultSet.next()
151    BookMarks(1) = oXResultSet.getBookmark()
152    getMyBookMarks() = BookMarks()
153end Function
154
155</script:module>
156