//--------------------------------------------------------------------------- #include #include "ITSDbF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "ITSSkinF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "FrmParkMsgF.h" #include "ITS_OPLibF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxClasses" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxEdit" #pragma link "cxFilter" #pragma link "cxGraphics" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxStyles" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "cxContainer" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "dxSkinMcSkin" #pragma resource "*.dfm" TFrmParkMsg *FrmParkMsg = NULL; //--------------------------------------------------------------------------- __fastcall TFrmParkMsg::TFrmParkMsg(TComponent* Owner, TPrkPlce *AObj) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); FObj = AObj; pADO->Connection = ITSDb_GetConnection(); TvList->OptionsView->NoDataToDisplayInfoText = "<ÁÖÂ÷Á¤º¸>"; } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::FormShow(TObject *Sender) { if (FObj) { Caption = FObj->CTLR_ID + ": " + FObj->NAME; //PnlMenu->Visible = FObj->REAL_DATA_YN == "Y" ? true : false; PnlMenu->Visible = true; } TmrShow->Enabled = true; //EdNm->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; REAL_DESC->Lines->Clear(); MoPRLT_OPER_DESC->Lines->Clear(); MoPRLT_ETC_DESC->Lines->Clear(); if (FObj) { //EdNmbr->Text = FObj->PRLT_CTLR_NMBR; //EdId->Text = FObj->PRLT_CTLR_ID; EdNm->Text = FObj->NAME; EdTel->Text = FObj->FOPR->OPER_CTT_PC_TEL; EdAddr->Text = FObj->ISTL_LCTN_ADDR; PRK_CMPRT_CO->Text = String(FObj->PRK_CMPRT_CO) + " ´ë"; MoPRLT_OPER_DESC->Lines->Add("±âº»¹«·á ½Ã°£: " + FObj->FOPR->OPERTN_BS_FREE_TIME); // ÁÖÂ÷Àå ȸÂ÷ (±âº» ¹«·á) (00:30:00) MoPRLT_OPER_DESC->Lines->Add("¿î¿µ½Ã°£ ¿Ü ¹«·á °³¹æ: " + FObj->FOPR->OPN_CODE == 0 ? "¹Ì°³¹æ" : "°³¹æ"); // °³¹æÄÚµå, ¿î¿µ½Ã°£ ¿Ü ¹«·á °³¹æ (0 : ¹Ì°³¹æ, 1 : °³¹æ) //NO_DRV_DAY_OPERTN_AT N NUMBER(1) Y ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ (0 : ¹Ì½ÃÇà, 1 : 2ºÎÁ¦, 2 : 5ºÎÁ¦, 3 : 10ºÎÁ¦, 4 : ½Â¿ëÂ÷¿äÀÏÁ¦, 9 : ±âŸ) switch(FObj->FOPR->NO_DRV_DAY_OPERTN_AT) { case 0: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: ¹Ì½ÃÇà"); break; case 1: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: 2ºÎÁ¦"); break; case 2: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: 5ºÎÁ¦"); break; case 3: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: 10ºÎÁ¦"); break; case 4: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: ½Â¿ëÂ÷¿äÀÏÁ¦"); break; default:MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷ ºÎÁ¦ ½ÃÇà¿©ºÎ: ±âŸ"); break; // 9 } switch(FObj->FOPR->PARKING_CHRGE_EXCCLC_MTHD) { case 0: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷¿ä±Ý Á¤»ê ¹æ½Ä: À¯ÀÎÁ¤»ê"); break; case 1: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷¿ä±Ý Á¤»ê ¹æ»ö: ¹«ÀÎÁ¤»ê"); break; case 2: MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷¿ä±Ý Á¤»ê ¹æ»ö: È¥ÇÕÁ¤»ê"); break; default:MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷¿ä±Ý Á¤»ê ¹æ»ö: ±âŸ"); break; // 9 } if (FObj->FOPR->PARKING_CHRGE_PYMNT_MN.Length() >= 8) { String CHRGE = FObj->FOPR->PARKING_CHRGE_PYMNT_MN; String data = ""; String comma = ""; if (CHRGE.SubString(1, 1) == "1") data += comma + "Çö±Ý"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(2, 1) == "1") data += comma + "½Å¿ëÄ«µå"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(3, 1) == "1") data += comma + "±³ÅëÄ«µå"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(4, 1) == "1") data += comma + "ÀüÀÚÁöºÒ(ÇÏÀÌÆÐ½º)"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(5, 1) == "1") data += comma + "ÈÞ´ëÆù¼Ò¾×°áÁ¦"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(6, 1) == "1") data += comma + "ÇÉÅ×Å©(OOÆäÀÌ)"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(7, 1) == "1") data += comma + "MaaS ÅëÇÕ°áÁ¦"; if (data.Length() > 0) comma = ", "; if (CHRGE.SubString(8, 1) == "1") data += comma + "±âŸ"; MoPRLT_OPER_DESC->Lines->Add("ÁÖÂ÷¿ä±Ý ÁöºÒ¼ö´Ü: " + data); // - ¾Æ·¡ À¯Çü Á¶ÇÕÇØ¼­ »ý¼º‰Î - ¿¹½Ã) Çö±Ý/½Å¿ëÄ«µå È¥ÇÕ°áÁ¦ ½Ã (11000000), ÇÉÅ×Å© °áÁ¦ ½Ã (00000100), 1: Çö±Ý, 2: ½Å¿ëÄ«µå, 3: ±³ÅëÄ«µå, 4: ÀüÀÚÁöºÒ(ÇÏÀÌÆÐ½º), 5: ÈÞ´ëÆù¼Ò¾×°áÁ¦, 6: ÇÉÅ×Å©(OOÆäÀÌ), 7: MaaS ÅëÇÕ°áÁ¦, 9: ±âŸ } MoPRLT_ETC_DESC->Lines->Text = FObj->FOPR->PARTCLR_MATTER; PnlMenu->Visible = true; } TmrQry->Interval = 100; TmrQry->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::TmrQryTimer(TObject *Sender) { TmrQry->Enabled = false; if (!FObj) return; //if (FObj->REAL_DATA_YN == "Y") { SelectParkMsg(); } TmrQry->Interval = 60 * 1000; TmrQry->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::SelectParkMsg() { String sQry; if (!FObj) { return; } CMM_ClearGridTableView(TvList); sQry = "SELECT 0 as data_seq, A.prk_plce_nmbr, A.prk_plce_manage_no, A.prk_plce_nm, \r\n" " B.cmnc_stts_cd, DECODE(B.cmnc_stts_cd, 'CMS0', 'Á¤»ó', 'ÀÌ»ó') AS cmnc_stts_desc, \r\n" " C.data_colct_time, 'Àüü' AS flr_no, \r\n" " C.parking_cgs_sttus, \r\n" " DECODE(C.parking_cgs_sttus, 0, '¿©À¯', \r\n" " 1, 'º¸Åë', \r\n" " 2, 'È¥Àâ', \r\n" " 3, '¸¸Â÷', \r\n" " '¾Ë¼ö¾øÀ½') AS parking_cgs_desc, \r\n" " C.prk_cmprt_co AS prk_cmprt_co, \r\n" " C.remndr_prk_cmprt_co AS remndr_prk_cmprt_co, \r\n" " C.partclr_matter \r\n" " FROM TB_PRK_PLCE A, TB_PRK_PLCE_STTS B, \r\n" " TB_PRK_PLCE_RT C \r\n" " WHERE A.prk_plce_nmbr = :p01 \r\n" " AND A.prk_plce_nmbr = B.prk_plce_nmbr \r\n" " AND A.prk_plce_nmbr = C.prk_plce_nmbr \r\n" " AND A.pis_type != 'N' \r\n" " AND A.del_yn = 'N' \r\n" "UNION ALL \r\n" "SELECT 1 as data_seq, A.prk_plce_nmbr, '' AS prk_plce_manage_no, '' AS prk_plce_nm, \r\n" " B.cmnc_stts_cd, '' AS cmnc_stts_desc, \r\n" " '' AS data_colct_time, D.flr_no AS flr_no, \r\n" " C.parking_cgs_sttus, \r\n" " '' AS parking_cgs_desc, \r\n" " D.flr_prk_cmprt_co AS prk_cmprt_co, \r\n" " D.flr_remndr_prk_cmprt_co AS remndr_prk_cmprt_co, \r\n" " C.partclr_matter \r\n" " FROM TB_PRK_PLCE A, TB_PRK_PLCE_STTS B, \r\n" " TB_PRK_PLCE_RT C, TB_PRK_PLCE_FLR D \r\n" " WHERE A.prk_plce_nmbr = :p02 \r\n" " AND A.prk_plce_nmbr = B.prk_plce_nmbr \r\n" " AND A.prk_plce_nmbr = C.prk_plce_nmbr \r\n" " AND A.prk_plce_nmbr = D.prk_plce_nmbr \r\n" " AND A.pis_type != 'N' \r\n" " AND A.del_yn = 'N' \r\n" " ORDER BY prk_plce_nmbr, data_seq, flr_no \r\n"; try { int nRow; TvList->BeginUpdate(); try { pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FObj->CTLR_NMBR); ITSDb_SQLBind(pADO, "p02", FObj->CTLR_NMBR); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { nRow = TvList->DataController->AppendRecord(); TvList->DataController->Values[nRow][Col03->Index] = pADO->FieldByName("cmnc_stts_desc")->AsString; String data_colct_time = pADO->FieldByName("data_colct_time")->AsString; if (data_colct_time != "") TvList->DataController->Values[nRow][Col04->Index] = ITSUtil_StrToDateTime(pADO->FieldByName("data_colct_time")->AsString).FormatString(STR_DATETIME); else TvList->DataController->Values[nRow][Col04->Index] = data_colct_time; TvList->DataController->Values[nRow][Col05->Index] = pADO->FieldByName("parking_cgs_desc")->AsString; TvList->DataController->Values[nRow][Col06->Index] = pADO->FieldByName("flr_no")->AsString; TvList->DataController->Values[nRow][Col07->Index] = pADO->FieldByName("prk_cmprt_co")->AsString; TvList->DataController->Values[nRow][Col08->Index] = pADO->FieldByName("remndr_prk_cmprt_co")->AsString; } ITSDb_SQLClose(pADO); } catch(EDatabaseError &E) { throw Exception(String(E.ClassName()) + E.Message); } catch(...) { throw Exception("¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } __finally { TvList->EndUpdate(); } selPrvInfo(); } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::selPrvInfo() { String sQry; REAL_DESC->Lines->Clear(); if (!FObj) { return; } sQry = "SELECT A.* \r\n" " FROM TB_PRK_PLCE_PRV A \r\n" " WHERE A.prk_plce_nmbr = :p01 \r\n" " ORDER BY A.VHCTY_AR_SE \r\n"; try { try { pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FObj->CTLR_NMBR); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { int VHCTY_AR_SE = pADO->FieldByName("VHCTY_AR_SE")->AsInteger; int VHCTY_AR_PRK_CMPRT_CO = pADO->FieldByName("VHCTY_AR_PRK_CMPRT_CO")->AsInteger; int VHCTY_AR_REMNDR_PRK_CMPRT_CO = pADO->FieldByName("VHCTY_AR_REMNDR_PRK_CMPRT_CO")->AsInteger; if (VHCTY_AR_PRK_CMPRT_CO == 0) { continue; } switch(VHCTY_AR_SE) { case 0: REAL_DESC->Lines->Add("°æÂ÷ Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 1: REAL_DESC->Lines->Add("ģȯ°æÂ÷(Àü±âÂ÷): ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 2: REAL_DESC->Lines->Add("È­¹°Â÷ Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 3: REAL_DESC->Lines->Add("±ä±ÞÂ÷·® Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 4: REAL_DESC->Lines->Add("Àå¾ÖÀÎ Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 5: REAL_DESC->Lines->Add("¾î¸£½Å Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 6: REAL_DESC->Lines->Add("¿©¼º Àü¿ë: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; case 9: REAL_DESC->Lines->Add("±âŸ: ÁÖÂ÷±¸È¹¼ö(" + String(VHCTY_AR_PRK_CMPRT_CO) + ") ÁÖÂ÷°¡´É(" + String(VHCTY_AR_REMNDR_PRK_CMPRT_CO) + ")"); break; } } ITSDb_SQLClose(pADO); } catch(EDatabaseError &E) { throw Exception(String(E.ClassName()) + E.Message); } catch(...) { throw Exception("¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } __finally { } } //--------------------------------------------------------------------------- void __fastcall TFrmParkMsg::FormDestroy(TObject *Sender) { TmrQry->Enabled = false; try { if (FObj) FObj->FData1 = NULL; } catch(...) {} } //---------------------------------------------------------------------------