
Question:
How can I use Mail Merge with microsoft vbscript functions (or SalesLogix functions)?
Answer:
You can create a Word Document as a COM-Object and insert text into it via VBScript. Maybe the short example below is helpful for your first steps …
Short example:
‘Including Script – Personal:opencrms_Microsoft_Constants
‘Including Script – System:SLX Database Support
‘ the script “opencrms_Microsoft_Constants” contains the definitions of all Microsoft Office Constants, e.g wdCell, wdToggle and so on (if you need it, send me an email)
option explicit
sub Main
CreateWordMailMerge
end sub
sub CreateWordMailMerge
Dim objWord, objRange, objTable
Dim sField, sTable, sWhere
Dim sFirstname
Dim i
‘ create Word as COM object
set objWord = CreateObject(“Word.Application”)
‘ add a blank document and make Word visible
objWord.Documents.Add
objWord.Visible = TRUE
‘ fetch firstname of current contact from CONTACT table
sField = “FIRSTNAME”
sTable = “CONTACT”
sWhere = “CONTACTID='” & Application.BasicFunctions.CurrentContactID & “‘”
sFirstname = GetField (sField, sTable, sWhere)
If ErrorCheck(Application.Translator.Localize(“Error fetching ‘FIRSTNAME’ in ‘CreateWordMailMerge()’:”)) > 0 Then exit sub
with objWord.Selection
‘ enter 4 empty lines into the Word document
for i = 1 to 4
.TypeParagraph
next
‘ greetings to the contacts firstname into the Word document
.TypeText “Hello ” & trim(sFirstname)
‘ enter 2 carriage return into the Word document
.TypeParagraph
.TypeParagraph
‘ enter simple text into the Word document
.TypeText “How are you?”
‘ enter 2 carriage return into the Word document again
.TypeParagraph
.TypeParagraph
end with
‘ create a simple table with 2 row and 3 columns
Set objRange = objWord.Selection.Range
with objWord.ActiveDocument
set objTable = .Tables.Add(objRange, 2, 3)
‘…. i have deleted all my formats
end with
‘ insert data into the table
with objWord.Selection
.Font.Bold = wdToggle ‘ make the first cell bold
.TypeText “Print it bold”
.MoveRight wdCell ‘ move two cells forwards
.MoveRight wdCell
.Font.Bold = wdNone
.TypeText “Now I am here..”
.MoveRight wdCell
end with
‘ set the printer properties
With objWord.ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait
.TopMargin = objWord.CentimetersToPoints(2.5)
.BottomMargin = objWord.CentimetersToPoints(2)
.LeftMargin = objWord.CentimetersToPoints(2.5)
.RightMargin = objWord.CentimetersToPoints(2.5)
.Gutter = objWord.CentimetersToPoints(0)
.HeaderDistance = objWord.CentimetersToPoints(1.25)
.FooterDistance = objWord.CentimetersToPoints(1.25)
.PageWidth = objWord.CentimetersToPoints(21)
.PageHeight = objWord.CentimetersToPoints(29.7)
.FirstPageTray = wdPrinterMiddleBin
.OtherPagesTray = wdPrinterMiddleBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.GutterPos = wdGutterPosLeft
End With
‘ print the document
objWord.PrintOut
‘ if you want to close Word, use
‘ objWord.Quit
‘destroy the Word object
set objWord = Nothing
end sub
Subscribe To Our Newsletter
Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!
You have Successfully Subscribed!