目的: V20301 – checkboxGroup – 多選 處理
處理說明: 1>checkboxGroup – 多選
- 前端:欄位值 Array
- 後端 :欄位值以 , 分隔
- 前端:欄位值 Array
- 後端 :欄位值以 , 分隔
2>顯示資料 , 必需單獨讀取 checkbox 的欄位值
np["s_STATFM"] = Ext.getCmp('s_STATFM').getValue();
{
xtype: 'button',
id: 'btn_Show',
flex: 2,
border: 1,
text: '資料顯示',
iconCls: 'icon-search',
handler: function () {
var np = s_JSON('s_form'); //TMFunction.js, 組合form上的查詢條件為json參數傳遞
console.log("Ext.getCmp('s_STATFM') : ", Ext.getCmp('s_STATFM'));
np["s_STATFM"] = Ext.getCmp('s_STATFM').getValue();
//若同時勾選[v]已發工[v]已完工 , 則欄位值 Array of : ['B','H']
console.log(" np[s_STATFM] : ", np["s_STATFM"]);
var Proc_Msg;
try {
Proc_Msg = new Ext.LoadMask(Ext.getCmp("s_PROCMSG"),
{ msg: '交修件資料顯示處理中, 請稍候...', }
);
Proc_Msg.show();//使用 mask 需手動呼叫show() 方法下
//getGridData_M --> 轉工只有曾在於工作中心就會列入 , 後來改為 [目前工作中心]=xxxx , 才顯示
//gridstore.getProxy().url = '../api/V80205API/getGridData_M';
//2022/06/15 ..過濾條件若[目前工作中心]有值,則過濾 [目前工作中心]=xxxx, 其他 工作中心資料不顯示
// url 改為 getGridData_M_sub_WC --> 同 [過濾目前工作中心]鈕,的處理方法 ,
gridstore.getProxy().url = '../api/V20301API/getGridData_M';
gridstore.getProxy().extraParams = np; //分頁OK,篩選條件OK
console.log("1 reloadGridData - before");
Ext.getCmp('grid_Single').reloadGridData();
console.log("2 reloadGridData - after");
}
finally {
Proc_Msg.hide(); //使用 mask 需手動呼叫hide() 方法下
}
}
}, // end of 顯示資料
{
xtype: 'panel',
id: 'panel14',
layout: { type: 'vbox', align: 'stretch' },
//layout: { type: 'vbox'},
flex: 14,
border: 0,
items: [
{
xtype: 'checkboxgroup', fieldLabel: '單況', labelWidth: 40, layout: 'vbox',
id: 's_STATFM',
items: [
{
boxLabel: '已發工',
name: 's_STATFM',
inputValue: 'B',
//id: 's_checkbox1'
}, {
boxLabel: ' 已完工',
name: 's_STATFM',
inputValue: 'H',
},
]
}, // end of s_交修單單況
2>*.cs
[HttpPost]
public dynamic getGridData_M()
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
//DataSet ds = getGridDataPage();
//return ds;
//Panel11
string Tmp_FMNO = nvc["s_FMNO"];
string Tmp_OGONOAF = nvc["s_OGONOAF"];
string Tmp_NGONOAF = nvc["s_NGONOAF"];
string Tmp_RPNOAF = nvc["s_RPNOAF"];
string Tmp_MRPNOAF = nvc["s_MRPNOAF"];
//Panel12
string Tmp_PN = nvc["s_PN"];
string Tmp_NSN = nvc["s_NSN"];
string Tmp_EIAC_CUS = nvc["s_EIAC_CUS"];
string Tmp_C_NM = nvc["s_C_NM"];
string Tmp_ES_NM = nvc["s_ES_NM"];
//Panel13
string Tmp_WBSNO = nvc["s_WBSNO"];
string Tmp_SEQOAF = nvc["s_SEQOAF"];
string Tmp_FACWC = nvc["s_FACWC"];
string Tmp_MCODE = nvc["s_MCODE"];
string Tmp_BTDT1 = "";
string Tmp_BTDT2 = "";
if (!myfunc.checkisnull(nvc["s_BTDT1"]))
{
Tmp_BTDT1 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_BTDT1"]));
};
if (!myfunc.checkisnull(nvc["s_BTDT2"]))
{
Tmp_BTDT2 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_BTDT2"]));
};
//Panel14
string Tmp_STATFM = nvc["s_STATFM"];
OracleCommand cmd = new OracleCommand();
string Tmp_Sql1 = ""; //for 日期起迄
string Tmp_Sql = " SELECT RNK, "
+ " FMNO,WBSNO ,FRTP,PN,C_NM,ES_NM,NSN,RQTYAF,SEQOAF,PROID ,CDCODE,EONO,OSM,DTSOR,ISSN,EIAC_CUS,RBTHAF,FACWC,MTEMPLYID,FRNOAF,PAMMNO,SAPREMARK,REMARK,"
+ " OGONOAF ,NGONOAF ,RPNOAF ,MRPNOAF ,PRNRAF,CRNRAF,NRCLAF,FREDTAF,PJDT,DLEMPLYID,CREMPLYID,QDRNO,BTDT,MDDT,CSTNM,NEMPID,LGROUP,CRNO,MCODE,ENGP,STATFM,AMMNO,TYPEAF,OPHR "
+ " FROM ( SELECT dense_rank() over(order by FMNO) as RNK,"
+ " FMNO,WBSNO ,FRTP,PN,C_NM,ES_NM,NSN,RQTYAF,SEQOAF,PROID ,CDCODE,EONO,OSM,DTSOR,ISSN,EIAC_CUS,RBTHAF,FACWC,MTEMPLYID,FRNOAF,PAMMNO,SAPREMARK,REMARK,"
+ " OGONOAF ,NGONOAF ,RPNOAF ,MRPNOAF ,PRNRAF,CRNRAF,NRCLAF,FREDTAF,PJDT,DLEMPLYID,CREMPLYID,QDRNO,BTDT,MDDT,CSTNM,NEMPID,LGROUP,CRNO,MCODE,ENGP,STATFM,AMMNO,TYPEAF,OPHR "
+ " FROM AMM_FM A "
+ " WHERE 1=1 "
+ " AND STATFM IN ('A','B','H') ";
//panel11
//系統件單號
if (!myfunc.checkisnull(Tmp_FMNO))
{
Tmp_Sql = Tmp_Sql + " AND FMNO LIKE " + myfunc.AA("%" + Tmp_FMNO + "%");
};
//拆檢提領編號
if (!myfunc.checkisnull(Tmp_OGONOAF))
{
Tmp_Sql = Tmp_Sql + " AND OGONOAF LIKE " + myfunc.AA("%" + Tmp_OGONOAF + "%");
};
//維修提領編號
if (!myfunc.checkisnull(Tmp_NGONOAF))
{
Tmp_Sql = Tmp_Sql + " AND NGONOAF LIKE " + myfunc.AA("%" + Tmp_NGONOAF + "%");
};
//拆檢交修單號
if (!myfunc.checkisnull(Tmp_RPNOAF))
{
Tmp_Sql = Tmp_Sql + " AND RPNOAF LIKE " + myfunc.AA("%" + Tmp_RPNOAF + "%");
};
//維修交修單號
if (!myfunc.checkisnull(Tmp_MRPNOAF))
{
Tmp_Sql = Tmp_Sql + " AND MRPNOAF LIKE " + myfunc.AA("%" + Tmp_MRPNOAF + "%");
};
//panel12
//件號
if (!myfunc.checkisnull(Tmp_PN))
{
Tmp_Sql = Tmp_Sql + " AND PN LIKE " + myfunc.AA("%" + Tmp_PN + "%");
};
//料號
if (!myfunc.checkisnull(Tmp_NSN))
{
Tmp_Sql = Tmp_Sql + " AND NSN LIKE " + myfunc.AA("%" + Tmp_NSN + "%");
};
//機種
if (!myfunc.checkisnull(Tmp_EIAC_CUS))
{
Tmp_Sql = Tmp_Sql + " AND EIAC_CUS LIKE " + myfunc.AA("%" + Tmp_EIAC_CUS + "%");
};
//中文名稱
if (!myfunc.checkisnull(Tmp_C_NM))
{
Tmp_Sql = Tmp_Sql + " AND C_NM LIKE " + myfunc.AA("%" + Tmp_C_NM + "%");
};
//英文簡稱
if (!myfunc.checkisnull(Tmp_ES_NM))
{
Tmp_Sql = Tmp_Sql + " AND ES_NM LIKE " + myfunc.AA("%" + Tmp_ES_NM + "%");
};
//panel13
//WBS
if (!myfunc.checkisnull(Tmp_WBSNO))
{
Tmp_Sql = Tmp_Sql + " AND WBSNO LIKE " + myfunc.AA("%" + Tmp_WBSNO + "%");
};
//序號
if (!myfunc.checkisnull(Tmp_SEQOAF))
{
Tmp_Sql = Tmp_Sql + " AND SEQOAF LIKE " + myfunc.AA("%" + Tmp_SEQOAF + "%");
};
//FACWC
if (!myfunc.checkisnull(Tmp_FACWC))
{
Tmp_Sql = Tmp_Sql + " AND FACWC LIKE " + myfunc.AA("%" + Tmp_FACWC + "%");
};
//MCODE
if (!myfunc.checkisnull(Tmp_MCODE))
{
Tmp_Sql = Tmp_Sql + " AND MCODE = " + myfunc.AA(Tmp_MCODE);
};
//建檔日期 - 起 - 迄
if ((!myfunc.checkisnull(Tmp_BTDT1)) || (!myfunc.checkisnull(Tmp_BTDT2)))
{
if (!myfunc.checkisnull(Tmp_BTDT1))
{
Tmp_Sql1 = Tmp_Sql1 + " AND BTDT>=" + myfunc.AA(Tmp_BTDT1);
};
if (!myfunc.checkisnull(Tmp_BTDT2))
{
Tmp_Sql1 = Tmp_Sql1 + " AND BTDT<=" + myfunc.AA(Tmp_BTDT2);
}
Tmp_Sql = Tmp_Sql + Tmp_Sql1;
};
//panel15
//單況現況 - checkboxgroup
if (!myfunc.checkisnull(Tmp_STATFM))
{
switch (Tmp_STATFM)
{
case "B": //已發工
//Tmp_Sql = Tmp_Sql + "AND STATFM IN ('B','C','D','E','F','G') ";
Tmp_Sql = Tmp_Sql + " AND AMMNO IN ( SELECT AMMNO FROM AMM_SRO WHERE AMMNO=A.AMMNO AND SAPNO IS NOT NULL ) ";
break;
case "H": //已完工
Tmp_Sql = Tmp_Sql + " AND AMMNO IS NOT NULL AND STATFM ='H' ";
break;
case "B,H": //已發工 & 已完工均勾選
Tmp_Sql = Tmp_Sql
+ " AND ( (AMMNO IS NOT NULL AND STATFM ='H') "
+ " AND (AMMNO IN ( SELECT AMMNO FROM AMM_SRO WHERE AMMNO=A.AMMNO AND SAPNO IS NOT NULL ) )"
+ " )";
break;
}
};
Tmp_Sql = Tmp_Sql + ")";
cmd.CommandText = Tmp_Sql;
string countSql = " SELECT COUNT(*) as total FROM (" + Tmp_Sql + ")";
DataSet ds = getDataTable(cmd, countSql, true, true);
//新增 CaluField 欄位 - [工單類別]
Tmp_Sql = " SELECT SROTP as FRTP, SROTPNAME "
+ " FROM AMM_SROTP "
+ " WHERE 1=1 ";
getKeyCode("FRTP", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [維修人員姓名]
Tmp_Sql = " SELECT EMPLYID as MTEMPLYID, EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("MTEMPLYID", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [發工人員姓名]
Tmp_Sql = " SELECT EMPLYID as DLEMPLYID, EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("DLEMPLYID", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [管制人員姓名]
Tmp_Sql = " SELECT EMPLYID as CREMPLYID, EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("CREMPLYID", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [工程人員姓名]
Tmp_Sql = " SELECT EMPLYID as ENGP, EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("ENGP", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [專案人員姓名]
Tmp_Sql = " SELECT EMPLYID as NEMPID, EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("NEMPID", ref ds, Tmp_Sql);
//新增 CaluField 欄位 - [FM單況 ]
getKeyCode("STATFM", ref ds);
//新增 CaluField 欄位 - [保固構改管制碼 ]
getKeyCode("MCODE", ref ds);
//新增 CaluField 欄位 - [約別 ]
getKeyCode("TYPEAF", ref ds);
return ds;
} // end of GetGridData_M()