From fa66fe01eb97fc2dd903d907401aae6d4273bd1e Mon Sep 17 00:00:00 2001 From: SchreiberM Date: Fri, 1 Jul 2016 09:00:01 +0200 Subject: [PATCH] MS3006 --- .../ClassImport_Windream.vb | 2 + app/DD-Record-Organiser/ClassWindream.vb | 523 ++++++++-------- .../DD-Record-Organiser.vbproj | 17 +- .../My Project/AssemblyInfo.vb | 2 +- .../frmConstructor_Main.Designer.vb | 21 +- .../frmConstructor_Main.en-US.resx | 26 +- .../frmConstructor_Main.resx | 64 +- .../frmConstructor_Main.vb | 559 +++++++++++------- app/DD-Record-Organiser/frmEntities.vb | 4 +- .../frmRecordView.Designer.vb | 30 +- app/DD-Record-Organiser/frmRecordView.vb | 170 +++--- app/DD-Record-Organiser/frmSAP_FuBa.vb | 95 ++- ...esigner.vb => frmWD_IndexFile.Designer.vb} | 4 +- ....en-US.resx => frmWD_IndexFile.en-US.resx} | 0 ...Index_Dokart.resx => frmWD_IndexFile.resx} | 0 ...mWD_Index_Dokart.vb => frmWD_IndexFile.vb} | 14 +- .../frmWD_Link_to_Record.Designer.vb | 98 ++- .../frmWD_Link_to_Record.en-US.resx | 184 ++++++ .../frmWD_Link_to_Record.resx | 390 ++++++++++++ .../frmWD_Link_to_Record.vb | 46 +- 20 files changed, 1525 insertions(+), 724 deletions(-) rename app/DD-Record-Organiser/{frmWD_Index_Dokart.Designer.vb => frmWD_IndexFile.Designer.vb} (99%) rename app/DD-Record-Organiser/{frmWD_Index_Dokart.en-US.resx => frmWD_IndexFile.en-US.resx} (100%) rename app/DD-Record-Organiser/{frmWD_Index_Dokart.resx => frmWD_IndexFile.resx} (100%) rename app/DD-Record-Organiser/{frmWD_Index_Dokart.vb => frmWD_IndexFile.vb} (98%) create mode 100644 app/DD-Record-Organiser/frmWD_Link_to_Record.en-US.resx diff --git a/app/DD-Record-Organiser/ClassImport_Windream.vb b/app/DD-Record-Organiser/ClassImport_Windream.vb index 620b4ef..2ea9b8c 100644 --- a/app/DD-Record-Organiser/ClassImport_Windream.vb +++ b/app/DD-Record-Organiser/ClassImport_Windream.vb @@ -357,9 +357,11 @@ Public Class ClassImport_Windream 'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "") 'Überprüfen ob File existiert If File.Exists(_neuername & extension) = False Then + If LogErrorsOnly = False Then ClassLogger.Add(" >> File is not existing", False) _NewFileString = _neuername Else Do While File.Exists(_neuername & extension) + If LogErrorsOnly = False Then ClassLogger.Add(" >> Attention File '" & _neuername & extension & "' is existing!", False) version = version + 1 _neuername = Stammname & VERSION_DELIMITER & version _NewFileString = _neuername diff --git a/app/DD-Record-Organiser/ClassWindream.vb b/app/DD-Record-Organiser/ClassWindream.vb index a72cd34..e36629b 100644 --- a/app/DD-Record-Organiser/ClassWindream.vb +++ b/app/DD-Record-Organiser/ClassWindream.vb @@ -540,239 +540,250 @@ Public Class ClassWindream End Function #End Region Public Shared Function Stream_File(ByVal filenameQuelle As String, ByVal zielpfad As String, Optional ImportAll As Boolean = False) - aktWMObject = Nothing - If My.Computer.FileSystem.DirectoryExists(zielpfad) = False Then - My.Computer.FileSystem.CreateDirectory(zielpfad) - ClassLogger.Add(">> Zielverzeichnis neu erzeugt!", False) - End If - - Const STREAM_BinaryObject = "BinaryObject" - - If LogErrorsOnly = False Then ClassLogger.Add(" >> Stream_File wurde gestartet", False) - Dim endgültigerDateiname As String = "" - ' Objekt für Datei und Zielverzeichnis anlegen - ' Dim Quelldatei_Name As String = Path.GetFileName(filenameQuelle) - - If LogErrorsOnly = False Then ClassLogger.Add(" >> Quelldatei gelesen", False) - - '######## - Dim Zielverzeichnis As String = zielpfad - endgültigerDateiname = CURRENT_NEWFILENAME.Substring(2) - If My.Computer.FileSystem.DirectoryExists(Zielverzeichnis) Then - If LogErrorsOnly = False Then ClassLogger.Add(" >> targetPath exisitiert", False) - ' Überprüfen ob der zu Kopieren notwendige Speicherplatz auf Ziellaufwerk vorhanden ist - Dim dvr As New DriveInfo(vWLaufwerk & ":") - Dim freeSpace = dvr.TotalFreeSpace - - Dim info As New FileInfo(filenameQuelle) - ' Get length of the file. - Dim length As Long = info.Length - If freeSpace < length Then - MsgBox(" Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz") - Return -10 + Try + aktWMObject = Nothing + If My.Computer.FileSystem.DirectoryExists(zielpfad) = False Then + My.Computer.FileSystem.CreateDirectory(zielpfad) + ClassLogger.Add(">> Zielverzeichnis neu erzeugt!", False) End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei kopieren von " & filenameQuelle & " nach " & endgültigerDateiname & ".", False) - Dim Connect - Dim Session - Dim WMObject - Dim aFileIO - Dim aWMStream - Dim wmbrwsr - Dim dmsServer As String - If LogErrorsOnly = False Then ClassLogger.Add(" >> Connect definieren: CreateObject('Windream.WMConnect')", False) - Connect = CreateObject("Windream.WMConnect") - aFileIO = New WMOTOOLLib.WMFileIO - 'If My.Settings.DLL_WMOTOOL = "" Then - ' aFileIO = New WMOTOOLLib.WMFileIO - ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Direkter Verweis auf New WMOTOOLLib.WMFileIO", False) - 'Else - ' aFileIO = CreateObject(My.Settings.DLL_WMOTOOL) 'WMOTool.WMFileIO oder WMOTOOLLib.WMFileIO - ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Verwendeter Verweis aus Anwendungsstring: '" & My.Settings.DLL_WMOTOOL & "'", False) - 'End If - - wmbrwsr = CreateObject("WMOBrws.ServerBrowser") - '================================================================== - ' get the current DMS-server to log in - '================================================================== - dmsServer = wmbrwsr.GetCurrentServer - '================================================================== - ' create a session - '================================================================== - Session = CreateObject("Windream.WMSession", dmsServer) - '================================================================== - ' login session - '================================================================== - Connect.LoginSession(Session) - Dim LoggedIn = Session.aLoggedin - If LoggedIn Then - If LogErrorsOnly = False Then ClassLogger.Add(" >> Login ok. You are logged in as '" & Connect.UserName & "' on Server '" & dmsServer, False) - 'MsgBox("Login ok. You are logged in as '" + Connect.UserName + "' on Server '" + dmsServer + "'") - Else - ClassLogger.Add(">> Login on dms-Server failed", False) - ' MsgBox("Login failed. ") - End If - Const WMCOMEventWMSessionNeedIndex = 1 - - 'windream Objekte erstellen ohne Indexierungs-Event - Session.SwitchEvents(WMCOMEventWMSessionNeedIndex, False) - '================================================================== - ' check if files exist - '================================================================== - If LogErrorsOnly = False Then ClassLogger.Add(" >> ÜBERPRÜFTER DATEINAME => " & endgültigerDateiname, False) - Dim wdFilexists As Boolean - If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch auf die Datei in W: zuzugreifen und zu sperren...", False) - wdFilexists = Session.WMObjectExists(WMEntityDocument, endgültigerDateiname, 0, 0) - - If wdFilexists = False Then - If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei ist NICHT vorhanden, kann also einfach neu angelegt werden", False) - Err.Clear() + Const STREAM_BinaryObject = "BinaryObject" + + If LogErrorsOnly = False Then ClassLogger.Add(" >> Stream_File wurde gestartet", False) + Dim endgültigerDateiname As String = "" + ' Objekt für Datei und Zielverzeichnis anlegen + ' Dim Quelldatei_Name As String = Path.GetFileName(filenameQuelle) + + If LogErrorsOnly = False Then ClassLogger.Add(" >> Quelldatei gelesen", False) + + '######## + Dim Zielverzeichnis As String = zielpfad + endgültigerDateiname = CURRENT_NEWFILENAME.Substring(2) + If My.Computer.FileSystem.DirectoryExists(Zielverzeichnis) Then + If LogErrorsOnly = False Then ClassLogger.Add(" >> targetPath exisitiert", False) + ' Überprüfen ob der zu Kopieren notwendige Speicherplatz auf Ziellaufwerk vorhanden ist + Dim dvr As New DriveInfo(vWLaufwerk & ":") + Dim freeSpace = dvr.TotalFreeSpace + + Dim info As New FileInfo(filenameQuelle) + ' Get length of the file. + Dim length As Long = info.Length + If freeSpace < length Then + MsgBox(" Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz") + Return -10 + End If + + If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei kopieren von " & filenameQuelle & " nach " & endgültigerDateiname & ".", False) + Dim Connect + Dim Session + Dim WMObject + Dim aFileIO + Dim aWMStream + Dim wmbrwsr + Dim dmsServer As String + If LogErrorsOnly = False Then ClassLogger.Add(" >> Connect definieren: CreateObject('Windream.WMConnect')", False) + Connect = CreateObject("Windream.WMConnect") + aFileIO = New WMOTOOLLib.WMFileIO + 'If My.Settings.DLL_WMOTOOL = "" Then + ' aFileIO = New WMOTOOLLib.WMFileIO + ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Direkter Verweis auf New WMOTOOLLib.WMFileIO", False) + 'Else + ' aFileIO = CreateObject(My.Settings.DLL_WMOTOOL) 'WMOTool.WMFileIO oder WMOTOOLLib.WMFileIO + ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Verwendeter Verweis aus Anwendungsstring: '" & My.Settings.DLL_WMOTOOL & "'", False) + 'End If + + wmbrwsr = CreateObject("WMOBrws.ServerBrowser") '================================================================== - ' create an object + ' get the current DMS-server to log in '================================================================== - WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject) - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER: WMObject konnte nicht erzeugt werden - Error: '" & Err.Description & "'") - 'MsgBox(Err.Description) - End If - ' MsgBox("Created file: " + endgültigerDateiname) - Else - ' wenn auf die Datei zugeriffen werden konnte ist sie bereits vorhanden -> Datum anhängen - If LogErrorsOnly = False Then ClassLogger.Add(" >> Es konnte zugegriffen werden -> DATEI IST BEREITS VORHANDEN", False) - Err.Clear() - - WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject) - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'") - 'MsgBox(Err.Description) - End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> WMObject zugewiesen", False) - End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> ENDGÜLTIGER DATEINAME => " & endgültigerDateiname, False) - If WMObject IsNot Nothing Then - ' lock object for file system access (to change the file itself) - WMObject.lock() - ' set fileIO the local source file - aFileIO.bstrOriginalFileName = filenameQuelle - If Err.Number > 0 Then - 'MsgBox(Err.Number.ToString) - ClassLogger.Add(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - ClassLogger.Add(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'", False) - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - ' MsgBox(Err.Description) - End If - ' open the windream object's file stream for writing - aWMStream = WMObject.OpenStream(STREAM_BinaryObject, WMObjectStreamOpenModeReadWrite) - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - 'MsgBox(Err.Description) - End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> oWMStream erzeugt", False) - ' give fileIO helper object the windream stream - aFileIO.aWMStream = aWMStream - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - 'MsgBox(Err.Description) - End If - ' let fileIO object import the original file into windream - aFileIO.ImportOriginal(True) - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - ' MsgBox(Err.Description) - End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> Inhalt der Datei konnte übertragen werden", False) - ' close the windream file stream - aWMStream.Close() - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - 'MsgBox(Err.Description) - End If - ' save new windream object - WMObject.save() - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return Err.Number - 'MsgBox(Err.Description) + dmsServer = wmbrwsr.GetCurrentServer + '================================================================== + ' create a session + '================================================================== + Session = CreateObject("Windream.WMSession", dmsServer) + '================================================================== + ' login session + '================================================================== + Connect.LoginSession(Session) + Dim LoggedIn = Session.aLoggedin + If LoggedIn Then + If LogErrorsOnly = False Then ClassLogger.Add(" >> Login ok. You are logged in as '" & Connect.UserName & "' on Server '" & dmsServer, False) + 'MsgBox("Login ok. You are logged in as '" + Connect.UserName + "' on Server '" + dmsServer + "'") + Else + ClassLogger.Add(">> Login on dms-Server failed", False) + ' MsgBox("Login failed. ") End If - If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei konnte gespeichert werden", False) - ' unlock the windream object - WMObject.unlock() - If Err.Number > 0 Then - ClassLogger.Add(" FEHLER bei WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") - WMObject.Unlock() - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - Return False - 'MsgBox(Err.Description) + Const WMCOMEventWMSessionNeedIndex = 1 + + 'windream Objekte erstellen ohne Indexierungs-Event + Session.SwitchEvents(WMCOMEventWMSessionNeedIndex, False) + '================================================================== + ' check if files exist + '================================================================== + If LogErrorsOnly = False Then ClassLogger.Add(" >> ÜBERPRÜFTER DATEINAME => " & endgültigerDateiname, False) + Dim wdFilexists As Boolean + If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch auf die Datei in W: zuzugreifen und zu sperren...", False) + wdFilexists = Session.WMObjectExists(WMEntityDocument, endgültigerDateiname, 0, 0) + + If wdFilexists = False Then + If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei ist NICHT vorhanden, kann also einfach neu angelegt werden", False) + Err.Clear() + '================================================================== + ' create an object + '================================================================== + WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject) + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER: WMObject konnte nicht erzeugt werden - Error: '" & Err.Description & "'") + 'MsgBox(Err.Description) + End If + ' MsgBox("Created file: " + endgültigerDateiname) + Else + ' wenn auf die Datei zugeriffen werden konnte ist sie bereits vorhanden -> Datum anhängen + If LogErrorsOnly = False Then ClassLogger.Add(" >> Es konnte zugegriffen werden -> DATEI IST BEREITS VORHANDEN", False) + Err.Clear() + + WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject) + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'") + 'MsgBox(Err.Description) + End If + If LogErrorsOnly = False Then ClassLogger.Add(" >> WMObject zugewiesen", False) End If - 'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist - Dim info2 As New FileInfo(vWLaufwerk & ":\" & endgültigerDateiname) - Dim length1 As Long = info2.Length - If length1 > 0 And Err.Number = 0 Then - If endgültigerDateiname.StartsWith("\") Then - If endgültigerDateiname.StartsWith("\\") Then - endgültigerDateiname = endgültigerDateiname.Replace("\\", "\") + If LogErrorsOnly = False Then ClassLogger.Add(" >> ENDGÜLTIGER DATEINAME => " & endgültigerDateiname, False) + If WMObject IsNot Nothing Then + ' lock object for file system access (to change the file itself) + WMObject.lock() + ' set fileIO the local source file + aFileIO.bstrOriginalFileName = filenameQuelle + If Err.Number > 0 Then + 'MsgBox(Err.Number.ToString) + ClassLogger.Add(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + ClassLogger.Add(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'", False) + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + ' MsgBox(Err.Description) + End If + ' open the windream object's file stream for writing + aWMStream = WMObject.OpenStream(STREAM_BinaryObject, WMObjectStreamOpenModeReadWrite) + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + 'MsgBox(Err.Description) + End If + If LogErrorsOnly = False Then ClassLogger.Add(" >> oWMStream erzeugt", False) + ' give fileIO helper object the windream stream + aFileIO.aWMStream = aWMStream + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + 'MsgBox(Err.Description) + End If + ' let fileIO object import the original file into windream + aFileIO.ImportOriginal(True) + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + ' MsgBox(Err.Description) + End If + If LogErrorsOnly = False Then ClassLogger.Add(" >> Inhalt der Datei konnte übertragen werden", False) + ' close the windream file stream + aWMStream.Close() + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + 'MsgBox(Err.Description) + End If + ' save new windream object + WMObject.save() + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return Err.Number + 'MsgBox(Err.Description) + End If + If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei konnte gespeichert werden", False) + ' unlock the windream object + WMObject.unlock() + If Err.Number > 0 Then + ClassLogger.Add(" FEHLER bei WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'") + WMObject.Unlock() + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + Return False + 'MsgBox(Err.Description) + End If + 'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist + Dim info2 As New FileInfo(vWLaufwerk & ":\" & endgültigerDateiname) + Dim length1 As Long = info2.Length + If length1 > 0 And Err.Number = 0 Then + If endgültigerDateiname.StartsWith("\") Then + If endgültigerDateiname.StartsWith("\\") Then + endgültigerDateiname = endgültigerDateiname.Replace("\\", "\") + Else + endgültigerDateiname = endgültigerDateiname + End If Else - endgültigerDateiname = endgültigerDateiname + endgültigerDateiname = "\" & endgültigerDateiname End If + CURRENT_FILEIN_WD = vWLaufwerk & ":" & endgültigerDateiname + ClassLogger.Add(">> File '" & CURRENT_FILEIN_WD & "' was imported.", False) + aktWMObject = WMObject + Return True Else - endgültigerDateiname = "\" & endgültigerDateiname - End If - CURRENT_FILEIN_WD = vWLaufwerk & ":" & endgültigerDateiname - ClassLogger.Add(">> File '" & CURRENT_FILEIN_WD & "' was imported.", False) - aktWMObject = WMObject - Return True - Else - If length = 0 Then - If ImportAll = False Then - System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) - ClassLogger.Add(" Error in Stream File - FileLength = 0, File " & CURRENT_FILEIN_WD & " was deleted") - Return False - Else - If endgültigerDateiname.StartsWith("\") Then - If endgültigerDateiname.StartsWith("\\") Then - endgültigerDateiname = endgültigerDateiname.Replace("\\", "\") + If length = 0 Then + If ImportAll = False Then + System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname) + ClassLogger.Add(" Error in Stream File - FileLength = 0, File " & CURRENT_FILEIN_WD & " was deleted") + Return False + Else + If endgültigerDateiname.StartsWith("\") Then + If endgültigerDateiname.StartsWith("\\") Then + endgültigerDateiname = endgültigerDateiname.Replace("\\", "\") + Else + endgültigerDateiname = endgültigerDateiname + End If Else - endgültigerDateiname = endgültigerDateiname + endgültigerDateiname = "\" & endgültigerDateiname End If - Else - endgültigerDateiname = "\" & endgültigerDateiname + ClassLogger.Add(">> ATTENTION in Stream File - FileLength = 0, File " & CURRENT_FILEIN_WD & " will be imported") + CURRENT_FILEIN_WD = vWLaufwerk & ":" & endgültigerDateiname + '### + If CURRENT_FILEIN_WD.Contains("\\") Then + CURRENT_FILEIN_WD = CURRENT_FILEIN_WD.Replace("\\", "\") + End If + '### + ClassLogger.Add(">> File '" & CURRENT_FILEIN_WD & "' was imported.", False) + aktWMObject = WMObject + Return True End If - ClassLogger.Add(">> ATTENTION in Stream File - FileLength = 0, File " & CURRENT_FILEIN_WD & " will be imported") - CURRENT_FILEIN_WD = vWLaufwerk & ":" & endgültigerDateiname - ClassLogger.Add(">> File '" & CURRENT_FILEIN_WD & "' was imported.", False) - aktWMObject = WMObject - Return True + + Else + ClassLogger.Add("Error in Stream File - Error <> 0") + Return False End If - - Else - ClassLogger.Add("Error in Stream File - Error <> 0") - Return False - End If + End If + Else + Return False End If Else + If LogErrorsOnly = False Then ClassLogger.Add(" >> targetPath exisitiert NICHT", False) Return False End If - Else - If LogErrorsOnly = False Then ClassLogger.Add(" >> targetPath exisitiert NICHT", False) + Catch ex As Exception + MsgBox("Unexpected Error in Stream File: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False - End If + End Try + End Function ''' @@ -782,7 +793,7 @@ Public Class ClassWindream ''' neuer Name der zu indexierenden Datei ''' Liefert True wenn das Indexieren erfolgreich war, sonst False ''' - Public Shared Function IndexFile(ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String) + Public Shared Function IndexFile(ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String, Optional outside As Boolean = False, Optional _objecttype As String = "") Try If LogErrorsOnly = False Then ClassLogger.Add(" >> IndexFile ('" & WD_File & "','" & _Indexname & "','" & _Value & "') was called!", False) @@ -796,6 +807,11 @@ Public Class ClassWindream 'MsgBox("IndexFile:" & vbNewLine & ClassDateiimportWindream.GetWindreamDriveLetter & filenameZiel & vbNewLine & Me.selectedProfile.DokumenttypString) ' den Dokumenttyp schreiben If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexing will be started", False) + If outside = True Then + _WDObjekttyp = _objecttype + aktWMObject = Nothing + aktWMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File) 'WINDREAMLib.WMEntity.WMEntityDocument + End If ' ein windream-Objekt der Datei anlegen WMObject = aktWMObject 'oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File) Try @@ -1122,42 +1138,14 @@ Public Class ClassWindream If Anzahl = 1 Then If LogErrorsOnly = False Then ClassLogger.Add(" >> Vectorfield will be filled with ONE VALUE", False) ReDim myArray(0) - Select Case vType - Case 36865 - 'Umwandeln in String - myArray(0) = CStr(value) - Case 4097 - 'Umwandeln in String - myArray(0) = CStr(value) - Case 4098 - 'Umwandeln in Integer - value = value.ToString.Replace(" ", "") - myArray(0) = CInt(value) - Case 4099 - Dim Str As String = value - Str = Str.ToString.Replace(" ", "") - 'Umwandeln in Double - myArray(0) = CDbl(Str.Replace(".", ",")) - Case 4101 - 'Umwandeln in Date - myArray(0) = CDate(value) - Case 4107 - myArray(0) = Convert.ToInt64(value) - Case 4103 - 'Umwandeln in Datum Uhrzeit - myArray(0) = value - Case Else - 'Umwandeln in String - myArray(0) = CStr(value) - End Select - + myArray(0) = Convert_VectorType(vType, value) 'Jetzt überprüfen ob Werte in Vektorfeld angefügt oder überschrieben werden sollen If LogErrorsOnly = False Then ClassLogger.Add(" >> Converted Value: " & myArray(0).ToString, False) Dim VektorArray() - VektorArray = Return_VektorArray(oDocument, aName, myArray) + VektorArray = Return_VektorArray(oDocument, aName, myArray, vType) If VektorArray Is Nothing = False Then - 'ReDim myArray(VektorArray.Length - 1) - ' Array.Copy(VektorArray, myArray, VektorArray.Length) + ReDim myArray(VektorArray.Length - 1) + Array.Copy(VektorArray, myArray, VektorArray.Length) 'Jetzt die Nachindexierung für Vektor-Felder oDocument.SetVariableValue(aName, myArray) ' If LogErrorsOnly = False Then @@ -1307,7 +1295,7 @@ Public Class ClassWindream Return False End Try End Function - Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, arr_Indexwerte As Object) + Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, arr_Indexwerte As Object, vType As Object) Try Dim missing As Boolean = False Dim Anzahl As Integer = 0 @@ -1323,7 +1311,7 @@ Public Class ClassWindream 'Erst die ALten Werte schreiben ReDim Preserve ValueArray(Anzahl) 'Den Wert im Array speichern - ValueArray(Anzahl) = WDValue.ToString + ValueArray(Anzahl) = Convert_VectorType(vType, WDValue) Anzahl += 1 End If Next @@ -1334,7 +1322,7 @@ Public Class ClassWindream 'Das Array anpassen ReDim Preserve ValueArray(Anzahl) 'Den Wert im Array speichern - ValueArray(Anzahl) = NewValue.ToString + ValueArray(Anzahl) = Convert_VectorType(vType, NewValue) Anzahl += 1 Else ClassLogger.Add(" >> Value '" & NewValue.ToString & "' already existing in vectorfield", False) @@ -1353,7 +1341,7 @@ Public Class ClassWindream 'Das Array anpassen ReDim Preserve ValueArray(Anzahl) 'Den Wert im Array speichern - ValueArray(Anzahl) = NewValue.ToString + ValueArray(Anzahl) = Convert_VectorType(vType, NewValue) Anzahl += 1 Else ClassLogger.Add(" >> Value '" & NewValue.ToString & "' already existing in Array", False) @@ -1362,7 +1350,7 @@ Public Class ClassWindream 'Das Array anpassen ReDim Preserve ValueArray(Anzahl) 'Den Wert im Array speichern - ValueArray(Anzahl) = NewValue.ToString + ValueArray(Anzahl) = Convert_VectorType(vType, NewValue) Anzahl += 1 End If @@ -1380,7 +1368,36 @@ Public Class ClassWindream End Function - + Private Shared Function Convert_VectorType(vType As Object, value As String) + Select Case vType + Case 36865 + 'Umwandeln in String + Return CStr(value) + Case 4097 + 'Umwandeln in String + Return CStr(value) + Case 4098 + 'Umwandeln in Integer + value = value.ToString.Replace(" ", "") + Return CInt(value) + Case 4099 + Dim Str As String = value + Str = Str.ToString.Replace(" ", "") + 'Umwandeln in Double + Return CDbl(Str.Replace(".", ",")) + Case 4101 + 'Umwandeln in Date + Return CDate(value) + Case 4107 + Return Convert.ToInt64(value) + Case 4103 + 'Umwandeln in Datum Uhrzeit + Return value + Case Else + 'Umwandeln in String + Return CStr(value) + End Select + End Function Private Shared Function IsNotEmpty(ByVal aValue As Object) If aValue IsNot Nothing Then diff --git a/app/DD-Record-Organiser/DD-Record-Organiser.vbproj b/app/DD-Record-Organiser/DD-Record-Organiser.vbproj index 80428af..e12cd35 100644 --- a/app/DD-Record-Organiser/DD-Record-Organiser.vbproj +++ b/app/DD-Record-Organiser/DD-Record-Organiser.vbproj @@ -589,10 +589,10 @@ Form - - frmWD_Index_Dokart.vb + + frmWD_IndexFile.vb - + Form @@ -672,6 +672,9 @@ frmRecordView.vb + + frmWD_Link_to_Record.vb + frmWD_Link_to_Record.vb @@ -907,11 +910,11 @@ frmWD_EntityImport.vb - - frmWD_Index_Dokart.vb + + frmWD_IndexFile.vb - - frmWD_Index_Dokart.vb + + frmWD_IndexFile.vb frmTask_Editor.vb diff --git a/app/DD-Record-Organiser/My Project/AssemblyInfo.vb b/app/DD-Record-Organiser/My Project/AssemblyInfo.vb index 86fe1fa..30f8c7e 100644 --- a/app/DD-Record-Organiser/My Project/AssemblyInfo.vb +++ b/app/DD-Record-Organiser/My Project/AssemblyInfo.vb @@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + \ No newline at end of file diff --git a/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb b/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb index 0d889ef..8c2e590 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb @@ -132,6 +132,7 @@ Partial Class frmConstructor_Main Me.tsButtonCancel = New System.Windows.Forms.ToolStripButton() Me.tslblLocked = New System.Windows.Forms.ToolStripLabel() Me.tslblFileslocked = New System.Windows.Forms.ToolStripLabel() + Me.SplitContainer1 = New DevExpress.XtraEditors.SplitContainerControl() Me.BindingSource_Entity = New System.Windows.Forms.BindingSource(Me.components) Me.NavPane = New DevExpress.XtraBars.Navigation.TileNavPane() Me.NavButtonHome = New DevExpress.XtraBars.Navigation.NavButton() @@ -181,6 +182,8 @@ Partial Class frmConstructor_Main CType(Me.BindingNavigatorPOS, System.ComponentModel.ISupportInitialize).BeginInit() Me.BindingNavigatorPOS.SuspendLayout() Me.ToolStripEdit.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.SuspendLayout() CType(Me.BindingSource_Entity, System.ComponentModel.ISupportInitialize).BeginInit() Me.StatusStrip_Main.SuspendLayout() CType(Me.DD_ECMAdmin, System.ComponentModel.ISupportInitialize).BeginInit() @@ -505,6 +508,7 @@ Partial Class frmConstructor_Main ' 'DateiMitDatensatzVerknüpfenToolStripMenuItem ' + Me.DateiMitDatensatzVerknüpfenToolStripMenuItem.Image = Global.DD_Record_Organiser.My.Resources.Resources.Link Me.DateiMitDatensatzVerknüpfenToolStripMenuItem.Name = "DateiMitDatensatzVerknüpfenToolStripMenuItem" resources.ApplyResources(Me.DateiMitDatensatzVerknüpfenToolStripMenuItem, "DateiMitDatensatzVerknüpfenToolStripMenuItem") ' @@ -897,6 +901,18 @@ Partial Class frmConstructor_Main Me.tslblFileslocked.Name = "tslblFileslocked" resources.ApplyResources(Me.tslblFileslocked, "tslblFileslocked") ' + 'SplitContainer1 + ' + Me.SplitContainer1.Collapsed = True + Me.SplitContainer1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel1 + resources.ApplyResources(Me.SplitContainer1, "SplitContainer1") + Me.SplitContainer1.Name = "SplitContainer1" + resources.ApplyResources(Me.SplitContainer1.Panel1, "SplitContainer1.Panel1") + Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainerMain) + resources.ApplyResources(Me.SplitContainer1.Panel2, "SplitContainer1.Panel2") + Me.SplitContainer1.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel2 + Me.SplitContainer1.SplitterPosition = 302 + ' 'NavPane ' Me.NavPane.ButtonPadding = New System.Windows.Forms.Padding(12) @@ -1039,7 +1055,7 @@ Partial Class frmConstructor_Main ' resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.SplitContainerMain) + Me.Controls.Add(Me.SplitContainer1) Me.Controls.Add(Me.StatusStrip_Main) Me.Controls.Add(Me.NavPane) Me.Name = "frmConstructor_Main" @@ -1079,6 +1095,8 @@ Partial Class frmConstructor_Main Me.BindingNavigatorPOS.PerformLayout() Me.ToolStripEdit.ResumeLayout(False) Me.ToolStripEdit.PerformLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) CType(Me.BindingSource_Entity, System.ComponentModel.ISupportInitialize).EndInit() Me.StatusStrip_Main.ResumeLayout(False) Me.StatusStrip_Main.PerformLayout() @@ -1218,4 +1236,5 @@ Partial Class frmConstructor_Main Friend WithEvents UmbenennenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ToolStripTextBox2 As System.Windows.Forms.ToolStripTextBox Friend WithEvents DateiMitDatensatzVerknüpfenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SplitContainer1 As DevExpress.XtraEditors.SplitContainerControl End Class diff --git a/app/DD-Record-Organiser/frmConstructor_Main.en-US.resx b/app/DD-Record-Organiser/frmConstructor_Main.en-US.resx index f912718..f425b4c 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.en-US.resx +++ b/app/DD-Record-Organiser/frmConstructor_Main.en-US.resx @@ -358,49 +358,55 @@ Default - 127, 22 + 209, 22 Open file - 124, 6 + 206, 6 - 127, 22 + 209, 22 Copy file - 124, 6 + 206, 6 - 127, 22 + 209, 22 Rename - 124, 6 + 206, 6 - 127, 22 + 209, 22 Delete file - 124, 6 + 206, 6 - 127, 22 + 209, 22 Properties + + 209, 22 + + + Link file with other record + - 128, 138 + 210, 160 diff --git a/app/DD-Record-Organiser/frmConstructor_Main.resx b/app/DD-Record-Organiser/frmConstructor_Main.resx index ce703c2..0fd417d 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.resx +++ b/app/DD-Record-Organiser/frmConstructor_Main.resx @@ -123,7 +123,7 @@ - 0, 40 + 0, 0 Fill @@ -310,7 +310,7 @@ 0, 0 - 788, 237 + 795, 237 0 @@ -379,7 +379,7 @@ 0, 0 - 1081, 345 + 1077, 349 0 @@ -397,7 +397,7 @@ 0 - 1081, 345 + 1077, 349 Detailansicht @@ -415,7 +415,7 @@ 0 - 1083, 373 + 1083, 380 1 @@ -444,6 +444,9 @@ 350, 23 + + HIt Return to change name + 239, 22 @@ -493,7 +496,7 @@ 192, 255, 192 - 1077, 324 + 1072, 324 7 @@ -554,7 +557,7 @@ 0, 0 - 1077, 25 + 1072, 25 2 @@ -575,7 +578,7 @@ 1 - 1077, 349 + 1072, 349 windream-Dateien @@ -1006,7 +1009,7 @@ 2 - 1077, 349 + 1072, 349 Wiedervorlage @@ -1033,7 +1036,7 @@ Cyan - 1077, 324 + 1072, 324 0 @@ -1057,7 +1060,7 @@ 0, 25 - 1077, 324 + 1072, 324 2 @@ -1232,7 +1235,7 @@ 0, 0 - 1077, 25 + 1072, 25 1 @@ -1261,7 +1264,7 @@ - 1077, 349 + 1072, 349 Positionen @@ -1524,9 +1527,42 @@ DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - $this + SplitContainer1.Panel2 + 0 + + + Fill + + + 0, 40 + + + Panel1 + + + Panel2 + + + 1083, 647 + + + 4 + + + SplitContainerControl1 + + + SplitContainer1 + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this + + 4 diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb index a780ce2..8a09924 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.vb @@ -13,9 +13,8 @@ Imports WINDREAMLib Imports System.Runtime.InteropServices Public Class frmConstructor_Main - Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable - Private DT_ENTITY_DATA As DataTable - Private DT_FORM As DataTable + + Private Const SEE_MASK_INVOKEIDLIST = &HC Private Const SEE_MASK_NOCLOSEPROCESS = &H40 Private Const SEE_MASK_FLAG_NO_UI = &H400 @@ -46,6 +45,13 @@ Public Class frmConstructor_Main Private CONSTRUCTORID As Integer Private CONSTRUCTOR_DETAIL_ID As Integer Private DT_CONSTRUCT_VIEW As DataTable + Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable + Private DT_ENTITY_DATA As DataTable + Private DT_FORM As DataTable + Private DT_TREEVIEW_PER_CONTROLS As DataTable + + Private CONTROL_NAVIGATION As Boolean = False + Private EBENE2_PARENT_ID As Integer Private EBENE3_PARENT_ID As Integer Private ACT_EBENE As Integer @@ -56,6 +62,8 @@ Public Class frmConstructor_Main Private POS_SQL As String = "" Private POS_RECORD_ID + Private TreeView_perControl As Boolean = False + Dim IsTopFirstRow As Boolean = True Private RightMouse_Clicked = False @@ -119,10 +127,12 @@ Public Class frmConstructor_Main Private FOLLOW_UPisActive As Boolean = False Private DT_FU_Record As DataTable Private DT_FU_ENTITY As DataTable - Private gridGUID = 2 + ' Private gridGUID = 2 Private COL_ARRAY_RESULTLIST As List(Of String) Private DT_WINDREAM_RESULTLIST_DEF As DataTable Private DT_WINDREAM_RESULTLIST As DataTable + Private DT_RESULTLIST_OPTIONS As DataTable + Private USER_RESULTLIST_CONFIG_GUID As Integer = 0 Private DT_TBPMO_FORM_VIEW As DataTable @@ -148,6 +158,7 @@ Public Class frmConstructor_Main Private _ENTITYSTRING As String Private RESULT_DOC_PATH + Private RESULT_OBJECTTYPE Private BACKGROUND_HELPER As ClassBackgroundHelper @@ -224,41 +235,51 @@ Public Class frmConstructor_Main FormDesignerToolStripMenuItem.Visible = False End If - Try - 'SplitCont_Details.Collapsed = True - CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID - ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN") - VWPMO_WF_USER_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString - Me.TBPMO_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString - Me.VWPMO_WF_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString - Dim SQL = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ - "FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, CONSTRUCTORID) - - DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL) - DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID) - Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID) - DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1) - - If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then - 'Load Input Grid - Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE") - 'Die Standards ein/ausblenden - End If - Load_Tree_View(CONSTRUCTORID) - - Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG" - DT_WINDREAM_RESULTLIST_DEF = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG") + 'Try + ''SplitCont_Details.Collapsed = True + 'CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID + ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN") + VWPMO_WF_USER_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString + Me.TBPMO_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString + Me.VWPMO_WF_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString + Dim SQL = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ + "FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, CONSTRUCTORID) + + DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL) + SQL = String.Format("select * from TBPMO_STRUCTURE_NODES where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID) + Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL) + If DT.Rows.Count > 1 Then + TreeView_perControl = True + DT_TREEVIEW_PER_CONTROLS = DT + Me.SplitContainerTop.Panel1.Controls.Remove(Me.TreeViewMain) + Me.SplitContainer1.Panel1.Controls.Add(Me.TreeViewMain) + SplitContainer1.Collapsed = False + SplitContainer1.PanelVisibility = SplitPanelVisibility.Both + SplitContainerTop.Collapsed = True + SplitContainerTop.PanelVisibility = SplitPanelVisibility.Panel2 + CONTROL_NAVIGATION = True + End If + DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID) + Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID) + DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1) + + If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then + 'Load Input Grid + Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE") + 'Die Standards ein/ausblenden + End If + Load_Tree_View(CONSTRUCTORID) - FORM_LOADED = True - Dim elapsed As Double - elapsed = sw.Elapsed.TotalSeconds - sw.Stop() - sw.Reset() - If LogErrorsOnly = False Then ClassLogger.Add(" >> Form Load took " & Format(elapsed, "0.000000000") & " seconds", False) - Catch ex As System.Exception - MsgBox("Error while Loading Form part 2" & vbNewLine & ex.Message, MsgBoxStyle.Critical) - 'System.Windows.Forms.MessageBox.Show(ex.Message) - End Try + FORM_LOADED = True + Dim elapsed As Double + elapsed = sw.Elapsed.TotalSeconds + sw.Stop() + sw.Reset() + If LogErrorsOnly = False Then ClassLogger.Add(" >> Form Load took " & Format(elapsed, "0.000000000") & " seconds", False) + 'Catch ex As System.Exception + ' MsgBox("Error while Loading Form part 2" & vbNewLine & ex.Message, MsgBoxStyle.Critical) + ' 'System.Windows.Forms.MessageBox.Show(ex.Message) + 'End Try Me.Cursor = Cursors.Default End Sub @@ -368,7 +389,12 @@ Public Class frmConstructor_Main Case "SplitViewTopSplitterPosition" SplitContainerTop.SplitterPosition = Integer.Parse(setting._value) Case "SplitViewMainSplitterPosition" - SplitContainerMain.SplitterPosition = Integer.Parse(setting._value) + If CONTROL_NAVIGATION = False Then + SplitContainerMain.SplitterPosition = Integer.Parse(setting._value) + Else + SplitContainer1.SplitterPosition = Integer.Parse(setting._value) + End If + End Select Next Catch ex As Exception @@ -381,8 +407,14 @@ Public Class frmConstructor_Main Dim XMLPath = Get_Splitter_Layout_Filename() Dim layout As New ClassLayout(XMLPath) Dim settings As New System.Collections.Generic.List(Of ClassSetting) - settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition)) - settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)) + If CONTROL_NAVIGATION = False Then + settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition)) + settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)) + Else + settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition)) + settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainer1.SplitterPosition)) + End If + layout.Save(settings) Catch ex As Exception MsgBox("Error in Save_Splitter_Layout:" & vbNewLine & ex.Message) @@ -1014,81 +1046,163 @@ Public Class frmConstructor_Main Dim sw As New SW("Load_Tree_View") TreeViewMain.Nodes.Clear() - - ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS - Dim query1 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() - Select form - Order By form.Item("SEQUENCE") - Where form.Item("PARENT_ID") = 0 - - Dim Rows1 = query1.ToList() - - For Each Row1 In Rows1 - - Dim LEVEL1_NODE As TreeNode - Dim LEVEL2_NODE As TreeNode - Dim LEVEL3_NODE As TreeNode - - Dim LEVEL1_TITLE = Row1.Item("CAPTION").ToString - Dim LEVEL1_ID = Row1.Item("FORM_ID").ToString - + If CONTROL_NAVIGATION = True Then ' Rootnode erstellen und taggen - LEVEL1_NODE = New TreeNode(LEVEL1_TITLE) - LEVEL1_NODE.Tag = LEVEL1_ID - - ' TreeView Rootnode einfügen - TreeViewMain.Nodes.Add(LEVEL1_NODE) - + If DT_TREEVIEW_PER_CONTROLS.Rows.Count > 1 Then + ' Presuming the DataTable has a column named ENTITY_ID and TYPE_NODE. + Dim expression As String + expression = "TYPE_NODE = 1" + Dim foundRowsLevel1() As DataRow + ' Use the Select method to find all rows matching the filter. + foundRowsLevel1 = DT_TREEVIEW_PER_CONTROLS.Select(expression) + Dim i As Integer + ' For each row create a Node + For i = 0 To foundRowsLevel1.GetUpperBound(0) + Dim ID = foundRowsLevel1(i)("GUID") + Dim LevelEntity = foundRowsLevel1(i)("ENTITY_ID") + Dim controlID = foundRowsLevel1(i)("CONTROL_ID") + Dim nodetext = foundRowsLevel1(i)("ID2") + Dim LEVEL1_NODE As TreeNode + LEVEL1_NODE = New TreeNode(nodetext) + LEVEL1_NODE.Tag = LevelEntity & "CONTROL-ID" & controlID.ToString + TreeViewMain.Nodes.Add(LEVEL1_NODE) + '### LEVEL 2 laden ####### + Dim expressionLevel2 As String + expressionLevel2 = "TYPE_NODE = 2 AND PARENT_GUID = " & ID 'Einschränkung auf Type 2 und Parent_Guid + Dim foundRowsLevel2() As DataRow + foundRowsLevel2 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel2) + Dim j As Integer + For j = 0 To foundRowsLevel2.GetUpperBound(0) + Dim ID2 = foundRowsLevel2(j)("GUID") + Dim LevelEntity2 = foundRowsLevel2(j)("ENTITY_ID") + Dim controlID2 = foundRowsLevel2(j)("CONTROL_ID") + Dim nodetext2 = foundRowsLevel2(j)("ID2") + ' Node erstellen.. + Dim LEVEL2_NODE As TreeNode + LEVEL2_NODE = New TreeNode(nodetext2) + LEVEL2_NODE.Tag = LevelEntity2 & "CONTROL-ID" & controlID2.ToString + ' ..und einfügen + LEVEL1_NODE.Nodes.Add(LEVEL2_NODE) + '### LEVEL 3 laden ####### + Dim expressionLevel3 As String + expressionLevel3 = "TYPE_NODE = 3 AND PARENT_GUID = " & ID2 'Einschränkung auf Type und Parent_Guid + Dim foundRowsLevel3() As DataRow + foundRowsLevel3 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel3) + Dim k As Integer + For k = 0 To foundRowsLevel3.GetUpperBound(0) + Dim ID3 = foundRowsLevel3(k)("GUID") + Dim LevelEntity3 = foundRowsLevel3(k)("ENTITY_ID") + Dim controlID3 = foundRowsLevel3(k)("CONTROL_ID") + Dim nodetext3 = foundRowsLevel3(k)("ID2") + ' Node erstellen.. + Dim LEVEL3_NODE As TreeNode + LEVEL3_NODE = New TreeNode(nodetext3) + LEVEL3_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID3.ToString + ' ..und einfügen + LEVEL2_NODE.Nodes.Add(LEVEL3_NODE) + Next k + + Next j + '### Level 2 Ende ######## + Next i + Else + MsgBox("Check the Control Navigation Option or inform Digital Data!", MsgBoxStyle.Critical) + Me.Close() + End If + Else ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS - Dim query2 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Dim query1 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() Select form Order By form.Item("SEQUENCE") - Where form.Item("PARENT_ID") = LEVEL1_ID + Where form.Item("PARENT_ID") = 0 - Dim Rows2 = query2.ToList() + Dim Rows1 = query1.ToList() - For Each Row2 In Rows2 + For Each LEVEL1ROW In Rows1 + Dim LEVEL1_NODE As TreeNode - Dim LEVEL2_TITLE As String = Row2.Item("CAPTION").ToString - Dim LEVEL2_ID As Integer = Row2.Item("FORM_ID") - Dim LEVEL2_PARENT_ID As Integer = Row2.Item("PARENT_ID") + Dim LEVEL3_NODE As TreeNode - ' Node erstellen.. - LEVEL2_NODE = New TreeNode(LEVEL2_TITLE) - LEVEL2_NODE.Tag = LEVEL2_ID - ' ..und einfügen - LEVEL1_NODE.Nodes.Add(LEVEL2_NODE) + '################## LEVEL 1 wird geladen ########################### + Dim LEVEL1_TITLE = LEVEL1ROW.Item("CAPTION").ToString + Dim NODE1_ENTITY_ID = LEVEL1ROW.Item("FORM_ID").ToString + Dim ENTITY_ID = LEVEL1ROW.Item("FORM_ID") + ' Rootnode erstellen und taggen + LEVEL1_NODE = New TreeNode(LEVEL1_TITLE) + LEVEL1_NODE.Tag = NODE1_ENTITY_ID + ' TreeView Rootnode einfügen + TreeViewMain.Nodes.Add(LEVEL1_NODE) - ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS - Dim query3 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() - Select form - Order By form.Item("SEQUENCE") - Where form.Item("PARENT_ID") = LEVEL2_ID + '################## LEVEL 2 wird geladen ######### + Dim LEVEL2_NODE As TreeNode - Dim Rows3 = query3.ToList() + Dim query2 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = NODE1_ENTITY_ID - For Each Row3 In Rows3 + Dim Rows2 = query2.ToList() + For Each Row2 In Rows2 - Dim LEVEL3_TITLE As String = Row3.Item("CAPTION") - Dim LEVEL3_ID As Integer = Row3.Item("FORM_ID") + Dim LEVEL2_TITLE As String = Row2.Item("CAPTION").ToString + Dim LEVEL2_ID As Integer = Row2.Item("FORM_ID") + Dim LEVEL2_PARENT_ID As Integer = Row2.Item("PARENT_ID") ' Node erstellen.. - LEVEL3_NODE = New TreeNode(LEVEL3_TITLE) - LEVEL3_NODE.Tag = LEVEL3_ID + LEVEL2_NODE = New TreeNode(LEVEL2_TITLE) + LEVEL2_NODE.Tag = LEVEL2_ID ' ..und einfügen - LEVEL2_NODE.Nodes.Add(LEVEL3_NODE) + LEVEL1_NODE.Nodes.Add(LEVEL2_NODE) + '##### LEVEL 3 wird geladen ######### + Dim query3 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = LEVEL2_ID - Next + Dim Rows3 = query3.ToList() + + For Each Row3 In Rows3 + Dim LEVEL3_TITLE As String = Row3.Item("CAPTION") + Dim LEVEL3_ID As Integer = Row3.Item("FORM_ID") + + ' Node erstellen.. + LEVEL3_NODE = New TreeNode(LEVEL3_TITLE) + LEVEL3_NODE.Tag = LEVEL3_ID + ' ..und einfügen + LEVEL2_NODE.Nodes.Add(LEVEL3_NODE) + + Next + Next Next + End If - Next TreeViewMain.ExpandAll() TreeViewMain.Nodes(0).EnsureVisible() sw.Done() End Sub + + Sub Create_variable_node() + + End Sub + Private Function Return_ENTITY_FOR_TAG(NodeString As String) + If IsNumeric(NodeString) Then + Return NodeString + Else + If NodeString.Contains("CONTROL-ID") Then + Try + Dim _index = NodeString.IndexOf("C") + Dim Entity = NodeString.Substring(0, _index) + Return Entity + Catch ex As Exception + ClassLogger.Add("Unexpected Error in Return_ENTITY_FOR_TAG ('" & NodeString & "'): " & ex.Message, True) + Return 0 + End Try + End If + End If + End Function Sub Load_Tree_View_Data() Try Dim sw As New Stopwatch @@ -1097,7 +1211,7 @@ Public Class frmConstructor_Main If SelectedNode IsNot Nothing Then ENTITY_LOADED = False - ENTITY_ID = SelectedNode.Tag + ENTITY_ID = Return_ENTITY_FOR_TAG(SelectedNode.Tag) CURRENT_FORM_ID = ENTITY_ID Dim parentNode As TreeNode = TryCast(SelectedNode.Parent, TreeNode) @@ -1119,32 +1233,32 @@ Public Class frmConstructor_Main Where form.Item("FORM_ID") = ENTITY_ID).Single() CONSTRUCTOR_DETAIL_ID = result.Item("GUID") - 'Dim Sql = "SELECT GUID from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID - 'CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar(Sql, True) - Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID - Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG") - If DT.Rows.Count = 1 Then - USER_RESULTLIST_CONFIG_GUID = DT.Rows(0).Item(0) - DT_WINDREAM_RESULTLIST = Nothing - DT_WINDREAM_RESULTLIST = DT - Else - USER_RESULTLIST_CONFIG_GUID = 0 - If USER_LANGUAGE <> "de-DE" Then - 'Grid wird in englisch dargestellt! - gridGUID = 3 - End If - Dim filteredDatatable = DT_WINDREAM_RESULTLIST_DEF.Copy() - For Each row As DataRow In filteredDatatable.Rows - If row.Item(0) <> gridGUID Then - row.Delete() - End If - Next - filteredDatatable.AcceptChanges() - If filteredDatatable.Rows.Count = 1 Then - DT_WINDREAM_RESULTLIST = Nothing - DT_WINDREAM_RESULTLIST = filteredDatatable - End If - End If + + 'DT_WINDREAM_RESULTLIST = DT_WINDREAM_RESULTLIST_DEF + 'Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID + 'Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG") + 'If DT.Rows.Count = 1 Then + ' USER_RESULTLIST_CONFIG_GUID = DT.Rows(0).Item(0) + ' DT_WINDREAM_RESULTLIST = Nothing + ' DT_WINDREAM_RESULTLIST = DT + 'Else + ' USER_RESULTLIST_CONFIG_GUID = 0 + 'If USER_LANGUAGE <> "de-DE" Then + ' 'Grid wird in englisch dargestellt! + ' gridGUID = 3 + 'End If + 'Dim filteredDatatable = DT_WINDREAM_RESULTLIST_DEF.Copy() + 'For Each row As DataRow In filteredDatatable.Rows + ' If row.Item(0) <> gridGUID Then + ' row.Delete() + ' End If + 'Next + 'filteredDatatable.AcceptChanges() + 'If filteredDatatable.Rows.Count = 1 Then + 'DT_WINDREAM_RESULTLIST = Nothing + 'DT_WINDREAM_RESULTLIST = filteredDatatable + 'End If + 'End If Dim elapsed As Double elapsed = sw.Elapsed.TotalSeconds If LogErrorsOnly = False Then ClassLogger.Add(" >> Load_Tree_View_Data1 took " & Format(elapsed, "0.000000000") & " seconds", False) @@ -1171,7 +1285,7 @@ Public Class frmConstructor_Main Dim PARENT_ID1 As Integer Dim TYPE_ID1 As Integer If a = 0 Then - Dim sql As String = "SELECT PARENT_ID, FORM_TYPE_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & childNodeLevel1.Tag & " AND SCREEN_ID = " & CURRENT_SCREEN_ID + Dim sql As String = "SELECT PARENT_ID, FORM_TYPE_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & Return_ENTITY_FOR_TAG(childNodeLevel1.Tag) & " AND SCREEN_ID = " & CURRENT_SCREEN_ID Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "ShowNodeAmounts") PARENT_ID1 = DT.Rows(0).Item(0) TYPE_ID1 = DT.Rows(0).Item(1) @@ -1180,7 +1294,7 @@ Public Class frmConstructor_Main If childNodeLevel1.Text = "Allgemein" Then Console.WriteLine("Allgemein-Reiter") End If - Dim result As Integer = ReturnAmountofRecords(childNodeLevel1.Tag) + Dim result As Integer = ReturnAmountofRecords(Return_ENTITY_FOR_TAG(childNodeLevel1.Tag)) If result <> 99999999 Then Dim origtext As String = childNodeLevel1.Text If origtext.Contains(" (") Then @@ -1661,7 +1775,12 @@ Public Class frmConstructor_Main DisableEditMode() Load_Entity_Data(ACT_EBENE) RECORD_CHANGED = False - + Else + msg = "Der Datensatz '" & SELECTED_RECORD_ID & "' konnte nicht gelöscht werden. Überprüfen Sie das log" + If USER_LANGUAGE <> "de-DE" Then + msg = "The record '" & SELECTED_RECORD_ID & "' could not be deleted. Check the log" + End If + MsgBox(msg, MsgBoxStyle.Exclamation) End If End If End Sub @@ -1904,6 +2023,11 @@ Public Class frmConstructor_Main SQL_RIGHT_READ_AND_VIEW_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY") SQL_RIGHT_WINDREAM_FORBIDDEN = result.Item("SQL_RIGHT_WINDREAM_VIEW") + Dim sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) 'TBPMO_WINDREAM_RESULTLIST_CONFIG" + DT_WINDREAM_RESULTLIST = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG") + sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_VARIABLE_CONTROLS WHERE ENTITY_ID = {0}", ENTITY_ID) 'TBPMO_WINDREAM_RESULTLIST_CONFIG" + DT_RESULTLIST_OPTIONS = ClassDatabase.Return_Datatable(sql_ResultList, "GETVARIABLE CONTROLS") + Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable() Select form Where form.Item("GUID") = ENTITY_ID).Single() @@ -3671,7 +3795,36 @@ Public Class frmConstructor_Main If Type = "ENTITY" Then SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [ENTITY_ID] = {0}", ENTITY_ID) Else - SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [RECORD_ID] = {0}", RECORD_ID) + Dim OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL") + Dim OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL") + Dim OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL") + Dim OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL") + Dim OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL") + If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then + OPTION1 = 0 + OPTION2 = 0 + OPTION3 = 0 + OPTION4 = 0 + OPTION5 = 0 + End If + SQL_DOC_SEARCH = String.Format("SELECT * ," & _ + "(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _ + "ELSE '' END) AS OPTION1," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION2," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION3," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION4 " & _ + "FROM VWPMO_WD_DOC_SEARCH WHERE RECORD_ID LIKE '%#{0}%'", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4) End If Return ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1) Catch ex As Exception @@ -3730,39 +3883,28 @@ Public Class frmConstructor_Main colPath.Caption = "Fullpath" DTGrid.Columns.Add(colPath) + Dim colOtype As New System.Data.DataColumn() + colOtype.DataType = GetType(String) + colOtype.ColumnName = "OBJECTTYPE" + colOtype.Caption = "Objecttype" + DTGrid.Columns.Add(colOtype) - If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count = 1 Then + + If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then Dim ColCount As Integer = 1 - For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then - Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName) - If Not IsDBNull(ColumnName) Then - If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then - 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren - Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("COLUMN{0}_WIDTH", ColCount)) - If IsNothing(Width) Or IsDBNull(Width) Then - Width = 200 - End If - 'Die Spalte definieren - DTGrid.Columns.Add(ColumnName) - ColCount += 1 - End If - End If + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + Dim ColumnName = rw.Item("HEADER_CAPTION") + Dim Width = rw.Item("WIDTH") + If IsNothing(Width) Or IsDBNull(Width) Then + Width = 200 End If + 'Die Spalte definieren + DTGrid.Columns.Add(ColumnName) + ColCount += 1 Next 'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten - ColCount = 1 - For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then - Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName) - If Not IsDBNull(ColumnName) Then - If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then - 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren - ColArrayDEFINITION.Add(Column.ColumnName) - End If - End If - ColCount += 1 - End If + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW")) Next End If Catch ex As Exception @@ -3770,9 +3912,10 @@ Public Class frmConstructor_Main End Try COL_ARRAY_RESULTLIST = ColArrayDEFINITION - For Each row As DataRow In DT_FILE_RESULT.Rows + For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows - Dim fullpath = row.Item("FULL_FILENAME") + Dim fullpath = FILE_ROW.Item("FULL_FILENAME") + Dim objecttype = FILE_ROW.Item("OBJECTTYPE") 'Dim Folderpath = Path.GetDirectoryName(fullpath) Dim filename = Path.GetFileName(fullpath) Dim extension = Path.GetExtension(fullpath) @@ -3807,23 +3950,13 @@ Public Class frmConstructor_Main End Select 'Den Filepath mitgeben NewRow.Item(1) = fullpath - - Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen - For Each Column As String In ColArrayDEFINITION - Dim Colname = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column) + NewRow.Item(2) = objecttype + Dim i = 3 'Fängt bei 2 an, um die ICON Column zu überspringen + For Each Colname As String In ColArrayDEFINITION Dim rowvalue Try If LogErrorsOnly = False Then ClassLogger.Add(" >> now rowvalue for Colname '" & Colname & "'", False) - If Colname = "Dateiname" Or Colname = "filename" Then - rowvalue = filename - ElseIf Colname = "Dokumentart" Or Colname = "doctype" Then - rowvalue = row.Item("Doctype") - ElseIf Colname = "Erstellt" Or Colname = "created" Then - rowvalue = row.Item("Creation_DateTime") - Else - If LogErrorsOnly = False Then ClassLogger.Add(" >> else: row.Item(" & Colname & ")", False) - rowvalue = row.Item(Colname) - End If + rowvalue = FILE_ROW.Item(Colname) If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue : '" & rowvalue.ToString & "'", False) Catch ex As Exception ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "- Error: " & ex.Message) @@ -3847,18 +3980,11 @@ Public Class frmConstructor_Main GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24 GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24 GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False - - For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If col.ColumnName.EndsWith("WIDTH") Or col.ColumnName.StartsWith("ADDED") Or col.ColumnName.StartsWith("CHANGED") Then - Continue For - End If - Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName) - If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then - Continue For - End If - Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName)) + GridViewDoc_Search.Columns.Item("OBJECTTYPE").Visible = False + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + Dim Width = rw.Item("WIDTH") 'DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName)) If Not IsNothing(Width) And Not IsDBNull(Width) Then - Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rowvalue), DevExpress.XtraGrid.Columns.GridColumn) + Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rw.Item("HEADER_CAPTION")), DevExpress.XtraGrid.Columns.GridColumn) column.Width = Width Console.WriteLine("ColumnWidth {0} set to {1}", column.FieldName, Width) Console.WriteLine("ColumnWidth {0} really set to {1}", column.FieldName, column.VisibleWidth) @@ -4138,7 +4264,7 @@ Public Class frmConstructor_Main CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID CURRENT_RECORD_ID = RECORD_ID CURRENT_FORMVIEW_ID = FORMVIEW_ID - frmWD_Index_Dokart.ShowDialog() + frmWD_IndexFile.ShowDialog() RUN_WDSEARCH_GRID("RECORD") 'RUN_WD_SEARCH(WD_Suche, "RECORD") End If @@ -4206,7 +4332,7 @@ Public Class frmConstructor_Main CURRENT_FORM_ID = ENTITY_ID CURRENT_FORMVIEW_ID = FORMVIEW_ID If ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID & " AND WORKED = 0") = 1 Then - frmWD_Index_Dokart.ShowDialog() + frmWD_IndexFile.ShowDialog() Else If LogErrorsOnly = False Then ClassLogger.Add(" >> File was deleted or worked meanwhile!") End If @@ -4239,6 +4365,9 @@ Public Class frmConstructor_Main Private Sub TCDetails_DragEnter(sender As Object, e As DragEventArgs) Handles TCDetails.DragEnter Drag_Enter(e) End Sub + Private Sub GridControlDocSearch_DragEnter(sender As Object, e As DragEventArgs) Handles GridControlDocSearch.DragEnter + Drag_Enter(e) + End Sub #End Region #Region "Follow Up" @@ -4511,7 +4640,7 @@ Public Class frmConstructor_Main Try Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode) If SelectedNode IsNot Nothing Then - Dim FormId As Integer = SelectedNode.Tag + Dim FormId As Integer = Return_ENTITY_FOR_TAG(SelectedNode.Tag) If FormId > 0 Then CURRENT_FORM_ID = FormId OpenFormLevelDesigner() @@ -4588,7 +4717,7 @@ Public Class frmConstructor_Main Private Sub CheckNode(ByVal n As TreeNode, FormID As Integer) Dim aNode As TreeNode - If CInt(n.Tag) = FormID Then + If CInt(Return_ENTITY_FOR_TAG(n.Tag)) = FormID Then 'Gefunden also selektieren TreeViewMain.SelectedNode = n TreeViewMain.SelectedNode.EnsureVisible() @@ -4604,7 +4733,7 @@ Public Class frmConstructor_Main End If For Each aNode In n.Nodes - If CInt(aNode.Tag) = FormID Then + If CInt(Return_ENTITY_FOR_TAG(aNode.Tag)) = FormID Then 'Gefunden also selektieren TreeViewMain.SelectedNode = aNode TreeViewMain.SelectedNode.EnsureVisible() @@ -5015,7 +5144,9 @@ Public Class frmConstructor_Main Private Sub GridViewDoc_Search_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDoc_Search.FocusedRowChanged Try RESULT_DOC_PATH = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("FULLPATH")) + RESULT_OBJECTTYPE = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("OBJECTTYPE")) Catch ex As Exception + ClassLogger.Add(">> Attention: Could not set DocVariables Path or Objecttype: " & ex.Message, False) RESULT_DOC_PATH = Nothing End Try @@ -5069,6 +5200,7 @@ Public Class frmConstructor_Main Private Sub GridControlDocSearch_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch.DoubleClick Try RESULT_DOC_PATH = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("FULLPATH")) + RESULT_OBJECTTYPE = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("OBJECTTYPE")) Catch ex As Exception RESULT_DOC_PATH = Nothing End Try @@ -5286,36 +5418,36 @@ Public Class frmConstructor_Main End Sub Private Sub GridViewDoc_Search_ColumnWidthChanged(sender As Object, e As ColumnEventArgs) Handles GridViewDoc_Search.ColumnWidthChanged Try - If USER_RESULTLIST_CONFIG_GUID = 0 Then - Dim insert = String.Format("INSERT INTO TBPMO_USER_WINDREAM_RESULTLIST_CONFIG (USER_ID,CONSTRUCTOR_DETAIL_ID,COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,ADDED_WHO)" & _ - " SELECT {0},{1},COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,'{2}' FROM TBPMO_WINDREAM_RESULTLIST_CONFIG WHERE GUID = {3}", USER_GUID, CONSTRUCTOR_DETAIL_ID, Environment.UserName, gridGUID) - If ClassDatabase.Execute_non_Query(insert) = True Then - USER_RESULTLIST_CONFIG_GUID = ClassDatabase.Execute_Scalar("SELECT MAX GUID FROM TBPMO_USER_WINDREAM_RESULTLIST_CONFIG WHERE USER_ID = " & USER_GUID) - Else - Exit Sub - End If - End If - Console.WriteLine("Column changed - Column name: " & e.Column.Name) - Dim colNameGrid = e.Column.Name.Replace("col", "") - 'Jetzt über die Column der Configtabelle auf den Inhalt schliessen - For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns - Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName) - If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then - Continue For - End If - If rowvalue = colNameGrid Then - Dim update = String.Format("UPDATE TBPMO_USER_WINDREAM_RESULTLIST_CONFIG SET {0}_WIDTH = {1} WHERE GUID = {2}", col.ColumnName, e.Column.VisibleWidth, USER_RESULTLIST_CONFIG_GUID) - ClassDatabase.Execute_non_Query(update) - Exit For - End If - Next - If USER_RESULTLIST_CONFIG_GUID > 0 Then - 'DT_WINDREAM_RESULTLIST zu USER NEU LADEN - - Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID - Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG") - DT_WINDREAM_RESULTLIST = DT - End If + 'If USER_RESULTLIST_CONFIG_GUID = 0 Then + ' Dim insert = String.Format("INSERT INTO TBPMO_USER_WINDREAM_RESULTLIST_CONFIG (USER_ID,CONSTRUCTOR_DETAIL_ID,COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,ADDED_WHO)" & _ + ' " SELECT {0},{1},COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,'{2}' FROM TBPMO_WINDREAM_RESULTLIST_CONFIG WHERE GUID = {3}", USER_GUID, CONSTRUCTOR_DETAIL_ID, Environment.UserName, gridGUID) + ' If ClassDatabase.Execute_non_Query(insert) = True Then + ' USER_RESULTLIST_CONFIG_GUID = ClassDatabase.Execute_Scalar("SELECT MAX GUID FROM TBPMO_USER_WINDREAM_RESULTLIST_CONFIG WHERE USER_ID = " & USER_GUID) + ' Else + ' Exit Sub + ' End If + 'End If + 'Console.WriteLine("Column changed - Column name: " & e.Column.Name) + 'Dim colNameGrid = e.Column.Name.Replace("col", "") + ''Jetzt über die Column der Configtabelle auf den Inhalt schliessen + 'For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns + ' Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName) + ' If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then + ' Continue For + ' End If + ' If rowvalue = colNameGrid Then + ' Dim update = String.Format("UPDATE TBPMO_USER_WINDREAM_RESULTLIST_CONFIG SET {0}_WIDTH = {1} WHERE GUID = {2}", col.ColumnName, e.Column.VisibleWidth, USER_RESULTLIST_CONFIG_GUID) + ' ClassDatabase.Execute_non_Query(update) + ' Exit For + ' End If + 'Next + 'If USER_RESULTLIST_CONFIG_GUID > 0 Then + ' 'DT_WINDREAM_RESULTLIST zu USER NEU LADEN + + ' Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID + ' Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG") + ' DT_WINDREAM_RESULTLIST = DT + 'End If Catch ex As Exception ClassLogger.Add(">> Unexpected Error in ColumnWidth-Change DocResult: " & ex.Message, False) End Try @@ -5366,7 +5498,8 @@ Public Class frmConstructor_Main Private Sub DateiMitDatensatzVerknüpfenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiMitDatensatzVerknüpfenToolStripMenuItem.Click Dim fileName As String = RESULT_DOC_PATH - Dim frm As New frmWD_Link_to_Record(fileName) + Dim frm As New frmWD_Link_to_Record(fileName, RESULT_OBJECTTYPE) frm.Show() End Sub + End Class \ No newline at end of file diff --git a/app/DD-Record-Organiser/frmEntities.vb b/app/DD-Record-Organiser/frmEntities.vb index e2b26c2..13aa217 100644 --- a/app/DD-Record-Organiser/frmEntities.vb +++ b/app/DD-Record-Organiser/frmEntities.vb @@ -33,8 +33,6 @@ Public Class frmEntities Load_TreeView() Me.TBPMO_FORM_TYPETableAdapter.Fill(Me.DD_DMSDataSet.TBPMO_FORM_TYPE) ClassWindowLocation.LoadFormLocationSize(Me, 1, CURRENT_SCREEN_ID, "frmForm_Overview") - - LoadLayout() @@ -104,6 +102,8 @@ Public Class frmEntities End If TreeViewEntity.ExpandAll() TreeViewEntity.Nodes(0).EnsureVisible() + Else + MsgBox("No entity configuration found for Your user." & vbNewLine & "please check the logfile.", MsgBoxStyle.Exclamation) End If Catch ex As Exception MsgBox("Error in Load_TreeView:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) diff --git a/app/DD-Record-Organiser/frmRecordView.Designer.vb b/app/DD-Record-Organiser/frmRecordView.Designer.vb index 4d492a9..f5c8cc7 100644 --- a/app/DD-Record-Organiser/frmRecordView.Designer.vb +++ b/app/DD-Record-Organiser/frmRecordView.Designer.vb @@ -265,7 +265,7 @@ Partial Class frmRecordView Me.TabDetails.Controls.Add(Me.pnlDetails) Me.TabDetails.Image = Global.DD_Record_Organiser.My.Resources.Resources.grid_Data_16xMD Me.TabDetails.Name = "TabDetails" - Me.TabDetails.Size = New System.Drawing.Size(799, 358) + Me.TabDetails.Size = New System.Drawing.Size(795, 355) Me.TabDetails.Text = "Detailansicht" ' 'pnlDetails @@ -275,7 +275,7 @@ Partial Class frmRecordView Me.pnlDetails.Dock = System.Windows.Forms.DockStyle.Fill Me.pnlDetails.Location = New System.Drawing.Point(0, 0) Me.pnlDetails.Name = "pnlDetails" - Me.pnlDetails.Size = New System.Drawing.Size(799, 358) + Me.pnlDetails.Size = New System.Drawing.Size(795, 355) Me.pnlDetails.TabIndex = 0 ' 'TabFollowUp @@ -285,7 +285,7 @@ Partial Class frmRecordView Me.TabFollowUp.Controls.Add(Me.Label5) Me.TabFollowUp.Image = Global.DD_Record_Organiser.My.Resources.Resources.Task_16xMD Me.TabFollowUp.Name = "TabFollowUp" - Me.TabFollowUp.Size = New System.Drawing.Size(799, 358) + Me.TabFollowUp.Size = New System.Drawing.Size(795, 355) Me.TabFollowUp.Text = "Wiedervorlage" ' 'ListViewFollowUps @@ -297,7 +297,7 @@ Partial Class frmRecordView Me.ListViewFollowUps.HideSelection = False Me.ListViewFollowUps.Location = New System.Drawing.Point(14, 36) Me.ListViewFollowUps.Name = "ListViewFollowUps" - Me.ListViewFollowUps.Size = New System.Drawing.Size(263, 183) + Me.ListViewFollowUps.Size = New System.Drawing.Size(263, 180) Me.ListViewFollowUps.TabIndex = 5 Me.ListViewFollowUps.UseCompatibleStateImageBehavior = False Me.ListViewFollowUps.View = System.Windows.Forms.View.Details @@ -323,7 +323,7 @@ Partial Class frmRecordView Me.grpbxFU_Profile.Controls.Add(Me.lblWiedervorlage_Control) Me.grpbxFU_Profile.Location = New System.Drawing.Point(283, 28) Me.grpbxFU_Profile.Name = "grpbxFU_Profile" - Me.grpbxFU_Profile.Size = New System.Drawing.Size(774, 191) + Me.grpbxFU_Profile.Size = New System.Drawing.Size(774, 188) Me.grpbxFU_Profile.TabIndex = 4 Me.grpbxFU_Profile.TabStop = False ' @@ -340,7 +340,7 @@ Partial Class frmRecordView Me.GroupBox4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold) Me.GroupBox4.Location = New System.Drawing.Point(177, 20) Me.GroupBox4.Name = "GroupBox4" - Me.GroupBox4.Size = New System.Drawing.Size(594, 165) + Me.GroupBox4.Size = New System.Drawing.Size(594, 162) Me.GroupBox4.TabIndex = 4 Me.GroupBox4.TabStop = False Me.GroupBox4.Text = "Individuelle Empfänger für diesen Datensatz:" @@ -399,7 +399,7 @@ Partial Class frmRecordView Me.ListBoxUser2Profile.FormattingEnabled = True Me.ListBoxUser2Profile.Location = New System.Drawing.Point(9, 50) Me.ListBoxUser2Profile.Name = "ListBoxUser2Profile" - Me.ListBoxUser2Profile.Size = New System.Drawing.Size(230, 82) + Me.ListBoxUser2Profile.Size = New System.Drawing.Size(230, 69) Me.ListBoxUser2Profile.TabIndex = 1 ' 'Label7 @@ -472,7 +472,7 @@ Partial Class frmRecordView Me.TabPos.Image = CType(resources.GetObject("TabPos.Image"), System.Drawing.Image) Me.TabPos.Name = "TabPos" Me.TabPos.PageVisible = False - Me.TabPos.Size = New System.Drawing.Size(799, 358) + Me.TabPos.Size = New System.Drawing.Size(795, 355) Me.TabPos.Text = "Positionen" ' 'Panel1 @@ -481,7 +481,7 @@ Partial Class frmRecordView 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(799, 333) + Me.Panel1.Size = New System.Drawing.Size(795, 330) Me.Panel1.TabIndex = 2 ' 'GridControlPos @@ -490,7 +490,7 @@ Partial Class frmRecordView Me.GridControlPos.Location = New System.Drawing.Point(0, 0) Me.GridControlPos.MainView = Me.grvwGridPos Me.GridControlPos.Name = "GridControlPos" - Me.GridControlPos.Size = New System.Drawing.Size(799, 333) + Me.GridControlPos.Size = New System.Drawing.Size(795, 330) Me.GridControlPos.TabIndex = 0 Me.GridControlPos.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grvwGridPos}) ' @@ -517,7 +517,7 @@ Partial Class frmRecordView Me.BindingNavigatorPOS.MovePreviousItem = Me.BindingNavigatorMovePreviousItem Me.BindingNavigatorPOS.Name = "BindingNavigatorPOS" Me.BindingNavigatorPOS.PositionItem = Me.BindingNavigatorPositionItem - Me.BindingNavigatorPOS.Size = New System.Drawing.Size(799, 25) + Me.BindingNavigatorPOS.Size = New System.Drawing.Size(795, 25) Me.BindingNavigatorPOS.TabIndex = 1 Me.BindingNavigatorPOS.Text = "BindingNavigator1" ' @@ -628,7 +628,7 @@ Partial Class frmRecordView Me.XtraTabPage2.Controls.Add(Me.ToolStrip2) Me.XtraTabPage2.Image = Global.DD_Record_Organiser.My.Resources.Resources.Files_7954 Me.XtraTabPage2.Name = "XtraTabPage2" - Me.XtraTabPage2.Size = New System.Drawing.Size(799, 318) + Me.XtraTabPage2.Size = New System.Drawing.Size(795, 315) Me.XtraTabPage2.Text = "windream-Dateien" ' 'GridControlDocSearch @@ -639,7 +639,7 @@ Partial Class frmRecordView Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 25) Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search Me.GridControlDocSearch.Name = "GridControlDocSearch" - Me.GridControlDocSearch.Size = New System.Drawing.Size(799, 293) + Me.GridControlDocSearch.Size = New System.Drawing.Size(795, 290) Me.GridControlDocSearch.TabIndex = 7 Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search}) ' @@ -711,7 +711,7 @@ Partial Class frmRecordView Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslblWindreamView, Me.ToolStripDropDownButton1}) Me.ToolStrip2.Location = New System.Drawing.Point(0, 0) Me.ToolStrip2.Name = "ToolStrip2" - Me.ToolStrip2.Size = New System.Drawing.Size(799, 25) + Me.ToolStrip2.Size = New System.Drawing.Size(795, 25) Me.ToolStrip2.TabIndex = 2 Me.ToolStrip2.Text = "ToolStrip2" ' @@ -761,7 +761,7 @@ Partial Class frmRecordView Me.XtraTabPage1.Controls.Add(STATE_IDLabel) Me.XtraTabPage1.Controls.Add(Me.STATE_IDComboBox) Me.XtraTabPage1.Name = "XtraTabPage1" - Me.XtraTabPage1.Size = New System.Drawing.Size(799, 318) + Me.XtraTabPage1.Size = New System.Drawing.Size(795, 315) Me.XtraTabPage1.Text = "Workflows/Tasks" ' 'WF_IDTextBox diff --git a/app/DD-Record-Organiser/frmRecordView.vb b/app/DD-Record-Organiser/frmRecordView.vb index 6ca8990..b5051cf 100644 --- a/app/DD-Record-Organiser/frmRecordView.vb +++ b/app/DD-Record-Organiser/frmRecordView.vb @@ -9,6 +9,7 @@ Public Class frmRecordView Private Const SEE_MASK_NOCLOSEPROCESS = &H40 Private Const SEE_MASK_FLAG_NO_UI = &H400 Public Const SW_SHOW As Short = 5 + Private DT_RESULTLIST_OPTIONS As DataTable _ Public Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As Boolean @@ -32,44 +33,67 @@ Public Class frmRecordView End Structure Private Sub frmRecordView_Load(sender As Object, e As EventArgs) Handles MyBase.Load - If USER_LANGUAGE <> "de-DE" Then - Me.Text = "Detailview Record" - Else - Me.Text = "Detailansicht Record" - End If - recordView = New ClassRecordView(pnlDetails) - recordView.LoadRecord(JUMP_RECORD_ID) - - 'Titel updaten - Me.Text &= " " + recordView.RecordId.ToString() + Try + If USER_LANGUAGE <> "de-DE" Then + Me.Text = "Detailview Record" + Else + Me.Text = "Detailansicht Record" + End If + recordView = New ClassRecordView(pnlDetails) + recordView.LoadRecord(JUMP_RECORD_ID) + 'Titel updaten + Me.Text &= " " + recordView.RecordId.ToString() + Dim sql = "SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = " & JUMP_RECORD_ID + ENTITY_ID = ClassDatabase.Execute_Scalar(sql) + sql = String.Format("select * from TBPMO_DOCSEARCH_VARIABLE_CONTROLS WHERE ENTITY_ID = {0}", ENTITY_ID) 'TBPMO_WINDREAM_RESULTLIST_CONFIG" + DT_RESULTLIST_OPTIONS = ClassDatabase.Return_Datatable(sql, "GETVARIABLE CONTROLS") + Catch ex As Exception + MsgBox("Unexpected error in loading form: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) + End Try + RUN_WDSEARCH_GRID() Load_Tasks() End Sub Private Sub RUN_WDSEARCH_GRID() Me.Cursor = Cursors.WaitCursor Dim gridGUID = 2 - Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG" - Dim DT_WINDREAM_RESULTLIST_DEF As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG") - Dim DT_WINDREAM_RESULTLIST As DataTable - If USER_LANGUAGE <> "de-DE" Then - gridGUID = 3 - End If - For Each row As DataRow In DT_WINDREAM_RESULTLIST_DEF.Rows - If row.Item(0) <> gridGUID Then - row.Delete() - End If - Next - DT_WINDREAM_RESULTLIST_DEF.AcceptChanges() - If DT_WINDREAM_RESULTLIST_DEF.Rows.Count = 1 Then - DT_WINDREAM_RESULTLIST = DT_WINDREAM_RESULTLIST_DEF - End If - + Dim sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) 'TBPMO_WINDREAM_RESULTLIST_CONFIG" + Dim DT_WINDREAM_RESULTLIST As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG") Try Dim sw As New Stopwatch sw.Start() Dim elapsed As Double - Dim SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [RECORD_ID] = {0}", JUMP_RECORD_ID) + Dim OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL") + Dim OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL") + Dim OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL") + Dim OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL") + Dim OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL") + If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then + OPTION1 = 0 + OPTION2 = 0 + OPTION3 = 0 + OPTION4 = 0 + OPTION5 = 0 + End If + Dim SQL_DOC_SEARCH = String.Format("SELECT * ," & _ + "(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _ + "ELSE '' END) AS OPTION1," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION2," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION3," & _ + "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _ + "WHEN {1} THEN " & _ + " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _ + "ELSE '' END AS OPTION4 " & _ + "FROM VWPMO_WD_DOC_SEARCH WHERE RECORD_ID LIKE '%#{0}%'", JUMP_RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4) Dim DT_FILE_RESULT As DataTable = ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1) @@ -90,7 +114,7 @@ Public Class frmRecordView tslblWindreamView.Text = msg Dim DTGrid As New DataTable - Dim ColArray As New List(Of String) + Dim ColArrayDEFINITION As New List(Of String) Try 'Die Icon Colum erstellen und konfigurieren Dim colIcon As New System.Data.DataColumn() @@ -105,49 +129,37 @@ Public Class frmRecordView colPath.Caption = "Fullpath" DTGrid.Columns.Add(colPath) + Dim colOtype As New System.Data.DataColumn() + colOtype.DataType = GetType(String) + colOtype.ColumnName = "OBJECTTYPE" + colOtype.Caption = "Objecttype" + DTGrid.Columns.Add(colOtype) - If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count = 1 Then + If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then Dim ColCount As Integer = 1 - For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then - Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName) - If Not IsDBNull(ColumnName) Then - If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then - 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren - Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("COLUMN{0}_WIDTH", ColCount)) - If IsNothing(Width) Or IsDBNull(Width) Then - Width = 200 - End If - 'Die Spalte definieren - DTGrid.Columns.Add(ColumnName) - ColCount += 1 - End If - End If + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + Dim ColumnName = rw.Item("HEADER_CAPTION") + Dim Width = rw.Item("WIDTH") + If IsNothing(Width) Or IsDBNull(Width) Then + Width = 200 End If + 'Die Spalte definieren + DTGrid.Columns.Add(ColumnName) + ColCount += 1 Next 'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten - ColCount = 1 - For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then - Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName) - If Not IsDBNull(ColumnName) Then - If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then - 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren - ColArray.Add(Column.ColumnName) - End If - End If - ColCount += 1 - End If + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW")) Next End If Catch ex As Exception MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try - 'COL_ARRAY_RESULTLIST = ColArray - For Each row As DataRow In DT_FILE_RESULT.Rows + For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows - Dim fullpath = row.Item("FULL_FILENAME") + Dim fullpath = FILE_ROW.Item("FULL_FILENAME") + Dim objecttype = FILE_ROW.Item("OBJECTTYPE") 'Dim Folderpath = Path.GetDirectoryName(fullpath) Dim filename = Path.GetFileName(fullpath) Dim extension = Path.GetExtension(fullpath) @@ -182,21 +194,13 @@ Public Class frmRecordView End Select 'Den Filepath mitgeben NewRow.Item(1) = fullpath - - Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen - For Each Column As String In ColArray - Dim Colname = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column) + NewRow.Item(2) = objecttype + Dim i = 3 'Fängt bei 2 an, um die ICON Column zu überspringen + For Each Colname As String In ColArrayDEFINITION Dim rowvalue Try - If Colname = "Dateiname" Or Colname = "filename" Then - rowvalue = filename - ElseIf Colname = "Dokumentart" Or Colname = "doctype" Then - rowvalue = row.Item("Doctype") - ElseIf Colname = "Erstellt" Or Colname = "created" Then - rowvalue = row.Item("Creation_DateTime") - Else - rowvalue = row.Item(Colname) - End If + If LogErrorsOnly = False Then ClassLogger.Add(" >> now rowvalue for Colname '" & Colname & "'", False) + rowvalue = FILE_ROW.Item(Colname) If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue : '" & rowvalue.ToString & "'", False) Catch ex As Exception ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "- Error: " & ex.Message) @@ -220,18 +224,11 @@ Public Class frmRecordView GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24 GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24 GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False - - For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns - If col.ColumnName.EndsWith("WIDTH") Or col.ColumnName.StartsWith("ADDED") Or col.ColumnName.StartsWith("CHANGED") Then - Continue For - End If - Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName) - If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then - Continue For - End If - Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName)) + GridViewDoc_Search.Columns.Item("OBJECTTYPE").Visible = False + For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows + Dim Width = rw.Item("WIDTH") 'DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName)) If Not IsNothing(Width) And Not IsDBNull(Width) Then - Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rowvalue), DevExpress.XtraGrid.Columns.GridColumn) + Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rw.Item("HEADER_CAPTION")), DevExpress.XtraGrid.Columns.GridColumn) column.Width = Width Console.WriteLine("ColumnWidth {0} set to {1}", column.FieldName, Width) Console.WriteLine("ColumnWidth {0} really set to {1}", column.FieldName, column.VisibleWidth) @@ -262,9 +259,8 @@ Public Class frmRecordView Me.TBPMO_WORKFLOW_TASK_STATETableAdapter.Connection.ConnectionString = MyConnectionString Me.VWPMO_WF_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString Me.VWPMO_WF_ACTIVETableAdapter.FillByRecord(Me.DD_DMSDataSet.VWPMO_WF_ACTIVE, USER_LANGUAGE, Environment.UserName, JUMP_RECORD_ID) - Dim sql = "SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = " & JUMP_RECORD_ID - ENTITY_ID = ClassDatabase.Execute_Scalar(sql) - sql = "SELECT GUID FROM TBPMO_FORM_VIEW WHERE SCREEN_ID = 1 AND FORM_ID = " & ENTITY_ID + + Dim Sql = "SELECT GUID FROM TBPMO_FORM_VIEW WHERE SCREEN_ID = 1 AND FORM_ID = " & ENTITY_ID FORMVIEW_ID = ClassDatabase.Execute_Scalar(sql) sql = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID PARENT_ENTITY_ID = ClassDatabase.Execute_Scalar(sql) @@ -495,7 +491,7 @@ Public Class frmRecordView CURRENT_FORM_ID = ENTITY_ID CURRENT_FORMVIEW_ID = FORMVIEW_ID If ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID & " AND WORKED = 0") = 1 Then - frmWD_Index_Dokart.ShowDialog() + frmWD_IndexFile.ShowDialog() Else If LogErrorsOnly = False Then ClassLogger.Add(" >> File was deleted or worked meanwhile!") End If diff --git a/app/DD-Record-Organiser/frmSAP_FuBa.vb b/app/DD-Record-Organiser/frmSAP_FuBa.vb index 7da3135..70c383f 100644 --- a/app/DD-Record-Organiser/frmSAP_FuBa.vb +++ b/app/DD-Record-Organiser/frmSAP_FuBa.vb @@ -120,13 +120,19 @@ Public Class frmSAP_FuBa lblSave.Visible = False Exit Sub End If - + Dim rowlimit As Integer = 0 + If txtLimitRows.Text <> "" Then + rowlimit = txtLimitRows.Text + End If Dim SAPResulttable As DataTable = New DataTable If rbTable.Checked = True Then - + Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, rowlimit) + If Not IsNothing(result) Then + SAPResulttable = result + End If End If If rBFuba.Checked = True Then - Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, txtLimitRows.Text) + Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit) If Not IsNothing(result) Then SAPResulttable = result End If @@ -143,61 +149,50 @@ Public Class frmSAP_FuBa '###### Dim i = 0 Dim tablename = "[TBPMO_SAP_" & TempTableNameTextBox.Text & "]" - Dim createtablesql = "CREATE TABLE TBPMO_SAP_" & TempTableNameTextBox.Text & " (" - + ClassDatabase.Execute_non_Query_withConn("DROP TABLE " & tablename, 1) + Dim createtablesql = "CREATE TABLE " & tablename & " ( " For Each col As System.Data.DataColumn In SAPResulttable.Columns If i = 0 Then - createtablesql += "[" & col.ColumnName & "] [varchar](100)" + createtablesql += "[" & col.ColumnName & "] [varchar](250)" Else - createtablesql += ", [" & col.ColumnName & "] [varchar](100)" + createtablesql += ", [" & col.ColumnName & "] [varchar](250)" End If i += 1 Next createtablesql += ")" - Dim check = String.Format("SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='{0}'", tablename) - - If ClassDatabase.Execute_Scalar(check) = 1 Then - If LogErrorsOnly = False Then ClassLogger.Add(">> TempTable " & tablename & " exists and will now be deleted!", False) - ClassDatabase.Execute_non_Query_withConn("DROP TABLE " & tablename, 1) - End If - ''Die Tabelle anlegen If LogErrorsOnly = False Then ClassLogger.Add(">> Create Table: " & createtablesql, False) - ClassDatabase.Execute_non_Query_withConn(createtablesql, 1) - Dim del = "delete from " & tablename - ClassDatabase.Execute_non_Query_withConn(del, 1) + If ClassDatabase.Execute_non_Query_withConn(createtablesql, 1) = False Then + MsgBox("Error in creating TempTable: Check log", MsgBoxStyle.Critical) + Exit Sub + End If + If LogErrorsOnly = False Then ClassLogger.Add(">> table has been created", False) + + Dim alter = String.Format("ALTER TABLE {0} ADD GUID INTEGER NOT NULL IDENTITY(1,1)", tablename) + ClassDatabase.Execute_non_Query_withConn(alter, 1) + 'Dim del = "delete from " & tablename + 'ClassDatabase.Execute_non_Query_withConn(del, 1) 'If ClassDatabase.Execute_non_Query_withConn(createtablesql, 1) = False Then ' Me.Cursor = Cursors.Default ' MsgBox("Error while creating the temporary table. Please check the logfile!", MsgBoxStyle.Critical) ' Exit Sub 'End If - Dim ins = "Insert into " & tablename & "(" - Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM " & tablename) - If Not IsNothing(DT) Then - Dim anz As Integer = 0 - For Each col As DataColumn In DT.Columns - If anz = 0 Then - ins = ins & col.ColumnName - Else - ins = ins & ", " & col.ColumnName - End If - anz += 1 - Next - ins = ins & ") VALUES (" - End If + 'Dim ins = "Insert into " & tablename & "(" + 'Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM " & tablename) + 'If Not IsNothing(DT) Then + ' Dim anz As Integer = 0 + ' For Each col As DataColumn In DT.Columns + ' If anz = 0 Then + ' ins = ins & col.ColumnName + ' Else + ' ins = ins & ", " & col.ColumnName + ' End If + ' anz += 1 + ' Next + ' ins = ins & ") VALUES (" + 'End If Try - 'For Each row As DataRow In SAPResulttable.Rows - ' For x = 0 To CURRENT_COL_COUNT - ' If x = 0 Then - ' ins = ins & "'" & row.Item(x).ToString & "', " - ' Else - ' ins = ins & "'" & row.Item(x).ToString & "'" - ' End If - ' ins = ins & ")" - ' Next - ' ClassDatabase.Execute_non_Query_withConn(ins, 1) - 'Next Dim OwnerCS As String OwnerCS = ClassDatabase.GetConnectionString(1) Dim SQLconnect As New SqlClient.SqlConnection @@ -206,8 +201,7 @@ Public Class frmSAP_FuBa ' Note that the column positions in the source DataTable ' match the column positions in the destination table, ' so there is no need to map columns. - Using bulkCopy As SqlBulkCopy = _ - New SqlBulkCopy(SQLconnect) + Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconnect) bulkCopy.DestinationTableName = tablename Try ' Write from the source to the destination. @@ -264,13 +258,18 @@ Public Class frmSAP_FuBa End If Dim SAPResulttable As DataTable = New DataTable + Dim rowlimit As Integer = 0 + If txtLimitRows.Text <> "" Then + rowlimit = txtLimitRows.Text + End If If rbTable.Checked = True Then - Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, txtLimitRows.Text) + + Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, rowlimit) If Not IsNothing(result) Then SAPResulttable = result End If ElseIf rBFuba.Checked = True Then 'FUBA Abruf - Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, txtLimitRows.Text) + Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit) If Not IsNothing(result) Then SAPResulttable = result End If @@ -297,8 +296,8 @@ Public Class frmSAP_FuBa Dim elapsed As Double elapsed = sw.Elapsed.TotalSeconds sw.Stop() - If txtLimitRows.Text <> "" And SAPResulttable.Rows.Count >= CInt(txtLimitRows.Text) Then - lblResult.Text = "Result (limited to " & txtLimitRows.Text & " rows) - Duration: " & Format(elapsed, "0.00") & " seconds" + If rowlimit <> 0 And SAPResulttable.Rows.Count >= rowlimit Then + lblResult.Text = "Result (limited to " & rowlimit.ToString & " rows) - Duration: " & Format(elapsed, "0.00") & " seconds" Else lblResult.Text = "Result (unlimited) >> " & SAPResulttable.Rows.Count & " rows retrieved - Duration: " & Format(elapsed, "0.00") & " seconds" End If diff --git a/app/DD-Record-Organiser/frmWD_Index_Dokart.Designer.vb b/app/DD-Record-Organiser/frmWD_IndexFile.Designer.vb similarity index 99% rename from app/DD-Record-Organiser/frmWD_Index_Dokart.Designer.vb rename to app/DD-Record-Organiser/frmWD_IndexFile.Designer.vb index 46c09f7..fcaea46 100644 --- a/app/DD-Record-Organiser/frmWD_Index_Dokart.Designer.vb +++ b/app/DD-Record-Organiser/frmWD_IndexFile.Designer.vb @@ -1,5 +1,5 @@  _ -Partial Class frmWD_Index_Dokart +Partial Class frmWD_IndexFile Inherits System.Windows.Forms.Form 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. @@ -24,7 +24,7 @@ Partial Class frmWD_Index_Dokart Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim OBJECT_TYPELabel As System.Windows.Forms.Label - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWD_Index_Dokart)) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWD_IndexFile)) Dim FW_DOCTYPE_IDLabel As System.Windows.Forms.Label Dim PATHLabel As System.Windows.Forms.Label Dim Label3 As System.Windows.Forms.Label diff --git a/app/DD-Record-Organiser/frmWD_Index_Dokart.en-US.resx b/app/DD-Record-Organiser/frmWD_IndexFile.en-US.resx similarity index 100% rename from app/DD-Record-Organiser/frmWD_Index_Dokart.en-US.resx rename to app/DD-Record-Organiser/frmWD_IndexFile.en-US.resx diff --git a/app/DD-Record-Organiser/frmWD_Index_Dokart.resx b/app/DD-Record-Organiser/frmWD_IndexFile.resx similarity index 100% rename from app/DD-Record-Organiser/frmWD_Index_Dokart.resx rename to app/DD-Record-Organiser/frmWD_IndexFile.resx diff --git a/app/DD-Record-Organiser/frmWD_Index_Dokart.vb b/app/DD-Record-Organiser/frmWD_IndexFile.vb similarity index 98% rename from app/DD-Record-Organiser/frmWD_Index_Dokart.vb rename to app/DD-Record-Organiser/frmWD_IndexFile.vb index e1c2997..657e31c 100644 --- a/app/DD-Record-Organiser/frmWD_Index_Dokart.vb +++ b/app/DD-Record-Organiser/frmWD_IndexFile.vb @@ -2,7 +2,7 @@ Imports System.Security.AccessControl Imports System.Security.Principal -Public Class frmWD_Index_Dokart +Public Class frmWD_IndexFile Dim droptype As String Dim aktFiledropped As String Dim MULTIFILES As Integer = 0 @@ -173,11 +173,19 @@ Public Class frmWD_Index_Dokart End If Return True Else - MsgBox("Es gab ein Problem bei der Indexierung der Datei. Bitte prüfen sie das Log!", MsgBoxStyle.Exclamation, "Achtung:") + MsgBox("An unexpected error occured while indexing file. Please check the log!", MsgBoxStyle.Exclamation) Return False End If + Else + MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (1)!", MsgBoxStyle.Critical) + Return False End If + Else + MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (0)!", MsgBoxStyle.Critical) + Return False End If + Else + Return False End If Catch ex As Exception MsgBox("Unexpected error in Work-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) @@ -186,7 +194,7 @@ Public Class frmWD_Index_Dokart End Function - + 'Function FillIndexe_Autom(dokart_id As Integer) ' Try ' Me.VWDDINDEX_AUTOMTableAdapter.Fill(Me.DD_DMSDataSet.VWDDINDEX_AUTOM, dokart_id) diff --git a/app/DD-Record-Organiser/frmWD_Link_to_Record.Designer.vb b/app/DD-Record-Organiser/frmWD_Link_to_Record.Designer.vb index 411510a..16a66ea 100644 --- a/app/DD-Record-Organiser/frmWD_Link_to_Record.Designer.vb +++ b/app/DD-Record-Organiser/frmWD_Link_to_Record.Designer.vb @@ -22,6 +22,7 @@ Partial Class frmWD_Link_to_Record 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. _ Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWD_Link_to_Record)) Me.cmbConstructorForms = New System.Windows.Forms.ComboBox() Me.Label1 = New System.Windows.Forms.Label() Me.tvEntities = New System.Windows.Forms.TreeView() @@ -40,59 +41,59 @@ Partial Class frmWD_Link_to_Record ' 'cmbConstructorForms ' + resources.ApplyResources(Me.cmbConstructorForms, "cmbConstructorForms") Me.cmbConstructorForms.FormattingEnabled = True - Me.cmbConstructorForms.Location = New System.Drawing.Point(170, 14) Me.cmbConstructorForms.Name = "cmbConstructorForms" - Me.cmbConstructorForms.Size = New System.Drawing.Size(174, 21) - Me.cmbConstructorForms.TabIndex = 0 ' 'Label1 ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.Location = New System.Drawing.Point(9, 17) + resources.ApplyResources(Me.Label1, "Label1") Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(142, 13) - Me.Label1.TabIndex = 1 - Me.Label1.Text = "1. Konstruktor auswählen:" ' 'tvEntities ' - Me.tvEntities.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.tvEntities.Location = New System.Drawing.Point(12, 58) + resources.ApplyResources(Me.tvEntities, "tvEntities") Me.tvEntities.Name = "tvEntities" - Me.tvEntities.Size = New System.Drawing.Size(332, 491) - Me.tvEntities.TabIndex = 2 ' 'Label2 ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label2.Location = New System.Drawing.Point(9, 42) + resources.ApplyResources(Me.Label2, "Label2") Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(115, 13) - Me.Label2.TabIndex = 3 - Me.Label2.Text = "2. Entität auswählen:" ' 'dgEntityRecords ' - Me.dgEntityRecords.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.dgEntityRecords.Location = New System.Drawing.Point(350, 58) + resources.ApplyResources(Me.dgEntityRecords, "dgEntityRecords") + Me.dgEntityRecords.EmbeddedNavigator.AccessibleDescription = resources.GetString("dgEntityRecords.EmbeddedNavigator.AccessibleDescription") + Me.dgEntityRecords.EmbeddedNavigator.AccessibleName = resources.GetString("dgEntityRecords.EmbeddedNavigator.AccessibleName") + Me.dgEntityRecords.EmbeddedNavigator.AllowHtmlTextInToolTip = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.AllowHtmlTextInToolTip"), DevExpress.Utils.DefaultBoolean) + Me.dgEntityRecords.EmbeddedNavigator.Anchor = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.Anchor"), System.Windows.Forms.AnchorStyles) + Me.dgEntityRecords.EmbeddedNavigator.BackgroundImage = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.BackgroundImage"), System.Drawing.Image) + Me.dgEntityRecords.EmbeddedNavigator.BackgroundImageLayout = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.BackgroundImageLayout"), System.Windows.Forms.ImageLayout) + Me.dgEntityRecords.EmbeddedNavigator.ImeMode = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.ImeMode"), System.Windows.Forms.ImeMode) + Me.dgEntityRecords.EmbeddedNavigator.MaximumSize = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.MaximumSize"), System.Drawing.Size) + Me.dgEntityRecords.EmbeddedNavigator.TextLocation = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.TextLocation"), DevExpress.XtraEditors.NavigatorButtonsTextLocation) + Me.dgEntityRecords.EmbeddedNavigator.ToolTip = resources.GetString("dgEntityRecords.EmbeddedNavigator.ToolTip") + Me.dgEntityRecords.EmbeddedNavigator.ToolTipIconType = CType(resources.GetObject("dgEntityRecords.EmbeddedNavigator.ToolTipIconType"), DevExpress.Utils.ToolTipIconType) + Me.dgEntityRecords.EmbeddedNavigator.ToolTipTitle = resources.GetString("dgEntityRecords.EmbeddedNavigator.ToolTipTitle") Me.dgEntityRecords.MainView = Me.grvwGrid Me.dgEntityRecords.Name = "dgEntityRecords" - Me.dgEntityRecords.Size = New System.Drawing.Size(896, 491) - Me.dgEntityRecords.TabIndex = 4 Me.dgEntityRecords.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grvwGrid}) ' 'grvwGrid ' - Me.grvwGrid.Appearance.EvenRow.BackColor = System.Drawing.Color.Aqua + Me.grvwGrid.Appearance.EvenRow.BackColor = CType(resources.GetObject("grvwGrid.Appearance.EvenRow.BackColor"), System.Drawing.Color) + Me.grvwGrid.Appearance.EvenRow.FontSizeDelta = CType(resources.GetObject("grvwGrid.Appearance.EvenRow.FontSizeDelta"), Integer) + Me.grvwGrid.Appearance.EvenRow.FontStyleDelta = CType(resources.GetObject("grvwGrid.Appearance.EvenRow.FontStyleDelta"), System.Drawing.FontStyle) + Me.grvwGrid.Appearance.EvenRow.GradientMode = CType(resources.GetObject("grvwGrid.Appearance.EvenRow.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode) + Me.grvwGrid.Appearance.EvenRow.Image = CType(resources.GetObject("grvwGrid.Appearance.EvenRow.Image"), System.Drawing.Image) Me.grvwGrid.Appearance.EvenRow.Options.UseBackColor = True - Me.grvwGrid.Appearance.FilterPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(0, Byte), Integer)) + Me.grvwGrid.Appearance.FilterPanel.BackColor = CType(resources.GetObject("grvwGrid.Appearance.FilterPanel.BackColor"), System.Drawing.Color) + Me.grvwGrid.Appearance.FilterPanel.FontSizeDelta = CType(resources.GetObject("grvwGrid.Appearance.FilterPanel.FontSizeDelta"), Integer) + Me.grvwGrid.Appearance.FilterPanel.FontStyleDelta = CType(resources.GetObject("grvwGrid.Appearance.FilterPanel.FontStyleDelta"), System.Drawing.FontStyle) + Me.grvwGrid.Appearance.FilterPanel.GradientMode = CType(resources.GetObject("grvwGrid.Appearance.FilterPanel.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode) + Me.grvwGrid.Appearance.FilterPanel.Image = CType(resources.GetObject("grvwGrid.Appearance.FilterPanel.Image"), System.Drawing.Image) Me.grvwGrid.Appearance.FilterPanel.Options.UseBackColor = True + resources.ApplyResources(Me.grvwGrid, "grvwGrid") Me.grvwGrid.GridControl = Me.dgEntityRecords Me.grvwGrid.Name = "grvwGrid" Me.grvwGrid.OptionsBehavior.Editable = False @@ -101,66 +102,41 @@ Partial Class frmWD_Link_to_Record ' 'btnLink ' - Me.btnLink.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnLink.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnLink.Location = New System.Drawing.Point(1057, 12) + resources.ApplyResources(Me.btnLink, "btnLink") Me.btnLink.Name = "btnLink" - Me.btnLink.Size = New System.Drawing.Size(189, 23) - Me.btnLink.TabIndex = 5 - Me.btnLink.Text = "Verknüpfen" Me.btnLink.UseVisualStyleBackColor = True ' 'Label3 ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label3.Location = New System.Drawing.Point(347, 17) + resources.ApplyResources(Me.Label3, "Label3") Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(37, 13) - Me.Label3.TabIndex = 6 - Me.Label3.Text = "Datei:" ' 'Label4 ' - Me.Label4.AutoSize = True - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label4.Location = New System.Drawing.Point(821, 17) + resources.ApplyResources(Me.Label4, "Label4") Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(135, 13) - Me.Label4.TabIndex = 7 - Me.Label4.Text = "Ausgewählter Datensatz:" ' 'txtFilename ' - Me.txtFilename.Location = New System.Drawing.Point(390, 14) + resources.ApplyResources(Me.txtFilename, "txtFilename") Me.txtFilename.Name = "txtFilename" Me.txtFilename.ReadOnly = True - Me.txtFilename.Size = New System.Drawing.Size(425, 22) - Me.txtFilename.TabIndex = 8 ' 'txtRecordId ' - Me.txtRecordId.Location = New System.Drawing.Point(962, 14) + resources.ApplyResources(Me.txtRecordId, "txtRecordId") Me.txtRecordId.Name = "txtRecordId" Me.txtRecordId.ReadOnly = True - Me.txtRecordId.Size = New System.Drawing.Size(89, 22) - Me.txtRecordId.TabIndex = 9 ' 'Label5 ' - Me.Label5.AutoSize = True - Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label5.Location = New System.Drawing.Point(347, 42) + resources.ApplyResources(Me.Label5, "Label5") Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(132, 13) - Me.Label5.TabIndex = 3 - Me.Label5.Text = "3. Datensatz auswählen:" ' 'frmWD_Link_to_Record ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1258, 561) Me.Controls.Add(Me.txtRecordId) Me.Controls.Add(Me.txtFilename) Me.Controls.Add(Me.Label4) @@ -172,9 +148,7 @@ Partial Class frmWD_Link_to_Record Me.Controls.Add(Me.tvEntities) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.cmbConstructorForms) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Name = "frmWD_Link_to_Record" - Me.Text = "Datei mit Datensatz verknüpfen" CType(Me.dgEntityRecords, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grvwGrid, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/app/DD-Record-Organiser/frmWD_Link_to_Record.en-US.resx b/app/DD-Record-Organiser/frmWD_Link_to_Record.en-US.resx new file mode 100644 index 0000000..e912d34 --- /dev/null +++ b/app/DD-Record-Organiser/frmWD_Link_to_Record.en-US.resx @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 125, 13 + + + 1. Choose Constructor: + + + 93, 13 + + + 2. Choose entity: + + + Link record to file + + + Segoe UI, 8.25pt, style=Italic + + + 350, 17 + + + 23, 13 + + + file: + + + Segoe UI, 8.25pt, style=Italic + + + 873, 17 + + + 74, 13 + + + record chosen: + + + Segoe UI, 8.25pt, style=Italic + + + 477, 22 + + + Segoe UI, 8.25pt, style=Italic + + + 953, 14 + + + 97, 13 + + + 3. Choose record: + + + Segoe UI, 8.25pt, style=Italic + + + Link file to Record + + \ No newline at end of file diff --git a/app/DD-Record-Organiser/frmWD_Link_to_Record.resx b/app/DD-Record-Organiser/frmWD_Link_to_Record.resx index 1af7de1..a519eb2 100644 --- a/app/DD-Record-Organiser/frmWD_Link_to_Record.resx +++ b/app/DD-Record-Organiser/frmWD_Link_to_Record.resx @@ -117,4 +117,394 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Ausgewählter Datensatz: + + + + 1258, 561 + + + 3. Datensatz auswählen: + + + + Center + + + Datei: + + + 347, 42 + + + 2 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 10 + + + + 0 + + + Verknüpfen + + + 12, 58 + + + 7 + + + + Top, Right + + + Regular + + + Segoe UI, 8.25pt, style=Bold + + + 6 + + + + + + 9 + + + Segoe UI, 8.25pt + + + 347, 17 + + + Horizontal + + + 174, 21 + + + + + + 6, 13 + + + 1 + + + + + + 3 + + + 8 + + + 425, 22 + + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 + + + $this + + + Label1 + + + 2. Entität auswählen: + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 896, 491 + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + + + + + + 135, 13 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Top, Bottom, Left + + + 350, 58 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Regular + + + txtRecordId + + + $this + + + grvwGrid + + + 962, 14 + + + 0 + + + 5 + + + + None + + + $this + + + 6 + + + Inherit + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + Segoe UI, 8.25pt + + + 1. Konstruktor auswählen: + + + + Default + + + Label5 + + + txtFilename + + + 0, 0 + + + 132, 13 + + + Segoe UI, 8.25pt + + + 255, 128, 0 + + + Top, Left + + + Label3 + + + + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + 189, 23 + + + cmbConstructorForms + + + 8 + + + 1057, 12 + + + Aqua + + + 3 + + + 89, 22 + + + 9, 17 + + + $this + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 390, 14 + + + 1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 9, 42 + + + Segoe UI, 8.25pt + + + 821, 17 + + + True + + + True + + + 332, 491 + + + frmWD_Link_to_Record + + + 9 + + + Datei mit Datensatz verknüpfen + + + btnLink + + + Horizontal + + + Tile + + + + + + Label2 + + + Top, Bottom, Left, Right + + + Segoe UI, 8.25pt + + + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 4 + + + $this + + + dgEntityRecords + + + True + + + Label4 + + + + + + $this + + + 170, 14 + + + 2 + + + $this + + + 4 + + + $this + + + 142, 13 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 115, 13 + + + Segoe UI, 8.25pt + + + $this + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 37, 13 + + + 7 + + + tvEntities + + + True + \ No newline at end of file diff --git a/app/DD-Record-Organiser/frmWD_Link_to_Record.vb b/app/DD-Record-Organiser/frmWD_Link_to_Record.vb index 8263c2a..df39272 100644 --- a/app/DD-Record-Organiser/frmWD_Link_to_Record.vb +++ b/app/DD-Record-Organiser/frmWD_Link_to_Record.vb @@ -2,7 +2,7 @@ Imports System.IO Public Class frmWD_Link_to_Record - + Private _objecttype As String Private Class ClassConstructor Public title As String Public id As Integer @@ -14,9 +14,10 @@ Public Class frmWD_Link_to_Record Private CONSTRUCTOR_DETAIL_ID, CONSTRUCTOR_ID, FORM_ID As Integer - Public Sub New(fileName As String) + Public Sub New(fileName As String, Objecttype As String) InitializeComponent() txtFilename.Text = fileName + _objecttype = Objecttype End Sub Private Function GetConstructorForms() As DataTable @@ -234,13 +235,46 @@ Public Class frmWD_Link_to_Record If txtRecordId.Text.Trim.Count > 0 Then RecordId = Integer.Parse(txtRecordId.Text) FileName = txtFilename.Text - + Try + Dim sql = String.Format("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '{0}'", _objecttype) + Dim DT_OBJTYPE As DataTable = ClassDatabase.Return_Datatable(sql) + If DT_OBJTYPE.Rows.Count = 1 Then + Dim Entity_Index = DT_OBJTYPE.Rows(0).Item("IDXNAME_ENTITYID") + Dim Record_Index = DT_OBJTYPE.Rows(0).Item("IDXNAME_RECORDID") + Dim ENT_ID = ClassDatabase.Execute_Scalar(String.Format("SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}", RecordId)) + If ENT_ID > 1 Then + If ClassWindream.IndexFile(FileName, Entity_Index, ENT_ID, True, _objecttype) = False Then + Dim msg = "Die Entität-ID konnte nicht gesetzt werden! Bitte überprüfen Sie die Logfile" + If USER_LANGUAGE <> "de-DE" Then + msg = "Could not index Entity-ID! Please check logfile!" + End If + MsgBox(msg, MsgBoxStyle.Exclamation) + End If + End If + If ClassWindream.IndexFile(FileName, Record_Index, RecordId, True, _objecttype) = False Then + Dim msg = "Die Record-ID konnte nicht gesetzt werden! Bitte überprüfen Sie die Logfile" + If USER_LANGUAGE <> "de-DE" Then + msg = "Could not index Record-ID! Please check logfile!" + End If + MsgBox(msg, MsgBoxStyle.Exclamation) + Else + Dim msg = "Der Datensatz wurde erfolgreich mit der Datei verlinked!" + If USER_LANGUAGE <> "de-DE" Then + msg = "The record was successfully added to the file!" + End If + MsgBox(msg, MsgBoxStyle.Information) + End If + End If + Catch ex As Exception + MsgBox("Unexpected Error in Linking Record to file:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) + End Try Else - MsgBox("Bitte wählen Sie einen Datensatz aus!", MsgBoxStyle.Exclamation, "Kein Datensatz ausgewählt") + MsgBox("Please choose a record!", MsgBoxStyle.Exclamation) Exit Sub End If + End Sub - 'TODO: Datei mit Record verknüpfen - + Private Sub frmWD_Link_to_Record_Shown(sender As Object, e As EventArgs) Handles Me.Shown + txtRecordId.Text = "" End Sub End Class \ No newline at end of file