|
|
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
|