VmsOprMain.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <tchar.h>
  5. #include <cxFormats.hpp>
  6. //---------------------------------------------------------------------------
  7. #include "AppGlobalF.h"
  8. #include "ITSDbF.h"
  9. //---------------------------------------------------------------------------
  10. USEFORM("PLUGIN\VMSM600M\VMSM600MF.cpp", VMSM600M);
  11. USEFORM("PLUGIN\VMS0300M\VMS0300MF.cpp", VMS0300M);
  12. USEFORM("MAIN\FrmInitializeF.cpp", FrmInitialize);
  13. USEFORM("PLUGIN\VMSM800M\VMSM800MF.cpp", VMSM800M);
  14. USEFORM("PLUGIN\VMSM900M\VMSM900MF.cpp", VMSM900M);
  15. USEFORM("PLUGIN\COMMON\VMSEDT0MF.cpp", VMSEDT0M);
  16. USEFORM("PLUGIN\VMSM500M\VMSM520MF.cpp", VMSM520M);
  17. USEFORM("PLUGIN\VMSM500M\VMSM530MF.cpp", VMSM530M);
  18. USEFORM("PLUGIN\00.FRAME\FRAME_VmsMsgListF.cpp", FRAMEVmsMsgList); /* TFrame: File Type */
  19. USEFORM("PLUGIN\VMSM400M\VMSM400MF.cpp", VMSM400M);
  20. USEFORM("PLUGIN\COMMON\VMSFORM0F.cpp", VMSFORM0);
  21. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateListF.cpp", FRAMEVmsStateList); /* TFrame: File Type */
  22. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityStatusListF.cpp", FRAMEFacilityStatusList); /* TFrame: File Type */
  23. USEFORM("PLUGIN\VMS0600M\VMS0600MF.cpp", VMS0600M);
  24. USEFORM("PLUGIN\VMSM420M\VMSM420MF.cpp", VMSM420M);
  25. USEFORM("PLUGIN\VMSM700M\VMSM700MF.cpp", VMSM700M);
  26. USEFORM("PLUGIN\00.FRAME\FRAME_VmsSchListF.cpp", FRAMEVmsSchList); /* TFrame: File Type */
  27. USEFORM("PLUGIN\00.FRAME\FRAME_VmsListF.cpp", FRAMEVmsList); /* TFrame: File Type */
  28. USEFORM("PLUGIN\COMMON\VMSSEL0MF.cpp", VMSSEL0M);
  29. USEFORM("PLUGIN\VMS0500M\VMS0500MF.cpp", VMS0500M);
  30. USEFORM("PLUGIN\VMSM600M\VMSM610MF.cpp", VMSM610M);
  31. USEFORM("PLUGIN\VMS0200M\VMS0201MF.cpp", VMS0201M);
  32. USEFORM("PLUGIN\99.LOGIN\FRMPswdChngeF.cpp", FRMPswdChnge);
  33. USEFORM("PLUGIN\COMMON\VMSVIEWMF.cpp", VMSVIEWM);
  34. USEFORM("PLUGIN\COMMON\VMSWBACKF.cpp", VMSWBACK);
  35. USEFORM("PLUGIN\VMS0100M\VMS0100MF.cpp", VMS0100M);
  36. USEFORM("PLUGIN\00.FRAME\FRAME_VmsIfscListF.cpp", FRAMEVmsIfscList); /* TFrame: File Type */
  37. USEFORM("PLUGIN\VMSM500M\VMSM510MF.cpp", VMSM510M);
  38. USEFORM("PLUGIN\VMS0200M\VMS0200MF.cpp", VMS0200M);
  39. USEFORM("PLUGIN\VMSM410M\VMSM410MF.cpp", VMSM410M);
  40. USEFORM("PLUGIN\VMSM500M\VMSM500MF.cpp", VMSM500M);
  41. USEFORM("PLUGIN\99.LOGIN\FRMLoginF.cpp", FRMLogin);
  42. USEFORM("PLUGIN\COMMON\VMSBACKMF.cpp", VMSBACKM);
  43. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateF.cpp", FRAMEVmsState); /* TFrame: File Type */
  44. USEFORM("MAIN\FrmVmsOprMainF.cpp", FrmVmsOprMain);
  45. USEFORM("PLUGIN\COMMON\VMSMODL0F.cpp", VMSMODL0);
  46. USEFORM("PLUGIN\VMSM100M\VMSM100MF.cpp", VMSM100M);
  47. USEFORM("PLUGIN\COMMON\VMSWCAM0F.cpp", VMSWCAM0);
  48. //---------------------------------------------------------------------------
  49. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  50. {
  51. int nLoginRes;
  52. DateSeparator = '-';
  53. TimeSeparator = ':';
  54. ShortDateFormat = "yyyy-MM-dd";
  55. ShortTimeFormat = "HH:NN:SS";
  56. LongTimeFormat = "HH:NN:SS";
  57. cxFormatController()->BeginUpdate();
  58. cxFormatController()->UseDelphiDateTimeFormats = true;
  59. cxFormatController()->EndUpdate();
  60. cxFormatController()->GetFormats();
  61. cxFormatController()->NotifyListeners();
  62. String sLoginId = "ADMIN";
  63. bool bLogin = true;
  64. int nArgs = ParamCount();
  65. if (nArgs >= 1)
  66. {
  67. sLoginId = ParamStr(1);
  68. //ShowMessage(sLoginId);
  69. bLogin = false;
  70. }
  71. int nRes;
  72. g_nPid = (int)GetCurrentProcessId();
  73. g_sAppDir = ExtractFilePath(Application->ExeName);
  74. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  75. g_sCfgDir = g_sAppDir + "Cfg\\";
  76. g_sLogDir = g_sAppDir + "Log\\";
  77. g_sTempDir = g_sAppDir + "Temp\\";
  78. g_sFormsDir = g_sCfgDir + "Forms\\";
  79. ForceDirectories(g_sCfgDir.c_str());
  80. ForceDirectories(g_sLogDir.c_str());
  81. ForceDirectories(g_sTempDir.c_str());
  82. ForceDirectories(g_sFormsDir.c_str());
  83. String sTempDir = g_sLogDir + "Db\\";
  84. ForceDirectories(sTempDir.c_str());
  85. String sAppDir = ExtractFilePath(Application->ExeName);
  86. ChDir(sAppDir);
  87. HANDLE hMutex;
  88. try
  89. {
  90. String sLockFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".lock");
  91. //String sProgMutexNm = "HANTE_YI" + sLockFile;
  92. String sProgMutexNm = "HANTE_PASIG_";
  93. if ((hMutex=OpenMutex(MUTEX_ALL_ACCESS, false, sProgMutexNm.c_str()))==NULL)
  94. hMutex = CreateMutex(NULL, true, sProgMutexNm.c_str());
  95. else
  96. {
  97. ShowMessage(MSG001);
  98. return 0;
  99. }
  100. }
  101. catch (Exception &exception)
  102. {
  103. Application->ShowException(&exception);
  104. return 0;
  105. }
  106. /*
  107. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  108. */
  109. LoadDefaultConfigInfo("ITS_OP");
  110. //CommLog = new TCommLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  111. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  112. ITSLog->FLogCfg = g_LogCfg;
  113. LOGINFO("Program start....");
  114. if (!ITSDb_Initialize())
  115. {
  116. Application->MessageBox(MSG002, MSG003, MB_OK|MB_ICONERROR);
  117. goto prog_exit;
  118. }
  119. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  120. g_AppCfg.bLoginPrompt = bLogin;
  121. if (g_AppCfg.bLoginPrompt)
  122. {
  123. /*
  124. * 로그인 처리(라이브러리 로딩 실패시에만 프로그램을 종료하자-일단...)
  125. */
  126. g_AppCfg.sSkinName = "Blue";
  127. nLoginRes = UserLogin();
  128. if (nLoginRes <= 0)
  129. {
  130. goto prog_exit;
  131. }
  132. }
  133. else
  134. {
  135. if (!ITSDb_Open())
  136. {
  137. Application->MessageBox(MSG004, MSG003, MB_OK|MB_ICONERROR);
  138. goto prog_exit;
  139. }
  140. g_pLOGIN = ITSDb_GetLoginInfo();
  141. g_pLOGIN->bLogin = true;
  142. g_pLOGIN->sUserId = sLoginId;
  143. g_pLOGIN->sUserName = "default";
  144. g_pLOGIN->sUserRightId = "1";
  145. g_pLOGIN->sUserRightName = "";
  146. g_pLOGIN->sConnSystem = "OPR";
  147. g_pLOGIN->sLoginSeq = "0";
  148. g_pLOGIN->sLoginIp = "127.0.0.1";
  149. g_pLOGIN->sLoginTime = Now().FormatString("yyyymmddhhnnss");
  150. }
  151. try
  152. {
  153. ReportMemoryLeaksOnShutdown = true;
  154. Application->Initialize();
  155. Application->MainFormOnTaskBar = true;
  156. Application->Title = g_AppCfg.sTitle;
  157. Application->Title = "PASIG City VMS Operation Program";
  158. Application->CreateForm(__classid(TFrmVmsOprMain), &FrmVmsOprMain);
  159. Application->Run();
  160. }
  161. catch (Exception &exception)
  162. {
  163. Application->ShowException(&exception);
  164. }
  165. catch (...)
  166. {
  167. try
  168. {
  169. throw Exception("");
  170. }
  171. catch (Exception &exception)
  172. {
  173. Application->ShowException(&exception);
  174. }
  175. }
  176. prog_exit:
  177. try
  178. {
  179. ITSDb_Finalize();
  180. ReleaseMutex(hMutex);
  181. CloseHandle(hMutex);
  182. hMutex = NULL;
  183. LOGINFO("Program end....");
  184. }
  185. catch(...)
  186. {
  187. }
  188. return 0;
  189. }
  190. //---------------------------------------------------------------------------