目的: V80209 – MD畫面 – 顯示 Detail 資料
處理說明:1> Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
1>>取得目前畫面的過濾條件
var np = s_JSON('s_form'); //TMFunction.js, 組合form上的查詢條件為json參數傳遞
2>>取得目前 Master PK欄位值
var cur_recs = Ext.getCmp('grid_M').selModel.getSelection();
var cur_rec = cur_recs[0];
np["RVNO"] = cur_rec.data["RVNO"];
3>設定 Detail .store.proxy
gridstore.getProxy().url = '../api/V80209API/getGridData_D';
gridstore.getProxy().extraParams = np; //分頁OK,篩選條件OK
Ext.getCmp('grid_D').reloadGridData(false); //若Detail資料空白時,不顯示無資料訊息
Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
var np = s_JSON('s_form'); //TMFunction.js, 組合form上的查詢條件為json參數傳遞
//console.log("Ext.getCmp('s_STAT') : ", Ext.getCmp('s_STAT'));
var gridstore = Ext.getCmp('grid_D').store;
var cur_recs = Ext.getCmp('grid_M').selModel.getSelection();
if (cur_recs.length == 0) {
//Tmp_Str = "請先選擇要查詢的資料<br>";
//mywarnalert(Tmp_Str);
return;
}
var cur_rec = cur_recs[0];
np["RVNO"] = cur_rec.data["RVNO"];
np["s_VRCODE"] = Ext.getCmp('s_VRCODE').getValue();
np["s_UPDREC"] = Ext.getCmp('s_UPDREC').getValue();
np["s_UPDDT1"] = Ext.getCmp('s_UPDDT1').getValue();
np["s_UPDDT2"] = Ext.getCmp('s_UPDDT2').getValue();
console.log(" np[s_VRCODE] : ", np["s_VRCODE"]);
console.log(" np[s_UPDDT1] : ", np["s_UPDDT1"]);
console.log(" np[s_UPDDT2] : ", np["s_UPDDT2"]);
gridstore.getProxy().url = '../api/V80209API/getGridData_D';
gridstore.getProxy().extraParams = np; //分頁OK,篩選條件OK
Ext.getCmp('grid_D').reloadGridData(false); //若Detail資料空白時,不顯示無資料訊息
});
2>*.cs - getGridData_D()
[HttpPost]
public dynamic getGridData_D()
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
OracleCommand cmd = new OracleCommand();
setDBTable("AMM_FRO3F16D");
string Tmp_RVNO = nvc["RVNO"];
string Tmp_VRCODE = nvc["s_VRCODE"];
string Tmp_UPDREC = nvc["s_UPDREC"];
string Tmp_UPDDT1 = nvc["s_UPDDT1"];
string Tmp_UPDDT2 = nvc["s_UPDDT2"];
//string csSQL = " AND RVNO = :RVNO ";
//cmd.CommandText = csSQL;
//cmd.Parameters.Add(":RVNO", RVNO);
//setDBTable("AMM_FRO3F16D");
//DataSet ds = getGridDataPage(cmd);
string Tmp_Sql1 = "", Tmp_Sql2 = ""; //for 日期起迄
string Tmp_Sql = " SELECT RNK,RVNO,ITM,REER,INDDT,OUTDDT,NOTE,VRCODE,PN,SN,QDRNO,DIRNO,ACNO,MKTM "
+ " FROM ( SELECT dense_rank() over(order by RVNO,ITM) as RNK,"
+ " RVNO,ITM,REER,INDDT,OUTDDT,NOTE,VRCODE,PN,SN,QDRNO,DIRNO,ACNO,MKTM "
+ " FROM AMM_FRO3F16D "
+ " WHERE 1=1 ";
//拆移編號
if (!myfunc.checkisnull(Tmp_RVNO))
{
Tmp_Sql = Tmp_Sql + " AND RVNO=" + myfunc.AA(Tmp_RVNO);
};
//異動原因
if (!myfunc.checkisnull(Tmp_VRCODE))
{
if (Tmp_VRCODE != "ALL")
Tmp_Sql = Tmp_Sql + " AND VRCODE=" + myfunc.AA(Tmp_VRCODE);
};
//異動記錄
if (!myfunc.checkisnull(Tmp_UPDREC))
{
if (Tmp_UPDREC != "ALL")
Tmp_Sql = Tmp_Sql + " AND (RVNO,ITM) IN ( SELECT RVNO,MAX(ITM) "
+" FROM AMM_FRO3F16D "
+" WHERE RVNO="+myfunc.AA(Tmp_RVNO)
+" GROUP BY RVNO "
+" ) ";
};
//異動日期
if (!(myfunc.checkisnull(Tmp_UPDDT1) && myfunc.checkisnull(Tmp_UPDDT2)))
{
if (!myfunc.checkisnull(Tmp_UPDDT1))
{
Tmp_Sql1 = Tmp_Sql1 + " (trunc(INDDT)>= " + myfunc.AA(Tmp_UPDDT1) + ")";
Tmp_Sql2 = Tmp_Sql2 + " (trunc(OUTDDT)>= " + myfunc.AA(Tmp_UPDDT1) + ")";
};
if (!myfunc.checkisnull(Tmp_UPDDT2))
{
if (!myfunc.checkisnull(Tmp_Sql1))
{
Tmp_Sql1 = Tmp_Sql1 + " AND ";
Tmp_Sql2 = Tmp_Sql2 + " AND ";
}
Tmp_Sql1 = Tmp_Sql1 + " (trunc(INDDT)<= " + myfunc.AA(Tmp_UPDDT2) + ")";
Tmp_Sql2 = Tmp_Sql2 + " (trunc(OUTDDT)<= " + myfunc.AA(Tmp_UPDDT2) + ")";
}; // end of if (!myfunc.checkisnull(Tmp_UPDDT2))
Tmp_Sql = Tmp_Sql
+" AND ( "
+ "("+ Tmp_Sql1+")"
+ " OR "
+ "("+Tmp_Sql2 +")"
+ ") ";
}; // if (!(myfunc.checkisnull(Tmp_UPDDT1) || myfunc.checkisnull(Tmp_UPDDT2)))
Tmp_Sql = Tmp_Sql + " ) ";
cmd.CommandText = Tmp_Sql;
string countSql = " SELECT COUNT(*) as total FROM (" + Tmp_Sql + ")";
DataSet ds = getDataTable(cmd, countSql);
//新增 CaluField 欄位 - [異動碼]
getKeyCode("VRCODE", ref ds);
//新增 CaluField 欄位 - [處理人員姓名]
Tmp_Sql = " SELECT EMPLYID AS REER,EMPLYNM "
+ " FROM HR_EMPLYM ";
getKeyCode("REER", ref ds,Tmp_Sql);
return ds;
}