FrancescoDiMuro Posted May 9, 2017 Posted May 9, 2017 Good evening I was looking for WM_* Notification Codes, and, particurarly, for $EN_SETFOCUS notification code. Does anyone knows where I can find a complete list of these commands? Thank you Francesco Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
jguinch Posted May 9, 2017 Posted May 9, 2017 (edited) Each kind of control has its own notification codes. You can find them in each corresponding AutoIt constant file coming with your installation. For edit controls, the file is EditConstants.au3, in which you can see there is a ; Notifications comment For combobox controls, the file is ComboConstants.au3.... For a list by type of control, you can get it from the MSDN site : Control Library eg for buttons : https://msdn.microsoft.com/en-us/library/windows/desktop/bb775456(v=vs.85).aspx#notification_messages Edited May 9, 2017 by jguinch Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF
FrancescoDiMuro Posted May 9, 2017 Author Posted May 9, 2017 Hi @jguinch! I am working on an application, and I'd like to see when the user set the focus on an edit. This is the code I'm working on, but I didn't manage to do what I'd like to do... expandcollapse popup; High-order Word of $wParam is the Notification Code ( $EN_CHANGE, $EN_SETFOCUS, $EN_KILLFOCUS ) ; Low-order Word of $wParam specifies the ID from where the Notification Code has been "launched" ( Control_ID... ) ; $lParam specifies the HANDLE from where the Notification Code has been "launched" #forceref $hWnd, $iMsg Local $iNotificationCode = _WinAPI_HiWord($wParam) Local $iID_From = _WinAPI_LoWord($wParam) Local $hWnd_From = $lParam Local $hCtrl = GUICtrlGetHandle($input_DescrizioneUtente) Switch $iID_From Case $input_DescrizioneUtente Switch $iNotificationCode Case $EN_SETFOCUS If @OSArch = "X64" Then DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection Else If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf EndIf GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc Notice that I'm working with Opt("GUIOnEventMode", 1)... I don't know If it affects the "running" of the code... Thank you Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
junkew Posted May 9, 2017 Posted May 9, 2017 You can find them all in windows sdk headerfiles winuser.h download and install sdk and you can find them all Alternative https://source.winehq.org/source/include/winuser.h FAQ 31 How to click some elements, FAQ 40 Test automation with AutoIt, Multithreading CLR .NET Powershell CMDLets
FrancescoDiMuro Posted May 10, 2017 Author Posted May 10, 2017 By the way, I still can't get my code work... Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
Danyfirex Posted May 10, 2017 Posted May 10, 2017 Hello try to post a working code to help you. Best Regards Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut
jguinch Posted May 10, 2017 Posted May 10, 2017 @FrancescoDiMuro : here is an example to get the focus messages for an edit control : #Include <GUIConstantsEx.au3> #Include <EditConstants.au3> #Include <WindowsConstants.au3> Local $hGUI = GUICreate("gui", 220, 70) Local $idEdit1 = GUICtrlCreateInput("", 10, 10, 200, 20) Local $idEdit2 = GUICtrlCreateInput("", 10, 40, 200, 20) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUISetState() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit WEnd Func WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam) Local $nNotifyCode = BitShift($wParam, 16) Local $nID = BitAND($wParam, 0x0000FFFF) Switch $nID Case $idEdit1, $idEdit2 Switch $nNotifyCode Case $EN_SETFOCUS ConsoleWrite("Control with ID #" & $nID & " has focus" & @CRLF) Case $EN_KILLFOCUS ConsoleWrite("Control with ID #" & $nID & " loose focus" & @CRLF) EndSwitch EndSwitch EndFunc Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF
FrancescoDiMuro Posted May 10, 2017 Author Posted May 10, 2017 2 hours ago, Danyfirex said: Hello try to post a working code to help you. Best Regards Don't you like the third post? Thanks Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
FrancescoDiMuro Posted May 10, 2017 Author Posted May 10, 2017 Just now, jguinch said: @FrancescoDiMuro : here is an example to get the focus messages for an edit control : #Include <GUIConstantsEx.au3> #Include <EditConstants.au3> #Include <WindowsConstants.au3> Local $hGUI = GUICreate("gui", 220, 70) Local $idEdit1 = GUICtrlCreateInput("", 10, 10, 200, 20) Local $idEdit2 = GUICtrlCreateInput("", 10, 40, 200, 20) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUISetState() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit WEnd Func WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam) Local $nNotifyCode = BitShift($wParam, 16) Local $nID = BitAND($wParam, 0x0000FFFF) Switch $nID Case $idEdit1, $idEdit2 Switch $nNotifyCode Case $EN_SETFOCUS ConsoleWrite("Control with ID #" & $nID & " has focus" & @CRLF) Case $EN_KILLFOCUS ConsoleWrite("Control with ID #" & $nID & " loose focus" & @CRLF) EndSwitch EndSwitch EndFunc And If I'm working with Opt("OnEventMode", 1) ? Thanks Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
Danyfirex Posted May 10, 2017 Posted May 10, 2017 39 minutes ago, FrancescoDiMuro said: Don't you like the third post? Thanks No. too complex for me :S expandcollapse popup#Include <GUIConstantsEx.au3> #Include <EditConstants.au3> #Include <WindowsConstants.au3> #include <MsgBoxConstants.au3> Opt("GUIOnEventMode", 1) Local $hGUI = GUICreate("gui", 220, 90) Local $idEdit1 = GUICtrlCreateInput("", 10, 10, 200, 20) Local $idEdit2 = GUICtrlCreateInput("", 10, 40, 200, 20) GUICtrlCreateButton("OK", 80, 65, 50) GUICtrlSetOnEvent(-1, "OKPressed") GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents") GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents") GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents") GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUISetState() While Sleep(10) WEnd Func OKPressed() MsgBox($MB_SYSTEMMODAL, "OK Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle) EndFunc ;==>OKPressed Func SpecialEvents() Select Case @GUI_CtrlId = $GUI_EVENT_CLOSE MsgBox($MB_SYSTEMMODAL, "Close Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle) GUIDelete() Exit Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE MsgBox($MB_SYSTEMMODAL, "Window Minimized", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle) Case @GUI_CtrlId = $GUI_EVENT_RESTORE MsgBox($MB_SYSTEMMODAL, "Window Restored", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle) EndSelect EndFunc ;==>SpecialEvents Func WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam) Local $nNotifyCode = BitShift($wParam, 16) Local $nID = BitAND($wParam, 0x0000FFFF) Switch $nID Case $idEdit1, $idEdit2 Switch $nNotifyCode Case $EN_SETFOCUS ConsoleWrite("Control with ID #" & $nID & " has focus" & @CRLF) Case $EN_KILLFOCUS ConsoleWrite("Control with ID #" & $nID & " loose focus" & @CRLF) EndSwitch EndSwitch EndFunc Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut
FrancescoDiMuro Posted May 10, 2017 Author Posted May 10, 2017 @Danyfirex My script still doesn't work... Could ADLib ruin the execution of the script? I don't know what to do anymore! Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
kylomas Posted May 10, 2017 Posted May 10, 2017 Francesco, Can you post the script or a runnable reproducer? kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
FrancescoDiMuro Posted May 15, 2017 Author Posted May 15, 2017 On 10/5/2017 at 11:45 PM, kylomas said: Francesco, Can you post the script or a runnable reproducer? kylomas Post #3... No WM_COMMAND is launched... Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
BrewManNH Posted May 15, 2017 Posted May 15, 2017 1 hour ago, FrancescoDiMuro said: Post #3... That's not a runnable script. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
FrancescoDiMuro Posted May 15, 2017 Author Posted May 15, 2017 1 minute ago, BrewManNH said: That's not a runnable script. expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Icone\icona_StampaAudit.ico #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Region INCLUDE #include <AutoItConstants.au3> #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <FileConstants.au3> #include <File.au3> #include <Array.au3> #include <SQLite.au3> #include <SQLite.dll.au3> #include <ButtonConstants.au3> #include <DateTimeConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Date.au3> #include <ColorConstants.au3> #include <ListViewConstants.au3> #include <GuiListView.au3> #EndRegion Opt("GUIOnEventMode", 1) ; A4 Portrait Size in Px @72 DPI = 842 W x 595 H #Region Global Declarations Global $sHmiCheckLogIntegrity = "\HmiCheckLogIntegrity.exe" ; ------------------------------ HmiCheckLogIntegrity.exe ------------------------------ ; Possibili valori dell'HmiCheckLogIntegrity: ; < 0 : Errori vari, come il formato del file non valido, nessun file disponibile... ; ; 1 : L'Audit Trail verificato è valido; ; > 0 : Numero di riga in cui è stato manipolato l'Audit Trail verificato. ; ------------------------------------------------------------------------------------- ; Se WinCC sta collezionando ancora i dati, l'HmiCheckLogIntegrity restituirà il ; seguente messaggio: ; "The specified source file could not be opened!" ; ------------------------------------------------------------------------------------- Global $sFileConfigurazione = @ScriptDir & "\Configurazione\configurazione_audit.ini" Global $sDataOdierna = @MDAY & "/" & @MON & "/" & @YEAR Global $sFileCrystalReports = @ScriptDir & "\file_database_cr.txt" Global $iRicercaData = 0, $iRicercaDescrizione = 0, $iRicercaData_Descrizione = 0, $iRicercaID_Utente = 0, $iRicercaData_ID = 0, $iRicercaDescrizione_ID = 0, _ $iRicercaData_Descrizione_ID = 0 Global $sFileTastieraVirtuale = @WindowsDir & "\System32\osk.exe" #EndRegion #Region ### START Koda GUI section ### Form=c:\users\portatile-60\documents\documenti lavoro\autoit\beta_tested_stampeaudit\stampa_report_audit\form_stampareportaudit_onedate.kxf $form_StampaAudit = GUICreate("Stampa Report Audit", 1009, 730, 0, 0) ; 1265, 986, 0, 0) ; 202, 30 1265, 986, 0, 0) GUISetOnEvent($GUI_EVENT_CLOSE, "ChiudiApplicazione") Global $checkbox_DataAuditUtente = GUICtrlCreateCheckbox("", 37, 112, 17, 17) GUICtrlSetOnEvent(-1, "LanciaTastieraVirtuale") Global $checkbox_DescrizioneUtente = GUICtrlCreateCheckbox("", 37, 147, 17, 17) GUICtrlSetOnEvent(-1, "LanciaTastieraVirtuale") Global $checkbox_ID_Utente = GUICtrlCreateCheckbox("", 341, 147, 17, 17) GUICtrlSetOnEvent(-1, "LanciaTastieraVirtuale") Global $date_DataAuditUtente = GUICtrlCreateDate($sDataOdierna, 145, 110, 106, 24, 0) GUICtrlSetFont(-1, 10, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global $input_DescrizioneUtente = GUICtrlCreateInput("", 145, 147, 161, 24) GUICtrlSetFont(-1, 10, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global $input_ID_Utente = GUICtrlCreateInput("", 433, 147, 161, 24) GUICtrlSetFont(-1, 10, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global $button_AnteprimaReport = GUICtrlCreateButton("Anteprima Report", 624, 89, 91, 41, BitOR($BS_CENTER, $BS_VCENTER,$BS_MULTILINE)) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUICtrlSetOnEvent(-1, "HubFunzioniAnteprima") GUICtrlSetState(-1, $GUI_DISABLE) Global $button_StampaReport = GUICtrlCreateButton("Stampa Report", 624, 131, 91, 41, BitOR($BS_CENTER, $BS_VCENTER,$BS_MULTILINE)) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUICtrlSetOnEvent(-1, "HubFunzioniStampa") GUICtrlSetState(-1, $GUI_DISABLE) Global $lv_AnteprimaReport = GUICtrlCreateListView("Data / Ora|ID Utente|ID Processo|Descrizione|Commento", 3, 224, 1006, 505, -1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT)) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 400) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 100) $group_Query = GUICtrlCreateGroup(" Query ", 8, 64, 713, 113) GUICtrlSetFont(-1, 10, 400, 0, "Arial") GUICtrlCreateGroup("", -99, -99, 1, 1) $label_Titolo = GUICtrlCreateLabel("Stampa Report Audit", 358, 15, 292, 38) GUICtrlSetFont(-1, 22, 800, 0, "Arial") $label_UserGuide = GUICtrlCreateLabel("Seleziona il/i criterio/i di ricerca per la stampa dell'Audit Report", 21, 89, 343, 19) GUICtrlSetFont(-1, 9, 400, 0, "Arial") $label_DataAuditUtente = GUICtrlCreateLabel("Data Audit", 59, 112, 70, 20) GUICtrlSetFont(-1, 10, 800, 0, "Arial") $label_DescrizioneUtente = GUICtrlCreateLabel("Descrizione", 59, 147, 78, 20) GUICtrlSetFont(-1, 10, 800, 0, "Arial") $label_ID_Utente = GUICtrlCreateLabel("ID Utente", 363, 147, 62, 20) GUICtrlSetFont(-1, 10, 800, 0, "Arial") $label_AnteprimaReport = GUICtrlCreateLabel("Anteprima Report", 413, 188, 182, 28) GUICtrlSetFont(-1, 16, 800, 0, "Arial") GUISetState(@SW_SHOW, $form_StampaAudit) #EndRegion ### END Koda GUI section ### AdlibRegister("GestioneCampiGUI", 250) While 1 Sleep(100) WEnd Func ChiudiApplicazione() AdlibUnRegister("GestioneCampiGUI") ProcessClose("osk.exe") Exit EndFunc Func LanciaTastieraVirtuale() Select Case @GUI_CtrlId = $checkbox_DataAuditUtente GUICtrlSetState($date_DataAuditUtente, $GUI_FOCUS) If @OSArch = "X64" Then DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection Else If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf EndIf Case @GUI_CtrlId = $checkbox_DescrizioneUtente GUICtrlSetState($checkbox_DescrizioneUtente, $GUI_FOCUS) If @OSArch = "X64" Then DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection Else If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf EndIf Case @GUI_CtrlId = $checkbox_ID_Utente GUICtrlSetState($checkbox_ID_Utente, $GUI_FOCUS) If @OSArch = "X64" Then DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection Else If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED Then Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) If $iEsitoAvvioTastiera == 0 Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) Exit EndIf EndIf EndIf EndSelect EndFunc Func GestioneCampiGUI() ; Controllo sulla $checkbox_DataAuditUtente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED) Then GUICtrlSetState($date_DataAuditUtente, $GUI_ENABLE) $iRicercaData = 1 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 0 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 0 ; Cursori...=================================================================================================================> Else GUICtrlSetState($date_DataAuditUtente, $GUI_DISABLE) GUICtrlSetData($date_DataAuditUtente, $sDataOdierna) $iRicercaData = 0 EndIf ; Controllo sulla $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then GUICtrlSetState($input_DescrizioneUtente, $GUI_ENABLE) $iRicercaData = 0 $iRicercaDescrizione = 1 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 0 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 0 Else GUICtrlSetState($input_DescrizioneUtente, $GUI_DISABLE) GUICtrlSetData($input_DescrizioneUtente, "") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) $iRicercaDescrizione = 0 EndIf ; Controllo sulla $checkbox_DataAuditUtente E $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 1 $iRicercaID_Utente = 0 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 0 Else $iRicercaData_Descrizione = 0 EndIf ; Controllo sulla $checkbox_ID_Utente If(GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED) Then GUICtrlSetState($input_ID_Utente, $GUI_ENABLE) $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 1 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 0 Else GUICtrlSetState($input_ID_Utente, $GUI_DISABLE) GUICtrlSetData($input_ID_Utente, "") GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) $iRicercaID_Utente = 0 EndIf ; Controllo sulla $checkbox_DataAuditUtente E $checkbox_ID_Utente If(GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED And GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED) Then $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 0 $iRicercaData_ID = 1 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 0 Else $iRicercaData_ID = 0 EndIf ; Controllo sulla $checkbox_ID_Utente E $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 0 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 1 $iRicercaData_Descrizione_ID = 0 Else $iRicercaDescrizione_ID = 0 EndIf ; Controllo sulla $$checkbox_DataAuditUtente E $checkbox_DescrizioneUtente E $checkbox_ID_Utente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED And GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED) Then $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 0 $iRicercaID_Utente = 0 $iRicercaData_ID = 0 $iRicercaDescrizione_ID = 0 $iRicercaData_Descrizione_ID = 1 Else $iRicercaData_Descrizione_ID = 0 EndIf ; Controllo sulla $checkbox_DataAuditUtente O $checkbox_DescrizioneUtente O $checkbox_ID_Utente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED Or GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Or GUICtrlRead($checkbox_ID_Utente) = $GUI_CHECKED) Then GUICtrlSetState($button_AnteprimaReport, $GUI_ENABLE) GUICtrlSetState($button_StampaReport, $GUI_ENABLE) Else GUICtrlSetState($button_AnteprimaReport, $GUI_DISABLE) GUICtrlSetState($button_StampaReport, $GUI_DISABLE) EndIf EndFunc Func ControllaFileAudit($sPercorsoAudit, $sPercorsoChecker) Local $aFileCartellaAuditCopy = _FileListToArray($sPercorsoAudit, "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della lista dei file nella directory" & @CRLF & $sPercorsoAudit & @CRLF & "Errore: " & @error) Exit Else Local $iPID = Run("cmd.exe" & " /k " & '""' & $sPercorsoChecker & $sHmiCheckLogIntegrity & '"' & " " & '"' & $sPercorsoAudit & "\" & $aFileCartellaAuditCopy[1] & '""', "", @SW_HIDE, $STDOUT_CHILD) ; ' /k ""C:\Users\Portatile-60\Desktop\HmiCheckLogIntegrity.exe" "C:\Users\Portatile-60\Desktop\AuditTrailDosaggio0_20170327_151335_DOSAGGIO_PW_01.txt""') Local $sSTDOutRead = "" While 1 $sSTDOutRead &= StdoutRead($iPID) If @error Then ExitLoop WEnd ; MsgBox($MB_ICONINFORMATION, "Risultato Shell:", $sSTDOutRead) ; Rimuovere il commento ( ; ) prima del testo "MsgBox" per visualizzare il contenuto della Shell. Local $aContenutoShell = StringSplit(StringTrimRight(StringStripCR($sSTDOutRead), StringLen(@CRLF)), @CRLF, $STR_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante lo splitting del contenuto del Prompt dei Comandi." & @CRLF & "Errore: " & @error) Return False Else If(IsArray($aContenutoShell)) Then For $i = 0 To UBound($aContenutoShell) - 1 ; Nella versione presente sul Panel PC, la stringa della quale controlla ; la presenza nella Shell è "check succeeded." e non "Consistency check succeeded." ; Per riportare l'applicazione alla "versione precedente", sostiture ; "Consistency check succeeded." con "check succeeded." If(StringInStr($aContenutoShell[$i], "Consistency check succeeded.")) Then Return True EndIf Next EndIf EndIf EndIf EndFunc Func HubFunzioniAnteprima() If($iRicercaData == 1) Then CreaListView_PerData() ElseIf($iRicercaDescrizione == 1) Then CreaListView_PerDescrizione() ElseIf($iRicercaData_Descrizione == 1) Then CreaListView_PerDataDescrizione() ElseIf($iRicercaData_ID == 1) Then CreaListView_PerDataID() ElseIf($iRicercaDescrizione_ID == 1) Then CreaListView_PerDescrizione_ID() ElseIf($iRicercaData_Descrizione_ID == 1) Then CreaListView_PerData_Descrizione_ID() ElseIf($iRicercaID_Utente == 1) Then CreaListView_PerID_Utente() EndIf EndFunc Func CreaListView_PerData() If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed)) Then $sItem_ListView = _ $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'." & @CRLF & _ "Inserisci una nuova Data per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndFunc Func CreaListView_PerDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sItem_ListView = _ $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'." & @CRLF & _ "Inserisci una nuova Descrizione per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func CreaListView_PerDataDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sItem_ListView = _ $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'." & @CRLF & _ "Inserisci una nuova data e una nuova descrizione per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func CreaListView_PerDataID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sItem_ListView = _ $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Data e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func CreaListView_PerDescrizione_ID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sItem_ListView = _ $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Descrizione e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndIf EndFunc Func CreaListView_PerData_Descrizione_ID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sItem_ListView = _ $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con: " & @CRLF & _ "Data = '" & $sDataReportUtente_Reversed & "'" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Data, una nuova Descrizione e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndIf EndFunc Func CreaListView_PerID_Utente() MsgBox($MB_ICONINFORMATION, "", "CreaListView_PerID_Utente") Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) _GUICtrlListView_DeleteAllItems($lv_AnteprimaReport) Local $sItem_ListView = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sItem_ListView = _ $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & "|" & _ $aContenutoFileAudit_Split[3] & "|" & _ $aContenutoFileAudit_Split[4] & "|" & _ $aContenutoFileAudit_Split[5] & "|" & _ $aContenutoFileAudit_Split[6] GUICtrlCreateListViewItem($sItem_ListView, $lv_AnteprimaReport) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next If($iEsitoRicerca == 0) Then MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func HubFunzioniStampa() If($iRicercaData == 1) Then StampaReportAudit_PerData() ElseIf($iRicercaDescrizione == 1) Then StampaReportAudit_PerDescrizione() ElseIf($iRicercaData_Descrizione == 1) Then StampaReportAudit_PerDataDescrizione() ElseIf($iRicercaData_ID == 1) Then StampaReportAudit_PerDataID() ElseIf($iRicercaDescrizione_ID == 1) Then StampaReportAudit_PerDescrizione_ID() ElseIf($iRicercaData_Descrizione_ID == 1) Then StampaReportAudit_PerData_Descrizione_ID() ElseIf($iRicercaID_Utente == 1) Then StampaReportAudit_PerID_Utente() EndIf EndFunc Func StampaReportAudit_PerData() ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'." & @CRLF & _ "Inserisci una nuova Data per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sRiga = _ '"' & $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'." & @CRLF & _ "Inserisci una nuova Descrizione per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDataDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'." & @CRLF & _ "Inserisci una nuova Data e una nuova Descrizione per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDataID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Data = '" & $sDataReportUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Data e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDescrizione_ID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sRiga = _ '"' & $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con:" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Descrizione e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerData_Descrizione_ID() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente) And _ StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con: " & @CRLF & _ "Data = '" & $sDataReportUtente_Reversed & "'" & @CRLF & _ "Descrizione = '" & $sDescrizioneUtente & "'" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci una nuova Data, una nuova Descrizione e un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerID_Utente() Local $sID_Utente = GUICtrlRead($input_ID_Utente) If($sID_Utente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'ID Utente' non può essere vuoto!") GUICtrlSetBkColor($input_ID_Utente, $COLOR_RED) GUICtrlSetState($input_ID_Utente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_ID_Utente, $COLOR_WHITE) If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[3], $sID_Utente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sRiga = _ '"' & $sDataReport_Reversed & StringReplace($aContenutoFileAudit_Split[1], $sDataReport, "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\Report_HauptPharma.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con" & @CRLF & _ "ID Utente = '" & $sID_Utente & "'." & @CRLF & _ "Inserisci un nuovo ID Utente per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc That's the script Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
BrewManNH Posted May 15, 2017 Posted May 15, 2017 You have no GUIRegisterMsg code in there, nor do you have anywhere in it that references any WM_* commands. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
FrancescoDiMuro Posted May 15, 2017 Author Posted May 15, 2017 1 minute ago, BrewManNH said: You have no GUIRegisterMsg code in there, nor do you have anywhere in it that references any WM_* commands. Ups! Wrong code That's it expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Icone\icona_StampaAudit.ico #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Region INCLUDE #include <AutoItConstants.au3> #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <FileConstants.au3> #include <File.au3> #include <Array.au3> #include <ButtonConstants.au3> #include <DateTimeConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Date.au3> #include <ColorConstants.au3> #include <WinAPI.au3> #include <EditConstants.au3> ; $EN_FOCUS #EndRegion Opt("GUIOnEventMode", 1) ; A4 Portrait Size in Px @72 DPI = 842 W x 595 H #Region Global Declarations Global $sHmiCheckLogIntegrity = "\HmiCheckLogIntegrity.exe" ; ------------------------------ HmiCheckLogIntegrity.exe ------------------------------ ; Possibili valori dell'HmiCheckLogIntegrity: ; < 0 : Errori vari, come il formato del file non valido, nessun file disponibile... ; ; 1 : L'Audit Trail verificato è valido; ; > 0 : Numero di riga in cui è stato manipolato l'Audit Trail verificato. ; ------------------------------------------------------------------------------------- ; Se WinCC sta collezionando ancora i dati, l'HmiCheckLogIntegrity restituirà il ; seguente messaggio: ; "The specified source file could not be opened!" ; ------------------------------------------------------------------------------------- Global $sFileConfigurazione = @ScriptDir & "\Configurazione\configurazione_audit.ini" Global $sDataOdierna = @MDAY & "/" & @MON & "/" & @YEAR Global $sFileCrystalReports = @ScriptDir & "\file_database_cr.txt" Global $iRicercaData = 0, $iRicercaDescrizione = 0, $iRicercaData_Descrizione = 0 Global $sFileTastieraVirtuale = @WindowsDir & "\System32\osk.exe" #EndRegion $form_StampaAudit = GUICreate("Stampa Report Audit:", 412, 192, @DesktopWidth/2 - 206, @DesktopHeight/2 - 203) ; 582, 277 GUISetOnEvent($GUI_EVENT_CLOSE, "ChiudiApplicazione") Global $checkbox_DataAuditUtente = GUICtrlCreateCheckbox("", 61, 88, 17, 17) Global $checkbox_DescrizioneUtente = GUICtrlCreateCheckbox("", 61, 123, 17, 17) ;GUICtrlSetOnEvent(-1, "LanciaTastieraVirtuale") Global $date_DataAuditUtente = GUICtrlCreateDate($sDataOdierna, 193, 86, 114, 24, 0) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetFont(-1, 10, 400, 0, "Arial") Global $input_DescrizioneUtente = GUICtrlCreateInput("", 193, 123, 161, 24) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetFont(-1, 10, 400, 0, "Arial") Global $button_StampaReport = GUICtrlCreateButton("Stampa Report", 152, 158, 107, 25) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetOnEvent(-1, "HubFunzioni") $label_Titolo = GUICtrlCreateLabel("Stampa Report Audit", 84, 15, 243, 33) GUICtrlSetFont(-1, 18, 800, 0, "Arial") $label_UserGuide = GUICtrlCreateLabel("Seleziona il/i criterio/i di ricerca per la stampa dell'Audit Report", 34, 57, 343, 19) GUICtrlSetFont(-1, 9, 400, 0, "Arial") $label_DataAuditUtente = GUICtrlCreateLabel("Data Audit", 83, 88, 70, 20) GUICtrlSetFont(-1, 10, 800, 0, "Arial") $label_DescrizioneUtente = GUICtrlCreateLabel("Descrizione", 83, 123, 78, 20) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUISetState(@SW_SHOW, $form_StampaAudit) #EndRegion ### END Koda GUI section ### AdlibRegister("GestioneCampiGUI", 250) GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") While 1 Sleep(100) WEnd Func ChiudiApplicazione() AdlibUnRegister("GestioneCampiGUI") ProcessClose("osk.exe") Exit EndFunc Func MY_WM_COMMAND($hWnd, $iMsg, $lParam, $wParam) ; High-order Word of $wParam is the Notification Code ( $EN_CHANGE, $EN_SETFOCUS, $EN_KILLFOCUS ) ; Low-order Word of $wParam specifies the ID from where the Notification Code has been "launched" ( Control_ID... ) ; $lParam specifies the HANDLE from where the Notification Code has been "launched" Local $iNotificationCode = BitShift($wParam, 16) Local $iID_From = BitAND($wParam, 0x0000FFFF) Local $hWnd_From = $lParam ; Optional Local $hCtrl = GUICtrlGetHandle($input_DescrizioneUtente) Switch $iID_From Case $input_DescrizioneUtente Switch $iNotificationCode Case $EN_SETFOCUS ConsoleWrite("Control with ID #" & $iID_From & " has focus" & @CRLF) Case $EN_KILLFOCUS ConsoleWrite("Control with ID #" & $iID_From & " has lost focus" & @CRLF) ;~ If @AutoItExe = "X64" Then ;~ DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection ;~ If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then ;~ Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) ;~ If $iEsitoAvvioTastiera == 0 Then ;~ MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) ;~ Exit ;~ EndIf ;~ EndIf ;~ DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection ;~ Else ;~ If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then ;~ Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) ;~ If $iEsitoAvvioTastiera == 0 Then ;~ MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) ;~ Exit ;~ EndIf ;~ EndIf ;~ EndIf ;~ GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;~ Func LanciaTastieraVirtuale() ;~ Select ;~ Case @GUI_CtrlId = $checkbox_DescrizioneUtente ;~ GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) ;~ If @OSArch = "X64" Then ;~ DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 1) ;~ Turns On 64 Bit Redirection ;~ If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then ;~ Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) ;~ If $iEsitoAvvioTastiera == 0 Then ;~ MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) ;~ Exit ;~ EndIf ;~ EndIf ;~ DllCall("kernel32.dll", "boolean", "Wow64DisableWow64FsRedirection", "boolean", 0) ;~ Turns Off 64 Bit Redirection ;~ Else ;~ If Not (ProcessExists("osk.exe")) And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED Then ;~ Local $iEsitoAvvioTastiera = ShellExecute($sFileTastieraVirtuale) ;~ If $iEsitoAvvioTastiera == 0 Then ;~ MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'avvio della tastiera virtuale." & @CRLF & "Errore: " & @error) ;~ Exit ;~ EndIf ;~ EndIf ;~ EndIf ;~ EndSelect ;~ EndFunc Func GestioneCampiGUI() ; Controllo sulla $checkbox_DataAuditUtente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED) Then GUICtrlSetState($date_DataAuditUtente, $GUI_ENABLE) $iRicercaData = 1 Else GUICtrlSetState($date_DataAuditUtente, $GUI_DISABLE) GUICtrlSetData($date_DataAuditUtente, $sDataOdierna) $iRicercaData = 0 EndIf ; Controllo sulla $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then GUICtrlSetState($input_DescrizioneUtente, $GUI_ENABLE) $iRicercaDescrizione = 1 Else GUICtrlSetState($input_DescrizioneUtente, $GUI_DISABLE) GUICtrlSetData($input_DescrizioneUtente, "") $iRicercaDescrizione = 0 EndIf ; Controllo sulla $checkbox_DataAuditUtente E $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED And GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then $iRicercaData = 0 $iRicercaDescrizione = 0 $iRicercaData_Descrizione = 1 Else $iRicercaData_Descrizione = 0 EndIf ; Controllo sulla $checkbox_DataAuditUtente O $checkbox_DescrizioneUtente If(GUICtrlRead($checkbox_DataAuditUtente) = $GUI_CHECKED Or GUICtrlRead($checkbox_DescrizioneUtente) = $GUI_CHECKED) Then GUICtrlSetState($button_StampaReport, $GUI_ENABLE) Else GUICtrlSetState($button_StampaReport, $GUI_DISABLE) EndIf EndFunc Func ControllaFileAudit($sPercorsoAudit, $sPercorsoChecker) Local $aFileCartellaAuditCopy = _FileListToArray($sPercorsoAudit, "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della lista dei file nella directory" & @CRLF & $sPercorsoAudit & @CRLF & "Errore: " & @error) Exit Else Local $iPID = Run("cmd.exe" & " /k " & '""' & $sPercorsoChecker & $sHmiCheckLogIntegrity & '"' & " " & '"' & $sPercorsoAudit & "\" & $aFileCartellaAuditCopy[1] & '""', "", @SW_HIDE, $STDOUT_CHILD) ; ' /k ""C:\Users\Portatile-60\Desktop\HmiCheckLogIntegrity.exe" "C:\Users\Portatile-60\Desktop\AuditTrailDosaggio0_20170327_151335_DOSAGGIO_PW_01.txt""') Local $sSTDOutRead = "" While 1 $sSTDOutRead &= StdoutRead($iPID) If @error Then ExitLoop WEnd ; MsgBox($MB_ICONINFORMATION, "Risultato Shell:", $sSTDOutRead) ; Rimuovere il commento ( ; ) prima del testo "MsgBox" per visualizzare il contenuto della Shell. Local $aContenutoShell = StringSplit(StringTrimRight(StringStripCR($sSTDOutRead), StringLen(@CRLF)), @CRLF, $STR_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante lo splitting del contenuto del Prompt dei Comandi." & @CRLF & "Errore: " & @error) Return False Else If(IsArray($aContenutoShell)) Then For $i = 0 To UBound($aContenutoShell) - 1 ; Nella versione presente sul Panel PC, la stringa della quale controlla ; la presenza nella Shell è "check succeeded." e non "Consistency check succeeded." ; Per riportare l'applicazione alla "versione precedente", sostiture ; "Consistency check succeeded." con "check succeeded." If(StringInStr($aContenutoShell[$i], "Consistency check succeeded.")) Then Return True EndIf Next EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerData() ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\ReportAudit_Janssen.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con la data " & $sDataReportUtente & "." & @CRLF & _ "Inserisci una nuova data per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $aDataReport_Split = "" Local $sDataReport = "" Local $sDataReport_Reversed = "" Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sDataReport = StringTrimRight($aContenutoFileAudit_Split[1], 9) $aDataReport_Split = StringSplit($sDataReport, "-", $STR_NOCOUNT) $sDataReport_Reversed = $aDataReport_Split[2] & "/" & $aDataReport_Split[1] & "/" & $aDataReport_Split[0] $sRiga = _ '"' & $sDataReport_Reversed & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\ReportAudit_Janssen.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con la descrizione " & $sDescrizioneUtente & "." & @CRLF & _ "Inserisci una nuova descrizione per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func StampaReportAudit_PerDataDescrizione() Local $sDescrizioneUtente = GUICtrlRead($input_DescrizioneUtente) If($sDescrizioneUtente = "") Then MsgBox($MB_ICONERROR, "Errore!", "Il campo 'Descrizione' non può essere vuoto!") GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_RED) GUICtrlSetState($input_DescrizioneUtente, $GUI_FOCUS) Else GUICtrlSetBkColor($input_DescrizioneUtente, $COLOR_WHITE) ; Eliminazione del file di report precedentemente generato If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) EndIf If(FileExists($sFileConfigurazione) == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Il file di configurazione" & @CRLF & $sFileConfigurazione & @CRLF & "non e' stato trovato.") Else Local $aSezioniConfigurazione = IniReadSection($sFileConfigurazione, "CONFIGURAZIONE_AUDIT") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della sezione del file di configurazione." & @CRLF & "Errore: " & @error) Exit Else If(ControllaFileAudit($aSezioniConfigurazione[1][1], $aSezioniConfigurazione[2][1]) == True) Then Local $aFileCartellaAudit = _FileListToArray($aSezioniConfigurazione[1][1], "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione della lista dei file nella cartella:" & @CRLF & $aSezioniConfigurazione[1][1] & @CRLF & "Errore: " & @error) Exit Else Local $sFileAudit = $aSezioniConfigurazione[1][1] & "\" & $aFileCartellaAudit[1] Local $hFileAudit = FileOpen($sFileAudit, $FO_READ) If($hFileAudit == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileAudit) Else Local $aContenutoFileAudit = "" _FileReadToArray($sFileAudit, $aContenutoFileAudit, $FRTA_NOCOUNT) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file" & @CRLF & $sFileAudit & @CRLF & "Errore: " & @error) Exit Else FileClose($hFileAudit) If(FileExists($sFileCrystalReports) == 1) Then FileDelete($sFileCrystalReports) _FileCreate($sFileCrystalReports) If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la crazione del file" & @CRLF & $sFileCrystalReports & @CRLF & "Errore: " & @error) Exit EndIf EndIf Local $hFileCrystalReports = FileOpen($sFileCrystalReports, $FO_APPEND) If($hFileCrystalReports == -1) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file" & @CRLF & $sFileCrystalReports) Exit Else Local $sRiga = "" Local $iEsitoRicerca = 0 Local $sDataReportUtente = GUICtrlRead($date_DataAuditUtente) Local $aDataReportUtente_Split = StringSplit($sDataReportUtente, "/", $STR_NOCOUNT) Local $sDataReportUtente_Reversed = $aDataReportUtente_Split[2] & "-" & $aDataReportUtente_Split[1] & "-" & $aDataReportUtente_Split[0] Local $aContenutoFileAudit_Split = "" Local $sDataOraUltimaRiga = "" FileWriteLine($hFileCrystalReports, '"DateTimeStamp","UserID","ProcessID","Description","Comment"' & @CRLF) For $i = 1 To UBound($aContenutoFileAudit) - 2 $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], @TAB, ";") $aContenutoFileAudit[$i] = StringReplace($aContenutoFileAudit[$i], '"', "") $aContenutoFileAudit_Split = StringSplit($aContenutoFileAudit[$i], ";", $STR_NOCOUNT) If(StringInStr($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed) And _ StringInStr($aContenutoFileAudit_Split[5], $sDescrizioneUtente)) Then $sRiga = _ '"' & $sDataReportUtente & " " & StringReplace($aContenutoFileAudit_Split[1], $sDataReportUtente_Reversed & " ", "") & '"' & "," & _ '"' & $aContenutoFileAudit_Split[3] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[4] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[5] & '"' & "," & _ '"' & $aContenutoFileAudit_Split[6] & '"' & @CRLF FileWriteLine($hFileCrystalReports, $sRiga) $iEsitoRicerca+=1 $sDataOraUltimaRiga = $aContenutoFileAudit_Split[1] EndIf Next FileWriteLine($hFileCrystalReports, _ '""' & "," & _ '"System"' & "," & _ '"Application"' & "," & _ '"Report Generato il: ' & _Now() & '"' & "," & _ '""') FileClose($hFileCrystalReports) If($iEsitoRicerca > 0) Then Local $iEsitoShell = ShellExecute(@ScriptDir & "\CrystalReports\Eseguibile\bin\Debug\ReportAudit_Janssen.exe") ; Report_HauptPharma.exe If($iEsitoShell == 0) Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la creazione del report!" & @CRLF & "Errore: " & @error) EndIf Exit Else MsgBox($MB_ICONWARNING, "Attenzione:", "Nessuna corrispondenza trovata con la data " & $sDataReportUtente & @CRLF & _ "e la descrizione " & $sDescrizioneUtente & "." & @CRLF & _ "Inserisci una nuova data e una nuova descrizione per creare un report.") EndIf EndIf EndIf EndIf EndIf Else MsgBox($MB_ICONERROR, "Errore!", "L'Audit Trail non è più valido." & @CRLF & "File corrotto e/o modificato.") Exit EndIf EndIf EndIf EndIf EndFunc Func HubFunzioni() If($iRicercaData == 1) Then StampaReportAudit_PerData() ElseIf($iRicercaDescrizione == 1) Then StampaReportAudit_PerDescrizione() ElseIf($iRicercaData_Descrizione == 1) Then StampaReportAudit_PerDataDescrizione() EndIf EndFunc Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
Danyfirex Posted May 15, 2017 Posted May 15, 2017 (edited) Hello change the oder of COMMAND function's parameters. from $hWnd, $iMsg, $lParam, $wParam to $hWnd, $iMsg, $wParam,$lParam Saludos Edited May 15, 2017 by Danyfirex Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut
FrancescoDiMuro Posted May 16, 2017 Author Posted May 16, 2017 15 hours ago, Danyfirex said: Hello change the oder of COMMAND function's parameters. from $hWnd, $iMsg, $lParam, $wParam to $hWnd, $iMsg, $wParam,$lParam Saludos Thank you so much @Danyfirex! Have a wonderful day Francesco Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
FrancescoDiMuro Posted May 29, 2017 Author Posted May 29, 2017 Good morning guys! I have a little issue... When I got the focus from the textbox, I write to it through the virtual keyobard I display everytime the user click in the textbox ( if it doesn't exist ). But, when I close the virtual keyboard, it is launched again, because seems that the textbox receive the focus again, even If I didn't put anything like GUICtrlSetState(txt_UserTextbox, $GUI_FOCUS) How can I resolve this little issue? Thank you Click here to see my signature: Spoiler ALWAYS GOOD TO READ: Forum Rules Forum Etiquette
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now