目的: V80204 – Detail *2 -[工作中心報工工時] [報工明細]頁 - .工時格式化: 小數2位
處理說明: 1>Master - selectionchange event
Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
if (selections.length == 0) {
return;
}
Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
if (selections.length == 0) {
return;
}
//1>>開啟 grid_D
var Tmp_store = Ext.getCmp('grid_D').store;
Tmp_store.getProxy().extraParams = np;
Tmp_store.getProxy().url = "../api/V80204API/getGridData_D";
Tmp_store.loadPage(1);
2>格式化: 工時小數位2位 - 後端處理[HOUR_WK_][HOUR_OT_]
DataRow dr = ds.Tables["T1"].Rows[i];
Tmp_HOUR_WORK = double.Parse(dr["HOUR_WORK"].ToString());
Tmp_HOUR_OT = double.Parse(dr["HOUR_OT"].ToString());
dr["HOUR_WORK_"] = Tmp_HOUR_WORK.ToString("0.00");
dr["HOUR_OT_"] = Tmp_HOUR_OT.ToString("0.00");
1>*.js - V80204
//Detail 加入 [報工明細]頁
var grid_D1 = Ext.create('grid_D', {
grid_id: 'grid_D1',
insert_btn_id: 'btn_add_D1',
columns: J_columns_D1,
title: '報工明細',
store: Ext.create('gridstore_D', { model: J_gridmodel_D1 }),
//form_items: J_formFields_D1,
//form_id: 'myform_D1'
});
Ext.getCmp('tab_D').add(grid_D1);
Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
//MD_DB.reloadDetailStore(selections[0]);
console.log("selections.length: ", selections.length);
if (selections.length == 0) {
return;
}
var Tmp_rec = selections[0];
console.log("Tmp_rec: ", Tmp_rec);
var Tmp_SAPNO = Tmp_rec.data["SAPNO"];
var Tmp_WC = Tmp_rec.data["CURR_ARBPL_"];
console.log("Tmp_SAPNO: ", Tmp_SAPNO);
console.log("Tmp_WC: ", Tmp_WC);
var np = {};
np["SAPNO"] = Tmp_SAPNO;
np["WC"] = Tmp_WC;
//2>開啟 grid_D
var Tmp_store = Ext.getCmp('grid_D').store;
Tmp_store.getProxy().extraParams = np;
Tmp_store.getProxy().url = "../api/V80204API/getGridData_D";
Tmp_store.loadPage(1);
//2>開啟 grid_D1
console.log("open grid_D1.. ");
Tmp_store = Ext.getCmp('grid_D1').store;
Tmp_store.getProxy().extraParams = np;
Tmp_store.getProxy().url = "../api/V80204API/getGridData_D1";
Tmp_store.loadPage(1);
});
2> *.cs
//Detail - [工作中心報工工時]頁 - WebService 傳回資料 - WS_ALS_WS01
[HttpPost]
public dynamic getGridData_D()
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
OracleCommand cmd = new OracleCommand();
string Tmp_SAPNO = nvc["SAPNO"];
string Tmp_WC = nvc["WC"];
//string Tmp_SAPNO = "22569801";
//string Tmp_WC = "";
DataSet ds = myfunc.getWS_ALS_WS01(Tmp_SAPNO,Tmp_WC);
int Tmp_Cnt = ds.Tables["T1"].Rows.Count;
double Tmp_MIN = 0;
double Tmp_HOUR_ = 0;
ds.Tables["T1"].Columns.Add(new DataColumn("HOUR_", typeof(string)));
for (int i = 0; i < Tmp_Cnt; i++)
{
//施工人數/施工工時/施工步序
DataRow dr = ds.Tables["T1"].Rows[i];
Tmp_MIN = double.Parse(dr["HOUR"].ToString());
Tmp_HOUR_ = (Tmp_MIN / 60);
dr["HOUR_"] = Tmp_HOUR_.ToString("0.00");
} // end of for (int i=0
return ds;
}
//Detail1 - [報工明細]頁 - 工時.小數格式化
[HttpPost]
public dynamic getGridData_D1(bool par_paging = true)
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
OracleCommand cmd = new OracleCommand();
string Tmp_SAPNO = nvc["SAPNO"];
string Tmp_WC = nvc["WC"];
string Tmp_Sql = "SELECT RNK, JCN, ACT, WC, CAST(HOUR_WORK as decimal(3, 2)) HOUR_WORK,CAST(HOUR_OT as decimal(3, 2)) HOUR_OT, DATA_DATE, EMPLYNM "
+ "FROM (SELECT dense_rank() over(order by JCN,ACT) as RNK,"
+ " a.JCN,a.ACT,a.WC,round(a.HOUR_WORK/60,2) HOUR_WORK, "
+ " round(a.HOUR_OT / 60, 2) HOUR_OT,a.DATA_DATE,b.EMPLYNM "
+ " FROM ( SELECT JCN, ACT, WC, HOUR_WORK, work_ID, HOUR_OT, DATA_DATE "
+ " FROM HOUR.ALS_HOUR_COMP @ALS_HOUR "
+ " WHERE JCN = LPAD(" + myfunc.AA(Tmp_SAPNO) + ", 12, 0) "
+ " union all "
+ " SELECT JCN, ACT, WC, HOUR_WORK, work_ID, HOUR_OT, DATA_DATE "
+ " FROM HOUR.ALS_HOUR_COMP_HISTORY @ALS_HOUR "
+ " WHERE JCN = LPAD(" + myfunc.AA(Tmp_SAPNO) + ", 12, 0) "
+ " ORDER BY ACT, WC "
+ " ) a, HR_EMPLYM b "
+ " WHERE a.WORK_ID = b.EMPLYID(+) "
+ " ORDER BY a.ACT ";
Tmp_Sql = Tmp_Sql + " ) ";
cmd.CommandText = Tmp_Sql;
string countSql = " SELECT COUNT(*) as total FROM (" + Tmp_Sql + ")";
//匯出時 ,取全部資料, par_paging =true
DataSet ds = getDataTable(cmd, countSql, par_paging);
//將[工時] 轉換成小數2位
int Tmp_Cnt = ds.Tables["T1"].Rows.Count;
double Tmp_HOUR_OT = 0;
double Tmp_HOUR_WORK = 0;
ds.Tables["T1"].Columns.Add(new DataColumn("HOUR_WORK_", typeof(string)));
ds.Tables["T1"].Columns.Add(new DataColumn("HOUR_OT_", typeof(string)));
for (int i = 0; i < Tmp_Cnt; i++)
{
//施工人數/施工工時/施工步序
DataRow dr = ds.Tables["T1"].Rows[i];
Tmp_HOUR_WORK = double.Parse(dr["HOUR_WORK"].ToString());
Tmp_HOUR_OT = double.Parse(dr["HOUR_OT"].ToString());
dr["HOUR_WORK_"] = Tmp_HOUR_WORK.ToString("0.00");
dr["HOUR_OT_"] = Tmp_HOUR_OT.ToString("0.00");
} // end of for (int i=0
return ds;
}