2022年10月3日 星期一

V120703 人員排訓資料維護 – MD 維護

 V120703 人員排訓資料維護 – MD 維護

處理說明: 1>Master資料移動時, 顯示目前M資料的Detail資料

                  2>按[修改]鈕時, 允許編輯 Detail 的資料   


     Detail 新增



1>*.js - Master資料移動時, 顯示目前M資料的Detail資料

Ext.onReady(function () {

   var TMMDViewEdit = Ext.create('TMMDViewEdit');
    //var gridstore = Ext.getCmp('grid_Single').store;
    
    var MD_DB = Ext.create('MD_DB', {
        apiName: 'V120703',
        table_M: 'AMM_TRPM',
        aKey_M: ['TRNO','EMPLYID'],
        table_D: ['AMM_TRPD']
    });

    grid_D = Ext.getCmp('grid_D');

//Master資料移動時, 顯示目前M資料的Detail資料
 Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
        console.log("selectionchange !!");
        console.log("selections[0]: ", selections[0]);
        MD_DB.reloadDetailStore(selections[0]);
    });

Ext.getCmp('grid_M').addDocked({
        dockedItems: [{
            items: [Query]
        }]
    });

//設定 edit,add 的畫面屬性設定
    Ext.getCmp('btn_edit').on("click", function () {
        setFieldsCls('myform',['TRNO','EMPLYID','MUSTTR'],[],[]);
showFormButton('myform',['btn_TRNO','btn_EMPLYID','btn_MUSTTR']);
    });

    Ext.getCmp('btn_add').on("click", function () {
        setFieldsCls('myform',['TRNO','EMPLYID','MUSTTR'],[],[]);
showFormButton('myform',['btn_TRNO','btn_EMPLYID','btn_MUSTTR']);
    });


2>[修改]鈕, 按此鈕, 允許修改 Detail 的新增 & 修改
 //Detail新增
    Ext.getCmp('btn_add_D').on("click", function () {
    setFieldsCls('myform_D', [], [], ['d_TRNO', 'd_EMPLYID', 'd_ITM', 'd_CMPDT', 'd_TECLV', 'd_SCHTRDT']);
        //取得Master目前的 TRNO 及 EMPLYID
        var cur_rec = Ext.getCmp("grid_M").getSelectionModel().getSelection();
        if (cur_rec.length > 0) {
            var cur_TRNO = cur_rec[0].get("TRNO");
            var cur_EMPLYID = cur_rec[0].get("EMPLYID");
            console.log("cur_TRNO=", cur_TRNO);
            var Tmp_MaxITM = Number(getMaxITM(cur_TRNO, cur_EMPLYID))+1;
            console.log("Tmp_MaxITM=", Tmp_MaxITM);
            Ext.getCmp("d_ITM").setValue(Tmp_MaxITM);
        }        
    });

    //取得下一 [項次(ITM)]
    function getMaxITM(par_TRNO,par_EMPLYID) {
        var Tmp_Sql;
        Tmp_Sql = "  SELECT   MAX(ITM) "
                       +"  FROM     AMM_TRPD "
                       + "  WHERE  TRNO = " + AA(par_TRNO)
                       +"   AND       EMPLYID = "+AA(par_EMPLYID);
        var Tmp_Str;        
        Tmp_Str = SqlValue(Tmp_Sql);        
        console.log("1 Tmp_Str: ", Tmp_Str);
        if (checkisnull(Tmp_Str)) {
            Tmp_Str = "0";
        };
        console.log("2 Tmp_Str=", Tmp_Str);
        return Tmp_Str;
    };


3> [Detail].新增
 //Detail新增
    Ext.getCmp('btn_add_D').on("click", function () {
        setFieldsCls('myform_D', [], [], ['d_TRNO', 'd_EMPLYID', 'd_ITM', 'd_CMPDT', 'd_TECLV', 'd_SCHTRDT']);
        //取得Master目前的 TRNO 及 EMPLYID
        var cur_rec = Ext.getCmp("grid_M").getSelectionModel().getSelection();
        if (cur_rec.length > 0) {
            var cur_TRNO = cur_rec[0].get("TRNO");
            var cur_EMPLYID = cur_rec[0].get("EMPLYID");
            console.log("cur_TRNO=", cur_TRNO);
            var Tmp_MaxITM = Number(getMaxITM(cur_TRNO, cur_EMPLYID))+1;
            console.log("Tmp_MaxITM=", Tmp_MaxITM);
            Ext.getCmp("d_ITM").setValue(Tmp_MaxITM);
        }        
    });

    //取得下一 [項次(ITM)]
    function getMaxITM(par_TRNO,par_EMPLYID) {
        var Tmp_Sql;
        Tmp_Sql = "  SELECT   MAX(ITM) "
                       +"  FROM     AMM_TRPD "
                       + "  WHERE  TRNO = " + AA(par_TRNO)
                       +"   AND       EMPLYID = "+AA(par_EMPLYID);
        var Tmp_Str;        
        Tmp_Str = SqlValue(Tmp_Sql);        
        console.log("1 Tmp_Str: ", Tmp_Str);
        if (checkisnull(Tmp_Str)) {
            Tmp_Str = "0";
        };
        console.log("2 Tmp_Str=", Tmp_Str);
        return Tmp_Str;
    };


2>*.cs  顯示 Detail 資料

[HttpPost]
        public dynamic getGridData_D()
        {
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            OracleCommand cmd = new OracleCommand();
            string Tmp_TRNO = nvc["TRNO"];
            string Tmp_EMPLYID = nvc["EMPLYID"];
            string Tmp_Sql;
            Tmp_Sql = " SELECT RNK,TRNO ,EMPLYID ,ITM ,TECLV ,CMPDT ,SCHTRDT  "
                                    + "  FROM  ("
                                    + "  SELECT dense_rank() over(order by TRNO,EMPLYID,ITM) as RNK,TRNO ,EMPLYID ,ITM ,TECLV ,CMPDT ,SCHTRDT  "
                                    + "  FROM   AMM_TRPD "
                                    + " WHERE  1=1 ";                                    
            //課程編號
            if (!myfunc.checkisnull(Tmp_TRNO))
            {
                Tmp_Sql = Tmp_Sql + " AND   TRNO=" + myfunc.AA(Tmp_TRNO);
                //cmd.Parameters.Add(":PROCWC", Tmp_PROCWC);
            };
            //人員編號 
            if (!myfunc.checkisnull(Tmp_EMPLYID))
            {
                Tmp_Sql = Tmp_Sql + " AND   EMPLYID=" + myfunc.AA(Tmp_EMPLYID);
                //cmd.Parameters.Add(":DEPID", Tmp_DEPID);
            };
            
            Tmp_Sql = Tmp_Sql + " ORDER BY TRNO,EMPLYID,ITM  ) ";
            cmd.CommandText = Tmp_Sql;

            string Tmp_cntSql = " SELECT COUNT(*) as total  FROM  (" + Tmp_Sql + ")";
            DataSet ds = getDataTable(cmd, Tmp_cntSql);
            setDBTable("AMM_TRPD");
            /*
            string csSQL = " AND TRNO = :TRNO "
                                 + "  AND  EMPLYID=:EMPLYID ";
            cmd.CommandText = csSQL;
            cmd.Parameters.Add(":TRNO", TRNO);
             cmd.Parameters.Add(":EMPLYID", EMPLYID); 
             setDBTable("AMM_TRPD");
            DataSet ds = getGridDataPage(cmd);
            */

            //新增  CaluField 欄位  - [技術水準 ]
            getKeyCode("TECLV", ref ds);


            return ds;
        }

沒有留言:

張貼留言