目的: V1060301 – 編輯-存檔-允許編輯PK欄位 – PROJID+TYPE+ITEM
- 若PK Table(AMM_CHKCHG) 已有 子 Table(AMM_CHKCHG_ASN)
--> 修改 PK ,則會出現錯誤訊息,不允許修改
- 若PK Table(AMM_CHKCHG) 已有 子 Table(AMM_CHKCHG_ASN)
--> 修改 PK ,則會出現錯誤訊息,不允許修改
處理說明: 1>*.js - beforeEdit : 將 PK的舊欄位值傳至後端
Ext.getCmp('btn_save').beforeEdit = function () {
Ext.getCmp('btn_save').beforeEdit = function () {
//isCheck = S_DB.doSave('Update');
//doSave: function (actType_S, apiName, pkFunctionName, oKeyArr)
//oDKeyArr:要修改的PK,在JS樣板會自動加上o_並起一併傳到C#(EX:'SCITM')
isCheck = S_DB.doSave('Update', undefined, undefined, ['ITEM']);
return isCheck;
};
2>*.cs - Update
[HttpPost]public void Update(){var c = System.Web.HttpContext.Current;NameValueCollection nvc = c.Request.Form;//string[] arrCondition = getPK();//excuteUpdate(nvc, DBTable, arrCondition);string[] arrCondition = new string[] { "PROJID","TYPE" }; //不含會異動的PKNameValueCollection i_nvc = new NameValueCollection(); //不含異動的o_PKstring[] arr_key = nvc.AllKeys;Dictionary<string, dynamic> oldParamDict = new Dictionary<string, dynamic>();for (int i = 0; i < arr_key.Length; i++){if ((arr_key[i].IndexOf("o_") >= 0)){oldParamDict.Add(arr_key[i], nvc[arr_key[i]]);}else{i_nvc[arr_key[i]] = nvc[arr_key[i]];}}excuteUpdate(i_nvc, "AMM_CHKCHG", arrCondition, null, true, oldParamDict);}
1>*.js - 將 PK 的舊值傳至後端
Ext.getCmp('btn_save').beforeEdit = function () {
//isCheck = S_DB.doSave('Update');
//doSave: function (actType_S, apiName, pkFunctionName, oKeyArr)
//oDKeyArr:要修改的PK,在JS樣板會自動加上o_並起一併傳到C#(EX:'SCITM')
isCheck = S_DB.doSave('Update', undefined, undefined, ['PROJID','TYPE','ITEM']);
return isCheck;
};
2>*.cs- 透過 executeUpdate 參數- 組合出 SQL
UPDATE AMM_CHKCHG
SET PROJID=:PRJID
TYPE=:TYPE
ITEM=:ITEM
CHKCHG_TM=:CHKCHG_TM
WHERE PROJID=:o_PROJID
AND TYPE=:o_TYPE
AND ITEM=:o_ITEM
-->
[HttpPost]
public void Update()
{
var c = System.Web.HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
//string[] arrCondition = getPK();
//excuteUpdate(nvc, DBTable, arrCondition);
//string[] arrCondition = new string[] { "PROJID","TYPE" }; //會異動到的key值(ITEM)不要寫進去
string[] arrCondition = new string[] {}; //會動到的key值不要寫進去
NameValueCollection i_nvc = new NameValueCollection();
string[] arr_key = nvc.AllKeys;
Dictionary<string, dynamic> oldParamDict = new Dictionary<string, dynamic>();
for (int i = 0; i < arr_key.Length; i++)
{
if ((arr_key[i].IndexOf("o_") >= 0))
{
oldParamDict.Add(arr_key[i], nvc[arr_key[i]]);
}
else
{
i_nvc[arr_key[i]] = nvc[arr_key[i]];
}
}
//public string excuteUpdate(NameValueCollection nvc, string tableName, string[] arrCondition, Dictionary<string, dynamic> dict = null, bool isExcute = true, Dictionary<string, dynamic> oldParamDict = null, OracleConnection i_conn = null)
excuteUpdate(i_nvc, "AMM_CHKCHG", arrCondition, null, true, oldParamDict);
}
沒有留言:
張貼留言