VmsOprMain.cpp 10 KB

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