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.

2528 lines
118 KiB

Imports System.IO
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Imports System.Threading
Imports Word
Public Class WordLib
#Region "Deklarationen"
'FileObjekte
Dim objWatcher As New System.IO.FileSystemWatcher()
Dim objResult As System.IO.WaitForChangedResult
'Word
Private WithEvents objWord As Word.ApplicationClass
Private WithEvents docWord As Word.DocumentClass
Private WithEvents objExcel As Excel.ApplicationClass
Private WithEvents docExcel As Excel.WorkbookClass
Private WithEvents sheetExcel As Excel.Worksheet
'Applicationwatcher
Private WithEvents WordWatch As New ApplicationFileWatcher()
'Dokumentdaten
Dim dokudata As New edokadb.clsMyDokumentDaten()
Dim Dokumentdaten As DataTable
Dim DokumenTtyp As New edokadb.clsDokumenttyp()
Dim Office_Vorlage As New edokadb.clsOffice_vorlage()
'Interne Variablen
Dim isactiv As Boolean
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 timerloop As Integer
Dim Word_Active As Boolean
Dim m_DokumentID As String
Dim m_DokumentTypnr As Long
Dim m_amsdokument As Bookmark
Dim m_DokumentFilename As String
Dim m_DokumentDatum As DateTime
Dim m_Dokumentname As String
Dim m_CreateDoc As Boolean
Dim m_document_saved As Boolean
Dim CheckDokumentname As String
'IDV-Definitionen
Private m_objdc As dc.Application
Dim xx As Object
Dim idvdll As New IDVMakros.Application()
Dim OhneIDV As Boolean = False
'IDV-Definitionen, sofern IDV nicht vorhanden ist (Entwicklung)
'Dim dc As Object
'Dim m_objdc As Object
'Dim idvdll As Object
'Dim xx As Object
'Private dckein As Integer
'Private dcinvisible As Integer
'Private dcMTBS As Long
'Dim OhneIDV As Boolean = True
'Progressbar
Public ProgressBar As New frmProgress()
'Datentabellen
Public Save_Dokument As New DataTable()
Public Save_Notizen As New DataTable()
Public Save_ColdIndex As DataTable
Public Save_Dokumentwerte As DataTable
Public Save_Dokumentzuordnungen As DataTable
Public Save_Dokumentinfomeldungen As DataTable
Public Save_DokumentFunktionen As DataTable
Public save_historystatus As Integer
Public save_dokumentersetzen As DataTable
Public save_dokumentcoldindex As DataTable
Public Dokumentcoldindex_Changed As Boolean
Public dokumentcoldindex_status As String
Public dokumentid_changed As Boolean
Public dokumentidalt As String
Public Ersetzte_Dokumente_Reaktivieren As Boolean
Public txtBemerkung_Verantwortlicher As String
Public save_verantwortlicher As Integer
Public save_stv As Integer
Dim Save_DateTime As DateTime
Dim Excel_Dokument As Boolean
Dim DocReadonly As Boolean
Dim m_txtpartner As String
Property txtPartner() As String
Get
Return m_txtpartner
End Get
Set(ByVal Value As String)
m_txtpartner = Value
End Set
End Property
Dim m_txtdokumenttyp As String
Property txtDokumenttyp() As String
Get
Return m_txtdokumenttyp
End Get
Set(ByVal Value As String)
m_txtdokumenttyp = Value
End Set
End Property
'Events
Public Event OfficeFinished()
Public send_statusmessage As Boolean
Dim Finished As Boolean = False
#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
Property DokumentID() As String
Get
Return m_DokumentID
End Get
Set(ByVal Value As String)
m_DokumentID = Value
End Set
End Property
Property DokumentName() As String
Get
Return m_Dokumentname
End Get
Set(ByVal Value As String)
m_Dokumentname = Value
End Set
End Property
Property Dokumentfilename() As String
Get
Return m_DokumentFilename
End Get
Set(ByVal Value As String)
m_DokumentFilename = Value
End Set
End Property
Property DokumentDatum() As DateTime
Get
Return m_DokumentDatum
End Get
Set(ByVal Value As DateTime)
m_DokumentDatum = Value
End Set
End Property
Property CreateDoc() As Boolean
Get
Return m_CreateDoc
End Get
Set(ByVal Value As Boolean)
m_CreateDoc = Value
End Set
End Property
#End Region
#Region "IDVP-Funktionen"
Private Sub Cancel_IDVPortfeuille()
Dim hwnd As Long
hwnd = Win32API.FindWindow(vbNullString, "DC")
While hwnd <> 0
Dim s As String
s = MyTxt.gettext(87)
Dim f As New frmHinweismeldung1()
f.Label1.Text = s
f.MsgBoxStyle = 1
f.ShowDialog()
f.Dispose()
' MyMsg.show_standardmessage(87, MsgBoxStyle.Critical)
hwnd = Win32API.FindWindow(vbNullString, "DC")
'Win32API.BringWindowToTop(hwnd)
End While
' 'Exit Sub
' 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.DokVarClear("VarHerkunft")
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()
'22.07.2003 Visible=False
objWord.Visible = False
Cancel_IDVPortfeuille()
m_objdc = CreateObject("DC.Application")
m_objdc.WindowState = dc.dcWindowState.dcInvisible
m_objdc.WindowState = 0
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 = False
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()
'22.07.2003 Visible=False
objWord.Visible = False
docWord = objWord.ActiveDocument
If docWord.Name <> DivFnkt.ExtractFilename(Dokumentfilename) Then
docWord.Close()
docWord = objWord.ActiveDocument
End If
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("Fehler beim Makro-Aufruf - Makro: " + makros.Rows(i).Item("makro") + vbCrLf + vbCrLf + ex.Message)
End Try
Next i
End Function
#End Region
#Region "Word-Funktionen"
Private Function StartWord()
' StartWord_New_Instance()
' Exit Function
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 Function StartWord_New_Instance()
Try
objWord = CreateObject("Word.application")
Catch ex As Exception
MsgBox(ex.Message)
Exit Function
End Try
objWord.Visible = False
End Function
Private Function StartIDVP()
Try
m_objdc = GetObject("dc.application")
Catch
Try
m_objdc = CreateObject("dc.application")
Catch ex As Exception
MsgBox(ex.Message)
End Try
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
set_headerbookmark()
objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument
End Sub
Private Sub set_headerbookmark()
Try
docWord.Bookmarks.Item("TGEDKCompanyBBEB99").Select()
Catch
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
End Try
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
Else
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
If Dokumentdaten.Rows(i).Item("used") = 1 Then
'If Dokumentdaten.Rows(i).Item("xvalue") <> "" Then
' If Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 19) = "TGEDKDirektTelefonB" Or _
' Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 19) = "TGEDKDirektTelefonZ" Then
' objWord.Visible = True
' objWord.Selection.Text = Dokumentdaten.Rows(i).Item("xvalue") + " "
' Else
objWord.Selection.Text = Dokumentdaten.Rows(i).Item("xvalue")
' End If
End If
End If
pos2 = objWord.Selection.End
If Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 19) = "TGEDKDirektTelefonB" Or _
Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 23) = "TGEDKVornameNameBetreue" Or _
Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 19) = "TGEDKDirektTelefonZ" Then
objWord.Selection.MoveLeft(Unit:=Word.WdUnits.wdCharacter, Count:=1)
objWord.Selection.TypeText(text:=" ")
objWord.Selection.SetRange(Start:=pos + 1, End:=pos2 + 1)
With docWord.Bookmarks
.Add(Range:=objWord.Selection.Range, Name:=Dokumentdaten.Rows(i).Item("beginntextmarke"))
.DefaultSorting = WdBookmarkSortBy.wdSortByName
.ShowHidden = False
End With
Else
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
End If
objWord.Selection.MoveLeft(Unit:=Word.WdUnits.wdCharacter, Count:=1)
objWord.Selection.MoveLeft(Unit:=Word.WdUnits.wdCharacter, Count:=2, Extend:=Word.WdMovementType.wdExtend)
If objWord.Selection.Text = " " Then
objWord.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1)
objWord.Selection.MoveLeft(Unit:=Word.WdUnits.wdCharacter, Count:=1, Extend:=Word.WdMovementType.wdExtend)
objWord.Selection.Delete(Unit:=Word.WdUnits.wdCharacter, Count:=1)
End If
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
If Dokumentdaten.Rows(i).Item("used") = 1 Then
' If Dokumentdaten.Rows(i).Item("xvalue") <> "" Then
objWord.Selection.TypeText(text:=Dokumentdaten.Rows(i).Item("xvalue"))
End If
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
If Dokumentdaten.Rows(i).Item("used") = 1 Then
' If Dokumentdaten.Rows(i).Item("xvalue") <> "" Then
docWord.FormFields.Item(Dokumentdaten.Rows(i).Item("feldname")).Result = Dokumentdaten.Rows(i).Item("xvalue")
End If
End If
Catch
End Try
End If
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 "Excel-Funktionen"
Private Function StartExcel()
Try
objExcel = CreateObject("Excel.application")
Catch ex As Exception
MsgBox(ex.Message)
Exit Function
End Try
objExcel.Visible = False
End Function
#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()
If Me.Excel_Dokument Then
insert_Barcode_Excel()
Exit Sub
End If
Me.ProgressBar.Bar1.Value = 70
Me.ProgressBar.Info.Text = "Bestehende Barcodes l<>schen"
delete_Textfelder()
Me.ProgressBar.Bar1.Value = 80
Me.ProgressBar.Info.Text = "Positionen f<>r Barcodes ermitteln"
Insert_TextFelder()
Me.ProgressBar.Bar1.Value = 90
Me.ProgressBar.Info.Text = "Barcodes erstellen"
ins_Barcode()
Me.ProgressBar.Bar1.Value = 100
Me.ProgressBar.Info.Text = "Dokumentgenerierung abgeschlossen"
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 = 1 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()
While objWord.Selection.HeaderFooter.Shapes.Count > 0
objWord.Selection.HeaderFooter.Shapes.Item(1).Delete()
End While
' On Error GoTo eh
' ' Resume Next
' For i1 = 1 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
Exit Sub
eh:
'MsgBox(Err.Description)
Resume Next
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 = 1
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
For i = 1 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)
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 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()
insert_Barcode(i)
Textboxesi = Textboxesi + 1
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()
Textboxes(Textboxesi) = objWord.Selection.HeaderFooter.Shapes.Item(Textboxesi).Name
Textboxesi = Textboxesi + 1
System.Windows.Forms.Application.DoEvents()
Exit Sub
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub insert_Barcode_Excel()
Dim i As Integer
Dim i1 As Integer
Dim s As String
Dim na As String
Dim xx As Integer
Me.ProgressBar.Bar1.Value = 80
Me.ProgressBar.Info.Text = "Barcodes generieren"
s = Bar25I(Microsoft.VisualBasic.Right(Right(m_DokumentID, Len(m_DokumentID) - 6), 16))
For i = 1 To docExcel.Sheets.Count
docExcel.Sheets(i).activate()
For i1 = 1 To docExcel.Names.Count
Try
na = docExcel.Names.Item(i1).NameLocal
If Left(na, 7) = "TGEDKBC" Then
objExcel.Range(objExcel.Names.Item(na).NameLocal).Select()
objExcel.ActiveCell.FormulaR1C1 = s
With objExcel.Selection.Characters.Font
.Name = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("barcode_font")
'.Size = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("bcfont_groesse")
End With
'objExcel.Selection.HorizontalAlignment = Excel.XlHAlign.xlHAlignRight
End If
Catch ex As Exception
End Try
Next
Next
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()
If Office_Vorlage.bBchorizontal.Value = False Then
objWord.ActiveDocument.Tables.Add(Range:=objWord.Selection.Range, NumRows:=1, NumColumns:=1)
With objWord.Selection.Tables.Item(1)
.Borders.Item(WdBorderType.wdBorderLeft).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Item(WdBorderType.wdBorderRight).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Item(WdBorderType.wdBorderTop).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Item(WdBorderType.wdBorderBottom).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Item(WdBorderType.wdBorderDiagonalDown).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Item(WdBorderType.wdBorderDiagonalUp).LineStyle = WdLineStyle.wdLineStyleNone
.Borders.Shadow = False
End With
objWord.Selection.Orientation = Word.WdTextOrientation.wdTextOrientationUpward
objWord.Selection.Tables.Item(1).Rows.HeightRule = Word.WdRowHeightRule.wdRowHeightAtLeast
objWord.Selection.Tables.Item(1).Rows.Height = Form.height
End If
s = Bar25I(Microsoft.VisualBasic.Right(Right(m_DokumentID, Len(m_DokumentID) - 6), 16))
'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
objWord.Selection.EndKey(Unit:=Word.WdUnits.wdLine)
objWord.Selection.Font.Name = "Arial"
objWord.Selection.Font.Size = 8
If DokumenTtyp.iPhysisches_archiv.Value = 2 Then
objWord.Selection.TypeText(" F")
Else
objWord.Selection.TypeText(" U")
End If
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"
#Region "Word"
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.Excel_Dokument = False
Me.Dokumenttypnr = DokTypeNr
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Me.ProgressBar.Bar1.Value = 30
Me.ProgressBar.Info.Text = "Word-Dokument erstellen"
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
If Office_Vorlage.iAnwendungnr.Value = 2 Then
Create_Excel_Before_Fill(DokTypeNr, xdata, fname)
Exit Sub
End If
'Tempor<6F>r-Datei
Dokument_Temp = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")
CheckDokumentName = Dokument_Temp + Office_Vorlage.sPrefix_dokumentname.Value + ".doc"
Dokument_Temp = Dokument_Temp + Office_Vorlage.sPrefix_dokumentname.Value + ".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
If Not OhneIDV Then
Create_IDVDokument(Office_Vorlage.sIdv_id.Value)
Else
Dokument_To_Create = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_word_vorlagen") + Office_Vorlage.sIdv_id.Value + ".doc"
StartWord()
Dokumentfilename = fname
objWord.Documents.Add(Template:=Dokument_To_Create)
objWord.ActiveDocument.SaveAs(filename:=fname)
docWord = objWord.ActiveDocument
End If
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
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen"
Word_Werte_Auslesen(xdata)
Me.ProgressBar.Bar1.Value = 50
Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen"
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()
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Word-Dokument <20>ffnen"
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
If Office_Vorlage.iAnwendungnr.Value = 2 Then
Open_Excel(fname, xdata, doktypeNr)
Exit Sub
End If
StartWord()
objWord.Run("Autoexec")
Dokumentfilename = fname
objWord.Documents.Open(fname)
docWord = objWord.ActiveDocument
objWord.Visible = False
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen"
If docWord.ProtectionType <> WdProtectionType.wdNoProtection Then
docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
IsProtected = True
End If
Word_Werte_Auslesen(xdata)
Me.ProgressBar.Bar1.Value = 50
Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen"
End Sub
Public Sub Dokument_Vervollstaendigen(ByVal xdata As DataTable)
If Me.Excel_Dokument = True Then
Excel_Vervollstaendigen(xdata)
Exit Sub
End If
Me.ProgressBar.Bar1.Value = 60
Me.ProgressBar.Info.Text = "Dokumentwerte <20>bertragen"
If docWord.ProtectionType <> WdProtectionType.wdNoProtection Then
docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen"))
IsProtected = True
End If
'22.07.2003
objWord.Visible = False
objWord.WindowState = WdWindowState.wdWindowStateMinimize
System.Windows.Forms.Application.DoEvents()
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
objWord.ScreenUpdating = True
Me.ProgressBar.Close()
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
objWord.Activate()
objWord.WindowState = WdWindowState.wdWindowStateMaximize
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
If Me.CreateDoc = True Then IDV_makros_bearbeiten()
If Cursor_Positionieren Then
Try
docWord.Bookmarks.Item("TGEDKCursor").Select()
Catch
Try
docWord.Bookmarks.Item("TGEDKCursorB").Select()
Catch
End Try
End Try
End If
Me.Dokument_Saved = False
If objWord.ActiveWindow.View.SplitSpecial = WdSpecialPane.wdPaneNone Then
objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView
Else
objWord.ActiveWindow.View.Type = WdViewType.wdPrintView
End If
'22.07.2003 Visible=False
objWord.Visible = False
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
xdata.Rows(i).Item("used") = 0
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
If xdata.Rows(i).Item("beginntextmarke") = "TGEDKCompanyBBEB99" Then xdata.Rows(i).Item("used") = 1
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
Try
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
Catch
End Try
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
' Me.ProgressBar.Close()
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
Public Sub ShowDoc(ByVal s As String)
If UCase(Right(s, 3)) = "XLS" Then
StartExcel()
objExcel.Workbooks.Open(s)
objExcel.Visible = True
Me.Excel_Dokument = True
End If
If UCase(Right(s, 3)) = "DOC" Then
StartWord()
Me.Excel_Dokument = False
objWord.Run("Autoexec")
objWord.Documents.Open(s)
docWord = objWord.ActiveDocument
docWord.Application.Visible = True
docWord.Activate()
insert_wordart()
objWord.Visible = True
objWord.Activate()
objWord.NormalTemplate.Saved = True
End If
Me.DokumentName = DivFnkt.ExtractFilename(s)
Control_Word_readonly()
End Sub
Public Function insert_wordart()
objWord.ActiveWindow.ActivePane.NewFrameset()
objWord.ActiveWindow.ActivePane.Frameset.AddNewFrame(Word.WdFramesetNewFrameLocation.wdFramesetNewFrameAbove)
With objWord.ActiveWindow.Document.Frameset.ChildFramesetItem(1)
.HeightType = Word.WdFramesetSizeType.wdFramesetSizeTypeFixed
' .HeightType = wdFramesetSizeTypePercent
.Height = 35
End With
objWord.Selection.TypeText(text:="*** Dokument im Anzeigemodus ge<67>ffnet ***")
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdLine, Extend:=Word.WdMovementType.wdExtend)
objWord.Selection.Font.Color = Word.WdColor.wdColorRed
objWord.Selection.Font.Size = 12
objWord.Selection.EndKey(Unit:=Word.WdUnits.wdLine)
objWord.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter
objWord.Selection.Font.Color = WdColor.wdColorBlack
objWord.Selection.TypeParagraph()
objWord.Selection.Font.Size = 9
objWord.Selection.TypeText(text:="<22>nderungen im Dokument werden in EDOKA nicht ber<65>cksichtigt, auch dann nicht, wenn Sie das Dokument abspeichern.")
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdLine, Extend:=Word.WdMovementType.wdExtend)
objWord.Selection.Font.Color = WdColor.wdColorBlack
objWord.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
objWord.ActiveWindow.Panes.Item(1).Activate()
If objWord.ActiveWindow.View.SplitSpecial = WdSpecialPane.wdPaneNone = True Then
objWord.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintPreview
Else
objWord.ActiveWindow.View.Type = WdViewType.wdPrintPreview
End If
objWord.CommandBars("Frames").Visible = False
End Function
Public Sub CloseDoc()
docWord.Close(False)
docWord = Nothing
objWord = Nothing
End Sub
#End Region
#Region "Excel"
Public Sub Create_Excel_Before_Fill(ByVal DokTypeNr As Long, ByVal xdata As DataTable, ByVal fname As String)
Dim i As Integer
Me.inEditMode = False
Me.Excel_Dokument = True
Me.Dokumenttypnr = DokTypeNr
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Me.ProgressBar.Bar1.Value = 30
Me.ProgressBar.Info.Text = "Word-Dokument erstellen"
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 + ".doc"
'Nativ-Dokumentvorlage
If Not Office_Vorlage.bIdv_vorlage.Value = True Then
Dokument_To_Create = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_excel_vorlagen") + Office_Vorlage.sOffice_vorlage.Value
StartExcel()
Dokumentfilename = fname
objExcel.Workbooks.Add(Template:=Dokument_To_Create)
objExcel.ActiveWorkbook.SaveAs(filename:=fname)
docExcel = objExcel.ActiveWorkbook
End If
IsProtected = False
For i = 1 To docExcel.Sheets.Count
docExcel.Sheets(i).activate()
sheetExcel = docExcel.ActiveSheet
sheetExcel.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_excelvorlagen"))
IsProtected = True
Next i
objExcel.Visible = False
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen"
Excel_Werte_Auslesen(xdata)
Me.ProgressBar.Bar1.Value = 50
Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen"
End Sub
Public Sub Open_Excel(ByVal fname As String, ByVal xdata As DataTable, ByVal doktypeNr As Long)
Dim i As Integer
Me.Dokumenttypnr = doktypeNr
Me.inEditMode = True
DokumenTtyp.cpMainConnectionProvider = conn
DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32))
DokumenTtyp.SelectOne()
Me.Excel_Dokument = True
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Word-Dokument <20>ffnen"
Office_Vorlage.cpMainConnectionProvider = conn
Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr
Office_Vorlage.SelectOne()
StartExcel()
Dokumentfilename = fname
objExcel.Workbooks.Open(fname)
docExcel = objExcel.ActiveWorkbook
objExcel.Visible = False
Me.ProgressBar.Bar1.Value = 40
Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen"
For i = 1 To docExcel.Sheets.Count
docExcel.Sheets(i).activate()
sheetExcel = docExcel.ActiveSheet
sheetExcel.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_excelvorlagen"))
IsProtected = True
Next i
Excel_Werte_Auslesen(xdata)
Me.ProgressBar.Bar1.Value = 50
Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen"
End Sub
Public Sub Excel_Werte_Auslesen(ByVal xdata As DataTable)
Dim i As Integer
Dim i1 As Integer
Dim sheets As Integer
sheets = docExcel.Sheets.Count
For i = 1 To sheets
docExcel.Sheets(i).activate()
For i1 = 0 To xdata.Rows.Count - 1
Try
objExcel.Range(docExcel.Names.Item(xdata.Rows(i1).Item("feldname")).NameLocal).Select()
xdata.Rows(i1).Item("oldvalue") = objExcel.Selection.text
xdata.Rows(i1).Item("used") = 1
Catch
End Try
Next
Next
End Sub
Public Sub Excel_Vervollstaendigen(ByVal xdata As DataTable)
Dim Sheetnr_fuer_Cursor As Integer
Me.ProgressBar.Bar1.Value = 60
Me.ProgressBar.Info.Text = "Dokumentwerte <20>bertragen"
Dim i As Integer
Dim i1 As Integer
Dim sheets As Integer
sheets = docExcel.Sheets.Count
sheetnr_fuer_cursor = 0
For i = 1 To sheets
docExcel.Sheets(i).activate()
For i1 = 0 To xdata.Rows.Count - 1
Try
If xdata.Rows(i1).Item("beginntextmarke") = "TGEDKCursor" Or _
xdata.Rows(i1).Item("beginntextmarke") = "TGEDKCursorB" Or _
xdata.Rows(i1).Item("feldname") = "TGEDKCursorB" Or _
xdata.Rows(i1).Item("feldname") = "TGEDKCursor" Then
Try
objExcel.Range(docExcel.Names.Item(xdata.Rows(i1).Item("feldname")).NameLocal).Select()
Cursor_Positionieren = True
Sheetnr_fuer_Cursor = i
Catch
End Try
Else
objExcel.Range(docExcel.Names.Item(xdata.Rows(i1).Item("feldname")).NameLocal).Select()
objExcel.ActiveCell.FormulaR1C1 = xdata.Rows(i1).Item("xvalue")
End If
Catch
End Try
Next
'docExcel.Sheets(i).largescroll(down:=-10)
Next
If DokumenTtyp.bZu_retournieren.Value = True Then
Generate_Barcodes()
End If
If IsProtected Then
For i = 1 To docExcel.Sheets.Count
docExcel.Sheets(i).activate()
sheetExcel = docExcel.ActiveSheet
sheetExcel.Protect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_excelvorlagen"))
IsProtected = True
Next i
End If
If Cursor_Positionieren Then
Try
docExcel.Sheets(Sheetnr_fuer_Cursor).activate()
objExcel.Range(docExcel.Names.Item("TGEDKCursor").NameLocal).Select()
Catch
Try
docExcel.Sheets(Sheetnr_fuer_Cursor).activate()
objExcel.Range(docExcel.Names.Item("TGEDKCursorB").NameLocal).Select()
Catch
End Try
End Try
Else
objExcel.Sheets(1).activate()
End If
Me.ProgressBar.Close()
Control_Word()
End Sub
#End Region
#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
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 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 Short
For i = 1 To docWord.Bookmarks.Count
Try
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
Catch ex As Exception
MsgBox(ex.Message)
End Try
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
#Region "ControlWord"
Private Sub Control_Word()
Me.DocReadonly = False
Me.Dokument_Saved = False
'FileWatcher()
WATCHFILE()
End Sub
Private Sub Control_Word_readonly()
Me.DocReadonly = True
Me.Dokument_Saved = False
WATCHFILE()
End Sub
Private Function WATCHFILE()
'Wordwatch - <20>berpr<70>fung auf ge<67>ffnete
WordWatch.Filename = Me.DokumentName
If Me.Excel_Dokument Then
WordWatch.ApplicationType = 2
objExcel.Visible = True
Else
WordWatch.ApplicationType = 1
objWord.Visible = True
Disable_Enable_MenuFunctions(False)
End If
Word_Active = True
If Not Me.DocReadonly Then Save_DateTime = File.GetLastWriteTime(Me.Dokumentfilename)
Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Minimze)
WordWatch.Start()
Globals.PerfMon.insert_entry(Me.DokumentID + " Task-Pr<50>fung gestartet")
Dim hnd As Long
hnd = Win32API.FindWindow(vbNullString, WordWatch.WindowName)
Win32API.ShowWindow(hnd, Win32API.SW_Maximize)
Win32API.BringWindowToTop(hnd)
End Function
Private Sub Finishing() Handles WordWatch.DocumentClosed
WordWatch.Stopp()
Globals.PerfMon.insert_entry(Me.DokumentID + " Taskpr<70>fung gestoppt")
If Finished Then Exit Sub
Finished = True
Dim i As Integer
If Not Me.Excel_Dokument Then
If Globals.Words.Count = 0 Then Disable_Enable_MenuFunctions(True)
End If
If Me.DocReadonly Then
Delete_File()
Exit Sub
End If
If File.GetLastWriteTime(Me.Dokumentfilename) <> Save_DateTime Then
Globals.PerfMon.insert_entry(Me.DokumentID + " *** Dokument speichern start")
Save_Data()
Globals.PerfMon.insert_entry(Me.DokumentID + " *** Dokument speichern ende")
Else
Globals.PerfMon.insert_entry(Me.DokumentID + " *** Dokument restore start")
Restore_Data()
Globals.PerfMon.insert_entry(Me.DokumentID + " *** Dokument restore ende")
End If
Try
Words.Remove(Me.DokumentName)
Globals.PerfMon.insert_entry(Me.DokumentID + " Eintrag aus interner Collection entfernt")
If Globals.Words.Count = 0 Then Disable_Enable_MenuFunctions(True)
DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID)
Catch
Finally
Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize)
End Try
End Sub
Public Function FileWatcher()
Save_DateTime = File.GetLastWriteTime(Me.Dokumentfilename)
End Function
Private Sub filechange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
If e.ChangeType = IO.WatcherChangeTypes.Changed Then
MsgBox(e.FullPath & " " & e.Name)
Me.Dokument_Saved = True
End If
End Sub
#End Region
#Region "Save / Restore"
Public Function Save_Data()
WordWatch.Stopp()
Save_Doc()
Update_Dokumentdetails()
Dim statush As New Statushandling()
statush.check_abschluss(Me.DokumentID, Globals.MitarbeiterNr)
End Function
Private Sub Change_Dokumentstatus()
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_archiv_changedokumentstatus"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.StatusChanges_Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.StatusChanges_Status))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Public Function Restore_Data()
WordWatch.Stopp()
If Me.CreateDoc = True Then
Restore(1)
Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize)
Dim s As String
s = MyTxt.Get_Meldungstext(80) + vbCrLf + vbCrLf + "Partner: " + Me.txtPartner + vbCrLf + "Dokument: " & Me.txtDokumenttyp
Dim f As New frmHinweismeldung1()
f.MsgBoxStyle = 1
f.Label1.Text = s
f.ShowDialog()
Globals.PerfMon.insert_entry(Me.DokumentID + " " + s)
' MsgBox(s, MsgBoxStyle.Critical)
Else
Restore(2)
End If
DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID)
End Function
Public Function Restore(ByVal typ As Integer)
Restore_Datasets()
End Function
Public Function Save_Doc()
Dim docsave As New DocMgmt()
docsave.Save_To_DB(Me.DokumentID, Me.Dokumentfilename)
docsave = Nothing
Globals.PerfMon.insert_entry(Me.DokumentID + " Dokument auf Datenbank gespeichert")
If Me.Dokumentcoldindex_Changed Then
Archivfnkt.insert_coldupdate_status(Me.save_dokumentcoldindex, Me.DokumentID, Me.dokumentcoldindex_status)
End If
If Me.Ersetzte_Dokumente_Reaktivieren = True Then
Dokumente_Reaktivieren()
End If
DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID)
Delete_File()
End Function
Public Function Dokumente_Reaktivieren()
Dim da As New SqlDataAdapter("Select * from dokumentersetzen where hauptdokumentid='" & Me.DokumentID & "'", Globals.sConnectionString)
Dim ds As New DataSet()
Dim i As Integer
da.Fill(ds, "Ersetzen")
For i = 0 To ds.Tables(0).Rows.Count - 1
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Dokument_reaktivieren"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
conn.OpenConnection()
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ds.Tables(0).Rows(i).Item(2)))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiter", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
conn.CloseConnection(True)
Dim dt As DataTable
Dim sth As New Statushandling()
dt = sth.get_coldindex_and_statusnr(ds.Tables(0).Rows(i).Item(2), False, True)
Archivfnkt.insert_coldupdate_reaktivieren(dt, ds.Tables(0).Rows(i).Item(2), "Aktuell")
sth.Dispose()
End Try
Next
da.Dispose()
ds.Dispose()
End Function
Public Function Update_Dokumentdetails()
Dim doc As New edokadb.clsDokument()
doc.cpMainConnectionProvider = conn
conn.OpenConnection()
doc.sDokumentid = New SqlString(CType(Me.DokumentID, String))
doc.SelectOne()
doc.daMutiertam = New SqlDateTime(CType(Microsoft.VisualBasic.Now, DateTime))
doc.Update()
Dim statush As New Statushandling()
If (doc.iVerantwortlich.Value <> Globals.MitarbeiterNr) Then
If Me.save_stv = 1 Then
If doc.iVerantwortlich.Value <> Me.save_verantwortlicher Then
If Me.txtBemerkung_Verantwortlicher <> "" Then
statush.BemerkungVerantwortlicher = Me.txtBemerkung_Verantwortlicher
End If
statush.Meldung_Verantwortlicher(Me.DokumentID, doc.iVerantwortlich.Value)
End If
Else
If Me.txtBemerkung_Verantwortlicher <> "" Then
statush.BemerkungVerantwortlicher = Me.txtBemerkung_Verantwortlicher
End If
statush.Meldung_Verantwortlicher(Me.DokumentID, doc.iVerantwortlich.Value)
End If
End If
If Me.send_statusmessage = True Then
statush.Meldung_Status(Me.DokumentID, doc.iStatusnr.Value)
End If
statush.Dispose()
doc.Dispose()
conn.CloseConnection(True)
Globals.PerfMon.insert_entry(Me.DokumentID + " Dokumentdetails nachgef<65>hrt")
End Function
Public Function Delete_File()
File.Delete(Me.Dokumentfilename)
RaiseEvent OfficeFinished()
Globals.PerfMon.insert_entry(Me.DokumentID + " Lokale Kopie gel<65>scht")
End Function
Public Sub Restore_Datasets()
Dim f As New FrmRestore()
f.Show()
f.Refresh()
Try
Restore_Coldindex()
Restore_Dokumentwerte()
Restore_Notizen()
Restore_InfoEmpfaenger()
Restore_dokumentzuordnungen()
Restore_Dokumentfunktionen()
Restore_Statushistory()
Restore_Dokumentersetzen()
If Me.CreateDoc = True Then
delete_dokumentstatus()
End If
Delete_File()
f.DokumentID = Me.DokumentID
f.SaveDocument = Me.Save_Dokument
f.NeuesDokument = Me.CreateDoc
f.Restore_Dokument()
If Me.Dokumentcoldindex_Changed = True Then Archivfnkt.Restore_Coldindex(Me.save_dokumentcoldindex, Me.DokumentID)
If Me.dokumentid_changed Then Archivfnkt.change_dokumentid(Me.DokumentID, Me.dokumentidalt)
f.Close()
f.Dispose()
Globals.PerfMon.insert_entry(Me.DokumentID + " Restore durchgef<65>hrt")
Catch
f.Close()
f.Dispose()
Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize)
Dim s As String
s = MyTxt.Get_Meldungstext(84) + vbCrLf + vbCrLf + "Partner: " + Me.txtPartner + vbCrLf + "Dokument: " & Me.txtDokumenttyp
Dim f1 As New frmHinweismeldung1()
f1.MsgBoxStyle = 1
f1.Label1.Text = s
f1.ShowDialog()
f1.Dispose()
Globals.PerfMon.insert_entry(Me.DokumentID + " " + s)
End Try
End Sub
Private Sub Restore_Notizen()
'Sofern keine Notizen vorhanden sind, Sub verlassen
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_Notizen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
'Restore der alten notizen
For i = 0 To Save_Notizen.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("dokumentid")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@notiznr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("notiznr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("betreff")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("notiz")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Notizen.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
'L<>schen der neuen Notizen
nnr = 0
For i = 0 To Save_Notizen.Rows.Count - 1
If Save_Notizen.Rows(i).Item("notiznr") > nnr Then nnr = Me.Save_Notizen.Rows(i).Item("notiznr")
Next
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@notiznr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Microsoft.VisualBasic.Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_Coldindex()
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_ColdIndex"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
If Me.CreateDoc = True Then
'Coldindexwerte bei neuem Dokument l<>schen
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@coldindexwertnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex - Delete::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Try
Exit Sub
End If
'Restore der alten Indexwerte
For i = 0 To Save_ColdIndex.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("dokumentid")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@coldindexwertnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("coldindexwertnr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("wert")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_ColdIndex.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_Dokumentwerte()
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_Dokumentwerte"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
If Me.CreateDoc = True Then
'Coldindexwerte bei neuem Dokument l<>schen
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentinfonr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex - Delete::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Try
Exit Sub
End If
'Restore der alten Indexwerte
For i = 0 To Save_Dokumentwerte.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("dokumentid")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentinfonr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("dokumentinfonr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("inhalt")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentwerte.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_InfoEmpfaenger()
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_DokumentInfoEmpfaenger"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
For i = 0 To Save_Dokumentinfomeldungen.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("dokumentid")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentinfomeldungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("dokumentinfomeldungnr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("empfaengernr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("inhalt")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@meldungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("meldungstext")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@beistatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("beistatus")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentinfomeldungen.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex - Delete::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next i
'L<>schen der neuen InfoEmpf<70>nger
Dim nn As Integer
nnr = 0
For i = 0 To Save_Dokumentinfomeldungen.Rows.Count - 1
If Save_Dokumentinfomeldungen.Rows(i).Item("dokumentinfomeldungnr") > nnr Then nnr = Me.Save_Dokumentinfomeldungen.Rows(i).Item("dokumentinfomeldungnr")
Next
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentinfomeldungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@meldungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@beistatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Infoempf<70>nger::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_dokumentzuordnungen()
'Sofern keine Notizen vorhanden sind, Sub verlassen
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_Dokumentzuordnungen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
'Restore der alten notizen
For i = 0 To Save_Dokumentzuordnungen.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid1", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("dokumentid1")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid2", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("dokumentid2")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentzuordnungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("nreintrag")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@zuordnungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("zuordnungnr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_Dokumentzuordnungen.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
'L<>schen der neuen Notizen
nnr = 0
For i = 0 To Save_Dokumentzuordnungen.Rows.Count - 1
If Save_Dokumentzuordnungen.Rows(i).Item("nreintrag") > nnr Then nnr = Me.Save_Dokumentzuordnungen.Rows(i).Item("nreintrag")
Next
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid1", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid2", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentzuordnungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@zuordnungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_Dokumentfunktionen()
'Sofern keine dokumentfunktionen vorhanden sind, Sub verlassen
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_Dokumentfunktionen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
'Restore der alten dokumentfunktionen
For i = 0 To Save_DokumentFunktionen.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_DokumentFunktionen.Rows(i).Item("dokumentid")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentfunktiongruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_DokumentFunktionen.Rows(i).Item("dokumentfunktiongruppenr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_DokumentFunktionen.Rows(i).Item("mutiert_am")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_DokumentFunktionen.Rows(i).Item("mutierer")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Save_DokumentFunktionen.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
'L<>schen der neuen dokumentfunktionen
nnr = 0
For i = 0 To Save_DokumentFunktionen.Rows.Count - 1
If Save_DokumentFunktionen.Rows(i).Item("dokumentfunktiongruppenr") > nnr Then nnr = Me.Save_DokumentFunktionen.Rows(i).Item("dokumentfunktiongruppenr")
Next
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentfunktiongruppenr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutiertam", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Microsoft.VisualBasic.Now))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
Private Sub Restore_Statushistory()
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_statushistory"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@statushistorynr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.save_historystatus))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex - Delete::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Try
End Sub
Private Sub delete_dokumentstatus()
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_delete_dokumentstatus"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Restore Coldindex - Delete::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Try
End Sub
Private Sub Restore_Dokumentersetzen()
'Sofern keine dokumentfunktionen vorhanden sind, Sub verlassen
Dim i As Integer
Dim nnr As Long
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
scmCmdToExecute.CommandText = "dbo.SP_Restore_Dokumentersetzen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
scmCmdToExecute.Connection.Open()
'Restore der alten dokumentfunktionen
For i = 0 To save_dokumentersetzen.Rows.Count - 1
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentersetzennr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, save_dokumentersetzen.Rows(i).Item("dokumentersetzennr")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@hauptdokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, save_dokumentersetzen.Rows(i).Item("aktiv")))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
Next
'L<>schen der neuen dokumentfunktionen
nnr = 0
For i = 0 To save_dokumentersetzen.Rows.Count - 1
If save_dokumentersetzen.Rows(i).Item("dokumentersetzennr") > nnr Then nnr = Me.save_dokumentersetzen.Rows(i).Item("dokumentersetzennr")
Next
Try
scmCmdToExecute.Parameters.Clear()
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentersetzennr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@hauptdokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
End Try
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Sub
#End Region
#Region "TM-Pr<50>fung"
Dim ofile As System.IO.File
Dim oread As System.IO.TextWriter
Public Sub Check_Doks()
oread = ofile.CreateText("c:\tm.txt")
Dim dokt As New edokadb.clsDokumenttyp()
dokt.cpMainConnectionProvider = conn
'conn.OpenConnection()
Dim da As DataTable
da = dokt.SelectAll()
Dim a As Long
a = InputBox("Ab Dokumenttypnr")
Dim i As Integer
For i = 0 To da.Rows.Count - 1
If da.Rows(i).Item("aktiv") = True And da.Rows(i).Item("dokumenttypnr") > a And da.Rows(i).Item("Dokument_wird_erstellt") = True Then
Me.Dokumenttypnr = da.Rows(i).Item("dokumenttypnr")
oread.WriteLine("------->" + Str(da.Rows(i).Item("dokumenttypnr")) + " " + da.Rows(i).Item("bezeichnung"))
oread.Flush()
check_word()
End If
Next
oread.Close()
End Sub
Public Sub check_word()
'Office-Vorlage auslesen
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()
If Office_Vorlage.iAnwendungnr.Value = 2 Then
Exit Sub
End If
'Tempor<6F>r-Datei
Dokument_Temp = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")
Dokument_Temp = Dokument_Temp + Office_Vorlage.sPrefix_dokumentname.Value + ".doc"
'Nativ-Dokumentvorlage
If Not Office_Vorlage.bIdv_vorlage.Value = True Then
Else
Dokumentfilename = "c:\edokatemp\wordcheck.doc"
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
Dim i As Integer
For i = 1 To docWord.Bookmarks.Count
If InStr(docWord.Bookmarks.Item(i).Name, "Betreuer") > 0 Then
oread.WriteLine(DokumenTtyp.sBezeichnung.Value + " - " + docWord.Bookmarks.Item(i).Name)
End If
Next
docWord.Close()
objWord.Quit()
docWord = Nothing
objWord = Nothing
End Sub
#End Region
#Region "Etiketten"
Public Function Create_Labels()
StartWord()
docWord = objWord.Documents.Add
objWord.MailingLabel.DefaultPrintBarCode = False
objWord.MailingLabel.CreateNewDocument(Name:="Herma 4611", Address:="", AutoText:="")
objWord.Visible = True
docWord = Nothing
docWord = objWord.ActiveDocument
Dim bc As New edokadb.clsBarcodeetikette()
Dim i As Integer
Dim i1 As Integer
Dim keys As New edokadb.clsMyKey_Tabelle()
Dim key As Long
Dim defkey As String
Dim yy As String
i1 = 0
bc.cpMainConnectionProvider = conn
For i = 0 To 50
keys.cpMainConnectionProvider = conn
key = keys.get_dbkey("barcodeetikette")
defkey = LTrim(key)
While Len(defkey) < 7
defkey = "0" + defkey
End While
yy = LTrim(Str(Year(Now)))
yy = Right(yy, 2)
defkey = yy + defkey
defkey = defkey + LTrim(Pruefziffer(defkey))
bc.iBarcodenr = New SqlInt32(CType(defkey, Int32))
bc.sDokumentid = New SqlString(CType("", String))
bc.bAktiv = New SqlBoolean(CType(True, Boolean))
bc.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
bc.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
bc.iMandantnr = New SqlInt32(CType(Globals.MandantNr, Int32))
bc.iMutierer = New SqlInt32(CType(Globals.MitarbeiterNr, Int32))
conn.OpenConnection()
bc.Insert()
conn.CloseConnection(True)
defkey = Bar25I(defkey)
objWord.Selection.TypeText(defkey)
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 = 38
objWord.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1)
i1 = i1 + 1
If i1 = 3 Then
If i < 49 Then
objWord.Selection.MoveDown(unit:=Word.WdUnits.wdLine, count:=1)
objWord.Selection.MoveLeft(unit:=Word.WdUnits.wdCharacter, count:=2)
i1 = 0
End If
Else
objWord.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1)
End If
Next
objWord.Selection.PageSetup.TopMargin = 0
objWord.Selection.PageSetup.LeftMargin = 10
End Function
Public Function Pruefziffer(ByVal zahl As String) As String
Dim ptab(9, 9) As Integer
Dim pz(9) As Integer
Dim s1, s2, s3 As String
Dim i1, i2 As Long
s1 = "0,9,4,6,8,2,7,1,3,5"
s2 = s1
For i1 = 0 To 9
For i2 = 0 To 9
ptab(i1, i2) = Mid(s2, (i2 * 2) + 1, 1)
Next
s3 = Microsoft.VisualBasic.Left(s1, 1)
s1 = Microsoft.VisualBasic.Right(s1, Len(s1) - 2)
s1 = s1 + "," + s3
s2 = s1
Next
pz(0) = 0
pz(1) = 9
pz(2) = 8
pz(3) = 7
pz(4) = 6
pz(5) = 5
pz(6) = 4
pz(7) = 3
pz(8) = 2
pz(9) = 1
Dim i, x, y, z, e As Integer
Dim xx As String
y = 0
For i = 1 To Len(zahl)
x = Val(Mid(zahl, i, 1))
y = ptab(x, y)
Next
Pruefziffer = Str(pz(y))
End Function
#End Region
#Region "Enabel / Disable"
Public Sub Disable_Enable_MenuFunctions(ByVal Enable As Boolean)
On Error Resume Next
Dim cmdctrl As Object
Dim i As Integer
On Error Resume Next
For i = 1 To objWord.CommandBars.Count
objWord.CommandBars(i).Reset()
Next
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=18)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=23)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=748)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=3823)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=30095)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=797)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=777)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=30017)
cmdctrl.enabled = Enable
Next cmdctrl
For Each cmdctrl In objWord.CommandBars.FindControls(ID:=30045)
cmdctrl.enabled = Enable
Next cmdctrl
objWord.NormalTemplate.Saved = True
End Sub
Public Function ResetFunctions()
StartWord()
Disable_Enable_MenuFunctions(True)
objWord.Visible = True
End Function
#End Region
End Class