VmsOprMain.cpp 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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. #include "ITSLangTransF.h"
  10. //---------------------------------------------------------------------------
  11. USEFORM("PLUGIN\VMS0200M\VMS0200MF.cpp", VMS0200M);
  12. USEFORM("PLUGIN\COMMON\VMSWBACKF.cpp", VMSWBACK);
  13. USEFORM("PLUGIN\VMS0400M\VMS0400MF.cpp", VMS0400M);
  14. USEFORM("PLUGIN\VMSM500M\VMSM510MF.cpp", VMSM510M);
  15. USEFORM("PLUGIN\VMSM500M\VMSM500MF.cpp", VMSM500M);
  16. USEFORM("PLUGIN\99.LOGIN\FRMPswdChngeF.cpp", FRMPswdChnge);
  17. USEFORM("PLUGIN\VMSM600M\VMSM610MF.cpp", VMSM610M);
  18. USEFORM("PLUGIN\00.FRAME\FRAME_VmsListF.cpp", FRAMEVmsList); /* TFrame: File Type */
  19. USEFORM("PLUGIN\00.FRAME\FRAME_VmsIfscListF.cpp", FRAMEVmsIfscList); /* TFrame: File Type */
  20. USEFORM("PLUGIN\00.FRAME\FRAME_FlashMapF.cpp", FRAMEFlashMap); /* TFrame: File Type */
  21. USEFORM("PLUGIN\VMSM410M\VMSM410MF.cpp", VMSM410M);
  22. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateF.cpp", FRAMEVmsState); /* TFrame: File Type */
  23. USEFORM("MAIN\FrmVmsOprMainF.cpp", FrmVmsOprMain);
  24. USEFORM("PLUGIN\COMMON\VMSBACKMF.cpp", VMSBACKM);
  25. USEFORM("PLUGIN\COMMON\VMSWCAM0F.cpp", VMSWCAM0);
  26. USEFORM("PLUGIN\VMS0100M\VMS0100MF.cpp", VMS0100M);
  27. USEFORM("PLUGIN\VMSM100M\VMSM100MF.cpp", VMSM100M);
  28. USEFORM("PLUGIN\VMS0000M\VMS0000MF.cpp", VMS0000M);
  29. USEFORM("PLUGIN\VMS0400M\VMS0410MF.cpp", VMS0410M);
  30. USEFORM("PLUGIN\VMSM210M\VMSM210MF.cpp", VMSM210M);
  31. USEFORM("PLUGIN\COMMON\VMSMODL0F.cpp", VMSMODL0);
  32. USEFORM("PLUGIN\99.LOGIN\FRMLoginF.cpp", FRMLogin);
  33. USEFORM("PLUGIN\VMS0000M\FrmVmsMsgF.cpp", FrmVmsMsg);
  34. USEFORM("PLUGIN\COMMON\VMSVIEWMF.cpp", VMSVIEWM);
  35. USEFORM("PLUGIN\VMSM900M\VMSM900MF.cpp", VMSM900M);
  36. USEFORM("PLUGIN\00.FRAME\FRAME_VmsMsgListF.cpp", FRAMEVmsMsgList); /* TFrame: File Type */
  37. USEFORM("PLUGIN\VMSM800M\VMSM800MF.cpp", VMSM800M);
  38. USEFORM("PLUGIN\VMSM500M\VMSM530MF.cpp", VMSM530M);
  39. USEFORM("PLUGIN\VMSM500M\VMSM520MF.cpp", VMSM520M);
  40. USEFORM("PLUGIN\VMSM600M\VMSM600MF.cpp", VMSM600M);
  41. USEFORM("PLUGIN\VMSM400M\VMSM400MF.cpp", VMSM400M);
  42. USEFORM("PLUGIN\COMMON\VMSEDT0MF.cpp", VMSEDT0M);
  43. USEFORM("MAIN\FrmInitializeF.cpp", FrmInitialize);
  44. USEFORM("PLUGIN\VMS0300M\VMS0300MF.cpp", VMS0300M);
  45. USEFORM("PLUGIN\COMMON\VMSSEL0MF.cpp", VMSSEL0M);
  46. USEFORM("PLUGIN\00.FRAME\FRAME_VmsSchListF.cpp", FRAMEVmsSchList); /* TFrame: File Type */
  47. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityStatusListF.cpp", FRAMEFacilityStatusList); /* TFrame: File Type */
  48. USEFORM("PLUGIN\VMS0000M\FrmVmsCamF.cpp", FrmVmsCam);
  49. USEFORM("PLUGIN\VMS0200M\VMS0201MF.cpp", VMS0201M);
  50. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateListF.cpp", FRAMEVmsStateList); /* TFrame: File Type */
  51. USEFORM("PLUGIN\VMSM200M\VMSM200MF.cpp", VMSM200M);
  52. USEFORM("PLUGIN\VMS0000M\VMS00MAPF.cpp", VMS00MAP);
  53. USEFORM("PLUGIN\COMMON\VMSFORM0F.cpp", VMSFORM0);
  54. USEFORM("PLUGIN\VMS0500M\VMS0500MF.cpp", VMS0500M);
  55. USEFORM("PLUGIN\VMSM700M\VMSM700MF.cpp", VMSM700M);
  56. USEFORM("PLUGIN\VMS0000M\FrmIcsCamF.cpp", FrmIcsCam);
  57. USEFORM("PLUGIN\VMSM420M\VMSM420MF.cpp", VMSM420M);
  58. USEFORM("PLUGIN\VMS0600M\VMS0600MF.cpp", VMS0600M);
  59. USEFORM("PLUGIN\00.FRAME\FRAME_GoogleMapF.cpp", FRAMEGoogleMap); /* TFrame: File Type */
  60. USEFORM("MAIN\FrmResourceF.cpp", FrmLang);
  61. //---------------------------------------------------------------------------
  62. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  63. {
  64. int nLoginRes;
  65. DateSeparator = '-';
  66. TimeSeparator = ':';
  67. ShortDateFormat ="yyyy-MM-dd";
  68. ShortTimeFormat = "hh:nn:ss";
  69. LongTimeFormat = "hh:nn:ss";
  70. String sLoginId = "ADMIN";
  71. bool bLogin = true;
  72. int nArgs = ParamCount();
  73. if (nArgs >= 1)
  74. {
  75. sLoginId = ParamStr(1);
  76. //ShowMessage(sLoginId);
  77. bLogin = false;
  78. }
  79. int nRes;
  80. g_nPid = (int)GetCurrentProcessId();
  81. g_sAppDir = ExtractFilePath(Application->ExeName);
  82. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  83. g_sCfgDir = g_sAppDir + "Cfg\\";
  84. g_sLogDir = g_sAppDir + "Log\\";
  85. g_sTempDir = g_sAppDir + "Temp\\";
  86. g_sFormsDir = g_sCfgDir + "Forms\\";
  87. ForceDirectories(g_sCfgDir.c_str());
  88. ForceDirectories(g_sLogDir.c_str());
  89. ForceDirectories(g_sTempDir.c_str());
  90. ForceDirectories(g_sFormsDir.c_str());
  91. String sTempDir = g_sLogDir + "Db\\";
  92. ForceDirectories(sTempDir.c_str());
  93. String sAppDir = ExtractFilePath(Application->ExeName);
  94. ChDir(sAppDir);
  95. HANDLE hMutex;
  96. try
  97. {
  98. String sLockFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".lock");
  99. String sProgMutexNm = "HANTE_PASIG_" + sLockFile;
  100. if ((hMutex=OpenMutex(MUTEX_ALL_ACCESS, false, sProgMutexNm.c_str()))==NULL)
  101. hMutex = CreateMutex(NULL, true, sProgMutexNm.c_str());
  102. else
  103. {
  104. if (g_AppCfg.sLang == "kr")
  105. {
  106. Application->MessageBox(L"VMS 운영단말 프로그램이 이미 실행중입니다.\r\n작업관리자의 프로세스 목록에서 프로그램을 종료후 실행해 주십시오.",
  107. L"프로그램 시작 오류!!!",
  108. MB_OK|MB_ICONERROR);
  109. }
  110. else
  111. {
  112. Application->MessageBox(L"The VMS operating terminal program is already running.\r\nPlease exit the program from the process list of Task Manager and execute it.",
  113. L"Program Start Error!!!",
  114. MB_OK|MB_ICONERROR);
  115. }
  116. return 0;
  117. }
  118. }
  119. catch (Exception &exception)
  120. {
  121. Application->ShowException(&exception);
  122. return 0;
  123. }
  124. /*
  125. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  126. */
  127. LoadDefaultConfigInfo("ITS_OP");
  128. g_sLangDir = g_sAppDir + "Lang\\";
  129. g_sLangDir = g_sLangDir + g_AppCfg.sLang + "\\";
  130. ForceDirectories(g_sLangDir.c_str());
  131. LangTrans = new TLangTrans("VmsOprMain", g_AppCfg.sLang, g_sLangDir, true);
  132. //CommLog = new TCommLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  133. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  134. ITSLog->FLogCfg = g_LogCfg;
  135. LOGINFO("Program start....");
  136. if (!ITSDb_Initialize())
  137. {
  138. if (g_AppCfg.sLang == "kr")
  139. {
  140. Application->MessageBox(L"Database 자원을 시스템으로부터 얻지 못했습니다.\r\n\r\n프로그램을 종료합니다.",
  141. L"프로그램 시작 오류!!!",
  142. MB_OK|MB_ICONERROR);
  143. }
  144. else
  145. {
  146. Application->MessageBox(L"Database resource could not be obtained from the system.\r\n\r\nExit the program.",
  147. L"Program Start Error!!!",
  148. MB_OK|MB_ICONERROR);
  149. }
  150. goto prog_exit;
  151. }
  152. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  153. g_AppCfg.bLoginPrompt = bLogin;
  154. if (g_AppCfg.bLoginPrompt)
  155. {
  156. /*
  157. * 로그인 처리(라이브러리 로딩 실패시에만 프로그램을 종료하자-일단...)
  158. */
  159. g_AppCfg.sSkinName = "Blue";
  160. nLoginRes = UserLogin();
  161. if (nLoginRes <= 0)
  162. {
  163. goto prog_exit;
  164. }
  165. }
  166. else
  167. {
  168. if (!ITSDb_Open())
  169. {
  170. if (g_AppCfg.sLang == "kr")
  171. {
  172. Application->MessageBox(L"데이터베이스 접속에 실패하였습니다.\r\n\r\n프로그램을 종료합니다.",
  173. L"프로그램 시작 오류!!!",
  174. MB_OK|MB_ICONERROR);
  175. }
  176. else
  177. {
  178. Application->MessageBox(L"Database connection failed.\r\n\r\nExit the program.",
  179. L"Program Start Error!!!",
  180. MB_OK|MB_ICONERROR);
  181. }
  182. goto prog_exit;
  183. }
  184. g_pLOGIN = ITSDb_GetLoginInfo();
  185. g_pLOGIN->bLogin = true;
  186. g_pLOGIN->sUserId = sLoginId;
  187. g_pLOGIN->sUserName = "default";
  188. g_pLOGIN->sUserRightId = "1";
  189. g_pLOGIN->sUserRightName = "";
  190. g_pLOGIN->sConnSystem = "OPR";
  191. g_pLOGIN->sLoginSeq = "0";
  192. g_pLOGIN->sLoginIp = "127.0.0.1";
  193. g_pLOGIN->sLoginTime = Now().FormatString("yyyymmddhhnnss");
  194. }
  195. try
  196. {
  197. ReportMemoryLeaksOnShutdown = true;
  198. Application->Initialize();
  199. Application->MainFormOnTaskBar = true;
  200. Application->Title = g_AppCfg.sTitle;
  201. Application->Title = "VMS 운영관리";
  202. Application->CreateForm(__classid(TFrmVmsOprMain), &FrmVmsOprMain);
  203. Application->CreateForm(__classid(TFrmLang), &FrmLang);
  204. Application->Run();
  205. }
  206. catch (Exception &exception)
  207. {
  208. Application->ShowException(&exception);
  209. }
  210. catch (...)
  211. {
  212. try
  213. {
  214. throw Exception("");
  215. }
  216. catch (Exception &exception)
  217. {
  218. Application->ShowException(&exception);
  219. }
  220. }
  221. prog_exit:
  222. try
  223. {
  224. ITSDb_Finalize();
  225. ReleaseMutex(hMutex);
  226. CloseHandle(hMutex);
  227. hMutex = NULL;
  228. LOGINFO("Program end....");
  229. }
  230. catch(...)
  231. {
  232. }
  233. return 0;
  234. }
  235. //---------------------------------------------------------------------------