'(Declarations) ' Available Objects: ' BaseObjectEngine - PCS Base Object Engine ' LookupObjectEngine - PCS Lookup Table Engine ' WorkflowData - PCS Workflow Data Engine ' MetaObjectEngine - PCS Def Object Engine ' DB - PCS Database Engine ' DataItem - PCS Workflow DataItem ' ScriptInfoObject - PCS Workflow Script Parameter Collection ' 'End of (Declarations) Dim objWord Const wdReplaceAll = 2 Const wdReplaceNone = 0 Const wdReplaceOne = 1 Const wdFindAsk = 2 Const wdFindContinue = 1 Const wdFindStop = 0 Const wdFormatDocument = 0 Const wdFormatDOSText = 4 Const wdFormatDOSTextLineBreaks = 5 Const wdFormatHTML = 8 Const wdFormatRTF = 6 Const wdFormatTemplate = 1 Const wdFormatText = 2 Const wdFormatTextLineBreaks = 3 Public Function WorkflowScript() '============================================================== ' On Error Resume Next is the only form of error handling in ' VBScript. If an error is raised out of a script while it ' is running, it may cause the workflow system to slow. ' Therefore, please use On Error Resume Next in conjunction ' with the Err Object to handle any errors ' that may occur. '============================================================== On Error Resume Next Dim Template Dim OutputFile Dim DataItem Dim SubCol Set objWord = CreateObject("Word.Application") Template = ScriptInfoObject("[WordFile]").ParameterValue Set DataItem = WorkflowData.GetItemEx("[FilePointer]") OutputFile = DataItem.Value Set DataItem = Nothing objWord.Visible = True objWord.Documents.Add Template objWord.Documents(1).Activate For Each SubCol In WorkflowData.AllDataItems For Each DataItem In SubCol If DataItem.DisplayValue = "" Then ReplaceText "%" & DataItem.AttribXMLTag & "%", DataItem.Value Else ReplaceText "%" & DataItem.AttribXMLTag & "%", DataItem.DisplayValue End If Next Next 'objWord.ActiveDocument.SaveAs OutputFile, FileFormat:=wdFormatDocument objWord.ActiveDocument.SaveAs OutputFile, wdFormatDocument objWord.Quit '=============================================== ' The following values are valid return codes '----------------------------------------------- ' 0 = Success - (Default) ' -1 = Failure - Mark task as failed ' -2 = Failure - Mark task as failed and Raise WithException Flag ' -3 = Failure - Mark task as failed and Rollback workflow '=============================================== WorkflowScript = 0 '(Default) Success End Function Public Function ReplaceText(ByVal SearchText, ByVal ReplaceStringText) Dim objRange Set objRange = objWord.ActiveDocument.Range(0) 'objRange.Find.Execute SearchText, MatchCase:=False, MatchWholeWord:=False, MatchWildcards:=False, MatchSoundsLike:=False, MatchAllWordForms:=False, Forward:=True, Wrap:=wdFindContinue, Format:=False, ReplaceWith:=ReplaceStringText, Replace:=wdReplaceAll objRange.Find.Execute SearchText, False, False, False, False, False, True, wdFindContinue, False, ReplaceStringText, wdReplaceAll End Function Public Function PrintDoc(ByVal File) Dim objWord Set objWord = Nothing Set objWord = CreateObject("Word.Application") 'Make Excel Visible, it should still work if this is set to false objWord.Visible = True 'Load the Excel Spreadsheet objWord.Documents.Add File 'Activate the first Worksheet objWord.Documents(1).Activate 'Print the worksheet 'Use the options below to print only certain pages or multiple copies 'objWord.ActiveDocument.PrintOut [Background], [Append], [Range], [OutputFileName], [From], [To], [Item], [Copies], [Pages], [PageType], [PrintToFile], [Collate], [ActivePrinterMacGX], [ManualDuplexPrint], [PrintZoomColumn], [PrintZoomRow], [PrintZoomPaperWidth], [PrintZoomPaperHeight] 'This will print the entire current workbook objWord.ActiveDocument.PrintOut objWord.Quit End Function