You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1099 lines
45 KiB

Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Imports System.ComponentModel
Imports Word
Public Class WordLib
#Region "Deklarationen"
Dim isactiv As Boolean
Dim m_dokumenttypnr As Long
Dim Dokument_To_Create As String
Dim Dokument_To_Save As String
Dim Dokument_Temp As String
Dim Cursor_Positionieren As Boolean
Dim IsProtected As Boolean
Dim inEditMode As Boolean
Dim DokumentFilename As String
Dim dokudata As New edokadb.clsMyDokumentDaten()
Dim Dokumentdaten As DataTable
Dim DokumenTtyp As New edokadb.clsDokumenttyp()
Dim Office_Vorlage As New edokadb.clsOffice_vorlage()
Private WithEvents objWord As Word.Application
Private WithEvents docWord As Word.Document
'IDV-Definitionen
Private m_objdc As Object
'Dim xx As dc.application
Dim xx As Object
Dim idvdll As New IDVMakros.Application()
' Dim idvdll As Object
' Private dckein As Integer
' Private dcinvisible As Integer
' Private dcMTBS As Long
Dim m_document_saved As Boolean
#End Region
#Region "Properties"
Property Dokumenttypnr() As Long
Get
Return m_dokumenttypnr
End Get
Set(ByVal Value As Long)
m_dokumenttypnr = Value
End Set
End Property
Property Dokument_Saved() As Boolean
Get
Return m_document_saved
End Get
Set(ByVal Value As Boolean)
m_document_saved = Value
End Set
End Property
#End Region
#Region "IDVP-Funktionen"
Private Sub Cancel_IDVPortfeuille()
Try
xx = CreateObject("DC.APPLICATION")
xx.Quit()
Catch
End Try
End Sub
Private Sub Init_IDV_Variablen()
On Error Resume Next
'Diverse Felder
m_objdc.dokvaradd("VarHerkunft", "EDOKA")
m_objdc.dokvaradd("VarSchuldner", " ")
m_objdc.dokvaradd("VarAdresseVorname", " ")
'Bankangaben
m_objdc.dokvaradd("VarCompanyName", " ")
m_objdc.dokvaradd("VarCompanyBankname", " ")
m_objdc.dokvaradd("VarCompanyAdresse1", " ")
m_objdc.dokvaradd("VarCompanyAdresse2", " ")
m_objdc.dokvaradd("VarCompanyAdresse3", " ")
m_objdc.dokvaradd("VarCompanyBankbetriebseinheit", " ")
m_objdc.dokvaradd("VarCompanyBBENr", " ")
m_objdc.dokvaradd("VarCompanyBBEOrt", " ")
m_objdc.dokvaradd("VarCompanyBBEEMail", " ")
m_objdc.dokvaradd("VarCompanyBBETelefon", " ")
m_objdc.dokvaradd("VarCompanyBBETelefax", " ")
m_objdc.dokvaradd("VarCompanyBBEZusatzVordruck", " ")
m_objdc.dokvaradd("VarCompanyBBEZusatzInhalt", " ")
m_objdc.dokvaradd("VarCompanyInternet", " ")
m_objdc.dokvaradd("VarCompanyMWStNr", " ")
m_objdc.dokvaradd("VarCompanyGerichtsstand", " ")
m_objdc.dokvaradd("VarCompanyCantophone", " ")
m_objdc.dokvaradd("VarCompanyHotlineInfoline", " ")
'Tempor<6F>re Variablen
m_objdc.dokvaradd("VarTempGeschaeftNr", " ")
m_objdc.dokvaradd("VarTempProduktebezeichnung", " ")
m_objdc.dokvaradd("VarTempGeburtsGruendungsdatum", " ")
m_objdc.dokvaradd("VarTempNationalitaetencode", " ")
m_objdc.dokvaradd("VarTempMarktsegment", " ")
m_objdc.dokvaradd("VarTempBranche", " ")
m_objdc.dokvaradd("VarTempGesamtbetrag", " ")
m_objdc.dokvaradd("VarTempBetrag1", " ")
m_objdc.dokvaradd("VarTempBetrag2", " ")
m_objdc.dokvaradd("VarTempWaehrung", " ")
m_objdc.dokvaradd("VarTempZinssatz1", " ")
m_objdc.dokvaradd("VarTempZinssatz2", " ")
m_objdc.dokvaradd("VarTempObjekt", " ")
m_objdc.dokvaradd("VarTempSchaetzungswert", " ")
m_objdc.dokvaradd("VarTempKostenstelle", " ")
'Adressdaten
m_objdc.dokvaradd("VarAdresse", " ")
m_objdc.dokvaradd("VarVerteiler", " ")
m_objdc.dokvaradd("VarAdressePostzustellung", " ")
m_objdc.dokvaradd("VarAdresseAnrede", " ")
m_objdc.dokvaradd("VarAdresseNameFirma", " ")
m_objdc.dokvaradd("VarAdressezHd", " ")
m_objdc.dokvaradd("VarAdresseAdresszeile1", " ")
m_objdc.dokvaradd("VarAdresseAdresszeile2", " ")
m_objdc.dokvaradd("VarAdressePLZ", " ")
m_objdc.dokvaradd("VarAdresseOrt", " ")
m_objdc.dokvaradd("VarPartnernr", " ")
'Formular Variablen
'm_objdc.DokVarAdd "VarFormularNr", " "
'm_objdc.DokVarAdd "VarFormularTitel", " "
'm_objdc.DokVarAdd "VarVersion", " "
' Sachbearbeiter
m_objdc.dokvaradd("VarKennung", "")
m_objdc.dokvaradd("VarKurzzeichen", " ")
m_objdc.dokvaradd("VarName", " ")
m_objdc.dokvaradd("VarVorname", " ")
m_objdc.dokvaradd("VarTitel", " ")
m_objdc.dokvaradd("VarBereich", " ")
m_objdc.dokvaradd("VarOrganisationseinheit", " ")
m_objdc.dokvaradd("VarAbkuerzung", " ")
m_objdc.dokvaradd("VarBueroNr", " ")
m_objdc.dokvaradd("VarRang", " ")
m_objdc.dokvaradd("VarFunktion", " ")
m_objdc.dokvaradd("VarDirektWahlTelefon", " ")
m_objdc.dokvaradd("VarDirektWahlTelefax", " ")
m_objdc.dokvaradd("VarEMail", " ")
m_objdc.dokvaradd("VarBenutzerID", " ")
'Dokumentersteller
m_objdc.dokvaradd("VarKennungDokSchreiber", " ")
m_objdc.dokvaradd("VarKurzzeichenDokschreiber", " ")
m_objdc.dokvaradd("VarNameDokSchreiber", " ")
m_objdc.dokvaradd("VarVornameDokSchreiber", " ")
m_objdc.dokvaradd("VarTitelDokSchreiber", " ")
m_objdc.dokvaradd("VarBereichDokSchreiber", " ")
m_objdc.dokvaradd("VarOrganisationseinheitDokSchreiber", " ")
m_objdc.dokvaradd("VarAbkuerzungDokSchreiber", " ")
m_objdc.dokvaradd("VarBueroNrDokSchreiber", " ")
m_objdc.dokvaradd("VarRangDokSchreiber", " ")
m_objdc.dokvaradd("VarFunktionDokSchreiber", " ")
m_objdc.dokvaradd("VarDirektWahlTelefonDokSchreiber", " ")
m_objdc.dokvaradd("VarDirektWahlTelefaxDokSchreiber", " ")
m_objdc.dokvaradd("VarEMailDokschreiber", " ")
m_objdc.dokvaradd("VarBenutzerIDWahlTelefaxDokSchreiber", " ")
'Linksunterzeichnenden
m_objdc.dokvaradd("VarKennungLinks", " ")
m_objdc.dokvaradd("VarKurzzeichenLinks", " ")
m_objdc.dokvaradd("VarNameLinks", " ")
m_objdc.dokvaradd("VarVornameLinks", " ")
m_objdc.dokvaradd("VarTitelLinks", " ")
m_objdc.dokvaradd("VarBereichLinks", " ")
m_objdc.dokvaradd("VarOrganisationseinheitLinks", " ")
m_objdc.dokvaradd("VarAbkuerzungLinks", " ")
m_objdc.dokvaradd("VarBueroNrLinks", " ")
m_objdc.dokvaradd("VarRangLinks", " ")
m_objdc.dokvaradd("VarFunktionLinks", " ")
m_objdc.dokvaradd("VarDirektWahlTelefonLinks", " ")
m_objdc.dokvaradd("VarDirektWahlTelefaxLinks", " ")
m_objdc.dokvaradd("VarEMailTelefaxLinks", " ")
m_objdc.dokvaradd("VarBenutzerIDWahlTelefaxLinks", " ")
'Rechtsunterzeichnenden
m_objdc.dokvaradd("VarKennungRechts", " ")
m_objdc.dokvaradd("VarKurzzeichenRechts", " ")
m_objdc.dokvaradd("VarNameRechts", " ")
m_objdc.dokvaradd("VarVornameRechts", " ")
m_objdc.dokvaradd("VarTitelRechts", " ")
m_objdc.dokvaradd("VarBereichRechts", " ")
m_objdc.dokvaradd("VarOrganisationseinheitRechts", " ")
m_objdc.dokvaradd("VarAbkuerzungRechts", " ")
m_objdc.dokvaradd("VarBueroNrRechts", " ")
m_objdc.dokvaradd("VarRangRechts", " ")
m_objdc.dokvaradd("VarFunktionRechts", " ")
m_objdc.dokvaradd("VarDirektWahlTelefonRechts", " ")
m_objdc.dokvaradd("VarDirektWahlTelefaxRechts", " ")
m_objdc.dokvaradd("VarEMailTelefaxRechts", " ")
m_objdc.dokvaradd("VarBenutzerIDWahlTelefaxRechts", " ")
End Sub
Private Sub Create_IDVDokument(ByVal idvid As String)
StartWord()
objWord.Visible = True
Cancel_IDVPortfeuille()
m_objdc = CreateObject("DC.Application")
Init_IDV_Variablen()
m_objdc.WindowState = dc.dcWindowState.dcInvisible
'Call Get_IDV_Values()
If Not Office_Vorlage.bIdv_nativ.Value = True Then
m_objdc.WindowState = 0
m_objdc.WordPlusDialog = dc.dcWordPlusDialogs.dcKein
m_objdc.DisableStandardMacros()
End If
If Office_Vorlage.bIdv_nativ.Value = True Then
m_objdc.CreateDocument(dc.dcModus.dcMTBS, CType(Office_Vorlage.sIdv_id.Value, Integer))
StartWord()
docWord = objWord.ActiveDocument
objWord.Visible = True
m_objdc = Nothing
Exit Sub
Else
m_objdc.CreateDocument(dc.dcModus.dcMTBS, CType(Office_Vorlage.sIdv_id.Value, Integer))
m_objdc.SaveDoc(DokumentFilename)
m_objdc.Quit()
m_objdc = Nothing
StartWord()
docWord = objWord.ActiveDocument
End If
m_objdc = Nothing
End Sub
Public Function IDV_makros_bearbeiten() As Boolean
Dim idvmakros As New edokadb.clsMyDokumentDaten()
Dim makros As DataTable
Dim i As Long
idvmakros.cpMainConnectionProvider = conn
makros = idvmakros.Select_IDVMakros(Me.Dokumenttypnr)
For i = 0 To makros.Rows.Count - 1
Try
If makros.Rows(i).Item("ist_in_dll") = True Then
'SetForegroundWindow(...)
System.Windows.Forms.Application.DoEvents()
idvdll = CreateObject("IDVMakros.Application")
Call idvdll.CallSub(objWord, makros.Rows(i).Item("makro"))
System.Windows.Forms.Application.DoEvents()
objWord.Visible = True
objWord.Activate()
Else
System.Windows.Forms.Application.DoEvents()
objWord.Run(makros.Rows(i).Item("makro"))
System.Windows.Forms.Application.DoEvents()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Next i
End Function
#End Region
#Region "Word-Funktionen"
Private Function StartWord()
Try
objWord = GetObject(, "Word.application")
Catch
Try
objWord = CreateObject("Word.application")
Catch ex As Exception
MsgBox(ex.Message)
End Try
Finally
objWord.Visible = False
End Try
End Function
Private Sub Insert_Kopfzeile()
On Error Resume Next
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
If objWord.ActiveWindow.View.SplitSpecial <> WdSpecialPane.wdPaneNone Then
objWord.ActiveWindow.Panes.Item(2).Close()
End If
If objWord.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdNormalView Or objWord.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdOutlineView Then
objWord.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdPrintView
End If
objWord.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
objWord.Selection.MoveDown(Unit:=Word.WdUnits.wdLine, Count:=1)
With objWord.ActiveDocument.Bookmarks
.Add(Range:=objWord.Selection.Range, Name:="TGEDKCompanyBBEB99")
.DefaultSorting = WdBookmarkSortBy.wdSortByName
.ShowHidden = False
End With
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
End Sub
Private Sub Fill_Dokument(ByVal AusParametrisierung As Boolean, Optional ByVal xdata As DataTable = Nothing)
If Office_Vorlage.bKopfzeile_generieren.Value = True Then
Insert_Kopfzeile()
End If
If AusParametrisierung Then
get_dokumentdaten()
Dokumentwerte_Uebertragen(AusParametrisierung)
Else
Dokumentdaten = xdata
Dokumentwerte_Uebertragen(AusParametrisierung)
End If
End Sub
Private Sub Dokumentwerte_Uebertragen(ByVal AusParametrisierung As Boolean)
Dim i As Long
Dim pos As Long
Dim pos2 As Long
Dim Fieldlen As Long
For i = 0 To Dokumentdaten.Rows.Count - 1
'Beginn-Textmarke
If Dokumentdaten.Rows(i).Item("aktiv") = True Then
If Dokumentdaten.Rows(i).Item("beginntextmarke") Is System.DBNull.Value Then
Dokumentdaten.Rows(i).Item("beginntextmarke") = ""
End If
If Dokumentdaten.Rows(i).Item("endetextmarke") Is System.DBNull.Value Then
Dokumentdaten.Rows(i).Item("endetextmarke") = ""
End If
If Dokumentdaten.Rows(i).Item("feldname") Is System.DBNull.Value Then
Dokumentdaten.Rows(i).Item("feldname") = ""
End If
If Dokumentdaten.Rows(i).Item("beginntextmarke") = "TGEDKCursor" Or _
Dokumentdaten.Rows(i).Item("beginntextmarke") = "TGEDKCursorB" Or _
Dokumentdaten.Rows(i).Item("feldname") = "TGEDKCursorB" Or _
Dokumentdaten.Rows(i).Item("feldname") = "TGEDKCursor" Then
Cursor_Positionieren = True
End If
If Dokumentdaten.Rows(i).Item("beginntextmarke") <> "" And _
Dokumentdaten.Rows(i).Item("endetextmarke") = "" Then
Try
docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("beginntextmarke")).Select()
pos = docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("beginntextmarke")).Start
If AusParametrisierung Then
objWord.Selection.Text = Dokumentdaten.Rows(i).Item("testdaten")
Else
objWord.Selection.Text = Dokumentdaten.Rows(i).Item("xvalue")
End If
pos2 = objWord.Selection.End
objWord.Selection.SetRange(Start:=pos, End:=pos2)
With docWord.Bookmarks
.Add(Range:=objWord.Selection.Range, Name:=Dokumentdaten.Rows(i).Item("beginntextmarke"))
.DefaultSorting = WdBookmarkSortBy.wdSortByName
.ShowHidden = False
End With
objWord.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1)
objWord.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1, Extend:=Word.WdMovementType.wdExtend)
If objWord.Selection.Text = " " Then objWord.Selection.Delete(Unit:=Word.WdUnits.wdCharacter, Count:=1)
Catch
End Try
End If
'Beginn- und Ende-Textmarke
If Dokumentdaten.Rows(i).Item("beginntextmarke") <> "" And _
Dokumentdaten.Rows(i).Item("endetextmarke") <> "" Then
Try
docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("beginntextmarke")).Select()
pos = docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("beginntextmarke")).Start
docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("endetextmarke")).Select()
pos2 = docWord.Bookmarks.Item(Dokumentdaten.Rows(i).Item("endetextmarke")).Start
objWord.Selection.SetRange(Start:=pos, End:=pos2)
If AusParametrisierung Then
objWord.Selection.TypeText(text:=Dokumentdaten.Rows(i).Item("testdaten"))
Else
objWord.Selection.TypeText(text:=Dokumentdaten.Rows(i).Item("xvalue"))
End If
With docWord.Bookmarks
.Add(Range:=objWord.Selection.Range, Name:=Dokumentdaten.Rows(i).Item("beginntextmarke"))
.DefaultSorting = WdBookmarkSortBy.wdSortByName
.ShowHidden = False
End With
Catch
End Try
End If
'Felder
If Dokumentdaten.Rows(i).Item("feldname") <> "" Then
Try
If docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).TextInput.Width <> 0 Then
Fieldlen = docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).TextInput.Width
docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).TextInput.Width = Fieldlen + 5
End If
If AusParametrisierung Then
docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).Result = Dokumentdaten.Rows(i).Item("testdaten")
Else
docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).Result = Dokumentdaten.Rows(i).Item("xvalue")
End If
Catch
End Try
End If
End If
Next
End Sub
Private Sub FeldMakros()
Dim i As Integer
For i = 0 To Dokumentdaten.Rows.Count - 1
If Dokumentdaten.Rows(i).Item("feldname") <> "" Then
If Dokumentdaten.Rows(i).Item("einstiegsmakro") = True Then
objWord.Run(docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).EntryMacro)
End If
If Dokumentdaten.Rows(i).Item("ausstiegsmakro") = True Then
objWord.Run(docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).ExitMacro)
End If
End If
Next
End Sub
#End Region
#Region "Datenhandling"
Private Sub get_dokumentdaten()
dokudata.cpMainConnectionProvider = conn
Dokumentdaten = dokudata.SelectTestdata(Me.Dokumenttypnr)
dokudata.Dispose()
End Sub
#End Region
#Region "Barcode"
Dim Textboxes(100) As String
Dim Textboxesi As Integer
Private Sub Generate_Barcodes()
delete_Textfelder()
Insert_TextFelder()
ins_Barcode()
End Sub
Private Sub delete_Textfelder()
Dim xname As String
Dim i As Integer
Dim i1 As Integer
Dim pages As Long
Dim Prop As Object
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
For Each Prop In objWord.ActiveDocument.BuiltInDocumentProperties
If UCase(Prop.Name) = "NUMBER OF PAGES" Then
pages = Prop.value
End If
Next
For i = 0 To pages
xname = Str(i)
If Left(xname, 1) = " " Then xname = Right(xname, Len(xname) - 1)
objWord.Selection.GoTo(what:=Word.WdGoToItem.wdGoToPage, Name:=xname)
HeaderFooterAnzeigen()
On Error Resume Next
For i1 = 0 To objWord.Selection.HeaderFooter.Shapes.Count
objWord.Selection.HeaderFooter.Shapes.Item(i1).Delete()
Next i1
On Error GoTo 0
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
Next i
End Sub
Private Sub Insert_TextFelder()
Dim xname As String
Dim i As Integer
Dim pages As Long
Dim prop As Object
For Each prop In objWord.ActiveDocument.BuiltInDocumentProperties
If UCase(prop.Name) = "NUMBER OF PAGES" Then
pages = prop.value
End If
Next
Textboxesi = 0
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
For i = 1 To 1
xname = Str(i)
If Left(xname, 1) = " " Then xname = Right(xname, Len(xname) - 1)
objWord.Selection.GoTo(what:=Word.WdGoToItem.wdGoToPage, Name:=xname)
insert_Textfield()
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
Next i
End Sub
Private Sub ins_Barcode()
Dim xname As String
Dim i As Integer
Dim pages As Long
Dim prop As Object
For Each prop In objWord.ActiveDocument.BuiltInDocumentProperties
If UCase(prop.Name) = "NUMBER OF PAGES" Then
pages = prop.value
End If
Next
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
Textboxesi = 1
For i = 1 To 1
xname = Str(i)
If Left(xname, 1) = " " Then xname = Right(xname, Len(xname) - 1)
objWord.Selection.GoTo(what:=Word.WdGoToItem.wdGoToPage, Name:=xname)
HeaderFooterAnzeigen()
insert_Barcode(i)
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
Next i
End Sub
Private Sub HeaderFooterAnzeigen()
If objWord.ActiveWindow.View.SplitSpecial <> WdSpecialPane.wdPaneNone Then
objWord.ActiveWindow.Panes.Item(2).Close()
End If
If objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdNormalView Or objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdOutlineView Then
objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView
End If
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageHeader
If objWord.Selection.HeaderFooter.IsHeader = True Then
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageFooter
Else
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageHeader
End If
End Sub
Private Sub insert_Textfield()
Dim Public_barcodeleft
Dim Public_barcodetop
Dim Public_barcodewidth#
Dim Public_barcodeheight
Try
Public_barcodeleft = Office_Vorlage.iBcpl.Value
Public_barcodetop = Office_Vorlage.iBcpt.Value
Public_barcodewidth = Office_Vorlage.iBcw.Value
Public_barcodeheight = Office_Vorlage.iBch.Value
HeaderFooterAnzeigen()
objWord.Selection.HeaderFooter.Shapes.AddTextbox(1, Public_barcodeleft, Public_barcodetop, _
Public_barcodewidth#, Public_barcodeheight).Select()
' objWord.Selection.ShapeRange.TextFrame.TextRange.Select
objWord.Selection.ShapeRange.Line.Visible = Office.MsoTriState.msoFalse
objWord.Selection.ShapeRange.TextFrame.MarginLeft = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginRight = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginTop = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginBottom = 0.0#
objWord.Selection.Collapse()
Textboxesi = Textboxesi + 1
Textboxes(Textboxesi) = objWord.Selection.HeaderFooter.Shapes.Item(Textboxesi).Name
'If Public_Barcodeinfo Then
'objWord.Selection.HeaderFooter.Shapes.AddTextbox(1, Public_barcodeleft, Public_barcodetop + Public_barcodeheight + 1, _
' Public_barcodewidth#, 20).Select()
'objWord.Selection.ShapeRange.Line.Visible = msoFalse
'objWord.Selection.ShapeRange.TextFrame.MarginLeft = 0.0#
'objWord.Selection.ShapeRange.TextFrame.MarginRight = 0.0#
'objWord.Selection.ShapeRange.TextFrame.MarginTop = 0.0#
'objWord.Selection.ShapeRange.TextFrame.MarginBottom = 0.0#
'objWord.Selection.Collapse()
'Textboxesi = Textboxesi + 1
'Textboxes(Textboxesi) = objWord.Selection.HeaderFooter.Shapes(Textboxesi).Name
'End If
objWord.Selection.HeaderFooter.Shapes.AddTextbox(1, Public_barcodeleft + Public_barcodewidth, Public_barcodetop, _
15, Public_barcodeheight).Select()
' objWord.Selection.ShapeRange.TextFrame.TextRange.Select
objWord.Selection.ShapeRange.Line.Visible = Office.MsoTriState.msoFalse
objWord.Selection.ShapeRange.TextFrame.MarginLeft = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginRight = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginTop = 0.0#
objWord.Selection.ShapeRange.TextFrame.MarginBottom = 0.0#
objWord.Selection.Collapse()
Textboxesi = Textboxesi + 1
Textboxes(Textboxesi) = objWord.Selection.HeaderFooter.Shapes.Item(Textboxesi).Name
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub insert_Barcode(ByVal x As Integer)
Dim Form
Dim strsel As String
Dim strresult
Dim s As String
' Selection.ShapeRange.Select
If DokumenTtyp.bZu_retournieren.Value = True Then
Try
Form = objWord.Selection.HeaderFooter.Shapes.Item(Textboxes(Textboxesi))
Form.Select()
Form = objWord.Selection.HeaderFooter.Shapes.Item(Textboxes(Textboxesi))
Form.Select()
s = Bar25I("0012002123456789")
objWord.Selection.TypeText(text:=s)
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdLine, Extend:=Word.WdMovementType.wdExtend)
objWord.Selection.Font.Name = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("barcode_font")
objWord.Selection.Font.Size = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("bcfont_groesse")
objWord.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight
Form = Nothing
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
#End Region
#Region "Barcode-Berechnung"
Private BarTextOut As String
Private BarTextIn As String
Private DoCheckSum As Integer
Private TempString As String
Private CharValue As Long
Private II As Integer
Private Sum As Long
Private barcodeout
Private CheckSum As Integer
' Copyright 2001 by Elfring Fonts Inc. All rights reserved. This code
' may not be modified or altered in any way.
'Functions in this file:
' Bar25I(Text) -> convert text to bar code 2/5 interleaved
' Bar25Ics(Text) -> convert text to bar code 2/5 interleaved with checksum
'---------------------------------------------------------------------------
' This function converts a string of digits into a format compatible with Elfring
' Fonts Inc bar codes. It adds the start character, scans and converts digit pairs
' into single ASCII characters, and adds a stop character. Note that non-digits are
' ignored, and if you enter an odd number of digits, a leading zero will be added.
'---------------------------------------------------------------------------
Public Function Bar25I(ByVal BarTextIn As String) As String
' Initialize input and output strings
BarTextOut = ""
BarTextIn = RTrim(LTrim(BarTextIn))
' Throw away non-numeric data
TempString = ""
For II = 1 To Len(BarTextIn)
If IsNumeric(Mid(BarTextIn, II, 1)) Then
TempString = TempString & Mid(BarTextIn, II, 1)
End If
Next II
' If not an even number of digits, add a leading 0
If (Len(TempString) Mod 2) = 1 Then
TempString = "0" & TempString
End If
' Break digit pairs up and convert to characters- build output string
For II = 1 To Len(TempString) Step 2
'Break string into pairs of digits and get value
CharValue = Mid(TempString, II, 2)
'translate value to ASCII and save in BarTextOut
If CharValue < 90 Then
BarTextOut = BarTextOut & Chr(CharValue + 33)
Else
BarTextOut = BarTextOut & Chr(CharValue + 71)
End If
Next II
'Build ouput string, trailing space for Windows rasterization bug
barcodeout = "{" & BarTextOut & "} "
'Return the string
Bar25I = barcodeout
End Function
'---------------------------------------------------------------------------
' This function converts a string of digits into a format compatible with Elfring
' Fonts Inc bar codes. It adds the start character, scans and converts digit pairs
' into single ASCII characters, and adds checksum and a stop character. Note that
' non-digits are ignored, and if you enter an even number of digits, a leading zero
' will be added.
'---------------------------------------------------------------------------
Public Function Bar25Ics(ByVal BarTextIn As String) As String
' Initialize input and output strings
BarTextOut = ""
BarTextIn = RTrim(LTrim(BarTextIn))
' Throw away non-numeric data
TempString = ""
For II = 1 To Len(BarTextIn)
If IsNumeric(Mid(BarTextIn, II, 1)) Then
TempString = TempString & Mid(BarTextIn, II, 1)
End If
Next II
' If not an odd number of digits, add a leading 0
If (Len(TempString) Mod 2) = 0 Then
TempString = "0" & TempString
End If
' Figure out the checksum digit
Sum = 0
For II = 1 To Len(TempString)
CharValue = Mid(TempString, II, 1)
If (II Mod 2) = 1 Then
Sum = Sum + (3 * CharValue)
Else
Sum = Sum + CharValue
End If
Next II
' Figure checksum, add it as last digit
CheckSum = 10 - (Sum Mod 10)
If CheckSum = 10 Then CheckSum = 0
TempString = TempString & Chr(48 + CheckSum)
' Break digit pairs up and convert to characters- build output string
For II = 1 To Len(TempString) Step 2
'Break string into pairs of digits and get value
CharValue = Mid(TempString, II, 2)
'translate value to ASCII and save in BarTextOut
If CharValue < 90 Then
BarTextOut = BarTextOut & Chr(CharValue + 33)
Else
BarTextOut = BarTextOut & Chr(CharValue + 71)
End If
Next II
'Build ouput string, trailing space for Windows rasterization bug
barcodeout = "{" & BarTextOut & "} "
'Return the string
Bar25Ics = barcodeout
End Function
#End Region
#Region "<22>ffentliche Methoden"
Public Sub Create_Dokument_Before_Fill(ByVal DokTypeNr As Long, ByVal xdata As DataTable, ByVal fname As String)
'Office-Vorlage auslesen
Me.inEditMode = False
Me.Dokumenttypnr = DokTypeNr
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
'Tempor<6F>r-Datei
Dokument_Temp = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")
Dokument_Temp = Dokument_Temp + Office_Vorlage.sPrefix_dokumentname.Value + Change_Docname(Now) + ".doc"
'Nativ-Dokumentvorlage
If Not Office_Vorlage.bIdv_vorlage.Value = True Then
Dokument_To_Create = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_word_vorlagen") + Office_Vorlage.sOffice_vorlage.Value
StartWord()
DokumentFilename = fname
objWord.Documents.Add(Template:=Dokument_To_Create)
objWord.ActiveDocument.SaveAs(filename:=fname)
docWord = objWord.ActiveDocument
Else
DokumentFilename = fname
Create_IDVDokument(Office_Vorlage.sIdv_id.Value)
End If
IsProtected = False
If docWord.ProtectionType <> WdProtectionType.wdNoProtection Then
docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
IsProtected = True
End If
'Dokument ggf. entsperren, Daten <20>bertragen, Dokument ggf. sch<63>tzen
' If Office_Vorlage.bDokument_geschuetzt.Value = True Then
' docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
' End If
objWord.Visible = False
Word_Werte_Auslesen(xdata)
End Sub
Public Sub Open_Document(ByVal fname As String, ByVal xdata As DataTable, ByVal doktypeNr As Long)
Me.Dokumenttypnr = doktypeNr
Me.inEditMode = True
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
StartWord()
DokumentFilename = fname
objWord.Documents.Open(fname)
docWord = objWord.ActiveDocument
objWord.Visible = False
Word_Werte_Auslesen(xdata)
End Sub
Public Sub Dokument_Vervollstaendigen(ByVal xdata As DataTable)
Fill_Dokument(False, xdata)
If DokumenTtyp.bZu_retournieren.Value = True Then
Generate_Barcodes()
Else
Try
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
Catch
End Try
End If
If IsProtected Then
Try
docWord.Protect(Type:=WdProtectionType.wdAllowOnlyFormFields, noreset:=True, password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
Catch
End Try
End If
FeldMakros()
If objWord.ActiveWindow.View.SplitSpecial = WdSpecialPane.wdPaneNone Then
objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView
Else
objWord.ActiveWindow.View.Type = WdViewType.wdPrintView
End If
objWord.Visible = True
IDV_makros_bearbeiten()
If Cursor_Positionieren Then
Try
docWord.Bookmarks.Item("TGEDKCursor").Select()
docWord.Bookmarks.Item("TGEDKCursorB").Select()
Catch
End Try
End If
Me.Dokument_Saved = False
objWord.Visible = True
Office_Vorlage.Dispose()
DokumenTtyp.Dispose()
Control_Word()
End Sub
Public Sub Word_Werte_Auslesen(ByVal xdata As DataTable)
Dim i As Integer
Dim pos, pos2 As Integer
For i = 0 To xdata.Rows.Count - 1
If xdata.Rows(i).Item("beginntextmarke") <> "" And xdata.Rows(i).Item("endetextmarke") = "" Then
Try
docWord.Bookmarks.Item(xdata.Rows(i).Item("beginntextmarke")).Select()
xdata.Rows(i).Item("oldvalue") = convert(objWord.Selection.Text)
xdata.Rows(i).Item("used") = 1
Catch
End Try
End If
If xdata.Rows(i).Item("beginntextmarke") <> "" And xdata.Rows(i).Item("endetextmarke") <> "" Then
Try
docWord.Bookmarks.Item(xdata.Rows(i).Item("beginntextmarke")).Select()
pos = objWord.Selection.Start
docWord.Bookmarks.Item(xdata.Rows(i).Item("endetextmarke")).Select()
pos2 = objWord.Selection.Start
objWord.Selection.SetRange(Start:=pos, End:=pos2)
xdata.Rows(i).Item("oldvalue") = convert(objWord.Selection.Text)
xdata.Rows(i).Item("used") = 1
Catch
End Try
End If
If xdata.Rows(i).Item("feldname") <> "" Then
Try
xdata.Rows(i).Item("oldvalue") = convert(docWord.FormFields.Item(xdata.Rows(i).Item("feldname")).Result)
xdata.Rows(i).Item("used") = 1
Catch
End Try
End If
Next
End Sub
Public Sub Create_Dokument(ByVal DokTypeNr As Long, ByVal ShowReport As Boolean)
'Office-Vorlage auslesen
Me.inEditMode = False
Me.Dokumenttypnr = DokTypeNr
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
'Tempor<6F>r-Datei
Dokument_Temp = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")
Dokument_Temp = Dokument_Temp + Office_Vorlage.sPrefix_dokumentname.Value + Change_Docname(Now) + ".doc"
DokumentFilename = Dokument_Temp
'Nativ-Dokumentvorlage
If Not Office_Vorlage.bIdv_vorlage.Value = True Then
Dokument_To_Create = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_word_vorlagen") + Office_Vorlage.sOffice_vorlage.Value
StartWord()
objWord.Documents.Add(Template:=Dokument_To_Create)
objWord.ActiveDocument.SaveAs(filename:=DokumentFilename)
docWord = objWord.ActiveDocument
Else
Create_IDVDokument(Office_Vorlage.sIdv_id.Value)
End If
IsProtected = False
If docWord.ProtectionType <> WdProtectionType.wdNoProtection Then
docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
IsProtected = True
End If
'Dokument ggf. entsperren, Daten <20>bertragen, Dokument ggf. sch<63>tzen
' If Office_Vorlage.bDokument_geschuetzt.Value = True Then
' docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
' End If
Fill_Dokument(True)
If DokumenTtyp.bZu_retournieren.Value = True Then
Generate_Barcodes()
Else
Try
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
Catch
End Try
End If
If IsProtected Then
Try
docWord.Protect(Type:=WdProtectionType.wdAllowOnlyFormFields, noreset:=True, password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
Catch
End Try
End If
FeldMakros()
If objWord.ActiveWindow.View.SplitSpecial = WdSpecialPane.wdPaneNone Then
objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView
Else
objWord.ActiveWindow.View.Type = WdViewType.wdPrintView
End If
objWord.Visible = True
IDV_makros_bearbeiten()
If Cursor_Positionieren Then
Try
docWord.Bookmarks.Item("TGEDKCursor").Select()
docWord.Bookmarks.Item("TGEDKCursorB").Select()
Catch
End Try
End If
objWord.Visible = True
Office_Vorlage.Dispose()
DokumenTtyp.Dispose()
If Not ShowReport Then
docWord = Nothing
objWord = Nothing
Else
Get_Docvars(DokTypeNr)
End If
End Sub
#End Region
#Region "Diverse_Funktionen"
Public Function Change_Docname(ByVal s As String) As String
Dim splitt
Dim t As String
splitt = Split(s, ".")
t = splitt(0) + splitt(1) + splitt(2)
splitt = Split(t, ":")
t = splitt(0) + splitt(1) + splitt(2)
Change_Docname = t
End Function
#End Region
#Region "Reporting"
Public Sub Get_Docvars(ByVal DokTypeNr As Long)
Dim id As String
Dim rec As New edokadb.clsReporting_Dokumenttyp()
rec.cpMainConnectionProvider = conn
conn.OpenConnection()
id = Now
Dim i As Long
For i = 1 To docWord.Bookmarks.Count
If Left(UCase(docWord.Bookmarks.Item(i).Name), 2) <> "BK" And Left(UCase(docWord.Bookmarks.Item(i).Name), 4) <> "TGAM" Then
rec.sID = New SqlString(CType(id, String))
rec.sOFBM = New SqlString(CType(docWord.Bookmarks.Item(i).Name, String))
rec.Insert()
End If
Next
For i = 1 To docWord.FormFields.Count
rec.sID = New SqlString(CType(id, String))
rec.sOFFeld = New SqlString(CType(docWord.FormFields.Item(i).Name, String))
rec.Insert()
Next
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.[sp_reporting_dokumenttyp]"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Try
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Parameters.Add(New SqlParameter("@id", SqlDbType.VarChar, 25, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, id))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumenttypnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, DokTypeNr))
If Globals.MyMsg.Show_MessageYesNo(15) = MsgBoxResult.Yes Then
scmCmdToExecute.Parameters.Add(New SqlParameter("@VFInaktivieren", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
Else
scmCmdToExecute.Parameters.Add(New SqlParameter("@VFInaktivieren", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
End If
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Finally
scmCmdToExecute.Dispose()
End Try
Dim f As New frmReporting()
f.show_report_dokumenttypVFelder(Dokumenttypnr, id)
f.Show()
scmCmdToExecute.Dispose()
scmCmdToExecute = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.[sp_reporting_dokumenttyp]"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Try
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.CommandText = "dbo.[sp_reporting_dokumenttyp_delete]"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Parameters.Add(New SqlParameter("@id", SqlDbType.VarChar, 25, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, id))
scmCmdToExecute.ExecuteNonQuery()
Catch es As Exception
MsgBox(es.Message)
End Try
conn.CloseConnection(True)
End Sub
#End Region
' Private Sub objWord_DocumentBeforeClose(ByVal Doc As Word.Document, ByRef Cancel As Boolean) Handles objWord.DocumentBeforeClose
' If UCase(Doc.Path + "\" + Doc.Name) <> UCase(DokumentFilename) Then
' Exit Sub
' Else
' MsgBox(DokumentFilename)
' End If
'End Sub
Private Sub Control_Word()
Exit Sub
Dim ww1 As Word.Application
Dim ende As Boolean
Dim dci As Integer
Dim i As Integer
Dim s As String
Dim f As New frmOfficeBearbeitung()
f.Show()
s = objWord.ActiveDocument.Name
Do While ende = False
ende = True
On Error GoTo ende_loop
ww1 = GetObject(, "word.application")
System.Windows.Forms.Application.DoEvents()
ww1 = GetObject(, "word.application")
again:
dci = ww1.Documents.Count
For i = 1 To ww1.Documents.Count
If dci <> ww1.Documents.Count Then GoTo again
If ww1.Documents.Count > 0 Then
If dci <> ww1.Documents.Count Then GoTo again
If ww1.Documents.Item(i).Name = s Then ende = False
Else
ende = True
End If
Next i
System.Windows.Forms.Application.DoEvents()
Loop
ende_loop:
f.Close()
End Sub
Private Sub objWord_DocumentBeforeSave(ByVal Doc As Word.Document, ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles objWord.DocumentBeforeSave
If UCase(Doc.Path + "\" + Doc.Name) <> UCase(DokumentFilename) Then
Exit Sub
Else
Me.Dokument_Saved = True
End If
End Sub
Function convert(ByVal x As String) As String
Dim s As String
Dim s1 As String
Dim i As Integer
s = x
i = InStr(s, Chr(13))
While i > 0
s = Left(s, i - 1) & "#" & Right(s, Len(s) - (i))
If Mid(s, i + 1, 1) = Chr(10) Then
s = Left(s, i) & Right(s, Len(s) - (i + 1))
End If
i = InStr(s, Chr(13))
End While
i = InStr(s, "#")
While i > 0
s = Left(s, i - 1) & vbCrLf & Right(s, Len(s) - (i))
i = InStr(s, "#")
End While
convert = s
End Function
End Class