summaryrefslogtreecommitdiff
path: root/wizards/source/template/Correspondence.xba
diff options
context:
space:
mode:
authorTom Verbeek <tv@openoffice.org>2001-06-08 13:22:17 +0000
committerTom Verbeek <tv@openoffice.org>2001-06-08 13:22:17 +0000
commit3d1f05bb971b31e39c5b3f026f266e2c99eee553 (patch)
tree41f8c2452967b5babdcda189b85f68085e5b8f7d /wizards/source/template/Correspondence.xba
parent16b122fd33e03ac91af1a7d2a9453e04cdb79111 (diff)
#87217# new way of setting db fields in correspondence templates
Diffstat (limited to 'wizards/source/template/Correspondence.xba')
-rw-r--r--wizards/source/template/Correspondence.xba303
1 files changed, 153 insertions, 150 deletions
diff --git a/wizards/source/template/Correspondence.xba b/wizards/source/template/Correspondence.xba
index ce3bf788ab14..927c168da6ab 100644
--- a/wizards/source/template/Correspondence.xba
+++ b/wizards/source/template/Correspondence.xba
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Correspondence" script:language="StarBasic">Option Explicit
Public msgNoTextmark$, msgError$
@@ -10,64 +10,36 @@ Public DialogExited
Public oDocument, oText, oBookMarks, oBookMark, oBookMarkCursor, oBookText as Object
Sub Main
- BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
TemplateDialog = LoadDialog(&quot;Template&quot;, &quot;TemplateDialog&quot;)
DialogModel = TemplateDialog.Model
DialogModel.Step = 2
DialogModel.Optmerge.State = True
- If LoadLanguageCorrespondence() Then
- TemplateDialog.Execute
- End If
+ LoadLanguageCorrespondence()
+ TemplateDialog.Execute
End Sub
Function LoadLanguageCorrespondence() as Boolean
-Dim oDBAccess as Object
-Dim oAddressDialog as Object
-Dim oFields as Object
-
If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) Then
- oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
- sAddressbook = oDBAccess.DataSourceName
- If sAddressbook = &quot;&quot; Then
- oAddressDialog = CreateUnoService(&quot;com.sun.star.ui.AddressBookSourceDialog&quot;)
- oAddressDialog.Execute
- oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
- sAddressbook = oDBAccess.DataSourceName
- If sAddressbook = &quot;&quot; Then
- LoadLanguageCorrespondence() = False
- Exit Function
- End If
- End If
- oFields = oDBAccess.GetByName(&quot;Fields&quot;)
- Table = oDBAccess.GetByName(&quot;Command&quot;)
- sCompany = GetFieldname(oFields, &quot;Company&quot;)
- sFirstName = GetFieldname(oFields, &quot;FirstName&quot;)
- sLastName = GetFieldname(oFields, &quot;LastName&quot;)
- sStreet = GetFieldname(oFields, &quot;Street&quot;)
- sPostalCode = GetFieldname(oFields, &quot;Zip&quot;)
- sCity = GetFieldname(oFields, &quot;City&quot;)
- sState = GetFieldname(oFields, &quot;State&quot;)
- sInitials = GetFieldname(oFields, &quot;Code&quot;)
- sPosition = GetFieldname(oFields, &quot;Position&quot;)
msgNoTextmark$ = GetResText(1303) &amp; Chr(13) &amp; Chr(10) &amp; GetResText(1301)
msgError$ = GetResText(1302)
- DialogModel.Title = GetResText(1303)
+ DialogModel.Title = GetResText(1303+3)
DialogModel.CmdCancel.Label = GetResText(1102)
DialogModel.CmdCorrGoOn.Label = GetResText(1103)
DialogModel.OptSingle.Label = GetResText(1303 + 1)
DialogModel.Optmerge.Label = GetResText(1303 + 2)
+ DialogModel.FrmLetter.Label = GetResText(1303)
LoadLanguageCorrespondence() = True
Else
-&apos; Todo: Meldung, was Passiert wenn Datenbank nicht angelegt werden konnte
- LoadLanguageCorrespondence() = False
+ msgbox(&quot;Warning: Resource could not be loaded!&quot;)
End If
End Function
-Function GetFieldName(oFieldKnot as Object, GeneralFieldName as String)
- If oFieldKnot.HasbyName(GeneralFieldName) Then
- GetFieldName = oFieldKnot.GetbyName(GeneralFieldName).FieldName
+Function GetFieldName(oFieldKnot as Object, GeneralFieldName as String)
+ If oFieldKnot.HasByName(GeneralFieldName) Then
+ GetFieldName = oFieldKnot.GetByName(GeneralFieldName).FieldName
Else
GetFieldName = &quot;&quot;
End If
@@ -77,100 +49,79 @@ End Function
Sub OK
Dim ParaBreak
Dim sDocLang as String
-Dim bMerge as Boolean
- bMerge = DialogModel.Optmerge.State
-&apos; Todo: das muss wieder rein!
- DialogTemplate.EndExecute()
- DialogExited = TRUE
- If bMerge Then
- ParaBreak = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
- oDocument = StarDesktop.ActiveFrame.Controller.Model
- oBookmarks = oDocument.Bookmarks
- oText = oDocument.Text
- If oBookmarks.HasbyName(&quot;Recipient&quot;)Then
- oBookMark = oDocument.BookMarks.GetbyName(&quot;Recipient&quot;)
- Else
- MsgBox msgNoTextmark, 16, msgError
- Exit Sub
- End If
- oBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
- OBookText = oBookMarkCursor.Text
- sDocLang = oDocument.CharLocale.Language
- Select Case sDocLang
- Case &quot;nl&quot;
- InsertDBField(sAddressbook, Table, sCompany)
- oBookMarkCursor.Text.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertBookMarkString(&quot;T.a.v. &quot;)
- InsertDBField(sAddressbook, Table, sFirstName)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sLastName)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sStreet)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sPostalCode)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sCity)
-
- Case &quot;en&quot;
- InsertDBField(sAddressbook, Table, sCompany)
- oBookMarkCursor.Text.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sFirstName)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sLastName)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sStreet)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sCity)
- InsertBookMarkString(&quot;, &quot;)
- InsertDBField(sAddressbook, Table, sState)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sPostalCode)
-
- Case &quot;sv&quot;
- InsertDBField(sAddressbook, Table, sCompany)
- oBookMarkCursor.Text.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sFirstName)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sLastName)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sStreet)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sPostalCode)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sCity)
+Dim bDBFields as Boolean
+Dim oSearchDesc as Object
+Dim oFoundAll as Object
+Dim oFound as Object
+Dim sFoundContent as String
+Dim sFoundString as String
+Dim sDBField as String
+Dim i as Integer
+Dim oDBAccess as Object
+Dim oAddressDialog as Object
+Dim oFields as Object
+Dim oDocSettings as Object
- Case &quot;ru&quot;
- InsertDBField(sAddressbook, Table, sPosition)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sCompany)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sLastName)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sInitials)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sPostalCode)
- InsertBookMarkString(&quot;, &quot;)
- InsertDBField(sAddressbook, Table, sCity)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sStreet)
+ bDBFields = DialogModel.Optmerge.State &apos;db oder PLatzhalter
+
+ If bDBFields Then
+ oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
+ sAddressbook = oDBAccess.DataSourceName
+ If sAddressbook = &quot;&quot; Then
+ oAddressDialog = CreateUnoService(&quot;com.sun.star.ui.AddressBookSourceDialog&quot;)
+ oAddressDialog.Execute
+ oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
+ sAddressbook = oDBAccess.DataSourceName
+ If sAddressbook = &quot;&quot; Then
+ MsgBox(GetResText(1301))
+ Exit Sub
+ End If
+ End If
+ oFields = oDBAccess.GetByName(&quot;Fields&quot;)
+ Table = oDBAccess.GetByName(&quot;Command&quot;)
+ End If
- Case Else
- InsertDBField(sAddressbook, Table, sCompany)
- oBookMarkCursor.Text.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sFirstName)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sLastName)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sStreet)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- oBookText.insertControlCharacter(oBookMarkCursor, ParaBreak, False)
- InsertDBField(sAddressbook, Table, sPostalCode)
- InsertBookMarkString(&quot; &quot;)
- InsertDBField(sAddressbook, Table, sCity)
- End Select
+ TemplateDialog.EndExecute()
+ DialogExited = TRUE
+
+ ParaBreak = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
+ oDocument = StarDesktop.ActiveFrame.Controller.Model
+ If bDBFields Then
+ &apos;set the address db as current db at the document
+ oDocSettings = oDocument.createInstance(&quot;com.sun.star.document.DocumentSettings&quot;)
+ oDocSettings.CurrentDatabaseDataSource = sAddressbook
+ oDocSettings.CurrentDatabaseCommand = Table
+ oDocSettings.CurrentDatabaseCommandType = 0
End If
+ oBookmarks = oDocument.Bookmarks
+ oText = oDocument.Text
+
+ oSearchDesc = oDocument.createsearchDescriptor()
+ oSearchDesc.SearchRegularExpression = True
+ oSearchDesc.SearchWords = True
+ oSearchDesc.SearchString = &quot;&lt;[^&gt;]+&gt;&quot;
+ oFoundall = oDocument.FindAll(oSearchDesc)
+
+ &apos;Loop over the foundings
+ For i = 0 To oFoundAll.Count - 1
+ oFound = oFoundAll.GetByIndex(i)
+ sFoundString = oFound.String
+ &apos;Extract the string inside the brackets
+ sFoundContent = FindPartString(sFoundString,&quot;&lt;&quot;,&quot;&gt;&quot;,1)
+ sFoundContent = LTrim(sFoundContent)
+ &apos; Define the Cursor and place it on the founding
+ oBookmarkCursor = oFound.Text.CreateTextCursorbyRange(oFound)
+ oBookText = oFound.Text
+ If bDBFields Then
+ sDBField = GetFieldname(oFields, sFoundContent)
+ If sDBField &lt;&gt; &quot;&quot; Then
+ InsertDBField(sAddressbook, Table, sDBField)
+ End If
+ Else
+ InsertPlaceholder(sFoundContent)
+ End If
+ Next i
+
End Sub
@@ -190,26 +141,78 @@ Dim oFieldMaster, oField as Object
End Sub
-Sub InsertBookmarkString(sBookmarkString as String)
- oBookText.InsertString(oBookMarkCursor, sBookmarkString, True)
- oBookMarkCursor.CollapseToEnd()
-End Sub
-
-
-Sub LoadLibrary(sLibname as String)
-Dim oArg(0) as new com.sun.star.beans.PropertyValue
-Dim oUrl as new com.sun.star.util.URL
-Dim oTrans as Object
-Dim oDisp as Object
-
- oArg(0).Name = &quot;LibraryName&quot;
- oArg(0).Value = sLibname
-
- oTrans = createUNOService(&quot;com.sun.star.util.URLTransformer&quot;)
- oUrl.Complete = &quot;slot:6517&quot;
- oTrans.parsestrict(oUrl)
-
- oDisp = StarDesktop.currentFrame.queryDispatch(oUrl, &quot;_self&quot;, 0)
- oDisp.dispatch(oUrl, oArg())
+Sub InsertPlaceholder(sColName as String)
+Dim oFieldMaster as Object
+ If sColname &lt;&gt; &quot;&quot; Then
+ oFieldMaster = oDocument.createInstance(&quot;com.sun.star.text.TextField.JumpEdit&quot;)
+ Select Case sColName
+ Case &quot;Company&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+1)
+ Case &quot;Department&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+2)
+ Case &quot;FirstName&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+3)
+ Case &quot;LastName&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+4)
+ Case &quot;Street&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+5)
+ Case &quot;Country&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+6)
+ Case &quot;Zip&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+7)
+ Case &quot;City&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+8)
+ Case &quot;Title&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+9)
+ Case &quot;Position&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+10)
+ Case &quot;AddrForm&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+11)
+ Case &quot;Code&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+12)
+ Case &quot;AddrFormMail&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+13)
+ Case &quot;PhonePriv&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+14)
+ Case &quot;PhoneComp&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+15)
+ Case &quot;Fax&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+16)
+ Case &quot;EMail&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+17)
+ Case &quot;URL&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+18)
+ Case &quot;Note&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+19)
+ Case &quot;Altfield1&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+20)
+ Case &quot;Altfield2&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+21)
+ Case &quot;Altfield3&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+22)
+ Case &quot;Altfield4&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+23)
+ Case &quot;Id&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+24)
+ Case &quot;State&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+25)
+ Case &quot;PhoneOffice&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+26)
+ Case &quot;Pager&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+27)
+ Case &quot;PhoneCell&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+28)
+ Case &quot;PhoneOther&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+29)
+ Case &quot;CalendarURL&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+30)
+ Case &quot;InviteParticipant&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+31)
+ Case Else
+ oFieldMaster.PlaceHolder = sColName
+ End Select
+ oFieldMaster.Hint = getResText(1350)
+ oBookText.InsertTextContent(oBookMarkCursor, oFieldMaster, True)
+ End If
End Sub
</script:module> \ No newline at end of file