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

873 lines
36 KiB

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports System.IO
Imports System.Data.OleDb
Imports UtilityLibrary.Win32
Public Class frmtextmarken
Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
Public Sub New()
MyBase.New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
End Sub
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar
Friend WithEvents ToolBarButton1 As System.Windows.Forms.ToolBarButton
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents ToolBarButton2 As System.Windows.Forms.ToolBarButton
Friend WithEvents ImageList1 As System.Windows.Forms.ImageList
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmtextmarken))
Me.ToolBar1 = New System.Windows.Forms.ToolBar()
Me.ToolBarButton2 = New System.Windows.Forms.ToolBarButton()
Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton()
Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
Me.Panel1 = New System.Windows.Forms.Panel()
Me.SuspendLayout()
'
'ToolBar1
'
Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton2, Me.ToolBarButton1})
Me.ToolBar1.DropDownArrows = True
Me.ToolBar1.ImageList = Me.ImageList1
Me.ToolBar1.Name = "ToolBar1"
Me.ToolBar1.ShowToolTips = True
Me.ToolBar1.Size = New System.Drawing.Size(344, 25)
Me.ToolBar1.TabIndex = 0
'
'ToolBarButton2
'
Me.ToolBarButton2.ImageIndex = 0
'
'ToolBarButton1
'
Me.ToolBarButton1.ImageIndex = 1
Me.ToolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.ToggleButton
'
'ImageList1
'
Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit
Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)
Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
'
'Panel1
'
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 25)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(344, 476)
Me.Panel1.TabIndex = 1
'
'frmtextmarken
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(344, 501)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Panel1, Me.ToolBar1})
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmtextmarken"
Me.Text = "Dokumentbefüllung bearbeiten"
Me.ResumeLayout(False)
End Sub
#End Region
#Region "Deklarationen"
Dim serienbriefnr As Integer
Dim DokumentBearbeitungDurchUser As Boolean
Dim WithEvents objword As Word.Application
Dim WithEvents objdoc As Word.Document
Dim stdvorlagenfelder As New DataTable()
Dim dsempfaenger As New DataSet()
Dim WithEvents ucedit As New ucedit()
Dim WithEvents ucnoedit As New ucnoedit()
Dim m_dokumenttypnr As Integer
Property Dokumenttypnr() As Integer
Get
Return m_dokumenttypnr
End Get
Set(ByVal Value As Integer)
m_dokumenttypnr = Value
End Set
End Property
#End Region
#Region "Ereignisse"
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case 0 'Exit
Me.Close()
Case 1
If Me.ToolBarButton1.Pushed Then
Me.Height = 50
Else
Me.Height = 450 + Me.ToolBar1.Height + 10
End If
Case Else
End Select
End Sub
Dim Schliessen_OK As Boolean = False
Private Sub frmtextmarken_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Schliessen_OK = True
Me.Save_Office()
End Sub
#End Region
#Region "Load"
Public Sub New(ByVal serienbriefnr As Integer, ByVal DokumentBearbeitungDurchUser As Boolean, ByVal dsempfaenger As DataSet, ByVal dokumenttypnr As Integer, Optional ByVal Vorlagendaten As DataTable = Nothing, Optional ByVal tmpempfaenger As DataSet = Nothing)
MyBase.New()
InitializeComponent()
Me.serienbriefnr = serienbriefnr
Me.DokumentBearbeitungDurchUser = DokumentBearbeitungDurchUser
Me.dsempfaenger = dsempfaenger
Me.Dokumenttypnr = dokumenttypnr
'Rel. 4.1
If Not Vorlagendaten Is Nothing Then
Me.Filldoc = True
Me.vorlagendaten = Vorlagendaten
Me.tmpempfaenger = tmpempfaenger
Else
Filldoc = False
End If
End Sub
Private Sub frmtextmarken_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Application.DoEvents()
Me.Cursor = Cursors.WaitCursor
Me.TopMost = True
Me.Load_Document()
If Me.DokumentBearbeitungDurchUser = True Then
Me.Panel1.Controls.Add(ucedit)
Me.ucedit.Dock = DockStyle.Fill
Me.Height = 450 + Me.ToolBar1.Height + 10
Else
Me.Panel1.Controls.Add(ucnoedit)
Me.Height = 450 + Me.ToolBar1.Height + 10
End If
Me.Cursor = Cursors.Default
Application.DoEvents()
'Rel. 4.1
If Me.Filldoc = True Then
Me.Dokumente_Generieren()
End If
End Sub
#End Region
#Region "Office"
Public Sub Load_Document(Optional ByVal visible As Boolean = True)
Dim dokumentname As String = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.serienbriefnr.ToString + "_vorlage.doc"
Vorlage_Auslesen()
StartWord(True)
objword.Documents.Open(dokumentname)
objdoc = objword.ActiveDocument
objword.Visible = visible
objword.WindowState = Word.WdWindowState.wdWindowStateMaximize
End Sub
Private Function StartWord(Optional ByVal newinstance As Boolean = False)
Try
If newinstance = False Then
objword = GetObject(, "Word.application")
Else
objword = CreateObject("Word.application")
End If
Catch
Try
objword = CreateObject("Word.application")
Catch ex As Exception
End Try
Finally
objword.Visible = False
End Try
Try
objword.Run("Autoexec")
Catch
End Try
End Function
Private Function Save_Office(Optional ByVal savetodb As Boolean = True)
Try
If Not savetodb Then
Me.objdoc = Me.objword.ActiveDocument
Application.DoEvents()
Me.objdoc.Close(Savechanges:=False)
Application.DoEvents()
Threading.Thread.CurrentThread.Sleep(400)
If Me.objword.Documents.Count = 0 Then
Me.objword.Quit(savechanges:=False)
End If
Me.objdoc = Nothing
Me.objword = Nothing
Exit Function
End If
If Me.DokumentBearbeitungDurchUser = True Then
Me.objword.ActiveDocument.Save()
Me.objdoc = Me.objword.ActiveDocument
Application.DoEvents()
Delete_Generierte_Bookmarks()
Me.objdoc.Close(savechanges:=True)
Application.DoEvents()
Threading.Thread.CurrentThread.Sleep(400)
If Me.objword.Documents.Count = 0 Then
Me.objword.Quit(SaveChanges:=False)
End If
Me.objdoc = Nothing
Me.objword = Nothing
Me.Vorlage_Speichern()
Exit Function
End If
Application.DoEvents()
If Me.objword.Documents.Count = 1 Then
Me.objword.Quit(savechanges:=False)
End If
Me.objdoc = Nothing
Me.objword = Nothing
Application.DoEvents()
'Me.Vorlage_Speichern()
Catch
'MyMsg.show_standardmessage(728, MsgBoxStyle.Critical)
End Try
End Function
#End Region
#Region "Datenzugriffe"
Private Function Vorlage_Auslesen() As Boolean
Try
Dim dokumentname = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.serienbriefnr.ToString + "_vorlage.doc"
Dim Connection As New SqlConnection()
Dim DA As New SqlDataAdapter("select * from edex_sb_vorlage where serienbriefnr=" + Str(Me.serienbriefnr), Connection)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
Dim ds As New DataSet()
Try
Connection.ConnectionString = Globals.sConnectionString
Connection.Open()
DA.Fill(ds, "empf")
Dim myRow As DataRow
If ds.Tables(0).Rows.Count = 0 Then
MyMsg.show_standardmessage(715, MsgBoxStyle.Critical)
Else
myRow = ds.Tables(0).Rows(0)
Dim MyData() As Byte
MyData = myRow.Item(1)
Dim K As Long
K = UBound(MyData)
Dim fs As New FileStream(dokumentname, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(MyData, 0, K)
fs.Close()
fs = Nothing
End If
Catch ex As Exception
MyMsg.show_standardmessage(717, MsgBoxStyle.Critical)
' MsgBox(ex.Message)
Return False
End Try
cb = Nothing
ds = Nothing
DA = Nothing
Connection.Close()
Connection = Nothing
Return True
Catch EX As Exception
MyMsg.show_standardmessage(717, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Sub Vorlage_Speichern()
'Dokumentvorlage aus Office-Vorlage-Datei auslesen, sofern Filename = ""
Dim dokumentname = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Me.serienbriefnr.ToString + "_vorlage.doc"
Try
Dim Connection As New SqlConnection()
Dim DA As New SqlDataAdapter("select * from edex_sb_vorlage where serienbriefnr=" + Str(Me.serienbriefnr), Connection)
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
Dim ds As New DataSet()
Dim fs As New FileStream(dokumentname, FileMode.Open, FileAccess.Read)
Dim mydata(fs.Length) As Byte
Try
fs.Read(mydata, 0, fs.Length)
fs.Close()
Connection.ConnectionString = Globals.sConnectionString
Connection.Open()
DA.Fill(ds, "vorlage")
Dim myRow As DataRow
If ds.Tables(0).Rows.Count = 0 Then
'Neue Serienbrief_Empfaenger speichern
myRow = ds.Tables(0).NewRow
myRow.Item(0) = Me.serienbriefnr
myRow.Item(1) = mydata
ds.Tables(0).Rows.Add(myRow)
DA.Update(ds, "vorlage")
Else
' Bestehende Empfängerliste überschreiben
myRow = ds.Tables(0).Rows(0)
myRow.Item(1) = mydata
DA.Update(ds, "vorlage")
End If
Catch ex As Exception
MyMsg.show_standardmessage(718, MsgBoxStyle.Critical)
' MsgBox(ex.Message)
End Try
fs = Nothing
cb = Nothing
ds = Nothing
DA = Nothing
Connection.Close()
Connection = Nothing
Catch ex As Exception
Finally
Try
Application.DoEvents()
File.Delete(dokumentname)
Catch
End Try
End Try
End Sub
Private Function Get_Vorlagenfelder(ByVal type As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim i As Integer
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_edex_sb_get_standardvorlagenfelder"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumenttypnr", SqlDbType.Int, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumenttypnr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@type", SqlDbType.Int, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, type))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
Throw New Exception("sp_check_dokumentreaktivierung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
#End Region
#Region "UC-Ereignisse"
Private Function Activate_Word()
Dim hnd As Long
hnd = Win32API.FindWindow("Opusapp", vbNullString)
Win32API.SetForegroundWindow(hnd)
End Function
Private Sub ucedit_insert_tm(ByVal TMName As String, ByVal isfield As Boolean) Handles ucedit.OnInsert_TM
Try
If isfield = False Then
objword.Selection.Bookmarks.Add(TMName)
Else
objword.Selection.FormFields.Add(Range:=objword.Selection.Range, Type:=Word.WdFieldType.wdFieldFormTextInput)
objword.Selection.PreviousField.Select()
objword.Selection.FormFields.Item(1).Name = TMName
End If
Activate_Word()
Catch
End Try
End Sub
Private Sub ucedit_goto_tm(ByVal TMName As String, ByVal isfield As Boolean) Handles ucedit.OnGoto_TM, ucnoedit.OnGoto_TM
If Not isfield Then
Try
objword.Selection.GoTo(what:=Word.WdGoToItem.wdGoToBookmark, Name:=TMName)
Activate_Word()
Catch ex As Exception
End Try
Else
Try
objword.Selection.GoTo(what:=Word.WdGoToItem.wdGoToField, Name:=TMName)
Activate_Word()
Catch
End Try
End If
End Sub
Private Sub ucedit_OnGetStandardvorlagenfelder(ByRef list As System.Data.DataTable) Handles ucedit.OnGetStandardvorlagenfelder
list = Me.Get_Vorlagenfelder(0)
End Sub
Private Sub ucedit_OnGetUsedFelder(ByRef list As System.Data.DataTable) Handles ucedit.OnGetUsedFelder, ucnoedit.OnGetUsedFelder
list = Me.dsempfaenger.Tables("UsedFelder")
End Sub
Private Sub get_usedfelder(ByRef list As System.Data.DataTable)
list = Me.Get_Vorlagenfelder(1)
Dim i As Integer
Dim s As String
Dim row As DataRow
Dim dodelete As Boolean = False
For Each row In list.Rows
dodelete = False
If row.Item("Feldname") <> "" Then
Try
s = objword.ActiveDocument.FormFields.Item(row.Item("feldname")).Name()
Catch
dodelete = True
End Try
End If
If row.Item("Beginntextmarke") <> "" Then
Try
s = objword.ActiveDocument.Bookmarks.Item(row.Item("beginntextmarke")).Name
Catch
dodelete = True
End Try
End If
If row.Item("endetextmarke") <> "" Then
Try
s = objword.ActiveDocument.Bookmarks.Item(row.Item("endetextmarke")).Name
Catch
dodelete = True
End Try
End If
If dodelete Then row.Delete()
Next
End Sub
Private Sub ucedit_OnGetIDVFelder(ByRef list As System.Data.DataTable) Handles ucedit.OnGetIDVFelder, ucnoedit.OnGetIDVFelder
list = Me.get_idvwerte
End Sub
Private Sub ucnoedit_OnGetVerknuepfteFelder(ByRef list As System.Data.DataTable) Handles ucnoedit.OnGetVerknuepfteFelder
Try
list = Me.dsempfaenger.Tables("Verkfelder")
Catch
End Try
If list Is Nothing Then
Me.dsempfaenger.Tables.Add("VerkFelder")
Dim d1 As New DataColumn()
Dim d2 As New DataColumn()
Dim d3 As New DataColumn()
d1.Caption = "IDVWert"
d1.ColumnName = "IDVWert"
d1.DefaultValue = ""
d2.Caption = "Standardwert"
d2.ColumnName = "Standardwert"
d2.DefaultValue = ""
d3.Caption = "Vorlagenfeldnr"
d3.ColumnName = "Vorlagenfeldnr"
d3.DefaultValue = ""
With Me.dsempfaenger.Tables("Verkfelder").Columns
.Add(d1)
.Add(d2)
.Add(d3)
End With
list = Me.dsempfaenger.Tables("Verkfelder")
End If
End Sub
Private Function get_idvwerte() As DataTable
Dim i As Integer
Dim dt As New DataTable()
dt.Columns.Add("Feldname")
dt.Columns.Add("Wert")
For i = 0 To Me.dsempfaenger.Tables(0).Columns.Count - 1
Select Case UCase(Me.dsempfaenger.Tables(0).Columns(i).Caption)
Case "PARTNERNR", "KURZBEZEICHNUNG", "ANREDE", "NAME", "VORNAME", "STRASSE", "PLZ", "ORT", "ZUSTELLADRESSE", "BRIEFANREDE1", "BRIEFANREDE2", "STATUS", "FEHLERCD", "BLKUNDE", "DOKUMENT_GEDRUCKT", "AKTIV", "DOKUMENTID", "DOKUMENTIDBDR", "ERSTELLER", "FEHLERCODE", "DRUCKJOBID"
Case Else
Dim myRow As DataRow
myRow = dt.NewRow
myRow.Item(0) = Me.dsempfaenger.Tables(0).Columns(i).Caption
myRow.Item(1) = ""
dt.Rows.Add(myRow)
End Select
Next
Return dt
End Function
Private Sub ucedit_OnDelete_TM(ByVal TMName As String, ByVal isfield As Boolean) Handles ucedit.OnDelete_TM
Try
If isfield = False Then
objword.ActiveDocument.Bookmarks.Item(TMName).Delete()
Activate_Word()
Else
objword.ActiveDocument.FormFields.Item(TMName).Delete()
Activate_Word()
End If
Catch
End Try
End Sub
#End Region
#Region "öffentliche Methoden"
Public Function init_used_felder() As DataTable
Dim dt As New DataTable()
Me.Load_Document(False)
Me.get_usedfelder(dt)
Me.Save_Office(False)
Return dt
End Function
#End Region
'Rel. 4.1
#Region "Befüllen"
Dim doktyp As New edokadb.clsDokumenttyp()
Dim serienbrief As New edokadb.clsEdex_sb_serienbrief()
Dim vorlagendaten As New DataTable
Dim tmpempfaenger As New DataSet
Dim officevorlage As New edokadb.clsOffice_vorlage()
Dim beginntextmarke As String
Dim endetextmarke As String
Dim feldname As String
Dim dokid As String
Dim blkunde As String = ""
Dim GenerierteDokumente As New Collection()
Dim Filldoc As Boolean = False
Private Function Dokumente_Generieren()
Dim Kopfzeile As Boolean
serienbrief.cpMainConnectionProvider = Globals.conn
serienbrief.iSerienbriefnr = New SqlInt32(CType(Me.Serienbriefnr, Int32))
serienbrief.SelectOne()
doktyp.cpMainConnectionProvider = Globals.conn
doktyp.iDokumenttypnr = serienbrief.iDokumenttypnr
doktyp.SelectOne()
officevorlage.cpMainConnectionProvider = Globals.conn
officevorlage.iOffice_vorlagenr = doktyp.iOffice_vorlagenr
officevorlage.SelectOne()
If officevorlage.bKopfzeile_generieren.Value = True Then
Kopfzeile = True
Else
Kopfzeile = False
End If
serienbrief.Dispose()
doktyp.Dispose()
officevorlage.Dispose()
'objword = New Word.Application()
'objword.WindowState = Word.WdWindowState.wdWindowStateMinimize
'objword.Visible = False
Dim i As Integer
Dim i1 As Integer
Dim pstep As Double
Dim pval As Double
Dim feldnr As String
Try
pstep = 70 / vorlagendaten.Rows.Count
Catch
pval = 30
End Try
For i = 0 To vorlagendaten.Rows.Count - 1
Try
pval = pval + pstep
Dim dokumentname = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + serienbriefnr.ToString + "_vorlage.doc"
'objword.Documents.Open(dokumentname)
'objword.Visible = False
'objword.WindowState = Word.WdWindowState.wdWindowStateMinimize
If Kopfzeile Then
Insert_Kopfzeile()
End If
Dim sp1 As String
Dim sp2() As String
For i1 = 0 To vorlagendaten.Columns.Count - 1
'If vorlagendaten.Columns(i1).ColumnName = "_Alter" Or vorlagendaten.Columns(i1).ColumnName = "Alter" Or vorlagendaten.Columns(i1).ColumnName = "Alter_" Then
' MsgBox("Gaga")
'End If
Try
sp1 = vorlagendaten.Columns(i1).ColumnName
sp2 = sp1.Split("_09_")
sp1 = sp2(0) + "_09_" + sp2(2)
feldnr = sp2(1).ToString
sp1 = sp1
Catch
sp1 = vorlagendaten.Columns(i1).ColumnName
feldnr = sp1
End Try
Select Case sp1
'Mapping Zustelladresse
Case "F_09_1", "F_09_10"
If vorlagendaten.Rows(i).Item("Zustelladresse") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Zustelladresse")
End If
Case "F_09_89"
If vorlagendaten.Rows(i).Item("Name") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Name")
End If
Case "F_09_111"
If vorlagendaten.Rows(i).Item("Vorname") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Vorname")
End If
Case "F_09_122", "F_09_123", "F_09_20"
Dim s As String = ""
Dim s1
If vorlagendaten.Rows(i).Item("Briefanrede1") <> "" Then
s = vorlagendaten.Rows(i).Item("Briefanrede1")
If Microsoft.VisualBasic.Left(s, 4) = "Herr" Then
s = "r " + s
Else
s = " " + s
End If
End If
If vorlagendaten.Rows(i).Item("Briefanrede2") <> "" Then
If s <> "" Then s = s + vbCrLf
s1 = vorlagendaten.Rows(i).Item("Briefanrede2")
If Microsoft.VisualBasic.Left(s1, 4) = "Herr" Then
s = s + "Sehr geehrter " + s1
Else
s = s + "Sehr geehrte " + s1
End If
End If
If s <> "" Then
vorlagendaten.Rows(i).Item(i1) = s
End If
Case "F_09_98"
If vorlagendaten.Rows(i).Item("Strasse") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Strasse")
End If
Case "F_09_93"
If vorlagendaten.Rows(i).Item("Ort") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Ort")
End If
Case "F_09_93"
If vorlagendaten.Rows(i).Item("Ort") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("Ort")
End If
Case "F_09_96"
If vorlagendaten.Rows(i).Item("PLZ") <> "" Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("PLZ")
End If
Case "F_09_132"
If vorlagendaten.Rows(i).Item("PLZ") <> "" Or vorlagendaten.Rows(i).Item("Ort") <> 0 Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item("PLZ") + " " + vorlagendaten.Rows(i).Item("Ort")
End If
Case Else
End Select
'Verknüpfte Felder
Try
Dim i2 As Integer
For i2 = 0 To Me.dsempfaenger.Tables("VerkFelder").Rows.Count - 1
If feldnr = Me.dsempfaenger.Tables("verkfelder").Rows(i2).Item("Vorlagenfeldnr").ToString Then
vorlagendaten.Rows(i).Item(i1) = vorlagendaten.Rows(i).Item(Me.dsempfaenger.Tables("verkfelder").Rows(i2).Item("IDVWert"))
End If
Next
Catch
End Try
If vorlagendaten.Rows(i).Item(i1) Is System.DBNull.Value Then
vorlagendaten.Rows(i).Item(i1) = ""
End If
If Microsoft.VisualBasic.Left(vorlagendaten.Columns(i1).ColumnName, 5) = "F_09_" Then
Insert_Value(vorlagendaten.Rows(i).Item(i1), vorlagendaten.Columns(i1).ColumnName)
End If
If Microsoft.VisualBasic.Left(vorlagendaten.Columns(i1).ColumnName, 5) = "I_09_" Then
Dim intfeldname As String
Dim Intbookmark As String
Dim IntWert As String
intfeldname = vorlagendaten.Columns(i1).ColumnName
Intbookmark = Microsoft.VisualBasic.Right(vorlagendaten.Columns(i1).ColumnName, Len(vorlagendaten.Columns(i1).ColumnName) - 5)
IntWert = Microsoft.VisualBasic.Right(vorlagendaten.Columns(i1).ColumnName, Len(vorlagendaten.Columns(i1).ColumnName) - 14)
Dim SplitArray() As String
Dim ind As Integer
ind = IntWert.IndexOf("_09_")
IntWert = Microsoft.VisualBasic.Left(IntWert, ind)
'SplitArray = IntWert.Split("_09_")
'IntWert = SplitArray(0)
'IntWert = RenCol(IntWert)
Insert_Value(vorlagendaten.Rows(i).Item(IntWert), Intbookmark)
End If
Next
If doktyp.bZu_retournieren.Value = True Or vorlagendaten.Rows(i).Item("blkunde") = 1 Or vorlagendaten.Rows(i).Item("Dokumentidbdr") <> "" Then
blkunde = vorlagendaten.Rows(i).Item("blkunde")
If vorlagendaten.Rows(i).Item("Dokumentidbdr") <> "" Then
dokid = vorlagendaten.Rows(i).Item("Dokumentidbdr")
Else
dokid = vorlagendaten.Rows(i).Item("Dokumentid")
End If
' Generate_Barcodes()
blkunde = ""
End If
Dim dm As String
' dm = Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + Serienbriefnr.ToString + "_vorlage_" + i.ToString + ".doc"
' objword.ActiveDocument.SaveAs(dm)
' Me.GenerierteDokumente.Add(dm)
' objword.Documents.Close(SAVECHANGES:=False)
Catch ex As Exception
MsgBox(ex.Message)
vorlagendaten.Rows(i).Item("Status") = -1
End Try
Next
End Function
Private Sub Delete_Generierte_Bookmarks()
Dim i As Integer
Dim pos1 As Integer
Dim pos2 As Integer
Dim hastextmarken As Boolean = True
Dim s As String
Dim e As String
Try
While hastextmarken = True
hastextmarken = False
For i = 1 To objword.ActiveDocument.Bookmarks.Count
s = objword.ActiveDocument.Bookmarks.Item(i).Name
If Microsoft.VisualBasic.Left(s, 2) = "TS" Then
hastextmarken = True
delete_it(s)
Exit For
End If
Next
End While
Catch ex As Exception
MsgBox(ex.Message + " :" + s)
End Try
End Sub
Private Sub delete_it(ByVal s As String)
Dim pos1 As Integer
Dim pos2 As Integer
Dim hastextmarken As Boolean = True
Dim e As String
pos1 = objword.ActiveDocument.Bookmarks.Item(s).Start
e = "TE" + Microsoft.VisualBasic.Right(s, Len(s) - 2)
pos2 = objword.ActiveDocument.Bookmarks.Item(e).Start
objword.Selection.SetRange(Start:=pos1, End:=pos2)
objword.Selection.Delete()
Try
objword.ActiveDocument.Bookmarks.Item(s).Delete()
objword.ActiveDocument.Bookmarks.Item(e).Delete()
Application.DoEvents()
Catch
End Try
End Sub
Private Sub Insert_Value(ByVal feldwert As String, ByVal feldname As String)
Dim i As Integer
Dim dc As DataRow
Dim pos1 As Integer
Dim pos2 As Integer
If Microsoft.VisualBasic.Left(feldname, 5) = "TMISB" Then
beginntextmarke = feldname
endetextmarke = ""
feldname = ""
Else
For Each dc In Me.tmpempfaenger.Tables("UsedFelder").Rows
If dc.Item("TempFeldName") = feldname Then
beginntextmarke = dc.Item("Beginntextmarke")
endetextmarke = dc.Item("Endetextmarke")
feldname = dc.Item("Feldname")
Exit For
End If
Next
End If
If beginntextmarke <> "" And endetextmarke = "" Then
Try
objword.ActiveDocument.Bookmarks.Item(beginntextmarke).Select()
objword.ActiveDocument.Bookmarks.Add("TS" & beginntextmarke)
objword.ActiveDocument.Bookmarks.Item("TS" & beginntextmarke).Select()
objword.Selection.MoveRight(Unit:=Word.WdUnits.wdCharacter, Count:=1)
objword.ActiveDocument.Bookmarks.Add("TE" & beginntextmarke)
objword.ActiveDocument.Bookmarks.Item("TS" & beginntextmarke).Select()
objword.Selection.TypeText(Text:=feldwert)
Catch ex As Exception
End Try
End If
If beginntextmarke <> "" And endetextmarke <> "" Then
Try
objword.ActiveDocument.Bookmarks.Item(beginntextmarke).Select()
objword.ActiveDocument.Bookmarks.Add("TS" & beginntextmarke)
objword.ActiveDocument.Bookmarks.Item(endetextmarke).Select()
objword.ActiveDocument.Bookmarks.Add("TE" & beginntextmarke)
pos1 = objword.ActiveDocument.Bookmarks.Item("TS" & beginntextmarke).Start
pos2 = objword.ActiveDocument.Bookmarks.Item("TE" & endetextmarke).Start
objword.Selection.SetRange(Start:=pos1, End:=pos2)
objword.Selection.TypeText(Text:=feldwert)
Catch ex As Exception
End Try
End If
End Sub
Private Sub Insert_Kopfzeile()
objword.Selection.HomeKey(Unit:=Word.WdUnits.wdStory)
If objword.ActiveWindow.View.SplitSpecial <> Word.WdSpecialPane.wdPaneNone Then
objword.ActiveWindow.Panes.Item(2).Close()
End If
If objword.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdNormalView Or objword.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdOutlineView Then
objword.ActiveWindow.ActivePane.View.Type = Word.WdViewType.wdPrintView
End If
objword.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
set_headerbookmark()
objword.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekMainDocument
End Sub
Private Sub set_headerbookmark()
Try
objword.ActiveDocument.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 = Word.WdBookmarkSortBy.wdSortByName
.ShowHidden = False
End With
End Try
End Sub
#End Region
Private Sub objdoc_DocumentEvents_Event_Close() Handles objdoc.Close
Me.Close()
End Sub
End Class