Code: Select all
Public Function EditTicketForPrinteingViaOfficeWriter(inBOL As clsBOLHistory) As Boolean
        Try
            'Original code
            'Dim objWordApp As New Word.Application
            'objWordApp.Visible = True
            'Copy orignal file to new ticket file - Make file names configurable
            FileCopy(Me._LocalEditedTicketPath, Me._EditedTicketPathODT)
            '//Open an existing document using OPENOFFICE WRITER
            Dim oSM As Object = CreateObject("com.sun.star.ServiceManager")  'Root object for accessing OpenOffice from VB
            'Dim oDesk, oDoc As Object 'First objects from the API
            'Dim arg(1) As Object                'Ignore it for the moment !
            'Dim OpenPar(1) As Object 'a Visual Basic array, with 3 elements
            'Dim merge As Object
            'OpenPar(0) = MakePropertyValue("ReadOnly", False)
            'OpenPar(1) = MakePropertyValue("Password", "secret")
            'Instanciate OOo : this line is mandatory with VB for OOo API
            'oSM = CreateObject("com.sun.star.ServiceManager")
            'Create the first and most important service
            oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
            Dim MasterScriptProviderFactory As Object = oSM.createInstance("com.sun.star.script.provider.MasterScriptProviderFactory")
            'Open an existing doc (pay attention to the syntax for first argument)
            oDoc = oDesk.loadComponentFromURL("file:///" & Me._EditedTicketPathODT, "_blank", 0, OpenPar)
            'Dim sUrl As String = "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=application"
            Dim oProvider As Object = MasterScriptProviderFactory.createScriptProvider("")
            Dim oScript As Object = oProvider.getScript(sUrl)
            oScript.invoke(arg, arg, arg)
#Region " TEEST CODE "
            'oDoc = ThisComponent       'No need for this, it's already open: 11/05/2017
            'Dim oEnum1 As Object
            'Dim oEnum2 As Object
            'Dim TextElement As Object   'Didn't seem to work: 11/05/2017
            'Dim TextPortion As Object
            'oEnum1 = oDoc.Text.createEnumeration
            'While oEnum1.hasMoreElements
            '    TextElement = oEnum1.nextElement
            '    If TextElement.supportsService("com.sun.star.text.Paragraph") Then
            '        oEnum2 = TextElement.createEnumeration
            '        ' loop over all sub-paragraphs
            '        While oEnum2.hasMoreElements
            '            TextPortion = oEnum2.nextElement
            '            MsgBox("'" & TextPortion.String & "'")
            '            TextPortion.String = Replace(TextPortion.String, "<Date>", inBOL.TimeStamp)
            '        End While
            '        'MsgBox(TextElement.String.ToString)
            '        'TextElement.String = Replace(TextElement.String, "<Date>", inBOL.TimeStamp)
            '    End If
            'End While
            '// 2nd attempt
            'Dim SearchDesc As Object
            'SearchDesc = oDoc.createSearchDescriptor
            'SearchDesc.searchString = "<Date>"
            'Dim Search As Object
            'Dim Replace As Object
            'Dim I As Long
            'Replace = oDoc.createReplaceDescriptor
            'Search = oDoc.createSearchDescriptor
            'Replace = oDoc.createReplaceDescriptor
            'Replace.SearchRegularExpression = True
            'Search.SearchString = "<Date>"
            'Replace.ReplaceString = inBOL.TimeStamp
            'Search.SearchString = "<StreetAddress1>"
            'Replace.ReplaceString = _CompanyInfo.StreetAddress1
            '// 3rd Attempt
            'Dim objText As Object, objCursor As Object
            'objText = oDoc.GetText
            'objCursor = objText.createTextCursor
            '' replace all
            'Dim oSrch As Object
            ''Set oSrch = oDoc.createSearchDescriptor
            'oSrch = oDoc.createReplaceDescriptor
            'oSrch.setSearchString("<Date>")
            'oSrch.setReplaceString(inBOL.TimeStamp)
            'oDoc.replaceAll(oSrch)
