顯示具有 MD 標籤的文章。 顯示所有文章
顯示具有 MD 標籤的文章。 顯示所有文章

2022年11月29日 星期二

V80209 – MD畫面 結構圖, 設定 Master的高度加大 - 調整高度

 目的: V80209 – MD畫面結構圖, 設定 Master的高度加大

處理說明: 1>加大 Master 的高度
                        Ext.getCmp('Detail').flex = 2;






2>高度放大後的高度

1>*.js
  //加大 Master 的高度
    Ext.getCmp('Detail').flex = 2;


2>*.js  TMMDViewEdit

Ext.define('TMMDViewEdit', {
    extend: 'Ext.Panel',
    layout: 'border',
    id: 'TMMDViewEdit',
    setTemplateBtnVisible: function (isVisible) {
        Ext.getCmp('btn_add').setVisible(isVisible);
        Ext.getCmp('btn_edit').setVisible(isVisible);
        Ext.getCmp('btn_del').setVisible(isVisible);
    },
     :
     :
    initComponent: function () {
        var me = this;
        me.items = [{
            region: 'center',
            layout: {
                type: 'vbox',
                align: 'stretch'
            },
            autoScroll: true,
            id: 'Detail' + unique,
            flex: 1,
            border: false,
            items: [Ext.create('MDViewEdit_M')]
        },
        {
            region: 'south',
            flex: 1,
            layout: {
                type: 'vbox',
                align: 'stretch'
            },
            border: false,
            split: true,
            items: [Ext.create('TabPanel_D')]
        }];
        me.callParent();
    }
});








    

2022年10月27日 星期四

V20107 – 若有新增/修改, 則 MD不可再跳到其他筆資料 - selectionchange - beforedeselect

 目的: V20107 – 編輯 – MDD – 子步序說明 若有新增/修改, MD不可再跳到其他筆資料

處理說明:  1>判斷 MDD- grid_D1 是否有異動資料
                       if (Ext.getCmp('grid_D1').store.tempData.length > 0) {
                       }
                    2>在 grid_D 的 beforedeselect event (目前選擇的資料 deselect 時)
                        判斷 grid_D1 是否有異動資料, 若有,則不允許選擇( return false)
                       Ext.getCmp('grid_D').on("beforedeselect", function (me, record, index, eOpts) {
                      })

                    



1>*.js
 Ext.getCmp('grid_D').on("beforedeselect", function (me, record, index, eOpts) {
        //若 M-D-D(grid_D1) 已有新增/修改/刪除,則不允許 grid_D 跳至另一筆資料
        if (Ext.getCmp('grid_D1').store.tempData.length > 0) {
            var Tmp_Str = "";            
            Tmp_Str = Tmp_Str+"子步序說明的資料已有異動<br>"
                + " 不可移動至另一工作步序說明<br>"
                + "請先按[存檔]鈕<br>"
                + "再移動步序說明";
            mysuccessalert(Tmp_Str);
            return false;
        }
    }); // beforedeselect
--> 

  不可選   beforeselect event  
  --> 因為beforeselect event 時,目前選擇資料已不被選擇(deselect) ,
        若不符 return false, grid_D 會無選擇資料

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;
        }