From d41c5775ad547ac3b37299193252337c17b70385 Mon Sep 17 00:00:00 2001 From: "DESKTOP-999R8N3\\CJY" Date: Mon, 28 Aug 2023 13:07:51 +0900 Subject: [PATCH] =?UTF-8?q?Part11=20=EC=B6=94=EA=B0=80=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controls/ControlUserSetting.Designer.cs | 4 +- INT69DB_2A/DataStore.cs | 36 +- .../DialogForms/DialogFormDataViewerFilter.cs | 4 +- .../DialogForms/DialogFormLogOn.Designer.cs | 442 +++---- INT69DB_2A/DialogForms/DialogFormLogOn.cs | 438 +++++-- INT69DB_2A/DialogForms/DialogFormLogOn.resx | 6 +- INT69DB_2A/DialogForms/DialogFormMessage.cs | 340 ++--- ...KeyPad1.cs => DialogFormPasswordKeyPad.cs} | 54 +- ...s => DialogFormPasswordKeyPad.designer.cs} | 2 +- ...ad1.resx => DialogFormPasswordKeyPad.resx} | 0 INT69DB_2A/DialogForms/DialogFormYesNo.cs | 43 + INT69DB_2A/Forms/FormCommunication.cs | 26 +- INT69DB_2A/Forms/FormDataBackup_Part11.cs | 5 +- INT69DB_2A/Forms/FormDataViewer.Designer.cs | 63 +- INT69DB_2A/Forms/FormDataViewer.cs | 20 +- INT69DB_2A/Forms/FormDataViewer.resx | 5 +- .../Forms/FormEquipmentSetting.Designer.cs | 362 +++--- INT69DB_2A/Forms/FormEquipmentSetting.cs | 32 +- INT69DB_2A/Forms/FormEquipmentSetting.resx | 128 -- ...gner.cs => FormInitialization.Designer.cs} | 4 +- ...mFactoryReset.cs => FormInitialization.cs} | 6 +- ...toryReset.resx => FormInitialization.resx} | 0 INT69DB_2A/Forms/FormMain.cs | 70 +- INT69DB_2A/Forms/FormMainDisplay.cs | 216 +++- INT69DB_2A/Forms/FormMenu.Designer.cs | 106 +- INT69DB_2A/Forms/FormMenu.cs | 107 +- INT69DB_2A/Forms/FormMenu.resx | 513 +++++++- INT69DB_2A/Forms/FormOption.Designer.cs | 309 +++++ INT69DB_2A/Forms/FormOption.cs | 140 ++ INT69DB_2A/Forms/FormOption.resx | 1132 +++++++++++++++++ INT69DB_2A/Forms/FormUserEditor.cs | 116 +- .../Forms/FormUserGroupEditor.Designer.cs | 266 ++-- INT69DB_2A/Forms/FormUserGroupEditor.cs | 261 +--- INT69DB_2A/Forms/FormUserGroupEditor.resx | 414 ------ INT69DB_2A/INT69DB_2A.csproj | 42 +- .../UserManager.Structure.cs | 10 +- INT69DB_2A/bin/Release/DllAes128.dll | Bin 74752 -> 74752 bytes INT69DB_2A/bin/Release/DllUserMgr.dll | Bin 49664 -> 49664 bytes ...2A.Controls.ControlCalibration10.resources | Bin 235622 -> 0 bytes ..._2A.Controls.ControlCalibration2.resources | Bin 39612 -> 0 bytes ..._2A.Controls.ControlCalibration3.resources | Bin 54165 -> 0 bytes ..._2A.Controls.ControlCalibration4.resources | Bin 68274 -> 0 bytes ..._2A.Controls.ControlCalibration5.resources | Bin 82806 -> 0 bytes ..._2A.Controls.ControlCalibration6.resources | Bin 94254 -> 0 bytes ..._2A.Controls.ControlCalibration7.resources | Bin 168989 -> 0 bytes ..._2A.Controls.ControlCalibration8.resources | Bin 192298 -> 0 bytes ...2A.Controls.ControlConfiguration.resources | Bin 180 -> 0 bytes ...2A.Controls.ControlEquipmentTest.resources | Bin 180 -> 0 bytes ..._2A.Controls.ControlMainDisplay2.resources | Bin 43517 -> 0 bytes ...ols.ControlMainDisplayDotGraph10.resources | Bin 140343 -> 0 bytes ...rols.ControlMainDisplayDotGraph2.resources | Bin 32681 -> 0 bytes ...rols.ControlMainDisplayDotGraph3.resources | Bin 46246 -> 0 bytes ...rols.ControlMainDisplayDotGraph4.resources | Bin 59662 -> 0 bytes ...rols.ControlMainDisplayDotGraph5.resources | Bin 67352 -> 0 bytes ...rols.ControlMainDisplayDotGraph6.resources | Bin 80930 -> 0 bytes ...rols.ControlMainDisplayDotGraph7.resources | Bin 93165 -> 0 bytes ...rols.ControlMainDisplayDotGraph8.resources | Bin 106525 -> 0 bytes ...ControlMainDisplayEachBarGraph10.resources | Bin 147224 -> 0 bytes ....ControlMainDisplayEachBarGraph2.resources | Bin 50801 -> 0 bytes ....ControlMainDisplayEachBarGraph3.resources | Bin 64386 -> 0 bytes ....ControlMainDisplayEachBarGraph4.resources | Bin 77822 -> 0 bytes ....ControlMainDisplayEachBarGraph5.resources | Bin 74127 -> 0 bytes ....ControlMainDisplayEachBarGraph6.resources | Bin 87725 -> 0 bytes ....ControlMainDisplayEachBarGraph7.resources | Bin 99986 -> 0 bytes ....ControlMainDisplayEachBarGraph8.resources | Bin 113366 -> 0 bytes ...ntrols.ControlMainDisplayTable10.resources | Bin 139917 -> 0 bytes ...ontrols.ControlMainDisplayTable2.resources | Bin 50801 -> 0 bytes ...ontrols.ControlMainDisplayTable3.resources | Bin 64386 -> 0 bytes ...ontrols.ControlMainDisplayTable4.resources | Bin 77822 -> 0 bytes ...ontrols.ControlMainDisplayTable5.resources | Bin 74127 -> 0 bytes ...ontrols.ControlMainDisplayTable6.resources | Bin 87725 -> 0 bytes ...ontrols.ControlMainDisplayTable7.resources | Bin 99986 -> 0 bytes ...ontrols.ControlMainDisplayTable8.resources | Bin 113366 -> 0 bytes ...B_2A.DialogForms.DialogFormLogOn.resources | Bin 56221 -> 0 bytes ...2A.DialogForms.DialogFormMessage.resources | Bin 4382 -> 0 bytes ....DialogForms.DialogFormNumKeyPad.resources | Bin 180 -> 0 bytes ...gForms.DialogFormPasswordKeyPad1.resources | Bin 180 -> 0 bytes ...B_2A.DialogForms.DialogFormYesNo.resources | Bin 4382 -> 0 bytes ...INT69DB_2A.Forms.FormCalibration.resources | Bin 85993 -> 0 bytes ...T69DB_2A.Forms.FormConfiguration.resources | Bin 55483 -> 0 bytes .../INT69DB_2A.Forms.FormDataBackup.resources | Bin 46595 -> 0 bytes ...DB_2A.Forms.FormEquipmentSetting.resources | Bin 30764 -> 0 bytes ...T69DB_2A.Forms.FormEquipmentTest.resources | Bin 72317 -> 0 bytes ...NT69DB_2A.Forms.FormFactoryReset.resources | Bin 24258 -> 0 bytes .../INT69DB_2A.Forms.FormIOTest.resources | Bin 24439 -> 0 bytes ...INT69DB_2A.Forms.FormInformation.resources | Bin 34812 -> 0 bytes .../Debug/INT69DB_2A.Forms.FormMain.resources | Bin 180 -> 0 bytes ...INT69DB_2A.Forms.FormMainDisplay.resources | Bin 261323 -> 0 bytes .../Debug/INT69DB_2A.Forms.FormMenu.resources | Bin 327542 -> 0 bytes ...NT69DB_2A.Forms.FormMotorSetting.resources | Bin 369586 -> 0 bytes ...T69DB_2A.Forms.FormProgramUpdate.resources | Bin 9584 -> 0 bytes ...T69DB_2A.Forms.FormSystemSetting.resources | Bin 274435 -> 0 bytes ...INT69DB_2A.Forms.FormTimeSetting.resources | Bin 156424 -> 0 bytes ...INT69DB_2A.Forms.FormUserSetting.resources | Bin 68960 -> 0 bytes .../INT69DB_2A.Properties.Resources.resources | Bin 180 -> 0 bytes .../INT69DB_2A.csproj.FileListAbsolute.txt | 134 -- .../INT69DB_2A.csproj.GenerateResource.Cache | Bin 5425 -> 0 bytes INT69DB_2A/obj/Debug/INT69DB_2A.exe | Bin 6241280 -> 0 bytes INT69DB_2A/obj/Debug/INT69DB_2A.pdb | Bin 1699328 -> 0 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 20003 -> 0 bytes .../Properties.Resources.Designer.cs.dll | Bin 3584 -> 0 bytes ...B_2A.DialogForms.DialogFormLogOn.resources | Bin 54850 -> 54850 bytes ...gForms.DialogFormPasswordKeyPad1.resources | Bin 180 -> 0 bytes ...DB_2A.Forms.FormEquipmentSetting.resources | Bin 90432 -> 82831 bytes ...NT69DB_2A.Forms.FormFactoryReset.resources | Bin 9888 -> 0 bytes .../INT69DB_2A.Forms.FormMenu.resources | Bin 521924 -> 552268 bytes ...9DB_2A.Forms.FormUserGroupEditor.resources | Bin 69194 -> 44588 bytes ...3A.Controls.ControlCalibration10.resources | Bin 235622 -> 0 bytes ..._3A.Controls.ControlCalibration2.resources | Bin 39612 -> 0 bytes ..._3A.Controls.ControlCalibration3.resources | Bin 54165 -> 0 bytes ..._3A.Controls.ControlCalibration4.resources | Bin 68274 -> 0 bytes ..._3A.Controls.ControlCalibration5.resources | Bin 82806 -> 0 bytes ..._3A.Controls.ControlCalibration6.resources | Bin 94254 -> 0 bytes ..._3A.Controls.ControlCalibration7.resources | Bin 168989 -> 0 bytes ..._3A.Controls.ControlCalibration8.resources | Bin 192298 -> 0 bytes ...3A.Controls.ControlConfiguration.resources | Bin 180 -> 0 bytes ...3A.Controls.ControlEquipmentTest.resources | Bin 180 -> 0 bytes ..._3A.Controls.ControlMainDisplay2.resources | Bin 43517 -> 0 bytes ...ols.ControlMainDisplayDotGraph10.resources | Bin 140343 -> 0 bytes ...rols.ControlMainDisplayDotGraph2.resources | Bin 32681 -> 0 bytes ...rols.ControlMainDisplayDotGraph3.resources | Bin 46246 -> 0 bytes ...rols.ControlMainDisplayDotGraph4.resources | Bin 59662 -> 0 bytes ...rols.ControlMainDisplayDotGraph5.resources | Bin 67352 -> 0 bytes ...rols.ControlMainDisplayDotGraph6.resources | Bin 80930 -> 0 bytes ...rols.ControlMainDisplayDotGraph7.resources | Bin 93165 -> 0 bytes ...rols.ControlMainDisplayDotGraph8.resources | Bin 106525 -> 0 bytes ...ControlMainDisplayEachBarGraph10.resources | Bin 147224 -> 0 bytes ....ControlMainDisplayEachBarGraph2.resources | Bin 50801 -> 0 bytes ....ControlMainDisplayEachBarGraph3.resources | Bin 64386 -> 0 bytes ....ControlMainDisplayEachBarGraph4.resources | Bin 77822 -> 0 bytes ....ControlMainDisplayEachBarGraph5.resources | Bin 74127 -> 0 bytes ....ControlMainDisplayEachBarGraph6.resources | Bin 87725 -> 0 bytes ....ControlMainDisplayEachBarGraph7.resources | Bin 99986 -> 0 bytes ....ControlMainDisplayEachBarGraph8.resources | Bin 113366 -> 0 bytes ...ntrols.ControlMainDisplayTable10.resources | Bin 139917 -> 0 bytes ...ontrols.ControlMainDisplayTable2.resources | Bin 50801 -> 0 bytes ...ontrols.ControlMainDisplayTable3.resources | Bin 64386 -> 0 bytes ...ontrols.ControlMainDisplayTable4.resources | Bin 77822 -> 0 bytes ...ontrols.ControlMainDisplayTable5.resources | Bin 74127 -> 0 bytes ...ontrols.ControlMainDisplayTable6.resources | Bin 87725 -> 0 bytes ...ontrols.ControlMainDisplayTable7.resources | Bin 99986 -> 0 bytes ...ontrols.ControlMainDisplayTable8.resources | Bin 113366 -> 0 bytes ...B_3A.DialogForms.DialogFormLogOn.resources | Bin 56221 -> 0 bytes ...3A.DialogForms.DialogFormMessage.resources | Bin 4382 -> 0 bytes ....DialogForms.DialogFormNumKeyPad.resources | Bin 180 -> 0 bytes ...gForms.DialogFormPasswordKeyPad1.resources | Bin 180 -> 0 bytes ...B_3A.DialogForms.DialogFormYesNo.resources | Bin 4382 -> 0 bytes ...INT69DB_3A.Forms.FormCalibration.resources | Bin 85993 -> 0 bytes ...T69DB_3A.Forms.FormConfiguration.resources | Bin 55483 -> 0 bytes .../INT69DB_3A.Forms.FormDataBackup.resources | Bin 46595 -> 0 bytes ...DB_3A.Forms.FormEquipmentSetting.resources | Bin 30764 -> 0 bytes ...T69DB_3A.Forms.FormEquipmentTest.resources | Bin 72317 -> 0 bytes ...NT69DB_3A.Forms.FormFactoryReset.resources | Bin 24258 -> 0 bytes .../INT69DB_3A.Forms.FormIOTest.resources | Bin 24439 -> 0 bytes ...INT69DB_3A.Forms.FormInformation.resources | Bin 34812 -> 0 bytes .../INT69DB_3A.Forms.FormMain.resources | Bin 180 -> 0 bytes ...INT69DB_3A.Forms.FormMainDisplay.resources | Bin 261323 -> 0 bytes .../INT69DB_3A.Forms.FormMenu.resources | Bin 327542 -> 0 bytes ...NT69DB_3A.Forms.FormMotorSetting.resources | Bin 369586 -> 0 bytes ...T69DB_3A.Forms.FormProgramUpdate.resources | Bin 9584 -> 0 bytes ...T69DB_3A.Forms.FormSystemSetting.resources | Bin 274435 -> 0 bytes ...INT69DB_3A.Forms.FormTimeSetting.resources | Bin 156424 -> 0 bytes ...INT69DB_3A.Forms.FormUserSetting.resources | Bin 68960 -> 0 bytes .../INT69DB_3A.csproj.FileListAbsolute.txt | 67 - .../INT69DB_3A.csproj.GenerateResource.Cache | Bin 6049 -> 0 bytes .../Properties.Resources.Designer.cs.dll | Bin 3584 -> 3584 bytes .../INT69DB_2A_ImageDll.csproj | 183 ++- .../INT69DB_2A_ImageDll/ImageDll.cs | 177 ++- .../INT69DB_2A_ImageDll/Resource1.Designer.cs | 230 +++- .../INT69DB_2A_ImageDll/Resource1.resx | 150 ++- .../Resources/LoginImage1.png | Bin 0 -> 4625 bytes .../Resources/LoginImage2.png | Bin 0 -> 6380 bytes .../Resources/chnFormMenuOptionDisable.png | Bin 0 -> 8415 bytes .../Resources/chnFormMenuOptionDown.png | Bin 0 -> 12123 bytes .../Resources/chnFormMenuOptionUp.png | Bin 0 -> 7500 bytes .../Resources/chnMainLoginCancelDisable.png | Bin 0 -> 5879 bytes .../Resources/chnMainLoginCancelDown.png | Bin 0 -> 6968 bytes .../Resources/chnMainLoginCancelUp.png | Bin 0 -> 6794 bytes .../Resources/chnMainLoginChangeDisable.png | Bin 0 -> 5968 bytes .../Resources/chnMainLoginChangeDown.png | Bin 0 -> 7326 bytes .../Resources/chnMainLoginChangeUp.png | Bin 0 -> 7072 bytes .../Resources/chnMainLoginLoginDisable.png | Bin 0 -> 5818 bytes .../Resources/chnMainLoginLoginDown.png | Bin 0 -> 6795 bytes .../Resources/chnMainLoginLoginUp.png | Bin 0 -> 6669 bytes .../engFormMainLoginCancelDisable.png | Bin 0 -> 5977 bytes .../Resources/engFormMainLoginCancelDown.png | Bin 0 -> 7135 bytes .../Resources/engFormMainLoginCancelUp.png | Bin 0 -> 6876 bytes .../engFormMainLoginChangeDisable.png | Bin 0 -> 6309 bytes .../Resources/engFormMainLoginChangeDown.png | Bin 0 -> 7694 bytes .../Resources/engFormMainLoginChangeUp.png | Bin 0 -> 7301 bytes .../Resources/engFormMainLoginDisable.png | Bin 0 -> 5409 bytes .../Resources/engFormMainLoginDown.png | Bin 0 -> 6490 bytes .../Resources/engFormMainLoginUp.png | Bin 0 -> 6129 bytes .../Resources/engFormMenuOptionDisable.png | Bin 0 -> 7392 bytes .../Resources/engFormMenuOptionDown.png | Bin 0 -> 11036 bytes .../Resources/engFormMenuOptionUp.png | Bin 0 -> 6686 bytes .../Resources/engMainLoginCancelDisable.png | Bin 0 -> 5977 bytes .../Resources/engMainLoginCancelDown.png | Bin 0 -> 7135 bytes .../Resources/engMainLoginCancelUp.png | Bin 0 -> 6876 bytes .../Resources/engMainLoginChangeDisable.png | Bin 0 -> 6309 bytes .../Resources/engMainLoginChangeDown.png | Bin 0 -> 7694 bytes .../Resources/engMainLoginChangeUp.png | Bin 0 -> 7301 bytes .../Resources/engMainLoginLoginDisable.png | Bin 0 -> 5409 bytes .../Resources/engMainLoginLoginDown.png | Bin 0 -> 6490 bytes .../Resources/engMainLoginLoginUp.png | Bin 0 -> 6129 bytes .../korFormMainLoginCancelDisable.png | Bin 0 -> 5549 bytes .../Resources/korFormMainLoginCancelDown.png | Bin 0 -> 6638 bytes .../Resources/korFormMainLoginCancelUp.png | Bin 0 -> 6323 bytes .../korFormMainLoginChangeDisable.png | Bin 0 -> 5784 bytes .../Resources/korFormMainLoginChangeDown.png | Bin 0 -> 6890 bytes .../Resources/korFormMainLoginChangeUp.png | Bin 0 -> 6564 bytes .../Resources/korFormMainLoginDisable.png | Bin 0 -> 5497 bytes .../Resources/korFormMainLoginDown.png | Bin 0 -> 6328 bytes .../Resources/korFormMainLoginUp.png | Bin 0 -> 6059 bytes .../Resources/korFormMenuOptionDisable.png | Bin 0 -> 8217 bytes .../Resources/korFormMenuOptionDown.png | Bin 0 -> 11412 bytes .../Resources/korFormMenuOptionUp.png | Bin 0 -> 7164 bytes .../Resources/korMainLoginCancelDisable.png | Bin 0 -> 5549 bytes .../Resources/korMainLoginCancelDown.png | Bin 0 -> 6638 bytes .../Resources/korMainLoginCancelUp.png | Bin 0 -> 6323 bytes .../Resources/korMainLoginChangeDisable.png | Bin 0 -> 5784 bytes .../Resources/korMainLoginChangeDown.png | Bin 0 -> 6890 bytes .../Resources/korMainLoginChangeUp.png | Bin 0 -> 6564 bytes .../Resources/korMainLoginDisable.png | Bin 0 -> 5497 bytes .../Resources/korMainLoginDown.png | Bin 0 -> 6328 bytes .../Resources/korMainLoginLoginDisable.png | Bin 0 -> 5497 bytes .../Resources/korMainLoginLoginDown.png | Bin 0 -> 6328 bytes .../Resources/korMainLoginLoginUp.png | Bin 0 -> 6059 bytes .../Resources/korMainLoginUp.png | Bin 0 -> 6059 bytes .../INT69DB_2A_ImageDll.Resource1.resources | Bin 2437998 -> 2644459 bytes .../Release/Refactor/INT69DB_2A_ImageDll.dll | Bin 32256 -> 34304 bytes .../Release/ResolveAssemblyReference.cache | Bin 6492 -> 0 bytes .../Release/TempPE/Resource1.Designer.cs.dll | Bin 69632 -> 73728 bytes 233 files changed, 4412 insertions(+), 2251 deletions(-) rename INT69DB_2A/DialogForms/{DialogFormPasswordKeyPad1.cs => DialogFormPasswordKeyPad.cs} (69%) rename INT69DB_2A/DialogForms/{DialogFormPasswordKeyPad1.designer.cs => DialogFormPasswordKeyPad.designer.cs} (99%) rename INT69DB_2A/DialogForms/{DialogFormPasswordKeyPad1.resx => DialogFormPasswordKeyPad.resx} (100%) rename INT69DB_2A/Forms/{FormFactoryReset.Designer.cs => FormInitialization.Designer.cs} (99%) rename INT69DB_2A/Forms/{FormFactoryReset.cs => FormInitialization.cs} (99%) rename INT69DB_2A/Forms/{FormFactoryReset.resx => FormInitialization.resx} (100%) create mode 100644 INT69DB_2A/Forms/FormOption.Designer.cs create mode 100644 INT69DB_2A/Forms/FormOption.cs create mode 100644 INT69DB_2A/Forms/FormOption.resx delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration10.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration2.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration3.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration4.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration5.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration6.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration7.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration8.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlConfiguration.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlEquipmentTest.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplay2.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph10.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph2.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph3.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph4.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph5.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph6.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph7.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayDotGraph8.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph10.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph2.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph3.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph4.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph5.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph6.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph7.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayEachBarGraph8.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable10.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable2.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable3.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable4.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable5.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable6.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable7.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlMainDisplayTable8.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.DialogForms.DialogFormLogOn.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.DialogForms.DialogFormMessage.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.DialogForms.DialogFormNumKeyPad.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.DialogForms.DialogFormPasswordKeyPad1.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.DialogForms.DialogFormYesNo.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormCalibration.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormConfiguration.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormDataBackup.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormEquipmentSetting.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormEquipmentTest.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormFactoryReset.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormIOTest.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormInformation.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormMain.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormMainDisplay.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormMenu.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormMotorSetting.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormProgramUpdate.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormSystemSetting.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormTimeSetting.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Forms.FormUserSetting.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.Properties.Resources.resources delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.csproj.FileListAbsolute.txt delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.csproj.GenerateResource.Cache delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.exe delete mode 100644 INT69DB_2A/obj/Debug/INT69DB_2A.pdb delete mode 100644 INT69DB_2A/obj/Debug/ResolveAssemblyReference.cache delete mode 100644 INT69DB_2A/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll delete mode 100644 INT69DB_2A/obj/Release/INT69DB_2A.DialogForms.DialogFormPasswordKeyPad1.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_2A.Forms.FormFactoryReset.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration10.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration2.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration3.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration4.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration5.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration6.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration7.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlCalibration8.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlConfiguration.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlEquipmentTest.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplay2.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph10.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph2.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph3.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph4.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph5.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph6.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph7.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayDotGraph8.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph10.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph2.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph3.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph4.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph5.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph6.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph7.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayEachBarGraph8.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable10.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable2.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable3.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable4.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable5.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable6.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable7.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Controls.ControlMainDisplayTable8.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.DialogForms.DialogFormLogOn.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.DialogForms.DialogFormMessage.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.DialogForms.DialogFormNumKeyPad.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.DialogForms.DialogFormPasswordKeyPad1.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.DialogForms.DialogFormYesNo.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormCalibration.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormConfiguration.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormDataBackup.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormEquipmentSetting.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormEquipmentTest.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormFactoryReset.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormIOTest.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormInformation.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormMain.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormMainDisplay.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormMenu.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormMotorSetting.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormProgramUpdate.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormSystemSetting.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormTimeSetting.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.Forms.FormUserSetting.resources delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.csproj.FileListAbsolute.txt delete mode 100644 INT69DB_2A/obj/Release/INT69DB_3A.csproj.GenerateResource.Cache create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/LoginImage1.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/LoginImage2.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnFormMenuOptionDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnFormMenuOptionDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnFormMenuOptionUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginCancelDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginCancelDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginCancelUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginChangeDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginChangeDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginChangeUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/chnMainLoginLoginUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginCancelDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginCancelDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginCancelUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginChangeDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginChangeDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginChangeUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMainLoginUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMenuOptionDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMenuOptionDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engFormMenuOptionUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginCancelDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginCancelDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginCancelUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginChangeDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginChangeDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginChangeUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/engMainLoginLoginUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginCancelDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginCancelDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginCancelUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginChangeDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginChangeDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginChangeUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMainLoginUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMenuOptionDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMenuOptionDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korFormMenuOptionUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginCancelDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginCancelDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginCancelUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginChangeDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginChangeDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginChangeUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginLoginDisable.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginLoginDown.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginLoginUp.png create mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/Resources/korMainLoginUp.png delete mode 100644 INT69DB_2A_ImageDll/INT69DB_2A_ImageDll/obj/Release/ResolveAssemblyReference.cache diff --git a/INT69DB_2A/Controls/ControlUserSetting.Designer.cs b/INT69DB_2A/Controls/ControlUserSetting.Designer.cs index a55a52e..e3c1b40 100644 --- a/INT69DB_2A/Controls/ControlUserSetting.Designer.cs +++ b/INT69DB_2A/Controls/ControlUserSetting.Designer.cs @@ -84,7 +84,7 @@ // // labelExpirePasswordDate // - this.labelExpirePasswordDate.BackColor = System.Drawing.Color.WhiteSmoke; + this.labelExpirePasswordDate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); this.labelExpirePasswordDate.BackPictureBox = null; this.labelExpirePasswordDate.BackPictureBox1 = null; this.labelExpirePasswordDate.BackPictureBox2 = null; @@ -103,7 +103,7 @@ // // labelExpireAccountDate // - this.labelExpireAccountDate.BackColor = System.Drawing.Color.WhiteSmoke; + this.labelExpireAccountDate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); this.labelExpireAccountDate.BackPictureBox = null; this.labelExpireAccountDate.BackPictureBox1 = null; this.labelExpireAccountDate.BackPictureBox2 = null; diff --git a/INT69DB_2A/DataStore.cs b/INT69DB_2A/DataStore.cs index ca35b0b..70ee908 100644 --- a/INT69DB_2A/DataStore.cs +++ b/INT69DB_2A/DataStore.cs @@ -36,16 +36,18 @@ namespace INT69DB_2A FormEquipmentTest, FormUserEditor, FormUserGroupEditor, + FormOption, + // 하단 세 항목은 위치를 맨 뒤로 고정할 것 FormDataBackup, FormDataStatistics, FormDataViewer, }; - public enum FormMainDisplayStore + public enum MainDisplayStore { - FormMainDisplayBarGraph, - FormMainDisplayDotGraph, - FormMainDisplayTable, + BarGraph, + LineGraph, + Table, }; public enum LanguageID @@ -495,9 +497,9 @@ namespace INT69DB_2A MotorPosition1, MotorPosition2, - ChangeL1Name, - ChangeL2Name, - ChangeL3Name, + Level1Name, + Level2Name, + Level3Name, } public enum TrackingAlarm { @@ -1142,6 +1144,7 @@ namespace INT69DB_2A private bool m_IsPrintPerProductEnable; private bool m_IsIndividualTransmission; private bool m_IsPingTimer; + private bool m_IsOptDataStatistics; private int m_DecimalPlaces; private int m_EthernetPort; @@ -1177,7 +1180,6 @@ namespace INT69DB_2A private string m_EthernetServerAddress; private bool m_IsPart11; - private int m_AutomaticLogout; private string m_User_Level1_Name; private string m_User_Level2_Name; private string m_User_Level3_Name; @@ -1274,6 +1276,11 @@ namespace INT69DB_2A get { return this.m_IsPingTimer; } set { this.m_IsPingTimer = value; } } + public bool IsOptDataStatistics + { + get { return this.m_IsOptDataStatistics; } + set { this.m_IsOptDataStatistics = value; } + } public int DecimalPlaces { @@ -1429,11 +1436,6 @@ namespace INT69DB_2A get { return this.m_IsPart11; } set { this.m_IsPart11 = value; } } - public int AutomaticLogout - { - get { return this.m_AutomaticLogout; } - set { this.m_AutomaticLogout = value; } - } public string User_Level1_Name { get { return this.m_User_Level1_Name; } @@ -1478,6 +1480,7 @@ namespace INT69DB_2A this.IsCutView = false; this.IsPrintPerProductEnable = false; this.IsPingTimer = false; + this.IsOptDataStatistics = false; this.DecimalPlaces = 1; this.EthernetPort = 5000; @@ -1514,7 +1517,6 @@ namespace INT69DB_2A this.EthernetServerAddress = "0.0.0.0"; this.IsPart11 = false; - this.AutomaticLogout = 30; this.User_Level1_Name = "Level 1"; this.User_Level2_Name = "Level 2"; this.User_Level3_Name = "Level 3"; @@ -1543,7 +1545,7 @@ namespace INT69DB_2A public int EquipmentID; public int EquipmentMode; public int ProductNumber; - public int AutomaticLogout; + public int DummyInt1; public int DischargeConveyorDirectionCW; public int UsbID; public int ImpellerMotorBaudrate; @@ -3547,7 +3549,7 @@ namespace INT69DB_2A #endregion #region Property - public bool TpyeAlarm + public bool TypeAlarm { get { return this.m_TpyeAlarm; } set { this.m_TpyeAlarm = value; } @@ -3567,7 +3569,7 @@ namespace INT69DB_2A #region Method private void Initialize() { - this.TpyeAlarm = true; + this.TypeAlarm = true; this.TypeOperation = true; this.TypeParameter = true; } diff --git a/INT69DB_2A/DialogForms/DialogFormDataViewerFilter.cs b/INT69DB_2A/DialogForms/DialogFormDataViewerFilter.cs index 4ed4205..b41e89e 100644 --- a/INT69DB_2A/DialogForms/DialogFormDataViewerFilter.cs +++ b/INT69DB_2A/DialogForms/DialogFormDataViewerFilter.cs @@ -76,7 +76,7 @@ namespace INT69DB_2A.DialogForms private void UpdateDisplay(DataViewerFilter filter) { - this.checkBoxTypeAlarm.Checked = filter.TpyeAlarm; + this.checkBoxTypeAlarm.Checked = filter.TypeAlarm; this.checkBoxTypeOperation.Checked = filter.TypeOperation; this.checkBoxTypeParameter.Checked = filter.TypeParameter; } @@ -90,7 +90,7 @@ namespace INT69DB_2A.DialogForms #region Event Handler private void buttonOk_Click(object sender, EventArgs e) { - this.ParentForm.ParentForm.CurrentDataViewerFilter.TpyeAlarm = this.checkBoxTypeAlarm.Checked; + this.ParentForm.ParentForm.CurrentDataViewerFilter.TypeAlarm = this.checkBoxTypeAlarm.Checked; this.ParentForm.ParentForm.CurrentDataViewerFilter.TypeOperation = this.checkBoxTypeOperation.Checked; this.ParentForm.ParentForm.CurrentDataViewerFilter.TypeParameter = this.checkBoxTypeParameter.Checked; diff --git a/INT69DB_2A/DialogForms/DialogFormLogOn.Designer.cs b/INT69DB_2A/DialogForms/DialogFormLogOn.Designer.cs index a429d5c..6201932 100644 --- a/INT69DB_2A/DialogForms/DialogFormLogOn.Designer.cs +++ b/INT69DB_2A/DialogForms/DialogFormLogOn.Designer.cs @@ -30,20 +30,20 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormLogOn)); this.smartForm1 = new SmartX.SmartForm(); + this.smartKeyboard = new SmartX.SmartKeyboard(); this.textBoxID = new System.Windows.Forms.TextBox(); this.textBoxPassword = new System.Windows.Forms.TextBox(); - this.smartKeyboard = new SmartX.SmartKeyboard(); - this.buttonLogOn = new SmartX.SmartButton(); + this.buttonLogon = new SmartX.SmartButton(); this.buttonCancel = new SmartX.SmartButton(); - this.smartButtonUser33 = new SmartX.SmartButton(); - this.smartButtonUser22 = new SmartX.SmartButton(); - this.smartButtonIUser11 = new SmartX.SmartButton(); - this.smartButtonAdmin = new SmartX.SmartButton(); this.smartButton1 = new SmartX.SmartButton(); + this.smartButtonAdmin = new SmartX.SmartButton(); + this.smartButtonIUser11 = new SmartX.SmartButton(); + this.smartButtonUser22 = new SmartX.SmartButton(); + this.smartButtonUser33 = new SmartX.SmartButton(); + this.pictureBoxImage = new System.Windows.Forms.PictureBox(); this.labelTitlePassword = new SmartX.SmartLabel(); this.labelTitleID = new SmartX.SmartLabel(); this.labelTitle = new SmartX.SmartLabel(); - this.pictureBoxImage = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // @@ -62,36 +62,13 @@ this.smartForm1.SpecialFunctionClickPointSize = 100; this.smartForm1.SuspendLayoutInterval = 1; // - // textBoxID - // - this.textBoxID.Font = new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Regular); - this.textBoxID.Location = new System.Drawing.Point(254, 77); - this.textBoxID.MaxLength = 20; - this.textBoxID.Name = "textBoxID"; - this.textBoxID.Size = new System.Drawing.Size(248, 34); - this.textBoxID.TabIndex = 1; - this.textBoxID.Text = "ABCDEFGHJK"; - this.textBoxID.GotFocus += new System.EventHandler(this.textBoxID_GotFocus); - // - // textBoxPassword - // - this.textBoxPassword.Font = new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Regular); - this.textBoxPassword.Location = new System.Drawing.Point(254, 122); - this.textBoxPassword.MaxLength = 20; - this.textBoxPassword.Name = "textBoxPassword"; - this.textBoxPassword.PasswordChar = '*'; - this.textBoxPassword.Size = new System.Drawing.Size(248, 34); - this.textBoxPassword.TabIndex = 2; - this.textBoxPassword.Text = "ABCDEFGHJK"; - this.textBoxPassword.GotFocus += new System.EventHandler(this.textBoxPassword_GotFocus); - // // smartKeyboard // - this.smartKeyboard.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(29)))), ((int)(((byte)(40)))), ((int)(((byte)(24))))); + this.smartKeyboard.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); this.smartKeyboard.ControlKeyDisable = false; this.smartKeyboard.DesignMinimize = false; this.smartKeyboard.FontColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.smartKeyboard.HanYoungKeyDisable = false; + this.smartKeyboard.HanYoungKeyDisable = true; this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; this.smartKeyboard.KeyFillColor = System.Drawing.Color.Black; this.smartKeyboard.KeyOutLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); @@ -103,15 +80,15 @@ this.smartKeyboard.KeyUpImage2 = null; this.smartKeyboard.KeyUpImage3 = null; this.smartKeyboard.LeftMargin = 5; - this.smartKeyboard.Location = new System.Drawing.Point(7, 188); + this.smartKeyboard.Location = new System.Drawing.Point(12, 191); this.smartKeyboard.Name = "smartKeyboard"; this.smartKeyboard.PressFontColor = System.Drawing.Color.Olive; this.smartKeyboard.PressKeyFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.smartKeyboard.PressKeyOutLineColor = System.Drawing.Color.Green; this.smartKeyboard.RoundedCorners = true; this.smartKeyboard.SetBackimage = null; - this.smartKeyboard.Size = new System.Drawing.Size(697, 276); - this.smartKeyboard.TabIndex = 3; + this.smartKeyboard.Size = new System.Drawing.Size(692, 276); + this.smartKeyboard.TabIndex = 10; this.smartKeyboard.TABKeyDisable = false; this.smartKeyboard.TargetInputObject = null; this.smartKeyboard.Text = "smartKeyboard1"; @@ -120,36 +97,59 @@ this.smartKeyboard.OnXKeyClick += new System.EventHandler(this.smartKeyboard_OnXKeyClick); this.smartKeyboard.Click += new System.EventHandler(this.smartKeyboard_Click); // - // buttonLogOn + // textBoxID // - this.buttonLogOn.BackPictureBox = null; - this.buttonLogOn.BackPictureBox1 = null; - this.buttonLogOn.BackPictureBox2 = null; - this.buttonLogOn.ButtonColor = System.Drawing.Color.Gray; - this.buttonLogOn.ButtonImageAutoSize = true; - this.buttonLogOn.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonLogOn.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonLogOn.DisableImage"))); - this.buttonLogOn.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonLogOn.DownImage"))); - this.buttonLogOn.GroupID = 0; - this.buttonLogOn.InitVisible = true; - this.buttonLogOn.Location = new System.Drawing.Point(508, 80); - this.buttonLogOn.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.buttonLogOn.Name = "buttonLogOn"; - this.buttonLogOn.NestedClickEventPrevent = false; - this.buttonLogOn.OutlinePixel = 1; - this.buttonLogOn.RepeatInterval = 200; - this.buttonLogOn.RepeatIntervalAccelerate = null; - this.buttonLogOn.SafeInterval = 200; - this.buttonLogOn.Size = new System.Drawing.Size(75, 75); - this.buttonLogOn.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonLogOn.TabIndex = 5; - this.buttonLogOn.TextColor = System.Drawing.Color.Black; - this.buttonLogOn.TextDownColor = System.Drawing.Color.White; - this.buttonLogOn.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonLogOn.TextLocation = new System.Drawing.Point(0, 0); - this.buttonLogOn.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonLogOn.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonLogOn.UpImage"))); - this.buttonLogOn.Click += new System.EventHandler(this.buttonLogOn_Click); + this.textBoxID.Font = new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Regular); + this.textBoxID.Location = new System.Drawing.Point(255, 81); + this.textBoxID.MaxLength = 20; + this.textBoxID.Name = "textBoxID"; + this.textBoxID.Size = new System.Drawing.Size(248, 34); + this.textBoxID.TabIndex = 2; + this.textBoxID.Text = "ABCDEFGHJK"; + this.textBoxID.GotFocus += new System.EventHandler(this.textBoxID_GotFocus); + // + // textBoxPassword + // + this.textBoxPassword.Font = new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Regular); + this.textBoxPassword.Location = new System.Drawing.Point(255, 126); + this.textBoxPassword.MaxLength = 20; + this.textBoxPassword.Name = "textBoxPassword"; + this.textBoxPassword.PasswordChar = '*'; + this.textBoxPassword.Size = new System.Drawing.Size(248, 34); + this.textBoxPassword.TabIndex = 5; + this.textBoxPassword.Text = "ABCDEFGHJK"; + this.textBoxPassword.GotFocus += new System.EventHandler(this.textBoxPassword_GotFocus); + // + // buttonLogon + // + this.buttonLogon.BackPictureBox = null; + this.buttonLogon.BackPictureBox1 = null; + this.buttonLogon.BackPictureBox2 = null; + this.buttonLogon.ButtonColor = System.Drawing.Color.Gray; + this.buttonLogon.ButtonImageAutoSize = true; + this.buttonLogon.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonLogon.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonLogon.DisableImage"))); + this.buttonLogon.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonLogon.DownImage"))); + this.buttonLogon.GroupID = 0; + this.buttonLogon.InitVisible = true; + this.buttonLogon.Location = new System.Drawing.Point(512, 82); + this.buttonLogon.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.buttonLogon.Name = "buttonLogon"; + this.buttonLogon.NestedClickEventPrevent = false; + this.buttonLogon.OutlinePixel = 1; + this.buttonLogon.RepeatInterval = 200; + this.buttonLogon.RepeatIntervalAccelerate = null; + this.buttonLogon.SafeInterval = 200; + this.buttonLogon.Size = new System.Drawing.Size(75, 75); + this.buttonLogon.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonLogon.TabIndex = 6; + this.buttonLogon.TextColor = System.Drawing.Color.Black; + this.buttonLogon.TextDownColor = System.Drawing.Color.White; + this.buttonLogon.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonLogon.TextLocation = new System.Drawing.Point(0, 0); + this.buttonLogon.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonLogon.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonLogon.UpImage"))); + this.buttonLogon.Click += new System.EventHandler(this.buttonLogOn_Click); // // buttonCancel // @@ -163,7 +163,7 @@ this.buttonCancel.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonCancel.DownImage"))); this.buttonCancel.GroupID = 0; this.buttonCancel.InitVisible = true; - this.buttonCancel.Location = new System.Drawing.Point(589, 80); + this.buttonCancel.Location = new System.Drawing.Point(593, 82); this.buttonCancel.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.NestedClickEventPrevent = false; @@ -173,7 +173,7 @@ this.buttonCancel.SafeInterval = 200; this.buttonCancel.Size = new System.Drawing.Size(75, 75); this.buttonCancel.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonCancel.TabIndex = 6; + this.buttonCancel.TabIndex = 7; this.buttonCancel.TextColor = System.Drawing.Color.Black; this.buttonCancel.TextDownColor = System.Drawing.Color.White; this.buttonCancel.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; @@ -182,134 +182,6 @@ this.buttonCancel.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonCancel.UpImage"))); this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); // - // smartButtonUser33 - // - this.smartButtonUser33.BackPictureBox = null; - this.smartButtonUser33.BackPictureBox1 = null; - this.smartButtonUser33.BackPictureBox2 = null; - this.smartButtonUser33.ButtonColor = System.Drawing.Color.Gray; - this.smartButtonUser33.ButtonImageAutoSize = true; - this.smartButtonUser33.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.smartButtonUser33.DisableImage = null; - this.smartButtonUser33.DownImage = null; - this.smartButtonUser33.GroupID = 0; - this.smartButtonUser33.InitVisible = true; - this.smartButtonUser33.Location = new System.Drawing.Point(312, 31); - this.smartButtonUser33.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.smartButtonUser33.Name = "smartButtonUser33"; - this.smartButtonUser33.NestedClickEventPrevent = false; - this.smartButtonUser33.OutlinePixel = 1; - this.smartButtonUser33.RepeatInterval = 200; - this.smartButtonUser33.RepeatIntervalAccelerate = null; - this.smartButtonUser33.SafeInterval = 200; - this.smartButtonUser33.Size = new System.Drawing.Size(75, 43); - this.smartButtonUser33.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.smartButtonUser33.TabIndex = 22; - this.smartButtonUser33.Text = "user33"; - this.smartButtonUser33.TextColor = System.Drawing.Color.Black; - this.smartButtonUser33.TextDownColor = System.Drawing.Color.White; - this.smartButtonUser33.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.smartButtonUser33.TextLocation = new System.Drawing.Point(0, 0); - this.smartButtonUser33.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.smartButtonUser33.UpImage = null; - this.smartButtonUser33.Click += new System.EventHandler(this.smartButtonUser33_Click); - // - // smartButtonUser22 - // - this.smartButtonUser22.BackPictureBox = null; - this.smartButtonUser22.BackPictureBox1 = null; - this.smartButtonUser22.BackPictureBox2 = null; - this.smartButtonUser22.ButtonColor = System.Drawing.Color.Gray; - this.smartButtonUser22.ButtonImageAutoSize = true; - this.smartButtonUser22.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.smartButtonUser22.DisableImage = null; - this.smartButtonUser22.DownImage = null; - this.smartButtonUser22.GroupID = 0; - this.smartButtonUser22.InitVisible = true; - this.smartButtonUser22.Location = new System.Drawing.Point(231, 31); - this.smartButtonUser22.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.smartButtonUser22.Name = "smartButtonUser22"; - this.smartButtonUser22.NestedClickEventPrevent = false; - this.smartButtonUser22.OutlinePixel = 1; - this.smartButtonUser22.RepeatInterval = 200; - this.smartButtonUser22.RepeatIntervalAccelerate = null; - this.smartButtonUser22.SafeInterval = 200; - this.smartButtonUser22.Size = new System.Drawing.Size(75, 43); - this.smartButtonUser22.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.smartButtonUser22.TabIndex = 21; - this.smartButtonUser22.Text = "user22"; - this.smartButtonUser22.TextColor = System.Drawing.Color.Black; - this.smartButtonUser22.TextDownColor = System.Drawing.Color.White; - this.smartButtonUser22.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.smartButtonUser22.TextLocation = new System.Drawing.Point(0, 0); - this.smartButtonUser22.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.smartButtonUser22.UpImage = null; - this.smartButtonUser22.Click += new System.EventHandler(this.smartButtonUser22_Click); - // - // smartButtonIUser11 - // - this.smartButtonIUser11.BackPictureBox = null; - this.smartButtonIUser11.BackPictureBox1 = null; - this.smartButtonIUser11.BackPictureBox2 = null; - this.smartButtonIUser11.ButtonColor = System.Drawing.Color.Gray; - this.smartButtonIUser11.ButtonImageAutoSize = true; - this.smartButtonIUser11.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.smartButtonIUser11.DisableImage = null; - this.smartButtonIUser11.DownImage = null; - this.smartButtonIUser11.GroupID = 0; - this.smartButtonIUser11.InitVisible = true; - this.smartButtonIUser11.Location = new System.Drawing.Point(150, 31); - this.smartButtonIUser11.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.smartButtonIUser11.Name = "smartButtonIUser11"; - this.smartButtonIUser11.NestedClickEventPrevent = false; - this.smartButtonIUser11.OutlinePixel = 1; - this.smartButtonIUser11.RepeatInterval = 200; - this.smartButtonIUser11.RepeatIntervalAccelerate = null; - this.smartButtonIUser11.SafeInterval = 200; - this.smartButtonIUser11.Size = new System.Drawing.Size(75, 43); - this.smartButtonIUser11.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.smartButtonIUser11.TabIndex = 20; - this.smartButtonIUser11.Text = "user11"; - this.smartButtonIUser11.TextColor = System.Drawing.Color.Black; - this.smartButtonIUser11.TextDownColor = System.Drawing.Color.White; - this.smartButtonIUser11.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.smartButtonIUser11.TextLocation = new System.Drawing.Point(0, 0); - this.smartButtonIUser11.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.smartButtonIUser11.UpImage = null; - this.smartButtonIUser11.Click += new System.EventHandler(this.smartButtonIUser11_Click); - // - // smartButtonAdmin - // - this.smartButtonAdmin.BackPictureBox = null; - this.smartButtonAdmin.BackPictureBox1 = null; - this.smartButtonAdmin.BackPictureBox2 = null; - this.smartButtonAdmin.ButtonColor = System.Drawing.Color.Gray; - this.smartButtonAdmin.ButtonImageAutoSize = true; - this.smartButtonAdmin.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.smartButtonAdmin.DisableImage = null; - this.smartButtonAdmin.DownImage = null; - this.smartButtonAdmin.GroupID = 0; - this.smartButtonAdmin.InitVisible = true; - this.smartButtonAdmin.Location = new System.Drawing.Point(570, 31); - this.smartButtonAdmin.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.smartButtonAdmin.Name = "smartButtonAdmin"; - this.smartButtonAdmin.NestedClickEventPrevent = false; - this.smartButtonAdmin.OutlinePixel = 1; - this.smartButtonAdmin.RepeatInterval = 200; - this.smartButtonAdmin.RepeatIntervalAccelerate = null; - this.smartButtonAdmin.SafeInterval = 200; - this.smartButtonAdmin.Size = new System.Drawing.Size(75, 43); - this.smartButtonAdmin.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.smartButtonAdmin.TabIndex = 19; - this.smartButtonAdmin.Text = "admin"; - this.smartButtonAdmin.TextColor = System.Drawing.Color.Black; - this.smartButtonAdmin.TextDownColor = System.Drawing.Color.White; - this.smartButtonAdmin.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.smartButtonAdmin.TextLocation = new System.Drawing.Point(0, 0); - this.smartButtonAdmin.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.smartButtonAdmin.UpImage = null; - this.smartButtonAdmin.Click += new System.EventHandler(this.smartButtonAdmin_Click); - // // smartButton1 // this.smartButton1.BackPictureBox = null; @@ -322,7 +194,7 @@ this.smartButton1.DownImage = null; this.smartButton1.GroupID = 0; this.smartButton1.InitVisible = true; - this.smartButton1.Location = new System.Drawing.Point(489, 31); + this.smartButton1.Location = new System.Drawing.Point(512, 30); this.smartButton1.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; this.smartButton1.Name = "smartButton1"; this.smartButton1.NestedClickEventPrevent = false; @@ -332,7 +204,7 @@ this.smartButton1.SafeInterval = 200; this.smartButton1.Size = new System.Drawing.Size(75, 43); this.smartButton1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.smartButton1.TabIndex = 18; + this.smartButton1.TabIndex = 12; this.smartButton1.Text = "Intech"; this.smartButton1.TextColor = System.Drawing.Color.Black; this.smartButton1.TextDownColor = System.Drawing.Color.White; @@ -342,6 +214,141 @@ this.smartButton1.UpImage = null; this.smartButton1.Click += new System.EventHandler(this.smartButton1_Click); // + // smartButtonAdmin + // + this.smartButtonAdmin.BackPictureBox = null; + this.smartButtonAdmin.BackPictureBox1 = null; + this.smartButtonAdmin.BackPictureBox2 = null; + this.smartButtonAdmin.ButtonColor = System.Drawing.Color.Gray; + this.smartButtonAdmin.ButtonImageAutoSize = true; + this.smartButtonAdmin.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.smartButtonAdmin.DisableImage = null; + this.smartButtonAdmin.DownImage = null; + this.smartButtonAdmin.GroupID = 0; + this.smartButtonAdmin.InitVisible = true; + this.smartButtonAdmin.Location = new System.Drawing.Point(593, 30); + this.smartButtonAdmin.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.smartButtonAdmin.Name = "smartButtonAdmin"; + this.smartButtonAdmin.NestedClickEventPrevent = false; + this.smartButtonAdmin.OutlinePixel = 1; + this.smartButtonAdmin.RepeatInterval = 200; + this.smartButtonAdmin.RepeatIntervalAccelerate = null; + this.smartButtonAdmin.SafeInterval = 200; + this.smartButtonAdmin.Size = new System.Drawing.Size(75, 43); + this.smartButtonAdmin.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.smartButtonAdmin.TabIndex = 14; + this.smartButtonAdmin.Text = "admin"; + this.smartButtonAdmin.TextColor = System.Drawing.Color.Black; + this.smartButtonAdmin.TextDownColor = System.Drawing.Color.White; + this.smartButtonAdmin.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.smartButtonAdmin.TextLocation = new System.Drawing.Point(0, 0); + this.smartButtonAdmin.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.smartButtonAdmin.UpImage = null; + this.smartButtonAdmin.Click += new System.EventHandler(this.smartButtonAdmin_Click); + // + // smartButtonIUser11 + // + this.smartButtonIUser11.BackPictureBox = null; + this.smartButtonIUser11.BackPictureBox1 = null; + this.smartButtonIUser11.BackPictureBox2 = null; + this.smartButtonIUser11.ButtonColor = System.Drawing.Color.Gray; + this.smartButtonIUser11.ButtonImageAutoSize = true; + this.smartButtonIUser11.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.smartButtonIUser11.DisableImage = null; + this.smartButtonIUser11.DownImage = null; + this.smartButtonIUser11.GroupID = 0; + this.smartButtonIUser11.InitVisible = true; + this.smartButtonIUser11.Location = new System.Drawing.Point(173, 30); + this.smartButtonIUser11.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.smartButtonIUser11.Name = "smartButtonIUser11"; + this.smartButtonIUser11.NestedClickEventPrevent = false; + this.smartButtonIUser11.OutlinePixel = 1; + this.smartButtonIUser11.RepeatInterval = 200; + this.smartButtonIUser11.RepeatIntervalAccelerate = null; + this.smartButtonIUser11.SafeInterval = 200; + this.smartButtonIUser11.Size = new System.Drawing.Size(75, 43); + this.smartButtonIUser11.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.smartButtonIUser11.TabIndex = 15; + this.smartButtonIUser11.Text = "user11"; + this.smartButtonIUser11.TextColor = System.Drawing.Color.Black; + this.smartButtonIUser11.TextDownColor = System.Drawing.Color.White; + this.smartButtonIUser11.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.smartButtonIUser11.TextLocation = new System.Drawing.Point(0, 0); + this.smartButtonIUser11.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.smartButtonIUser11.UpImage = null; + this.smartButtonIUser11.Click += new System.EventHandler(this.smartButtonIUser11_Click); + // + // smartButtonUser22 + // + this.smartButtonUser22.BackPictureBox = null; + this.smartButtonUser22.BackPictureBox1 = null; + this.smartButtonUser22.BackPictureBox2 = null; + this.smartButtonUser22.ButtonColor = System.Drawing.Color.Gray; + this.smartButtonUser22.ButtonImageAutoSize = true; + this.smartButtonUser22.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.smartButtonUser22.DisableImage = null; + this.smartButtonUser22.DownImage = null; + this.smartButtonUser22.GroupID = 0; + this.smartButtonUser22.InitVisible = true; + this.smartButtonUser22.Location = new System.Drawing.Point(254, 30); + this.smartButtonUser22.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.smartButtonUser22.Name = "smartButtonUser22"; + this.smartButtonUser22.NestedClickEventPrevent = false; + this.smartButtonUser22.OutlinePixel = 1; + this.smartButtonUser22.RepeatInterval = 200; + this.smartButtonUser22.RepeatIntervalAccelerate = null; + this.smartButtonUser22.SafeInterval = 200; + this.smartButtonUser22.Size = new System.Drawing.Size(75, 43); + this.smartButtonUser22.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.smartButtonUser22.TabIndex = 16; + this.smartButtonUser22.Text = "user22"; + this.smartButtonUser22.TextColor = System.Drawing.Color.Black; + this.smartButtonUser22.TextDownColor = System.Drawing.Color.White; + this.smartButtonUser22.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.smartButtonUser22.TextLocation = new System.Drawing.Point(0, 0); + this.smartButtonUser22.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.smartButtonUser22.UpImage = null; + this.smartButtonUser22.Click += new System.EventHandler(this.smartButtonUser22_Click); + // + // smartButtonUser33 + // + this.smartButtonUser33.BackPictureBox = null; + this.smartButtonUser33.BackPictureBox1 = null; + this.smartButtonUser33.BackPictureBox2 = null; + this.smartButtonUser33.ButtonColor = System.Drawing.Color.Gray; + this.smartButtonUser33.ButtonImageAutoSize = true; + this.smartButtonUser33.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.smartButtonUser33.DisableImage = null; + this.smartButtonUser33.DownImage = null; + this.smartButtonUser33.GroupID = 0; + this.smartButtonUser33.InitVisible = true; + this.smartButtonUser33.Location = new System.Drawing.Point(335, 30); + this.smartButtonUser33.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.smartButtonUser33.Name = "smartButtonUser33"; + this.smartButtonUser33.NestedClickEventPrevent = false; + this.smartButtonUser33.OutlinePixel = 1; + this.smartButtonUser33.RepeatInterval = 200; + this.smartButtonUser33.RepeatIntervalAccelerate = null; + this.smartButtonUser33.SafeInterval = 200; + this.smartButtonUser33.Size = new System.Drawing.Size(75, 43); + this.smartButtonUser33.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.smartButtonUser33.TabIndex = 17; + this.smartButtonUser33.Text = "user33"; + this.smartButtonUser33.TextColor = System.Drawing.Color.Black; + this.smartButtonUser33.TextDownColor = System.Drawing.Color.White; + this.smartButtonUser33.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.smartButtonUser33.TextLocation = new System.Drawing.Point(0, 0); + this.smartButtonUser33.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.smartButtonUser33.UpImage = null; + this.smartButtonUser33.Click += new System.EventHandler(this.smartButtonUser33_Click); + // + // pictureBoxImage + // + this.pictureBoxImage.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxImage.Image"))); + this.pictureBoxImage.Location = new System.Drawing.Point(40, 68); + this.pictureBoxImage.Name = "pictureBoxImage"; + this.pictureBoxImage.Size = new System.Drawing.Size(66, 72); + // // labelTitlePassword // this.labelTitlePassword.BackColor = System.Drawing.Color.White; @@ -354,10 +361,10 @@ this.labelTitlePassword.ForeColor = System.Drawing.Color.Gray; this.labelTitlePassword.InitVisible = true; this.labelTitlePassword.LineSpacing = 0F; - this.labelTitlePassword.Location = new System.Drawing.Point(129, 122); + this.labelTitlePassword.Location = new System.Drawing.Point(129, 126); this.labelTitlePassword.Name = "labelTitlePassword"; this.labelTitlePassword.Size = new System.Drawing.Size(120, 34); - this.labelTitlePassword.TabIndex = 180; + this.labelTitlePassword.TabIndex = 184; this.labelTitlePassword.Text = "비밀번호"; this.labelTitlePassword.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitlePassword.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; @@ -375,10 +382,10 @@ this.labelTitleID.ForeColor = System.Drawing.Color.Gray; this.labelTitleID.InitVisible = true; this.labelTitleID.LineSpacing = 0F; - this.labelTitleID.Location = new System.Drawing.Point(129, 77); + this.labelTitleID.Location = new System.Drawing.Point(129, 81); this.labelTitleID.Name = "labelTitleID"; this.labelTitleID.Size = new System.Drawing.Size(120, 34); - this.labelTitleID.TabIndex = 179; + this.labelTitleID.TabIndex = 183; this.labelTitleID.Text = "ID"; this.labelTitleID.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitleID.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; @@ -396,22 +403,15 @@ this.labelTitle.ForeColor = System.Drawing.Color.Gray; this.labelTitle.InitVisible = true; this.labelTitle.LineSpacing = 0F; - this.labelTitle.Location = new System.Drawing.Point(129, 24); + this.labelTitle.Location = new System.Drawing.Point(129, 25); this.labelTitle.Name = "labelTitle"; this.labelTitle.Size = new System.Drawing.Size(546, 50); - this.labelTitle.TabIndex = 178; + this.labelTitle.TabIndex = 182; this.labelTitle.Text = "로그인"; this.labelTitle.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitle.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitle.Wordwrap = false; // - // pictureBoxImage - // - this.pictureBoxImage.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxImage.Image"))); - this.pictureBoxImage.Location = new System.Drawing.Point(40, 67); - this.pictureBoxImage.Name = "pictureBoxImage"; - this.pictureBoxImage.Size = new System.Drawing.Size(66, 72); - // // DialogFormLogOn // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -419,19 +419,19 @@ this.ClientSize = new System.Drawing.Size(710, 470); this.ControlBox = false; this.Controls.Add(this.pictureBoxImage); + this.Controls.Add(this.labelTitlePassword); + this.Controls.Add(this.labelTitleID); this.Controls.Add(this.smartButtonUser33); this.Controls.Add(this.smartButtonUser22); this.Controls.Add(this.smartButtonIUser11); this.Controls.Add(this.smartButtonAdmin); this.Controls.Add(this.smartButton1); - this.Controls.Add(this.labelTitlePassword); - this.Controls.Add(this.labelTitleID); - this.Controls.Add(this.labelTitle); this.Controls.Add(this.buttonCancel); - this.Controls.Add(this.buttonLogOn); - this.Controls.Add(this.smartKeyboard); + this.Controls.Add(this.buttonLogon); this.Controls.Add(this.textBoxPassword); this.Controls.Add(this.textBoxID); + this.Controls.Add(this.smartKeyboard); + this.Controls.Add(this.labelTitle); this.Controls.Add(this.smartForm1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "DialogFormLogOn"; @@ -444,19 +444,19 @@ #endregion private SmartX.SmartForm smartForm1; + private SmartX.SmartKeyboard smartKeyboard; private System.Windows.Forms.TextBox textBoxID; private System.Windows.Forms.TextBox textBoxPassword; - private SmartX.SmartKeyboard smartKeyboard; - private SmartX.SmartButton buttonLogOn; + private SmartX.SmartButton buttonLogon; private SmartX.SmartButton buttonCancel; - private SmartX.SmartButton smartButtonUser33; - private SmartX.SmartButton smartButtonUser22; - private SmartX.SmartButton smartButtonIUser11; - private SmartX.SmartButton smartButtonAdmin; private SmartX.SmartButton smartButton1; + private SmartX.SmartButton smartButtonAdmin; + private SmartX.SmartButton smartButtonIUser11; + private SmartX.SmartButton smartButtonUser22; + private SmartX.SmartButton smartButtonUser33; + private System.Windows.Forms.PictureBox pictureBoxImage; private SmartX.SmartLabel labelTitlePassword; private SmartX.SmartLabel labelTitleID; private SmartX.SmartLabel labelTitle; - private System.Windows.Forms.PictureBox pictureBoxImage; } } \ No newline at end of file diff --git a/INT69DB_2A/DialogForms/DialogFormLogOn.cs b/INT69DB_2A/DialogForms/DialogFormLogOn.cs index d146d8f..2b28c6b 100644 --- a/INT69DB_2A/DialogForms/DialogFormLogOn.cs +++ b/INT69DB_2A/DialogForms/DialogFormLogOn.cs @@ -11,11 +11,20 @@ using INT69DB_2A_ImageDll; using INT69DB_2A.Forms; using INT69DB_2A.Part11_UserManager; +using System.Text.RegularExpressions; + namespace INT69DB_2A.DialogForms { public partial class DialogFormLogOn : Form { #region Field + // false : 패스워드 변경, true : 로그인 + private bool IsLogin; + private string ID; + private string Password; + + UserManager.UserMgr_user_info_t UserInfo = new UserManager.UserMgr_user_info_t(); + private FormMain m_ParentForm; #endregion @@ -25,11 +34,24 @@ namespace INT69DB_2A.DialogForms InitializeComponent(); this.ParentForm = parent; + this.IsLogin = true; - this.InitializeDesign(); this.InitializeControl(); - this.DefaultSetting(); + this.InitializeDesignLogOn(this.ParentForm.SystemConfig.Language); + this.DefaultSettingLogOn(); } + public DialogFormLogOn(FormMain parent, string id) + { + InitializeComponent(); + + this.ParentForm = parent; + this.ID = id; + this.IsLogin = false; + + this.InitializeControl(); + this.InitializeDesignChangePassword(this.ParentForm.SystemConfig.Language); + this.DefaultSettingChangePassword(); + } #endregion #region Property @@ -41,63 +63,322 @@ namespace INT69DB_2A.DialogForms #endregion #region Method - private void InitializeDesign() + private void InitializeControl() + { + int x = 0, y = 0; + + x = Screen.PrimaryScreen.Bounds.Width / 2 - this.Size.Width / 2; + y = Screen.PrimaryScreen.Bounds.Height / 2 - this.Size.Height / 2; + + this.Location = new Point(x, y); + + this.Size = new Size(450, 165); + } + public void InitializeDesignLogOn(DataStore.LanguageID language) { ImageDll images = new ImageDll(); - if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) - { - this.buttonLogOn.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginDisable)); - this.buttonLogOn.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginDown)); - this.buttonLogOn.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginUp)); - this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelDisable)); - this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelDown)); - this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelUp)); - } - else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) - { - this.smartForm1.Image = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackgroundUserLogin)); + this.pictureBoxImage.Image = new Bitmap(images.GetImage(ImageDll.ButtonImages.LoginImage1)); - this.buttonLogOn.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginDisable)); - this.buttonLogOn.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginDown)); - this.buttonLogOn.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginUp)); - this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainCancelDisable)); - this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainCancelDown)); - this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainCancelUp)); - } - else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) + if (language == DataStore.LanguageID.English) { - + this.labelTitle.Text = "User Login"; + this.labelTitleID.Text = "ID"; + this.labelTitlePassword.Text = "Password"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginLoginDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginLoginDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginLoginUp)); } - else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.German) + else if (language == DataStore.LanguageID.Chinese) + { + this.labelTitle.Text = "登錄"; + this.labelTitleID.Text = "用户名"; + this.labelTitlePassword.Text = "密码"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginLoginDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginLoginDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginLoginUp)); + } + else if (language == DataStore.LanguageID.Czech) { - } else { - this.buttonLogOn.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginDisable)); - this.buttonLogOn.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginDown)); - this.buttonLogOn.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginUp)); - this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelDisable)); - this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelDown)); - this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainCancelUp)); + this.labelTitle.Text = "로그인"; + this.labelTitleID.Text = "ID"; + this.labelTitlePassword.Text = "비밀번호"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginLoginDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginLoginDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginLoginUp)); } } - private void InitializeControl() + private void DefaultSettingLogOn() { this.textBoxID.Text = ""; this.textBoxPassword.Text = ""; - this.Location = new Point(45, 63); - - //this.smartKeyboard.HanYoungKeyToggle(); - this.smartKeyboard.HanYoungKeyDisable = true; this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; this.smartKeyboard.Show(); } - private void DefaultSetting() + private void Login() { + // Check ID + if (this.textBoxID.Text.Length < 6) + { + // ID : 6~20자 입력하세요 + DialogFormMessage msg = new DialogFormMessage(null, 3, this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + return; + } + // Check Password + if (this.textBoxPassword.Text.Length < 6) + { + // PASSWORD : 6~20자 입력하세요 + DialogFormMessage msg = new DialogFormMessage(null, 9, this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + + return; + } + + UserManager.UserManager_UserLoginDirect(this.textBoxID.Text, this.textBoxPassword.Text, ref this.UserInfo); + + if (this.UserInfo.status == 0) + { + #region 로그인 성공 + try + { + string sValue = ""; + + this.SuccessLogin(this.UserInfo); + + sValue = this.ParentForm.ChildFormMainDisplay.DisplayExpireOfPassword(this.ParentForm.SystemConfig.CurrentUser.Group); + if (sValue != "-") + { + int intExpireDate = int.Parse(sValue); + if (intExpireDate >= -10) + { + int extract = int.Parse(Regex.Replace(sValue, @"\D", "")); + DialogFormYesNo df = new DialogFormYesNo(this.ParentForm.SystemConfig.Language, 2, extract.ToString()); + df.BringToFront(); + if (df.ShowDialog() == DialogResult.Yes) + { + DialogFormLogOn changePW = new DialogFormLogOn(this.ParentForm, this.textBoxID.Text); + if (changePW.ShowDialog() == DialogResult.OK) + { + UserManager.UserManager_UserLockRelease(this.textBoxID.Text, false, true); + UserManager.UserManager_UserLoginDirect(this.textBoxID.Text, this.ParentForm.SystemConfig.CurrentUser.Password, ref this.UserInfo); + + this.SuccessLogin(this.UserInfo); + } + } + } + } + } + catch (Exception ex) + { + FormMain.Exception(ex); + + this.DialogResult = DialogResult.Cancel; + this.Close(); + + return; + } + + this.DialogResult = DialogResult.OK; + this.Close(); + #endregion + } + else + { + if (this.UserInfo.status == 15) // USER_MGR_STATUS_PW_PASSWORD_LOCK + { + this.Close(); + + DialogFormLogOn changePW = new DialogFormLogOn(this.ParentForm, this.textBoxID.Text); + if (changePW.ShowDialog() == DialogResult.OK) + { + UserManager.UserManager_UserLoginDirect(this.textBoxID.Text, this.ParentForm.SystemConfig.CurrentUser.Password, ref this.UserInfo); + // console + //Console.WriteLine(this.UserInfo.status.ToString()); + this.SuccessLogin(this.UserInfo); + + this.DialogResult = DialogResult.OK; + this.Close(); + } + } + else + { + DialogFormMessage myMsg = new DialogFormMessage(null, this.UserInfo.status, this.ParentForm.SystemConfig.Language); + myMsg.ShowDialog(); + } + } + } + private void SuccessLogin(UserManager.UserMgr_user_info_t user) + { + if (user.active_level == 1) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level1; + else if (user.active_level == 2) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level2; + else if (user.active_level == 3) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level3; + else if (user.active_level == 9) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Admin; + else if (user.active_level == 10) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Developer; + this.ParentForm.SystemConfig.CurrentUser.ActiveLevel = user.active_level; + + this.ParentForm.SystemConfig.CurrentUser.ID = user.user_id; + this.ParentForm.SystemConfig.CurrentUser.Password = user.user_pw; + + this.ParentForm.SystemConfig.CurrentUser.ExpireAccount = user.expire_period_account; + this.ParentForm.SystemConfig.CurrentUser.ExpirePassword = user.expire_period_password; + + // console + //Console.WriteLine(user.password_register_date.GetDateTime()); + DateTime time = DateTime.ParseExact(user.password_register_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateRegister = time; + // console + //Console.WriteLine(user.id_login_date.GetDateTime()); + time = DateTime.ParseExact(user.id_login_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateLogin = time; + + if (this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.Admin + || this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.Developer) + { + this.ParentForm.SystemConfig.CurrentUser.DateExpireRegister = DateTime.Now; + this.ParentForm.SystemConfig.CurrentUser.DateExpireLogin = DateTime.Now; + } + else + { + // console + //Console.WriteLine(user.expire_id_date.GetDateTime()); + time = DateTime.ParseExact(user.expire_id_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateExpireLogin = time; + // console + //Console.WriteLine(user.expire_password_date.GetDateTime()); + time = DateTime.ParseExact(user.expire_password_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateExpireRegister = time; + } + + this.ParentForm.SystemConfig.CurrentUser.IsLockAccount = user.flock_status_account == 0 ? false : true; + this.ParentForm.SystemConfig.CurrentUser.IsLockPassword = user.flock_status_password == 0 ? false : true; + + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SystemConfig.CurrentUser.IsAdmin = user.fadmin == 0 ? false : true; + else + this.ParentForm.SystemConfig.CurrentUser.IsAdmin = true; + } + + public void InitializeDesignChangePassword(DataStore.LanguageID language) + { + ImageDll images = new ImageDll(); + + this.pictureBoxImage.Image = new Bitmap(images.GetImage(ImageDll.ButtonImages.LoginImage2)); + + if (language == DataStore.LanguageID.English) + { + this.labelTitle.Text = "Change Password"; + this.labelTitleID.Text = "New"; + this.labelTitlePassword.Text = "Verify"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginChangeDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginChangeDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engMainLoginChangeUp)); + } + else if (language == DataStore.LanguageID.Chinese) + { + this.labelTitle.Text = "更改密码"; + this.labelTitleID.Text = "新的"; + this.labelTitlePassword.Text = "核实"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginChangeDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginChangeDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnMainLoginChangeUp)); + } + else if (language == DataStore.LanguageID.Czech) + { + } + else + { + this.labelTitle.Text = "비밀번호 변경"; + this.labelTitleID.Text = "새 비밀번호"; + this.labelTitlePassword.Text = "비밀번호 확인"; + + this.buttonCancel.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelDisable)); + this.buttonCancel.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelDown)); + this.buttonCancel.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginCancelUp)); + this.buttonLogon.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginChangeDisable)); + this.buttonLogon.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginChangeDown)); + this.buttonLogon.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.korMainLoginChangeUp)); + } + } + private void DefaultSettingChangePassword() + { + this.textBoxID.Text = ""; + this.textBoxPassword.Text = ""; + + this.textBoxID.PasswordChar = '*'; + this.textBoxPassword.PasswordChar = '*'; + + this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; + this.smartKeyboard.Show(); + } + private void SaveChangePassword() + { + string detail = ""; + + // Check Password + if (this.textBoxPassword.Text.Length < 6) + { + // PASSWORD : 6~20자 입력하세요 + DialogFormMessage msg = new DialogFormMessage(null, 9, this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + + return; + } + + try + { + if (this.textBoxID.Text != this.textBoxPassword.Text) + { + // 비밀번호가 동일하지 않습니다 + DialogFormMessage myMsg = new DialogFormMessage(null, 17, this.ParentForm.SystemConfig.Language); + myMsg.ShowDialog(); + } + else + { + UserManager.UserManager_UserModifyPW(this.ID, this.textBoxPassword.Text); + this.ParentForm.SystemConfig.CurrentUser.Password = this.textBoxPassword.Text; + + this.DialogResult = DialogResult.OK; + this.Close(); + this.Dispose(); + } + } + catch + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + this.Dispose(); + } } #endregion @@ -105,76 +386,13 @@ namespace INT69DB_2A.DialogForms private void buttonLogOn_Click(object sender, EventArgs e) { // Automatic Logout Reset - this.ParentForm.ChildFormMainDisplay.Part11AutomaticLogoutReset(); + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.ChildFormMainDisplay.Part11AutomaticLogoutReset(); - UserManager.UserMgr_user_info_t userInfo = new UserManager.UserMgr_user_info_t(); - - if (this.textBoxID.Text == "") - { - // ID : 6~20자 입력 하세요 - DialogFormMessage myMsg = new DialogFormMessage(null, 3, this.ParentForm.SystemConfig.Language); - myMsg.ShowDialog(); - - return; - } - if (this.textBoxPassword.Text == "") - { - // PASSWORD : 6~20자 입력 하세요 - DialogFormMessage myMsg = new DialogFormMessage(null, 9, this.ParentForm.SystemConfig.Language); - myMsg.ShowDialog(); - - return; - } - - UserManager.UserManager_UserLoginDirect(this.textBoxID.Text, this.textBoxPassword.Text, ref userInfo); - - if (userInfo.status == 0) - { - //MessageBox.Show("로그인 성공"); - - #region 로그인 성공 - if (userInfo.active_level == 1) - this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level1; - else if (userInfo.active_level == 2) - this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level2; - else if (userInfo.active_level == 3) - this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level3; - else if (userInfo.active_level == 9) - this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Admin; - else if (userInfo.active_level == 10) - this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Developer; - - this.ParentForm.SystemConfig.CurrentUser.ID = userInfo.user_id; - this.ParentForm.SystemConfig.CurrentUser.Password = userInfo.user_pw; - - this.ParentForm.SystemConfig.CurrentUser.ExpireAccount = userInfo.expire_period_account; - this.ParentForm.SystemConfig.CurrentUser.ExpirePassword = userInfo.expire_period_pw; - - DateTime time = DateTime.ParseExact(userInfo.register_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.ParentForm.SystemConfig.CurrentUser.DateRegister = time; - time = DateTime.ParseExact(userInfo.login_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.ParentForm.SystemConfig.CurrentUser.DateLogin = time; - time = DateTime.ParseExact(userInfo.expire_account_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.ParentForm.SystemConfig.CurrentUser.DateExpireRegister = time; - time = DateTime.ParseExact(userInfo.expire_register_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.ParentForm.SystemConfig.CurrentUser.DateExpireLogin = time; - - this.ParentForm.SystemConfig.CurrentUser.IsLockAccount = userInfo.flock_status_account == 0 ? false : true; - this.ParentForm.SystemConfig.CurrentUser.IsLockPassword = userInfo.flock_status_password == 0 ? false : true; - - this.ParentForm.SystemConfig.CurrentUser.IsAdmin = userInfo.fadmin == 0 ? false : true; - - this.ParentForm.SystemConfig.CurrentUser.ActiveLevel = userInfo.active_level; - #endregion - - this.DialogResult = DialogResult.OK; - this.Close(); - } + if (this.IsLogin == true) + this.Login(); else - { - DialogFormMessage myMsg = new DialogFormMessage(null, userInfo.status, this.ParentForm.SystemConfig.Language); - myMsg.ShowDialog(); - } + this.SaveChangePassword(); } private void buttonCancel_Click(object sender, EventArgs e) { @@ -193,6 +411,7 @@ namespace INT69DB_2A.DialogForms this.ParentForm.ChildFormMainDisplay.Part11AutomaticLogoutReset(); this.smartKeyboard.TargetInputObject = this.textBoxID; + this.textBoxID.Select(this.textBoxID.Text.Length, 0); } private void textBoxPassword_GotFocus(object sender, EventArgs e) @@ -202,18 +421,17 @@ namespace INT69DB_2A.DialogForms this.ParentForm.ChildFormMainDisplay.Part11AutomaticLogoutReset(); this.smartKeyboard.TargetInputObject = this.textBoxPassword; + this.textBoxPassword.Select(this.textBoxPassword.Text.Length, 0); } private void smartKeyboard_OnXKeyClick(object sender, EventArgs e) { - this.smartKeyboard.Show(); + //this.smartKeyboard.Show(); } private void smartKeyboard_Click(object sender, EventArgs e) { - // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsPart11 == true) - this.ParentForm.ChildFormMainDisplay.Part11AutomaticLogoutReset(); + } #endregion diff --git a/INT69DB_2A/DialogForms/DialogFormLogOn.resx b/INT69DB_2A/DialogForms/DialogFormLogOn.resx index 96134b2..f98a973 100644 --- a/INT69DB_2A/DialogForms/DialogFormLogOn.resx +++ b/INT69DB_2A/DialogForms/DialogFormLogOn.resx @@ -289,7 +289,7 @@ hjEAAGnFLfxDwxgAALIyjAEA4CDDGAAA7jul/F/eB9XIY8iEdQAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp @@ -388,7 +388,7 @@ 5fwR+R+1E4HZ5iT/aAAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp @@ -503,7 +503,7 @@ WuM/U89GVOSfyP8BdoPWvU1dpd0AAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp diff --git a/INT69DB_2A/DialogForms/DialogFormMessage.cs b/INT69DB_2A/DialogForms/DialogFormMessage.cs index 25effe8..029e29c 100644 --- a/INT69DB_2A/DialogForms/DialogFormMessage.cs +++ b/INT69DB_2A/DialogForms/DialogFormMessage.cs @@ -976,7 +976,7 @@ namespace INT69DB_2A.DialogForms } } - // 03 + // 04 public DialogFormMessage(object dll, int code, DataStore.LanguageID language) { InitializeComponent(); @@ -992,83 +992,87 @@ namespace INT69DB_2A.DialogForms switch (code) { case 1: - this.labelErrorCode.Text = "Error 03_01"; + this.labelErrorCode.Text = "Error 04_01"; this.labelMessage1.Text = "ID를 찾을 수 없습니다"; break; case 2: - this.labelErrorCode.Text = "Error 03_02"; + this.labelErrorCode.Text = "Error 04_02"; this.labelMessage1.Text = "ID : 동일한 ID가 있습니다"; break; case 3: - this.labelErrorCode.Text = "Error 03_03"; + this.labelErrorCode.Text = "Error 04_03"; this.labelMessage1.Text = "ID : 6~20자 입력하세요"; break; case 4: - this.labelErrorCode.Text = "Error 03_04"; + this.labelErrorCode.Text = "Error 04_04"; this.labelMessage1.Text = "ID : 6~20자 입력하세요"; break; case 5: - this.labelErrorCode.Text = "Error 03_05"; + this.labelErrorCode.Text = "Error 04_05"; this.labelMessage1.Text = "ID : 연속된 문자(123,321,abc,cba...)또는"; this.labelMessage2.Text = "동일한 문자(111,222,aaa...) 사용 할 수 없습니다"; break; case 6: - this.labelErrorCode.Text = "Error 03_06"; + this.labelErrorCode.Text = "Error 04_06"; this.labelMessage1.Text = "ID : 사용할 수 없는 문자가 포함되어 있습니다"; break; case 7: - this.labelErrorCode.Text = "Error 03_07"; + this.labelErrorCode.Text = "Error 04_07"; this.labelMessage1.Text = "ID : 사용자 계정이 만료 되었습니다"; break; case 8: - this.labelErrorCode.Text = "Error 03_08"; + this.labelErrorCode.Text = "Error 04_08"; this.labelMessage1.Text = "PASSWORD : 이전 패스워드 입니다"; break; case 9: - this.labelErrorCode.Text = "Error 03_09"; + this.labelErrorCode.Text = "Error 04_09"; this.labelMessage1.Text = "PASSWORD : 6~20자 입력하세요"; break; case 10: - this.labelErrorCode.Text = "Error 03_10"; + this.labelErrorCode.Text = "Error 04_10"; this.labelMessage1.Text = "PASSWORD : 6~20자 입력하세요"; break; case 11: - this.labelErrorCode.Text = "Error 03_11"; + this.labelErrorCode.Text = "Error 04_11"; this.labelMessage1.Text = "PASSWORD : 연속된 문자(123,321,abc,cba...)또는"; this.labelMessage2.Text = "동일한 문자(111,222,aaa...) 사용 할 수 없습니다"; break; case 12: - this.labelErrorCode.Text = "Error 03_12"; + this.labelErrorCode.Text = "Error 04_12"; this.labelMessage1.Text = "PASSWORD : 사용할 수 없는 문자가 포함되어 있습니다"; this.labelMessage2.Text = "사용 가능 특수문자 : !@#$%^&*+-."; break; case 13: - this.labelErrorCode.Text = "Error 03_13"; + this.labelErrorCode.Text = "Error 04_13"; this.labelMessage1.Text = "PASSWORD : 영문1이상, 숫자1이상, 특수문자1이상"; this.labelMessage2.Text = "포함하여 주십시오"; break; case 14: - this.labelErrorCode.Text = "Error 03_14"; + this.labelErrorCode.Text = "Error 04_14"; this.labelMessage1.Text = "비밀번호를 확인하세요"; break; case 15: - this.labelErrorCode.Text = "Error 03_15"; + this.labelErrorCode.Text = "Error 04_15"; this.labelMessage1.Text = "PASSWORD : 비밀번호가 만료 되었습니다"; break; case 16: - this.labelErrorCode.Text = "Error 03_16"; - this.labelMessage1.Text = "필수 설정 항목을 설정해 주십시오"; + this.labelErrorCode.Text = "Error 04_16"; + this.labelMessage1.Text = "접근 권한을 설정해 주십시오"; break; case 17: - this.labelErrorCode.Text = "Error 03_17"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_17"; + this.labelMessage1.Text = "비밀번호가 동일하지 않습니다"; break; case 18: - this.labelErrorCode.Text = "Error 03_18"; + this.labelErrorCode.Text = "Error 04_18"; this.labelMessage1.Text = ""; break; + case 99: + this.labelErrorCode.Text = "Error 04_99"; + this.labelMessage1.Text = "제조사에 문의하세요"; + break; default: - this.labelErrorCode.Text = "Error 03_99"; + this.labelErrorCode.Text = "Error 04_99"; this.labelMessage1.Text = "제조사에 문의하세요"; break; } @@ -1079,79 +1083,87 @@ namespace INT69DB_2A.DialogForms switch (code) { case 1: - this.labelErrorCode.Text = "Error 03_01"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_01"; + this.labelMessage1.Text = "ID not found"; break; case 2: - this.labelErrorCode.Text = "Error 03_02"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_02"; + this.labelMessage1.Text = "ID : ID already exists"; break; case 3: - this.labelErrorCode.Text = "Error 03_03"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_03"; + this.labelMessage1.Text = "ID : Please enter 6~20 characters"; break; case 4: - this.labelErrorCode.Text = "Error 03_04"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_04"; + this.labelMessage1.Text = "ID : Please enter 6~20 characters"; break; case 5: - this.labelErrorCode.Text = "Error 03_05"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_05"; + this.labelMessage1.Text = "ID : Consecutive(123,321,abc,cba...) or"; + this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; break; case 6: - this.labelErrorCode.Text = "Error 03_06"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_06"; + this.labelMessage1.Text = "ID : Contains invalid characters"; break; case 7: - this.labelErrorCode.Text = "Error 03_07"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_07"; + this.labelMessage1.Text = "ID : User account has expired"; break; case 8: - this.labelErrorCode.Text = "Error 03_08"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_08"; + this.labelMessage1.Text = "PASSWORD : This is the old password"; break; case 9: - this.labelErrorCode.Text = "Error 03_09"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_09"; + this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; break; case 10: - this.labelErrorCode.Text = "Error 03_10"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_10"; + this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; break; case 11: - this.labelErrorCode.Text = "Error 03_11"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_11"; + this.labelMessage1.Text = "PASSWORD : Consecutive(123,321,abc,cba...) or"; + this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; break; case 12: - this.labelErrorCode.Text = "Error 03_12"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_12"; + this.labelMessage1.Text = "PASSWORD : Contains invalid characters"; + this.labelMessage2.Text = "Special characters allowed : !@#$%^&*+-."; break; case 13: - this.labelErrorCode.Text = "Error 03_13"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_13"; + this.labelMessage1.Text = "PASSWORD : Please include at least one English letter,"; + this.labelMessage2.Text = "at least one number, and at least one special character"; break; case 14: - this.labelErrorCode.Text = "Error 03_14"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_14"; + this.labelMessage1.Text = "Check your password"; break; case 15: - this.labelErrorCode.Text = "Error 03_15"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_15"; + this.labelMessage1.Text = "PASSWORD : Password has expired"; break; case 16: - this.labelErrorCode.Text = "Error 03_16"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_16"; + this.labelMessage1.Text = "Please set the access right"; break; case 17: - this.labelErrorCode.Text = "Error 03_17"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Error 04_17"; + this.labelMessage1.Text = "Passwords are not the same"; break; case 18: - this.labelErrorCode.Text = "Error 03_18"; + this.labelErrorCode.Text = "Error 04_18"; this.labelMessage1.Text = ""; break; + case 99: + this.labelErrorCode.Text = "Error 04_99"; + this.labelMessage1.Text = "Please contact a manufacturer"; + break; default: - this.labelErrorCode.Text = "Error 03_99"; + this.labelErrorCode.Text = "Error 04_99"; this.labelMessage1.Text = "Please contact a manufacturer"; break; } @@ -1164,80 +1176,88 @@ namespace INT69DB_2A.DialogForms switch (code) { case 1: - this.labelErrorCode.Text = "错误 03_01"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_01"; + this.labelMessage1.Text = "未找到 ID"; break; case 2: - this.labelErrorCode.Text = "错误 03_02"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_02"; + this.labelMessage1.Text = "ID : ID已存在"; break; case 3: - this.labelErrorCode.Text = "错误 03_03"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_03"; + this.labelMessage1.Text = "ID : 请输入6~20个字符"; break; case 4: - this.labelErrorCode.Text = "错误 03_04"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_04"; + this.labelMessage1.Text = "ID : 请输入6~20个字符"; break; case 5: - this.labelErrorCode.Text = "错误 03_05"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_05"; + this.labelMessage1.Text = "ID : 不能使用连续的 (123,321,abc,cba...)"; + this.labelMessage2.Text = "或相同的 (111,222,aaa...) 字符。"; break; case 6: - this.labelErrorCode.Text = "错误 03_06"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_06"; + this.labelMessage1.Text = "ID : 它包含无效字符"; break; case 7: - this.labelErrorCode.Text = "错误 03_07"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_07"; + this.labelMessage1.Text = "ID : 用户帐号已过期"; break; case 8: - this.labelErrorCode.Text = "错误 03_08"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_08"; + this.labelMessage1.Text = "密码 : 这是旧密码"; break; case 9: - this.labelErrorCode.Text = "错误 03_09"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_09"; + this.labelMessage1.Text = "密码 : 请输入6~20个字符"; break; case 10: - this.labelErrorCode.Text = "错误 03_10"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_10"; + this.labelMessage1.Text = "密码 : 请输入6~20个字符"; break; case 11: - this.labelErrorCode.Text = "错误 03_11"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_11"; + this.labelMessage1.Text = "密码 : 不能使用连续的 (123,321,abc,cba...)"; + this.labelMessage2.Text = "或相同的 (111,222,aaa...) 字符。"; break; case 12: - this.labelErrorCode.Text = "错误 03_12"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_12"; + this.labelMessage1.Text = "密码 : 它包含无效字符"; + this.labelMessage2.Text = "允许使用特殊字符 : !@#$%^&*+-."; break; case 13: - this.labelErrorCode.Text = "错误 03_13"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_13"; + this.labelMessage1.Text = "密码 : 请至少包含一个英文字母,"; + this.labelMessage2.Text = "至少一个数字,至少一个特殊字符"; break; case 14: - this.labelErrorCode.Text = "错误 03_14"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_14"; + this.labelMessage1.Text = "检查您的密码"; break; case 15: - this.labelErrorCode.Text = "错误 03_15"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_15"; + this.labelMessage1.Text = "密码 : 密码已过期"; break; case 16: - this.labelErrorCode.Text = "错误 03_16"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_16"; + this.labelMessage1.Text = "请设置访问权限"; break; case 17: - this.labelErrorCode.Text = "错误 03_17"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "错误 04_17"; + this.labelMessage1.Text = "密码不一样"; break; case 18: - this.labelErrorCode.Text = "错误 03_18"; + this.labelErrorCode.Text = "错误 04_18"; this.labelMessage1.Text = ""; break; + case 99: + this.labelErrorCode.Text = "错误 04_99"; + this.labelMessage1.Text = "请联系制造商"; + break; default: - this.labelErrorCode.Text = "错误 03_99"; - this.labelMessage1.Text = "请联系厂商"; + this.labelErrorCode.Text = "错误 04_99"; + this.labelMessage1.Text = "请联系制造商"; break; } #endregion @@ -1247,79 +1267,83 @@ namespace INT69DB_2A.DialogForms switch (code) { case 1: - this.labelErrorCode.Text = "Chybě 03_01"; + this.labelErrorCode.Text = "Chybě 04_01"; this.labelMessage1.Text = ""; break; case 2: - this.labelErrorCode.Text = "Chybě 03_02"; + this.labelErrorCode.Text = "Chybě 04_02"; this.labelMessage1.Text = ""; break; case 3: - this.labelErrorCode.Text = "Chybě 03_03"; + this.labelErrorCode.Text = "Chybě 04_03"; this.labelMessage1.Text = ""; break; case 4: - this.labelErrorCode.Text = "Chybě 03_04"; + this.labelErrorCode.Text = "Chybě 04_04"; this.labelMessage1.Text = ""; break; case 5: - this.labelErrorCode.Text = "Chybě 03_05"; + this.labelErrorCode.Text = "Chybě 04_05"; this.labelMessage1.Text = ""; break; case 6: - this.labelErrorCode.Text = "Chybě 03_06"; + this.labelErrorCode.Text = "Chybě 04_06"; this.labelMessage1.Text = ""; break; case 7: - this.labelErrorCode.Text = "Chybě 03_07"; + this.labelErrorCode.Text = "Chybě 04_07"; this.labelMessage1.Text = ""; break; case 8: - this.labelErrorCode.Text = "Chybě 03_08"; + this.labelErrorCode.Text = "Chybě 04_08"; this.labelMessage1.Text = ""; break; case 9: - this.labelErrorCode.Text = "Chybě 03_09"; + this.labelErrorCode.Text = "Chybě 04_09"; this.labelMessage1.Text = ""; break; case 10: - this.labelErrorCode.Text = "Chybě 03_10"; + this.labelErrorCode.Text = "Chybě 04_10"; this.labelMessage1.Text = ""; break; case 11: - this.labelErrorCode.Text = "Chybě 03_11"; + this.labelErrorCode.Text = "Chybě 04_11"; this.labelMessage1.Text = ""; break; case 12: - this.labelErrorCode.Text = "Chybě 03_12"; + this.labelErrorCode.Text = "Chybě 04_12"; this.labelMessage1.Text = ""; break; case 13: - this.labelErrorCode.Text = "Chybě 03_13"; + this.labelErrorCode.Text = "Chybě 04_13"; this.labelMessage1.Text = ""; break; case 14: - this.labelErrorCode.Text = "Chybě 03_14"; + this.labelErrorCode.Text = "Chybě 04_14"; this.labelMessage1.Text = ""; break; case 15: - this.labelErrorCode.Text = "Chybě 03_15"; + this.labelErrorCode.Text = "Chybě 04_15"; this.labelMessage1.Text = ""; break; case 16: - this.labelErrorCode.Text = "Chybě 03_16"; + this.labelErrorCode.Text = "Chybě 04_16"; this.labelMessage1.Text = ""; break; case 17: - this.labelErrorCode.Text = "Chybě 03_17"; + this.labelErrorCode.Text = "Chybě 04_17"; this.labelMessage1.Text = ""; break; case 18: - this.labelErrorCode.Text = "Chybě 03_18"; + this.labelErrorCode.Text = "Chybě 04_18"; this.labelMessage1.Text = ""; break; + case 99: + this.labelErrorCode.Text = "Chybě 04_99"; + this.labelMessage1.Text = "Kontaktujte výrobce"; + break; default: - this.labelErrorCode.Text = "Chybě 03_99"; + this.labelErrorCode.Text = "Chybě 04_99"; this.labelMessage1.Text = "Kontaktujte výrobce"; this.labelMessage2.Text = ""; break; @@ -1328,83 +1352,93 @@ namespace INT69DB_2A.DialogForms break; case DataStore.LanguageID.German: #region 독일어 + this.buttonOK.Text = "Bestätigen"; + switch (code) { case 1: - this.labelErrorCode.Text = "Error 01"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_01"; + this.labelMessage1.Text = "ID nicht gefunden"; break; case 2: - this.labelErrorCode.Text = "Error 02"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_02"; + this.labelMessage1.Text = "ID : ID existiert bereits"; break; case 3: - this.labelErrorCode.Text = "Error 03"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_03"; + this.labelMessage1.Text = "ID : Bitte geben Sie 6~20 Zeichen ein"; break; case 4: - this.labelErrorCode.Text = "Error 04"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_04"; + this.labelMessage1.Text = "ID : Bitte geben Sie 6~20 Zeichen ein"; break; case 5: - this.labelErrorCode.Text = "Error 05"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_05"; + this.labelMessage1.Text = "ID : Aufeinanderfolgende (123,321,abc,cba...)"; + this.labelMessage2.Text = "oder identische (111,222,aaa...) Zeichen können nicht verwendet werden."; break; case 6: - this.labelErrorCode.Text = "Error 06"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_06"; + this.labelMessage1.Text = "ID : Es enthält ungültige Zeichen"; break; case 7: - this.labelErrorCode.Text = "Error 07"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_07"; + this.labelMessage1.Text = "ID : Benutzerkonto ist abgelaufen"; break; case 8: - this.labelErrorCode.Text = "Error 08"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_08"; + this.labelMessage1.Text = "Passwort : Dies ist das alte Passwort"; break; case 9: - this.labelErrorCode.Text = "Error 09"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_09"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie 6~20 Zeichen ein"; break; case 10: - this.labelErrorCode.Text = "Error 10"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_10"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie 6~20 Zeichen ein"; break; case 11: - this.labelErrorCode.Text = "Error 11"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_11"; + this.labelMessage1.Text = "Passwort : Aufeinanderfolgende (123,321,abc,cba...)"; + this.labelMessage2.Text = "oder identische (111,222,aaa...) Zeichen können nicht verwendet werden."; break; case 12: - this.labelErrorCode.Text = "Error 12"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_12"; + this.labelMessage1.Text = "Passwort : Es enthält ungültige Zeichen"; + this.labelMessage2.Text = "Sonderzeichen erlaubt : !@#$%^&*+-."; break; case 13: - this.labelErrorCode.Text = "Error 13"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_13"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie mindestens einen"; + this.labelMessage2.Text = "englischen Buchstaben, mindestens eine Ziffer und mindestens ein Sonderzeichen an"; break; case 14: - this.labelErrorCode.Text = "Error 14"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_14"; + this.labelMessage1.Text = "Überprüfen Sie Ihr Passwort"; break; case 15: - this.labelErrorCode.Text = "Error 15"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_15"; + this.labelMessage1.Text = "Passwort : Passwort ist abgelaufen"; break; case 16: - this.labelErrorCode.Text = "Error 16"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_16"; + this.labelMessage1.Text = "Bitte legen Sie Zugriffsrechte fest"; break; case 17: - this.labelErrorCode.Text = "Error 17"; - this.labelMessage1.Text = ""; + this.labelErrorCode.Text = "Fehler 04_17"; + this.labelMessage1.Text = "Passwörter sind nicht gleich"; break; case 18: - this.labelErrorCode.Text = "Error 18"; + this.labelErrorCode.Text = "Fehler 04_18"; this.labelMessage1.Text = ""; break; + case 99: + this.labelErrorCode.Text = "Fehler 04_99"; + this.labelMessage1.Text = "Bitte wenden Sie sich an einen Hersteller"; + break; default: - this.labelErrorCode.Text = "Fehler 99"; - this.labelMessage1.Text = "Hersteller kontaktieren"; + this.labelErrorCode.Text = "Fehler 04_99"; + this.labelMessage1.Text = "Bitte wenden Sie sich an einen Hersteller"; break; } #endregion @@ -1472,7 +1506,7 @@ namespace INT69DB_2A.DialogForms #endregion #region Method - private void InitializeContnrol() + private void InitializeControl() { int x = 0, y = 0; @@ -1490,7 +1524,7 @@ namespace INT69DB_2A.DialogForms { base.OnLoad(e); - this.InitializeContnrol(); + this.InitializeControl(); } #endregion diff --git a/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.cs b/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.cs similarity index 69% rename from INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.cs rename to INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.cs index 1ae1afa..8038e7a 100644 --- a/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.cs +++ b/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.cs @@ -9,18 +9,23 @@ using System.Windows.Forms; namespace INT69DB_2A.DialogForms { - public partial class DialogFormPasswordKeyPad1 : Form + public partial class DialogFormPasswordKeyPad : Form { #region Field private string m_InputKey; private string m_PassKey; + private string m_PasswordHiddenMenu; + private int m_Digit; #endregion #region Constructor - public DialogFormPasswordKeyPad1(DataStore.LanguageID language) + public DialogFormPasswordKeyPad(int digit, DataStore.LanguageID language) { InitializeComponent(); + this.Digit = digit; + this.PasswordHiddenMenu = DateTime.Now.ToString("MMdd") + "0810"; + this.InitializeDesign(language); } #endregion @@ -36,36 +41,43 @@ namespace INT69DB_2A.DialogForms get { return this.m_PassKey; } set { this.m_PassKey = value; } } + private int Digit + { + get { return this.m_Digit; } + set { this.m_Digit = value; } + } + public string PasswordHiddenMenu + { + get { return this.m_PasswordHiddenMenu; } + set { this.m_PasswordHiddenMenu = value; } + } #endregion #region Method private void InputNum(string key) { - if (this.InputKey.Length >= 4) + if (this.InputKey.Length >= this.Digit) { this.InputKey = key; - this.labelScreen.Text = this.InputKey; + this.labelScreen.Text = "*"; } else { this.InputKey += key; - this.labelScreen.Text = this.InputKey; + this.labelScreen.Text += "*"; } } private void InitializeDesign(DataStore.LanguageID language) { - if (language == DataStore.LanguageID.Korean) + if (language == DataStore.LanguageID.English) { - - } - else if (language == DataStore.LanguageID.English) - { - + this.buttonCancel.Text = "ESC"; + this.buttonEnter.Text = "Enter"; } else if (language == DataStore.LanguageID.Chinese) { - this.labelSubject.Text = "密码"; + this.labelSubject.Text = "键盘"; this.buttonCancel.Text = "取消"; this.buttonEnter.Text = "确认"; @@ -76,10 +88,11 @@ namespace INT69DB_2A.DialogForms } else { - + this.buttonCancel.Text = "ESC"; + this.buttonEnter.Text = "Enter"; } } - private void InitializeContnrol() + private void InitializeControl() { int x = 0, y = 0; @@ -100,17 +113,24 @@ namespace INT69DB_2A.DialogForms { base.OnLoad(e); - this.InitializeContnrol(); + this.InitializeControl(); } #endregion #region Event Handler private void buttonEnter_Click(object sender, EventArgs e) { - if (this.labelScreen.Text.Length == 4) + if (this.labelScreen.Text.Length == 8) { - this.DialogResult = DialogResult.OK; + if (this.Digit == 8) + { + if (this.InputKey == this.PasswordHiddenMenu) + this.DialogResult = DialogResult.OK; + } } + + this.InputKey = ""; + this.labelScreen.Text = ""; } private void buttonNumber_Click(object sender, EventArgs e) diff --git a/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.designer.cs b/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.designer.cs similarity index 99% rename from INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.designer.cs rename to INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.designer.cs index d5b0ed7..73464b8 100644 --- a/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.designer.cs +++ b/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.designer.cs @@ -1,6 +1,6 @@ namespace INT69DB_2A.DialogForms { - partial class DialogFormPasswordKeyPad1 + partial class DialogFormPasswordKeyPad { /// /// Required designer variable. diff --git a/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.resx b/INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.resx similarity index 100% rename from INT69DB_2A/DialogForms/DialogFormPasswordKeyPad1.resx rename to INT69DB_2A/DialogForms/DialogFormPasswordKeyPad.resx diff --git a/INT69DB_2A/DialogForms/DialogFormYesNo.cs b/INT69DB_2A/DialogForms/DialogFormYesNo.cs index 0db3dc9..6a57c0d 100644 --- a/INT69DB_2A/DialogForms/DialogFormYesNo.cs +++ b/INT69DB_2A/DialogForms/DialogFormYesNo.cs @@ -311,6 +311,14 @@ namespace INT69DB_2A.DialogForms case DataStore.LanguageID.Korean: switch (ok) { + case 2: + this.labelErrorCode.Text = "비밀번호 만료"; + if (int.Parse(msg) == 0) + this.labelMessage1.Text = "비밀번호 만료일입니다."; + else + this.labelMessage1.Text = string.Format("비밀번호 만료 {0}일 전입니다.", msg); + this.labelMessage2.Text = "비밀번호를 변경하시겠습니까?"; + break; case 31: this.labelErrorCode.Text = "파일"; this.labelMessage1.Text = string.Format("{0} 파일이 이미 있습니다. 바꾸시겠습니까?", msg); @@ -320,8 +328,43 @@ namespace INT69DB_2A.DialogForms } break; case DataStore.LanguageID.English: + switch (ok) + { + case 2: + this.labelErrorCode.Text = "Password expiration"; + if (int.Parse(msg) == 0) + this.labelMessage1.Text = "Today is the password expiration date."; + else + this.labelMessage1.Text = string.Format("{0} days before password expires", msg); + this.labelMessage2.Text = "Do you want to change the password?"; + break; + case 31: + this.labelErrorCode.Text = "File"; + this.labelMessage1.Text = string.Format("{0} already exists. Do you change the file?", msg); + break; + default: + break; + } + break; break; case DataStore.LanguageID.Chinese: + switch (ok) + { + case 2: + this.labelErrorCode.Text = "密码过期"; + if (int.Parse(msg) == 0) + this.labelMessage1.Text = "今天是密码过期日期."; + else + this.labelMessage1.Text = string.Format("密码过期前{0}天", msg); + this.labelMessage2.Text = "您要更改密码吗?"; + break; + case 31: + this.labelErrorCode.Text = "文件"; + this.labelMessage1.Text = string.Format("{0} 已经存在。 你改文件了吗?", msg); + break; + default: + break; + } break; case DataStore.LanguageID.Czech: break; diff --git a/INT69DB_2A/Forms/FormCommunication.cs b/INT69DB_2A/Forms/FormCommunication.cs index 03a297a..15155b3 100644 --- a/INT69DB_2A/Forms/FormCommunication.cs +++ b/INT69DB_2A/Forms/FormCommunication.cs @@ -393,7 +393,7 @@ namespace INT69DB_2A.Forms { if (this.comboBoxSerial3Mode.SelectedIndex == 1) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionCOM3_1.Text = "STX[1],ID[5],NO[4],"; this.labelProtocolDescriptionCOM3_2.Text = "{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -406,7 +406,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxSerial3Mode.SelectedIndex == 2) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionCOM3_1.Text = "STX[1],ID[5],NO[4],"; this.labelProtocolDescriptionCOM3_2.Text = "{SIGN[1],GAP WEIGHT[6]} * n,ETX[1]"; @@ -419,7 +419,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxSerial3Mode.SelectedIndex == 3) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionCOM3_1.Text = "STX[1],ID[5],NO[4],PassRange[6],"; this.labelProtocolDescriptionCOM3_2.Text = "{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -437,7 +437,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxSerial3Mode.SelectedIndex == 5) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionCOM3_1.Text = "STX[1],ID[5],NO[4],Under[6],Pass[6],Over[6],"; this.labelProtocolDescriptionCOM3_2.Text = "Tare[6],{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -466,7 +466,7 @@ namespace INT69DB_2A.Forms { if (this.comboBoxMode.SelectedIndex == (int)DataStore.EthernetMode.f1_OPT1) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionEthernet_1.Text = "STX[1],ID[5],NO[4],"; this.labelProtocolDescriptionEthernet_2.Text = "{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -479,7 +479,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxMode.SelectedIndex == (int)DataStore.EthernetMode.f2_OPT2) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionEthernet_1.Text = "STX[1],ID[5],NO[4],"; this.labelProtocolDescriptionEthernet_2.Text = "{SIGN[1],GAP WEIGHT[6]} * n,ETX[1]"; @@ -492,7 +492,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxMode.SelectedIndex == (int)DataStore.EthernetMode.f3_OPT3) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionEthernet_1.Text = "STX[1],ID[5],NO[4],PassRange[6],"; this.labelProtocolDescriptionEthernet_2.Text = "{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -510,7 +510,7 @@ namespace INT69DB_2A.Forms } else if (this.comboBoxMode.SelectedIndex == (int)DataStore.EthernetMode.f5_OPT4) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) { this.labelProtocolDescriptionEthernet_1.Text = "STX[1],ID[5],NO[4],Under[6],Pass[6],Over[6],"; this.labelProtocolDescriptionEthernet_2.Text = "Tare[6],{GRD[1],WEIGHT[6]} * n,ETX[1]"; @@ -1486,35 +1486,35 @@ namespace INT69DB_2A.Forms { if (this.ParentForm.SystemConfig.Serial3Mode == (int)DataStore.SerialMode.f1_OPT1) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) this.ParentForm.SerialUart3Send(this.ParentForm.OPT1(this.ParentForm.CollectionWeightData)); else if (this.ParentForm.SystemConfig.EquipmentMode == 2) this.ParentForm.SerialUart3Send(this.ParentForm.OPT1(1, this.ParentForm.CollectionWeightData[0])); } else if (this.ParentForm.SystemConfig.Serial3Mode == (int)DataStore.SerialMode.f2_OPT2) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) this.ParentForm.SerialUart3Send(this.ParentForm.OPT2(this.ParentForm.CollectionWeightData)); else if (this.ParentForm.SystemConfig.EquipmentMode == 2) this.ParentForm.SerialUart3Send(this.ParentForm.OPT2(1, this.ParentForm.CollectionWeightData[0])); } else if (this.ParentForm.SystemConfig.Serial3Mode == (int)DataStore.SerialMode.f3_OPT3) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) this.ParentForm.SerialUart3Send(this.ParentForm.OPT3(this.ParentForm.CollectionWeightData)); else if (this.ParentForm.SystemConfig.EquipmentMode == 2) this.ParentForm.SerialUart3Send(this.ParentForm.OPT3(1, this.ParentForm.CollectionWeightData[0])); } else if (this.ParentForm.SystemConfig.Serial3Mode == (int)DataStore.SerialMode.f4_Printer) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) this.ParentForm.SerialUart3Send(this.ParentForm.Printer(this.ParentForm.CollectionWeightData)); else if (this.ParentForm.SystemConfig.EquipmentMode == 2) this.ParentForm.SerialUart3Send(this.ParentForm.Printer(1, this.ParentForm.CollectionWeightData[0])); } else if (this.ParentForm.SystemConfig.Serial3Mode == (int)DataStore.SerialMode.f5_OPT4) { - if (this.ParentForm.SystemConfig.EquipmentMode == 1) + if (this.ParentForm.SystemConfig.EquipmentMode == 1 || this.ParentForm.SystemConfig.EquipmentMode == 3) this.ParentForm.SerialUart3Send(this.ParentForm.OPT4(this.ParentForm.CollectionWeightData)); else if (this.ParentForm.SystemConfig.EquipmentMode == 2) this.ParentForm.SerialUart3Send(this.ParentForm.OPT4(1, this.ParentForm.CollectionWeightData[0])); diff --git a/INT69DB_2A/Forms/FormDataBackup_Part11.cs b/INT69DB_2A/Forms/FormDataBackup_Part11.cs index 2f90d7a..eb45167 100644 --- a/INT69DB_2A/Forms/FormDataBackup_Part11.cs +++ b/INT69DB_2A/Forms/FormDataBackup_Part11.cs @@ -107,7 +107,10 @@ namespace INT69DB_2A.Forms dataFolderPath = this.ParentForm.PathDataHistoryFolder; break; case DataStore.E_DataType.Inspection: - dataFolderPath = this.ParentForm.PathDataInspectionFolder; + if(this.ParentForm.SystemConfig.EquipmentMode == 2) + dataFolderPath = this.ParentForm.PathDataInspectionStick2Folder; + else + dataFolderPath = this.ParentForm.PathDataInspectionStick1Folder; break; case DataStore.E_DataType.Others: dataFolderPath = this.ParentForm.PathDataOthersFolder; diff --git a/INT69DB_2A/Forms/FormDataViewer.Designer.cs b/INT69DB_2A/Forms/FormDataViewer.Designer.cs index 9523429..3a31342 100644 --- a/INT69DB_2A/Forms/FormDataViewer.Designer.cs +++ b/INT69DB_2A/Forms/FormDataViewer.Designer.cs @@ -140,13 +140,14 @@ this.listBoxEvent.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxEvent.ColumnDelimiter = '\0'; this.listBoxEvent.ColumnOffsets = null; + this.listBoxEvent.Enabled = false; this.listBoxEvent.FontColor = System.Drawing.Color.Black; this.listBoxEvent.InitVisible = true; this.listBoxEvent.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxEvent.ItemOffsetGap = 5; this.listBoxEvent.ItemOffsetX = 5; this.listBoxEvent.ItemOffsetY = 0; - this.listBoxEvent.Location = new System.Drawing.Point(165, 39); + this.listBoxEvent.Location = new System.Drawing.Point(165, 41); this.listBoxEvent.MouseMoveEventSpace = 3; this.listBoxEvent.MouseMoveSpace = 10; this.listBoxEvent.Name = "listBoxEvent"; @@ -160,7 +161,7 @@ this.listBoxEvent.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxEvent.SeparationlineVisibleBottom = false; this.listBoxEvent.SeparationlineVisibleTop = false; - this.listBoxEvent.Size = new System.Drawing.Size(135, 408); + this.listBoxEvent.Size = new System.Drawing.Size(135, 405); this.listBoxEvent.TabIndex = 28; this.listBoxEvent.Text = "smartListBox1"; this.listBoxEvent.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -175,7 +176,7 @@ this.labelItemCount.BorderStyle = System.Windows.Forms.BorderStyle.None; this.labelItemCount.InitVisible = true; this.labelItemCount.LineSpacing = 0F; - this.labelItemCount.Location = new System.Drawing.Point(726, 229); + this.labelItemCount.Location = new System.Drawing.Point(726, 231); this.labelItemCount.Name = "labelItemCount"; this.labelItemCount.Size = new System.Drawing.Size(70, 30); this.labelItemCount.TabIndex = 38; @@ -193,13 +194,14 @@ this.listBoxType.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxType.ColumnDelimiter = '\0'; this.listBoxType.ColumnOffsets = null; + this.listBoxType.Enabled = false; this.listBoxType.FontColor = System.Drawing.Color.Black; this.listBoxType.InitVisible = true; this.listBoxType.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxType.ItemOffsetGap = 5; this.listBoxType.ItemOffsetX = 5; this.listBoxType.ItemOffsetY = 0; - this.listBoxType.Location = new System.Drawing.Point(645, 39); + this.listBoxType.Location = new System.Drawing.Point(645, 41); this.listBoxType.MouseMoveEventSpace = 3; this.listBoxType.MouseMoveSpace = 10; this.listBoxType.Name = "listBoxType"; @@ -213,7 +215,7 @@ this.listBoxType.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxType.SeparationlineVisibleBottom = false; this.listBoxType.SeparationlineVisibleTop = false; - this.listBoxType.Size = new System.Drawing.Size(75, 408); + this.listBoxType.Size = new System.Drawing.Size(75, 405); this.listBoxType.TabIndex = 28; this.listBoxType.Text = "smartListBox1"; this.listBoxType.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -227,13 +229,14 @@ this.listBoxAfter.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxAfter.ColumnDelimiter = '\0'; this.listBoxAfter.ColumnOffsets = null; + this.listBoxAfter.Enabled = false; this.listBoxAfter.FontColor = System.Drawing.Color.Black; this.listBoxAfter.InitVisible = true; this.listBoxAfter.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxAfter.ItemOffsetGap = 5; this.listBoxAfter.ItemOffsetX = 5; this.listBoxAfter.ItemOffsetY = 0; - this.listBoxAfter.Location = new System.Drawing.Point(564, 39); + this.listBoxAfter.Location = new System.Drawing.Point(564, 41); this.listBoxAfter.MouseMoveEventSpace = 3; this.listBoxAfter.MouseMoveSpace = 10; this.listBoxAfter.Name = "listBoxAfter"; @@ -247,7 +250,7 @@ this.listBoxAfter.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxAfter.SeparationlineVisibleBottom = false; this.listBoxAfter.SeparationlineVisibleTop = false; - this.listBoxAfter.Size = new System.Drawing.Size(75, 408); + this.listBoxAfter.Size = new System.Drawing.Size(75, 405); this.listBoxAfter.TabIndex = 28; this.listBoxAfter.Text = "smartListBox1"; this.listBoxAfter.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -261,13 +264,14 @@ this.listBoxBefore.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxBefore.ColumnDelimiter = '\0'; this.listBoxBefore.ColumnOffsets = null; + this.listBoxBefore.Enabled = false; this.listBoxBefore.FontColor = System.Drawing.Color.Black; this.listBoxBefore.InitVisible = true; this.listBoxBefore.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxBefore.ItemOffsetGap = 5; this.listBoxBefore.ItemOffsetX = 5; this.listBoxBefore.ItemOffsetY = 0; - this.listBoxBefore.Location = new System.Drawing.Point(483, 39); + this.listBoxBefore.Location = new System.Drawing.Point(483, 41); this.listBoxBefore.MouseMoveEventSpace = 3; this.listBoxBefore.MouseMoveSpace = 10; this.listBoxBefore.Name = "listBoxBefore"; @@ -281,7 +285,7 @@ this.listBoxBefore.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxBefore.SeparationlineVisibleBottom = false; this.listBoxBefore.SeparationlineVisibleTop = false; - this.listBoxBefore.Size = new System.Drawing.Size(75, 408); + this.listBoxBefore.Size = new System.Drawing.Size(75, 405); this.listBoxBefore.TabIndex = 28; this.listBoxBefore.Text = "smartListBox1"; this.listBoxBefore.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -295,13 +299,14 @@ this.listBoxDetail.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxDetail.ColumnDelimiter = '\0'; this.listBoxDetail.ColumnOffsets = null; + this.listBoxDetail.Enabled = false; this.listBoxDetail.FontColor = System.Drawing.Color.Black; this.listBoxDetail.InitVisible = true; this.listBoxDetail.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxDetail.ItemOffsetGap = 5; this.listBoxDetail.ItemOffsetX = 5; this.listBoxDetail.ItemOffsetY = 0; - this.listBoxDetail.Location = new System.Drawing.Point(306, 39); + this.listBoxDetail.Location = new System.Drawing.Point(306, 41); this.listBoxDetail.MouseMoveEventSpace = 3; this.listBoxDetail.MouseMoveSpace = 10; this.listBoxDetail.Name = "listBoxDetail"; @@ -315,7 +320,7 @@ this.listBoxDetail.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxDetail.SeparationlineVisibleBottom = false; this.listBoxDetail.SeparationlineVisibleTop = false; - this.listBoxDetail.Size = new System.Drawing.Size(171, 408); + this.listBoxDetail.Size = new System.Drawing.Size(171, 405); this.listBoxDetail.TabIndex = 28; this.listBoxDetail.Text = "smartListBox1"; this.listBoxDetail.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -329,13 +334,14 @@ this.listBoxLoginID.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxLoginID.ColumnDelimiter = '\0'; this.listBoxLoginID.ColumnOffsets = null; + this.listBoxLoginID.Enabled = false; this.listBoxLoginID.FontColor = System.Drawing.Color.Black; this.listBoxLoginID.InitVisible = true; this.listBoxLoginID.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxLoginID.ItemOffsetGap = 5; this.listBoxLoginID.ItemOffsetX = 5; this.listBoxLoginID.ItemOffsetY = 0; - this.listBoxLoginID.Location = new System.Drawing.Point(79, 39); + this.listBoxLoginID.Location = new System.Drawing.Point(79, 41); this.listBoxLoginID.MouseMoveEventSpace = 3; this.listBoxLoginID.MouseMoveSpace = 10; this.listBoxLoginID.Name = "listBoxLoginID"; @@ -349,7 +355,7 @@ this.listBoxLoginID.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxLoginID.SeparationlineVisibleBottom = false; this.listBoxLoginID.SeparationlineVisibleTop = false; - this.listBoxLoginID.Size = new System.Drawing.Size(80, 408); + this.listBoxLoginID.Size = new System.Drawing.Size(80, 405); this.listBoxLoginID.TabIndex = 28; this.listBoxLoginID.Text = "smartListBox1"; this.listBoxLoginID.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -363,13 +369,14 @@ this.listBoxTime.ColumnAlign = SmartX.SmartListBox.COLUMNALIGNS.CENTER; this.listBoxTime.ColumnDelimiter = '\0'; this.listBoxTime.ColumnOffsets = null; + this.listBoxTime.Enabled = false; this.listBoxTime.FontColor = System.Drawing.Color.Black; this.listBoxTime.InitVisible = true; this.listBoxTime.ItemAddOrder = SmartX.SmartListBox.ITEMADDORDERS.BOTTOMADD; this.listBoxTime.ItemOffsetGap = 5; this.listBoxTime.ItemOffsetX = 5; this.listBoxTime.ItemOffsetY = 0; - this.listBoxTime.Location = new System.Drawing.Point(3, 39); + this.listBoxTime.Location = new System.Drawing.Point(3, 41); this.listBoxTime.MouseMoveEventSpace = 3; this.listBoxTime.MouseMoveSpace = 10; this.listBoxTime.Name = "listBoxTime"; @@ -383,7 +390,7 @@ this.listBoxTime.SeparationLineStyle = SmartX.SmartListBox.SEPARATIONLINETYPES.None; this.listBoxTime.SeparationlineVisibleBottom = false; this.listBoxTime.SeparationlineVisibleTop = false; - this.listBoxTime.Size = new System.Drawing.Size(70, 408); + this.listBoxTime.Size = new System.Drawing.Size(70, 405); this.listBoxTime.TabIndex = 28; this.listBoxTime.Text = "smartListBox1"; this.listBoxTime.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); @@ -401,7 +408,7 @@ this.buttonDown.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Regular); this.buttonDown.GroupID = 0; this.buttonDown.InitVisible = true; - this.buttonDown.Location = new System.Drawing.Point(725, 297); + this.buttonDown.Location = new System.Drawing.Point(725, 296); this.buttonDown.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; this.buttonDown.Name = "buttonDown"; this.buttonDown.NestedClickEventPrevent = false; @@ -434,7 +441,7 @@ this.buttonUp.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Regular); this.buttonUp.GroupID = 0; this.buttonUp.InitVisible = true; - this.buttonUp.Location = new System.Drawing.Point(725, 39); + this.buttonUp.Location = new System.Drawing.Point(725, 41); this.buttonUp.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; this.buttonUp.Name = "buttonUp"; this.buttonUp.NestedClickEventPrevent = false; @@ -465,7 +472,7 @@ this.smartLabel8.ForeColor = System.Drawing.Color.White; this.smartLabel8.InitVisible = true; this.smartLabel8.LineSpacing = 0F; - this.smartLabel8.Location = new System.Drawing.Point(645, 3); + this.smartLabel8.Location = new System.Drawing.Point(645, 5); this.smartLabel8.Name = "smartLabel8"; this.smartLabel8.Size = new System.Drawing.Size(75, 30); this.smartLabel8.TabIndex = 28; @@ -485,7 +492,7 @@ this.smartLabel7.ForeColor = System.Drawing.Color.White; this.smartLabel7.InitVisible = true; this.smartLabel7.LineSpacing = 0F; - this.smartLabel7.Location = new System.Drawing.Point(564, 3); + this.smartLabel7.Location = new System.Drawing.Point(564, 5); this.smartLabel7.Name = "smartLabel7"; this.smartLabel7.Size = new System.Drawing.Size(75, 30); this.smartLabel7.TabIndex = 28; @@ -505,7 +512,7 @@ this.smartLabel6.ForeColor = System.Drawing.Color.White; this.smartLabel6.InitVisible = true; this.smartLabel6.LineSpacing = 0F; - this.smartLabel6.Location = new System.Drawing.Point(483, 3); + this.smartLabel6.Location = new System.Drawing.Point(483, 5); this.smartLabel6.Name = "smartLabel6"; this.smartLabel6.Size = new System.Drawing.Size(75, 30); this.smartLabel6.TabIndex = 28; @@ -525,7 +532,7 @@ this.smartLabel5.ForeColor = System.Drawing.Color.White; this.smartLabel5.InitVisible = true; this.smartLabel5.LineSpacing = 0F; - this.smartLabel5.Location = new System.Drawing.Point(306, 3); + this.smartLabel5.Location = new System.Drawing.Point(306, 5); this.smartLabel5.Name = "smartLabel5"; this.smartLabel5.Size = new System.Drawing.Size(171, 30); this.smartLabel5.TabIndex = 28; @@ -545,7 +552,7 @@ this.smartLabel4.ForeColor = System.Drawing.Color.White; this.smartLabel4.InitVisible = true; this.smartLabel4.LineSpacing = 0F; - this.smartLabel4.Location = new System.Drawing.Point(165, 3); + this.smartLabel4.Location = new System.Drawing.Point(165, 5); this.smartLabel4.Name = "smartLabel4"; this.smartLabel4.Size = new System.Drawing.Size(135, 30); this.smartLabel4.TabIndex = 28; @@ -565,7 +572,7 @@ this.smartLabel3.ForeColor = System.Drawing.Color.White; this.smartLabel3.InitVisible = true; this.smartLabel3.LineSpacing = 0F; - this.smartLabel3.Location = new System.Drawing.Point(79, 3); + this.smartLabel3.Location = new System.Drawing.Point(79, 5); this.smartLabel3.Name = "smartLabel3"; this.smartLabel3.Size = new System.Drawing.Size(80, 30); this.smartLabel3.TabIndex = 28; @@ -585,7 +592,7 @@ this.smartLabel2.ForeColor = System.Drawing.Color.White; this.smartLabel2.InitVisible = true; this.smartLabel2.LineSpacing = 0F; - this.smartLabel2.Location = new System.Drawing.Point(3, 3); + this.smartLabel2.Location = new System.Drawing.Point(3, 5); this.smartLabel2.Name = "smartLabel2"; this.smartLabel2.Size = new System.Drawing.Size(70, 30); this.smartLabel2.TabIndex = 28; @@ -694,13 +701,13 @@ this.labelFileName.BackPictureBox2 = null; this.labelFileName.BorderColor = System.Drawing.Color.Black; this.labelFileName.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelFileName.Font = new System.Drawing.Font("새굴림", 13F, System.Drawing.FontStyle.Bold); + this.labelFileName.Font = new System.Drawing.Font("새굴림", 15F, System.Drawing.FontStyle.Bold); this.labelFileName.ForeColor = System.Drawing.Color.White; this.labelFileName.InitVisible = true; this.labelFileName.LineSpacing = 0F; - this.labelFileName.Location = new System.Drawing.Point(457, 33); + this.labelFileName.Location = new System.Drawing.Point(457, 35); this.labelFileName.Name = "labelFileName"; - this.labelFileName.Size = new System.Drawing.Size(180, 25); + this.labelFileName.Size = new System.Drawing.Size(263, 25); this.labelFileName.TabIndex = 169; this.labelFileName.Text = "FileName"; this.labelFileName.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; @@ -717,7 +724,7 @@ this.smartLabel9.ForeColor = System.Drawing.Color.White; this.smartLabel9.InitVisible = true; this.smartLabel9.LineSpacing = 0F; - this.smartLabel9.Location = new System.Drawing.Point(457, 12); + this.smartLabel9.Location = new System.Drawing.Point(457, 9); this.smartLabel9.Name = "smartLabel9"; this.smartLabel9.Size = new System.Drawing.Size(180, 20); this.smartLabel9.TabIndex = 168; diff --git a/INT69DB_2A/Forms/FormDataViewer.cs b/INT69DB_2A/Forms/FormDataViewer.cs index 2613dfc..a5d92e4 100644 --- a/INT69DB_2A/Forms/FormDataViewer.cs +++ b/INT69DB_2A/Forms/FormDataViewer.cs @@ -27,7 +27,6 @@ namespace INT69DB_2A.Forms private Collection CollectionHistoryData; // 파일에서 읽은 데이터 - private List ListDate; private List ListTime; private List ListLoginID; private List ListEvent; @@ -108,7 +107,6 @@ namespace INT69DB_2A.Forms this.CollectionHistoryData = new Collection(); //this.CollectionFileClassification = new Collection>(); - this.ListDate = new List(); this.ListTime = new List(); this.ListLoginID = new List(); this.ListEvent = new List(); @@ -203,7 +201,7 @@ namespace INT69DB_2A.Forms switch (this.CollectionHistoryData[i][7]) { case "Alarm": - enable = filter.TpyeAlarm; + enable = filter.TypeAlarm; break; case "Operation": enable = filter.TypeOperation; @@ -218,7 +216,6 @@ namespace INT69DB_2A.Forms if (enable == true) { - this.ListDate.Add(this.CollectionHistoryData[i][0]); this.ListTime.Add(this.CollectionHistoryData[i][1]); this.ListLoginID.Add(this.CollectionHistoryData[i][2]); this.ListEvent.Add(this.CollectionHistoryData[i][3]); @@ -232,13 +229,13 @@ namespace INT69DB_2A.Forms private void UpdateDisplay() { int cnt = 0; - if (this.ListDate.Count > 50) + if (this.ListTime.Count > 50) { cnt = 50; - this.DataRemainCNT = this.ListDate.Count - 50; + this.DataRemainCNT = this.ListTime.Count - 50; } else - cnt = this.ListDate.Count; + cnt = this.ListTime.Count; for (int i = 0; i < cnt; i++) { @@ -268,7 +265,7 @@ namespace INT69DB_2A.Forms splash.LoadingImagePathname = "SmartLoading4"; splash.Start(); - index = this.ListDate.Count - this.DataRemainCNT; + index = this.ListTime.Count - this.DataRemainCNT; if (this.DataRemainCNT > 50) { @@ -289,7 +286,7 @@ namespace INT69DB_2A.Forms } else { - for (int i = index; i < this.ListDate.Count; i++) + for (int i = index; i < this.ListTime.Count; i++) { //this.listBoxDate.AddItem(this.ListDate[i]); this.listBoxTime.AddItem(this.ListTime[i]); @@ -397,7 +394,6 @@ namespace INT69DB_2A.Forms { this.CollectionHistoryData.Clear(); - //this.listBoxDate.ClearAll(); this.listBoxTime.ClearAll(); this.listBoxLoginID.ClearAll(); this.listBoxEvent.ClearAll(); @@ -406,7 +402,6 @@ namespace INT69DB_2A.Forms this.listBoxAfter.ClearAll(); this.listBoxType.ClearAll(); - this.ListDate.Clear(); this.ListTime.Clear(); this.ListLoginID.Clear(); this.ListEvent.Clear(); @@ -434,6 +429,9 @@ namespace INT69DB_2A.Forms private void buttonFileSelect_Click(object sender, EventArgs e) { this.SelectNodeIndex = -1; + + DialogFormHistoryData form = new DialogFormHistoryData(this); + form.ShowDialog(); } private void buttonFilter_Click(object sender, EventArgs e) { diff --git a/INT69DB_2A/Forms/FormDataViewer.resx b/INT69DB_2A/Forms/FormDataViewer.resx index 748bcb6..b8ce0ff 100644 --- a/INT69DB_2A/Forms/FormDataViewer.resx +++ b/INT69DB_2A/Forms/FormDataViewer.resx @@ -1122,7 +1122,7 @@ - 17, 17 + 17, 8 WEBPAD @@ -1130,4 +1130,7 @@ False + + 34 + \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormEquipmentSetting.Designer.cs b/INT69DB_2A/Forms/FormEquipmentSetting.Designer.cs index ffe2222..696efbc 100644 --- a/INT69DB_2A/Forms/FormEquipmentSetting.Designer.cs +++ b/INT69DB_2A/Forms/FormEquipmentSetting.Designer.cs @@ -44,38 +44,38 @@ this.comboBoxEquipmentColumn = new System.Windows.Forms.ComboBox(); this.comboBoxInputSensorSelect = new System.Windows.Forms.ComboBox(); this.panel1 = new System.Windows.Forms.Panel(); - this.radioButtonEquipmentModeStick1 = new System.Windows.Forms.RadioButton(); - this.radioButtonEquipmentModeStick2 = new System.Windows.Forms.RadioButton(); this.radioButtonEquipmentModeStick3 = new System.Windows.Forms.RadioButton(); + this.radioButtonEquipmentModeStick2 = new System.Windows.Forms.RadioButton(); + this.radioButtonEquipmentModeStick1 = new System.Windows.Forms.RadioButton(); this.labelStaticEquipmentType = new SmartX.SmartLabel(); this.panel3 = new System.Windows.Forms.Panel(); - this.radioButtonDischargeConveyorDirectionCW = new System.Windows.Forms.RadioButton(); - this.radioButtonDischargeConveyorDirectionCCW = new System.Windows.Forms.RadioButton(); this.radioButtonDischargeConveyorDirectionCWCCW = new System.Windows.Forms.RadioButton(); + this.radioButtonDischargeConveyorDirectionCCW = new System.Windows.Forms.RadioButton(); + this.radioButtonDischargeConveyorDirectionCW = new System.Windows.Forms.RadioButton(); this.panel6 = new System.Windows.Forms.Panel(); - this.radioButtonImpellerMotorDirectionCW = new System.Windows.Forms.RadioButton(); this.radioButtonImpellerMotorDirectionCCW = new System.Windows.Forms.RadioButton(); + this.radioButtonImpellerMotorDirectionCW = new System.Windows.Forms.RadioButton(); this.panel7 = new System.Windows.Forms.Panel(); - this.radioButtonFeedingConveyorRunPass = new System.Windows.Forms.RadioButton(); this.radioButtonFeedingConveyorRunNg = new System.Windows.Forms.RadioButton(); + this.radioButtonFeedingConveyorRunPass = new System.Windows.Forms.RadioButton(); this.labelStaticRCRotationDirection = new SmartX.SmartLabel(); this.labelStaticFeedingCVRun = new SmartX.SmartLabel(); this.labelStaticImpellerRotationDirection = new SmartX.SmartLabel(); this.labelStaticImpellerBaudrate = new SmartX.SmartLabel(); this.panel5 = new System.Windows.Forms.Panel(); - this.radioButtonImpellerMotorBaudrate9600 = new System.Windows.Forms.RadioButton(); - this.radioButtonImpellerMotorBaudrate19200 = new System.Windows.Forms.RadioButton(); - this.radioButtonImpellerMotorBaudrate38400 = new System.Windows.Forms.RadioButton(); this.radioButtonImpellerMotorBaudrate115200 = new System.Windows.Forms.RadioButton(); + this.radioButtonImpellerMotorBaudrate38400 = new System.Windows.Forms.RadioButton(); + this.radioButtonImpellerMotorBaudrate19200 = new System.Windows.Forms.RadioButton(); + this.radioButtonImpellerMotorBaudrate9600 = new System.Windows.Forms.RadioButton(); this.panel2 = new System.Windows.Forms.Panel(); - this.radioButtonWeightViewForward = new System.Windows.Forms.RadioButton(); this.radioButtonWeightViewReverse = new System.Windows.Forms.RadioButton(); + this.radioButtonWeightViewForward = new System.Windows.Forms.RadioButton(); this.smartLabel12 = new SmartX.SmartLabel(); this.smartLabel14 = new SmartX.SmartLabel(); this.panel8 = new System.Windows.Forms.Panel(); - this.radioButtonKorean = new System.Windows.Forms.RadioButton(); - this.radioButtonEnglish = new System.Windows.Forms.RadioButton(); this.radioButtonChinese = new System.Windows.Forms.RadioButton(); + this.radioButtonEnglish = new System.Windows.Forms.RadioButton(); + this.radioButtonKorean = new System.Windows.Forms.RadioButton(); this.labelBuadrateWarning = new SmartX.SmartLabel(); this.labelStaticLanguage = new SmartX.SmartLabel(); this.labelBuadrateWarning2 = new SmartX.SmartLabel(); @@ -85,13 +85,11 @@ this.comboBoxStepMotorType = new System.Windows.Forms.ComboBox(); this.labelStaticPingTimer = new SmartX.SmartLabel(); this.buttonPingTimer = new SmartX.SmartButton(); - this.smartLabel2 = new SmartX.SmartLabel(); - this.buttonPart11 = new SmartX.SmartButton(); this.groupBoxSpecialMenu = new SmartX.SmartGroupBox(); - this.buttonSave = new SmartX.SmartButton(); - this.buttonBack = new SmartX.SmartButton(); this.labelTitle = new SmartX.SmartLabel(); this.pictureBoxFormIcon = new System.Windows.Forms.PictureBox(); + this.buttonSave = new SmartX.SmartButton(); + this.buttonBack = new SmartX.SmartButton(); ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.panel1.SuspendLayout(); this.panel3.SuspendLayout(); @@ -394,15 +392,15 @@ this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(500, 25); // - // radioButtonEquipmentModeStick1 + // radioButtonEquipmentModeStick3 // - this.radioButtonEquipmentModeStick1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); - this.radioButtonEquipmentModeStick1.Location = new System.Drawing.Point(10, 3); - this.radioButtonEquipmentModeStick1.Name = "radioButtonEquipmentModeStick1"; - this.radioButtonEquipmentModeStick1.Size = new System.Drawing.Size(90, 20); - this.radioButtonEquipmentModeStick1.TabIndex = 1; - this.radioButtonEquipmentModeStick1.Text = "스틱-I"; - this.radioButtonEquipmentModeStick1.Click += new System.EventHandler(this.control_Click); + this.radioButtonEquipmentModeStick3.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); + this.radioButtonEquipmentModeStick3.Location = new System.Drawing.Point(202, 3); + this.radioButtonEquipmentModeStick3.Name = "radioButtonEquipmentModeStick3"; + this.radioButtonEquipmentModeStick3.Size = new System.Drawing.Size(90, 20); + this.radioButtonEquipmentModeStick3.TabIndex = 3; + this.radioButtonEquipmentModeStick3.Text = "스틱-III"; + this.radioButtonEquipmentModeStick3.Click += new System.EventHandler(this.control_Click); // // radioButtonEquipmentModeStick2 // @@ -414,15 +412,15 @@ this.radioButtonEquipmentModeStick2.Text = "스틱-II"; this.radioButtonEquipmentModeStick2.Click += new System.EventHandler(this.control_Click); // - // radioButtonEquipmentModeStick3 + // radioButtonEquipmentModeStick1 // - this.radioButtonEquipmentModeStick3.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); - this.radioButtonEquipmentModeStick3.Location = new System.Drawing.Point(202, 3); - this.radioButtonEquipmentModeStick3.Name = "radioButtonEquipmentModeStick3"; - this.radioButtonEquipmentModeStick3.Size = new System.Drawing.Size(90, 20); - this.radioButtonEquipmentModeStick3.TabIndex = 3; - this.radioButtonEquipmentModeStick3.Text = "스틱-III"; - this.radioButtonEquipmentModeStick3.Click += new System.EventHandler(this.control_Click); + this.radioButtonEquipmentModeStick1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); + this.radioButtonEquipmentModeStick1.Location = new System.Drawing.Point(10, 3); + this.radioButtonEquipmentModeStick1.Name = "radioButtonEquipmentModeStick1"; + this.radioButtonEquipmentModeStick1.Size = new System.Drawing.Size(90, 20); + this.radioButtonEquipmentModeStick1.TabIndex = 1; + this.radioButtonEquipmentModeStick1.Text = "스틱-I"; + this.radioButtonEquipmentModeStick1.Click += new System.EventHandler(this.control_Click); // // labelStaticEquipmentType // @@ -453,16 +451,15 @@ this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(500, 25); // - // radioButtonDischargeConveyorDirectionCW + // radioButtonDischargeConveyorDirectionCWCCW // - this.radioButtonDischargeConveyorDirectionCW.Checked = true; - this.radioButtonDischargeConveyorDirectionCW.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonDischargeConveyorDirectionCW.Location = new System.Drawing.Point(20, 3); - this.radioButtonDischargeConveyorDirectionCW.Name = "radioButtonDischargeConveyorDirectionCW"; - this.radioButtonDischargeConveyorDirectionCW.Size = new System.Drawing.Size(120, 20); - this.radioButtonDischargeConveyorDirectionCW.TabIndex = 0; - this.radioButtonDischargeConveyorDirectionCW.Text = "CW"; - this.radioButtonDischargeConveyorDirectionCW.Click += new System.EventHandler(this.control_Click); + this.radioButtonDischargeConveyorDirectionCWCCW.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonDischargeConveyorDirectionCWCCW.Location = new System.Drawing.Point(272, 3); + this.radioButtonDischargeConveyorDirectionCWCCW.Name = "radioButtonDischargeConveyorDirectionCWCCW"; + this.radioButtonDischargeConveyorDirectionCWCCW.Size = new System.Drawing.Size(120, 20); + this.radioButtonDischargeConveyorDirectionCWCCW.TabIndex = 2; + this.radioButtonDischargeConveyorDirectionCWCCW.Text = "CW/CCW"; + this.radioButtonDischargeConveyorDirectionCWCCW.Click += new System.EventHandler(this.control_Click); // // radioButtonDischargeConveyorDirectionCCW // @@ -474,15 +471,16 @@ this.radioButtonDischargeConveyorDirectionCCW.Text = "CCW"; this.radioButtonDischargeConveyorDirectionCCW.Click += new System.EventHandler(this.control_Click); // - // radioButtonDischargeConveyorDirectionCWCCW + // radioButtonDischargeConveyorDirectionCW // - this.radioButtonDischargeConveyorDirectionCWCCW.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonDischargeConveyorDirectionCWCCW.Location = new System.Drawing.Point(272, 3); - this.radioButtonDischargeConveyorDirectionCWCCW.Name = "radioButtonDischargeConveyorDirectionCWCCW"; - this.radioButtonDischargeConveyorDirectionCWCCW.Size = new System.Drawing.Size(120, 20); - this.radioButtonDischargeConveyorDirectionCWCCW.TabIndex = 2; - this.radioButtonDischargeConveyorDirectionCWCCW.Text = "CW/CCW"; - this.radioButtonDischargeConveyorDirectionCWCCW.Click += new System.EventHandler(this.control_Click); + this.radioButtonDischargeConveyorDirectionCW.Checked = true; + this.radioButtonDischargeConveyorDirectionCW.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonDischargeConveyorDirectionCW.Location = new System.Drawing.Point(20, 3); + this.radioButtonDischargeConveyorDirectionCW.Name = "radioButtonDischargeConveyorDirectionCW"; + this.radioButtonDischargeConveyorDirectionCW.Size = new System.Drawing.Size(120, 20); + this.radioButtonDischargeConveyorDirectionCW.TabIndex = 0; + this.radioButtonDischargeConveyorDirectionCW.Text = "CW"; + this.radioButtonDischargeConveyorDirectionCW.Click += new System.EventHandler(this.control_Click); // // panel6 // @@ -493,6 +491,16 @@ this.panel6.Name = "panel6"; this.panel6.Size = new System.Drawing.Size(500, 25); // + // radioButtonImpellerMotorDirectionCCW + // + this.radioButtonImpellerMotorDirectionCCW.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); + this.radioButtonImpellerMotorDirectionCCW.Location = new System.Drawing.Point(232, 3); + this.radioButtonImpellerMotorDirectionCCW.Name = "radioButtonImpellerMotorDirectionCCW"; + this.radioButtonImpellerMotorDirectionCCW.Size = new System.Drawing.Size(180, 20); + this.radioButtonImpellerMotorDirectionCCW.TabIndex = 1; + this.radioButtonImpellerMotorDirectionCCW.Text = "CCW"; + this.radioButtonImpellerMotorDirectionCCW.Click += new System.EventHandler(this.control_Click); + // // radioButtonImpellerMotorDirectionCW // this.radioButtonImpellerMotorDirectionCW.Checked = true; @@ -504,16 +512,6 @@ this.radioButtonImpellerMotorDirectionCW.Text = "CW"; this.radioButtonImpellerMotorDirectionCW.Click += new System.EventHandler(this.control_Click); // - // radioButtonImpellerMotorDirectionCCW - // - this.radioButtonImpellerMotorDirectionCCW.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); - this.radioButtonImpellerMotorDirectionCCW.Location = new System.Drawing.Point(232, 3); - this.radioButtonImpellerMotorDirectionCCW.Name = "radioButtonImpellerMotorDirectionCCW"; - this.radioButtonImpellerMotorDirectionCCW.Size = new System.Drawing.Size(180, 20); - this.radioButtonImpellerMotorDirectionCCW.TabIndex = 1; - this.radioButtonImpellerMotorDirectionCCW.Text = "CCW"; - this.radioButtonImpellerMotorDirectionCCW.Click += new System.EventHandler(this.control_Click); - // // panel7 // this.panel7.BackColor = System.Drawing.SystemColors.ControlLight; @@ -523,6 +521,16 @@ this.panel7.Name = "panel7"; this.panel7.Size = new System.Drawing.Size(500, 25); // + // radioButtonFeedingConveyorRunNg + // + this.radioButtonFeedingConveyorRunNg.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonFeedingConveyorRunNg.Location = new System.Drawing.Point(232, 3); + this.radioButtonFeedingConveyorRunNg.Name = "radioButtonFeedingConveyorRunNg"; + this.radioButtonFeedingConveyorRunNg.Size = new System.Drawing.Size(180, 20); + this.radioButtonFeedingConveyorRunNg.TabIndex = 1; + this.radioButtonFeedingConveyorRunNg.Text = "NG"; + this.radioButtonFeedingConveyorRunNg.Click += new System.EventHandler(this.control_Click); + // // radioButtonFeedingConveyorRunPass // this.radioButtonFeedingConveyorRunPass.Checked = true; @@ -534,16 +542,6 @@ this.radioButtonFeedingConveyorRunPass.Text = "PASS"; this.radioButtonFeedingConveyorRunPass.Click += new System.EventHandler(this.control_Click); // - // radioButtonFeedingConveyorRunNg - // - this.radioButtonFeedingConveyorRunNg.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonFeedingConveyorRunNg.Location = new System.Drawing.Point(232, 3); - this.radioButtonFeedingConveyorRunNg.Name = "radioButtonFeedingConveyorRunNg"; - this.radioButtonFeedingConveyorRunNg.Size = new System.Drawing.Size(180, 20); - this.radioButtonFeedingConveyorRunNg.TabIndex = 1; - this.radioButtonFeedingConveyorRunNg.Text = "NG"; - this.radioButtonFeedingConveyorRunNg.Click += new System.EventHandler(this.control_Click); - // // labelStaticRCRotationDirection // this.labelStaticRCRotationDirection.BackPictureBox = this.smartForm1; @@ -631,29 +629,17 @@ this.panel5.Name = "panel5"; this.panel5.Size = new System.Drawing.Size(500, 25); // - // radioButtonImpellerMotorBaudrate9600 + // radioButtonImpellerMotorBaudrate115200 // - this.radioButtonImpellerMotorBaudrate9600.Checked = true; - this.radioButtonImpellerMotorBaudrate9600.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); - this.radioButtonImpellerMotorBaudrate9600.ForeColor = System.Drawing.Color.Black; - this.radioButtonImpellerMotorBaudrate9600.Location = new System.Drawing.Point(20, 3); - this.radioButtonImpellerMotorBaudrate9600.Name = "radioButtonImpellerMotorBaudrate9600"; - this.radioButtonImpellerMotorBaudrate9600.Size = new System.Drawing.Size(100, 20); - this.radioButtonImpellerMotorBaudrate9600.TabIndex = 105; - this.radioButtonImpellerMotorBaudrate9600.Text = "9600"; - this.radioButtonImpellerMotorBaudrate9600.Click += new System.EventHandler(this.control_Click); - // - // radioButtonImpellerMotorBaudrate19200 - // - this.radioButtonImpellerMotorBaudrate19200.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); - this.radioButtonImpellerMotorBaudrate19200.ForeColor = System.Drawing.Color.Black; - this.radioButtonImpellerMotorBaudrate19200.Location = new System.Drawing.Point(126, 3); - this.radioButtonImpellerMotorBaudrate19200.Name = "radioButtonImpellerMotorBaudrate19200"; - this.radioButtonImpellerMotorBaudrate19200.Size = new System.Drawing.Size(100, 20); - this.radioButtonImpellerMotorBaudrate19200.TabIndex = 106; - this.radioButtonImpellerMotorBaudrate19200.TabStop = false; - this.radioButtonImpellerMotorBaudrate19200.Text = "19200"; - this.radioButtonImpellerMotorBaudrate19200.Click += new System.EventHandler(this.control_Click); + this.radioButtonImpellerMotorBaudrate115200.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); + this.radioButtonImpellerMotorBaudrate115200.ForeColor = System.Drawing.Color.Black; + this.radioButtonImpellerMotorBaudrate115200.Location = new System.Drawing.Point(338, 3); + this.radioButtonImpellerMotorBaudrate115200.Name = "radioButtonImpellerMotorBaudrate115200"; + this.radioButtonImpellerMotorBaudrate115200.Size = new System.Drawing.Size(100, 20); + this.radioButtonImpellerMotorBaudrate115200.TabIndex = 108; + this.radioButtonImpellerMotorBaudrate115200.TabStop = false; + this.radioButtonImpellerMotorBaudrate115200.Text = "115200"; + this.radioButtonImpellerMotorBaudrate115200.Click += new System.EventHandler(this.control_Click); // // radioButtonImpellerMotorBaudrate38400 // @@ -667,17 +653,29 @@ this.radioButtonImpellerMotorBaudrate38400.Text = "38400"; this.radioButtonImpellerMotorBaudrate38400.Click += new System.EventHandler(this.control_Click); // - // radioButtonImpellerMotorBaudrate115200 + // radioButtonImpellerMotorBaudrate19200 // - this.radioButtonImpellerMotorBaudrate115200.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); - this.radioButtonImpellerMotorBaudrate115200.ForeColor = System.Drawing.Color.Black; - this.radioButtonImpellerMotorBaudrate115200.Location = new System.Drawing.Point(338, 3); - this.radioButtonImpellerMotorBaudrate115200.Name = "radioButtonImpellerMotorBaudrate115200"; - this.radioButtonImpellerMotorBaudrate115200.Size = new System.Drawing.Size(100, 20); - this.radioButtonImpellerMotorBaudrate115200.TabIndex = 108; - this.radioButtonImpellerMotorBaudrate115200.TabStop = false; - this.radioButtonImpellerMotorBaudrate115200.Text = "115200"; - this.radioButtonImpellerMotorBaudrate115200.Click += new System.EventHandler(this.control_Click); + this.radioButtonImpellerMotorBaudrate19200.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); + this.radioButtonImpellerMotorBaudrate19200.ForeColor = System.Drawing.Color.Black; + this.radioButtonImpellerMotorBaudrate19200.Location = new System.Drawing.Point(126, 3); + this.radioButtonImpellerMotorBaudrate19200.Name = "radioButtonImpellerMotorBaudrate19200"; + this.radioButtonImpellerMotorBaudrate19200.Size = new System.Drawing.Size(100, 20); + this.radioButtonImpellerMotorBaudrate19200.TabIndex = 106; + this.radioButtonImpellerMotorBaudrate19200.TabStop = false; + this.radioButtonImpellerMotorBaudrate19200.Text = "19200"; + this.radioButtonImpellerMotorBaudrate19200.Click += new System.EventHandler(this.control_Click); + // + // radioButtonImpellerMotorBaudrate9600 + // + this.radioButtonImpellerMotorBaudrate9600.Checked = true; + this.radioButtonImpellerMotorBaudrate9600.Font = new System.Drawing.Font("새굴림", 14F, System.Drawing.FontStyle.Bold); + this.radioButtonImpellerMotorBaudrate9600.ForeColor = System.Drawing.Color.Black; + this.radioButtonImpellerMotorBaudrate9600.Location = new System.Drawing.Point(20, 3); + this.radioButtonImpellerMotorBaudrate9600.Name = "radioButtonImpellerMotorBaudrate9600"; + this.radioButtonImpellerMotorBaudrate9600.Size = new System.Drawing.Size(100, 20); + this.radioButtonImpellerMotorBaudrate9600.TabIndex = 105; + this.radioButtonImpellerMotorBaudrate9600.Text = "9600"; + this.radioButtonImpellerMotorBaudrate9600.Click += new System.EventHandler(this.control_Click); // // panel2 // @@ -689,6 +687,16 @@ this.panel2.Size = new System.Drawing.Size(500, 25); this.panel2.Visible = false; // + // radioButtonWeightViewReverse + // + this.radioButtonWeightViewReverse.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonWeightViewReverse.Location = new System.Drawing.Point(232, 3); + this.radioButtonWeightViewReverse.Name = "radioButtonWeightViewReverse"; + this.radioButtonWeightViewReverse.Size = new System.Drawing.Size(180, 20); + this.radioButtonWeightViewReverse.TabIndex = 1; + this.radioButtonWeightViewReverse.Text = "Reverse(10~1)"; + this.radioButtonWeightViewReverse.Click += new System.EventHandler(this.control_Click); + // // radioButtonWeightViewForward // this.radioButtonWeightViewForward.Checked = true; @@ -700,16 +708,6 @@ this.radioButtonWeightViewForward.Text = "Forward(1~10)"; this.radioButtonWeightViewForward.Click += new System.EventHandler(this.control_Click); // - // radioButtonWeightViewReverse - // - this.radioButtonWeightViewReverse.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonWeightViewReverse.Location = new System.Drawing.Point(232, 3); - this.radioButtonWeightViewReverse.Name = "radioButtonWeightViewReverse"; - this.radioButtonWeightViewReverse.Size = new System.Drawing.Size(180, 20); - this.radioButtonWeightViewReverse.TabIndex = 1; - this.radioButtonWeightViewReverse.Text = "Reverse(10~1)"; - this.radioButtonWeightViewReverse.Click += new System.EventHandler(this.control_Click); - // // smartLabel12 // this.smartLabel12.BackColor = System.Drawing.Color.Silver; @@ -762,16 +760,15 @@ this.panel8.Name = "panel8"; this.panel8.Size = new System.Drawing.Size(500, 25); // - // radioButtonKorean + // radioButtonChinese // - this.radioButtonKorean.Checked = true; - this.radioButtonKorean.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonKorean.Location = new System.Drawing.Point(20, 3); - this.radioButtonKorean.Name = "radioButtonKorean"; - this.radioButtonKorean.Size = new System.Drawing.Size(100, 20); - this.radioButtonKorean.TabIndex = 0; - this.radioButtonKorean.Text = "한글"; - this.radioButtonKorean.Click += new System.EventHandler(this.control_Click); + this.radioButtonChinese.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonChinese.Location = new System.Drawing.Point(232, 3); + this.radioButtonChinese.Name = "radioButtonChinese"; + this.radioButtonChinese.Size = new System.Drawing.Size(100, 20); + this.radioButtonChinese.TabIndex = 2; + this.radioButtonChinese.Text = "汉语"; + this.radioButtonChinese.Click += new System.EventHandler(this.control_Click); // // radioButtonEnglish // @@ -783,15 +780,16 @@ this.radioButtonEnglish.Text = "English"; this.radioButtonEnglish.Click += new System.EventHandler(this.control_Click); // - // radioButtonChinese + // radioButtonKorean // - this.radioButtonChinese.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); - this.radioButtonChinese.Location = new System.Drawing.Point(232, 3); - this.radioButtonChinese.Name = "radioButtonChinese"; - this.radioButtonChinese.Size = new System.Drawing.Size(100, 20); - this.radioButtonChinese.TabIndex = 2; - this.radioButtonChinese.Text = "汉语"; - this.radioButtonChinese.Click += new System.EventHandler(this.control_Click); + this.radioButtonKorean.Checked = true; + this.radioButtonKorean.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.radioButtonKorean.Location = new System.Drawing.Point(20, 3); + this.radioButtonKorean.Name = "radioButtonKorean"; + this.radioButtonKorean.Size = new System.Drawing.Size(100, 20); + this.radioButtonKorean.TabIndex = 0; + this.radioButtonKorean.Text = "한글"; + this.radioButtonKorean.Click += new System.EventHandler(this.control_Click); // // labelBuadrateWarning // @@ -982,56 +980,6 @@ this.buttonPingTimer.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonPingTimer.UpImage"))); this.buttonPingTimer.Click += new System.EventHandler(this.buttonPingTimer_Click); // - // smartLabel2 - // - this.smartLabel2.BackPictureBox = this.smartForm1; - this.smartLabel2.BackPictureBox1 = null; - this.smartLabel2.BackPictureBox2 = null; - this.smartLabel2.BorderColor = System.Drawing.Color.Black; - this.smartLabel2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.smartLabel2.Font = new System.Drawing.Font("새굴림", 11F, System.Drawing.FontStyle.Bold); - this.smartLabel2.InitVisible = true; - this.smartLabel2.LineSpacing = 0F; - this.smartLabel2.Location = new System.Drawing.Point(428, 451); - this.smartLabel2.Name = "smartLabel2"; - this.smartLabel2.Size = new System.Drawing.Size(208, 25); - this.smartLabel2.TabIndex = 208; - this.smartLabel2.Text = "Part11"; - this.smartLabel2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; - this.smartLabel2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; - this.smartLabel2.Wordwrap = false; - // - // buttonPart11 - // - this.buttonPart11.BackPictureBox = null; - this.buttonPart11.BackPictureBox1 = null; - this.buttonPart11.BackPictureBox2 = null; - this.buttonPart11.ButtonColor = System.Drawing.Color.Gray; - this.buttonPart11.ButtonImageAutoSize = true; - this.buttonPart11.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonPart11.DisableImage = null; - this.buttonPart11.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonPart11.DownImage"))); - this.buttonPart11.GroupID = 0; - this.buttonPart11.InitVisible = true; - this.buttonPart11.Location = new System.Drawing.Point(642, 451); - this.buttonPart11.Mode = SmartX.SmartButton.BUTTONMODE.PUSH; - this.buttonPart11.Name = "buttonPart11"; - this.buttonPart11.NestedClickEventPrevent = false; - this.buttonPart11.OutlinePixel = 1; - this.buttonPart11.RepeatInterval = 200; - this.buttonPart11.RepeatIntervalAccelerate = null; - this.buttonPart11.SafeInterval = 200; - this.buttonPart11.Size = new System.Drawing.Size(84, 25); - this.buttonPart11.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonPart11.TabIndex = 209; - this.buttonPart11.TextColor = System.Drawing.Color.Black; - this.buttonPart11.TextDownColor = System.Drawing.Color.White; - this.buttonPart11.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonPart11.TextLocation = new System.Drawing.Point(0, 0); - this.buttonPart11.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonPart11.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonPart11.UpImage"))); - this.buttonPart11.Click += new System.EventHandler(this.control_Click); - // // groupBoxSpecialMenu // this.groupBoxSpecialMenu.BackPictureBox = this.smartForm1; @@ -1040,8 +988,6 @@ this.groupBoxSpecialMenu.Controls.Add(this.pictureBoxFormIcon); this.groupBoxSpecialMenu.Controls.Add(this.buttonSave); this.groupBoxSpecialMenu.Controls.Add(this.buttonBack); - this.groupBoxSpecialMenu.Controls.Add(this.buttonPart11); - this.groupBoxSpecialMenu.Controls.Add(this.smartLabel2); this.groupBoxSpecialMenu.Controls.Add(this.buttonPingTimer); this.groupBoxSpecialMenu.Controls.Add(this.labelStaticPingTimer); this.groupBoxSpecialMenu.Controls.Add(this.comboBoxStepMotorType); @@ -1092,6 +1038,33 @@ this.groupBoxSpecialMenu.TabIndex = 144; this.groupBoxSpecialMenu.TextColor = System.Drawing.Color.Black; // + // labelTitle + // + this.labelTitle.BackPictureBox = this.smartForm1; + this.labelTitle.BackPictureBox1 = null; + this.labelTitle.BackPictureBox2 = null; + this.labelTitle.BorderColor = System.Drawing.Color.Black; + this.labelTitle.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitle.Font = new System.Drawing.Font("새굴림", 23F, System.Drawing.FontStyle.Bold); + this.labelTitle.ForeColor = System.Drawing.Color.White; + this.labelTitle.InitVisible = true; + this.labelTitle.LineSpacing = 0F; + this.labelTitle.Location = new System.Drawing.Point(69, 11); + this.labelTitle.Name = "labelTitle"; + this.labelTitle.Size = new System.Drawing.Size(382, 45); + this.labelTitle.TabIndex = 237; + this.labelTitle.Text = "장비 설정"; + this.labelTitle.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelTitle.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitle.Wordwrap = false; + // + // pictureBoxFormIcon + // + this.pictureBoxFormIcon.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxFormIcon.Image"))); + this.pictureBoxFormIcon.Location = new System.Drawing.Point(16, 11); + this.pictureBoxFormIcon.Name = "pictureBoxFormIcon"; + this.pictureBoxFormIcon.Size = new System.Drawing.Size(47, 45); + // // buttonSave // this.buttonSave.BackPictureBox = null; @@ -1155,33 +1128,6 @@ this.buttonBack.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonBack.UpImage"))); this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click); // - // labelTitle - // - this.labelTitle.BackPictureBox = this.smartForm1; - this.labelTitle.BackPictureBox1 = null; - this.labelTitle.BackPictureBox2 = null; - this.labelTitle.BorderColor = System.Drawing.Color.Black; - this.labelTitle.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitle.Font = new System.Drawing.Font("새굴림", 23F, System.Drawing.FontStyle.Bold); - this.labelTitle.ForeColor = System.Drawing.Color.White; - this.labelTitle.InitVisible = true; - this.labelTitle.LineSpacing = 0F; - this.labelTitle.Location = new System.Drawing.Point(69, 11); - this.labelTitle.Name = "labelTitle"; - this.labelTitle.Size = new System.Drawing.Size(382, 45); - this.labelTitle.TabIndex = 237; - this.labelTitle.Text = "장비 설정"; - this.labelTitle.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; - this.labelTitle.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; - this.labelTitle.Wordwrap = false; - // - // pictureBoxFormIcon - // - this.pictureBoxFormIcon.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxFormIcon.Image"))); - this.pictureBoxFormIcon.Location = new System.Drawing.Point(16, 11); - this.pictureBoxFormIcon.Name = "pictureBoxFormIcon"; - this.pictureBoxFormIcon.Size = new System.Drawing.Size(47, 45); - // // FormEquipmentSetting // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -1263,8 +1209,6 @@ private System.Windows.Forms.ComboBox comboBoxStepMotorType; private SmartX.SmartLabel labelStaticPingTimer; private SmartX.SmartButton buttonPingTimer; - private SmartX.SmartLabel smartLabel2; - private SmartX.SmartButton buttonPart11; private SmartX.SmartGroupBox groupBoxSpecialMenu; private SmartX.SmartButton buttonSave; private SmartX.SmartButton buttonBack; diff --git a/INT69DB_2A/Forms/FormEquipmentSetting.cs b/INT69DB_2A/Forms/FormEquipmentSetting.cs index e3cae7a..c7df634 100644 --- a/INT69DB_2A/Forms/FormEquipmentSetting.cs +++ b/INT69DB_2A/Forms/FormEquipmentSetting.cs @@ -249,12 +249,6 @@ namespace INT69DB_2A.Forms else this.buttonPingTimer.ButtonUp(); - // Part11 - if (this.ParentForm.SystemConfig.IsPart11 == true) - this.buttonPart11.ButtonDown(); - else - this.buttonPart11.ButtonUp(); - this.buttonSave.Visible = false; } @@ -281,18 +275,11 @@ namespace INT69DB_2A.Forms { if (this.buttonSave.Visible != true) this.buttonSave.Visible = true; - + SmartX.SmartButton button = sender as SmartX.SmartButton; - if (button == this.buttonPart11) + if (button == this.buttonLogin) { - if (button.ButtonStatus == SmartButton.BUTSTATUS.DOWN) - this.buttonLogin.ButtonDown(); - else - this.buttonLogin.ButtonUp(); - } - else if (button == this.buttonLogin) - { - if (this.buttonPart11.ButtonStatus == SmartButton.BUTSTATUS.DOWN) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.buttonLogin.ButtonDown(); } } @@ -425,18 +412,6 @@ namespace INT69DB_2A.Forms else this.ParentForm.SystemConfig.StepMotorType = (int)DataStore.StepMotorType.MDrive; - // Part11 - if (this.buttonPart11.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) - { - this.ParentForm.SystemConfig.IsPart11 = true; - this.ParentForm.SystemConfig.IsLogin = true; - } - else - { - this.ParentForm.SystemConfig.IsPart11 = false; - this.ParentForm.SystemConfig.IsLogin = false; - } - // SystemConfig 파일 저장 this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); @@ -447,7 +422,6 @@ namespace INT69DB_2A.Forms this.buttonBack.Visible = false; this.buttonSave.Visible = false; } - private void buttonBack_Click(object sender, EventArgs e) { this.ParentForm.ChildFormMenu.DisplayRefresh(); diff --git a/INT69DB_2A/Forms/FormEquipmentSetting.resx b/INT69DB_2A/Forms/FormEquipmentSetting.resx index 26234d7..a54daf9 100644 --- a/INT69DB_2A/Forms/FormEquipmentSetting.resx +++ b/INT69DB_2A/Forms/FormEquipmentSetting.resx @@ -851,134 +851,6 @@ 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 diff --git a/INT69DB_2A/Forms/FormFactoryReset.Designer.cs b/INT69DB_2A/Forms/FormInitialization.Designer.cs similarity index 99% rename from INT69DB_2A/Forms/FormFactoryReset.Designer.cs rename to INT69DB_2A/Forms/FormInitialization.Designer.cs index 31cf023..78a0807 100644 --- a/INT69DB_2A/Forms/FormFactoryReset.Designer.cs +++ b/INT69DB_2A/Forms/FormInitialization.Designer.cs @@ -1,6 +1,6 @@ namespace INT69DB_2A.Forms { - partial class FormFactoryReset + partial class FormInitialization { /// /// Required designer variable. @@ -28,7 +28,7 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormFactoryReset)); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormInitialization)); this.smartForm1 = new SmartX.SmartForm(); this.labelResetFail = new SmartX.SmartLabel(); this.labelResetRestart = new SmartX.SmartLabel(); diff --git a/INT69DB_2A/Forms/FormFactoryReset.cs b/INT69DB_2A/Forms/FormInitialization.cs similarity index 99% rename from INT69DB_2A/Forms/FormFactoryReset.cs rename to INT69DB_2A/Forms/FormInitialization.cs index 499cb9f..887f72c 100644 --- a/INT69DB_2A/Forms/FormFactoryReset.cs +++ b/INT69DB_2A/Forms/FormInitialization.cs @@ -12,7 +12,7 @@ using INT69DB_2A_ImageDll; namespace INT69DB_2A.Forms { - public partial class FormFactoryReset : Form + public partial class FormInitialization : Form { #region Field private FormMain m_ParentForm; @@ -21,7 +21,7 @@ namespace INT69DB_2A.Forms #endregion #region Constructor - public FormFactoryReset(FormMain parent) + public FormInitialization(FormMain parent) { InitializeComponent(); @@ -133,7 +133,7 @@ namespace INT69DB_2A.Forms structItem.EquipmentID = this.ParentForm.SystemConfig.EquipmentID; structItem.EquipmentMode = this.ParentForm.SystemConfig.EquipmentMode; structItem.ProductNumber = this.ParentForm.SystemConfig.ProductNumber; - structItem.AutomaticLogout = 1; + structItem.DummyInt1 = 1; structItem.DischargeConveyorDirectionCW = (int)this.ParentForm.SystemConfig.DischargeConveyorDirectionCW; structItem.UsbID = this.ParentForm.SystemConfig.UsbID; structItem.DummyString6 = ""; diff --git a/INT69DB_2A/Forms/FormFactoryReset.resx b/INT69DB_2A/Forms/FormInitialization.resx similarity index 100% rename from INT69DB_2A/Forms/FormFactoryReset.resx rename to INT69DB_2A/Forms/FormInitialization.resx diff --git a/INT69DB_2A/Forms/FormMain.cs b/INT69DB_2A/Forms/FormMain.cs index bef8dc8..b0b2f3f 100644 --- a/INT69DB_2A/Forms/FormMain.cs +++ b/INT69DB_2A/Forms/FormMain.cs @@ -59,6 +59,8 @@ namespace INT69DB_2A.Forms private string m_PathDataFolder; private string m_PathDataHistoryFolder; private string m_PathDataInspectionFolder; + private string m_PathDataInspectionStick1Folder; + private string m_PathDataInspectionStick2Folder; private string m_PathDataOthersFolder; private string m_PathEncryptionFolder; private string m_PathHeaderFolder; @@ -81,7 +83,7 @@ namespace INT69DB_2A.Forms public FormMotorSetting ChildFormMotorSetting; public FormTimeSetting ChildFormTimeSetting; public FormInformation ChildFormInformation; - public FormFactoryReset ChildFormFactoryInitialize; + public FormInitialization ChildFormFactoryInitialize; public FormProgramUpdate ChildFormProgramUpdate; public FormEquipmentTest ChildFormEquipmentTest; public FormUserEditor ChildFormUserEditor; @@ -89,6 +91,7 @@ namespace INT69DB_2A.Forms public FormDataBackup_Part11 ChildFormDataBackup_Part11; public FormDataStatistics ChildFormDataStatistics; public FormDataViewer ChildFormDataViewer; + public FormOption ChildFormOption; // 장비 구동 상태 private DataStore.EquipmentStatus m_EquipmentStatus; @@ -222,6 +225,16 @@ namespace INT69DB_2A.Forms get { return this.m_PathDataInspectionFolder; } private set { this.m_PathDataInspectionFolder = value; } } + public string PathDataInspectionStick1Folder + { + get { return this.m_PathDataInspectionStick1Folder; } + private set { this.m_PathDataInspectionStick1Folder = value; } + } + public string PathDataInspectionStick2Folder + { + get { return this.m_PathDataInspectionStick2Folder; } + private set { this.m_PathDataInspectionStick2Folder = value; } + } public string PathDataOthersFolder { get { return this.m_PathDataOthersFolder; } @@ -251,6 +264,32 @@ namespace INT69DB_2A.Forms #endregion #region Method + public static void Exception(Exception ex) + { + try + { + string fileName = "SD Card\\Data\\Others\\" + string.Format("{0:yyyyMMdd_HHmmss}_Exception.txt", DateTime.Now); + FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate); + StreamWriter sw = new StreamWriter(fs); + + sw.Write(ex.ToString()); + + sw.Close(); + fs.Close(); + } + catch + { + string fileName = "Flash Disk\\" + string.Format("{0:yyyyMMdd_HHmmss}_Exception.txt", DateTime.Now); + FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate); + StreamWriter sw = new StreamWriter(fs); + + sw.Write(ex.ToString()); + + sw.Close(); + fs.Close(); + } + } + private void CreateForm() { this.ChildFormMainDisplay = new FormMainDisplay(this); @@ -261,7 +300,7 @@ namespace INT69DB_2A.Forms this.ChildFormConfiguration = new FormConfiguration(this); this.ChildFormInformation = new FormInformation(this); this.ChildFormEquipmentSetting = new FormEquipmentSetting(this); - this.ChildFormFactoryInitialize = new FormFactoryReset(this); + this.ChildFormFactoryInitialize = new FormInitialization(this); this.ChildFormCalibration = new FormCalibration(this); this.ChildFormSystemSetting = new FormSystemSetting(this); this.ChildFormIOTest = new FormIOTest(this); @@ -269,6 +308,7 @@ namespace INT69DB_2A.Forms this.ChildFormEquipmentTest = new FormEquipmentTest(this); this.ChildFormUserEditor = new FormUserEditor(this); this.ChildFormUserGroupEditor = new FormUserGroupEditor(this); + this.ChildFormOption = new FormOption(this); // Part11 if (this.SystemConfig.IsPart11 == false) this.ChildFormDataBackup = new FormDataBackup(this); @@ -297,6 +337,7 @@ namespace INT69DB_2A.Forms this.smartForm.AddChildForm(this.ChildFormEquipmentTest); this.smartForm.AddChildForm(this.ChildFormUserEditor); this.smartForm.AddChildForm(this.ChildFormUserGroupEditor); + this.smartForm.AddChildForm(this.ChildFormOption); // Part11 if (this.SystemConfig.IsPart11 == false) this.smartForm.AddChildForm(this.ChildFormDataBackup); @@ -405,6 +446,8 @@ namespace INT69DB_2A.Forms this.PathDataFolder = this.PathLaunchFolder + "Data\\"; this.PathDataHistoryFolder = this.PathDataFolder + "History\\"; this.PathDataInspectionFolder = this.PathDataFolder + "Inspection\\"; + this.PathDataInspectionStick1Folder = this.PathDataInspectionFolder + "Stick1\\"; + this.PathDataInspectionStick2Folder = this.PathDataInspectionFolder + "Stick2\\"; this.PathDataOthersFolder = this.PathDataFolder + "Others\\"; this.PathEncryptionFolder = this.PathLaunchFolder + "Encryption\\"; this.PathHeaderFolder = this.PathLaunchFolder + "Header\\"; @@ -458,6 +501,14 @@ namespace INT69DB_2A.Forms if (Directory.Exists(this.PathDataInspectionFolder) == false) Directory.CreateDirectory(this.PathDataInspectionFolder); + // Inspection\\Stick1 폴더 생성 + if (Directory.Exists(this.PathDataInspectionStick1Folder) == false) + Directory.CreateDirectory(this.PathDataInspectionStick1Folder); + + // Inspection\\Stick2 폴더 생성 + if (Directory.Exists(this.PathDataInspectionStick2Folder) == false) + Directory.CreateDirectory(this.PathDataInspectionStick2Folder); + // Encryption 폴더 생성 if (Directory.Exists(this.PathEncryptionFolder) == false) Directory.CreateDirectory(this.PathEncryptionFolder); @@ -509,12 +560,12 @@ namespace INT69DB_2A.Forms UserManager.IntializeUserManager(this.PathSystemFileFolder2); - if (this.SystemConfig.AutomaticLogout == 1) + if (this.SystemConfig.UserAutomaticLogout == 1) this.FlagAutomaticLogoutWarningTime = 30; else this.FlagAutomaticLogoutWarningTime = 60; - UserManager.UserManager_AutoLogoutSetTimeout(this.SystemConfig.AutomaticLogout, this.FlagAutomaticLogoutWarningTime); + UserManager.UserManager_AutoLogoutSetTimeout(this.SystemConfig.UserAutomaticLogout, this.FlagAutomaticLogoutWarningTime); } private void InitializeAES() { @@ -4997,7 +5048,7 @@ namespace INT69DB_2A.Forms structItem.EquipmentID = this.SystemConfig.EquipmentID; structItem.EquipmentMode = this.SystemConfig.EquipmentMode; structItem.ProductNumber = this.SystemConfig.ProductNumber; - structItem.AutomaticLogout = this.SystemConfig.AutomaticLogout; + structItem.DummyInt1 = 0; structItem.DischargeConveyorDirectionCW = (int)this.SystemConfig.DischargeConveyorDirectionCW; structItem.UsbID = this.SystemConfig.UsbID; structItem.DummyString6 = ""; @@ -5119,7 +5170,7 @@ namespace INT69DB_2A.Forms structItem1.EquipmentID = item.EquipmentID; structItem1.EquipmentMode = item.EquipmentMode; structItem1.ProductNumber = item.ProductNumber; - structItem1.AutomaticLogout = item.AutomaticLogout; + structItem1.DummyInt1 = 0; structItem1.DischargeConveyorDirectionCW = (int)item.DischargeConveyorDirectionCW; structItem1.UsbID = item.UsbID; structItem1.DummyString6 = ""; @@ -5262,8 +5313,6 @@ namespace INT69DB_2A.Forms this.SystemConfig.DischargeConveyorDirectionCW = (DataStore.DischargeConveyorDirection)structItem1.DischargeConveyorDirectionCW; // Part11 this.SystemConfig.IsPart11 = structItem1.IsPart11; - // AutomaticLogout - this.SystemConfig.AutomaticLogout = structItem1.AutomaticLogout; // User_Level1_Name if (structItem1.User_Level1_Name == "") { @@ -7287,7 +7336,10 @@ namespace INT69DB_2A.Forms { UserManager.UserMgr_user_info_t user = (UserManager.UserMgr_user_info_t)data; - this.ChildFormUserEditor.CallBackUserListModifyInfoDataEvent(user); + if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormUserEditor) + this.ChildFormUserEditor.CallBackUserListModifyInfoDataEvent(user); + else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormMainDisplay) + this.ChildFormMainDisplay.CallBackUserListModifyInfoDataEvent(user); } catch { diff --git a/INT69DB_2A/Forms/FormMainDisplay.cs b/INT69DB_2A/Forms/FormMainDisplay.cs index 2744063..7d8d45d 100644 --- a/INT69DB_2A/Forms/FormMainDisplay.cs +++ b/INT69DB_2A/Forms/FormMainDisplay.cs @@ -14,18 +14,21 @@ using INT69DB_2A_ImageDll; using INT69DB_2A.Controls; using INT69DB_2A.DialogForms; using INT69DB_2A.Part11_UserManager; +using System.Text.RegularExpressions; namespace INT69DB_2A.Forms { public partial class FormMainDisplay : Form { #region Field + UserManager.UserMgr_user_info_t UserInfo = new UserManager.UserMgr_user_info_t(); + private FormMain m_ParentForm; private Color ColorButtonAccessTrue; private Color ColorButtonAccessFalse; - private DataStore.FormMainDisplayStore MainDisplay; + private DataStore.MainDisplayStore MainDisplay; private ControlMainDisplayDotGraph2 MainDisplayDotGraph2; private ControlMainDisplayDotGraph3 MainDisplayDotGraph3; @@ -249,7 +252,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph2); this.MainDisplayEachBarGraph2.BringToFront(); this.MainDisplayEachBarGraph2.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph2 = new ControlMainDisplayDotGraph2(this); this.Controls.Add(this.MainDisplayDotGraph2); @@ -266,7 +269,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph3); this.MainDisplayEachBarGraph3.BringToFront(); this.MainDisplayEachBarGraph3.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph3 = new ControlMainDisplayDotGraph3(this); this.Controls.Add(this.MainDisplayDotGraph3); @@ -283,7 +286,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph4); this.MainDisplayEachBarGraph4.BringToFront(); this.MainDisplayEachBarGraph4.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph4 = new ControlMainDisplayDotGraph4(this); this.Controls.Add(this.MainDisplayDotGraph4); @@ -300,7 +303,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph5); this.MainDisplayEachBarGraph5.BringToFront(); this.MainDisplayEachBarGraph5.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph5 = new ControlMainDisplayDotGraph5(this); this.Controls.Add(this.MainDisplayDotGraph5); @@ -317,7 +320,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph6); this.MainDisplayEachBarGraph6.BringToFront(); this.MainDisplayEachBarGraph6.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph6 = new ControlMainDisplayDotGraph6(this); this.Controls.Add(this.MainDisplayDotGraph6); @@ -334,7 +337,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph7); this.MainDisplayEachBarGraph7.BringToFront(); this.MainDisplayEachBarGraph7.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph7 = new ControlMainDisplayDotGraph7(this); this.Controls.Add(this.MainDisplayDotGraph7); @@ -351,7 +354,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph8); this.MainDisplayEachBarGraph8.BringToFront(); this.MainDisplayEachBarGraph8.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph8 = new ControlMainDisplayDotGraph8(this); this.Controls.Add(this.MainDisplayDotGraph8); @@ -368,7 +371,7 @@ namespace INT69DB_2A.Forms this.Controls.Add(this.MainDisplayEachBarGraph10); this.MainDisplayEachBarGraph10.BringToFront(); this.MainDisplayEachBarGraph10.Location = new Point(0, 63); - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.MainDisplayDotGraph10 = new ControlMainDisplayDotGraph10(this); this.Controls.Add(this.MainDisplayDotGraph10); @@ -448,18 +451,112 @@ namespace INT69DB_2A.Forms } } + private void SuccessLogin(UserManager.UserMgr_user_info_t user) + { + if (user.active_level == 1) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level1; + else if (user.active_level == 2) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level2; + else if (user.active_level == 3) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Level3; + else if (user.active_level == 9) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Admin; + else if (user.active_level == 10) + this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Developer; + this.ParentForm.SystemConfig.CurrentUser.ActiveLevel = user.active_level; + + this.ParentForm.SystemConfig.CurrentUser.ID = user.user_id; + this.ParentForm.SystemConfig.CurrentUser.Password = user.user_pw; + + this.ParentForm.SystemConfig.CurrentUser.ExpireAccount = user.expire_period_account; + this.ParentForm.SystemConfig.CurrentUser.ExpirePassword = user.expire_period_password; + + DateTime time = DateTime.ParseExact(user.password_register_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateRegister = time; + time = DateTime.ParseExact(user.id_login_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateLogin = time; + + if (this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.Admin + || this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.Developer) + { + this.ParentForm.SystemConfig.CurrentUser.DateExpireRegister = DateTime.Now; + this.ParentForm.SystemConfig.CurrentUser.DateExpireLogin = DateTime.Now; + } + else + { + time = DateTime.ParseExact(user.expire_id_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateExpireLogin = time; + time = DateTime.ParseExact(user.expire_password_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.ParentForm.SystemConfig.CurrentUser.DateExpireRegister = time; + } + + this.ParentForm.SystemConfig.CurrentUser.IsLockAccount = user.flock_status_account == 0 ? false : true; + this.ParentForm.SystemConfig.CurrentUser.IsLockPassword = user.flock_status_password == 0 ? false : true; + + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SystemConfig.CurrentUser.IsAdmin = user.fadmin == 0 ? false : true; + else + this.ParentForm.SystemConfig.CurrentUser.IsAdmin = true; + } private void Login() { + // Part 11 + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Login, ""); + + UserManager.UserMgr_user_info_t userInfo = new UserManager.UserMgr_user_info_t(); DialogFormLogOn logOn = new DialogFormLogOn(this.ParentForm); if (logOn.ShowDialog() == DialogResult.OK) { - this.DisplayRefresh(); + this.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + //this.DisplayRefresh(); this.buttonUser.ButtonDown(); //this.ParentForm.TimerAutomaticLogout(true, this.ParentForm.SystemConfig.AutomaticLogout); // Part 11 if (this.ParentForm.SystemConfig.IsPart11 == true) this.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Login, ""); + + //try + //{ + // //userInfo = logOn.UserInfo; + // if (userInfo.status == 0) + // { + // this.SuccessLogin(userInfo); + // this.DisplayRefresh(); + // this.buttonUser.ButtonDown(); + // } + // else if (userInfo.status == 15) + // { + // DialogFormLogOn changePW = new DialogFormLogOn(this.ParentForm, userInfo.user_id); + // if (changePW.ShowDialog() == DialogResult.OK) + // { + // if (this.UserInfo.status == 0) + // { + // UserManager.UserManager_UserLoginDirect(this.ParentForm.SystemConfig.CurrentUser.ID, this.ParentForm.SystemConfig.CurrentUser.Password, ref this.UserInfo); + + // this.SuccessLogin(this.UserInfo); + // } + // else + // { + // DialogFormMessage myMsg = new DialogFormMessage(null, this.UserInfo.status, this.ParentForm.SystemConfig.Language); + // myMsg.ShowDialog(); + // } + // } + // } + // else + // { + // this.buttonUser.ButtonUp(); + + // DialogFormMessage myMsg = new DialogFormMessage(null, userInfo.status, this.ParentForm.SystemConfig.Language); + // myMsg.ShowDialog(); + // } + //} + //catch + //{ + // DialogFormMessage myMsg = new DialogFormMessage(null, 99, this.ParentForm.SystemConfig.Language); + // myMsg.ShowDialog(); + //} } else { @@ -522,9 +619,9 @@ namespace INT69DB_2A.Forms } - private void UpdateDisplay(DataStore.FormMainDisplayStore displayForm) + private void UpdateDisplay(DataStore.MainDisplayStore displayForm) { - if (displayForm == DataStore.FormMainDisplayStore.FormMainDisplayBarGraph) + if (displayForm == DataStore.MainDisplayStore.BarGraph) { #region BarGraph switch (this.ParentForm.SystemConfig.EquipmentColumns) @@ -599,7 +696,7 @@ namespace INT69DB_2A.Forms this.UpdateDisplayButton(SmartButton.BUTSTATUS.DOWN, SmartButton.BUTSTATUS.UP, SmartButton.BUTSTATUS.UP); #endregion } - else if (displayForm == DataStore.FormMainDisplayStore.FormMainDisplayDotGraph) + else if (displayForm == DataStore.MainDisplayStore.LineGraph) { #region DotGraph switch (this.ParentForm.SystemConfig.EquipmentColumns) @@ -674,7 +771,7 @@ namespace INT69DB_2A.Forms this.UpdateDisplayButton(SmartButton.BUTSTATUS.UP, SmartButton.BUTSTATUS.DOWN, SmartButton.BUTSTATUS.UP); #endregion } - else if (displayForm == DataStore.FormMainDisplayStore.FormMainDisplayTable) + else if (displayForm == DataStore.MainDisplayStore.Table) { #region Table switch (this.ParentForm.SystemConfig.EquipmentColumns) @@ -924,7 +1021,7 @@ namespace INT69DB_2A.Forms this.labelExpireOfPassword.Visible = false; - if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn) + if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOff) this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOff; this.buttonUser.ButtonUp(); @@ -2299,7 +2396,7 @@ namespace INT69DB_2A.Forms private void buttonProductNo_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.buttonProductNo.Text, 4, 0, false, this.ParentForm.SystemConfig.Language); @@ -2325,7 +2422,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.buttonUnder.Text; @@ -2370,7 +2467,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.buttonPass.Text; @@ -2412,7 +2509,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.buttonOver.Text; @@ -2457,7 +2554,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.buttonTare.Text; @@ -2493,7 +2590,7 @@ namespace INT69DB_2A.Forms private void buttonScaleZero_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); this.ParentForm.TransferData(CommunicationCommand.Zero, CommunicationID.SubBoardAll); @@ -2502,7 +2599,7 @@ namespace INT69DB_2A.Forms private void buttonClear_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.SystemConfig.Language, 8); @@ -2517,7 +2614,7 @@ namespace INT69DB_2A.Forms if (this.ParentForm.EquipmentStatus == DataStore.EquipmentStatus.Stop) { // Automatic Logout Pause - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) UserManager.UserManager_AutoLogoutTimeoutPause(); this.ParentForm.ChildFormMenu.DisplayRefresh(); @@ -2526,7 +2623,7 @@ namespace INT69DB_2A.Forms else { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); this.panelSetting.BringToFront(); @@ -2536,7 +2633,7 @@ namespace INT69DB_2A.Forms private void buttonDisplay_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); SmartButton button = sender as SmartButton; @@ -2545,13 +2642,13 @@ namespace INT69DB_2A.Forms return; if (button == this.buttonBarGraphForm) - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; else if (button == this.buttonDotGraphForm) - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayDotGraph; + this.MainDisplay = DataStore.MainDisplayStore.LineGraph; else if (button == this.buttonTableForm) - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayTable; + this.MainDisplay = DataStore.MainDisplayStore.Table; else - this.MainDisplay = DataStore.FormMainDisplayStore.FormMainDisplayBarGraph; + this.MainDisplay = DataStore.MainDisplayStore.BarGraph; this.UpdateDisplay(this.MainDisplay); } @@ -2561,12 +2658,38 @@ namespace INT69DB_2A.Forms // 관리자 : admin00 / admin12! // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.LogOut) { + //string[] sValue; + //int day; + this.Login(); + + // 만료 10일 이내면 패스워드 변경 권유창 생성 + //sValue = this.labelExpireOfPassword.Text.Split('-'); + //day = int.Parse(sValue[sValue.Count() - 1]); + //if (day <= 10) + //{ + // DialogFormYesNo df = new DialogFormYesNo(this.ParentForm.SystemConfig.Language, 2, day.ToString()); + // df.BringToFront(); + // if (df.ShowDialog() == DialogResult.Yes) + // { + //DialogFormLogOn changePW = new DialogFormLogOn(this.ParentForm, this.ParentForm.SystemConfig.Language, this.textBoxID.Text); + //if (changePW.ShowDialog() == DialogResult.OK) + //{ + // UserManager.UserManager_UserLockRelease(this.textBoxID.Text, false, true); + // UserManager.UserManager_UserLoginDirect(this.textBoxID.Text, this.ParentForm.SystemConfig.CurrentUser.Password, ref this.UserInfo); + + // this.SuccessLogin(this.UserInfo); + //} + // } + //} + + + // 만료 시 패스워드 변경 } else { @@ -2584,7 +2707,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelSorterDelayTime.Text; @@ -2620,7 +2743,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelSorterRunTime.Text; @@ -2657,7 +2780,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelDischargeConveyorDelayTime.Text; @@ -2693,7 +2816,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelDischargeConveyorOperatingTime.Text; @@ -2729,7 +2852,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelFeedingConveyorDelayTime.Text; @@ -2765,7 +2888,7 @@ namespace INT69DB_2A.Forms string value = ""; // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); before = this.labelFeedingConveyorOperatingTime.Text; @@ -2798,7 +2921,7 @@ namespace INT69DB_2A.Forms private void labelTotalCount_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); lock (this) @@ -2815,7 +2938,7 @@ namespace INT69DB_2A.Forms private void buttonSubMenu_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.buttonSubMenu.ButtonStatus == SmartButton.BUTSTATUS.DOWN) @@ -2829,7 +2952,7 @@ namespace INT69DB_2A.Forms private void buttonBypassDirection_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.buttonBypassDirection.ButtonStatus == SmartButton.BUTSTATUS.DOWN) @@ -2840,7 +2963,7 @@ namespace INT69DB_2A.Forms private void buttonBypassOnce_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.buttonBypassOnce.ButtonStatus == SmartButton.BUTSTATUS.DOWN) @@ -2857,7 +2980,7 @@ namespace INT69DB_2A.Forms private void buttonBypassRun_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.ParentForm.SystemConfig.IsBypassOnce == true) @@ -2913,7 +3036,7 @@ namespace INT69DB_2A.Forms private void buttonPrint_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); if (this.buttonPrint.ButtonStatus == SmartButton.BUTSTATUS.DOWN) @@ -2935,7 +3058,7 @@ namespace INT69DB_2A.Forms private void buttonClose_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); this.panelSetting.Visible = false; @@ -2943,7 +3066,7 @@ namespace INT69DB_2A.Forms private void buttonCut_Click(object sender, EventArgs e) { // Automatic Logout Reset - if (this.ParentForm.SystemConfig.IsLogin == true) + if (this.ParentForm.SystemConfig.IsPart11 == true) this.Part11AutomaticLogoutReset(); this.ParentForm.TransferData(CommunicationCommand.CutInpupt, CommunicationID.MainBoard); @@ -2964,6 +3087,11 @@ namespace INT69DB_2A.Forms } } } + + public void CallBackUserListModifyInfoDataEvent(UserManager.UserMgr_user_info_t user) + { + this.UserInfo = user; + } #endregion } } \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormMenu.Designer.cs b/INT69DB_2A/Forms/FormMenu.Designer.cs index 7930286..772d060 100644 --- a/INT69DB_2A/Forms/FormMenu.Designer.cs +++ b/INT69DB_2A/Forms/FormMenu.Designer.cs @@ -48,11 +48,12 @@ this.labelUserLevel = new SmartX.SmartLabel(); this.labelUserID = new SmartX.SmartLabel(); this.buttonUser = new SmartX.SmartButton(); - this.buttonFunction = new SmartX.SmartButton(); + this.buttonHidden = new SmartX.SmartButton(); this.buttonCommunication = new SmartX.SmartButton(); this.buttonDataStatistics = new SmartX.SmartButton(); this.buttonDataViewer = new SmartX.SmartButton(); this.labelExpireOfPassword = new SmartX.SmartLabel(); + this.buttonOption = new SmartX.SmartButton(); ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // @@ -484,7 +485,7 @@ this.buttonTest.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonTest.DownImage"))); this.buttonTest.GroupID = 0; this.buttonTest.InitVisible = true; - this.buttonTest.Location = new System.Drawing.Point(591, 349); + this.buttonTest.Location = new System.Drawing.Point(213, 475); this.buttonTest.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; this.buttonTest.Name = "buttonTest"; this.buttonTest.NestedClickEventPrevent = false; @@ -501,6 +502,7 @@ this.buttonTest.TextLocation = new System.Drawing.Point(0, 0); this.buttonTest.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; this.buttonTest.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonTest.UpImage"))); + this.buttonTest.Visible = false; this.buttonTest.Click += new System.EventHandler(this.buttonMenu_Click); // // labelUserLevel @@ -576,37 +578,37 @@ this.buttonUser.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonUser.UpImage"))); this.buttonUser.Click += new System.EventHandler(this.buttonMenu_Click); // - // buttonFunction + // buttonHidden // - this.buttonFunction.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); - this.buttonFunction.BackPictureBox = null; - this.buttonFunction.BackPictureBox1 = null; - this.buttonFunction.BackPictureBox2 = null; - this.buttonFunction.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); - this.buttonFunction.ButtonImageAutoSize = true; - this.buttonFunction.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonFunction.DisableImage = null; - this.buttonFunction.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonFunction.DownImage"))); - this.buttonFunction.GroupID = 0; - this.buttonFunction.InitVisible = true; - this.buttonFunction.Location = new System.Drawing.Point(719, 449); - this.buttonFunction.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.buttonFunction.Name = "buttonFunction"; - this.buttonFunction.NestedClickEventPrevent = false; - this.buttonFunction.OutlinePixel = 1; - this.buttonFunction.RepeatInterval = 200; - this.buttonFunction.RepeatIntervalAccelerate = null; - this.buttonFunction.SafeInterval = 200; - this.buttonFunction.Size = new System.Drawing.Size(70, 70); - this.buttonFunction.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.SAFE; - this.buttonFunction.TabIndex = 162; - this.buttonFunction.TextColor = System.Drawing.Color.Black; - this.buttonFunction.TextDownColor = System.Drawing.Color.White; - this.buttonFunction.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonFunction.TextLocation = new System.Drawing.Point(0, 0); - this.buttonFunction.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonFunction.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonFunction.UpImage"))); - this.buttonFunction.Click += new System.EventHandler(this.buttonFunction_Click); + this.buttonHidden.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); + this.buttonHidden.BackPictureBox = null; + this.buttonHidden.BackPictureBox1 = null; + this.buttonHidden.BackPictureBox2 = null; + this.buttonHidden.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); + this.buttonHidden.ButtonImageAutoSize = true; + this.buttonHidden.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonHidden.DisableImage = null; + this.buttonHidden.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonHidden.DownImage"))); + this.buttonHidden.GroupID = 0; + this.buttonHidden.InitVisible = true; + this.buttonHidden.Location = new System.Drawing.Point(719, 449); + this.buttonHidden.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.buttonHidden.Name = "buttonHidden"; + this.buttonHidden.NestedClickEventPrevent = false; + this.buttonHidden.OutlinePixel = 1; + this.buttonHidden.RepeatInterval = 200; + this.buttonHidden.RepeatIntervalAccelerate = null; + this.buttonHidden.SafeInterval = 200; + this.buttonHidden.Size = new System.Drawing.Size(70, 70); + this.buttonHidden.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.SAFE; + this.buttonHidden.TabIndex = 162; + this.buttonHidden.TextColor = System.Drawing.Color.Black; + this.buttonHidden.TextDownColor = System.Drawing.Color.White; + this.buttonHidden.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonHidden.TextLocation = new System.Drawing.Point(0, 0); + this.buttonHidden.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonHidden.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonHidden.UpImage"))); + this.buttonHidden.Click += new System.EventHandler(this.buttonHidden_Click); // // buttonCommunication // @@ -668,6 +670,7 @@ this.buttonDataStatistics.TextLocation = new System.Drawing.Point(0, 0); this.buttonDataStatistics.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; this.buttonDataStatistics.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDataStatistics.UpImage"))); + this.buttonDataStatistics.Visible = false; this.buttonDataStatistics.Click += new System.EventHandler(this.buttonMenu_Click); // // buttonDataViewer @@ -699,6 +702,7 @@ this.buttonDataViewer.TextLocation = new System.Drawing.Point(0, 0); this.buttonDataViewer.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; this.buttonDataViewer.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDataViewer.UpImage"))); + this.buttonDataViewer.Visible = false; this.buttonDataViewer.Click += new System.EventHandler(this.buttonMenu_Click); // // labelExpireOfPassword @@ -722,17 +726,50 @@ this.labelExpireOfPassword.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelExpireOfPassword.Wordwrap = false; // + // buttonOption + // + this.buttonOption.BackPictureBox = null; + this.buttonOption.BackPictureBox1 = null; + this.buttonOption.BackPictureBox2 = null; + this.buttonOption.ButtonColor = System.Drawing.Color.Gray; + this.buttonOption.ButtonImageAutoSize = true; + this.buttonOption.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonOption.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonOption.DisableImage"))); + this.buttonOption.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonOption.DownImage"))); + this.buttonOption.GroupID = 0; + this.buttonOption.InitVisible = true; + this.buttonOption.Location = new System.Drawing.Point(339, 475); + this.buttonOption.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.buttonOption.Name = "buttonOption"; + this.buttonOption.NestedClickEventPrevent = false; + this.buttonOption.OutlinePixel = 1; + this.buttonOption.RepeatInterval = 200; + this.buttonOption.RepeatIntervalAccelerate = null; + this.buttonOption.SafeInterval = 200; + this.buttonOption.Size = new System.Drawing.Size(120, 120); + this.buttonOption.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonOption.TabIndex = 175; + this.buttonOption.TextColor = System.Drawing.Color.Black; + this.buttonOption.TextDownColor = System.Drawing.Color.White; + this.buttonOption.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonOption.TextLocation = new System.Drawing.Point(0, 0); + this.buttonOption.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonOption.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonOption.UpImage"))); + this.buttonOption.Visible = false; + this.buttonOption.Click += new System.EventHandler(this.buttonMenu_Click); + // // FormMenu // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScroll = true; this.ClientSize = new System.Drawing.Size(800, 600); + this.Controls.Add(this.buttonOption); this.Controls.Add(this.labelExpireOfPassword); this.Controls.Add(this.buttonDataViewer); this.Controls.Add(this.buttonDataStatistics); this.Controls.Add(this.buttonCommunication); - this.Controls.Add(this.buttonFunction); + this.Controls.Add(this.buttonHidden); this.Controls.Add(this.buttonUser); this.Controls.Add(this.labelUserID); this.Controls.Add(this.labelUserLevel); @@ -780,10 +817,11 @@ private SmartX.SmartLabel labelUserLevel; private SmartX.SmartLabel labelUserID; private SmartX.SmartButton buttonUser; - private SmartX.SmartButton buttonFunction; + private SmartX.SmartButton buttonHidden; private SmartX.SmartButton buttonCommunication; private SmartX.SmartButton buttonDataStatistics; private SmartX.SmartButton buttonDataViewer; private SmartX.SmartLabel labelExpireOfPassword; + private SmartX.SmartButton buttonOption; } } \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormMenu.cs b/INT69DB_2A/Forms/FormMenu.cs index 5520432..fb7a6ea 100644 --- a/INT69DB_2A/Forms/FormMenu.cs +++ b/INT69DB_2A/Forms/FormMenu.cs @@ -100,6 +100,9 @@ namespace INT69DB_2A.Forms this.buttonDataViewer.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuDataViewerDisable)); this.buttonDataViewer.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuDataViewerDown)); this.buttonDataViewer.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuDataViewerUp)); + this.buttonOption.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuOptionDisable)); + this.buttonOption.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuOptionDown)); + this.buttonOption.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engFormMenuOptionUp)); } else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { @@ -153,6 +156,9 @@ namespace INT69DB_2A.Forms this.buttonDataViewer.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuDataViewerDisable)); this.buttonDataViewer.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuDataViewerDown)); this.buttonDataViewer.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuDataViewerUp)); + this.buttonOption.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuOptionDisable)); + this.buttonOption.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuOptionDown)); + this.buttonOption.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnFormMenuOptionUp)); } else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { @@ -174,9 +180,7 @@ namespace INT69DB_2A.Forms this.buttonEquipment.Visible = false; this.buttonUser.Visible = false; this.buttonTest.Visible = false; - - this.buttonTest.Location = new Point(339, 349); - this.buttonTest.BringToFront(); + this.buttonOption.Visible = false; if (this.ParentForm.SystemConfig.IsPart11 == false) { @@ -202,7 +206,11 @@ namespace INT69DB_2A.Forms group = this.ParentForm.SystemConfig.User_Level1_Name; if (this.ParentForm.SystemConfig.IsPart11 == true) + { this.labelExpireOfPassword.Visible = true; + this.buttonDataStatistics.Visible = true; + this.buttonDataViewer.Visible = true; + } if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn) this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn; @@ -210,7 +218,7 @@ namespace INT69DB_2A.Forms this.buttonInformation.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuInformation; this.buttonDataBackup.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuDataBackup; this.buttonConfiguration.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuConfiguration; - this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuStatistics; + this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuCommunication; this.buttonCalibration.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuCalibration; this.buttonSystem.Enabled = this.ParentForm.CurrentUserGroup.Level1.IsMenuSystem; @@ -226,13 +234,18 @@ namespace INT69DB_2A.Forms this.buttonEquipment.Visible = false; this.buttonTest.Visible = false; + this.buttonOption.Visible = false; break; case DataStore.UserGroup.Level2: id = user.ID; group = this.ParentForm.SystemConfig.User_Level2_Name; if (this.ParentForm.SystemConfig.IsPart11 == true) + { this.labelExpireOfPassword.Visible = true; + this.buttonDataStatistics.Visible = true; + this.buttonDataViewer.Visible = true; + } if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn) this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn; @@ -240,7 +253,7 @@ namespace INT69DB_2A.Forms this.buttonInformation.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuInformation; this.buttonDataBackup.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuDataBackup; this.buttonConfiguration.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuConfiguration; - this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuStatistics; + this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuCommunication; this.buttonCalibration.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuCalibration; this.buttonSystem.Enabled = this.ParentForm.CurrentUserGroup.Level2.IsMenuSystem; @@ -256,13 +269,18 @@ namespace INT69DB_2A.Forms this.buttonEquipment.Visible = false; this.buttonTest.Visible = false; + this.buttonOption.Visible = false; break; case DataStore.UserGroup.Level3: id = user.ID; group = this.ParentForm.SystemConfig.User_Level3_Name; if (this.ParentForm.SystemConfig.IsPart11 == true) + { this.labelExpireOfPassword.Visible = true; + this.buttonDataStatistics.Visible = true; + this.buttonDataViewer.Visible = true; + } if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn) this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn; @@ -270,7 +288,7 @@ namespace INT69DB_2A.Forms this.buttonInformation.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuInformation; this.buttonDataBackup.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuDataBackup; this.buttonConfiguration.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuConfiguration; - this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuStatistics; + this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuCommunication; this.buttonCalibration.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuCalibration; this.buttonSystem.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuSystem; @@ -286,6 +304,7 @@ namespace INT69DB_2A.Forms this.buttonEquipment.Visible = false; this.buttonTest.Visible = false; + this.buttonOption.Visible = false; break; case DataStore.UserGroup.Admin: id = user.ID; @@ -299,30 +318,36 @@ namespace INT69DB_2A.Forms group = "Administrator"; if (this.ParentForm.SystemConfig.IsPart11 == true) + { this.labelExpireOfPassword.Visible = true; + this.buttonDataStatistics.Visible = true; + this.buttonDataViewer.Visible = true; + } if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn) this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn; - this.buttonInformation.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuInformation; - this.buttonDataBackup.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuDataBackup; - this.buttonConfiguration.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuConfiguration; - this.buttonCommunication.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuStatistics; - this.buttonCalibration.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuCalibration; + this.buttonInformation.Enabled = true; + this.buttonDataBackup.Enabled = true; + this.buttonConfiguration.Enabled = true; + this.buttonCommunication.Enabled = true; + this.buttonCalibration.Enabled = true; - this.buttonSystem.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuSystem; - this.buttonMotor.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuMotor; - this.buttonUpdate.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuUpdate; - this.buttonInitialization.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuInitialization; - this.buttonIOTest.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuIOTest; + this.buttonSystem.Enabled = true; + this.buttonMotor.Enabled = true; + this.buttonUpdate.Enabled = true; + this.buttonInitialization.Enabled = true; + this.buttonIOTest.Enabled = true; - this.buttonTime.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuTime; + this.buttonEquipment.Enabled = true; + this.buttonTime.Enabled = true; this.buttonUser.Enabled = true; - this.buttonDataStatistics.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuStatistics; - this.buttonDataViewer.Enabled = this.ParentForm.CurrentUserGroup.Level3.IsMenuViewer; + this.buttonDataStatistics.Enabled = true; + this.buttonDataViewer.Enabled = true; this.buttonEquipment.Visible = false; this.buttonTest.Visible = false; + this.buttonOption.Visible = false; break; case DataStore.UserGroup.Developer: id = user.ID; @@ -356,11 +381,18 @@ namespace INT69DB_2A.Forms this.buttonEquipment.Enabled = true; this.buttonTime.Enabled = true; this.buttonUser.Enabled = true; - this.buttonDataStatistics.Enabled = true; - this.buttonDataViewer.Enabled = true; + + if (this.ParentForm.SystemConfig.IsLogin == true) + { + this.buttonDataStatistics.Visible = true; + this.buttonDataViewer.Visible = true; + this.buttonDataStatistics.Enabled = true; + this.buttonDataViewer.Enabled = true; + } this.buttonEquipment.Visible = true; this.buttonTest.Visible = true; + this.buttonOption.Visible = true; break; case DataStore.UserGroup.NotLogin: this.buttonInformation.Enabled = this.ParentForm.CurrentUserGroup.NotLogin.IsMenuInformation; @@ -376,12 +408,14 @@ namespace INT69DB_2A.Forms this.buttonIOTest.Enabled = this.ParentForm.CurrentUserGroup.NotLogin.IsMenuIOTest; this.buttonTime.Enabled = this.ParentForm.CurrentUserGroup.NotLogin.IsMenuTime; - this.buttonDataViewer.Enabled = this.ParentForm.CurrentUserGroup.NotLogin.IsMenuViewer; - this.buttonDataStatistics.Enabled = this.ParentForm.CurrentUserGroup.NotLogin.IsMenuStatistics; + + this.buttonDataViewer.Visible = false; + this.buttonDataStatistics.Visible = false; this.buttonEquipment.Visible = false; this.buttonTest.Visible = false; this.buttonUser.Visible = false; + this.buttonOption.Visible = false; break; case DataStore.UserGroup.LogOut: if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.German) @@ -617,20 +651,43 @@ namespace INT69DB_2A.Forms } #endregion } + else if (button == this.buttonOption) + { + #region 옵션설정 + DialogFormPasswordKeyPad password = new DialogFormPasswordKeyPad(8, this.ParentForm.SystemConfig.Language); + DialogResult dialogResult = password.ShowDialog(); + if (dialogResult == DialogResult.OK) + { + if (this.ParentForm.ChildFormOption != null) + { + ((FormMain)(Owner)).smartForm.Show((int)DataStore.FormStore.FormOption); + this.ParentForm.ChildFormOption.DisplayRefresh(); + } + } + #endregion + } } private void buttonBack_Click(object sender, EventArgs e) { this.ParentForm.ChildFormMainDisplay.DisplayRefresh(); ((FormMain)(Owner)).smartForm.Show((int)DataStore.FormStore.FormMainDisplay); } - private void buttonFunction_Click(object sender, EventArgs e) + private void buttonHidden_Click(object sender, EventArgs e) { if (this.ParentForm.SystemConfig.IsLogin == false) { this.ParentForm.SystemConfig.CurrentUser.Group = DataStore.UserGroup.Developer; - this.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); } + else + { + if (this.ParentForm.SystemConfig.CurrentUser.Group == DataStore.UserGroup.Admin) + { + this.buttonEquipment.Visible = true; + this.buttonTest.Visible = true; + this.buttonOption.Visible = true; + } + } } #endregion } diff --git a/INT69DB_2A/Forms/FormMenu.resx b/INT69DB_2A/Forms/FormMenu.resx index 2aa36d4..d87de4c 100644 --- a/INT69DB_2A/Forms/FormMenu.resx +++ b/INT69DB_2A/Forms/FormMenu.resx @@ -7163,7 +7163,7 @@ AElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAIAAAD+THXTAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp @@ -7215,7 +7215,7 @@ kqCSoJKgkqCSoJKgkqCSoJKgkqCSoJKgkuC70s4DjamXckBbwmcAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAIAAAD+THXTAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp @@ -8851,6 +8851,515 @@ xVSUNmbjx4ICx6Ggtwqg0CvQlIEY3O/cubP34M7Pf/gvBu8yaOIfXbfg2QjcqG7UNYhjJb4KsiEgwjYO HSM1NdXf3x8v21v3bLQAawkaxj4Eez7sr096nPDy8sIyQW+Vp5fnCQ9318N7Nu5cb8HT5E2f/B8vsfiO CBSRowAAAABJRU5ErkJggg== + + + + + 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 + YII= + + + + + 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 + EAAAAABJRU5ErkJggg== diff --git a/INT69DB_2A/Forms/FormOption.Designer.cs b/INT69DB_2A/Forms/FormOption.Designer.cs new file mode 100644 index 0000000..02b7141 --- /dev/null +++ b/INT69DB_2A/Forms/FormOption.Designer.cs @@ -0,0 +1,309 @@ +namespace INT69DB_2A.Forms +{ + partial class FormOption + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormOption)); + this.smartForm1 = new SmartX.SmartForm(); + this.labelTitle = new SmartX.SmartLabel(); + this.pictureBoxFormIcon = new System.Windows.Forms.PictureBox(); + this.buttonSave = new SmartX.SmartButton(); + this.buttonBack = new SmartX.SmartButton(); + this.buttonStatistics = new SmartX.SmartButton(); + this.labelTitleStatistics = new SmartX.SmartLabel(); + this.buttonPart11 = new SmartX.SmartButton(); + this.labelTitlePart11 = new SmartX.SmartLabel(); + this.smartGroupBox1 = new SmartX.SmartGroupBox(); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); + this.smartGroupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // smartForm1 + // + this.smartForm1.CenterLocation = false; + this.smartForm1.Image = ((System.Drawing.Image)(resources.GetObject("smartForm1.Image"))); + this.smartForm1.LCDDirection = SmartX.SmartForm.LCDDIRECTIONS.HORIZONTAL; + this.smartForm1.LCDSize = SmartX.SmartForm.LCDRESOLUTION.LCD800X600; + this.smartForm1.Location = new System.Drawing.Point(0, 0); + this.smartForm1.MainForm = null; + this.smartForm1.Mode = SmartX.SmartForm.RUNMODE.RUNTIME; + this.smartForm1.MouseCursor = SmartX.SmartForm.OnOff.OFF; + this.smartForm1.Name = "smartForm1"; + this.smartForm1.Size = new System.Drawing.Size(800, 600); + this.smartForm1.SpecialFunctionClickPointSize = 100; + this.smartForm1.SuspendLayoutInterval = 0; + // + // labelTitle + // + this.labelTitle.BackPictureBox = this.smartForm1; + this.labelTitle.BackPictureBox1 = null; + this.labelTitle.BackPictureBox2 = null; + this.labelTitle.BorderColor = System.Drawing.Color.Black; + this.labelTitle.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitle.Font = new System.Drawing.Font("새굴림", 23F, System.Drawing.FontStyle.Bold); + this.labelTitle.ForeColor = System.Drawing.Color.White; + this.labelTitle.InitVisible = true; + this.labelTitle.LineSpacing = 0F; + this.labelTitle.Location = new System.Drawing.Point(69, 11); + this.labelTitle.Name = "labelTitle"; + this.labelTitle.Size = new System.Drawing.Size(382, 45); + this.labelTitle.TabIndex = 162; + this.labelTitle.Text = "옵션설정"; + this.labelTitle.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelTitle.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitle.Wordwrap = false; + // + // pictureBoxFormIcon + // + this.pictureBoxFormIcon.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxFormIcon.Image"))); + this.pictureBoxFormIcon.Location = new System.Drawing.Point(16, 11); + this.pictureBoxFormIcon.Name = "pictureBoxFormIcon"; + this.pictureBoxFormIcon.Size = new System.Drawing.Size(47, 45); + // + // buttonSave + // + this.buttonSave.BackPictureBox = null; + this.buttonSave.BackPictureBox1 = null; + this.buttonSave.BackPictureBox2 = null; + this.buttonSave.ButtonColor = System.Drawing.Color.Gray; + this.buttonSave.ButtonImageAutoSize = true; + this.buttonSave.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonSave.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonSave.DisableImage"))); + this.buttonSave.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonSave.DownImage"))); + this.buttonSave.GroupID = 0; + this.buttonSave.InitVisible = true; + this.buttonSave.Location = new System.Drawing.Point(644, 525); + this.buttonSave.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.buttonSave.Name = "buttonSave"; + this.buttonSave.NestedClickEventPrevent = false; + this.buttonSave.OutlinePixel = 1; + this.buttonSave.RepeatInterval = 200; + this.buttonSave.RepeatIntervalAccelerate = null; + this.buttonSave.SafeInterval = 200; + this.buttonSave.Size = new System.Drawing.Size(70, 70); + this.buttonSave.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonSave.TabIndex = 220; + this.buttonSave.TextColor = System.Drawing.Color.Black; + this.buttonSave.TextDownColor = System.Drawing.Color.White; + this.buttonSave.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonSave.TextLocation = new System.Drawing.Point(0, 0); + this.buttonSave.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonSave.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonSave.UpImage"))); + this.buttonSave.Visible = false; + this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); + // + // buttonBack + // + this.buttonBack.BackPictureBox = null; + this.buttonBack.BackPictureBox1 = null; + this.buttonBack.BackPictureBox2 = null; + this.buttonBack.ButtonColor = System.Drawing.Color.Gray; + this.buttonBack.ButtonImageAutoSize = true; + this.buttonBack.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonBack.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonBack.DisableImage"))); + this.buttonBack.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonBack.DownImage"))); + this.buttonBack.GroupID = 0; + this.buttonBack.InitVisible = true; + this.buttonBack.Location = new System.Drawing.Point(720, 525); + this.buttonBack.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; + this.buttonBack.Name = "buttonBack"; + this.buttonBack.NestedClickEventPrevent = false; + this.buttonBack.OutlinePixel = 1; + this.buttonBack.RepeatInterval = 200; + this.buttonBack.RepeatIntervalAccelerate = null; + this.buttonBack.SafeInterval = 200; + this.buttonBack.Size = new System.Drawing.Size(70, 70); + this.buttonBack.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonBack.TabIndex = 219; + this.buttonBack.TextColor = System.Drawing.Color.Black; + this.buttonBack.TextDownColor = System.Drawing.Color.White; + this.buttonBack.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonBack.TextLocation = new System.Drawing.Point(0, 0); + this.buttonBack.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonBack.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonBack.UpImage"))); + this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click); + // + // buttonStatistics + // + this.buttonStatistics.BackPictureBox = null; + this.buttonStatistics.BackPictureBox1 = null; + this.buttonStatistics.BackPictureBox2 = null; + this.buttonStatistics.ButtonColor = System.Drawing.Color.Gray; + this.buttonStatistics.ButtonImageAutoSize = true; + this.buttonStatistics.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonStatistics.DisableImage = null; + this.buttonStatistics.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonStatistics.DownImage"))); + this.buttonStatistics.GroupID = 0; + this.buttonStatistics.InitVisible = true; + this.buttonStatistics.Location = new System.Drawing.Point(408, 214); + this.buttonStatistics.Mode = SmartX.SmartButton.BUTTONMODE.PUSH; + this.buttonStatistics.Name = "buttonStatistics"; + this.buttonStatistics.NestedClickEventPrevent = false; + this.buttonStatistics.OutlinePixel = 1; + this.buttonStatistics.RepeatInterval = 200; + this.buttonStatistics.RepeatIntervalAccelerate = null; + this.buttonStatistics.SafeInterval = 200; + this.buttonStatistics.Size = new System.Drawing.Size(84, 25); + this.buttonStatistics.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonStatistics.TabIndex = 224; + this.buttonStatistics.TextColor = System.Drawing.Color.Black; + this.buttonStatistics.TextDownColor = System.Drawing.Color.White; + this.buttonStatistics.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonStatistics.TextLocation = new System.Drawing.Point(0, 0); + this.buttonStatistics.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonStatistics.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonStatistics.UpImage"))); + this.buttonStatistics.Visible = false; + this.buttonStatistics.Click += new System.EventHandler(this.Control_Click); + // + // labelTitleStatistics + // + this.labelTitleStatistics.BackPictureBox = this.smartForm1; + this.labelTitleStatistics.BackPictureBox1 = null; + this.labelTitleStatistics.BackPictureBox2 = null; + this.labelTitleStatistics.BorderColor = System.Drawing.Color.Black; + this.labelTitleStatistics.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitleStatistics.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.labelTitleStatistics.InitVisible = true; + this.labelTitleStatistics.LineSpacing = 0F; + this.labelTitleStatistics.Location = new System.Drawing.Point(202, 214); + this.labelTitleStatistics.Name = "labelTitleStatistics"; + this.labelTitleStatistics.Size = new System.Drawing.Size(200, 25); + this.labelTitleStatistics.TabIndex = 223; + this.labelTitleStatistics.Text = "Data Statistics"; + this.labelTitleStatistics.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; + this.labelTitleStatistics.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitleStatistics.Visible = false; + this.labelTitleStatistics.Wordwrap = false; + // + // buttonPart11 + // + this.buttonPart11.BackPictureBox = null; + this.buttonPart11.BackPictureBox1 = null; + this.buttonPart11.BackPictureBox2 = null; + this.buttonPart11.ButtonColor = System.Drawing.Color.Gray; + this.buttonPart11.ButtonImageAutoSize = true; + this.buttonPart11.ColorKeySamplePosition = new System.Drawing.Point(0, 0); + this.buttonPart11.DisableImage = null; + this.buttonPart11.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonPart11.DownImage"))); + this.buttonPart11.GroupID = 0; + this.buttonPart11.InitVisible = true; + this.buttonPart11.Location = new System.Drawing.Point(408, 183); + this.buttonPart11.Mode = SmartX.SmartButton.BUTTONMODE.PUSH; + this.buttonPart11.Name = "buttonPart11"; + this.buttonPart11.NestedClickEventPrevent = false; + this.buttonPart11.OutlinePixel = 1; + this.buttonPart11.RepeatInterval = 200; + this.buttonPart11.RepeatIntervalAccelerate = null; + this.buttonPart11.SafeInterval = 200; + this.buttonPart11.Size = new System.Drawing.Size(84, 25); + this.buttonPart11.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; + this.buttonPart11.TabIndex = 222; + this.buttonPart11.TextColor = System.Drawing.Color.Black; + this.buttonPart11.TextDownColor = System.Drawing.Color.White; + this.buttonPart11.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; + this.buttonPart11.TextLocation = new System.Drawing.Point(0, 0); + this.buttonPart11.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; + this.buttonPart11.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonPart11.UpImage"))); + this.buttonPart11.Click += new System.EventHandler(this.Control_Click); + // + // labelTitlePart11 + // + this.labelTitlePart11.BackPictureBox = this.smartForm1; + this.labelTitlePart11.BackPictureBox1 = null; + this.labelTitlePart11.BackPictureBox2 = null; + this.labelTitlePart11.BorderColor = System.Drawing.Color.Black; + this.labelTitlePart11.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitlePart11.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.labelTitlePart11.InitVisible = true; + this.labelTitlePart11.LineSpacing = 0F; + this.labelTitlePart11.Location = new System.Drawing.Point(202, 183); + this.labelTitlePart11.Name = "labelTitlePart11"; + this.labelTitlePart11.Size = new System.Drawing.Size(200, 25); + this.labelTitlePart11.TabIndex = 221; + this.labelTitlePart11.Text = "Part11"; + this.labelTitlePart11.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; + this.labelTitlePart11.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitlePart11.Wordwrap = false; + // + // smartGroupBox1 + // + this.smartGroupBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); + this.smartGroupBox1.BackPictureBox = null; + this.smartGroupBox1.BackPictureBox1 = null; + this.smartGroupBox1.Controls.Add(this.labelTitlePart11); + this.smartGroupBox1.Controls.Add(this.buttonStatistics); + this.smartGroupBox1.Controls.Add(this.buttonPart11); + this.smartGroupBox1.Controls.Add(this.labelTitleStatistics); + this.smartGroupBox1.FrameLineColor1 = System.Drawing.Color.Black; + this.smartGroupBox1.FrameLineColor2 = System.Drawing.Color.Black; + this.smartGroupBox1.FrameLineThickness = 1; + this.smartGroupBox1.FrameStyle = SmartX.SmartGroupBox.FRAMESTYLES.None; + this.smartGroupBox1.Image = null; + this.smartGroupBox1.InitVisible = true; + this.smartGroupBox1.Location = new System.Drawing.Point(3, 70); + this.smartGroupBox1.Name = "smartGroupBox1"; + this.smartGroupBox1.RoundRadius = 5; + this.smartGroupBox1.Size = new System.Drawing.Size(794, 448); + this.smartGroupBox1.TabIndex = 225; + this.smartGroupBox1.Text = "smartGroupBox1"; + this.smartGroupBox1.TextColor = System.Drawing.Color.Black; + // + // FormOption + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.AutoScroll = true; + this.ClientSize = new System.Drawing.Size(800, 600); + this.Controls.Add(this.smartGroupBox1); + this.Controls.Add(this.buttonSave); + this.Controls.Add(this.buttonBack); + this.Controls.Add(this.labelTitle); + this.Controls.Add(this.pictureBoxFormIcon); + this.Controls.Add(this.smartForm1); + this.Name = "FormOption"; + this.Text = "FormOption"; + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).EndInit(); + this.smartGroupBox1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private SmartX.SmartForm smartForm1; + private SmartX.SmartLabel labelTitle; + private System.Windows.Forms.PictureBox pictureBoxFormIcon; + private SmartX.SmartButton buttonSave; + private SmartX.SmartButton buttonBack; + private SmartX.SmartButton buttonStatistics; + private SmartX.SmartLabel labelTitleStatistics; + private SmartX.SmartButton buttonPart11; + private SmartX.SmartLabel labelTitlePart11; + private SmartX.SmartGroupBox smartGroupBox1; + } +} \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormOption.cs b/INT69DB_2A/Forms/FormOption.cs new file mode 100644 index 0000000..780e8e5 --- /dev/null +++ b/INT69DB_2A/Forms/FormOption.cs @@ -0,0 +1,140 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using INT69DB_2A_ImageDll; +using INT69DB_2A.DialogForms; +using SmartX; + +namespace INT69DB_2A.Forms +{ + public partial class FormOption : Form + { + #region Field + private FormMain m_ParentForm; + #endregion + + #region Constructor + public FormOption(FormMain parent) + { + InitializeComponent(); + + this.ParentForm = parent; + + this.InitializeDesign(); + this.InitializeControl(); + } + #endregion + + #region Property + public FormMain ParentForm + { + get { return this.m_ParentForm; } + private set { this.m_ParentForm = value; } + } + #endregion + + #region Method + private void InitializeDesign() + { + ImageDll images = new ImageDll(); + + if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) + { + this.labelTitle.Text = "Option Setting"; + } + else if (this.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) + { + this.labelTitle.Text = "选项设置"; + + this.buttonPart11.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnEnable)); + this.buttonPart11.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnDisable)); + this.buttonStatistics.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnEnable)); + this.buttonStatistics.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnDisable)); + } + else + { + + } + } + private void InitializeControl() + { + } + + private void UpdateParameter() + { + // Part11 + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.buttonPart11.ButtonDown(); + else + this.buttonPart11.ButtonUp(); + + // 데이터 통계 기능 사용 유무 + if (this.ParentForm.SystemConfig.IsOptDataStatistics == true) + this.buttonStatistics.ButtonDown(); + else + this.buttonStatistics.ButtonUp(); + + this.buttonSave.Visible = false; + } + + public void DisplayRefresh() + { + this.UpdateParameter(); + + this.ParentForm.SystemConfig.CurrentForm = DataStore.FormStore.FormOption; + } + #endregion + + #region Event Handler + private void Control_Click(object sender, EventArgs e) + { + if (this.buttonSave.Visible == false) + this.buttonSave.Visible = true; + + if (this.buttonPart11.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) + this.buttonStatistics.ButtonDown(); + } + + private void buttonSave_Click(object sender, EventArgs e) + { + // Part11 + if (this.buttonPart11.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) + { + this.ParentForm.SystemConfig.IsPart11 = true; + this.ParentForm.SystemConfig.IsLogin = true; + } + else + { + this.ParentForm.SystemConfig.IsPart11 = false; + this.ParentForm.SystemConfig.IsLogin = false; + } + + // 데이터 통계 기능 사용 유무 + if (this.buttonStatistics.ButtonStatus == SmartButton.BUTSTATUS.DOWN) + this.ParentForm.SystemConfig.IsOptDataStatistics = true; + else + this.ParentForm.SystemConfig.IsOptDataStatistics = false; + + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); + + DialogFormMessage myMsg = new DialogFormMessage(18, this.ParentForm.SystemConfig.Language); + myMsg.ShowDialog(); + + this.smartGroupBox1.Enabled = false; + this.buttonBack.Visible = false; + this.buttonSave.Visible = false; + } + private void buttonBack_Click(object sender, EventArgs e) + { + this.ParentForm.ChildFormMenu.DisplayRefresh(); + ((FormMain)(Owner)).smartForm.Show((int)DataStore.FormStore.FormMenu); + } + #endregion + } +} \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormOption.resx b/INT69DB_2A/Forms/FormOption.resx new file mode 100644 index 0000000..ad7dee0 --- /dev/null +++ b/INT69DB_2A/Forms/FormOption.resx @@ -0,0 +1,1132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOwwAADsMBx2+oZAAACmpJREFUeF7t1jERgEAQ + ALGz8yUSXjM4AgtQY2LLzERE5tgLAICQYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhg + AQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABi + ggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIA + iAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQL + ACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABAT + LACAmGABAMQECwAgJlgAADHBAgCIzXufAACE5nsuAABCggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywA + gJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEyw + AABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEA + xAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIF + ABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywA + gJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEyw + AABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEA + xAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIF + ABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywA + gJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEyw + AABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEA + xAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIF + ABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywA + gJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEyw + AABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEA + xAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIF + ABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywA + gJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEyw + AABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBs3vsEACA0x14AAIQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACA + mGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAA + AGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + 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 + dlfTVCQvUgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAIAAAD+THXTAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH + DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp + bGUAAEjHnZZ3VFTXFofPvXd6oc0w0hl6ky4wgPQuIB0EURhmBhjKAMMMTWyIqEBEEREBRZCggAGjoUis + iGIhKKhgD0gQUGIwiqioZEbWSnx5ee/l5ffHvd/aZ+9z99l7n7UuACRPHy4vBZYCIJkn4Ad6ONNXhUfQ + sf0ABniAAaYAMFnpqb5B7sFAJC83F3q6yAn8i94MAUj8vmXo6U+ng/9P0qxUvgAAyF/E5mxOOkvE+SJO + yhSkiu0zIqbGJIoZRomZL0pQxHJijlvkpZ99FtlRzOxkHlvE4pxT2clsMfeIeHuGkCNixEfEBRlcTqaI + b4tYM0mYzBXxW3FsMoeZDgCKJLYLOKx4EZuImMQPDnQR8XIAcKS4LzjmCxZwsgTiQ7mkpGbzuXHxArou + S49uam3NoHtyMpM4AoGhP5OVyOSz6S4pyalMXjYAi2f+LBlxbemiIluaWltaGpoZmX5RqP+6+Dcl7u0i + vQr43DOI1veH7a/8UuoAYMyKarPrD1vMfgA6tgIgd/8Pm+YhACRFfWu/8cV5aOJ5iRcIUm2MjTMzM424 + HJaRuKC/6386/A198T0j8Xa/l4fuyollCpMEdHHdWClJKUI+PT2VyeLQDf88xP848K/zWBrIieXwOTxR + RKhoyri8OFG7eWyugJvCo3N5/6mJ/zDsT1qca5Eo9Z8ANcoISN2gAuTnPoCiEAESeVDc9d/75oMPBeKb + F6Y6sTj3nwX9+65wifiRzo37HOcSGExnCfkZi2viawnQgAAkARXIAxWgAXSBITADVsAWOAI3sAL4gWAQ + DtYCFogHyYAPMkEu2AwKQBHYBfaCSlAD6kEjaAEnQAc4DS6Ay+A6uAnugAdgBIyD52AGvAHzEARhITJE + geQhVUgLMoDMIAZkD7lBPlAgFA5FQ3EQDxJCudAWqAgqhSqhWqgR+hY6BV2ArkID0D1oFJqCfoXewwhM + gqmwMqwNG8MM2An2hoPhNXAcnAbnwPnwTrgCroOPwe3wBfg6fAcegZ/DswhAiAgNUUMMEQbigvghEUgs + wkc2IIVIOVKHtCBdSC9yCxlBppF3KAyKgqKjDFG2KE9UCIqFSkNtQBWjKlFHUe2oHtQt1ChqBvUJTUYr + oQ3QNmgv9Cp0HDoTXYAuRzeg29CX0HfQ4+g3GAyGhtHBWGE8MeGYBMw6TDHmAKYVcx4zgBnDzGKxWHms + AdYO64dlYgXYAux+7DHsOewgdhz7FkfEqeLMcO64CBwPl4crxzXhzuIGcRO4ebwUXgtvg/fDs/HZ+BJ8 + Pb4LfwM/jp8nSBN0CHaEYEICYTOhgtBCuER4SHhFJBLVidbEACKXuIlYQTxOvEIcJb4jyZD0SS6kSJKQ + tJN0hHSedI/0ikwma5MdyRFkAXknuZF8kfyY/FaCImEk4SXBltgoUSXRLjEo8UISL6kl6SS5VjJHslzy + pOQNyWkpvJS2lIsUU2qDVJXUKalhqVlpirSptJ90snSxdJP0VelJGayMtoybDFsmX+awzEWZMQpC0aC4 + UFiULZR6yiXKOBVD1aF6UROoRdRvqP3UGVkZ2WWyobJZslWyZ2RHaAhNm+ZFS6KV0E7QhmjvlygvcVrC + WbJjScuSwSVzcopyjnIcuUK5Vrk7cu/l6fJu8onyu+U75B8poBT0FQIUMhUOKlxSmFakKtoqshQLFU8o + 3leClfSVApXWKR1W6lOaVVZR9lBOVd6vfFF5WoWm4qiSoFKmclZlSpWiaq/KVS1TPaf6jC5Ld6In0Svo + PfQZNSU1TzWhWq1av9q8uo56iHqeeqv6Iw2CBkMjVqNMo1tjRlNV01czV7NZ874WXouhFa+1T6tXa05b + RztMe5t2h/akjpyOl06OTrPOQ12yroNumm6d7m09jB5DL1HvgN5NfVjfQj9ev0r/hgFsYGnANThgMLAU + vdR6KW9p3dJhQ5Khk2GGYbPhqBHNyMcoz6jD6IWxpnGE8W7jXuNPJhYmSSb1Jg9MZUxXmOaZdpn+aqZv + xjKrMrttTjZ3N99o3mn+cpnBMs6yg8vuWlAsfC22WXRbfLS0suRbtlhOWWlaRVtVWw0zqAx/RjHjijXa + 2tl6o/Vp63c2ljYCmxM2v9ga2ibaNtlOLtdZzllev3zMTt2OaVdrN2JPt4+2P2Q/4qDmwHSoc3jiqOHI + dmxwnHDSc0pwOub0wtnEme/c5jznYuOy3uW8K+Lq4Vro2u8m4xbiVun22F3dPc692X3Gw8Jjncd5T7Sn + t+duz2EvZS+WV6PXzAqrFetX9HiTvIO8K72f+Oj78H26fGHfFb57fB+u1FrJW9nhB/y8/Pb4PfLX8U/z + /z4AE+AfUBXwNNA0MDewN4gSFBXUFPQm2Dm4JPhBiG6IMKQ7VDI0MrQxdC7MNaw0bGSV8ar1q66HK4Rz + wzsjsBGhEQ0Rs6vdVu9dPR5pEVkQObRGZ03WmqtrFdYmrT0TJRnFjDoZjY4Oi26K/sD0Y9YxZ2O8Yqpj + ZlgurH2s52xHdhl7imPHKeVMxNrFlsZOxtnF7YmbineIL4+f5rpwK7kvEzwTahLmEv0SjyQuJIUltSbj + kqOTT/FkeIm8nhSVlKyUgVSD1ILUkTSbtL1pM3xvfkM6lL4mvVNAFf1M9Ql1hVuFoxn2GVUZbzNDM09m + SWfxsvqy9bN3ZE/kuOd8vQ61jrWuO1ctd3Pu6Hqn9bUboA0xG7o3amzM3zi+yWPT0c2EzYmbf8gzySvN + e70lbEtXvnL+pvyxrR5bmwskCvgFw9tst9VsR23nbu/fYb5j/45PhezCa0UmReVFH4pZxde+Mv2q4quF + nbE7+0ssSw7uwuzi7Rra7bD7aKl0aU7p2B7fPe1l9LLCstd7o/ZeLV9WXrOPsE+4b6TCp6Jzv+b+Xfs/ + VMZX3qlyrmqtVqreUT13gH1g8KDjwZYa5ZqimveHuIfu1nrUttdp15UfxhzOOPy0PrS+92vG140NCg1F + DR+P8I6MHA082tNo1djYpNRU0gw3C5unjkUeu/mN6zedLYYtta201qLj4Ljw+LNvo78dOuF9ovsk42TL + d1rfVbdR2grbofbs9pmO+I6RzvDOgVMrTnV32Xa1fW/0/ZHTaqerzsieKTlLOJt/duFczrnZ86nnpy/E + XRjrjup+cHHVxds9AT39l7wvXbnsfvlir1PvuSt2V05ftbl66hrjWsd1y+vtfRZ9bT9Y/NDWb9nffsPq + RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP + lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l + f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK + j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAABT5JREFUaEPtm3dPI0cY + h/N1juQS3V0uRQnhMFggTDEYhE2xwcYFAhhjU0MTBtFLEnovpnMXyl+IL5cHz8iUM7aBlbyL/NNg7c7M + zr7PvrPvvAPmm3eZb2KUj9lv1VZ+zHr7wMgHJQrST/of8ktzqmsrPfWeBlXK7XFV2iy5Jdkfsr57YDzl + HtL7zLT80lyPxy0vbWj4U5WSxjU0ON1OvfHTXQTKLRLEFTaz6NrS0tLe3t7d3f2XKoVhbW1tXq9XWGuy + FOGMCIhEokrw0A8YeanqFQgEBFWJufAhkqE0R/B0dXXJ7hpRZ2enoNIV/H6L9DH7e5fbRa2G/HNXfr8f + 42sdNjH9bpCIb1T5fD7ZRYNqbm4GITP/N4lEvNaui4SEo4gTAilNrD+qjW+JqKOjAwR8c4PEYswJwV42 + alNENSgcTvvrQWKKQUFWkUJSsVJIWlAK6RGRrRcUFGRkZOh0Or1ebzKZPB4PeSRLNmnyY6I1ItIzapxO + p9FozMvLs9vtz84wFUBqbW01GAwOhyMYDM7Ozq6trV1cXBwcHPwT1tzc3L+PS/RBHP8d1vz8PMe9vb3k + Nc+jUgDJYrG4XK7p6Wmsx6DdsGRbwurp6REHwAwNDQE5MjJCHoB9oj5xKYM0PDwMj9Dm5ubS0pJsiynu + jW/NZjMjcF9gqAQD//CAoBodHcVRT6VSAKmmpobbS6C5uY2NjQSRMJdruR1v3czMzPj4OJW8V42NjZOT + kwwlqKiM+DARKYBks9l4BwQPepKXuNfY2NjCwkIoFJqamqISpKamJoGEBNXg4KDwYSJKJhJeqq+v550B + idcvKhKCCgdSI66KKw0gIagSDzmqQBJxMgbS4uLi0dGRuCquVIHEVSCJqUXEi4rEQieuiivlkba2thJE + EiJCHh8fX15eMginUZGYmclEInvgU7bFFKF5YmIC/2Du3t6eiNdMPFxHvRhNCKTDw0NxVVwpj4TECsPQ + TK0YogPdACNAixhNDYtSXV3d115KJhLHJHtYxjJaWVlZ9YhoEq1Wq7U6LFFPMuH1eskV5XBhJRmJpJNU + gDyNnIC3AvtiiA7cToinQEaP93Ayg8jhwkoaEnYICTteqMhQfCYNaXV1lRf98+fPX16m/8JiKCINMIyc + HCQCN9acn58TxInLrE4v1MrKCs9oeXmZhTg5SDxRkAi+slYJDQwMsBAz8Vhqk4DEE93Z2enr65O1Com9 + EwE9OUjME6Zcf3+/rFVCGMd+Wew+Xg+S2+0mpqeQUkhfK4X0BKWQpFJI0ZRCeoLuIiVho05CtL29rTiS + x+NJApLT6SSzJGUmfVY2xxNeIiFaX18/PT2VtfGkAFJnZydPEeErZZHa2trYxk9PT5+dne3v78vaeFIA + iclGpsweif05RrD3ZhAmTP0LdGOT211WVub3+9mzXF1did8fJSIFkFAwGGRncX19zb2xgOPd3d1QKMTn + 88QIXH5ycsKYuIi5J++UgJRBUpVSSFpQCkkLSiFpQa8QqevuVwz5AY5zQGW7BnXvi6D8WKzlnJPXyHYN + qrW1FQRjeb5EyinWce71emW7BiWSzD/yfpFIH3Tf1jkdVAUCAdlFU/L5fBhfVVMBi0Si6I2fqEVMStlR + I+J9wWwS+fS8n+8hUUyWIkGloa/1C/+g3JLsCMgt0rvMtKJyg+jR3NzMpoV9nviDsaqESUwl4oH4pwT8 + k2fS36G4h3RTdAXp9rpaAaZ+We3VkfkWKQ+RKO91aVmF6aUVxTa7tc7lcLldqipEMmttVbG5MMPw6wPL + RYmCpO2S+eZ/bKN5gL5h+oUAAAAASUVORK5CYII= + + + + + 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 + B8BJRi9/0SAYAAAAAElFTkSuQmCC + + + + + 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 + Z/8BKGeNyS3v/jQAAAAASUVORK5CYII= + + + + + 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 + EPAlSQAAAABJRU5ErkJggg== + + + + + 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 + /75aOx5brnAAAAAASUVORK5CYII= + + + + + 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 + + + + WEBPAD + + + False + + \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormUserEditor.cs b/INT69DB_2A/Forms/FormUserEditor.cs index 7ccd2d4..22f3ff2 100644 --- a/INT69DB_2A/Forms/FormUserEditor.cs +++ b/INT69DB_2A/Forms/FormUserEditor.cs @@ -112,6 +112,8 @@ namespace INT69DB_2A.Forms private void SetEnableID(bool value) { + this.labelID.Enabled = value; + if (value == true) this.labelID.BackColor = Color.White; else @@ -119,6 +121,8 @@ namespace INT69DB_2A.Forms } private void SetEnablePassword(bool value) { + this.labelPassword.Enabled = value; + if (value == true) this.labelPassword.BackColor = Color.White; else @@ -140,18 +144,6 @@ namespace INT69DB_2A.Forms this.labelExpiryDateOfPassword.BackColor = Color.Silver; } } - private void SetEnableControl(bool value) - { - this.listBoxUserList.Enabled = value; - - this.buttonNew.Enabled = value; - this.buttonDelete.Enabled = value; - this.buttonSave.Enabled = value; - - this.buttonGroupEditor.Enabled = value; - - this.SetEnableOnlyPart11Value(value); - } private void SaveUserDll() { @@ -344,13 +336,6 @@ namespace INT69DB_2A.Forms #endregion } } - private void ChangeUserControlEnable(bool enable) - { - this.listBoxUserList.Enabled = enable; - this.smartGroupBox1.Enabled = enable; - this.buttonGroupEditor.Enabled = enable; - this.buttonBack.Enabled = enable; - } private void UserNew() { this.UpdateInitializeUserDisplay(this.ParentForm.SystemConfig); @@ -474,11 +459,15 @@ namespace INT69DB_2A.Forms this.UpdateDefaultSetAccessRightDisplay(this.ParentForm.CurrentUserGroup.Level1); this.SetEnableID(true); + this.SetEnablePassword(true); + this.SetEnableOnlyPart11Value(true); this.buttonDelete.Visible = false; this.buttonSave.Visible = false; + this.labelStatusExpireAccount.Visible = false; + this.labelStatusExpirePassword.Visible = false; - this.labelAutomaticLogoutTime.Text = system.AutomaticLogout.ToString(); + this.labelAutomaticLogoutTime.Text = system.UserAutomaticLogout.ToString(); this.listBoxUserList.SelectedIndexChanged -= new EventHandler(this.listBoxUserList_SelectedIndexChanged); this.listBoxUserList.SelectItemIndex = -1; @@ -493,14 +482,25 @@ namespace INT69DB_2A.Forms this.SelectedUserItem.ExpireAccount = item.expire_period_account; this.SelectedUserItem.ExpirePassword = item.expire_period_pw; - DateTime time = DateTime.ParseExact(item.register_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateRegister = time; - time = DateTime.ParseExact(item.login_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateLogin = time; - time = DateTime.ParseExact(item.expire_account_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateExpireRegister = time; - time = DateTime.ParseExact(item.expire_register_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateExpireLogin = time; + if (this.SelectedUserItem.Group == DataStore.UserGroup.Admin + || this.SelectedUserItem.Group == DataStore.UserGroup.Developer) + { + this.SelectedUserItem.DateRegister = DateTime.Now; + this.SelectedUserItem.DateLogin = DateTime.Now; + this.SelectedUserItem.DateExpireRegister = DateTime.Now; + this.SelectedUserItem.DateExpireLogin = DateTime.Now; + } + else + { + DateTime time = DateTime.ParseExact(item.register_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateRegister = time; + time = DateTime.ParseExact(item.login_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateLogin = time; + time = DateTime.ParseExact(item.expire_account_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateExpireRegister = time; + time = DateTime.ParseExact(item.expire_register_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateExpireLogin = time; + } this.SelectedUserItem.IsLockAccount = item.flock_status_account == 0 ? false : true; this.SelectedUserItem.IsLockPassword = item.flock_status_password == 0 ? false : true; @@ -528,16 +528,28 @@ namespace INT69DB_2A.Forms this.SelectedUserItem.Password = item.user_pw; this.SelectedUserItem.ExpireAccount = item.expire_period_account; - this.SelectedUserItem.ExpirePassword = item.expire_period_pw; + this.SelectedUserItem.ExpirePassword = item.expire_period_password; - DateTime time = DateTime.ParseExact(item.register_date.GetDateTime(), "yyyyMMddHHmmss", null); + DateTime time = DateTime.ParseExact(item.password_register_date.GetDateTime(), "yyyyMMddHHmmss", null); this.SelectedUserItem.DateRegister = time; - time = DateTime.ParseExact(item.login_date.GetDateTime(), "yyyyMMddHHmmss", null); + time = DateTime.ParseExact(item.id_login_date.GetDateTime(), "yyyyMMddHHmmss", null); this.SelectedUserItem.DateLogin = time; - time = DateTime.ParseExact(item.expire_account_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateExpireRegister = time; - time = DateTime.ParseExact(item.expire_register_date.GetDateTime(), "yyyyMMddHHmmss", null); - this.SelectedUserItem.DateExpireLogin = time; + + if (this.SelectedUserItem.Group == DataStore.UserGroup.Admin + || this.SelectedUserItem.Group == DataStore.UserGroup.Developer) + { + this.SelectedUserItem.DateRegister = DateTime.Now; + this.SelectedUserItem.DateLogin = DateTime.Now; + this.SelectedUserItem.DateExpireRegister = DateTime.Now; + this.SelectedUserItem.DateExpireLogin = DateTime.Now; + } + else + { + time = DateTime.ParseExact(item.expire_id_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateExpireRegister = time; + time = DateTime.ParseExact(item.expire_password_date.GetDateTime(), "yyyyMMddHHmmss", null); + this.SelectedUserItem.DateExpireLogin = time; + } this.SelectedUserItem.IsLockAccount = item.flock_status_account == 0 ? false : true; this.SelectedUserItem.IsLockPassword = item.flock_status_password == 0 ? false : true; @@ -560,10 +572,7 @@ namespace INT69DB_2A.Forms { this.SetEnableID(false); this.SetEnablePassword(true); - this.SetEnableControl(true); - - // 화면 Enable 처리 추가할것 - this.ChangeUserControlEnable(true); + this.buttonSave.Visible = false; this.labelID.Text = item.ID; this.labelPassword.Text = item.Password; @@ -589,8 +598,8 @@ namespace INT69DB_2A.Forms { this.labelExpiryDateOfAccount.Text = item.ExpireAccount.ToString(); this.labelExpiryDateOfPassword.Text = item.ExpirePassword.ToString(); - this.labelExpiryDateOfAccount2.Text = string.Format("{0:yyyy/MM/dd} ~ {1:yyyy/MM/dd}", item.DateRegister, item.DateExpireRegister); - this.labelExpiryDateOfPassword2.Text = string.Format("{0:yyyy/MM/dd} ~ {1:yyyy/MM/dd}", item.DateLogin, item.DateExpireLogin); + this.labelExpiryDateOfAccount2.Text = string.Format("{0:yyyy/MM/dd} ~ {1:yyyy/MM/dd}", item.DateLogin, item.DateExpireLogin); + this.labelExpiryDateOfPassword2.Text = string.Format("{0:yyyy/MM/dd} ~ {1:yyyy/MM/dd}", item.DateRegister, item.DateExpireRegister); this.labelStatusExpireAccount.Visible = item.IsLockAccount; this.labelStatusExpirePassword.Visible = item.IsLockPassword; @@ -708,6 +717,8 @@ namespace INT69DB_2A.Forms this.UpdateUserListBoxDisplay(this.ParentForm.ListDllUserName); this.listBoxUserList.SelectItemIndex = this.listBoxUserList.ItemCount - 1; + this.buttonSave.Visible = false; + this.buttonDelete.Enabled = true; this.labelID.Enabled = false; this.labelID.BackColor = Color.LightGray; @@ -951,6 +962,13 @@ namespace INT69DB_2A.Forms this.buttonGroupEditor.Visible = true; this.ChildControlUserSet.Visible = false; this.buttonNew.Visible = true; + this.listBoxUserList.Enabled = true; + + this.UpdateInitializeUserDisplay(this.ParentForm.SystemConfig); + this.UpdateUserListBoxDisplay(this.ParentForm.ListDllUserName); + this.listBoxUserList.SelectedIndexChanged -= new EventHandler(this.listBoxUserList_SelectedIndexChanged); + this.listBoxUserList.SelectItemIndex = -1; + this.listBoxUserList.SelectedIndexChanged += new EventHandler(this.listBoxUserList_SelectedIndexChanged); } else { @@ -962,17 +980,6 @@ namespace INT69DB_2A.Forms this.ChildControlUserSet.BringToFront(); this.ChildControlUserSet.DisplayRefresh(); } - - this.UpdateInitializeUserDisplay(this.ParentForm.SystemConfig); - this.UpdateUserListBoxDisplay(this.ParentForm.ListDllUserName); - this.listBoxUserList.SelectedIndexChanged -= new EventHandler(this.listBoxUserList_SelectedIndexChanged); - this.listBoxUserList.SelectItemIndex = -1; - this.listBoxUserList.SelectedIndexChanged += new EventHandler(this.listBoxUserList_SelectedIndexChanged); - - this.buttonNew.Visible = true; - this.listBoxUserList.Enabled = true; - this.SetEnablePassword(true); - this.SetEnableID(true); } #endregion @@ -1002,7 +1009,7 @@ namespace INT69DB_2A.Forms { // 메시지 추가 // 사용자를 삭제 하시겠습니까? - DialogFormYesNo dlg = new DialogFormYesNo(this.ParentForm.SystemConfig.Language, 16); + DialogFormYesNo dlg = new DialogFormYesNo(this.ParentForm.SystemConfig.Language, 14); if (dlg.ShowDialog() == DialogResult.Yes) { if (this.listBoxUserList.Items.Count <= 1) @@ -1254,7 +1261,6 @@ namespace INT69DB_2A.Forms this.IsNew = false; this.SetEnablePassword(true); - this.labelAutomaticLogoutTime.Enabled = true; if (index == 0) { @@ -1272,8 +1278,6 @@ namespace INT69DB_2A.Forms this.buttonDelete.Visible = true; this.SetEnableID(false); - this.SetEnableControl(true); - this.SetEnablePassword(true); UserManager.UserManager_GetUserListID(this.listBoxUserList.Items[index]); } diff --git a/INT69DB_2A/Forms/FormUserGroupEditor.Designer.cs b/INT69DB_2A/Forms/FormUserGroupEditor.Designer.cs index 90ce863..5081a9b 100644 --- a/INT69DB_2A/Forms/FormUserGroupEditor.Designer.cs +++ b/INT69DB_2A/Forms/FormUserGroupEditor.Designer.cs @@ -141,16 +141,12 @@ this.smartLabel2 = new SmartX.SmartLabel(); this.smartLabel1 = new SmartX.SmartLabel(); this.pictureBoxFormIcon = new System.Windows.Forms.PictureBox(); - this.smartKeyboard = new SmartX.SmartKeyboard(); - this.buttonEditLevel3 = new SmartX.SmartButton(); this.smartLabel27 = new SmartX.SmartLabel(); - this.textBoxLevel3 = new System.Windows.Forms.TextBox(); - this.buttonEditLevel2 = new SmartX.SmartButton(); this.smartLabel25 = new SmartX.SmartLabel(); - this.textBoxLevel2 = new System.Windows.Forms.TextBox(); - this.buttonEditLevel1 = new SmartX.SmartButton(); this.smartLabel26 = new SmartX.SmartLabel(); - this.textBoxLevel1 = new System.Windows.Forms.TextBox(); + this.labelLevel3Name = new SmartX.SmartLabel(); + this.labelLevel2Name = new SmartX.SmartLabel(); + this.labelLevel1Name = new SmartX.SmartLabel(); ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.smartGroupBox1.SuspendLayout(); this.SuspendLayout(); @@ -625,6 +621,7 @@ this.labelTitleNotLogin2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitleNotLogin2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitleNotLogin2.Wordwrap = false; + this.labelTitleNotLogin2.Click += new System.EventHandler(this.labelTitle4_Click); // // smartLabel17 // @@ -646,6 +643,7 @@ this.smartLabel17.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.smartLabel17.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel17.Wordwrap = false; + this.smartLabel17.Click += new System.EventHandler(this.labelTitle3_Click); // // smartLabel22 // @@ -667,6 +665,7 @@ this.smartLabel22.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.smartLabel22.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel22.Wordwrap = false; + this.smartLabel22.Click += new System.EventHandler(this.labelTitle2_Click); // // smartLabel23 // @@ -688,6 +687,7 @@ this.smartLabel23.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.smartLabel23.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel23.Wordwrap = false; + this.smartLabel23.Click += new System.EventHandler(this.labelTitle1_Click); // // checkBoxNotLoginMenuStatistics // @@ -2173,6 +2173,7 @@ this.labelTitleNotLogin1.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitleNotLogin1.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitleNotLogin1.Wordwrap = false; + this.labelTitleNotLogin1.Click += new System.EventHandler(this.labelTitle4_Click); // // labelTitle3 // @@ -2194,6 +2195,7 @@ this.labelTitle3.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitle3.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitle3.Wordwrap = false; + this.labelTitle3.Click += new System.EventHandler(this.labelTitle3_Click); // // labelTitle2 // @@ -2215,6 +2217,7 @@ this.labelTitle2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitle2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitle2.Wordwrap = false; + this.labelTitle2.Click += new System.EventHandler(this.labelTitle2_Click); // // labelTitle1 // @@ -2236,6 +2239,7 @@ this.labelTitle1.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; this.labelTitle1.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.labelTitle1.Wordwrap = false; + this.labelTitle1.Click += new System.EventHandler(this.labelTitle1_Click); // // labelTitleEquipment // @@ -2608,73 +2612,6 @@ this.pictureBoxFormIcon.Name = "pictureBoxFormIcon"; this.pictureBoxFormIcon.Size = new System.Drawing.Size(47, 45); // - // smartKeyboard - // - this.smartKeyboard.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(195)))), ((int)(((byte)(198))))); - this.smartKeyboard.ControlKeyDisable = true; - this.smartKeyboard.DesignMinimize = true; - this.smartKeyboard.FontColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.smartKeyboard.HanYoungKeyDisable = true; - this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; - this.smartKeyboard.KeyFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); - this.smartKeyboard.KeyOutLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(157)))), ((int)(((byte)(157))))); - this.smartKeyboard.KeyOutLineWidth = 1; - this.smartKeyboard.KeyPressImage1 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyPressImage1"))); - this.smartKeyboard.KeyPressImage2 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyPressImage2"))); - this.smartKeyboard.KeyPressImage3 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyPressImage3"))); - this.smartKeyboard.KeyUpImage1 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyUpImage1"))); - this.smartKeyboard.KeyUpImage2 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyUpImage2"))); - this.smartKeyboard.KeyUpImage3 = ((System.Drawing.Image)(resources.GetObject("smartKeyboard.KeyUpImage3"))); - this.smartKeyboard.LeftMargin = 5; - this.smartKeyboard.Location = new System.Drawing.Point(0, 111); - this.smartKeyboard.Name = "smartKeyboard"; - this.smartKeyboard.PressFontColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); - this.smartKeyboard.PressKeyFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(146)))), ((int)(((byte)(146))))); - this.smartKeyboard.PressKeyOutLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(41)))), ((int)(((byte)(41))))); - this.smartKeyboard.RoundedCorners = true; - this.smartKeyboard.SetBackimage = null; - this.smartKeyboard.Size = new System.Drawing.Size(16, 11); - this.smartKeyboard.TabIndex = 743; - this.smartKeyboard.TABKeyDisable = false; - this.smartKeyboard.TargetInputObject = null; - this.smartKeyboard.Text = "smartKeyboard1"; - this.smartKeyboard.ThemeStyle = SmartX.SmartKeyboard.KEYBOARDTHEMESTYLE.STANDARD8; - this.smartKeyboard.TopMargin = 5; - this.smartKeyboard.OnXKeyClick += new System.EventHandler(this.smartKeyboard_OnXKeyClick); - // - // buttonEditLevel3 - // - this.buttonEditLevel3.BackPictureBox = null; - this.buttonEditLevel3.BackPictureBox1 = null; - this.buttonEditLevel3.BackPictureBox2 = null; - this.buttonEditLevel3.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); - this.buttonEditLevel3.ButtonImageAutoSize = true; - this.buttonEditLevel3.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonEditLevel3.DisableImage = null; - this.buttonEditLevel3.DownImage = null; - this.buttonEditLevel3.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold); - this.buttonEditLevel3.GroupID = 0; - this.buttonEditLevel3.InitVisible = true; - this.buttonEditLevel3.Location = new System.Drawing.Point(745, 81); - this.buttonEditLevel3.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.buttonEditLevel3.Name = "buttonEditLevel3"; - this.buttonEditLevel3.NestedClickEventPrevent = false; - this.buttonEditLevel3.OutlinePixel = 1; - this.buttonEditLevel3.RepeatInterval = 200; - this.buttonEditLevel3.RepeatIntervalAccelerate = null; - this.buttonEditLevel3.SafeInterval = 200; - this.buttonEditLevel3.Size = new System.Drawing.Size(40, 26); - this.buttonEditLevel3.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonEditLevel3.TabIndex = 858; - this.buttonEditLevel3.Text = "Edit"; - this.buttonEditLevel3.TextColor = System.Drawing.Color.White; - this.buttonEditLevel3.TextDownColor = System.Drawing.Color.White; - this.buttonEditLevel3.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonEditLevel3.TextLocation = new System.Drawing.Point(0, 0); - this.buttonEditLevel3.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonEditLevel3.UpImage = null; - this.buttonEditLevel3.Click += new System.EventHandler(this.buttonEdit_Click); - // // smartLabel27 // this.smartLabel27.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); @@ -2696,50 +2633,6 @@ this.smartLabel27.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel27.Wordwrap = false; // - // textBoxLevel3 - // - this.textBoxLevel3.Font = new System.Drawing.Font("Arial", 13F, System.Drawing.FontStyle.Regular); - this.textBoxLevel3.Location = new System.Drawing.Point(568, 81); - this.textBoxLevel3.MaxLength = 15; - this.textBoxLevel3.Name = "textBoxLevel3"; - this.textBoxLevel3.Size = new System.Drawing.Size(171, 26); - this.textBoxLevel3.TabIndex = 856; - this.textBoxLevel3.GotFocus += new System.EventHandler(this.textBoxLevel3_GotFocus); - this.textBoxLevel3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBoxLevel3_KeyPress); - // - // buttonEditLevel2 - // - this.buttonEditLevel2.BackPictureBox = null; - this.buttonEditLevel2.BackPictureBox1 = null; - this.buttonEditLevel2.BackPictureBox2 = null; - this.buttonEditLevel2.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); - this.buttonEditLevel2.ButtonImageAutoSize = true; - this.buttonEditLevel2.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonEditLevel2.DisableImage = null; - this.buttonEditLevel2.DownImage = null; - this.buttonEditLevel2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold); - this.buttonEditLevel2.GroupID = 0; - this.buttonEditLevel2.InitVisible = true; - this.buttonEditLevel2.Location = new System.Drawing.Point(488, 81); - this.buttonEditLevel2.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.buttonEditLevel2.Name = "buttonEditLevel2"; - this.buttonEditLevel2.NestedClickEventPrevent = false; - this.buttonEditLevel2.OutlinePixel = 1; - this.buttonEditLevel2.RepeatInterval = 200; - this.buttonEditLevel2.RepeatIntervalAccelerate = null; - this.buttonEditLevel2.SafeInterval = 200; - this.buttonEditLevel2.Size = new System.Drawing.Size(40, 26); - this.buttonEditLevel2.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonEditLevel2.TabIndex = 855; - this.buttonEditLevel2.Text = "Edit"; - this.buttonEditLevel2.TextColor = System.Drawing.Color.White; - this.buttonEditLevel2.TextDownColor = System.Drawing.Color.White; - this.buttonEditLevel2.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonEditLevel2.TextLocation = new System.Drawing.Point(0, 0); - this.buttonEditLevel2.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonEditLevel2.UpImage = null; - this.buttonEditLevel2.Click += new System.EventHandler(this.buttonEdit_Click); - // // smartLabel25 // this.smartLabel25.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); @@ -2761,50 +2654,6 @@ this.smartLabel25.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel25.Wordwrap = false; // - // textBoxLevel2 - // - this.textBoxLevel2.Font = new System.Drawing.Font("Arial", 13F, System.Drawing.FontStyle.Regular); - this.textBoxLevel2.Location = new System.Drawing.Point(311, 81); - this.textBoxLevel2.MaxLength = 15; - this.textBoxLevel2.Name = "textBoxLevel2"; - this.textBoxLevel2.Size = new System.Drawing.Size(171, 26); - this.textBoxLevel2.TabIndex = 853; - this.textBoxLevel2.GotFocus += new System.EventHandler(this.textBoxLevel2_GotFocus); - this.textBoxLevel2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBoxLevel2_KeyPress); - // - // buttonEditLevel1 - // - this.buttonEditLevel1.BackPictureBox = null; - this.buttonEditLevel1.BackPictureBox1 = null; - this.buttonEditLevel1.BackPictureBox2 = null; - this.buttonEditLevel1.ButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(49)))), ((int)(((byte)(65)))), ((int)(((byte)(41))))); - this.buttonEditLevel1.ButtonImageAutoSize = true; - this.buttonEditLevel1.ColorKeySamplePosition = new System.Drawing.Point(0, 0); - this.buttonEditLevel1.DisableImage = null; - this.buttonEditLevel1.DownImage = null; - this.buttonEditLevel1.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold); - this.buttonEditLevel1.GroupID = 0; - this.buttonEditLevel1.InitVisible = true; - this.buttonEditLevel1.Location = new System.Drawing.Point(231, 81); - this.buttonEditLevel1.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL; - this.buttonEditLevel1.Name = "buttonEditLevel1"; - this.buttonEditLevel1.NestedClickEventPrevent = false; - this.buttonEditLevel1.OutlinePixel = 1; - this.buttonEditLevel1.RepeatInterval = 200; - this.buttonEditLevel1.RepeatIntervalAccelerate = null; - this.buttonEditLevel1.SafeInterval = 200; - this.buttonEditLevel1.Size = new System.Drawing.Size(40, 26); - this.buttonEditLevel1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE; - this.buttonEditLevel1.TabIndex = 852; - this.buttonEditLevel1.Text = "Edit"; - this.buttonEditLevel1.TextColor = System.Drawing.Color.White; - this.buttonEditLevel1.TextDownColor = System.Drawing.Color.White; - this.buttonEditLevel1.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle; - this.buttonEditLevel1.TextLocation = new System.Drawing.Point(0, 0); - this.buttonEditLevel1.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle; - this.buttonEditLevel1.UpImage = null; - this.buttonEditLevel1.Click += new System.EventHandler(this.buttonEdit_Click); - // // smartLabel26 // this.smartLabel26.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(228)))), ((int)(((byte)(180))))); @@ -2826,16 +2675,71 @@ this.smartLabel26.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; this.smartLabel26.Wordwrap = false; // - // textBoxLevel1 + // labelLevel3Name // - this.textBoxLevel1.Font = new System.Drawing.Font("Arial", 13F, System.Drawing.FontStyle.Regular); - this.textBoxLevel1.Location = new System.Drawing.Point(54, 81); - this.textBoxLevel1.MaxLength = 15; - this.textBoxLevel1.Name = "textBoxLevel1"; - this.textBoxLevel1.Size = new System.Drawing.Size(171, 26); - this.textBoxLevel1.TabIndex = 850; - this.textBoxLevel1.GotFocus += new System.EventHandler(this.textBoxLevel1_GotFocus); - this.textBoxLevel1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBoxLevel1_KeyPress); + this.labelLevel3Name.BackColor = System.Drawing.Color.White; + this.labelLevel3Name.BackPictureBox = null; + this.labelLevel3Name.BackPictureBox1 = null; + this.labelLevel3Name.BackPictureBox2 = null; + this.labelLevel3Name.BorderColor = System.Drawing.Color.Black; + this.labelLevel3Name.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelLevel3Name.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold); + this.labelLevel3Name.ForeColor = System.Drawing.Color.Black; + this.labelLevel3Name.InitVisible = true; + this.labelLevel3Name.LineSpacing = 0F; + this.labelLevel3Name.Location = new System.Drawing.Point(570, 81); + this.labelLevel3Name.Name = "labelLevel3Name"; + this.labelLevel3Name.Size = new System.Drawing.Size(200, 26); + this.labelLevel3Name.TabIndex = 864; + this.labelLevel3Name.Text = "L3"; + this.labelLevel3Name.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; + this.labelLevel3Name.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelLevel3Name.Wordwrap = false; + this.labelLevel3Name.Click += new System.EventHandler(this.labelLevel3Name_Click); + // + // labelLevel2Name + // + this.labelLevel2Name.BackColor = System.Drawing.Color.White; + this.labelLevel2Name.BackPictureBox = null; + this.labelLevel2Name.BackPictureBox1 = null; + this.labelLevel2Name.BackPictureBox2 = null; + this.labelLevel2Name.BorderColor = System.Drawing.Color.Black; + this.labelLevel2Name.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelLevel2Name.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold); + this.labelLevel2Name.ForeColor = System.Drawing.Color.Black; + this.labelLevel2Name.InitVisible = true; + this.labelLevel2Name.LineSpacing = 0F; + this.labelLevel2Name.Location = new System.Drawing.Point(311, 81); + this.labelLevel2Name.Name = "labelLevel2Name"; + this.labelLevel2Name.Size = new System.Drawing.Size(200, 26); + this.labelLevel2Name.TabIndex = 863; + this.labelLevel2Name.Text = "L2"; + this.labelLevel2Name.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; + this.labelLevel2Name.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelLevel2Name.Wordwrap = false; + this.labelLevel2Name.Click += new System.EventHandler(this.labelLevel2Name_Click); + // + // labelLevel1Name + // + this.labelLevel1Name.BackColor = System.Drawing.Color.White; + this.labelLevel1Name.BackPictureBox = null; + this.labelLevel1Name.BackPictureBox1 = null; + this.labelLevel1Name.BackPictureBox2 = null; + this.labelLevel1Name.BorderColor = System.Drawing.Color.Black; + this.labelLevel1Name.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelLevel1Name.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold); + this.labelLevel1Name.ForeColor = System.Drawing.Color.Black; + this.labelLevel1Name.InitVisible = true; + this.labelLevel1Name.LineSpacing = 0F; + this.labelLevel1Name.Location = new System.Drawing.Point(54, 81); + this.labelLevel1Name.Name = "labelLevel1Name"; + this.labelLevel1Name.Size = new System.Drawing.Size(200, 26); + this.labelLevel1Name.TabIndex = 862; + this.labelLevel1Name.Text = "L1"; + this.labelLevel1Name.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; + this.labelLevel1Name.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelLevel1Name.Wordwrap = false; + this.labelLevel1Name.Click += new System.EventHandler(this.labelLevel1Name_Click); // // FormUserGroupEditor // @@ -2843,16 +2747,12 @@ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScroll = true; this.ClientSize = new System.Drawing.Size(800, 600); - this.Controls.Add(this.smartKeyboard); - this.Controls.Add(this.buttonEditLevel3); + this.Controls.Add(this.labelLevel3Name); + this.Controls.Add(this.labelLevel2Name); + this.Controls.Add(this.labelLevel1Name); this.Controls.Add(this.smartLabel27); - this.Controls.Add(this.textBoxLevel3); - this.Controls.Add(this.buttonEditLevel2); this.Controls.Add(this.smartLabel25); - this.Controls.Add(this.textBoxLevel2); - this.Controls.Add(this.buttonEditLevel1); this.Controls.Add(this.smartLabel26); - this.Controls.Add(this.textBoxLevel1); this.Controls.Add(this.pictureBoxFormIcon); this.Controls.Add(this.smartGroupBox1); this.Controls.Add(this.buttonSave); @@ -2981,15 +2881,11 @@ private SmartX.SmartCheckBox checkBoxL2MenuViewer; private SmartX.SmartCheckBox checkBoxL1MenuViewer; private SmartX.SmartLabel labelTitleViewer; - private SmartX.SmartKeyboard smartKeyboard; - private SmartX.SmartButton buttonEditLevel3; private SmartX.SmartLabel smartLabel27; - private System.Windows.Forms.TextBox textBoxLevel3; - private SmartX.SmartButton buttonEditLevel2; private SmartX.SmartLabel smartLabel25; - private System.Windows.Forms.TextBox textBoxLevel2; - private SmartX.SmartButton buttonEditLevel1; private SmartX.SmartLabel smartLabel26; - private System.Windows.Forms.TextBox textBoxLevel1; + private SmartX.SmartLabel labelLevel3Name; + private SmartX.SmartLabel labelLevel2Name; + private SmartX.SmartLabel labelLevel1Name; } } \ No newline at end of file diff --git a/INT69DB_2A/Forms/FormUserGroupEditor.cs b/INT69DB_2A/Forms/FormUserGroupEditor.cs index 5dd1a73..06267e8 100644 --- a/INT69DB_2A/Forms/FormUserGroupEditor.cs +++ b/INT69DB_2A/Forms/FormUserGroupEditor.cs @@ -10,6 +10,7 @@ using System.Windows.Forms; using INT69DB_2A.Part11_UserManager; using SmartX; +using INT69DB_2A.DialogForms; namespace INT69DB_2A.Forms { @@ -157,20 +158,11 @@ namespace INT69DB_2A.Forms this.UpdatePart11Visible(); } - private void EnableWhenUsingKeyboard(bool bValue) - { - this.smartGroupBox1.Enabled = bValue; - this.buttonSave.Enabled = bValue; - this.buttonBack.Enabled = bValue; - this.buttonEditLevel1.Enabled = bValue; - this.buttonEditLevel2.Enabled = bValue; - this.buttonEditLevel3.Enabled = bValue; - } private void UpdateDisplay(UserGroup group, SystemConfigurationItem system) { - this.textBoxLevel1.Text = system.User_Level1_Name; - this.textBoxLevel2.Text = system.User_Level2_Name; - this.textBoxLevel3.Text = system.User_Level3_Name; + this.labelLevel1Name.Text = system.User_Level1_Name; + this.labelLevel2Name.Text = system.User_Level2_Name; + this.labelLevel3Name.Text = system.User_Level3_Name; #region Level1 this.checkBoxL1MainProductNo.Checked = group.Level1.IsMainDisplayProductNo; @@ -298,9 +290,9 @@ namespace INT69DB_2A.Forms public void UpdateLevelNameDisplay(SystemConfigurationItem system) { - this.textBoxLevel1.Text = system.User_Level1_Name; - this.textBoxLevel2.Text = system.User_Level2_Name; - this.textBoxLevel3.Text = system.User_Level3_Name; + this.labelLevel1Name.Text = system.User_Level1_Name; + this.labelLevel2Name.Text = system.User_Level2_Name; + this.labelLevel3Name.Text = system.User_Level3_Name; } public void DisplayRefresh() @@ -441,229 +433,80 @@ namespace INT69DB_2A.Forms this.buttonSave.Visible = false; } - private void textBoxLevel1_GotFocus(object sender, EventArgs e) - { - this.smartKeyboard.TargetInputObject = this.textBoxLevel1; - this.textBoxLevel1.Select(this.textBoxLevel1.Text.Length, 0); - } - private void textBoxLevel2_GotFocus(object sender, EventArgs e) - { - this.smartKeyboard.TargetInputObject = this.textBoxLevel2; - this.textBoxLevel2.Select(this.textBoxLevel2.Text.Length, 0); - } - private void textBoxLevel3_GotFocus(object sender, EventArgs e) - { - this.smartKeyboard.TargetInputObject = this.textBoxLevel3; - this.textBoxLevel3.Select(this.textBoxLevel3.Text.Length, 0); - } - - private void buttonEdit_Click(object sender, EventArgs e) - { - SmartButton button = sender as SmartButton; - - this.EnableWhenUsingKeyboard(false); - - this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; - this.smartKeyboard.Location = new Point(0, 111); - this.smartKeyboard.Size = new Size(800, 313); - this.smartKeyboard.KeyFillColor = Color.Black; - this.smartKeyboard.BackColor = Color.FromArgb(255, 205, 51); - - if (button == this.buttonEditLevel1) - { - this.textBoxLevel2.Enabled = false; - this.textBoxLevel3.Enabled = false; - - this.BeforeTextBox1 = this.textBoxLevel1.Text; - this.smartKeyboard.TargetInputObject = this.textBoxLevel1; - this.textBoxLevel1.Select(this.textBoxLevel1.Text.Length, 0); - } - else if (button == this.buttonEditLevel2) - { - this.textBoxLevel1.Enabled = false; - this.textBoxLevel3.Enabled = false; - - this.BeforeTextBox2 = this.textBoxLevel2.Text; - this.smartKeyboard.TargetInputObject = this.textBoxLevel2; - this.textBoxLevel2.Select(this.textBoxLevel2.Text.Length, 0); - } - else if (button == this.buttonEditLevel3) - { - this.textBoxLevel1.Enabled = false; - this.textBoxLevel2.Enabled = false; - - this.BeforeTextBox3 = this.textBoxLevel3.Text; - this.smartKeyboard.TargetInputObject = this.textBoxLevel3; - this.textBoxLevel3.Select(this.textBoxLevel3.Text.Length, 0); - } - - this.smartKeyboard.Show(); - } - - private void textBoxLevel1_KeyPress(object sender, KeyPressEventArgs e) + private void labelLevel1Name_Click(object sender, EventArgs e) { string before = "", after = ""; - this.EnableWhenUsingKeyboard(true); - this.textBoxLevel1.Enabled = true; - this.textBoxLevel2.Enabled = true; - this.textBoxLevel3.Enabled = true; + before = this.labelLevel1Name.Text; - if (e.KeyChar == '\r') + DialogFormUserEditorKeyboard keyboard = new DialogFormUserEditorKeyboard(this.labelLevel1Name.Text, "Level 1"); + + if (keyboard.ShowDialog() == DialogResult.OK) { - e.Handled = true; + this.labelLevel1Name.Text = keyboard.RetStringValue; + after = this.labelLevel1Name.Text; - this.smartKeyboard.Hide(); + this.ParentForm.SystemConfig.User_Level1_Name = this.labelLevel1Name.Text; + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); - if (this.textBoxLevel1.Text == "" - || this.textBoxLevel1.Text == this.ParentForm.SystemConfig.User_Level2_Name - || this.textBoxLevel1.Text == this.ParentForm.SystemConfig.User_Level3_Name) - { - this.UpdateLevelNameDisplay(this.ParentForm.SystemConfig); - } - else - { - before = this.BeforeTextBox1; - after = this.ParentForm.SystemConfig.User_Level1_Name = this.textBoxLevel1.Text; - this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); + this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); + this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); - this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - - if (before != after) - this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.ChangeL1Name, "", before, after); - } - } - else if (e.KeyChar == 27) - { - e.Handled = true; - - this.textBoxLevel1.Text = this.BeforeTextBox1; - this.smartKeyboard.Hide(); - } - else if (e.KeyChar == '<' || e.KeyChar == '>' || e.KeyChar == '|' || e.KeyChar == '"' || e.KeyChar == '?' - || e.KeyChar == '*' || e.KeyChar == ':' || e.KeyChar == '/' || e.KeyChar == '\\') - { - e.Handled = true; + // Part11 + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.Level1Name, "", before, after); } } - private void textBoxLevel2_KeyPress(object sender, KeyPressEventArgs e) + private void labelLevel2Name_Click(object sender, EventArgs e) { string before = "", after = ""; - this.EnableWhenUsingKeyboard(true); - this.textBoxLevel1.Enabled = true; - this.textBoxLevel2.Enabled = true; - this.textBoxLevel3.Enabled = true; + before = this.labelLevel2Name.Text; - if (e.KeyChar == '\r') + DialogFormUserEditorKeyboard keyboard = new DialogFormUserEditorKeyboard(this.labelLevel2Name.Text, "Level 2"); + + if (keyboard.ShowDialog() == DialogResult.OK) { - e.Handled = true; - this.smartKeyboard.Hide(); + this.labelLevel2Name.Text = keyboard.RetStringValue; + after = this.labelLevel2Name.Text; - if (this.textBoxLevel2.Text == "" - || this.textBoxLevel2.Text == this.ParentForm.SystemConfig.User_Level1_Name - || this.textBoxLevel2.Text == this.ParentForm.SystemConfig.User_Level3_Name) - { - this.UpdateLevelNameDisplay(this.ParentForm.SystemConfig); - } - else - { - before = this.BeforeTextBox2; - after = this.ParentForm.SystemConfig.User_Level2_Name = this.textBoxLevel2.Text; - this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); + this.ParentForm.SystemConfig.User_Level2_Name = this.labelLevel2Name.Text; + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); - this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); - this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); + this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - if (before != after) - this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.ChangeL2Name, "", before, after); - } - } - else if (e.KeyChar == 27) - { - e.Handled = true; - - this.textBoxLevel2.Text = this.BeforeTextBox2; - this.smartKeyboard.Hide(); - } - else if (e.KeyChar == '<' || e.KeyChar == '>' || e.KeyChar == '|' || e.KeyChar == '"' || e.KeyChar == '?' - || e.KeyChar == '*' || e.KeyChar == ':' || e.KeyChar == '/' || e.KeyChar == '\\') - { - e.Handled = true; + // Part11 + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.Level2Name, "", before, after); } } - private void textBoxLevel3_KeyPress(object sender, KeyPressEventArgs e) + private void labelLevel3Name_Click(object sender, EventArgs e) { string before = "", after = ""; - this.EnableWhenUsingKeyboard(true); - this.textBoxLevel1.Enabled = true; - this.textBoxLevel2.Enabled = true; - this.textBoxLevel3.Enabled = true; + before = this.labelLevel3Name.Text; - if (e.KeyChar == '\r') + DialogFormUserEditorKeyboard keyboard = new DialogFormUserEditorKeyboard(this.labelLevel3Name.Text, "Level 3"); + + if (keyboard.ShowDialog() == DialogResult.OK) { - e.Handled = true; - this.smartKeyboard.Hide(); + this.labelLevel3Name.Text = keyboard.RetStringValue; + after = this.labelLevel3Name.Text; - if (this.textBoxLevel3.Text == "" - || this.textBoxLevel3.Text == this.ParentForm.SystemConfig.User_Level1_Name - || this.textBoxLevel3.Text == this.ParentForm.SystemConfig.User_Level2_Name) - { - this.UpdateLevelNameDisplay(this.ParentForm.SystemConfig); - } - else - { - before = this.BeforeTextBox3; - after = this.ParentForm.SystemConfig.User_Level3_Name = this.textBoxLevel3.Text; - this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); + this.ParentForm.SystemConfig.User_Level3_Name = this.labelLevel3Name.Text; + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); - this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); - this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + this.ParentForm.ChildFormUserEditor.UpdateAccessRightComboBox(); + this.ParentForm.ChildFormMainDisplay.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); + this.ParentForm.ChildFormMenu.UpdateDisplayUser(this.ParentForm.SystemConfig.CurrentUser); - if (before != after) - this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.ChangeL3Name, "", before, after); - } + // Part11 + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.ParentForm.SetTrackingHistoryData(DataStore.TrackingParameter.Level3Name, "", before, after); } - else if (e.KeyChar == 27) - { - e.Handled = true; - - this.textBoxLevel3.Text = this.BeforeTextBox3; - this.smartKeyboard.Hide(); - } - else if (e.KeyChar == '<' || e.KeyChar == '>' || e.KeyChar == '|' || e.KeyChar == '"' || e.KeyChar == '?' - || e.KeyChar == '*' || e.KeyChar == ':' || e.KeyChar == '/' || e.KeyChar == '\\') - { - e.Handled = true; - } - } - - private void smartKeyboard_OnXKeyClick(object sender, EventArgs e) - { - this.EnableWhenUsingKeyboard(true); - this.textBoxLevel1.Enabled = true; - this.textBoxLevel2.Enabled = true; - this.textBoxLevel3.Enabled = true; - - if (this.smartKeyboard.TargetInputObject == this.textBoxLevel1) - { - this.textBoxLevel1.Text = this.BeforeTextBox1; - } - else if (this.smartKeyboard.TargetInputObject == this.textBoxLevel2) - { - this.textBoxLevel2.Text = this.BeforeTextBox2; - } - else if (this.smartKeyboard.TargetInputObject == this.textBoxLevel3) - { - this.textBoxLevel3.Text = this.BeforeTextBox3; - } - - this.smartKeyboard.Hide(); } private void labelTitle1_Click(object sender, EventArgs e) diff --git a/INT69DB_2A/Forms/FormUserGroupEditor.resx b/INT69DB_2A/Forms/FormUserGroupEditor.resx index ddf2870..a81a66e 100644 --- a/INT69DB_2A/Forms/FormUserGroupEditor.resx +++ b/INT69DB_2A/Forms/FormUserGroupEditor.resx @@ -862,420 +862,6 @@ fEWxEJVgwxys6MzCv5AmxH+FsM1M43gWFGn6Bnx1L54JUQk2zMGKziwo0lyffrUXlRUIXVBUVoit9k51 sKgzC4o0a+MjP3V24G548+rilVJRQ4DIFgZsmOdqFhRpYE1cBHfp6/cxplxsYcAmBkFnVp3mb7GQxpyF NObMpzSusD+gYrSgw75pZQAAAABJRU5ErkJggg== - - - - - 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 - 6nc2xOg6Bq4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAAHUAAAA7CAYAAABFVsWgAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH - DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp - bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE - sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs - AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4 - JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR - 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd - li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF - ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX - wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF - hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55 - 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ - VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB - 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC - qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE - j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I - 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9 - rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG - fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp - B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ - yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC - YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln - yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v - vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp - vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L - Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA - bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z - llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW - ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s - xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6 - eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw - YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR - XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm - WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl - xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2 - dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8 - V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za - Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v - Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb - PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/ - 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h - /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr - XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS - fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+ - tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/ - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAABKhJREFUeF7tnElLK0EQx/0GIrgf3Pd9XxONJm64HcT9oAdR - BMUNRERwB09eVEQUDyqKCB78aO8L1Hv/hg6dmXqaPJfkNXX4MZNMd9WYX1fPeKk4+hVHgl24pLa0tFBV - VRWVlJRQYWEhFRQUUFFRkRBF4EGTn59Pubm5QZz+QFCq11tLlZWVVF5eTmVlZUoqAkIqAuXl5QlRRovM - yclRx6ysLEpJSXHJDUqtqKhQQrVMVGt9fT01NDRQbW2toq6uTogy8IDiQ+FBblJSEsXHx7ul+v2dqiJR - 3sXFxdTa2kpdXV0UCASoo6PjTxV7yePxqKMQXeAGhYYizMzMVJUKqbu7u6FSsQKys7NVpba1tdHAwAAN - DQ1RX1+fEuvz+YQo097eroCfxsZGtaOiUlNTU1W1uqSinFGlGIwKHRwcpP7+furs7AyujubmZiFGqKmp - oerqauULj0g8Kl1SUc4wj0EQCbFYHQhg7uVC9IEL/b6DyoUvuHJJRSVCKuSivPVz1HxJEmIHLRVCe3p6 - qLu72y3V6/WoFyQMhEysAIjGZy6oEF20VL/fT729vQqXVLzZ4t8YlDbOUa0iNXYJWypelDBBpMY+ItVC - RKqFiFQLEakWIlItRKRaiEi1EJFqISLVQkSqhYhUCxGpFiJSLUSkWohItRCRaiEi1UJEqoWIVAsRqRYi - Ui1EpFqISLUQkWohItVCRKqFiFQLEakWIlItRKRaiEi1EJFqISLVQkSqhYhUCxGpFhK2VPQmxATI1F3O - RGpsgg51cKP7KLFS0UcJ7V/RHg39fiEVR5Eam2ip71aqz9eumheiMyUGNzU1KdBXCaK/C+6GPwOXg4Ob - GwlczJ8CPQnhCd3o0AwUPSTRINQlNRDwU1pamhKLJlnoJorVgMkA598Bng1fCZeDg5sbCVzMn0D7KC0t - VX0k0eV1ZGSExsbG3FLRizAxMZHS09NVt2c8X9GrEKC9nT4CSP8MOo4T5EBjYg78EX/DvE+OcHJzcU10 - jvfyADPXV6JjIz+komKx9U5NTdH8/DwtLi7yUhMSEig5OVmJRRBsv+giqo9YGeGCrUHDXdfbu0a3PAV4 - lkeCnmfG03m4ezDHRZrXmUdjxjcxf4dw4GJokBvvOpCJXsxzc3O0tbVF+/v7CpdUU2xGRob6A4aHh2l0 - dJQmJiZofHw8CD6bmNc+wjkXTE5OqhXnZHp6OgRuDOaa6Jhcbs1HuZ05nTnM78LJ96+Y9wlwPzMzM7Sw - sEAbGxt0fHxMZ2dndHl5Sefn53+XijdgPDOwV8/OztLS0hKtra3R8vIyraysqPP19XUWXHPCjePATb4H - N8ck3HFOzByRwMUCn/kN3gM5Nzc3aXt7mw4PD+n09JSur6/p4eGBHh8f6erqKig0RCqAWIDVuLq6Sjs7 - O3RwcKCOe3t7KuBnODo6CsJdDwcuRiTxnHP1d+bnj9AxuDgAVQTMa5Fi5kCsk5MTJfPi4oJub2/p6emJ - Xl5eQmRqQqRqbm5uWO7u7tTqADg30d9/hHOeCTeeg5ur4cY74eZpuPEc3FzN/f29+uG5eZFgxkNFPj8/ - 0+vrK729vbmcmbBShf+ZOPoNW3IHcw6DsF8AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAAO4AAAA7CAYAAAB8Hba+AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH - DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp - bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE - sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs - AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4 - JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR - 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd - li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF - ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX - wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF - hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55 - 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ - VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB - 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC - qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE - j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I - 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9 - rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG - fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp - B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ - yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC - YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln - yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v - vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp - vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L - Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA - bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z - llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW - ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s - xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6 - eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw - YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR - XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm - WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl - xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2 - dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8 - V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za - Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v - Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb - PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/ - 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h - /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr - XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS - fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+ - tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/ - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOxAAADsQBlSsOGwAABPlJREFUeF7t2UkvbFsY - xnFfQN+Uvi19T+m7KkX0QogIMWFCCGIkrkQIMyYGxEATEQOJb6BvDkEIX+AkZ2J+v8B777OSXaWoe+6Z - KLXkGfxSp2ST/drnX2vtzUf+9hEi0suHcMvKyiQ7O1vMZrMkJCRIXFycxMbGSkxMjDZwvvHx8er8k5KS - JDk5WVJSUiQ1NdUB7/F1zJmYmKjVrNHR0Q7GrL+bV+dZ3/vO19a4ppGRkRIeHi6hoaESFRUllZWVLo2C - S7iFhYWSmZkpGRkZ6heA4fHLMYb3VsZ/XOOCAs4ZcP64gL9jzOjtcxr+a17M8X/zfpdZjXndzfiWTvMa - c+JDBgEjWpPJJP7+/lJeXu4+XIvF4og2PT1d8vPzpbi42KGoqEgdQ0SfB4tnQUGB5Obmqg4RckhIiAQE - BMjg4KBruHZ7rWO7gYMrKiqkvr5e6urqxGazSXV1tVRVVRGRB2BrXFpaquJFuNg2BwYGSnBwsGxsbDjD - ReU4ICcnR0Xa2toq7e3t0tTU5IjXarWSF8K1ec/dceT9ampqHLA1RrjY7mPbjGj9/Pxcw0WwWHFROVba - trY2aWlpkdraWvUJgBUYD63Iu+DiuuPuWNILbk3xkBi3r+jTuI1dX193hltUZJG0tDT1DYgV8eITAO/f - 7r2J6POhNzxjysrKUqsuFlR8IGMBdVlxESjCLSkpUcs0tltYafFQyt0PJqLPZYSbl5en7nmxoNrtdtnc - 3HSGi5qxVUaoCBbxom4s1+5+KBF9LiNcvOK5E541NTY2yvb2tmu4+JstQkXdOJDhEn0dhkukIYZLpCGG - S6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGG - S6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGGS6QhhkukIYZLpCGG - S6QhhkukIYZLpCGGS6ShPw7XbDYzXCIv8Yfhlqlw8Q0ItqqqiuESfSEEm5mZKXl5eapHhNvQ0CBbW1vO - cCsqyiUpKUkKCgrU6osD8cpwib4GgkW4CBg9Itrm5mbZ2dlxhoulOC4uTrKzs1WspaWlisViUTETkWcg - VECL6enp6t82m01aWlqks7NT9vb2nOHa7XYxmUySmJgoqampqnR8I/bYRORZ6A/RokXEjNW2q6tL+vr6 - 5ODgwBluR0eHBAUFSUREhMTGxqqA8ZQZcO9LRJ6BW1bjFeHiYXF3d7cMDQ3J6OiobGxsOMOdnf1L/Pz8 - VLxhYWGSkJCg9tjvl3Ei+lzGVhm3rFarVXp7e2ViYuLfRmdlbm7ONVxA2b6+vhIaGqrubZuamtSeGrUT - kef09PRIf3+/DA8Pq2BXVlZkdXVVDg8PVasu4f74canuc7FM49HzwMCAjIyMyPj4uExOThKRh0xNTcn0 - 9LQsLS3J2tqa+tvt/v6+PDw8fAwXfv36qWJF9WNjYzIzMyPz8/OysLBARB6yuLgoy8vLsr6+Lru7u3J6 - euoSLbiEC6+vr/L09CSXl5cOFxcXcn5+rpydnXk1nCPO9/r6Wm5vb+X+/l4eHx/l+flZXl5eHPAec+IX - cnd3Jzc3N3J1deUyqw7z4nxx7oB5MQ/mejvvd5kV5/jdr+3JyYkcHx/L0dGResUM8L7TD+ESkbfzkX8A - aDYV804BSLEAAAAASUVORK5CYII= - - - - - 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 - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOxAAADsQBlSsOGwAAA7NJREFUaEPtm0kvZGEU - hm3M8zzPhJjnGBfmeWZhShAWBDGEIIZE0MQsodHSId3KtLLwA/yyt70nubhdtejlR39JPdetiu/me845 - 99bmLTvg9fWf8Ho0f2CxWPDy8iJ/Ly8vcXp6iqOjI+zv72Nvb08Zdnd3sbOzI2xtbWFtbQ1zc3MYGxvD - 6uqq8Lfb6/H9DQWfn5/x9PSE+/t7XF1d4ezsDMfHxzg8PMTBwYFSGA2g+ObmJpaWljA6OoqWlhZkZGRg - amrKtixFHx8fRfL6+lo6yqqxYsvLy1hcXMTCwoKSzM/PY3Z2FuPj4+jt7UVZWRni4uIQHBwsXTfJUvT8 - /BwXFxc4OTnB9va2VGliYgLDw8Po7+9HX1+f0vT09KCzsxPV1dVIS0tDVFQU/P39RdgYaZF9eLjH+vo6 - NjY2pIuTk5MYGBiQxY2NjaitrUVNTY2SUM6AHc3Ly0NiYiLCw8Ph6+sLDw8Psyw7OzMzg+npaYyMjEiV - mpqaUF5ejpKSEhQVFaGgoEB5cnNzpavx8fEICQmBt7c33N3d8e3bprmzQ0NDGBwcRHd3t3SztLRULpCT - kyNkZ2crDfeYmZmJlJSUt/vVy8sLbm5u1mNMya6uLrS2tqKqqko6ypGwdWFVMWRjY2PfZF1dXbGysvIu - e3dnkfuTcHwrKipkdDkWti6qKv8ke3t7g/b2dnR0dMgI81790rJtbW0i/OVlLRYtq2VVRstqWS2rZZVF - y2pZLatllUXLalktq2WVRctqWS2rZZVFy2pZLatllUXLalktq2WVRcv+97KMBH01WU9PT2vZm5vfkuRk - dxsaGiQW91llk5OTERMTg6CgIJF1cXGRiOKb7K9f16ivr0dzczPq6uok3VZYWPjpZBm7TUpKQnR0NAIC - AiS3aCX78+elCDLsyBEuLi5Gfn6+ROSysrI+Bewqc4sJCQmIiIiAn5+fRPmcnZ3Nst+/nyA1NVWqw4Ws - UHp6uiwmPFcZ7pH7ZxqVI2yENNlVR0dHc3bxx48Lyecy4MhEJ6tjwAuojLFP7pvjGxoaKl1lGtXJyQkO - Dg4Sp3+TZVAzMDBQKsJ/DgsLk7xuZGSkwEKoCvfHseWe+VAyMsYcX4ra29ubZQkfTj4+PgIXsDpMYvNG - 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 - vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp - vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L - Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA - bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z - llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW - ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s - xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6 - eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw - YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR - XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm - WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl - xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2 - dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8 - V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za - Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v - 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 - rkJggg== diff --git a/INT69DB_2A/INT69DB_2A.csproj b/INT69DB_2A/INT69DB_2A.csproj index 9e418e8..8fb064a 100644 --- a/INT69DB_2A/INT69DB_2A.csproj +++ b/INT69DB_2A/INT69DB_2A.csproj @@ -49,6 +49,10 @@ False ..\..\..\..\..\Program Files (x86)\Intech\InModbus_V2.0.2.0\InModbus.dll + + False + ..\INT69DB_2A_ImageDll\INT69DB_2A_ImageDll\bin\Release\INT69DB_2A_ImageDll.dll + @@ -307,14 +311,14 @@ Form - + DialogFormLogOn.cs - + Form - - DialogFormPasswordKeyPad1.cs + + DialogFormPasswordKeyPad.cs Form @@ -382,11 +386,11 @@ FormEquipmentSetting.cs - + Form - - FormFactoryReset.cs + + FormInitialization.cs Form @@ -400,6 +404,12 @@ FormIOTest.cs + + Form + + + FormOption.cs + Form @@ -638,8 +648,8 @@ DialogFormLogOn.cs Designer - - DialogFormPasswordKeyPad1.cs + + DialogFormPasswordKeyPad.cs Designer @@ -686,8 +696,8 @@ FormEquipmentSetting.cs Designer - - FormFactoryReset.cs + + FormInitialization.cs Designer @@ -698,6 +708,10 @@ FormIOTest.cs Designer + + FormOption.cs + Designer + FormSystemSetting.cs Designer @@ -756,12 +770,6 @@ - - - {0E385F13-0B8B-4E88-B19C-6924AEA4F3F5} - INT69DB_2A_ImageDll - - diff --git a/INT69DB_2A/Part11_UserManager/UserManager.Structure.cs b/INT69DB_2A/Part11_UserManager/UserManager.Structure.cs index 6e990b7..998e818 100644 --- a/INT69DB_2A/Part11_UserManager/UserManager.Structure.cs +++ b/INT69DB_2A/Part11_UserManager/UserManager.Structure.cs @@ -212,7 +212,7 @@ namespace INT69DB_2A.Part11_UserManager public Int32 fadmin; [MarshalAs(UnmanagedType.I4)] - public Int32 expire_period_pw; // password lock + public Int32 expire_period_password; // password lock [MarshalAs(UnmanagedType.I4)] public Int32 expire_period_account; // account lock @@ -224,16 +224,16 @@ namespace INT69DB_2A.Part11_UserManager public Int32 flock_status_password; // password lock (need to change password) [MarshalAs(UnmanagedType.Struct)] - public DateTime_t register_date; // date/time when the user password was registered or changed + public DateTime_t password_register_date; // date/time when the user password was registered or changed [MarshalAs(UnmanagedType.Struct)] - public DateTime_t login_date; // date/time when the user was login + public DateTime_t id_login_date; // date/time when the user was login [MarshalAs(UnmanagedType.Struct)] - public DateTime_t expire_register_date; + public DateTime_t expire_password_date; [MarshalAs(UnmanagedType.Struct)] - public DateTime_t expire_account_date; + public DateTime_t expire_id_date; [MarshalAs(UnmanagedType.Struct)] public MenuID_t menuID; diff --git a/INT69DB_2A/bin/Release/DllAes128.dll b/INT69DB_2A/bin/Release/DllAes128.dll index cb6633131e9dfc855ea6bd420766e28c9e47c85a..1e538944262d4277e467d053292ec00c5a762082 100644 GIT binary patch delta 58 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 I;KiW-1#$vBjsO4v delta 10566 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 M*U+U37Wc{j0}_z+iU0rr diff --git a/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration2.resources b/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration2.resources deleted file mode 100644 index b83f7a248bc3692a85c7da0556579311043361c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39612 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 A)c^nh diff --git a/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration3.resources b/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration3.resources deleted file mode 100644 index 8457312f5a216592785690641d4a182d252dc05a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54165 zcmeIbWmFx(x-GhJ3-0bDxO;%$?iL8{5ZpaT@Zbas?(XhRaEA~qxV!u7oW1XR_l$SX zk9Wqs!5AIGPIBnz}eU8d@`u zDY+O~TN=xndZ^ibHnkNn;^sEwH0I=Dr2V^`W67`HuT$*tghT@f8Q^WK>NhdQ7-+CX9k(%%;fP`^#!Gwg2y>P%+@asfF5 zKXxEnkQ~SocsB*Hf|x*Jz!^8-NE&1VG6b0eXaBxv{;SK?LH7UCrM=|;Mb2#h%bY_5 z|BIaeUjCnRmNED*a%TTu=8WR=U*!Dv^8cLkR0aq{VGp!`G0++=AV=ViMSwPN|Bu%A ze_G*tD+u)AKYIBUc>V3|zppocyI=W#d;h}x%^&+eXZz35^!Go|VusF!aFBn?Mt}m| zQ2)M>0c{T%rlcT=j7We893x9hiKzge8$il{|9fp#oG>5o0c|cUFAM@zM|nRg#{8e1H(jWFg?*tO>F@uWTM^8Gkc5$QYCn`wF@-u6|X05n2c}m4hn^x zqnbPi5?x#@l|o9X&u>bJN<*v~4NI*Gjtc%AE1tL-gPp{DL`7NK?Zw68W|`e_?QQep zQTv28E-0>$IVlNN79wUC^DOXv+CF-$vhxwh4}!$Nj}|1SAVGf!*Z+kY<^g#M$J7oPzgH~5fIZDe;tUF<1z&H~p zGOf)1P8Gi0GRe1xhU^8=(5DQU&*)C8%%rptfpAWrwAeO&Pm7B;aMU-{ad5D+J(noG zx?I}HEH8r!qm{o#99KR~6Mzgx!>npABN!_X{l*zVKUW@&W_Un;c|~@_3!N>f z^6#0$Acb2Zs~t2n648@-*)VXgP@fe;Iye)xRAgKr@5nK_F{^E4J-IIB8yi4V{iwt$?`p4(rsqy9cu4OUVk%A z*z_H`lJPgcSr@twzQ=Iy5Yfq|9{Y7)bL~3rSjc=m*6HFSoL*14pUu1TH>d-DobirR zzxz6lalwvz+c$xc1py%iNf!e*{DF86Bx(R#=ErCcZQDh77l?+2paF#=1zqfiTJwSA z7c`o0^GKPx3T0%3Lwm_gyUJTT*dvVRDgAZ!C44Y1_=%nfkbV3E+E4awQW{I|%l zr7)*MM#*4JP@9E2l+dsc`b7}XP%%V2Ce4cQ=mJZ!J&W)kNca%aLn=N5PU>2`Ne%W5 zS?z|G3n;F_D1#yFeFK!|FZxH_9S60i z)B{Q+h$URIJe9eXjf=EqB{}fRL+2%zvf3xn_n@6|TF`X;ZABV$nRD!N-%eJt;=Mu6 zjjZl*H=j=#i@)1_D zulUcX{Yle1BGjbl(k|le^ls#J8V4kI+BTY1*wbk9O{cT`I|*;@7d~Ie&JQs(7MMry zv7cYWZbfZ69Nwa#}O5(4>k@o6VNZIt4N% zkPX*lfEHdneM7`hnM;)b_#&p-8}%Ot;_^8-s-3wgO6I1fCP_oVLuMoMKQj`E^T|0F zQ*jxCG-UV{2n*Uj<<#|ABA5@|P?yUFCytIVes@aP{E0nOKeUqQ^;R*-EnYEkje3pt zRS6k7M8X`{e97|N}j^JvaRfd3blM^ zVM~dWf}^6eJe>+}2@ma{9HYt}by`i{(u)KpS+|_RN&5ZvD=l?#bw%}TtM&uGgMicq z?IP_C?H|8IT>|(-1@zi=+9iE7M8$g*DHU_YH#2DT;^Fa;bac3jllfx)N3_!j=yDk z>E=u3t-cDILbJ%=C6!OjkIxg9DQb1rSJ$EcB5J%Jo1f%bya_#?bv)iq+m0L=Jf1yD zcD;7Zy>Wj0_y~2Ai&BCj7XlkH7i zZb0>9nh_)Lu9rKvYm)$d&!7@~}SG7}hZ@+L>b2bIP8R~+*K!Hus9ILDR ztEj4|ps4w~E&Xj-T4+Nk(>D^m{B}C8x$kp`rK%d4QL*0)2hu{t2ZIMm!h9yK%(+;0 zH`+F=HqEq{%G%4!ttDM~y;6+_X*cBtmim+W6{&wwA1Nd&I7^jDrLDKvmo_uUy^lYL z+lhaUN2UHEgP>?B+n+yBkg+v%7U$7!Ic<8MyzjAGDwQ*?Rs+i+$vFo!j&SekofE zwA$2!TBnj^lQ>VJWu{jAJqp;&`67jvtSB(u5KxJiZAN#keb&sv|oF4Qi$wj;}( zv^6_Pv`HH~%mW{S1CTKZ1-M97#eOBU?H78-Kh->G{^;d)!+nQs&49PIQJtT!loO-R zQ#0rKd4+41>!iW|cxS1!;R}Nit}Y`NZN)oZ{T{mJhsb^I?`z(_(L0T^W^0^Z6-E_S z$JcdHT2YduleQBhPj8l1lognn>AuvzHJkVzZi?;Vh2RzBB}wl?-&(>^;;PYJsZiFT zyQwpyQTnm9-PM=WYi-hZ@VVSY#--oo6vZBOx%jr|)MC=Ah$oac+2c&w_@nV!<2Sn> zKd@56e+Uw75EBRxIX5*fmNegoZp2RGG>QLW^Wk{di#*loJhbApF1O3A$0mgu{5qK7 zOZxbH=8(B5@D}f__Ls@0?1uDdy;%sCE$2~J8rLXSaaZJwE5XGXo28YP+^Oggh2o47 zUPiB$t2gU%-6@LZP7~wlvO?TWg6mK2igFXrNa(n>*RVGzI#N;NInWa=FCgF zf-e0#!$YOtO4An@DqXHVT{XU%oU1mgzQyAFQgApX+t_BS z+uFWy^T&SgEIoEFc8dRqU)4?Zq@yXx!*2a$0B#RX95tUr{;!}giUT@ZsDNL z-~%a~P>0Ys!IvA^0p`=Uh#4`NYH}rVT#703>8Y-n9p}#5GhycY6F6pwU%tQ8-!zY3 zlKMJ5m4D$fa@~M=?Jr!D)f?`7e`U2;n$hgnELo|l&pe9T9{a`Vj&ajwt@X?;9!cx8 z`jlR1&v)--@AAC6a8@z%1qLel@~Ne7Zw3fB5$vV3oPZ@s@81M5Xjfzc0^ul2iwUc_ z>m8?iI44{;5AqJH3scv8rHW^X7a&ieGSPo~Xp$216$0`rmA!wW`g&G?8v3M4`1c$s zVakXsKlt#k^$Y=MiDco3Qq6^PEsYsYc6N4^$Ip+xacj;5YYfmb@lR|MP95gs{HIU8 zr;ld7nfHPd?CjDHPix$8;yENt-D-LM(5kVp7;@qSQY_e(WdC|6Q1t{_9r`ycb7gF9 z+BnpVCXzKiwRl~|e|fmF>6KD;8=7HVdHk))+b}C0fph$;I=6%O=4i3jc7?BShPQm+ z{QCO>@}~F-MfAYc#<@$%{!pvy@xxg!Dj@-Z0>|J`{98go!nH52&-a(R6RFyU$rJ}T z9vlU-xC+`0){EOCNvOnpSBE$bcW3LWg$n8XZcN;7M_9yX880m4GQI1}&NuoE9)R|3 zg13pHl#DVcy8CSFT3{Gn^l57(Q^NT*Ytr?Wr8A-(@-8m}l9+H+8GgL_gX_e0h1V93vYrD)tXZd4H zg7x_DFdhw8(97!nMkm%d%7U1XO+5BVsojy*uB8NT4@qt*MD?g zc`%%UT$(h&K(7!Dj~W&cK~G1=Ho3_6t1`xPv`9JE{n)UDCZ3jt&t$kShntI$D@_C! z7=Om}j_Vg!`!n{^mtux8L_)r4OyQrT7@6oe>-#Axb_nEe??wEwD>rIw$;K}iq=ykD{pSi5%#QIkkBg}!h4}Nu~e*49$h2e-u zZ&X_(NYhI$FE2-a{*;oE3XP6759EV(`#L+`H4F+iES;Sn?GIB`RgH*<2n-wz#@q+2 z$XTX-Ge1c$r`RsC*y=t4@e&!xC5ce4A$g4FUDtZSmaRLr&s!QAGc&UqI2`OySd+zG zU%&B@5m^NVSfv3ddVYubNwkQ6R4bjc-e@e9(|jVsCbHPmsicZ*kR|^!bis~cuL06U z0w+eUWHb{4Lm#f>H#~?MT3XsG6>Mzm1Lc6&k7nB11W*PE+8Sfq8bJmn`6Q`=p4SI+ zyW{DfBliKb9(ug-{$VJy@Y9c0B2=EPP)(c;HYGkjuz#ShPYK(^)O5Yc{jFb3_At}{ zH@~$id;!7dZqZH63Z1`}3RSR7z3KExWp>O~ri*BR*LiQ!9}3PfBHAd0L;XOR0cW94 z`1$#HvC>r}4{4$^#Gs@)!@bG#{$kt4Naoe~>`(Xf#z`L*j-_8uPmdf8rr&hQ?eWrW z$K%Q6`MI==jN|4{*s9>*V7_#P`a%~DRl4MZV$*1Oy#{M7V`Jmba*COPy88M;Rwj-0 zO8z)VB+?{s!WaU=2ZKDq^CKfjR+N;K(ud(fbh9xrXx>RSxXD6qIOSO8ROmC(8cc@b z0Q)8p^!_Do;p7KAyMRiLDy||daE|P%)9>^mt1Kx&*Y8g@vjPkQ5bK8X8>QcW2#!a7l@YJw$|c@@BOu zHXv*{uUg;Rm-!HLO*3=T(KOz8NIw-9z|v4cjGeW{ry4U@-*lMj^46|@*Ju2tcN;%I z$^3MD=-O#3rG z>hV`}ZSm*Xt#w@OoQd`I^-aP?67gb;v#I71q6oU}Z$(_1@dPr^wB)q4y??67_i4cY z)_p`Phd%&OtTXgD3q>T%g6$&Hbg_9^nnMZYkD;Geo9&%9(hVsqBa@Sp(-qOsUQiIc z1lI<8)w+Aq)Wp*jG=6hb>+*qaZ|T_eC(WsGQBY7&7IShq-*ghGUF9c%PBQ-0B`^4W zJPR^upGTD5Tmkb>>WN)4oYMPRy1J3HDEMrBX0@!N;;Orl1yE2>wKX+=en^C?kaKc! zQc#GnVAqq!J^C*sDP|au?wn#05v8T4%hS))l$iv+z{07!0nagHm6XtqMBWPUYY~?5 z+vP(i_ju0ex4vT@lt<`Rn+-0aO=2jDtPL)jV5CJB4q;L1(d~j!HRzY0Q{aL>iU~9M zViDME7XF)N6zvU^q#PD~e>B`1Jii|@)40!~bz6Vu$c&kUW$ERUt?_cC5RL9!4(>c( zE}hm?X&71|p-x~neUD8kr=Sq*xX?=s`yFbVA%Pve@A3K&Zu?hBol-_cr?>K#t+DSj zRx*%dH0oFcab9rU$)lrkd?dXFStde@nVSaTb;3k5*B|*ImRV$c-;NmP8_4843=+Hb z4GvxwwUKW(KioO5Ob69hPjyqxfBgzQ7l(N~HOYq;HaA7bx?s@ahg87J%L{@t+27wk zc9;+&*?_;RsH|l6!JC6jxZR%#!38-3j-h*Y^J;7^{nI?-J6fq5{NGppF)Oxk2~qK0 zUJ!a5*Ii--JMhq6SaN?dVq*=tew<59a}$=cnxYEZ7}RSIow_#%#8IrTdYx`FRYJi2 zG=Ct;JMCPqjBD*bGOzwvMenC%(5%rq1A(dZQw*)J_{$%EI9L=S__C>~sr&o;EjNF!m7E=| z9@t^o-+X9(Q=f?(`qi>wWxm1{v7lXJ&38lQM6^A`K>NUklB_joOTiDtiJXm#3uoCd z!4)oV79v{=*?j* zmdsc~&wZ=r=8BA{C>+IG5TOdNBhmNWmr zV`O9`BLnT6DK96aAEQr%@esp&kdZ-DQYm3e7FbrXHpvq!wnO!G-RHcuOI&5)DKPj= zc(rn^TWROsmP56&Fi3dYbMuk?ryu(Q+o}l&Z6^CY4UNRM8=}0MuN(4%;kyFM(S6@4 zIh8i6CoxXTx~S$23tVk~nXzdSy44Lzt+-I7HhGzL<+IojFr@}roo zdxMgalHhOxVUZD$kaClD{fIxZZFJ*BV-(c3Mk)4(p^FlR3?2s~cXxLy zD=SymhT1FA*FYJdnn?zpJCm1y+w2t$@kd7<6G~Y|plJ|8)(kG}*|A%$?riTZ(X#HM zCPCl>3~)BxAa9j5$Yr~mD5d*o_b1E2CVSoaPoxu4Nfu5iJGs}*9{SEFOI63t$CK85 z@!yXkEAlWPe{|W5v@|*2!KaPQO-mm>SJUym3~}GVk-5f9&^tQ1a9q@SxTTXod!&vk zuibRFU|6^qXzdrBfMQ{7BbnWofr5VH5t|)D`7iZmf4cmkVBd5dTdZsSMlm?xNl-0W zgYDj8z(ES4EJgaX+yYyV7*y}6nfVl@U!$w5E3ds9haoAJ_f`_30&;~|t%#MCRTS2X z(KqkmM=3wDP?mvJj9D@lk+<#qESpo;q@d5k)#+NM^N@DUL5%+oBi}r2KR>R82WN_p zLZ)3*7VeNrse~6^@r-U3qlkwa8yks??@@+zm?$|N+*c0nffd#<;4)q}N}8*u$UnRp zJ|KPNCejzic)=6P6IW49EJe@cwZF6)8NvISi?2%10&@))~qKmfdk(+Mo%7fN*h}6V?TFBB^C+RY%>SEh}SQM=?WV@d#CtYx4$uxI$jZ9m_h^S4cd?q+IWz7c98R(cjf)|USDtvH{V zh`d^6L|m&Og^-Z`J$E6>+3gRu>b>Q4&S3gZQ-lK8YiGHk?+){5Z>B+M*obqIVsDi0b$v9X9p83ExR{y`-mmE5v7k>3_?#Q?Q5DWe`=eW&XL9%6pYQYa zn!d(k$RQu>C);W@lJW51Dd|kOJwl{!`N+t<|85gN0YT&ux?jhMj*jjpTTl=HEeKoJ zSVT9A7bPtl#r>&VL$2lT^bf2Bf3l3k!PFBcB{wnv2AC0LDJ|@%r>FN8_f1KaVvUeB zD-54Hs=|5rR8L~>y1^)N^Z+PWm}^x!d{FXSfv7GokBWhTVVt1F^L}*xlww8VANM%c z`}85N-MrJq&rG!%53P&9IArvAty8GV_34`0?ZaDRM<*xCby_`O`OqwjTtZMks&+`< zsePv3xn$h*bBXCcs#2VpssC1Ug!o$sizjh1C16tBbtNUk*Y=;fG1%geWj^hc2pK}o zj~WGj(@*|!2dpS{ZzjIOs0MoS6(qzVW{ty@%61e;^~;=#Bu=iaW$qM@QJcKwVPgYA zun%*%8dZuYkb5sL1;dC-=K`H9I&+=cfFTMHt6uZtRlEgezeSMbuvy@~TE4WjH0&~Y zvcQ!n#}O7niDSO#Ms{DH7!W{f%MS(RenwuH;r!bj>B%)+YVka*3^nrQVX7^f>Bt~; zQpaiX{{H^;deE>@Ein<^*5PN?z zVq#+A<9i*aYfDdQH8nMHv9YIS-}VJn>fZlxTd?aTW$R@8$B>Z-hFh5>R5>w-oa0Vi zB(ql{puJudeCCf$N|GFykcsecc{YB1UR(;kbgdK=)HUbgeohitK%Fr>+k!7xDGQHt z{@$cJ;Z_)^o-II8TiTxsOJ=d|paCqlk^fW`9xc5%!@X+e5sI50ZEogv#Jcxpre{{L zCp*3aoW?6%``IP$`T2R{q-Qlu zs%2`U#816C*xY?;@)Hvis5N(l3V9Jg2Y0qNaZX}@OezYW%mTEWl^IYIR0C6?_l3)x;!ne^RpLclVsQBOc~*cl}lW#>V7J* zl9J-%KUg1tWy;?*KQfCz^{tlbrT!;d8!F8cSSEA`t{$*^;s$dgN=(0>Vy@K%7RCfblQ3)62QtJcm)pAtJS*7)<_3PQa@zSJ#>*5QAXla4CxGX7@3Au{k;kdkn3UOx^-E(7y&#r>o21jsUXkENna*oie@2RK|i8xZ_s$4!SNNe=_Cs4ly z@IdA1>B*7JNb&eIJt!4UMo8{^RL8ZPgYQgcb-rRwY~dXBk*k-S+$hVJHS^5WRd%5= z+?7=4el>)T4)e2p>+9J&p-N6>B`!k&zv<1n@PfmflU9?%--`tlOFVba> zZ1-rd{z0kQ<--`y@3p6>lZ7$6Rg&9J!e@?Rs=`qJ-ih(vb@AwPN^yERF|!^IUCFRw z8t=olxBg7p`d5n*Oy9N9P}$Jx#$T;1Eqr{xS+AX~P2_d20eptObG!TRmn%KtlL{!q znU1^K{h$`gR4YHlF3Cb81uibmKO42X6ZQ_rsHJId+xXAR)w@SjXX0$e=by<@%B_< zX@=`sq=zwaLYHr3^K(1S)GQ(SXQ7f}3Z}Sa*%4VTn``AcP*>#fUN5q9k8>2Td`|3Qosmc_Xg1&aDg+%;L0L9!sZ7VQ^doka zLlRd^)y`z`chHrn^{5sGniFkmTeOvux-LF8=1|t9iRL@$OGL;0(zBYO`Jb{y&>g7S zGROw0#Yj2D+yMm~7nCno{Kh6%32p%*^UF=?!ggX7R6e^qyOXo=^O3xLe@4rk^+MAb z%Wv-TkjBl6i-^Qj4Ox^^m^cR5|=`eZ|Tvk~QAaxtw=Efl3X_TCF^-1+h`?xJe~m59-*a%9q@c(=IB zvnY)(!ylA;A9TBv(SVJ$O?VkC{=EEa*5K(Ey^t*`j(kw}SG|tb)*rU%$H<>FNuNyh z{|sQ4sOfgtqQiU`DCa=*yZW>+=RKu%hka)qg_^oLHqy}eD;8)nDLXNu_QaH7Jw7TU z8|x=6*YY)tpP|(9Zq``xLBfGuTFUBC1qs=d3VKRKFeJ;4*Rz3P%5uzx$8JN_u$cPeowV$5xF!rUx4hCM-IQkac~b|| zwkHPN%pcM_(@IJC#*<~LRK)fVt_9R@9X8<%QKgozBdVk^{u2JH*>grFtw5?>Gp2QS5@kwlj}+4^iWlFfZhgCj-_cD{vbA@;sKN)! z!TU>Bz{G?e&zO|D%XVRHA#6~YhnlK*wzS1EFea^SJxld?-Ok?})Cxny#5f|HD)y&s zy^cHSpvwonigN4fXp5Q8{GON5q54xTUv>5D={cHjfx%()Y|~FUpIkoHDkh{iG59?Eua1{KPGgL%8^Xn z)Y)7%kj+4I&(6;+f3c5_Ol#w3EO+&+e@)|GuMWbH58M$+)9kadwhH|wDAB?_ z<^YAC5-SSHDEGNd`_7p3YcPPm)Q=>(^VF_Q+h65X$Fy7y7q(BDdD)@*!^z z8=;Nj_;OQHz6<)f!nqQ|=O#GoZI)#j7P34$cAO?#Qie6jYB00NvvhxzL(?WW_ zi#-8MgHT=wB^ekJofZ!R{vQCdY;35{Qnu_Dr5{>BhL^!}wS7entC&>S{MRmyVs%YW1uBm4ukmu#y^T?e}2TG_YG}Xfj(9C67qc1i2H+93dIx}k zH~>sFIYt!w@!xP;y2A^ej>S~d?+h;BjlO$cVL+f-TBON4!FEM21(uf3dngVEufX-{ zc+p@+K<#ekXp10*%7)}Au;l9~_Ba|BNQ%uE0^lq?VJ5?GTN&x`+ttktkoONqK{Iqz zyQ`fM-USF1lPhcE&EiC3qcYsEhlCkfJBsN1i!@Z1g0B9yryR zf0AaRmbV|Ja8h{u zSs0(UI^O+AW2VwK3}%Pe@cHCs!$YeAL-yh|Uap7&nydMQ-eLt6N2M7%-NtFtPhT%s zw>?$7BwIbrBNQ7l>nEcL0+W=`N=K5vd}0MC56L(0__^tUIc+?CE&UG1zhO6Zw^qT* zVplh(7=e-V`7D0wpoAu%#C$G}uX_0UVifeT-ICfUcI}6Cq@*Ho!$&R#{l-wu^+c<6 zd~y{4??}c+8ckzav*x~gUyFM`GgnQ2cp|?rpuoYIol=mu0+?h}g|>V3@%FG0iuuoq zu>%?^z90T`xw(aHfeA&@zPsg++!ZYHdlBXQ+*7B<*ouB1_YWQHqS^aE43)DVBO0TMiwF2{jTKh5Y!RPcOfhAr z9j0_~;-M_3=Uwzy4|eIpHul)))M-y$uf2~=)2ytV!kqhcGFuM7hWW1Idi$k`AV$>m z`|s+Bo;sNCQd1{IXMWw)LN`Z*?aDK9RUdfw@KRt76CAQv5{skGIIGx4mBy1 znkYvA@lZy)eX1iSF=cKvtH{%U+8lezNjE7T(4@#50vPzhlt()~G+N*5WRU^p7f(lK zQrZ2wmvI!kaba|Lc$gR)hJ&!OplQCPi2fNII{H*>@|dzY;8>xS`TJ(ayiQ4#VeQrGDIdymmH*oLruCpyWtN{bgEa|yLEVLV z8;(++@nu8U0fN$5fj%&iN72_sOcisrf|e28EE)E3!`YgufS@qnz1-mpaNETdK3~tV zng;Tn=>N_zm4S;v)G!CLG%Md*j>4L7n8mJfr)IxuewNvn{xnnB%4Au=+g0+F_`Glp zh#o>+xmqJ1u5I;PJLmb0xfCuTY*(7IH6DVFk;zx$uPV)S@XNL#+9^^~&#dI90&-1t z_8X*Zbmf(Ypz5D}CZ|tMPDW_Y=TBk8PkP^?u5$+oi(H6rBT|diwriDtWwSlT;{&R$ zS8jPxFBbj!P%*g|v&?O+TkcCGJd;f5wc_{10fDtCG?vI+Lg_}uh^WKpcp?@(u;yt3 z5f~_dxfX@W1-AT|OI-!#yaXG9I>=-6l42Y0e)e1P6bZ)To%#%%j&%g`H1vZ=Akbv< zU5VFrL0@$|!{QYyL^-m+xS?o5 z)yZ-?XUF7&4RmuRg==_$D5L{Z=UIp4Bn1$nku8+6=dP9O%RO*K@mW4Q_z+Wa+nN`J z#MrDfOGn1+!I?e})BmHIVWD-$1;U3)8q>A4!iK*W7lli`sMthSo=5;+cP)xOcw35| z>PgSd-cIr#jY-=c(cW+SY>^@*FUvJ9*RK=4)5X0=VEJqAXLE#k6{e)31SxTu_)8#6 zs>-Jyuq$M#FR5~m8xzU1mD>vAF~gP_-$>`;@~dYg^9u@N)+`Tr9S8I(MFc=|4@OY* zsVDqxpE!u=ECSO=5m%WlzJ*G=7yCXrc2qj(b}Ya}d!VX~Zu##rXUZ9FkE_$C-ju}v z(FZ(a#vs%ruIlq!VDt48KTphro*>>AB@*&;&p)5%FK5G&CLltiA{?DEv#{lJjVOS5 z?{CK*r^XczJ!;@Yw}{A!ai|w2N}X#?$EDpK^n_%7E2!Ebh0wQKXmxT*`Kq-<$>CHqrLmGNumEM}>0C4ZCE@LKwO zRY!FOK~mBd?y7z#wf)z^L2VC40t=ZM%9uBQ!l~Oe&CTJ?-2rFF=Bv+5vfp1*kEFi% z+vM{%o(}zVjYnQKNXo@OYcc|RF#N@0BlIH;At5(z$5FUB{skZEvaVTIbhl!mI*+JB zYaFg-4Z~*_8tk_?SvD(GRc7Muxyg0=bfc)tYvq4B^APw}gSd^t5*@h$k7lnhqLKt`CZGS7~ z8by~<40>1?Yr)zm$LKG-mX1oo&S1FT7KlJt5I;40T6hWX0K*?v@Uwh=2jL+nzMzWD z0^wqNXSc~tyEE-n7FC#p!Sf@}$BB3hUvZ8Ztf$?vJc7?QpZ5=;F~c$>l0BUb%s;^} ziwVhNn~!Ja4CPy9T~WCz+z_5(o}mxvKD+(^*3b_blvp}b>VM-jwbA^&;DX?rsGITe zsPUxEJ+4j`#oUqX0CA3aHFqa8c^Kq>@lZ7@h7P8ogK6ks8akMU4yK`lY3N`YI+%tIrlEsr=wKQ;n1&9fp@V7Y zU>Z7@h7P8ogK6ks8akMU4yK`lY3N`YI+%tIrlAAs7XK8G_}`!u@!wGr0MpRH5DqYe z0}SB+LpZZ7@h7P8o zgK6ks8akMU4yK`lY3N`YI+%tIrlEsr=wLN;uo^m84IQk84pu`4tD%F{(7|fxU^R5G z8ah}F{r^wBbg&vaSPdPlh7MLk2dklj)zHCe=wLN;uo^m84IQk84pu`4tD%F{(7|fx zU^R5G8ah}F9jt~9RznA?p@Y@X{Xc*}K41t37{URDaDX8kUZTNq0eH0K#*Zd3X;f(1c-o$JF>KtmI+F6)|0q zpe7?oB+#F51O|{FeFMz=gwXrDowYCRPPZG!Zk4a+_2w1r4;-K_%zdeJO82NE-i=+U zEU~FgWdG}x#@khoQwdur(EIZ!Xg-m5mRER5$Yoyo-cLP;6We&8t`r`Ty`S08)2~j& zT@QmoLO+o~e(cU-%53|w3UKqim4ahH&Wn80@2ao7-a;N0o}R9`9|j#kg3`*lZ9AQz zRpMwBpyvabg@)b%neju?4q*Y8jju#70GBjV#>B}vP*kn9xl>1gK;|bq<+$;GPv~`c zF#gAh`@;#ElnpThQxuS&XdEpx4ycP^2n)DfgG3WVe;5#pEL#xJ0?E`VA_fqk(KtEs zDiFv_x&ZAX2vkd@3J)}i7Wix6CIOEUu;GB60@zQ2r;dNAX|X@7%kzGxeiQI2{Ps#D&W2Vnj z(vn@Lmp}*vD1$}v%-eZ)9$hHOTj$vfi2(#szyLxJO*tSc(P0Gw75jW&?>qXm$TL!R Vh)+4dV@Z&-xPn-Ph(Q3-{{<4w7-j$f diff --git a/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration4.resources b/INT69DB_2A/obj/Debug/INT69DB_2A.Controls.ControlCalibration4.resources deleted file mode 100644 index 3b6f3b54d31850be02ed0b3fcb65f4a0bbf3d789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68274 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