#End Region
#Region " UPDATE CODE "
            ReplaceWriterBOLInfor(oDoc, "<Date>", inBOL.TimeStamp)
            ' Not Used at all facilities - NEED TO STANDARDIZE TEMPLATE
            ReplaceWriterBOLInfor(oDoc, "<CompanyName>", _CompanyInfo.Name)
            ReplaceWriterBOLInfor(oDoc, "<StreetAddress1>", _CompanyInfo.StreetAddress1)
            ReplaceWriterBOLInfor(oDoc, "<StreetAddress2>", _CompanyInfo.StreetAddress2)
            ReplaceWriterBOLInfor(oDoc, "<PhoneNumber>", _CompanyInfo.PhoneNumber)
            'END NOT USED AT TRINITY
            ReplaceWriterBOLInfor(oDoc, "<DestinationName>", inBOL.CustomerName)
            ReplaceWriterBOLInfor(oDoc, "<CustomerNum>", inBOL.CustomerNumber)
            ReplaceWriterBOLInfor(oDoc, "<DestAddress1>", inBOL.CustomerStreet)
            ReplaceWriterBOLInfor(oDoc, "<DestAddress2>", "")
            Dim DestLocaleID As String = inBOL.CustomerCity & ", " & inBOL.CustomerState & " " & inBOL.CustomerZipCode
            ReplaceWriterBOLInfor(oDoc, "<DestLocaleID>", DestLocaleID)
            ReplaceWriterBOLInfor(oDoc, "<BOLNumber>", inBOL.BOLNumber)
            ReplaceWriterBOLInfor(oDoc, "<HaulerName>", inBOL.CarrierName)
            ReplaceWriterBOLInfor(oDoc, "<DriverName>", "")
            ReplaceWriterBOLInfor(oDoc, "<CarrierTruckNumber>", inBOL.TruckNumber)
            ReplaceWriterBOLInfor(oDoc, "<CarrierTrailerSerialNumber>", inBOL.TrailerNumber)
            ReplaceWriterBOLInfor(oDoc, "<MaterialName>", inBOL.Description)
            ReplaceWriterBOLInfor(oDoc, "<ProductCode>", inBOL.ProductCode)
            ReplaceWriterBOLInfor(oDoc, "<LabNum>", inBOL.LabNumber)
            ReplaceWriterBOLInfor(oDoc, "<ProjectNum>", inBOL.Project)
            ReplaceWriterBOLInfor(oDoc, "<PlantOrderNum>", inBOL.PlantOrder)
            ReplaceWriterBOLInfor(oDoc, "<MatTemp>", inBOL.LoadTemp)
            ReplaceWriterBOLInfor(oDoc, "<TareWeight>", inBOL.TareWeight)
            ReplaceWriterBOLInfor(oDoc, "<GrossWeight>", inBOL.GrossWeight)
            ReplaceWriterBOLInfor(oDoc, "<NetWeight>", inBOL.NetWeight)
            ReplaceWriterBOLInfor(oDoc, "<NetTons>", inBOL.Tons)
            ReplaceWriterBOLInfor(oDoc, "<NetGallons>", CStr(CSng(inBOL.NetGallons)))
            ReplaceWriterBOLInfor(oDoc, "<SpecGrav>", inBOL.SpecificGravity)
            ReplaceWriterBOLInfor(oDoc, "<TankNumber>", inBOL.SourceTankNumber)
            ReplaceWriterBOLInfor(oDoc, "<LbsPerGal>", Me.BOLMaterialDensity)
            ReplaceWriterBOLInfor(oDoc, "<JobNUmber>", inBOL.PlantOrder)
            ReplaceWriterBOLInfor(oDoc, "<24HREmergencyContactNumber>", Me.BOL24HREmergencyNumber)
            ReplaceWriterBOLInfor(oDoc, "<NonEmergencyContactNumber>", Me.BOLNonEmergencyNumber)
#End Region
            ' Print the Edited BOL
            'Dim oDispatchHelper As Object
            'Dim oServiceManager
            Try
                Dim arg0, arg(0) As Object
                oDispatchHelper = oSM.createInstance("com.sun.star.frame.DispatchHelper")
                arg0 = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
                'oDispatchHelper = oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
                'Call oDispatchHelper.executeDispatch(oDoc, ".uno:PrintDefault", "", 0, arg)
                arg0.Name = "CopyCount"
                arg0.Value = 1
                'oDoc.Print
                CallByName(oDoc, "print", vbMethod, arg0) 'arg is an array of arguments (cf MakePropertyValue)
            Catch ex As Exception
                RaiseEvent SoftwareError(Me, New EventArgs, ex.ToString)
            End Try
            'Save the doc
            '//oDoc.Save
            'propertyValues(0) = New unoidl.com.sun.star.beans.PropertyValue
            'propertyValues(0).Name = "Overwrite"
            'propertyValues(0).Value = New uno.Any(True)
            Dim args() As Object
            'args = oSM.createInstance("com.sun.star.beans.PropertyValue")
            'args.Name = "Overwrite"
            'args(0).Value = New uno.Any(True)
            Try
                oDoc.storeAsURL("file:///" & _LocalBOLSavePath & "_" & inBOL.BOLNumber & ".docx", args)
            Catch ex As Exception
                RaiseEvent SoftwareError(Me, New EventArgs, ex.ToString)
            End Try
            'Try : FileCopy(Me._EditedTicketPathODT, _LocalBOLSavePath & "_" & inBOL.BOLNumber & ".docx") : Catch : End Try
            'Print doc
            'Dim arg1(0) As Object
            'arg1(0) = ("")
            'CallByName(oDoc, "print", vbMethod, arg1) 'arg is an array of arguments (cf MakePropertyValue)
            'Close the doc
            oDoc.Close(True)
            oDoc = Nothing
            'objDoc.PrintOut(,,,,,,, NumberOfCopiesToPrint)
            'objDoc.PrintOut()
            '//oDoc.print
            'Save and close the document  
            '//oDoc.save
            '//oDoc.close
            'objDoc.Save()
            'objDoc.Close()
            'objDoc = Nothing
            'objWordApp.Quit()
            'Try : FileCopy(Me._EditedTicketPath, _NetoworkBOLSavePath & "_" & Me._CurrentTransaction.ID & ".docx") : Catch : End Try
            'LOG ITEM FOR TRINITY ACCOUNTING
            'InsertLoadProcessLog()
            'InsertBOLHistory()
            Return True
        Catch ex As Exception
            RaiseEvent SoftwareError(Me, New EventArgs, ex.ToString)
            Return False
        End Try
    End Function