Initial commit
This commit is contained in:
872
EDOKA/Backup1/EDEX/Serienbriefe/frmtextmarken.vb
Normal file
872
EDOKA/Backup1/EDEX/Serienbriefe/frmtextmarken.vb
Normal file
@@ -0,0 +1,872 @@
|
||||
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
|
||||
Reference in New Issue
Block a user