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.Application Private WithEvents docWord As Word.Document Private WithEvents objExcel As Excel.Application Private WithEvents docExcel As Excel.Workbook '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_dokumentidbr 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 Dim WordnewInstance As Boolean Dim m_sKopyDokID As String = "" 'IDV-Definitionen Private m_objdc As dc.Application Dim xx As dc.Application Dim idvdll 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(True) '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 Save_Dokumentbr As New DataTable() Public Save_Notizenbr As New DataTable() Public Save_ColdIndexbr As DataTable Public Save_Dokumentwertebr As DataTable Public Save_Dokumentzuordnungenbr As DataTable Public Save_Dokumentinfomeldungenbr As DataTable Public Save_DokumentFunktionenbr As DataTable Public save_historystatusbr As Integer Public save_dokumentersetzenbr As DataTable Public save_dokumentcoldindexbr As DataTable Public Dokumentcoldindex_Changed As Boolean Public Dokumentcoldindex_changedbr As Boolean Public dokumentcoldindex_status As String Public dokumentcoldindex_statusbr As String Public dokumentid_changed As Boolean Public dokumentid_changedbr As Boolean Public dokumentidalt As String Public dokumentidaltbr As String Public Ersetzte_Dokumente_Reaktivieren As Boolean Public Ersetzte_Dokumente_Reaktivierenbr 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 Dim M_Errormessage As String Property Errormessage() As String Get Return M_Errormessage End Get Set(ByVal Value As String) M_Errormessage = Value End Set End Property 'EDEX Banklagernd Public bldokument As Boolean = False Public bldelquittungkube As Boolean = False Public BLQuittungstext As String = "" Public BLUnterschrift1 As String = "" Public BLUnterschrift2 As String = "" Public BLDel2Page As Boolean = False Public BLAdresse1 As String = "" Public BLAdresse2 As String = "" Public SaveBLDossier 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 Dokumentidbr() As String Get Return m_dokumentidbr End Get Set(ByVal Value As String) m_dokumentidbr = 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" Public Sub Cancel_IDVPortfeuille() Me.Errormessage = "207" Dim hwnd As Long Me.Errormessage = "1" 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() Dim myProcess() As Process 'Dim id As System.Diagnostics.Process 'Dim xxx As Long Try myProcess = Process.GetProcessesByName("DC") 'BUD - 2006-05-08 Fehler in Vista, IDVP kann nicht gekillt werden 'myProcess(0).Kill() If myProcess(0).HasExited = False Then If myProcess(0).CloseMainWindow() = False Then Try myProcess(0).Kill() Catch End Try End If End If Thread.Sleep(500) Catch Finally hwnd = Win32API.FindWindow(vbNullString, "DC") End Try End While ' 'Exit Sub ' Try ' xx = CreateObject("DC.APPLICATION") ' xx.Quit() ' Catch ' End Try Me.Errormessage = "2" End Sub Private Sub Init_IDV_Variablen() Me.Errormessage = "3" 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ä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", " ") Me.Errormessage = "4" End Sub Private Sub Create_IDVDokument(ByVal idvid As String) Me.Errormessage = "5" 'DivFnkt.TraceLog("----- Vor IDV-Kill") Cancel_IDVPortfeuille() 'DivFnkt.TraceLog("----- Nach IDV-Kill") 'DivFnkt.TraceLog("----- Word starten") StartWord() 'DivFnkt.TraceLog("----- Ende Word starten") '22.07.2003 Visible=False objWord.Visible = False 'DivFnkt.TraceLog("----- Vor DC-Create Object") m_objdc = CreateObject("DC.Application") 'DivFnkt.TraceLog("----- Nach DC-Create Object") m_objdc.WindowState = dc.dcWindowState.dcInvisible m_objdc.WindowState = 0 Thread.Sleep(10) 'DivFnkt.TraceLog("----- Vor Init IDV-Vars") Init_IDV_Variablen() 'DivFnkt.TraceLog("----- Nach Init IDV-Vars") m_objdc.WindowState = dc.dcWindowState.dcInvisible 'Call Get_IDV_Values() 'DivFnkt.TraceLog("----- Vor DC-Parameter") Me.Errormessage = "6" If Not Office_Vorlage.bIdv_nativ.Value = True Then m_objdc.WindowState = 0 m_objdc.WordPlusDialog = dc.dcWordPlusDialogs.dcKein m_objdc.DisableStandardMacros() 'DivFnkt.TraceLog("----- Nach DC-Parameter") End If Me.Errormessage = "7" 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.Quit() 'BUD - 06.12.2006 - ComObject System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objdc) m_objdc = Nothing Me.Errormessage = "8" 'MsgBox("vor exit sub 01 ende funktion") Exit Sub Else Me.Errormessage = "9" m_objdc.CreateDocument(DC.dcModus.dcMTBS, CType(Office_Vorlage.sIdv_id.Value, Integer)) m_objdc.SaveDoc(Dokumentfilename) 'MsgBox("datei speichern") Thread.Sleep(1000) m_objdc.Quit() 'MsgBox("dc quit") Thread.Sleep(1000) 'BUD - 06.12.2006 - ComObject System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objdc) 'MsgBox("obj zerstören") m_objdc = Nothing 'DivFnkt.TraceLog("----- Nach IDV-Erstellung ( DC geschlossen) ") ' m_objdc = Nothing ' StartWord() '22.07.2003 Visible=False 'DivFnkt.TraceLog("----- Word unsichtbar") objWord.Visible = False 'DivFnkt.TraceLog("----- Word nicht sichtbar") Try docWord = objWord.ActiveDocument Catch ex As Exception Try 'DivFnkt.TraceLog("---------- " + ex.Message) StartWord() objWord.Documents.Open(Dokumentfilename) docWord = objWord.ActiveDocument 'SHU objWord.NormalTemplate.Saved = True Catch 'DivFnkt.TraceLog("-------------- Dokument laden fehlgeschlagen") End Try End Try 'DivFnkt.TraceLog("----- Aktives Dokument zugewiesen") 'DivFnkt.TraceLog("----- Check_Dokname") If docWord.Name <> DivFnkt.ExtractFilename(Dokumentfilename) Then docWord.Close() docWord = objWord.ActiveDocument End If 'DivFnkt.TraceLog("----- Ende_Dokname") End If 'BUD - 2006-12-06 --Nothing prüfen If Not m_objdc Is Nothing Then System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objdc) m_objdc = Nothing 'MsgBox("Auf Nothing prüfen") End If 'MsgBox("ende funktion") Me.Errormessage = "10" End Sub Public Function IDV_makros_bearbeiten() As Boolean Me.Errormessage = "11" Dim idvmakros As New edokadb.clsMyDokumentDaten() Dim makros As DataTable Dim i As Long idvmakros.cpMainConnectionProvider = conn makros = idvmakros.Select_IDVMakros(Me.Dokumenttypnr) Me.Errormessage = "12" For i = 0 To makros.Rows.Count - 1 Try If makros.Rows(i).Item("ist_in_dll") = True Then 'SetForegroundWindow(...) Try objWord.Activate() Catch Thread.Sleep(100) objWord.Activate() End Try '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 Try ' objWord.Activate() Catch ' Thread.Sleep(100) ' objWord.Activate() End Try 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 Me.Errormessage = "13" End Function #End Region #Region "Word-Funktionen" Private Function StartWord() ' StartWord_New_Instance() ' Exit Function 'Me.Errormessage = "14" Try DivFnkt.TraceLog("-----------Start Word GetObject") objWord = GetObject(, "Word.application") objWord.Application.Options.SaveInterval = 0 Me.WordnewInstance = False Catch Try DivFnkt.TraceLog("-----------Start Word CreateObject") objWord = CreateObject("Word.application") objWord.Application.Options.SaveInterval = 0 Me.WordnewInstance = True Catch ex As Exception 'MsgBox(ex.Message) End Try Finally DivFnkt.TraceLog("-----------Start Word nicht sichtbar") objWord.Visible = False End Try Try objWord.Run("Autoexec") Catch End Try 'Me.Errormessage = "15" End Function Private Function StartWord_New_Instance() Me.Errormessage = "16" Try objWord = CreateObject("Word.application") Catch ex As Exception MsgBox(ex.Message) Exit Function End Try objWord.Visible = False Me.Errormessage = "17" End Function Private Function StartIDVP() Me.Errormessage = "18" Try m_objdc = GetObject("dc.application") Catch Try m_objdc = CreateObject("dc.application") Catch ex As Exception MsgBox(ex.Message) End Try End Try Me.Errormessage = "19" End Function Private Sub Insert_Kopfzeile() Me.Errormessage = "20" 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 Me.Errormessage = "21" set_headerbookmark() objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument End Sub Private Sub set_headerbookmark() Me.Errormessage = "22" 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 Me.Errormessage = "23" End Sub Private Sub Fill_Dokument(ByVal AusParametrisierung As Boolean, Optional ByVal xdata As DataTable = Nothing) Me.Errormessage = "24" If Office_Vorlage.bKopfzeile_generieren.Value = True Then Me.Errormessage = "25" Insert_Kopfzeile() End If If AusParametrisierung Then Me.Errormessage = "26" get_dokumentdaten() Dokumentwerte_Uebertragen(AusParametrisierung) Else Me.Errormessage = "27" Dokumentdaten = xdata Dokumentwerte_Uebertragen(AusParametrisierung) End If End Sub Private Sub Dokumentwerte_Uebertragen(ByVal AusParametrisierung As Boolean) Me.Errormessage = "28" 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) = "XTGEDKDirektTelefonB" Or _ Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 23) = "XTGEDKVornameNameBetreue" Or _ Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 19) = "XTGEDKDirektTelefonZ" Then objWord.Selection.MoveLeft(Unit:=Word.WdUnits.wdCharacter, Count:=1) 'hutter If Me.CreateDoc Then 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 If Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 22) = "XTGEDKDirektTelefonDokZ" Or _ Microsoft.VisualBasic.Left(Dokumentdaten.Rows(i).Item("beginntextmarke"), 20) = "XTGEDKVornameNameDokZ" Then objWord.Selection.Text = Dokumentdaten.Rows(i).Item("xvalue") 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.Visible = True 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 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 'EDEX Banklagernd If Me.bldokument = True Then If Dokumentdaten.Rows(i).Item("beginntextmarke") = "TGEDKBLGrundlage" Then If Dokumentdaten.Rows(i).Item("xvalue") = "" Then Try docWord.Bookmarks.Item("TGEDKDELGrund1").Select() objWord.Selection.Rows.Delete() Catch End Try Try docWord.Bookmarks.Item("TGEDKDELGrund2").Select() objWord.Selection.Rows.Delete() Catch End Try End If End If If Dokumentdaten.Rows(i).Item("beginntextmarke") = "TGEDKBLBemerkungen" Then If Dokumentdaten.Rows(i).Item("xvalue") = "" Then Try docWord.Bookmarks.Item("TGEDKDELBemerkung1").Select() objWord.Selection.Rows.Delete() Catch End Try Try docWord.Bookmarks.Item("TGEDKDELBemerkung2").Select() objWord.Selection.Rows.Delete() Catch End Try End If End If If Dokumentdaten.Rows(i).Item("beginntextmarke") = "TGEDKBLBeilagezurQuittung" Then If Dokumentdaten.Rows(i).Item("xvalue") = "" Then Try docWord.Bookmarks.Item("TGEDKDELBeilage1").Select() objWord.Selection.Rows.Delete() Catch End Try Try docWord.Bookmarks.Item("TGEDKDELBeilage2").Select() objWord.Selection.Rows.Delete() Catch End Try End If End If End If 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 = convert_wordfelder(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 = convert_wordfelder(Dokumentdaten.Rows(i).Item("xvalue")) End If End If Catch End Try End If End If End If Next 'EDEX Banklagernd If Me.bldokument = True Then If Me.BLUnterschrift1 <> "" Then docWord.Bookmarks.Item("TGEDKBLUnterschrift1").Select() pos = docWord.Bookmarks.Item("TGEDKBLUnterschrift1").Start objWord.Selection.Text = Me.BLUnterschrift1 pos2 = objWord.Selection.End With docWord.Bookmarks .Add(Range:=objWord.Selection.Range, Name:="TGEDKBLUnterschrift1") .DefaultSorting = WdBookmarkSortBy.wdSortByName .ShowHidden = False End With End If If Me.BLUnterschrift2 <> "" Then docWord.Bookmarks.Item("TGEDKBLUnterschrift2").Select() pos = docWord.Bookmarks.Item("TGEDKBLUnterschrift2").Start objWord.Selection.Text = Me.BLUnterschrift2 pos2 = objWord.Selection.End With docWord.Bookmarks .Add(Range:=objWord.Selection.Range, Name:="TGEDKBLUnterschrift2") .DefaultSorting = WdBookmarkSortBy.wdSortByName .ShowHidden = False End With End If Try docWord.Bookmarks.Item("TGEDKBLQuittungtext").Select() objWord.Selection.Text = Me.BLQuittungstext Catch End Try If bldelquittungkube = True Then docWord.Bookmarks.Item("TGEDKQuittungKubeB").Select() pos = docWord.Bookmarks.Item("TGEDKQuittungKubeB").Start docWord.Bookmarks.Item("TGEDKQuittungKubeE").Select() pos2 = docWord.Bookmarks.Item("TGEDKQuittungKubeE").Start objWord.Selection.SetRange(Start:=pos, End:=pos2) objWord.Selection.TypeText(" ") End If End If Me.Errormessage = "29" End Sub Private Sub FeldMakros() Me.Errormessage = "30" 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 Me.Errormessage = "31" End Sub #End Region #Region "Excel-Funktionen" Private Function StartExcel() 'Me.Errormessage = "32" Try objExcel = CreateObject("Excel.application") Catch ex As Exception 'MsgBox(ex.Message) Exit Function End Try objExcel.Visible = False 'Me.Errormessage = "33" End Function #End Region #Region "Datenhandling" Private Sub get_dokumentdaten() Me.Errormessage = "34" dokudata.cpMainConnectionProvider = conn Dokumentdaten = dokudata.SelectTestdata(Me.Dokumenttypnr) dokudata.Dispose() Me.Errormessage = "35" 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.Errormessage = "36" Me.ProgressBar.Bar1a.Value = 71 Me.ProgressBar.Info.Text = "Bestehende Barcodes löschen" delete_Textfelder() Me.ProgressBar.Bar1a.Value = 81 Me.ProgressBar.Info.Text = "Positionen für Barcodes ermitteln" Insert_TextFelder() Me.ProgressBar.Bar1a.Value = 91 Me.ProgressBar.Info.Text = "Barcodes erstellen" ins_Barcode() Me.ProgressBar.Bar1a.Value = 100 Me.ProgressBar.Info.Text = "Dokumentgenerierung abgeschlossen" Me.Errormessage = "37" End Sub Private Sub delete_Textfelder() Me.Errormessage = "38" 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 Me.Errormessage = "39" Exit Sub eh: Me.Errormessage = "40" 'MsgBox(Err.Description) Resume Next End Sub Private Sub Insert_TextFelder() Me.Errormessage = "41" 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 Me.Errormessage = "42" End Sub Private Sub ins_Barcode() Me.Errormessage = "43" 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 Me.Errormessage = "44" 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 Me.Errormessage = "45" End Sub Private Sub HeaderFooterAnzeigen() Me.Errormessage = "46" 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 Me.Errormessage = "47" End Sub Private Sub insert_Textfield() Me.Errormessage = "48" 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.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse 'RS:2006-08-22 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 Me.Errormessage = "49" End Sub Private Sub insert_Barcode_Excel() Me.Errormessage = "50" Dim i As Integer Dim i1 As Integer Dim s As String Dim na As String Dim xx As Integer Me.ProgressBar.Bar1a.Value = 81 Me.ProgressBar.Info.Text = "Barcodes generieren" 'Rel 3.21 BUD/SHU Dim id As String If Me.Dokumentidbr <> "" Then id = Me.Dokumentidbr Else id = Me.DokumentID s = Bar25I(Microsoft.VisualBasic.Right(Right(id, Len(id) - 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 Dim ZEICHEN As String = "" If Left(na, 7) = "TGEDKAR" Then objExcel.Range(objExcel.Names.Item(na).NameLocal).Select() 'edex Banklagernd Select Case DokumenTtyp.iPhysisches_archiv.Value Case 0 Case 1 ZEICHEN = "U" Case 2 ZEICHEN = "F" End Select If Me.SaveBLDossier = True Then ZEICHEN = ZEICHEN + "/B" End If objExcel.ActiveCell.FormulaR1C1 = convert_excel(ZEICHEN) 'If DokumenTtyp.iPhysisches_archiv.Value = 2 Then ' ZEICHEN = "F" ' 'objExcel.ActiveCell.FormulaR1C1 = convert_excel("F") 'Else ' ZEICHEN = "U" ' 'objExcel.ActiveCell.FormulaR1C1 = convert_excel("U") 'End If End If Catch ex As Exception End Try Next Next Me.Errormessage = "51" 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 Me.Errormessage = "52" If DokumenTtyp.bZu_retournieren.Value = True Or Me.Dokumentidbr <> "" Or Me.SaveBLDossier = 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 'gaga' Dim id As String If Me.Dokumentidbr <> "" Then id = Me.Dokumentidbr Else id = Me.DokumentID s = Bar25I(Microsoft.VisualBasic.Right(Right(id, Len(id) - 6), 16)) ' 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 Dim Zeichen As String If Me.Dokumentidbr <> "" Then Dim dok As New edokadb.clsDokument() dok.cpMainConnectionProvider = conn dok.sDokumentid = New SqlString(CType(Me.Dokumentidbr, String)) dok.SelectOne() Dim doktypbr As New edokadb.clsDokumenttyp() doktypbr.cpMainConnectionProvider = conn doktypbr.iDokumenttypnr = New SqlInt32(CType(dok.iDokumenttypnr.Value, Int32)) doktypbr.SelectOne() Select Case doktypbr.iPhysisches_archiv.Value Case 0 Case 1 Zeichen = " U" 'objWord.Selection.TypeText(" U") Case 2 Zeichen = " F" 'objWord.Selection.TypeText(" F") End Select dok.Dispose() doktypbr.Dispose() Else Select Case DokumenTtyp.iPhysisches_archiv.Value Case 0 Case 1 Zeichen = " U" 'objWord.Selection.TypeText(" U") Case 2 Zeichen = " F" 'objWord.Selection.TypeText(" F") End Select End If If Me.SaveBLDossier = True Then Zeichen = Zeichen + "/B" End If objWord.Selection.TypeText(Zeichen) Form = Nothing Catch ex As Exception Me.Errormessage = "53" End Try End If Me.Errormessage = "54" 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 Me.Errormessage = "208" ' 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 Me.Errormessage = "209" 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 Me.Errormessage = "210" ' 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 Me.Errormessage = "211" End Function #End Region #Region "Öffentliche Methoden" #Region "Word" Public Sub Close_And_Destroy() If Me.Excel_Dokument = True Then Me.Close_And_Destroy_excel() Exit Sub End If Try docWord.Close(False) docWord = Nothing Catch End Try Try objWord.Quit(False) objWord = Nothing Catch End Try End Sub Public Sub Close_And_Destroy_excel() Try docExcel.Close(False) docExcel = Nothing Catch End Try Try objExcel.Quit() objExcel = Nothing Catch End Try End Sub Public Function Create_Dokument_Before_Fill(ByVal DokTypeNr As Long, ByVal xdata As DataTable, ByVal fname As String, Optional ByVal sKopyDokID As String = "") As Boolean Me.Errormessage = "55" 'Office-Vorlage auslesen Me.inEditMode = False Me.Excel_Dokument = False Me.Dokumenttypnr = DokTypeNr m_sKopyDokID = sKopyDokID DokumenTtyp.cpMainConnectionProvider = conn DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32)) DokumenTtyp.SelectOne() Me.ProgressBar.Bar1a.Value = 26 Me.ProgressBar.Info.Text = "Office-Dokument erstellen" Office_Vorlage.cpMainConnectionProvider = conn Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr Office_Vorlage.SelectOne() If Office_Vorlage.iAnwendungnr.Value = 2 Then If Not Create_Excel_Before_Fill(DokTypeNr, xdata, fname, sKopyDokID) Then Return False Else Return True End If Exit Function End If DivFnkt.TraceLog("--- Vor Temporäre Datei erstellen") 'Temporä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" DivFnkt.TraceLog("--- Ende Temporäre Datei erstellen") Me.ProgressBar.Bar1a.Value = 31 'Nativ-Dokumentvorlage Me.Errormessage = "56" If Not Office_Vorlage.bIdv_vorlage.Value = True Then Dim LoopCnt As Integer = 0 Dim DokumentGeladen As Boolean = False While DokumentGeladen = False And LoopCnt < 4 Try LoopCnt = LoopCnt + 1 'Rel 3.5 / BUD / 13.01.2005 If sKopyDokID = "" Then Dim x As New FrmDomainOfficeVorlageDatei() Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) x.Dispose() Else Dim objDocMgmt As New DocMgmt() Dokument_To_Create = fname objDocMgmt.Get_From_DB(sKopyDokID, Dokument_To_Create) objDocMgmt = Nothing End If FileSystem.Rename(Dokument_To_Create, fname) StartWord() Dokumentfilename = fname objWord.Documents.Open(fname) docWord = objWord.ActiveDocument objWord.NormalTemplate.Saved = True DokumentGeladen = True Catch DokumentGeladen = False Try Close_And_Destroy() Catch End Try Try File.Delete(fname) Catch End Try Catch End Try End While Me.Errormessage = "57" If DokumentGeladen = False Then MyMsg.show_standardmessage(137, MsgBoxStyle.Exclamation) Me.ProgressBar.Visible = False Try objWord.Visible = True Catch StartWord() objWord.Visible = True End Try Try Catch objWord.WindowState = WdWindowState.wdWindowStateMinimize End Try Try 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Catch End Try Return False End If Me.Errormessage = "58" Else Me.Errormessage = "59" Dokumentfilename = fname If Not OhneIDV Then DivFnkt.TraceLog("--- Vor IDV-Erstellung") Create_IDVDokument(Office_Vorlage.sIdv_id.Value) DivFnkt.TraceLog("--- Nach IDV-Erstellung") Me.Errormessage = "60" Else Me.Errormessage = "61" 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 Me.Errormessage = "62" End If End If DivFnkt.TraceLog("----- Ende Dokumenterstellung IDV/Word") Me.Errormessage = "63" Me.ProgressBar.Bar1a.Value = 36 Me.ProgressBar.Bar1a.Refresh() 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 übertragen, Dokument ggf. schü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.Bar1a.Value = 41 Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen" Word_Werte_Auslesen(xdata) Me.ProgressBar.Bar1a.Value = 51 Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen" Me.Errormessage = "64" Return True End Function Public Sub Open_Document(ByVal fname As String, ByVal xdata As DataTable, ByVal doktypeNr As Long) Me.Errormessage = "65" Me.Dokumenttypnr = doktypeNr Me.inEditMode = True DokumenTtyp.cpMainConnectionProvider = conn DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(Me.Dokumenttypnr, Int32)) DokumenTtyp.SelectOne() Me.ProgressBar.Bar1a.Value = 41 Me.ProgressBar.Info.Text = "Office-Dokument ö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 Me.Errormessage = "66" StartWord() Dokumentfilename = fname objWord.Documents.Open(fname) docWord = objWord.ActiveDocument objWord.Visible = False 'SHU objWord.NormalTemplate.Saved = True Me.ProgressBar.Bar1a.Value = 41 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.Bar1a.Value = 51 Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen" Me.Errormessage = "67" End Sub Public Sub Dokument_Vervollstaendigen(ByVal xdata As DataTable) Me.Errormessage = "68" If Me.Excel_Dokument = True Then Excel_Vervollstaendigen(xdata) Exit Sub End If Me.ProgressBar.Bar1a.Value = 61 Me.ProgressBar.Info.Text = "Dokumentwerte übertragen" If docWord.ProtectionType <> WdProtectionType.wdNoProtection Then docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen")) IsProtected = True End If DivFnkt.TraceLog("Word Visible = false") objWord.Visible = False DivFnkt.TraceLog("Windowstate") objWord.WindowState = WdWindowState.wdWindowStateMinimize DivFnkt.TraceLog("Doevents") 'System.Windows.Forms.Application.DoEvents() DivFnkt.TraceLog("FillDok Start") Fill_Dokument(False, xdata) DivFnkt.TraceLog("FillDok") Me.Errormessage = "69" 'EDEX-Banklagernd If DokumenTtyp.bZu_retournieren.Value = True Or DokumenTtyp.iDoktypbedingteretournierung.Value > 0 Or Me.SaveBLDossier = True Then DivFnkt.TraceLog("Barcodes Start") Generate_Barcodes() DivFnkt.TraceLog("Barcodes Ende") Else Try DivFnkt.TraceLog("Active Win start") objWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument DivFnkt.TraceLog("Active Win ende") Catch End Try End If DivFnkt.TraceLog("Screenupdating true ") objWord.ScreenUpdating = True DivFnkt.TraceLog("Active Win end") Me.ProgressBar.Hide() DivFnkt.TraceLog("Progress Close") Me.Errormessage = "70" 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 DivFnkt.TraceLog("Ende schützen") Dim A As Integer A = 0 Me.Errormessage = "71" While A < 2 Try objWord.Visible = True DivFnkt.TraceLog("Word Activate") objWord.Activate() DivFnkt.TraceLog("Word Activate Ende") A = 2 Catch Try Thread.Sleep(500) DivFnkt.TraceLog("Word Activate") objWord.Visible = True objWord.Activate() DivFnkt.TraceLog("Word Activate ENde") A = 2 Catch If MyMsg.Show_MessageYesNo(107) = MsgBoxResult.Yes Then A = 1 Else docWord.Close(False) docWord = Nothing objWord = Nothing A = 3 Throw New Exception(MyTxt.gettext(111)) End If End Try End Try End While Me.Errormessage = "72" 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 Try ' Rel 4.0 Fensterhandling Problem ' Handle verweis auf Prozess EDOKA... Dim p As Process Dim Ret As Int32 Dim hWndMain As IntPtr Dim MyProcesses() As Process = _ Process.GetProcessesByName( _ Process.GetCurrentProcess().ProcessName) For Each p In MyProcesses If (p.Id = Process.GetCurrentProcess().Id) Then Globals.Apphandle = p.MainWindowHandle() End If Next Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Minimze) Catch End Try 'Rel 3.5 / BUD / 13.01.2005 (IF / END IF) If m_sKopyDokID = "" Then If Me.CreateDoc = True Then IDV_makros_bearbeiten() End If If Me.CreateDoc Then Dim dn As String = objWord.ActiveDocument.FullName docWord.Save() docWord.Close() objWord.Documents.Open(dn) 'SHU objWord.NormalTemplate.Saved = True docWord = objWord.ActiveDocument 'EDEX Banklagernd If Me.bldokument = True Then If Me.BLDel2Page Then Try docWord.Bookmarks.Item("TGEDKZweiteSeite").Select() objWord.Selection.Delete() Catch ex As Exception MsgBox(ex.Message) End Try docWord.Save() docWord.Close() objWord.Documents.Open(dn) 'SHU objWord.NormalTemplate.Saved = True docWord = objWord.ActiveDocument End If End If End If docWord.Saved = False Me.Errormessage = "73" 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 Me.Errormessage = "74" If IsNothing(objSpooler) = False Then If Not Me.bldokument Or objSpooler.NoEdit = 2 Then objWord.Visible = False objWord.Visible = True Else objWord.Visible = False End If Else If Not Me.bldokument Then objWord.Visible = False objWord.Visible = True Else objWord.Visible = False End If End If Office_Vorlage.Dispose() DokumenTtyp.Dispose() 'EDEX-Banklagernd If Me.bldokument Then ' Me.Save_DateTime = Me.Save_DateTime.AddSeconds(-3) Me.docWord.Save() Me.docWord.Close(SaveChanges:=True) 'rel 372 If objWord.Documents.Count = 0 Then objWord.Quit(SaveChanges:=False) Try objWord = Nothing Catch ex As Exception End Try End If Finishing() 'rel 372 EDOKA nach vorne bringen 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Thread.CurrentThread.Sleep(100) Exit Sub End If 'rel 4.0 handle DirektErstellung über Avaloq-Schnittstelle If IsNothing(objSpooler) = False Then If objSpooler.NoEdit = 2 Then Me.docWord.Close(SaveChanges:=True) objWord.Quit() WordWatch.Stopp() Finishing() 'rel 372 EDOKA nach vorne bringen 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Thread.CurrentThread.Sleep(100) Exit Sub End If End If Control_Word() End Sub Public Sub Word_Werte_Auslesen(ByVal xdata As DataTable) Me.Errormessage = "75" 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 Me.Errormessage = "76" End Sub Public Sub Create_Dokument(ByVal DokTypeNr As Long, ByVal ShowReport As Boolean) Me.Errormessage = "77" '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ä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 Me.Errormessage = "78" 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 übertragen, Dokument ggf. schützen ' If Office_Vorlage.bDokument_geschuetzt.Value = True Then ' docWord.Unprotect(password:=Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("passwort_wordvorlagen")) ' End If Me.Errormessage = "79" Fill_Dokument(True) 'EDEX Banklagernd If DokumenTtyp.bZu_retournieren.Value = True Or DokumenTtyp.iDoktypbedingteretournierung.Value > 0 Or Me.SaveBLDossier = True Then Me.Errormessage = "80" 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 Me.Errormessage = "81" 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 Me.Errormessage = "82" objWord.Visible = True IDV_makros_bearbeiten() If Cursor_Positionieren Then Try docWord.Bookmarks.Item("TGEDKCursor").Select() docWord.Bookmarks.Item("TGEDKCursorB").Select() Catch End Try End If Me.Errormessage = "83" 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) Me.Errormessage = "84" 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 'SHU objWord.NormalTemplate.Saved = True Try docWord.Application.Visible = True docWord.Activate() Catch Thread.Sleep(100) docWord.Application.Visible = True docWord.Activate() End Try insert_wordart() objWord.Visible = True Try objWord.Activate() Catch Thread.Sleep(100) objWord.Activate() End Try objWord.NormalTemplate.Saved = True End If Me.DokumentName = DivFnkt.ExtractFilename(s) Control_Word_readonly() Me.Errormessage = "85" End Sub Public Function insert_wordart() Me.Errormessage = "86" 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ö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:="Änderungen im Dokument werden in EDOKA nicht berü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 Me.Errormessage = "87" End Function Public Sub CloseDoc() Me.Errormessage = "88" docWord.Close(False) docWord = Nothing objWord = Nothing Me.Errormessage = "89" End Sub Public Sub CloseDocAndWord() Me.Errormessage = "90" 'Rel 3.2 bud docWord.Close(False) docWord = Nothing 'objWord.Quit() objWord = Nothing Me.Errormessage = "91" End Sub Public Sub ActivateWord() 'Rel 3.2 bud Me.Errormessage = "92" docWord.Activate() Me.Errormessage = "93" End Sub #End Region #Region "Excel" Public Function Create_Excel_Before_Fill(ByVal DokTypeNr As Long, ByVal xdata As DataTable, ByVal fname As String, Optional ByVal sKopyDokID As String = "") As Boolean 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.Bar1a.Value = 31 Me.ProgressBar.Info.Text = "Office-Dokument erstellen" Office_Vorlage.cpMainConnectionProvider = conn Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr Office_Vorlage.SelectOne() 'Temporä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 Dim abdatei As Boolean = False If Office_Vorlage.sOffice_vorlage.Value Is System.DBNull.Value Then abdatei = True Else If Office_Vorlage.sOffice_vorlage.Value = "" Then abdatei = True End If If abdatei Then Me.Errormessage = "96" Dim LoopCnt As Integer = 0 Dim DokumentGeladen As Boolean = False While DokumentGeladen = False And LoopCnt < 4 Try LoopCnt = LoopCnt + 1 'Rel 3.5 / BUD / 13.01.2005 If sKopyDokID = "" Then Dim x As New FrmDomainOfficeVorlageDatei() Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) x.Dispose() Else Dim objDocMgmt As New DocMgmt() Dokument_To_Create = fname objDocMgmt.Get_From_DB(sKopyDokID, Dokument_To_Create) objDocMgmt = Nothing End If StartExcel() Try objExcel.Workbooks.Add(Template:=Dokument_To_Create) Catch ex As Exception End Try objExcel.ActiveWorkbook.SaveAs(filename:=fname) Me.Dokumentfilename = fname docExcel = objExcel.ActiveWorkbook 'FileSystem.Rename(Dokument_To_Create, fname) 'StartExcel() 'Dokumentfilename = fname 'objExcel.Workbooks.Open(fname) 'docExcel = objExcel.ActiveWorkbook DokumentGeladen = True Catch Me.Errormessage = "97" DokumentGeladen = False Try Close_And_Destroy_excel() Catch End Try Try File.Delete(fname) Catch End Try Catch End Try End While Me.Errormessage = "98" If DokumentGeladen = False Then Me.Errormessage = "99" MyMsg.show_standardmessage(137, MsgBoxStyle.Exclamation) Me.ProgressBar.Visible = False Try objExcel.Visible = True Catch Me.Errormessage = "100" StartExcel() objExcel.Visible = True End Try Try Catch objExcel.WindowState = Excel.XlWindowState.xlMinimized End Try Try 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Catch End Try Return False End If 'Dim x As New FrmDomainOfficeVorlageDatei() 'Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) 'StartExcel() 'Try ' objExcel.Workbooks.Add(Template:=Dokument_To_Create) 'Catch ex As Exception 'End Try 'objExcel.ActiveWorkbook.SaveAs(filename:=fname) 'Me.Dokumentfilename = fname 'docExcel = objExcel.ActiveWorkbook 'x.Dispose() Else 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 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.Bar1a.Value = 41 Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen" Excel_Werte_Auslesen(xdata) Me.ProgressBar.Bar1a.Value = 51 Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen" 'Me.Errormessage = "94" '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 = 31 'Me.ProgressBar.Info.Text = "Office-Dokument erstellen" 'Office_Vorlage.cpMainConnectionProvider = conn 'Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr 'Office_Vorlage.SelectOne() ''Temporä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 ' Me.Errormessage = "95" ' Dim abdatei As Boolean = False ' If Office_Vorlage.sOffice_vorlage.Value Is System.DBNull.Value Then ' abdatei = True ' Else ' If Office_Vorlage.sOffice_vorlage.Value = "" Then abdatei = True ' End If ' If abdatei Then ' Me.Errormessage = "96" ' Dim LoopCnt As Integer = 0 ' Dim DokumentGeladen As Boolean = False ' While DokumentGeladen = False And LoopCnt < 4 ' Try ' LoopCnt = LoopCnt + 1 ' Dim x As New FrmDomainOfficeVorlageDatei() ' Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) ' x.Dispose() ' FileSystem.Rename(Dokument_To_Create, fname) ' StartExcel() ' Dokumentfilename = fname ' objExcel.Workbooks.Open(fname) ' docExcel = objExcel.ActiveWorkbook ' DokumentGeladen = True ' Catch ' Me.Errormessage = "97" ' DokumentGeladen = False ' Try ' Close_And_Destroy_excel() ' Catch ' End Try ' Try ' File.Delete(fname) ' Catch ' End Try ' Catch ' End Try ' End While ' Me.Errormessage = "98" ' If DokumentGeladen = False Then ' Me.Errormessage = "99" ' MyMsg.show_standardmessage(137, MsgBoxStyle.Exclamation) ' Me.ProgressBar.Visible = False ' Try ' objExcel.Visible = True ' Catch ' Me.Errormessage = "100" ' StartExcel() ' objExcel.Visible = True ' End Try ' Return False ' End If ' 'Dim x As New FrmDomainOfficeVorlageDatei() ' 'Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) ' 'StartExcel() ' 'Try ' ' objExcel.Workbooks.Add(Template:=Dokument_To_Create) ' 'Catch ex As Exception ' 'End Try ' 'objExcel.ActiveWorkbook.SaveAs(filename:=fname) ' 'Me.Dokumentfilename = fname ' 'docExcel = objExcel.ActiveWorkbook ' 'x.Dispose() ' Else ' Me.Errormessage = "101" ' 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 ' Me.Errormessage = "102" ' Return True '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 = 41 'Me.ProgressBar.Info.Text = "Vorhandene Werte aus dem Dokument auslesen" 'Excel_Werte_Auslesen(xdata) 'Me.ProgressBar.Bar1.Value = 51 'Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen" 'Me.Errormessage = "103" Return True End Function Public Sub Open_Excel(ByVal fname As String, ByVal xdata As DataTable, ByVal doktypeNr As Long) Me.Errormessage = "104" 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.Bar1a.Value = 41 Me.ProgressBar.Info.Text = "Office-Dokument ö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.Bar1a.Value = 41 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.Bar1a.Value = 51 Me.ProgressBar.Info.Text = "Neue und Bestehende Werte zusammenstellen" Me.Errormessage = "105" End Sub Public Sub Excel_Werte_Auslesen(ByVal xdata As DataTable) Me.Errormessage = "106" 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 Me.Errormessage = "107" End Sub Public Sub Excel_Vervollstaendigen(ByVal xdata As DataTable) Me.Errormessage = "108" Dim Sheetnr_fuer_Cursor As Integer Me.ProgressBar.Bar1a.Value = 61 Me.ProgressBar.Info.Text = "Dokumentwerte ü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 = convert_excel(xdata.Rows(i1).Item("xvalue")) End If Catch End Try Next 'docExcel.Sheets(i).largescroll(down:=-10) Next Me.Errormessage = "109" 'EDEX Banklagernd If DokumenTtyp.bZu_retournieren.Value = True Or DokumenTtyp.iDoktypbedingteretournierung.Value > 0 Or Me.SaveBLDossier = 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 Me.Errormessage = "110" objExcel.Sheets(1).activate() 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.Hide() Me.Errormessage = "111" 'rel 4.0 handle DirektErstellung über Avaloq-Schnittstelle If IsNothing(objSpooler) = False Then If objSpooler.NoEdit = 2 Then docExcel.Close(SaveChanges:=True) objExcel.Quit() WordWatch.Stopp() Finishing() 'rel 372 EDOKA nach vorne bringen 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Thread.CurrentThread.Sleep(100) Exit Sub End If End If Control_Word() End Sub #End Region #End Region #Region "Diverse_Funktionen" Public Function Change_Docname(ByVal s As String) As String Me.Errormessage = "112" 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 Me.Errormessage = "113" End Function Function convert(ByVal x As String) As String Me.Errormessage = "87" 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 Me.Errormessage = "88" End Function Function convert_wordfelder(ByVal x As String) As String Me.Errormessage = "89" 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) & Chr(11) & Right(s, Len(s) - (i)) i = InStr(s, "#") End While convert_wordfelder = s Me.Errormessage = "90" End Function Function convert_excel(ByVal x As String) As String Me.Errormessage = "91" 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) & Chr(10) & Right(s, Len(s) - (i)) i = InStr(s, "#") End While convert_excel = s Me.Errormessage = "92" 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.Errormessage = "120" If Me.DokumenTtyp.bNurnative.Value = True Then Restore(1) If Me.Excel_Dokument Then objExcel.Visible = True Try 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Minimze) Catch End Try Exit Sub End If objWord.Visible = True Try 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_SHOW) Catch End Try Exit Sub End If Me.Errormessage = "121" Me.DocReadonly = False Me.Dokument_Saved = False 'FileWatcher() ' Init_ObjWatcher() Me.Errormessage = "122" WATCHFILE() End Sub Private Sub Init_ObjWatcher() Me.Errormessage = "123" Me.objWatcher.Path = "c:\edokatemp" AddHandler objWatcher.Changed, AddressOf logchange Me.objWatcher.Filter = Me.DokumentName Me.objWatcher.EnableRaisingEvents = True Me.Errormessage = "124" End Sub Private Sub logchange(ByVal source As Object, ByVal e As _ System.IO.FileSystemEventArgs) Me.Errormessage = "125" If e.ChangeType = IO.WatcherChangeTypes.Changed Then If UCase(e.FullPath) = UCase(Me.objWatcher.Path + "\" + Me.DokumentName) Then Dim xtime As DateTime xtime = File.GetLastWriteTime(Me.Dokumentfilename) Dim cxtime As String = xtime.ToString Dim csavetime As String = Save_DateTime.ToString Dim diff As Integer = DateDiff(DateInterval.Second, Save_DateTime, xtime) If diff > 2 Then Save_DateTime = File.GetLastWriteTime(Me.Dokumentfilename) Me.objWatcher.EnableRaisingEvents = False Dim fn As String fn = objWatcher.Path + "\" + Format(Now, "yyyyMMdd").ToString + "_" + Me.DokumentName FileCopy(objWatcher.Path + "\" + Me.DokumentName, fn) Save_Doc_Temp(fn) File.Delete(fn) 'MsgBox("Das Dokument wurde gespeichert.") Me.objWatcher.EnableRaisingEvents = True End If End If End If Me.Errormessage = "126" End Sub Dim savecount As Integer = 0 Private Sub objWord_DocumentBeforeSave(ByVal Doc As Word.Document, ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles objWord.DocumentBeforeSave Me.Errormessage = "127" If Me.DokumenTtyp.bNurnative.Value = True Then Exit Sub End If If Doc.Name = Me.DokumentName Then If savecount <> 0 Then Exit Sub Dim fn As String Dim fn1 As String savecount = 1 Thread.Sleep(800) docWord.Save() Thread.Sleep(800) fn = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.DokumentName fn1 = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Format(Now, "yyyMMddhhmmss" + "_" + Me.DokumentName) FileCopy(fn, fn1) Save_Doc_Temp(fn1) File.Delete(fn1) savecount = 0 End If Me.Errormessage = "128" End Sub Private Sub Control_Word_readonly() Me.Errormessage = "129" Me.DocReadonly = True Me.Dokument_Saved = False WATCHFILE() Me.Errormessage = "130" End Sub Private Function WATCHFILE() Me.Errormessage = "131" 'Wordwatch - Überprüfung auf geöffnete If Not Me.DocReadonly Then Save_DateTime = File.GetLastWriteTime(Me.Dokumentfilename) WordWatch.Filename = Me.DokumentName If Me.Excel_Dokument Then WordWatch.ApplicationType = 2 objExcel.ActiveWindow.WindowState = Excel.XlWindowState.xlMaximized objExcel.Visible = True Disable_Enable_MenuFunctions_Excel(False) Else WordWatch.ApplicationType = 1 Disable_Enable_MenuFunctions(False) objWord.Visible = True objWord.Activate() End If Me.Errormessage = "132" Word_Active = True Try 'Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_SHOW) Catch End Try Globals.PerfMon.insert_entry(Me.DokumentID + " Start Überwachung") WordWatch.Start() Dim hnd As Integer Me.Errormessage = "133" Try hnd = Win32API.FindWindow(vbNullString, WordWatch.WindowName) 'Win32API.ShowWindow(hnd, Win32API.SW_Maximize) ' Ergibt Fehler bei Rel 4.0 'Win32API.BringWindowToTop(hnd) Catch End Try End Function Private Sub Finishing() Handles WordWatch.DocumentClosed Me.Errormessage = "134" objWatcher.EnableRaisingEvents = False Finished = True Thread.Sleep(100) If IsNothing(objSpooler) = False Then If objSpooler.NoEdit <> 2 And Me.bldokument = False Then If WordWatch.doc_is_active Then Exit Sub End If Else If Me.bldokument = False Then If WordWatch.doc_is_active Then Exit Sub End If End If WordWatch.Stopp() Globals.PerfMon.insert_entry(Me.DokumentID + " Stop Überwachung") 'Weil 2x Funktion aufgeruft wird! Keine Ahnung wiso... naja who cares ;-) If File.Exists(Me.Dokumentfilename) = False Then Exit Sub Dim i As Integer If Not Me.Excel_Dokument Then If Globals.Words.Count = 0 Then Disable_Enable_MenuFunctions(True) Else If Globals.Words.Count = 0 Then Disable_Enable_MenuFunctions_Excel(True) End If If Me.DocReadonly Then Delete_File() Exit Sub End If Me.Errormessage = "135" Dim xtime As DateTime xtime = File.GetLastWriteTime(Me.Dokumentfilename) 'Gibt Fehler bei Automatischer Erstellung, wird eh nicht gebraucht 'kann nur save_Data() aufgerufen werden!! '-------------------------------------------------------------------- Dim diff As Integer If IsNothing(objSpooler) = False Then If objSpooler.NoEdit <> 2 Then Dim cxtime As String = xtime.ToString Dim csavetime As String = Save_DateTime.ToString If Me.bldokument = False Then diff = DateDiff(DateInterval.Second, Save_DateTime, xtime) End If 'Sofern das Dokument über eine Dokumentpaket erstellt wurde, dieses aus der DP_Collection löschen Try Try Dim i2 As Integer For i2 = 1 To Globals.DP_Collection.Count If Globals.DP_Collection.Item(i2) = Me.DokumentID Then Globals.DP_Collection.Remove(i2) End If Exit For Next Catch End Try Catch End Try End If Else Dim cxtime As String = xtime.ToString Dim csavetime As String = Save_DateTime.ToString If Me.bldokument = False Then diff = DateDiff(DateInterval.Second, Save_DateTime, xtime) End If 'Sofern das Dokument über eine Dokumentpaket erstellt wurde, dieses aus der DP_Collection löschen Try Try Dim i2 As Integer For i2 = 1 To Globals.DP_Collection.Count If Globals.DP_Collection.Item(i2) = Me.DokumentID Then Globals.DP_Collection.Remove(i2) End If Exit For Next Catch End Try Catch End Try End If If IsNothing(objSpooler) = True Then If diff > 2 Or Me.bldokument = True Then ' If cxtime <> csavetime Then ' If xtime <> Save_DateTime Then ' If File.GetLastWriteTime(Me.Dokumentfilename) <> Save_DateTime Then Globals.PerfMon.insert_entry(Me.DokumentID + " Start Datensichern") Save_Data() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Datensichern") Else Globals.PerfMon.insert_entry(Me.DokumentID + " Start Restore") Restore_Data() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Restore") End If Else If objSpooler.NoEdit = 2 Or diff > 2 Or Me.bldokument = True Then Globals.PerfMon.insert_entry(Me.DokumentID + " Start Datensichern") Save_Data() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Datensichern") Else Globals.PerfMon.insert_entry(Me.DokumentID + " Start Restore") Restore_Data() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Restore") End If End If Me.Errormessage = "136" If Me.Excel_Dokument = True Then Try Try objExcel.Visible = True objExcel.Workbooks.Close() objExcel.Application.Quit() docWord = Nothing objWord = Nothing Catch End Try docExcel = Nothing objExcel = Nothing Catch End Try Else Me.Errormessage = "137" Try objWord = Nothing docWord = Nothing Catch End Try End If Me.Errormessage = "138" Try Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Wordbearbeitung") Words.Remove(Me.DokumentName) If Me.Excel_Dokument = True Then If Globals.Words.Count = 0 Then Me.StartExcel() objExcel.Visible = False Disable_Enable_MenuFunctions_Excel(True) objExcel.Quit() objExcel = Nothing End If Else If Globals.Words.Count = 0 Then StartWord() objWord.NormalTemplate.Saved = True objWord.Visible = False Disable_Enable_MenuFunctions(True) If Me.WordnewInstance = True Then objWord.Quit() Else objWord.Visible = True End If objWord = Nothing End If End If DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID, False, "") Catch Finally Try ' Rel 4.0 Fensterhandling Problem ' Handle verweis auf Prozess EDOKA... Dim p As Process Dim MyProcesses() As Process = _ Process.GetProcessesByName( _ Process.GetCurrentProcess().ProcessName) For Each p In MyProcesses If (p.Id = Process.GetCurrentProcess().Id) Then Globals.Apphandle = p.MainWindowHandle() End If Next Win32API.SetActiveWindow(Globals.Apphandle) Win32API.BringWindowToTop(Globals.Apphandle) 'Rel. 4.03 von SW_Maximize auf SW_Restore geändert Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Catch End Try End Try Me.Errormessage = "139" End Sub Public Function FileWatcher() Me.Errormessage = "140" Save_DateTime = File.GetLastWriteTime(Me.Dokumentfilename) End Function Private Sub filechange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs) Me.Errormessage = "141" 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() Me.Errormessage = "142" WordWatch.Stopp() Save_Doc() Update_Dokumentdetails() Dim statush As New Statushandling() statush.check_abschluss(Me.DokumentID, Globals.MitarbeiterNr) Me.Errormessage = "143" End Function Private Sub Change_Dokumentstatus() Me.Errormessage = "144" 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() Me.Errormessage = "145" End Sub Public Function Restore_Data() Me.Errormessage = "146" WordWatch.Stopp() If Me.CreateDoc = True Then Restore(1) ' Rel 4.0 Fensterhandling Problem ' Handle verweis auf Prozess EDOKA... Dim p As Process Dim Ret As Int32 Dim hWndMain As IntPtr Dim MyProcesses() As Process = _ Process.GetProcessesByName( _ Process.GetCurrentProcess().ProcessName) For Each p In MyProcesses If (p.Id = Process.GetCurrentProcess().Id) Then Globals.Apphandle = p.MainWindowHandle() End If Next Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Minimze) Try 'Rel. 4.03 Von SW_Maximize auf SW_Restore geändert Win32API.ShowWindow(Globals.Apphandle, Win32API.SW_Maximize) Catch End Try Dim s As String s = MyTxt.Get_Meldungstext(80) + vbCrLf + vbCrLf + "Partner: " + Me.txtPartner + vbCrLf + "Dokument: " & Me.txtDokumenttyp Dim f As New frmHinweismeldung1() Globals.PerfMon.insert_entry(Me.DokumentID + " Dokumentbearbeitung abgebrochen: Partner " + Me.txtPartner) f.MsgBoxStyle = 1 f.Label1.Text = s If Not Me.DokumenTtyp.bNurnative.Value = True Then f.ShowDialog() End If ' MsgBox(s, MsgBoxStyle.Critical) Else Restore(2) End If DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID, False, "") Me.Errormessage = "147" End Function Public Function Restore(ByVal typ As Integer) Me.Errormessage = "148" Restore_Datasets() End Function Public Function Save_Doc() Me.Errormessage = "149" Globals.PerfMon.insert_entry(Me.DokumentID + " Start Dokument sichern") Dim docsave As New DocMgmt() Globals.PerfMon.insert_entry(Me.DokumentID + "'-- Start Dokument auf DB sichern") docsave.Save_To_DB(Me.DokumentID, Me.Dokumentfilename) docsave = Nothing Globals.PerfMon.insert_entry(Me.DokumentID + "'-- Ende Dokument auf DB sichern") 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(Me.DokumentID) End If 'huttu Dim doarchivfnkt As Boolean If Me.Dokumentidbr <> "" And Me.CreateDoc Then doarchivfnkt = True If Me.Save_Dokumentbr.Rows.Count > 0 Then doarchivfnkt = True End If If doarchivfnkt Then If Me.Dokumentcoldindex_changedbr Then Archivfnkt.insert_coldupdate_status(Me.save_dokumentcoldindexbr, Me.Dokumentidbr, Me.dokumentcoldindex_statusbr) End If If Me.Ersetzte_Dokumente_Reaktivierenbr = True Then Dokumente_Reaktivieren(Me.Dokumentidbr) End If DivFnkt.Status_Dokumentbearbeitung(2, Me.Dokumentidbr, False, "") End If DivFnkt.Status_Dokumentbearbeitung(2, Me.DokumentID, False, "") Delete_File() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Dokument sichern") Me.Errormessage = "150" End Function Public Function Save_Doc_Temp(ByVal Dokumentfile As String) Me.Errormessage = "151" Dim docsave As New DocMgmt() docsave.Save_To_DB(Me.DokumentID, Dokumentfile) docsave = Nothing File.Delete(Dokumentfile) Me.Errormessage = "152" End Function Public Function Dokumente_Reaktivieren(ByVal dokumentid As String) Me.Errormessage = "153" Dim da As New SqlDataAdapter("Select * from dokumentersetzen where hauptdokumentid='" & 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() Me.Errormessage = "154" End Function Public Function Update_Dokumentdetails() Me.Errormessage = "155" Globals.PerfMon.insert_entry(Me.DokumentID + " Start Dokumentdetails sichern") 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 + " Ende Dokumentdetails sichern") Me.Errormessage = "156" 'Rel. 4.1 Check_Mailversand() End Function 'Rel. 4.1 Private Function Check_Mailversand() Try Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.SP_Check_BearbeitungsMail" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection scmCmdToExecute.Connection.Open() scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.DokumentID)) scmCmdToExecute.Parameters.Add(New SqlParameter("@doktypnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumenttypnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@SaveHistoryStatusnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.save_historystatus)) scmCmdToExecute.ExecuteNonQuery() scmCmdToExecute.Connection.Close() scmCmdToExecute.Dispose() Catch ex As Exception End Try End Function Public Function Delete_File() Me.Errormessage = "157" Globals.PerfMon.insert_entry(Me.DokumentID + " Start physisches Dokument löschen") Try File.Delete(Me.Dokumentfilename) Catch End Try ' RaiseEvent OfficeFinished() Globals.PerfMon.insert_entry(Me.DokumentID + " Ende physisches Dokument löschen") Me.Errormessage = "158" End Function Public Sub Restore_Datasets() Me.Errormessage = "159" Globals.PerfMon.insert_entry(Me.DokumentID + " Start Restore Details") Dim f As New FrmRestore() f.Visible = False f.Width = 1 f.Height = 1 f.Show() f.Refresh() Try Restore_Coldindex(Me.Save_ColdIndex, Me.DokumentID) Restore_Dokumentwerte(Me.Save_Dokumentwerte, Me.DokumentID) Restore_Notizen(Me.Save_Notizen, Me.DokumentID) Restore_InfoEmpfaenger(Me.Save_Dokumentinfomeldungen, Me.DokumentID) Restore_dokumentzuordnungen(Me.Save_Dokumentzuordnungen, Me.DokumentID) 'Rel. 4.03 If Not Me.Save_DokumentFunktionen Is Nothing Then Restore_Dokumentfunktionen(Me.Save_DokumentFunktionen, Me.DokumentID) End If Restore_Statushistory(Me.save_historystatus, Me.DokumentID) Restore_Dokumentersetzen(Me.save_dokumentersetzen, Me.DokumentID) If Me.CreateDoc = True Then delete_dokumentstatus(Me.DokumentID) End If If Me.DokumenTtyp.bNurnative.Value <> True Then Delete_File() f.DokumentID = Me.DokumentID f.SaveDocument = Me.Save_Dokument f.NeuesDokument = Me.CreateDoc f.Restore_Dokument() Dim dorestorebr As Boolean = False 'Bedingte Retournierung If Me.Dokumentidbr <> "" And Me.CreateDoc Then dorestorebr = True If Me.Save_Dokumentbr.Rows.Count > 0 Then dorestorebr = True End If 'Verweis-Dokument im Auslöser bei Bedingter Retournierung richtig stellen If dorestorebr And Not Me.CreateDoc Then Dim dok As New edokadb.clsDokument() dok.cpMainConnectionProvider = conn dok.sDokumentid = New SqlString(CType(Me.DokumentID, String)) dok.SelectOne() dok.sBedRDokumentid = New SqlString(CType(Me.dokumentidaltbr, String)) conn.OpenConnection() dok.Update() conn.CloseConnection(True) dok.Dispose() End If 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) If dorestorebr = True Then Restore_Coldindex(Me.Save_ColdIndexbr, Me.Dokumentidbr) Restore_Dokumentwerte(Me.Save_Dokumentwertebr, Me.Dokumentidbr) Restore_Notizen(Me.Save_Notizenbr, Me.Dokumentidbr) Restore_InfoEmpfaenger(Me.Save_Dokumentinfomeldungenbr, Me.Dokumentidbr) Restore_dokumentzuordnungen(Me.Save_Dokumentzuordnungenbr, Me.Dokumentidbr) Restore_Dokumentfunktionen(Me.Save_DokumentFunktionenbr, Me.Dokumentidbr) Restore_Statushistory(Me.save_historystatusbr, Me.Dokumentidbr) Restore_Dokumentersetzen(Me.save_dokumentersetzenbr, Me.Dokumentidbr) If Me.CreateDoc = True Then delete_dokumentstatus(Me.Dokumentidbr) End If ' If me.CreateDoc=False Me.Save_Dokumentbr.Rows.Count > 0 Then f.DokumentID = Me.Dokumentidbr f.SaveDocument = Me.Save_Dokumentbr f.NeuesDokument = Me.CreateDoc f.Restore_Dokument() If Me.Dokumentcoldindex_changedbr = True Then Archivfnkt.Restore_Coldindex(Me.save_dokumentcoldindexbr, Me.Dokumentidbr) If Me.dokumentid_changedbr Then Archivfnkt.change_dokumentid(Me.Dokumentidbr, Me.dokumentidaltbr) ' End If End If f.Close() f.Dispose() Catch ex As Exception MsgBox(ex.Message) f.Close() f.Dispose() 'Rel 4.0 Eintrag wegen Fensterhandling Problematik! '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 Globals.PerfMon.insert_entry(Me.DokumentID + " Dokument zurücksetzen fehlgeschlagen: Partner: " + Me.txtPartner) f1.Label1.Text = s f1.ShowDialog() f1.Dispose() End Try Globals.PerfMon.insert_entry(Me.DokumentID + " Ende Restore Details") Me.Errormessage = "160" End Sub Private Sub Restore_Notizen(ByVal Save_Notizen As DataTable, ByVal Dokumentid As String) Me.Errormessage = "161" '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 Me.Errormessage = "162" 'Löschen der neuen Notizen nnr = 0 'Rel. 4.03 - Umbau der Restore-Funktion For i = 0 To Save_Notizen.Rows.Count - 1 If Not Save_Notizen.Rows(i).Item("notiznr") Is System.DBNull.Value Then If Save_Notizen.Rows(i).Item("notiznr") > nnr Then nnr = Save_Notizen.Rows(i).Item("notiznr") End If End If ' If Save_Notizen.Rows(i).Item("notiznr") > nnr Then nnr = 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, 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() Me.Errormessage = "163" End Sub Private Sub Restore_Coldindex(ByVal save_coldindex As DataTable, ByVal dokumentid As String) Me.Errormessage = "164" 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, dokumentid)) scmCmdToExecute.Parameters.Add(New SqlParameter("@coldindexwertnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) scmCmdToExecute.Parameters.Add(New SqlParameter("@IndexFeldNr", 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 Me.Errormessage = "165" '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("@IndexFeldNr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, save_coldindex.Rows(i).Item("cold_indexfeldnr"))) 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() Me.Errormessage = "166" End Sub Private Sub Restore_Dokumentwerte(ByVal SAVE_DOKUMENTWERTE As DataTable, ByVal dokumentid As String) Me.Errormessage = "167" 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, 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 Me.Errormessage = "168" '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() Me.Errormessage = "169" End Sub Private Sub Restore_InfoEmpfaenger(ByVal Save_Dokumentinfomeldungen As DataTable, ByVal dokumentid As String) Me.Errormessage = "167" 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 Me.Errormessage = "171" 'Löschen der neuen InfoEmpfä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 = 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, 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änger::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally End Try scmCmdToExecute.Connection.Close() scmCmdToExecute.Dispose() Me.Errormessage = "172" End Sub Private Sub Restore_dokumentzuordnungen(ByVal Save_Dokumentzuordnungen As DataTable, ByVal dokumentid As String) Me.Errormessage = "173" '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 Me.Errormessage = "174" '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 = 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, 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() Me.Errormessage = "175" End Sub Private Sub Restore_Dokumentfunktionen(ByVal Save_DokumentFunktionen As DataTable, ByVal dokumentid As String) Me.Errormessage = "176" '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 Me.Errormessage = "177" '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 = 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, 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() Me.Errormessage = "178" End Sub Private Sub Restore_Statushistory(ByVal save_historystatus As Integer, ByVal dokumentid As String) Me.Errormessage = "179" 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, save_historystatus)) scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 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 Me.Errormessage = "180" End Sub Private Sub delete_dokumentstatus(ByVal dokumentid As String) Me.Errormessage = "181" 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, 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 Me.Errormessage = "182" End Sub Private Sub Restore_Dokumentersetzen(ByVal save_dokumentersetzen As DataTable, ByVal dokumentid As String) Me.Errormessage = "183" '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 Me.Errormessage = "184" '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 = 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, 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() Me.Errormessage = "185" End Sub #End Region #Region "TM-Prüfung" Dim ofile As System.IO.File Dim oread As System.IO.TextWriter 'BUD - 2006-12-06 - AUSKommentiert '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 'BUD - 2006-12-06 - AUSKommentiert '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ä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 Office_Freigeben(ByVal f As frmWaitforClosing) Me.Errormessage = "186" Try 'Me.StartWord() Me.StartWord_New_Instance() f.ProgressBar1.Value = 20 Disable_Enable_MenuFunctions(True) f.ProgressBar1.Value = 30 'Rel 3.72 objWord.Application.Options.SaveInterval = 10 objWord.NormalTemplate.Saved = True 'objWord.Quit() 'objWord.Visible = True f.ProgressBar1.Value = 40 objWord.Quit() objWord = Nothing Catch End Try Me.Errormessage = "187" Try f.ProgressBar1.Value = 50 StartExcel() f.ProgressBar1.Value = 60 Disable_Enable_MenuFunctions_Excel(True) f.ProgressBar1.Value = 70 'objExcel.Visible = True f.ProgressBar1.Value = 80 'objExcel.Quit() f.ProgressBar1.Value = 90 objExcel = Nothing Catch End Try Me.Errormessage = "188" End Sub Private Sub Disable_Enable_FKeys(ByVal Enable As Boolean) Try 'Rel(3.7 / BUD) If Enable = False Then 'Org aus VB -> FindKey(BuildKeyCode(wdKeyF12)).Disable Call objWord.FindKey(objWord.BuildKeyCode(WdKey.wdKeyF12)).Disable() Dim cmdctrl As Object Dim i As Integer For i = 1 To objWord.KeyBindings.Count() 'objWord.CommandBars.FindControls("FileSaveAs") Debug.Write(objWord.KeyBindings.Item(i).KeyCode()) Debug.Write(objWord.KeyBindings.Item(i).Command()) If objWord.KeyBindings.Item(i).Command = "FileSaveAs" Then Call objWord.FindKey(objWord.KeyBindings.Item(i).KeyCode).Disable() End If Next Else 'Org aus VB -> KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF12), KeyCategory:=wdKeyCategoryCommand, Command:="FileSaveAs" Call objWord.KeyBindings.Add(WdKeyCategory.wdKeyCategoryCommand, "FileSaveAs", objWord.BuildKeyCode(WdKey.wdKeyF12)) End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Public Sub Disable_Enable_MenuFunctions(ByVal Enable As Boolean) Me.Errormessage = "189" On Error Resume Next Dim cmdctrl As Object Dim i As Integer On Error Resume Next 'Disable_Enable_FKeys(Enable) ' Rücksetzen aller Commandbars aus Performancegründen deaktivieren ' SHU ' 2004-11-16 ' 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 'senden an zulassen If Me.DokumenTtyp.bEmail_versand.Value = True Then For Each cmdctrl In objWord.CommandBars.FindControls(Id:=30095) cmdctrl.enabled = True Next cmdctrl Else For Each cmdctrl In objWord.CommandBars.FindControls(Id:=30095) cmdctrl.enabled = Enable Next cmdctrl End If ' 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.NormalTempslate.Saved = True Me.Errormessage = "190" End Sub Public Function ResetFunctions() Me.Errormessage = "191" StartWord() Disable_Enable_MenuFunctions(True) objWord.NormalTemplate.Saved = True objWord.Visible = True Me.Errormessage = "192" End Function Public Sub Disable_Enable_MenuFunctions_Excel(ByVal Enable As Boolean) Me.Errormessage = "193" On Error Resume Next Dim cmdctrl As Object Dim i As Integer On Error Resume Next For i = 1 To objExcel.CommandBars.Count objExcel.CommandBars(i).Reset() Next For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=18) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=23) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=748) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=3823) cmdctrl.enabled = Enable Next cmdctrl 'senden an zulassen If Me.DokumenTtyp.bEmail_versand.Value = True Then For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=30095) cmdctrl.enabled = True Next cmdctrl Else For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=30095) cmdctrl.enabled = Enable Next cmdctrl End If ' For Each cmdctrl In objexcel.CommandBars.FindControls(ID:=30095) ' cmdctrl.enabled = Enable ' Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=797) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=777) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=30017) cmdctrl.enabled = Enable Next cmdctrl For Each cmdctrl In objExcel.CommandBars.FindControls(Id:=30045) cmdctrl.enabled = Enable Next cmdctrl 'objExcel.NormalTemplate.Saved = True Me.Errormessage = "194" End Sub Public Function ResetFunctions_Excel() Me.Errormessage = "195" StartExcel() Disable_Enable_MenuFunctions_Excel(True) objExcel.Visible = True Me.Errormessage = "196" End Function #End Region #Region "Leere Dokumente erstellen" Public Sub Create_Empty_Doc(ByVal dokumenttypnr As Integer) Me.Errormessage = "197" DokumenTtyp.cpMainConnectionProvider = conn DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(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 Create_Excel_Doc(False, "") Exit Sub End If 'Nativ-Dokumentvorlage If Not Office_Vorlage.bIdv_vorlage.Value = True Then 'Dokumenterstellung ab Datenbank 'SHU 20040301 Dim x As New FrmDomainOfficeVorlageDatei() Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) StartWord() Try objWord.Documents.Add(Template:=Dokument_To_Create) Catch ex As Exception End Try docWord = objWord.ActiveDocument Try objWord.NormalTemplate.Saved = True Catch End Try x.Dispose() objWord.Visible = True docWord = objWord.ActiveDocument docWord = Nothing objWord = Nothing Else If Not OhneIDV Then Create_IDV_Doc() Else StartWord() objWord.Documents.Add(Template:=Dokument_To_Create) docWord = objWord.ActiveDocument docWord = Nothing objWord = Nothing End If End If Me.Errormessage = "198" End Sub Public Function Create_Empty_Doc_and_Save(ByVal dokumenttypnr As Integer, ByVal Filename As String) As Boolean Me.Errormessage = "199" Try Office_Vorlage.cpMainConnectionProvider = conn Office_Vorlage.iOffice_vorlagenr = New SqlInt32(CType(dokumenttypnr, Int32)) Office_Vorlage.SelectOne() If Office_Vorlage.iAnwendungnr.Value = 2 Then DokumenTtyp.iDokumenttypnr = New SqlInt32(CType(dokumenttypnr, Int32)) DokumenTtyp.cpMainConnectionProvider = conn DokumenTtyp.SelectOne() Create_Excel_Doc(True, Filename) Exit Function End If StartWord() Create_IDV_Doc() docWord = objWord.ActiveDocument docWord.SaveAs(Filename) docWord.Close() docWord = Nothing objWord.Quit() objWord = Nothing Create_Empty_Doc_and_Save = True Catch ex As Exception TKBLib.Errorhandling.TraceHelper.Msg("WordLib.Create_Empty_Doc_and_Save.", ex.Message + " " + ex.StackTrace, TraceLevel.Warning) MsgBox("Bei der Generierung des Dokumentes ist ein Fehler aufgetreten. Das Dokument wird nicht generiert." + vbNewLine + vbNewLine + ex.Message + ex.StackTrace, MsgBoxStyle.Critical) Create_Empty_Doc_and_Save = False Finally Try objWord.Quit() objWord = Nothing Catch End Try Me.Cancel_IDVPortfeuille_BackGround() End Try ''Nativ-Dokumentvorlage 'If Not Office_Vorlage.bIdv_vorlage.Value = True Then ' StartWord() ' Dim x As New EDOKAApp.frmDomainOfficeVorlage() ' 'objWord.Documents.Add(x.Get_From_DB(Office_Vorlage.iOffice_vorlagenr.Value)) ' docWord = objWord.ActiveDocument ' docWord.SaveAs(Filename) ' docWord.Close() ' docWord = Nothing ' objWord.Quit() ' objWord = Nothing 'Else ' If Not OhneIDV Then ' StartWord() ' Create_IDV_Doc() ' docWord = objWord.ActiveDocument ' docWord.SaveAs(Filename) ' docWord.Close() ' docWord = Nothing ' objWord.Quit() ' objWord = Nothing ' Else ' StartWord() ' objWord.Documents.Add(Template:=Dokument_To_Create) ' docWord = objWord.ActiveDocument ' docWord = Nothing ' objWord = Nothing ' End If 'End If Me.Errormessage = "200" End Function Private Sub Create_IDV_Doc() Me.Errormessage = "201" Cancel_IDVPortfeuille() m_objdc = CreateObject("DC.Application") m_objdc.WindowState = DC.dcWindowState.dcActivated Thread.Sleep(10) Init_IDV_Variablen() m_objdc.WindowState = DC.dcWindowState.dcActivated If Not Office_Vorlage.bIdv_nativ.Value = True Then m_objdc.WindowState = DC.dcWindowState.dcActivated 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)) Else m_objdc.CreateDocument(DC.dcModus.dcMTBS, CType(Office_Vorlage.sIdv_id.Value, Integer)) End If 'BUD - 06.12.2006 - ComObject m_objdc.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objdc) m_objdc = Nothing Me.Errormessage = "202" End Sub Private Sub Create_Excel_Doc(ByVal save As Boolean, ByVal filename As String) Me.Errormessage = "203" Dim i As Integer Me.inEditMode = False Me.Excel_Dokument = True Office_Vorlage.cpMainConnectionProvider = conn Office_Vorlage.iOffice_vorlagenr = DokumenTtyp.iOffice_vorlagenr Office_Vorlage.SelectOne() 'Nativ-Dokumentvorlage Dim abdatei As Boolean = False If Office_Vorlage.sOffice_vorlage.Value Is System.DBNull.Value Then abdatei = True Else If Office_Vorlage.sOffice_vorlage.Value = "" Then abdatei = True End If If abdatei Then Dim x As New FrmDomainOfficeVorlageDatei() Dokument_To_Create = x.Get_From_DB(Me.Office_Vorlage.iOffice_vorlagenr.Value, Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente")) StartExcel() Try objExcel.Workbooks.Add(Template:=Dokument_To_Create) Catch ex As Exception End Try docExcel = objExcel.ActiveWorkbook x.Dispose() Else Dokument_To_Create = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_excel_vorlagen") + Office_Vorlage.sOffice_vorlage.Value StartExcel() objExcel.Workbooks.Add(Template:=Dokument_To_Create) If save Then objExcel.ActiveWorkbook.SaveAs(filename) objExcel.ActiveWorkbook.Close() objExcel.Quit() Else objExcel.Visible = True End If objExcel = Nothing End If Me.Errormessage = "204" End Sub Public Sub Cancel_IDVPortfeuille_BackGround() Me.Errormessage = "205" Dim hwnd As Long hwnd = Win32API.FindWindow(vbNullString, "DC") While hwnd <> 0 Dim myProcess() As Process 'Dim id As System.Diagnostics.Process 'Dim xxx As Long Try myProcess = Process.GetProcessesByName("DC") 'BUD - 2006-05-08 Fehler in Vista, IDVP kann nicht gekillt werden 'myProcess(0).Kill() If myProcess(0).HasExited = False Then If myProcess(0).CloseMainWindow() = False Then Try myProcess(0).Kill() Catch End Try End If End If Thread.Sleep(500) Catch Finally hwnd = Win32API.FindWindow(vbNullString, "DC") End Try End While Me.Errormessage = "206" End Sub #End Region 'Rel. 4.03 Public Sub Try_Show_Office_Object() Try objWord.Visible = True Catch ex As Exception StartWord() objWord.Visible = True End Try Try objExcel.Visible = True Catch ex As Exception End Try End Sub End Class