FrmVmsLcsScheMngrF.cpp 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. #include "WindowMsgF.h"
  7. #include "CDSVmsIfscF.h"
  8. #include "CDSFontF.h"
  9. #include "CDSVmsFormF.h"
  10. #pragma hdrstop
  11. #include "FrmVmsLcsScheMngrF.h"
  12. #include "FrmVmsLcsSelTermF.h"
  13. #include "VMSEDT0MF.h"
  14. //---------------------------------------------------------------------------
  15. #pragma package(smart_init)
  16. #pragma link "cxButtons"
  17. #pragma link "cxCalendar"
  18. #pragma link "cxContainer"
  19. #pragma link "cxControls"
  20. #pragma link "cxDropDownEdit"
  21. #pragma link "cxEdit"
  22. #pragma link "cxGraphics"
  23. #pragma link "cxGroupBox"
  24. #pragma link "cxLabel"
  25. #pragma link "cxLookAndFeelPainters"
  26. #pragma link "cxLookAndFeels"
  27. #pragma link "cxMaskEdit"
  28. #pragma link "cxPC"
  29. #pragma link "cxPCdxBarPopupMenu"
  30. #pragma link "cxSpinEdit"
  31. #pragma link "cxSplitter"
  32. #pragma link "cxTextEdit"
  33. #pragma link "cxTimeEdit"
  34. #pragma link "dxSkinBlack"
  35. #pragma link "dxSkinBlue"
  36. #pragma link "dxSkinCaramel"
  37. #pragma link "dxSkinCoffee"
  38. #pragma link "dxSkinDarkRoom"
  39. #pragma link "dxSkinDarkSide"
  40. #pragma link "dxSkinFoggy"
  41. #pragma link "dxSkinGlassOceans"
  42. #pragma link "dxSkiniMaginary"
  43. #pragma link "dxSkinLilian"
  44. #pragma link "dxSkinLiquidSky"
  45. #pragma link "dxSkinLondonLiquidSky"
  46. #pragma link "dxSkinMcSkin"
  47. #pragma link "dxSkinMoneyTwins"
  48. #pragma link "dxSkinOffice2007Black"
  49. #pragma link "dxSkinOffice2007Blue"
  50. #pragma link "dxSkinOffice2007Green"
  51. #pragma link "dxSkinOffice2007Pink"
  52. #pragma link "dxSkinOffice2007Silver"
  53. #pragma link "dxSkinOffice2010Black"
  54. #pragma link "dxSkinOffice2010Blue"
  55. #pragma link "dxSkinOffice2010Silver"
  56. #pragma link "dxSkinsCore"
  57. #pragma link "dxSkinscxPCPainter"
  58. #pragma link "dxSkinSeven"
  59. #pragma link "dxSkinSharp"
  60. #pragma link "dxSkinSilver"
  61. #pragma link "dxSkinStardust"
  62. #pragma link "cxRadioGroup"
  63. #pragma link "cxClasses"
  64. #pragma link "cxCustomData"
  65. #pragma link "cxData"
  66. #pragma link "cxDataStorage"
  67. #pragma link "cxDBData"
  68. #pragma link "cxFilter"
  69. #pragma link "cxGrid"
  70. #pragma link "cxGridCustomTableView"
  71. #pragma link "cxGridCustomView"
  72. #pragma link "cxGridDBTableView"
  73. #pragma link "cxGridLevel"
  74. #pragma link "cxGridTableView"
  75. #pragma link "cxStyles"
  76. #pragma link "cxCheckBox"
  77. #pragma link "cxImage"
  78. #pragma link "cxButtonEdit"
  79. #pragma link "cxBlobEdit"
  80. #pragma link "cxColorComboBox"
  81. #pragma link "cxCalc"
  82. #pragma link "VmsDesignerF"
  83. #pragma link "FRAME_VmsSchListF"
  84. #pragma link "cxHint"
  85. #pragma link "dxCustomHint"
  86. #pragma link "dxScreenTip"
  87. #pragma link "dxSkinsForm"
  88. #pragma link "dxGDIPlusClasses"
  89. #pragma resource "*.dfm"
  90. TFrmVmsLcsScheMngr *FrmVmsLcsScheMngr = NULL;
  91. //---------------------------------------------------------------------------
  92. __fastcall TFrmVmsLcsScheMngr::TFrmVmsLcsScheMngr(TComponent* Owner)
  93. : TForm(Owner)
  94. {
  95. //CMM_SetFormPosition(g_AppCfg.bSaveForm);
  96. ITSSkin_Initialize(Application, g_AppCfg.sLang);
  97. ITSSkin_Caption(false);
  98. ITSSkin_Load(this);
  99. //CMM_LoadForm(g_sFormsDir, this);
  100. SetColorScheme(g_AppCfg.sSkinName);
  101. FUpdate= false;
  102. FTitle = Caption;
  103. FListSymb = new TList;
  104. EditMode = false;
  105. FRAMEVmsSchList1->PnlTop->Visible = false;
  106. FRAMEVmsSchList1->PnlBottom->Visible = false;
  107. FRAMEVmsSchList1->Column11->Visible = true;
  108. FRAMEVmsSchList1->Column03->Visible = false;
  109. PgVmsSch->Properties->ActivePage = TsEdit;
  110. }
  111. //---------------------------------------------------------------------------
  112. void __fastcall TFrmVmsLcsScheMngr::SetColorScheme(String ASkinName)
  113. {
  114. dxSkinController1->SkinName = ASkinName;
  115. dxSkinController1->Refresh();
  116. PnlPreview->ParentColor = false;
  117. PnlPreview->Color = clBlack;
  118. }
  119. //---------------------------------------------------------------------------
  120. void __fastcall TFrmVmsLcsScheMngr::CommClose()
  121. {
  122. try {
  123. #if 0
  124. if (m_pEdtDesigner) {
  125. delete m_pEdtDesigner;
  126. m_pEdtDesigner = NULL;
  127. }
  128. #endif
  129. APP_DelVmsSizeCombo(CbSizeType);
  130. ClearSymbloList();
  131. SAFE_DELETE(FListSymb);
  132. CComm_Terminate();
  133. ITSSkin_Term();
  134. //CMM_SaveForm(g_sFormsDir, this);
  135. }
  136. catch(...) {
  137. }
  138. }
  139. //---------------------------------------------------------------------------
  140. void __fastcall TFrmVmsLcsScheMngr::FormCreate(TObject *Sender)
  141. {
  142. InitDbLoading();
  143. //m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm);
  144. //FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) {
  145. // m_pEdtDesigner->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL);
  146. //}
  147. }
  148. //---------------------------------------------------------------------------
  149. void __fastcall TFrmVmsLcsScheMngr::InitDbLoading()
  150. {
  151. Application->ProcessMessages();
  152. if (!VmsCtlrManager) {
  153. VmsCtlrManager = new TVmsCtlrManager();
  154. }
  155. VmsCtlrManager->LoadVmsModlSize();
  156. VmsCtlrManager->LoadFromDb();
  157. #if 0
  158. if (SysCodeManager == NULL) {
  159. SysCodeManager = new TSysCodeManager();
  160. }
  161. SysCodeManager->LoadFromDb();
  162. if (!VmsTextItemManager) {
  163. VmsTextItemManager = new TVmsTextItemManager();
  164. }
  165. VmsTextItemManager->LoadFromDb();
  166. #endif
  167. if(!CDSFontManager) {
  168. CDSFontManager = new TCDSFontManager();
  169. }
  170. CDSFontManager->LoadFontInfo();
  171. if (!CenterCommManager) {
  172. CenterCommManager = new TCenterCommManager();
  173. }
  174. CenterCommManager->LoadFromDb(g_AppCfg.PRCS_ID);
  175. FCommCtrlTarget = CenterCommManager->FLists.Find("22"); // VMS표출문안 등록 알림
  176. }
  177. //---------------------------------------------------------------------------
  178. void __fastcall TFrmVmsLcsScheMngr::FormShow(TObject *Sender)
  179. {
  180. int nResult = CComm_Initialize((long)Handle, g_AppCfg.PRCS_ID, "P04010", 0);
  181. Refresh();
  182. FormInit();
  183. TmrShow->Enabled = true;
  184. }
  185. //---------------------------------------------------------------------------
  186. void __fastcall TFrmVmsLcsScheMngr::FormInit()
  187. {
  188. TNotifyEvent evt = CbSizeType->Properties->OnChange;
  189. CbSizeType->Properties->OnChange = NULL;
  190. APP_FillLcsSizeType(CbSizeType, false);
  191. CbSizeType->Properties->OnChange = evt;
  192. FNewDb = false;
  193. }
  194. //---------------------------------------------------------------------------
  195. void __fastcall TFrmVmsLcsScheMngr::TmrShowTimer(TObject *Sender)
  196. {
  197. TmrShow->Enabled = false;
  198. CbSizeType->ItemIndex = -1;
  199. CbSizeType->ItemIndex = 0;
  200. }
  201. //---------------------------------------------------------------------------
  202. void __fastcall TFrmVmsLcsScheMngr::BtnCloseClick(TObject *Sender)
  203. {
  204. Close();
  205. }
  206. //---------------------------------------------------------------------------
  207. void __fastcall TFrmVmsLcsScheMngr::FormClose(TObject *Sender, TCloseAction &Action)
  208. {
  209. CommClose();
  210. FrmVmsLcsScheMngr = NULL;
  211. Action = caFree;
  212. }
  213. //---------------------------------------------------------------------------
  214. void __fastcall TFrmVmsLcsScheMngr::FormCloseQuery(TObject *Sender, bool &CanClose)
  215. {
  216. if (FUpdate)
  217. {
  218. //POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0);
  219. }
  220. }
  221. //---------------------------------------------------------------------------
  222. void __fastcall TFrmVmsLcsScheMngr::ClearSymbloList()
  223. {
  224. FFormLists.RemoveAll();
  225. for(int ii = 0; ii < FListSymb->Count; ii++)
  226. {
  227. Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii];
  228. delete bitmap;
  229. }
  230. FListSymb->Clear();
  231. }
  232. //---------------------------------------------------------------------------
  233. void __fastcall TFrmVmsLcsScheMngr::FRAMEVmsSchList1TvListCellDblClick(TcxCustomGridTableView *Sender,
  234. TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton,
  235. TShiftState AShift, bool &AHandled)
  236. {
  237. if (!ACellViewInfo) return;
  238. DisplayInfo();
  239. }
  240. //---------------------------------------------------------------------------
  241. void __fastcall TFrmVmsLcsScheMngr::FRAMEVmsSchList1TvListFocusedRecordChanged(TcxCustomGridTableView *Sender,
  242. TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord,
  243. bool ANewItemRecordFocusingChanged)
  244. {
  245. if (!AFocusedRecord) return;
  246. DisplayInfo();
  247. }
  248. //---------------------------------------------------------------------------
  249. void __fastcall TFrmVmsLcsScheMngr::CbSizeTypePropertiesChange(TObject *Sender)
  250. {
  251. if (CbSizeType->ItemIndex < 0) return;
  252. EdFocus->SetFocus();
  253. BtnSearchClick(NULL);
  254. FRAMEVmsSchList1->CxList->SetFocus();
  255. //TODO: LockWindowUpdate(GrpPreview->Handle);
  256. PnlPreview->Width = FVmsWidth;
  257. PnlPreview->Height= FVmsHeight;
  258. ImgPreview->Align = alNone;
  259. ImgPreview->Picture->Bitmap->Width = FVmsWidth;
  260. ImgPreview->Picture->Bitmap->Height= FVmsHeight;
  261. APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack);
  262. ImgPreview->Align = alClient;
  263. TvView->OptionsView->DataRowHeight = FVmsHeight;
  264. if (TvView->OptionsView->DataRowHeight < 48) {
  265. TvView->OptionsView->DataRowHeight = 48;
  266. }
  267. //TODO: LockWindowUpdate(0);
  268. }
  269. //---------------------------------------------------------------------------
  270. void __fastcall TFrmVmsLcsScheMngr::BtnSearchClick(TObject *Sender)
  271. {
  272. RefreshData();
  273. EdFocus->SetFocus();
  274. }
  275. //---------------------------------------------------------------------------
  276. void __fastcall TFrmVmsLcsScheMngr::RefreshData()
  277. {
  278. FormClear();
  279. TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType);
  280. if (pVmsSizeType == NULL) return;
  281. FVmsTypeCd = pVmsSizeType->TypeCd;
  282. FVmsWidth = pVmsSizeType->Width;
  283. FVmsHeight = pVmsSizeType->Height;
  284. #if 0
  285. PnlEdtBack->Width = FVmsWidth+4;
  286. PnlEdtBack->Height= FVmsHeight+4;
  287. m_pEdtDesigner->Clear();
  288. m_pEdtDesigner->SizeType = FVmsTypeCd;
  289. m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight);
  290. m_pEdtDesigner->SetPos(0, 0);
  291. m_pEdtDesigner->BkColorCode = "00";
  292. m_pEdtDesigner->EditMode = true;
  293. m_pEdtDesigner->Show();
  294. #endif
  295. FRAMEVmsSchList1->UpdateLcsList(FVmsTypeCd);
  296. LoadVmsFormList(FVmsTypeCd);
  297. }
  298. //---------------------------------------------------------------------------
  299. void __fastcall TFrmVmsLcsScheMngr::FormClear()
  300. {
  301. FSelIdx = -1;
  302. EdVmsNmbr->Clear();
  303. GrpSchedule->Caption = lblTitle->Caption;//"▶ 자동 스케줄 설정";
  304. CMM_ClearGridTableView(TvSche);
  305. //TODO: LockWindowUpdate(GrpPreview->Handle);
  306. APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack);
  307. //TODO: LockWindowUpdate(0);
  308. FNewDb = false;
  309. }
  310. //---------------------------------------------------------------------------
  311. void __fastcall TFrmVmsLcsScheMngr::DisplayInfo()
  312. {
  313. FormClear();
  314. FSelIdx = CMM_GetRecordIndex(FRAMEVmsSchList1->TvList);
  315. if (FSelIdx < 0) return;
  316. TcxDataController *pGDC = FRAMEVmsSchList1->TvList->DataController;
  317. String sLcsCtlrId = VarToStr(pGDC->Values[FSelIdx][FRAMEVmsSchList1->Column11->Index]);
  318. EdVmsNmbr->Text = sLcsCtlrId;
  319. GrpSchedule->Caption = lblTitle->Caption + " (" + VarToStr(pGDC->Values[FSelIdx][FRAMEVmsSchList1->Column02->Index]) + ": " + sLcsCtlrId + ")";
  320. LoadLcsScheduleInfo(sLcsCtlrId);
  321. }
  322. //---------------------------------------------------------------------------
  323. void __fastcall TFrmVmsLcsScheMngr::BtnListAddClick(TObject *Sender)
  324. {
  325. int nSelIdx = CMM_GetRecordIndex(FRAMEVmsSchList1->TvList);
  326. if (nSelIdx < 0) return;
  327. TcxGridDataController *pDcFrm = TvForm->DataController;
  328. TcxGridDataController *pDcSch = TvSche->DataController;
  329. int nFormIdx = CMM_GetRecordIndex(TvForm);
  330. if (nFormIdx < 0) return;
  331. #if 0
  332. TFrmVmsPubrSelTerm *pSelDate = new TFrmVmsPubrSelTerm(this);
  333. pSelDate->FStrTime = Now().FormatString("YYYYMMDDHHNN");
  334. pSelDate->FEndTime = "209912312359";
  335. pSelDate->FWeek = "1111111";
  336. pSelDate->ShowModal();
  337. bool bSelected = pSelDate->FSelected;
  338. String sStrDate = pSelDate->FStrTime;
  339. String sEndDate = pSelDate->FEndTime;
  340. String sWeek = pSelDate->FWeek;
  341. delete pSelDate;
  342. pSelDate = NULL;
  343. if (!bSelected) {
  344. return;
  345. }
  346. #endif
  347. int nRow = pDcSch->AppendRecord();
  348. pDcSch->Values[nRow][Col00->Index] = VarToStr(pDcFrm->Values[nFormIdx][ColFrm00->Index]); //ID
  349. pDcSch->Values[nRow][Col02->Index] = VarToStr(pDcFrm->Values[nFormIdx][ColFrm02->Index]); //명칭
  350. pDcSch->Values[nRow][Col03->Index] = VarToStr(pDcFrm->Values[nFormIdx][ColFrm03->Index]); //표출(초)
  351. pDcSch->Values[nRow][Col01->Index] = pDcFrm->Values[nFormIdx][ColFrm01->Index];
  352. #if 0
  353. pDcSch->Values[nRow][Col04->Index] = ITSUtil_FormatStr(sStrDate, STR_HHNN);
  354. pDcSch->Values[nRow][Col05->Index] = ITSUtil_FormatStr(sEndDate, STR_HHNN);
  355. pDcSch->Values[nRow][ColWeek1->Index] = sWeek;
  356. String sUse = "Y";
  357. String sNowDate = Now().FormatString("YYYYMMDDHHNNSS");
  358. if (sEndDate < sNowDate) {
  359. sUse = "N";
  360. }
  361. pDcSch->Values[nRow][ColUse->Index] = sUse;
  362. #endif
  363. EditPreviewForm();
  364. }
  365. //---------------------------------------------------------------------------
  366. void __fastcall TFrmVmsLcsScheMngr::BtnListDeleteClick(TObject *Sender)
  367. {
  368. int nSelIdx = CMM_GetRecordIndex(FRAMEVmsSchList1->TvList);
  369. if (nSelIdx < 0) return;
  370. #if 0
  371. TcxGridDataController *pDcSch = TvSche->DataController;
  372. nSelIdx = CMM_GetRecordIndex(TvSche);
  373. if (nSelIdx < 0) return;
  374. TvSche->DataController->DeleteRecord(nSelIdx);
  375. #endif
  376. TcxGridTableView *pSrcList = TvSche;
  377. int nFocused = pSrcList->Controller->FocusedRecordIndex;
  378. int nSelRows = pSrcList->Controller->SelectedRowCount;
  379. if (nSelRows <= 0) {
  380. return;
  381. }
  382. try {
  383. TcxGridDataController *pGDC = pSrcList->DataController;
  384. pSrcList->BeginUpdate();
  385. try {
  386. pSrcList->Controller->DeleteSelection();
  387. int nDataCnt = pSrcList->DataController->RecordCount;
  388. if (nDataCnt <= nFocused)
  389. nFocused = nDataCnt - 1;
  390. pSrcList->Controller->ClearSelection();
  391. }
  392. catch(...) {
  393. }
  394. }
  395. __finally {
  396. pSrcList->EndUpdate();
  397. }
  398. EditPreviewForm();
  399. }
  400. //---------------------------------------------------------------------------
  401. void __fastcall TFrmVmsLcsScheMngr::BtnSaveClick(TObject *Sender)
  402. {
  403. //작업한 스케줄 정보를 저장한다.
  404. if (EdVmsNmbr->Text.Trim().IsEmpty())
  405. {
  406. Application->MessageBox(L"LCS 스케줄 관리\r\nLCS 목록에서 LCS를 먼저 선택한 후 작업을 진행하세요.",
  407. FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  408. return;
  409. }
  410. bool bUpdate = true;
  411. String sLcsCtlrId = EdVmsNmbr->Text.Trim();
  412. if (bUpdate)
  413. {
  414. String sMsg;
  415. sMsg = "LCS: " + sLcsCtlrId;
  416. sMsg+= "\r\n선택한 LCS 스케줄 정보를 저장하시겠습니까?";
  417. if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return;
  418. }
  419. ITSDb_GetConnection()->BeginTrans();
  420. if (!DeleteLcsScenario(sLcsCtlrId)) {
  421. ITSDb_GetConnection()->RollbackTrans();
  422. return;
  423. }
  424. if (!SaveLcsScenario(sLcsCtlrId)) {
  425. ITSDb_GetConnection()->RollbackTrans();
  426. return;
  427. }
  428. ITSDb_GetConnection()->CommitTrans();
  429. if (FCommCtrlTarget != NULL) {
  430. FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
  431. int sendResult = CComm_VmsNotiRegDsplMsg(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT);
  432. if (VERR_NONE == sendResult) {
  433. }
  434. Sleep(200);
  435. }
  436. }
  437. Application->MessageBox(L"LCS 스케줄 관리\r\nLCS 스케줄 정보를 저장 하였습니다.",
  438. FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  439. CMM_SetGridRow(FRAMEVmsSchList1->CxList, FRAMEVmsSchList1->TvList, sLcsCtlrId, FRAMEVmsSchList1->Column11->Index);
  440. //DisplayInfo();
  441. }
  442. //---------------------------------------------------------------------------
  443. bool __fastcall TFrmVmsLcsScheMngr::SaveLcsScenario(String ALcsCtlrId)
  444. {
  445. String sQry;
  446. TADOQuery *pADO = NULL;
  447. TcxDataController *pGDC = TvSche->DataController;
  448. sQry = "INSERT INTO TB_LCS_PROV_FORM ( \r\n"
  449. " LCS_CTLR_ID, \r\n"
  450. " PROV_BGN_DT, \r\n"
  451. " PROV_SN, \r\n"
  452. " VMS_FORM_ID, \r\n"
  453. " RGSTR_ID, \r\n"
  454. " REG_DT ) \r\n"
  455. " VALUES ( \r\n"
  456. " :p01, \r\n"
  457. " SYSDATE, \r\n"
  458. " :p03, \r\n"
  459. " :p04, \r\n"
  460. " :p05, \r\n"
  461. " SYSDATE ) \r\n";
  462. try {
  463. TvSche->BeginUpdate();
  464. int nRows = pGDC->RecordCount;
  465. try {
  466. pADO = new TADOQuery(NULL);
  467. pADO->Close();
  468. pADO->Connection = ITSDb_GetConnection();
  469. ITSDb_SQLText(pADO, sQry);
  470. for (int ii = 0; ii < nRows; ii++) {
  471. String LCS_CTLR_ID = ALcsCtlrId;
  472. int PROV_SN = ii+1;
  473. String VMS_FORM_ID = VarToStr(pGDC->Values[ii][Col00->Index]);
  474. pADO->Parameters->ParamByName("p01")->Value = LCS_CTLR_ID;
  475. pADO->Parameters->ParamByName("p03")->Value = PROV_SN;
  476. pADO->Parameters->ParamByName("p04")->Value = VMS_FORM_ID;
  477. pADO->Parameters->ParamByName("p05")->Value = g_AppCfg.OPER_ID;
  478. pADO->ExecSQL();
  479. }
  480. }
  481. catch(EDatabaseError &E) {
  482. DBERRORMSG("TFrmVmsLcsScheMngr::SaveLcsScenario", String(E.ClassName()), E.Message, sQry);
  483. return false;
  484. }
  485. catch(Exception &e) {
  486. DBERRORMSG("TFrmVmsLcsScheMngr::SaveLcsScenario", String(e.ClassName()), e.Message, sQry);
  487. return false;
  488. }
  489. }
  490. __finally {
  491. if (pADO) {
  492. pADO->Close();
  493. delete pADO;
  494. }
  495. TvSche->EndUpdate();
  496. }
  497. return true;
  498. }
  499. //---------------------------------------------------------------------------
  500. bool __fastcall TFrmVmsLcsScheMngr::DeleteLcsScenario(String ALcsCtlrId)
  501. {
  502. String sQry;
  503. TADOQuery *pADO = NULL;
  504. sQry = "DELETE TB_LCS_PROV_FORM \r\n"
  505. " WHERE 1=1 \r\n"
  506. " AND LCS_CTLR_ID = :p01 \r\n";
  507. try {
  508. try {
  509. pADO = new TADOQuery(NULL);
  510. pADO->Close();
  511. pADO->Connection = ITSDb_GetConnection();
  512. ITSDb_SQLText(pADO, sQry);
  513. ITSDb_SQLBind(pADO, "p01", ALcsCtlrId);
  514. pADO->ExecSQL();
  515. }
  516. catch(EDatabaseError &E) {
  517. DBERRORMSG("TFrmVmsLcsScheMngr::DeleteLcsScenario", String(E.ClassName()), E.Message, sQry);
  518. return false;
  519. }
  520. catch(Exception &e) {
  521. DBERRORMSG("TFrmVmsLcsScheMngr::DeleteLcsScenario", String(e.ClassName()), e.Message, sQry);
  522. return false;
  523. }
  524. }
  525. __finally {
  526. if (pADO) {
  527. pADO->Close();
  528. delete pADO;
  529. }
  530. }
  531. return true;
  532. }
  533. //---------------------------------------------------------------------------
  534. void __fastcall TFrmVmsLcsScheMngr::EditPreviewForm()
  535. {
  536. CMM_ClearGridTableView(TvView);
  537. TcxDataController *pDcSch = TvSche->DataController;
  538. TcxDataController *pDcViw = TvView->DataController;
  539. try {
  540. TvSche->BeginUpdate();
  541. TvView->BeginUpdate();
  542. try {
  543. for(int nRowS = 0; nRowS < pDcSch->RecordCount; nRowS++) {
  544. int nRowV = pDcViw->AppendRecord();
  545. pDcViw->Values[nRowV][ColView00->Index] = pDcSch->Values[nRowS][Col00->Index];
  546. pDcViw->Values[nRowV][ColView02->Index] = pDcSch->Values[nRowS][Col02->Index];
  547. pDcViw->Values[nRowV][ColView03->Index] = pDcSch->Values[nRowS][Col03->Index];
  548. pDcViw->Values[nRowV][ColView01->Index] = pDcSch->Values[nRowS][Col01->Index];
  549. }
  550. }
  551. catch(Exception &e) {
  552. }
  553. }
  554. __finally {
  555. TvSche->EndUpdate();
  556. TvView->EndUpdate();
  557. }
  558. }
  559. //---------------------------------------------------------------------------
  560. bool __fastcall TFrmVmsLcsScheMngr::LoadLcsScheduleInfo(String ALcsCtlrId)
  561. {
  562. String sQry;
  563. TADOQuery *pADO = NULL;
  564. CMM_ClearGridTableView(TvSche);
  565. CMM_ClearGridTableView(TvView);
  566. TcxDataController *pDcSch = TvSche->DataController;
  567. TcxDataController *pDcViw = TvView->DataController;
  568. sQry = "SELECT A.LCS_CTLR_ID, ROWNUM AS SN, \r\n"
  569. " A.VMS_FORM_ID, B.VMS_FORM_NM, \r\n"
  570. " B.VMS_FORM_TYPE, B.DSPL_HR, \r\n"
  571. " B.VMS_FORM_IMG, \r\n"
  572. " A.PROV_BGN_DT, \r\n"
  573. " TO_CHAR(A.PROV_BGN_DT, 'YYYY-MM-DD HH24:MI:SS') AS PROV_BGN_DT_FMT, \r\n"
  574. " A.PROV_SN \r\n"
  575. " FROM TB_LCS_PROV_FORM A, \r\n"
  576. " TB_VMS_FORM B \r\n"
  577. " WHERE 1=1 \r\n"
  578. " AND A.LCS_CTLR_ID = :p01 \r\n"
  579. " AND A.VMS_FORM_ID = B.VMS_FORM_ID \r\n"
  580. " ORDER BY A.LCS_CTLR_ID, A.PROV_SN \r\n";
  581. try {
  582. TvSche->BeginUpdate();
  583. TvView->BeginUpdate();
  584. int nRowS, nRowV;
  585. try {
  586. pADO = new TADOQuery(NULL);
  587. pADO->Close();
  588. pADO->Connection = ITSDb_GetConnection();
  589. ITSDb_SQLText(pADO, sQry);
  590. ITSDb_SQLBind(pADO, "p01", ALcsCtlrId);
  591. ITSDb_SQLOpen(pADO);
  592. for( ; !pADO->Eof; pADO->Next()) {
  593. nRowS = pDcSch->AppendRecord();
  594. pDcSch->Values[nRowS][Col00->Index] = pADO->FieldByName("VMS_FORM_ID")->AsString;
  595. pDcSch->Values[nRowS][Col02->Index] = pADO->FieldByName("VMS_FORM_NM")->AsString;
  596. pDcSch->Values[nRowS][Col03->Index] = pADO->FieldByName("DSPL_HR")->AsString;
  597. pDcSch->Values[nRowS][Col01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant;
  598. nRowV = pDcViw->AppendRecord();
  599. pDcViw->Values[nRowV][ColView00->Index] = pADO->FieldByName("VMS_FORM_ID")->AsString;
  600. pDcViw->Values[nRowV][ColView02->Index] = pADO->FieldByName("VMS_FORM_NM")->AsString;
  601. pDcViw->Values[nRowV][ColView03->Index] = pADO->FieldByName("DSPL_HR")->AsString;
  602. pDcViw->Values[nRowV][ColView01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant;
  603. }
  604. }
  605. catch(EDatabaseError &E) {
  606. DBERRORMSG("TFrmVmsLcsScheMngr::LoadLcsScheduleInfo", String(E.ClassName()), E.Message, sQry);
  607. return false;
  608. }
  609. catch(Exception &e) {
  610. DBERRORMSG("TFrmVmsLcsScheMngr::LoadLcsScheduleInfo", String(e.ClassName()), e.Message, sQry);
  611. return false;
  612. }
  613. }
  614. __finally {
  615. if (pADO) {
  616. pADO->Close();
  617. delete pADO;
  618. }
  619. TvView->OptionsView->DataRowHeight = FVmsHeight + 6;
  620. TvSche->EndUpdate();
  621. TvView->EndUpdate();
  622. }
  623. return true;
  624. }
  625. //---------------------------------------------------------------------------
  626. bool __fastcall TFrmVmsLcsScheMngr::LoadVmsFormList(String AFormSizeCd)
  627. {
  628. ClearSymbloList();
  629. CMM_ClearGridTableView(TvForm);
  630. String sQry;
  631. TADOQuery *pADO = NULL;
  632. sQry = "SELECT A.VMS_FORM_ID, A.VMS_MODL_KIND, A.VMS_FORM_TYPE, A.VMS_FORM_NM, \r\n"
  633. " A.VMS_FORM_IMG, \r\n"
  634. " A.DSPL_EFF, NVL(A.DSPL_HR, 0) AS DSPL_HR, A.BACK_CLR, \r\n"
  635. " NVL(B.FORM_TYPE_NM, A.VMS_FORM_TYPE) AS FORM_TYPE_NM, \r\n"
  636. " NVL(C.FORM_TYPE_NM, A.DSPL_EFF) AS DSPL_EFF_NM, \r\n"
  637. " NVL(D.VMS_MODL_KIND_NM, A.VMS_MODL_KIND) AS VMS_MODL_KIND_NM \r\n"
  638. " FROM TB_VMS_FORM A, \r\n"
  639. " (SELECT CODE_NO, CD_NM AS FORM_TYPE_NM \r\n"
  640. " FROM TB_SYS_CD \r\n"
  641. " WHERE CLSS_CD = 'VMS_FORM_TYPE_CD') B, \r\n"
  642. " (SELECT CODE_NO, CD_NM AS FORM_TYPE_NM \r\n"
  643. " FROM TB_SYS_CD \r\n"
  644. " WHERE CLSS_CD = 'VMS_FORM_DSPL_EFF_CD') C, \r\n"
  645. " TB_VMS_MODL_KIND D \r\n"
  646. " WHERE 1=1 \r\n"
  647. // " AND A.VMS_FORM_TYPE = 'P' \r\n"
  648. " AND A.VMS_FORM_TYPE = B.CODE_NO(+) \r\n"
  649. " AND A.DSPL_EFF = C.CODE_NO(+) \r\n"
  650. " AND A.VMS_MODL_KIND = D.VMS_MODL_KIND(+) \r\n"
  651. " AND A.VMS_MODL_KIND = :p01 \r\n"
  652. " ORDER BY A.VMS_MODL_KIND, A.VMS_FORM_ID \r\n";
  653. try {
  654. TvForm->BeginUpdate();
  655. TcxDataController *pGDC = TvForm->DataController;
  656. int nRow;
  657. try {
  658. pADO = new TADOQuery(NULL);
  659. pADO->Close();
  660. pADO->Connection = ITSDb_GetConnection();
  661. ITSDb_SQLText(pADO, sQry);
  662. ITSDb_SQLBind(pADO, "p01", AFormSizeCd);
  663. ITSDb_SQLOpen(pADO);
  664. for( ; !pADO->Eof; pADO->Next()) {
  665. nRow = pGDC->AppendRecord();
  666. String VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString;
  667. pGDC->Values[nRow][ColFrm00->Index] = VMS_FORM_ID;
  668. pGDC->Values[nRow][ColFrm02->Index] = pADO->FieldByName("VMS_FORM_NM")->AsString;
  669. pGDC->Values[nRow][ColFrm03->Index] = pADO->FieldByName("DSPL_HR")->AsString;
  670. pGDC->Values[nRow][ColFrm09->Index] = pADO->FieldByName("FORM_TYPE_NM")->AsString;
  671. pGDC->Values[nRow][ColFrm01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant;
  672. TFormImage *pImage = new TFormImage();
  673. pImage->formId = VMS_FORM_ID;
  674. pImage->bitmap = new Graphics::TBitmap;
  675. try {
  676. pImage->bitmap->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("VMS_FORM_IMG"), bmRead));
  677. }
  678. catch(Exception &e) {
  679. delete pImage->bitmap;
  680. pImage->bitmap = NULL;
  681. }
  682. FFormLists.Push(pImage->formId, pImage);
  683. }
  684. }
  685. catch(EDatabaseError &E)
  686. {
  687. DBERRORMSG("TFrmVmsLcsScheMngr::LoadVmsFormList", String(E.ClassName()), E.Message, sQry);
  688. return false;
  689. }
  690. catch(Exception &e)
  691. {
  692. DBERRORMSG("TFrmVmsLcsScheMngr::LoadVmsFormList", String(e.ClassName()), e.Message, sQry);
  693. return false;
  694. }
  695. }
  696. __finally {
  697. if (pADO) {
  698. pADO->Close();
  699. delete pADO;
  700. }
  701. TvForm->EndUpdate();
  702. }
  703. return true;
  704. }
  705. //---------------------------------------------------------------------------
  706. void __fastcall TFrmVmsLcsScheMngr::cxGridColumn172CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  707. bool &ADone)
  708. {
  709. int nRecordIdx = AViewInfo->GridRecord->RecordIndex;
  710. if (nRecordIdx < 0) {
  711. return;
  712. }
  713. try {
  714. int nItemIdx = AViewInfo->Item->Index;
  715. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[nItemIdx])) return;
  716. String sEndDt = AViewInfo->GridRecord->DisplayTexts[nItemIdx];
  717. if (sEndDt < Now().FormatString(STR_HHNN)) {
  718. ACanvas->Canvas->Brush->Color = clSilver;
  719. }
  720. }
  721. catch(Exception &e) {
  722. }
  723. }
  724. //---------------------------------------------------------------------------
  725. void __fastcall TFrmVmsLcsScheMngr::BtnUpClick(TObject *Sender)
  726. {
  727. try {
  728. TvSche->BeginUpdate();
  729. int nCurIdx = TvSche->DataController->FocusedRowIndex;//FocusedRecordIndex;
  730. if (nCurIdx <= 0) {
  731. return;
  732. }
  733. int nUpIdx = nCurIdx-1;
  734. try {
  735. int nCols = TvSche->ColumnCount;
  736. for (int ii = 0; ii < nCols; ii++) {
  737. Variant va = TvSche->DataController->Values[nCurIdx][ii];
  738. TvSche->DataController->Values[nCurIdx][ii] = TvSche->DataController->Values[nUpIdx][ii];
  739. TvSche->DataController->Values[nUpIdx][ii] = va;
  740. }
  741. TvSche->Controller->ClearSelection();
  742. TvSche->Controller->FocusedRowIndex = nUpIdx;
  743. TvSche->ViewData->Records[nUpIdx]->Focused = true;
  744. TvSche->ViewData->Records[nUpIdx]->Selected = true;
  745. CxSche->SetFocus();
  746. }
  747. catch(...) {
  748. }
  749. }
  750. __finally {
  751. TvSche->EndUpdate();
  752. }
  753. EditPreviewForm();
  754. }
  755. //---------------------------------------------------------------------------
  756. void __fastcall TFrmVmsLcsScheMngr::BtnDownClick(TObject *Sender)
  757. {
  758. try {
  759. TvSche->BeginUpdate();
  760. int nCurIdx = TvSche->DataController->FocusedRowIndex;//FocusedRecordIndex;
  761. if (nCurIdx < 0) {
  762. return;
  763. }
  764. if (nCurIdx == TvSche->DataController->RecordCount-1) {
  765. return;
  766. }
  767. int nDnIdx = nCurIdx+1;
  768. try {
  769. int nCols = TvSche->ColumnCount;
  770. for (int ii = 0; ii < nCols; ii++) {
  771. Variant va = TvSche->DataController->Values[nCurIdx][ii];
  772. TvSche->DataController->Values[nCurIdx][ii] = TvSche->DataController->Values[nDnIdx][ii];
  773. TvSche->DataController->Values[nDnIdx][ii] = va;
  774. }
  775. TvSche->Controller->ClearSelection();
  776. TvSche->Controller->FocusedRowIndex = nDnIdx;
  777. TvSche->ViewData->Records[nDnIdx]->Focused = true;
  778. TvSche->ViewData->Records[nDnIdx]->Selected = true;
  779. CxSche->SetFocus();
  780. }
  781. catch(...) {
  782. }
  783. }
  784. __finally {
  785. TvSche->EndUpdate();
  786. }
  787. EditPreviewForm();
  788. }
  789. //---------------------------------------------------------------------------
  790. void __fastcall TFrmVmsLcsScheMngr::TvScheFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord,
  791. TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged)
  792. {
  793. if (!AFocusedRecord) return;
  794. int nSelIdx = CMM_GetRecordIndex(TvSche);
  795. if (nSelIdx < 0) return;
  796. String sVmsFormId = VarToStr(TvSche->DataController->Values[nSelIdx][Col00->Index]);
  797. LoadPreviewForm(sVmsFormId);
  798. }
  799. //---------------------------------------------------------------------------
  800. void __fastcall TFrmVmsLcsScheMngr::TvFormFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord,
  801. TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged)
  802. {
  803. if (!AFocusedRecord) return;
  804. int nSelIdx = CMM_GetRecordIndex(TvForm);
  805. if (nSelIdx < 0) return;
  806. String sVmsFormId = VarToStr(TvForm->DataController->Values[nSelIdx][ColFrm00->Index]);
  807. LoadPreviewForm(sVmsFormId);
  808. }
  809. //---------------------------------------------------------------------------
  810. void __fastcall TFrmVmsLcsScheMngr::LoadPreviewForm(String AVmsFormId)
  811. {
  812. TFormImage *pImage = FFormLists.Find(AVmsFormId);
  813. //TODO: LockWindowUpdate(GrpPreview->Handle);
  814. if (pImage != NULL && pImage->bitmap != NULL) {
  815. ImgPreview->Picture->Bitmap->Assign(pImage->bitmap);
  816. }
  817. else {
  818. APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack);
  819. }
  820. //TODO: LockWindowUpdate(0);
  821. }
  822. //---------------------------------------------------------------------------
  823. void __fastcall TFrmVmsLcsScheMngr::ChkAutoWidthPropertiesChange(TObject *Sender)
  824. {
  825. try
  826. {
  827. //TODO: LockWindowUpdate(Handle);
  828. TvView->BeginUpdate();
  829. if (ChkAutoWidth->Checked) {
  830. //TvView->OptionsView->DataRowHeight = 58;
  831. TvView->OptionsView->CellAutoHeight = false;
  832. }
  833. else {
  834. TvView->OptionsView->DataRowHeight = 0;
  835. TvView->OptionsView->CellAutoHeight = true;
  836. }
  837. TvView->OptionsView->ColumnAutoWidth = ChkAutoWidth->Checked;
  838. }
  839. __finally
  840. {
  841. TvView->EndUpdate();
  842. //TODO: LockWindowUpdate(0);
  843. //BtnBestFit->Visible = !ChkAutoWidth->Checked;
  844. }
  845. }
  846. //---------------------------------------------------------------------------
  847. void __fastcall TFrmVmsLcsScheMngr::BtnBestFitClick(TObject *Sender)
  848. {
  849. try {
  850. //TODO: LockWindowUpdate(Handle);
  851. TvView->BeginUpdate();
  852. TvView->ApplyBestFit(NULL, false, false);
  853. TvView->EndUpdate();
  854. }
  855. __finally {
  856. //TODO: LockWindowUpdate(0);
  857. }
  858. }
  859. //---------------------------------------------------------------------------
  860. void __fastcall TFrmVmsLcsScheMngr::Col05CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  861. bool &ADone)
  862. {
  863. int nRecordIdx = AViewInfo->GridRecord->RecordIndex;
  864. if (nRecordIdx < 0) {
  865. return;
  866. }
  867. try {
  868. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[ColUse->Index])) return;
  869. String sUseYn = AViewInfo->GridRecord->DisplayTexts[ColUse->Index];
  870. if (sUseYn == "N") {
  871. ACanvas->Canvas->Brush->Color = clRed;
  872. }
  873. }
  874. catch(Exception &e) {
  875. }
  876. }
  877. //---------------------------------------------------------------------------
  878. void __fastcall TFrmVmsLcsScheMngr::TvScheCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  879. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  880. {
  881. if (!ACellViewInfo) return;
  882. int nRow = Sender->DataController->FocusedRecordIndex;
  883. if( nRow <= -1 )
  884. return;
  885. TcxGridDataController *pGDC = (TcxGridDataController*)Sender->DataController;
  886. int nColIdx = ACellViewInfo->Item->Index;
  887. String sStrDate = VarToStr(pGDC->Values[nRow][Col04->Index]);
  888. String sEndDate = VarToStr(pGDC->Values[nRow][Col05->Index]);
  889. String sWeek = VarToStr(pGDC->Values[nRow][ColWeek1->Index]);
  890. if (nColIdx == Col04->Index || nColIdx == Col05->Index || nColIdx == ColWeek1->Index) {
  891. //표출기간설정
  892. TFrmVmsLcsSelTerm *pSelDate = new TFrmVmsLcsSelTerm(this);
  893. pSelDate->FStrTime = sStrDate;
  894. pSelDate->FEndTime = sEndDate;
  895. pSelDate->FWeek = sWeek;
  896. pSelDate->ShowModal();
  897. bool bSelected = pSelDate->FSelected;
  898. sStrDate = pSelDate->FStrTime;
  899. sEndDate = pSelDate->FEndTime;
  900. sWeek = pSelDate->FWeek;
  901. delete pSelDate;
  902. pSelDate = NULL;
  903. if (bSelected)
  904. {
  905. pGDC->Values[nRow][Col04->Index] = ITSUtil_FormatStr(sStrDate, STR_HHNN);
  906. pGDC->Values[nRow][Col05->Index] = ITSUtil_FormatStr(sEndDate, STR_HHNN);
  907. pGDC->Values[nRow][ColWeek1->Index] = sWeek;
  908. String sUse = "Y";
  909. String sNowDate = Now().FormatString("YYYYMMDDHHNNSS");
  910. if (sEndDate < sNowDate) {
  911. sUse = "N";
  912. }
  913. pGDC->Values[nRow][ColUse->Index] = sUse;
  914. EditPreviewForm();
  915. }
  916. return;
  917. }
  918. }
  919. //---------------------------------------------------------------------------
  920. void __fastcall TFrmVmsLcsScheMngr::BtnAllEditClick(TObject *Sender)
  921. {
  922. TcxButton *pBtn = (TcxButton*)Sender;
  923. TcxGridTableView *pTvList = TvSche;
  924. TcxGridDataController *pGDC;
  925. String sMode = "E";
  926. if (pBtn->Tag == 1) {
  927. sMode = "A"; //추가
  928. pTvList = TvForm;
  929. }
  930. if (!pTvList) return;
  931. pGDC = pTvList->DataController;
  932. int nFormIdx = CMM_GetRecordIndex(pTvList);
  933. if (nFormIdx < 0)
  934. {
  935. Application->MessageBox(L"LCS 메시지 스케줄 일괄 관리\r\n등록되어 있는 스케줄 메시지을 목록에서 먼저 선택하세요.",
  936. FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  937. return;
  938. }
  939. String sFormId;
  940. String sWeek;
  941. if (sMode == "A") {
  942. sFormId = VarToStr(pGDC->Values[nFormIdx][ColFrm00->Index]);
  943. sWeek = "1111111";
  944. }
  945. else {
  946. sFormId = VarToStr(pGDC->Values[nFormIdx][Col00->Index]);
  947. sWeek = VarToStr(pGDC->Values[nFormIdx][ColWeek1->Index]);
  948. }
  949. TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType);
  950. if (pVmsSizeType == NULL) {
  951. Application->MessageBox(L"LCS 메시지 스케줄 일괄 관리\r\nVMS 모듈 유형을 알수 없습니다. VMS 모듈 유형을 먼저 선택하세요.",
  952. FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  953. return;
  954. }
  955. String sVmsTypeCd = pVmsSizeType->TypeCd;
  956. TVMSEDT0M *pFrmEdt = new TVMSEDT0M(this);
  957. pFrmEdt->FVmsTypeCd = sVmsTypeCd;
  958. pFrmEdt->FScheType = SCHEDULE_LCS;
  959. pFrmEdt->FScheFormType = String(pBtn->Tag);
  960. pFrmEdt->FFormId = sFormId;
  961. pFrmEdt->FMode = sMode;
  962. pFrmEdt->FVmsNmbr = "";
  963. pFrmEdt->FSymbLibNmbr = "";
  964. pFrmEdt->FStreamAddr = "";
  965. pFrmEdt->FWeek = sWeek;
  966. pFrmEdt->ShowModal();
  967. bool bOk = pFrmEdt->FSelected;
  968. delete pFrmEdt;
  969. pFrmEdt = NULL;
  970. if (bOk) {
  971. DisplayInfo();
  972. EditPreviewForm();
  973. }
  974. }
  975. //---------------------------------------------------------------------------