mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2026-03-25 18:43:50 +08:00
优化项目结构、优化 maven 结构
This commit is contained in:
@@ -0,0 +1,306 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||
<!--***********************************************************
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
***********************************************************-->
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Correspondence" script:language="StarBasic">Option Explicit
|
||||
|
||||
Public msgNoTextmark$, msgError$
|
||||
Public sAddressbook$
|
||||
Public Table
|
||||
Public sCompany$, sFirstName$, sLastName$, sStreet$, sPostalCode$, sCity$, sState$, sInitials$, sPosition$
|
||||
Public DialogExited
|
||||
Public oDocument, oText, oBookMarks, oBookMark, oBookMarkCursor, oBookText as Object
|
||||
Public bTemplate, bDBFields as Boolean
|
||||
|
||||
Sub Main
|
||||
bTemplate = true
|
||||
BasicLibraries.LoadLibrary("Tools")
|
||||
TemplateDialog = LoadDialog("Template", "TemplateDialog")
|
||||
DialogModel = TemplateDialog.Model
|
||||
DialogModel.Step = 2
|
||||
DialogModel.Optmerge.State = True
|
||||
LoadLanguageCorrespondence()
|
||||
TemplateDialog.Execute
|
||||
TemplateDialog.Dispose()
|
||||
End Sub
|
||||
|
||||
|
||||
Sub Placeholder
|
||||
bTemplate = false
|
||||
BasicLibraries.LoadLibrary("Tools")
|
||||
LoadLanguageCorrespondence()
|
||||
bDBFields = false
|
||||
OK()
|
||||
End Sub
|
||||
|
||||
|
||||
Sub Database
|
||||
bTemplate = false
|
||||
BasicLibraries.LoadLibrary("Tools")
|
||||
LoadLanguageCorrespondence()
|
||||
bDBFields = true
|
||||
OK()
|
||||
End Sub
|
||||
|
||||
|
||||
Function LoadLanguageCorrespondence() as Boolean
|
||||
If InitResources("'Template'", "tpl") Then
|
||||
msgNoTextmark$ = GetResText(1303) & Chr(13) & Chr(10) & GetResText(1301)
|
||||
msgError$ = GetResText(1302)
|
||||
If bTemplate Then
|
||||
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)
|
||||
End If
|
||||
LoadLanguageCorrespondence() = True
|
||||
Else
|
||||
msgbox("Warning: Resource could not be loaded!")
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
Function GetFieldName(oFieldKnot as Object, GeneralFieldName as String)
|
||||
If oFieldKnot.HasByName(GeneralFieldName) Then
|
||||
GetFieldName = oFieldKnot.GetByName(GeneralFieldName).AssignedFieldName
|
||||
Else
|
||||
GetFieldName = ""
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
Sub OK
|
||||
Dim ParaBreak
|
||||
Dim sDocLang as String
|
||||
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 oAddressPilot as Object
|
||||
Dim oFields as Object
|
||||
Dim oDocSettings as Object
|
||||
Dim oContext as Object
|
||||
Dim bDBvalid as Boolean
|
||||
'On Local Error Goto GENERALERROR
|
||||
|
||||
If bTemplate Then
|
||||
bDBFields = DialogModel.Optmerge.State 'database or placeholder
|
||||
TemplateDialog.EndExecute()
|
||||
DialogExited = TRUE
|
||||
End If
|
||||
|
||||
If bDBFields Then
|
||||
oDBAccess = GetRegistryKeyContent("org.openoffice.Office.DataAccess/AddressBook/")
|
||||
sAddressbook = oDBAccess.DataSourceName
|
||||
|
||||
bDBvalid = false
|
||||
oContext = createUnoService( "com.sun.star.sdb.DatabaseContext" )
|
||||
|
||||
If (not isNull(oContext)) Then
|
||||
'Is the previously assigned address data source still valid?
|
||||
bDBvalid = oContext.hasByName(sAddressbook)
|
||||
end if
|
||||
|
||||
If (bDBvalid = false) Then
|
||||
oAddressPilot = createUnoService("com.sun.star.ui.dialogs.AddressBookSourcePilot")
|
||||
oAddressPilot.execute
|
||||
|
||||
oDBAccess = GetRegistryKeyContent("org.openoffice.Office.DataAccess/AddressBook/")
|
||||
sAddressbook = oDBAccess.DataSourceName
|
||||
If sAddressbook = "" Then
|
||||
MsgBox(GetResText(1301))
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
oFields = oDBAccess.GetByName("Fields")
|
||||
Table = oDBAccess.GetByName("Command")
|
||||
End If
|
||||
|
||||
ParaBreak = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
|
||||
oDocument = ThisComponent
|
||||
If bDBFields Then
|
||||
'set the address db as current db at the document
|
||||
oDocSettings = oDocument.createInstance("com.sun.star.document.Settings")
|
||||
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 = "<[^>]+>"
|
||||
oFoundall = oDocument.FindAll(oSearchDesc)
|
||||
|
||||
'Loop over the foundings
|
||||
For i = oFoundAll.Count -1 To 0 Step -1
|
||||
oFound = oFoundAll.GetByIndex(i)
|
||||
sFoundString = oFound.String
|
||||
'Extract the string inside the brackets
|
||||
sFoundContent = FindPartString(sFoundString,"<",">",1)
|
||||
sFoundContent = LTrim(sFoundContent)
|
||||
' 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 <> "" Then
|
||||
InsertDBField(sAddressbook, Table, sDBField)
|
||||
Else
|
||||
InsertPlaceholder(sFoundContent)
|
||||
End If
|
||||
Else
|
||||
InsertPlaceholder(sFoundContent)
|
||||
End If
|
||||
Next i
|
||||
If bDBFields Then
|
||||
'Open the DB beamer with the right DB
|
||||
Dim oDisp as Object
|
||||
Dim oTransformer
|
||||
Dim aURL as new com.sun.star.util.URL
|
||||
aURL.complete = ".component:DB/DataSourceBrowser"
|
||||
oTransformer = createUnoService("com.sun.star.util.URLTransformer")
|
||||
oTransformer.parseStrict(aURL)
|
||||
oDisp = oDocument.getCurrentController.getFrame.queryDispatch(aURL, "_beamer", com.sun.star.frame.FrameSearchFlag.CHILDREN + com.sun.star.frame.FrameSearchFlag.CREATE)
|
||||
Dim aArgs(3) as new com.sun.star.beans.PropertyValue
|
||||
aArgs(1).Name = "DataSourceName"
|
||||
aArgs(1).Value = sAddressbook
|
||||
aArgs(2).Name = "CommandType"
|
||||
aArgs(2).Value = com.sun.star.sdb.CommandType.TABLE
|
||||
aArgs(3).Name = "Command"
|
||||
aArgs(3).Value = Table
|
||||
oDisp.dispatch(aURL, aArgs())
|
||||
End If
|
||||
|
||||
GENERALERROR:
|
||||
If Err <> 0 Then
|
||||
Msgbox(msgError$,16, GetProductName())
|
||||
Resume LETSGO
|
||||
End If
|
||||
LETSGO:
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Sub InsertDBField(sDBName as String, sTableName as String, sColName as String)
|
||||
Dim oFieldMaster, oField as Object
|
||||
If sColname <> "" Then
|
||||
oFieldMaster = oDocument.createInstance("com.sun.star.text.FieldMaster.Database")
|
||||
oField = oDocument.createInstance("com.sun.star.text.TextField.Database")
|
||||
oFieldMaster.DataBaseName = sDBName
|
||||
oFieldMaster.DataBaseName = sDBName
|
||||
oFieldMaster.DataTableName = sTableName
|
||||
oFieldMaster.DataColumnName = sColName
|
||||
oField.AttachTextfieldmaster (oFieldMaster)
|
||||
oBookText.InsertTextContent(oBookMarkCursor, oField, True)
|
||||
oField.Content = "<" & sColName & ">"
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Sub InsertPlaceholder(sColName as String)
|
||||
Dim oFieldMaster as Object
|
||||
Dim bCorrectField as Boolean
|
||||
If sColname <> "" Then
|
||||
bCorrectField = True
|
||||
oFieldMaster = oDocument.createInstance("com.sun.star.text.TextField.JumpEdit")
|
||||
Select Case sColName
|
||||
Case "Company"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+1)
|
||||
Case "Department"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+2)
|
||||
Case "FirstName"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+3)
|
||||
Case "LastName"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+4)
|
||||
Case "Street"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+5)
|
||||
Case "Country"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+6)
|
||||
Case "Zip"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+7)
|
||||
Case "City"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+8)
|
||||
Case "Title"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+9)
|
||||
Case "Position"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+10)
|
||||
Case "AddrForm"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+11)
|
||||
Case "Code"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+12)
|
||||
Case "AddrFormMail"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+13)
|
||||
Case "PhonePriv"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+14)
|
||||
Case "PhoneComp"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+15)
|
||||
Case "Fax"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+16)
|
||||
Case "EMail"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+17)
|
||||
Case "URL"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+18)
|
||||
Case "Note"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+19)
|
||||
Case "Altfield1"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+20)
|
||||
Case "Altfield2"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+21)
|
||||
Case "Altfield3"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+22)
|
||||
Case "Altfield4"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+23)
|
||||
Case "Id"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+24)
|
||||
Case "State"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+25)
|
||||
Case "PhoneOffice"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+26)
|
||||
Case "Pager"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+27)
|
||||
Case "PhoneCell"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+28)
|
||||
Case "PhoneOther"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+29)
|
||||
Case "CalendarURL"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+30)
|
||||
Case "InviteParticipant"
|
||||
oFieldMaster.PlaceHolder = getResText(1350+31)
|
||||
Case Else
|
||||
bCorrectField = False
|
||||
End Select
|
||||
If bCorrectField Then
|
||||
oFieldMaster.Hint = getResText(1350)
|
||||
oBookText.InsertTextContent(oBookMarkCursor, oFieldMaster, True)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
</script:module>
|
||||
Reference in New Issue
Block a user