Imports System Imports System.IO Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.ComponentModel Imports UtilityLibrary.Win32 Public Class frmEDOKA_Import 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 GrpJournale As System.Windows.Forms.GroupBox Friend WithEvents Splitter1 As System.Windows.Forms.Splitter Friend WithEvents GrpJournalDetail As System.Windows.Forms.GroupBox Friend WithEvents GrdJournale As C1.Win.C1TrueDBGrid.C1TrueDBGrid Friend WithEvents GrdJournaldetail As C1.Win.C1TrueDBGrid.C1TrueDBGrid Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem Friend WithEvents popupjournaldetails As System.Windows.Forms.ContextMenu Friend WithEvents mnuIndexMutation As System.Windows.Forms.MenuItem Friend WithEvents MnuDokanzeige As System.Windows.Forms.MenuItem Friend WithEvents MnuReimport As System.Windows.Forms.MenuItem Friend WithEvents ImageList1 As System.Windows.Forms.ImageList Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog Friend WithEvents ToolBarButton2 As System.Windows.Forms.ToolBarButton Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu Friend WithEvents mnuindexdaten As System.Windows.Forms.MenuItem Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEDOKA_Import)) Me.ToolBar1 = New System.Windows.Forms.ToolBar Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton2 = New System.Windows.Forms.ToolBarButton Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.GrpJournale = New System.Windows.Forms.GroupBox Me.GrdJournale = New C1.Win.C1TrueDBGrid.C1TrueDBGrid Me.ContextMenu1 = New System.Windows.Forms.ContextMenu Me.mnuindexdaten = New System.Windows.Forms.MenuItem Me.MenuItem2 = New System.Windows.Forms.MenuItem Me.Splitter1 = New System.Windows.Forms.Splitter Me.GrpJournalDetail = New System.Windows.Forms.GroupBox Me.GrdJournaldetail = New C1.Win.C1TrueDBGrid.C1TrueDBGrid Me.popupjournaldetails = New System.Windows.Forms.ContextMenu Me.mnuIndexMutation = New System.Windows.Forms.MenuItem Me.MnuDokanzeige = New System.Windows.Forms.MenuItem Me.MenuItem1 = New System.Windows.Forms.MenuItem Me.MenuItem3 = New System.Windows.Forms.MenuItem Me.MnuReimport = New System.Windows.Forms.MenuItem Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog Me.GrpJournale.SuspendLayout() CType(Me.GrdJournale, System.ComponentModel.ISupportInitialize).BeginInit() Me.GrpJournalDetail.SuspendLayout() CType(Me.GrdJournaldetail, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'ToolBar1 ' Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton1, Me.ToolBarButton2}) Me.ToolBar1.DropDownArrows = True Me.ToolBar1.ImageList = Me.ImageList1 Me.ToolBar1.Location = New System.Drawing.Point(0, 0) Me.ToolBar1.Name = "ToolBar1" Me.ToolBar1.ShowToolTips = True Me.ToolBar1.Size = New System.Drawing.Size(888, 28) Me.ToolBar1.TabIndex = 0 ' 'ToolBarButton1 ' Me.ToolBarButton1.ImageIndex = 0 Me.ToolBarButton1.Name = "ToolBarButton1" ' 'ToolBarButton2 ' Me.ToolBarButton2.ImageIndex = 12 Me.ToolBarButton2.Name = "ToolBarButton2" ' 'ImageList1 ' Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent Me.ImageList1.Images.SetKeyName(0, "") Me.ImageList1.Images.SetKeyName(1, "") Me.ImageList1.Images.SetKeyName(2, "") Me.ImageList1.Images.SetKeyName(3, "") Me.ImageList1.Images.SetKeyName(4, "") Me.ImageList1.Images.SetKeyName(5, "") Me.ImageList1.Images.SetKeyName(6, "") Me.ImageList1.Images.SetKeyName(7, "") Me.ImageList1.Images.SetKeyName(8, "") Me.ImageList1.Images.SetKeyName(9, "") Me.ImageList1.Images.SetKeyName(10, "") Me.ImageList1.Images.SetKeyName(11, "") Me.ImageList1.Images.SetKeyName(12, "") ' 'GrpJournale ' Me.GrpJournale.Controls.Add(Me.GrdJournale) Me.GrpJournale.Dock = System.Windows.Forms.DockStyle.Top Me.GrpJournale.Location = New System.Drawing.Point(0, 28) Me.GrpJournale.Name = "GrpJournale" Me.GrpJournale.Size = New System.Drawing.Size(888, 248) Me.GrpJournale.TabIndex = 1 Me.GrpJournale.TabStop = False Me.GrpJournale.Text = "Import_Journale" ' 'GrdJournale ' Me.GrdJournale.AllowUpdateOnBlur = False Me.GrdJournale.AlternatingRows = True Me.GrdJournale.ContextMenu = Me.ContextMenu1 Me.GrdJournale.Cursor = System.Windows.Forms.Cursors.Default Me.GrdJournale.Dock = System.Windows.Forms.DockStyle.Fill Me.GrdJournale.FetchRowStyles = True Me.GrdJournale.FilterBar = True Me.GrdJournale.GroupByCaption = "Drag a column header here to group by that column" Me.GrdJournale.Images.Add(CType(resources.GetObject("GrdJournale.Images"), System.Drawing.Image)) Me.GrdJournale.Location = New System.Drawing.Point(3, 16) Me.GrdJournale.MultiSelect = C1.Win.C1TrueDBGrid.MultiSelectEnum.None Me.GrdJournale.Name = "GrdJournale" Me.GrdJournale.PreviewInfo.Location = New System.Drawing.Point(0, 0) Me.GrdJournale.PreviewInfo.Size = New System.Drawing.Size(0, 0) Me.GrdJournale.PreviewInfo.ZoomFactor = 75 Me.GrdJournale.PrintInfo.PageSettings = CType(resources.GetObject("GrdJournale.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) Me.GrdJournale.ScrollTips = True Me.GrdJournale.Size = New System.Drawing.Size(882, 229) Me.GrdJournale.TabIndex = 26 Me.GrdJournale.Text = "C1TrueDBGrid1" Me.GrdJournale.PropBag = resources.GetString("GrdJournale.PropBag") ' 'ContextMenu1 ' Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuindexdaten, Me.MenuItem2}) ' 'mnuindexdaten ' Me.mnuindexdaten.Index = 0 Me.mnuindexdaten.Text = "&Inputdatei anzeigen/mutierem" ' 'MenuItem2 ' Me.MenuItem2.Index = 1 Me.MenuItem2.Text = "&Daten für nochmaligen Import bereitstellen" ' 'Splitter1 ' Me.Splitter1.Dock = System.Windows.Forms.DockStyle.Top Me.Splitter1.Location = New System.Drawing.Point(0, 276) Me.Splitter1.Name = "Splitter1" Me.Splitter1.Size = New System.Drawing.Size(888, 3) Me.Splitter1.TabIndex = 2 Me.Splitter1.TabStop = False ' 'GrpJournalDetail ' Me.GrpJournalDetail.Controls.Add(Me.GrdJournaldetail) Me.GrpJournalDetail.Dock = System.Windows.Forms.DockStyle.Fill Me.GrpJournalDetail.Location = New System.Drawing.Point(0, 279) Me.GrpJournalDetail.Name = "GrpJournalDetail" Me.GrpJournalDetail.Size = New System.Drawing.Size(888, 278) Me.GrpJournalDetail.TabIndex = 3 Me.GrpJournalDetail.TabStop = False Me.GrpJournalDetail.Text = "Journaldetails" ' 'GrdJournaldetail ' Me.GrdJournaldetail.AllowUpdate = False Me.GrdJournaldetail.AllowUpdateOnBlur = False Me.GrdJournaldetail.AlternatingRows = True Me.GrdJournaldetail.ContextMenu = Me.popupjournaldetails Me.GrdJournaldetail.Cursor = System.Windows.Forms.Cursors.Default Me.GrdJournaldetail.Dock = System.Windows.Forms.DockStyle.Fill Me.GrdJournaldetail.FetchRowStyles = True Me.GrdJournaldetail.FilterBar = True Me.GrdJournaldetail.GroupByCaption = "Drag a column header here to group by that column" Me.GrdJournaldetail.Images.Add(CType(resources.GetObject("GrdJournaldetail.Images"), System.Drawing.Image)) Me.GrdJournaldetail.ImeMode = System.Windows.Forms.ImeMode.[On] Me.GrdJournaldetail.Location = New System.Drawing.Point(3, 16) Me.GrdJournaldetail.MultiSelect = C1.Win.C1TrueDBGrid.MultiSelectEnum.None Me.GrdJournaldetail.Name = "GrdJournaldetail" Me.GrdJournaldetail.PreviewInfo.Location = New System.Drawing.Point(0, 0) Me.GrdJournaldetail.PreviewInfo.Size = New System.Drawing.Size(0, 0) Me.GrdJournaldetail.PreviewInfo.ZoomFactor = 75 Me.GrdJournaldetail.PrintInfo.PageSettings = CType(resources.GetObject("GrdJournaldetail.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) Me.GrdJournaldetail.ScrollTips = True Me.GrdJournaldetail.Size = New System.Drawing.Size(882, 259) Me.GrdJournaldetail.TabIndex = 26 Me.GrdJournaldetail.Text = "C1TrueDBGrid1" Me.GrdJournaldetail.PropBag = resources.GetString("GrdJournaldetail.PropBag") ' 'popupjournaldetails ' Me.popupjournaldetails.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuIndexMutation, Me.MnuDokanzeige, Me.MenuItem1, Me.MenuItem3, Me.MnuReimport}) ' 'mnuIndexMutation ' Me.mnuIndexMutation.Index = 0 Me.mnuIndexMutation.Text = "&Indexdaten anzeigen/mutieren" ' 'MnuDokanzeige ' Me.MnuDokanzeige.Index = 1 Me.MnuDokanzeige.Text = "&Dokument lokal speichern" ' 'MenuItem1 ' Me.MenuItem1.Index = 2 Me.MenuItem1.Text = "Dokument &anzeigen" Me.MenuItem1.Visible = False ' 'MenuItem3 ' Me.MenuItem3.Index = 3 Me.MenuItem3.Text = "-" ' 'MnuReimport ' Me.MnuReimport.Index = 4 Me.MnuReimport.Text = "Dokument für den nochmaligen Import &bereitstellen" ' 'SaveFileDialog1 ' Me.SaveFileDialog1.FileName = "doc1" ' 'frmEDOKA_Import ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(888, 557) Me.Controls.Add(Me.GrpJournalDetail) Me.Controls.Add(Me.Splitter1) Me.Controls.Add(Me.GrpJournale) Me.Controls.Add(Me.ToolBar1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmEDOKA_Import" Me.ShowInTaskbar = False Me.Text = "frmEDOKA_Import" Me.GrpJournale.ResumeLayout(False) CType(Me.GrdJournale, System.ComponentModel.ISupportInitialize).EndInit() Me.GrpJournalDetail.ResumeLayout(False) CType(Me.GrdJournaldetail, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub #End Region #Region "Deklarationen" Dim journaldaten As New DataTable() Dim journaldetails As New DataTable() #End Region 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 'close button Me.Close() Case 1 Load_Data() Case Else End Select End Sub Private Sub frmEDOKA_Import_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Load_Data() End Sub Private Sub Load_Data() Me.journaldaten = Nothing Me.journaldaten = get_Journale() Me.GrdJournale.DataSource = journaldaten Me.GrdJournale.DataMember = journaldaten.TableName Update_Details() DivFnkt.SpaltenTitel_Aktualisieren(Me.GrdJournale, Me.journaldaten, "ImportJournal") End Sub #Region "Grid" Private Sub GrdJournale_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles GrdJournale.MouseDown Me.GrdJournale.Bookmark = Me.GrdJournale.RowContaining(e.Y) Update_Details() End Sub Private Sub Update_Details() get_Journaldata() Me.GrdJournaldetail.DataSource = Nothing Me.GrdJournaldetail.DataMember = Nothing Dim dt As DataTable dt = get_Journaldata() Me.GrdJournaldetail.DataSource = dt Me.GrdJournaldetail.DataMember = dt.TableName DivFnkt.SpaltenTitel_Aktualisieren(Me.GrdJournaldetail, dt, "Import_Journaldetail") End Sub #End Region #Region "Datenzugriffe" Private Function get_Journale() As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_edoka_import_get_journale" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_import_get_journale::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Function get_Journaldata() As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_edoka_import_get_journaldata" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@Journalid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.GrdJournale.Columns(0).Value)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_import_get_journale::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function #End Region Private Sub GrdJournaldetail_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles GrdJournaldetail.FetchRowStyle If Me.GrdJournaldetail.Columns("Status").CellValue(e.Row) <> "" And _ Me.GrdJournaldetail.Columns("Status").CellValue(e.Row) <> "0" Then e.CellStyle.ForeColor = Color.Red End If End Sub Private Sub GrdJournale_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles GrdJournale.FetchRowStyle If Me.GrdJournale.Columns("fehlerhaft").CellValue(e.Row) <> 0 Then e.CellStyle.ForeColor = Color.Red End If End Sub Private Sub mnuIndexMutation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuIndexMutation.Click Dim f As New frmEdoka_Import_TextEditor() f.Als_Datei = False f.xmlstring = Me.GrdJournaldetail.Columns("xml").Value f.ShowDialog() If f.DialogResult = DialogResult.OK Then save_xmlstring(Me.GrdJournaldetail.Columns(1).Value, f.xmlstring) Me.GrdJournaldetail.Columns("xml").Value = f.xmlstring End If End Sub Private Function save_xmlstring(ByVal eintrag As Integer, ByVal xmlstring As String) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_edoka_import_update_xml" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@eintrag", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, eintrag)) scmCmdToExecute.Parameters.Add(New SqlParameter("@xmlstring", SqlDbType.VarChar, 2048, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, xmlstring)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_import_update_xml::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Function get_journale_connection() As String Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_get_journale_connection" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@connstring", SqlDbType.VarChar, 1024, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, "")) sdaAdapter.Fill(dtToReturn) Return scmCmdToExecute.Parameters("@connstring").Value Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_get_journale_connection::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Sub MnuDokanzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuDokanzeige.Click Dim conn_journale As String conn_journale = get_journale_connection() Dim s As String s = Get_Doc(Me.GrdJournaldetail.Columns(1).Value, conn_journale) If s = "" Then MsgBox("Die Datei konnte nicht gespeichert werden.") Else MsgBox("Datei gespeichert als : " + s) End If End Sub Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click Dim conn_journale As String conn_journale = get_journale_connection() Dim s As String s = Get_Doc(Me.GrdJournaldetail.Columns(1).Value, conn_journale) If s = "" Then MsgBox("Die Datei konnte nicht gespeichert werden.") Else Dim i As Integer i = Shell(s, AppWinStyle.NormalFocus, False) End If End Sub Private Function Get_Doc(ByVal itemid As Integer, ByVal connectionstring As String) As String Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("Select * From import_daten where import_data_nr=" + LTrim(Str(itemid)), connection) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) Dim ds As New DataSet() Dim Dokumentfilename As String Dim XMLFilename As String Dim xmlstring As String Dim xmlds As New DataSet() Try 'Connectionstring zur Datenbank connection.ConnectionString = connectionstring connection.Open() da.Fill(ds, "docs") Dim myRow As DataRow xmlstring = ds.Tables(0).Rows(0).Item(3) myRow = ds.Tables(0).Rows(0) 'Indexfile schreiben XMLFilename = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") + "tmpxml.xml" FileOpen(11, XMLFilename, OpenMode.Output) PrintLine(11, xmlstring) FileClose(11) xmlds.ReadXml(XMLFilename) Dokumentfilename = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") + xmlds.Tables(0).Rows(0).Item(12) xmlds.Dispose() 'Dokumentdatei schreiben Dim MyData() As Byte MyData = myRow.Item(4) Dim K As Long K = UBound(MyData) Dim fs As New FileStream(Dokumentfilename, FileMode.OpenOrCreate, FileAccess.Write) fs.Write(MyData, 0, K) fs.Close() fs = Nothing Return Dokumentfilename Catch ex As Exception FileClose(11) Return "" Finally CB = Nothing ds = Nothing da = Nothing connection.Close() connection = Nothing End Try End Function Private Sub MnuReimport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuReimport.Click Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_edoka_import_set_reimport" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@eintrag", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.GrdJournaldetail.Columns(1).Value)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0)) sdaAdapter.Fill(dtToReturn) Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_import_update_xml::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Sub Private Sub popupjournaldetails_Popup(ByVal sender As Object, ByVal e As System.EventArgs) Handles popupjournaldetails.Popup If Me.GrdJournaldetail.Columns("xml").Value = "" Then Me.mnuIndexMutation.Enabled = False Me.MnuReimport.Enabled = False Me.MnuDokanzeige.Enabled = False Else Me.mnuIndexMutation.Enabled = True Me.MnuReimport.Enabled = True Me.MnuDokanzeige.Enabled = True End If End Sub Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuindexdaten.Click Dim conn_journale As String conn_journale = get_journale_connection() Dim s As String s = Get_indexdatei(Me.GrdJournale.Columns(0).Value, conn_journale) If s = "" Then Exit Sub Dim XMLSTRING As String Dim f As New frmEdoka_Import_TextEditor() f.Als_Datei = True Dim tr As TextReader Dim hasdata As Boolean = True tr = File.OpenText(s) XMLSTRING = tr.ReadToEnd f.xmlstring = XMLSTRING tr.Close() f.Als_Datei = True f.ShowDialog() If f.DialogResult = DialogResult.OK Then If save_xmlstring_journal(Me.GrdJournale.Columns(0).Value, conn_journale, s, f.xmlstring) = False Then MsgBox("Die Indexdaten konnten nicht gespeichert werden.", MsgBoxStyle.Exclamation) End If End If End Sub Private Function Get_indexdatei(ByVal itemid As Integer, ByVal connectionstring As String) As String Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("Select * From import_job where import_jobnr=" + LTrim(Str(itemid)), connection) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) Dim ds As New DataSet() Dim Dokumentfilename As String Dim XMLFilename As String Dim xmlstring As String Dim xmlds As New DataSet() Try 'Connectionstring zur Datenbank connection.ConnectionString = connectionstring connection.Open() da.Fill(ds, "docs") Dim myRow As DataRow myRow = ds.Tables(0).Rows(0) Dokumentfilename = Globals.Applikationsdaten.Rows(Globals.AppldataRow).Item("pfad_temporaer_dokumente") + "tmpind.ind" Dim MyData() As Byte MyData = myRow.Item(7) Dim K As Long K = UBound(MyData) Dim fs As New FileStream(Dokumentfilename, FileMode.OpenOrCreate, FileAccess.Write) fs.Write(MyData, 0, K) fs.Close() fs = Nothing Return Dokumentfilename Catch ex As Exception Return "" Finally CB = Nothing ds = Nothing da = Nothing connection.Close() connection = Nothing End Try End Function Private Function save_xmlstring_journal(ByVal itemid As Integer, ByVal connectionstring As String, ByVal filename As String, ByVal xml As String) As Boolean Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("Select * From import_job where import_jobnr=" + LTrim(Str(itemid)), connection) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) Dim ds As New DataSet() FileOpen(11, filename, OpenMode.Output) Print(11, xml) FileClose(11) Dim fs As New FileStream(filename, FileMode.Open, FileAccess.Read) Dim mydata(fs.Length) As Byte fs.Read(mydata, 0, fs.Length) fs.Close() Try connection.ConnectionString = connectionstring connection.Open() da.Fill(ds, "docs") Dim myRow As DataRow myRow = ds.Tables(0).Rows(0) myRow.Item(7) = mydata da.Update(ds, "docs") Return True Catch ex As Exception Return False Finally CB = Nothing ds = Nothing da = Nothing connection.Close() connection = Nothing End Try End Function Private Sub MenuItem2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_edoka_import_set_reimport" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@eintrag", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.GrdJournale.Columns(0).Value)) scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1)) sdaAdapter.Fill(dtToReturn) Catch ex As Exception ' // some error occured. Bubble it to caller and encapsulate Exception object Throw New Exception("sp_edoka_import_update_xml::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Sub End Class