顯示具有 Master-Detail-Detail 標籤的文章。 顯示所有文章
顯示具有 Master-Detail-Detail 標籤的文章。 顯示所有文章

2022年10月5日 星期三

V20107 - 工作程序維護 - MDD 顯示 - Master-Detail-Detail - 多個Detail處理 - 重新顯示Detail

目的:  V20107 - MDD Master-Detail-Detail 維護

處理說明:  1>設定 MD_DB 參數
                        var MD_DB = Ext.create('MD_DB', {
                                                                         apiName: 'V20107',
                                                                         table_M: 'AMM_WKSTP',
                                                                         aKey_M: ['MITM'],
                                                                         table_D: ['AMM_WKSTPD'],
                                                    });
                    2>Master selectchange: 重新顯示 Detail 
                        Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
                                                                  MD_DB.reloadDetailStore(selections[0]);
                        });

                    3>Detail selectchange: 重新顯示 Detail_Detail
                        Ext.getCmp('grid_D').on("selectionchange", function (view, selections, options) {
      MD_DB.reloadDetailStorebyId_P("grid_D1", selections[0], MD_DB.apiName, ['MITM', 'WITM', 'DDITM']);
    });  






1>*.js

Ext.onReady(function () {

    var TMMDViewEdit = Ext.create('TMMDViewEdit');
    
    var MD_DB = Ext.create('MD_DB', {
        apiName: 'V20107',
        table_M: 'AMM_WKSTP',
        aKey_M: ['MITM'],
        table_D: ['AMM_WKSTPD'],
        /*  // ??  如下add_np 為 undefined
        add_np: {
            aKey_D: ['MITM', 'WITM'],
            table_D1: ['AMM_WKSTPDD'],
            aKey_D1: ['MITM', 'WITM', 'DDITM'],
        },
        */
    });

    Ext.getCmp('grid_M').on("selectionchange", function (view, selections, options) {
        MD_DB.reloadDetailStore(selections[0]);
    });

    Ext.getCmp('grid_D').on("selectionchange", function (view, selections, options) {

        MD_DB.reloadDetailStorebyId_P("grid_D1", selections[0], MD_DB.apiName, ['MITM', 'WITM', 'DDITM']);

        //MD_DB.reloadDetailStorebyId_P("grid_D1", selections[0], MD_DB.apiName, MD_DB.aKey_D1 );
        console.log("grid_D  selectionchange:");
        //MD_DB.reloadDetailStore(selections[0]);
        console.log("selections[0]", selections[0]);
        console.log("MD_DB.apiName:", MD_DB.apiName);
        console.log("MD_DB.add_np:", MD_DB.add_np);
        console.log("MD_DB.aKey_D1:", MD_DB.aKey_D1);
        console.log("MD_DB.add_np.aKey_D1:", MD_DB.add_np.aKey_D1);
        console.log("MD_DB.aKey_M:", MD_DB.aKey_M);
        console.log("MD_DB.aKey_D:", MD_DB.aKey_D);        
    });


2>*.cs
//取得 Detail 資料
[HttpPost]
        public dynamic getGridData_D()
        {
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;                        
            setDBTable("AMM_WKSTPD");
            
            OracleCommand cmd = new OracleCommand();
            string Tmp_MITM = nvc["MITM"];            
            string Tmp_Sql;
            Tmp_Sql = " SELECT RNK,MITM,WITM,STP,AQTY,PQTY,WHR,WDT,DWC  "
                                    + "  FROM  ("
                                    + "  SELECT dense_rank() over(order by MITM,WITM) as RNK,MITM,WITM,STP,AQTY,PQTY,WHR,WDT,DWC  "
                                    + "  FROM   AMM_WKSTPD "
                                    + " WHERE  1=1 ";
            //工作編號
            if (!myfunc.checkisnull(Tmp_MITM))
            {
                Tmp_Sql = Tmp_Sql + " AND   MITM=" + myfunc.AA(Tmp_MITM);
                //cmd.Parameters.Add(":PROCWC", Tmp_PROCWC);
            };
            
            Tmp_Sql = Tmp_Sql + " ORDER BY MITM,WITM,STP  ) ";
            cmd.CommandText = Tmp_Sql;
            string Tmp_cntSql = " SELECT COUNT(*) as total  FROM  (" + Tmp_Sql + ")";
            DataSet ds = getDataTable(cmd, Tmp_cntSql);                        
            return ds;
        }

//取得 Detail-Detail資料
[HttpPost]
public dynamic getGridData_D1()
{
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
OracleCommand cmd = new OracleCommand();
setDBTable("AMM_WKSTPDD");
            string Tmp_MITM = nvc["MITM"];
            string Tmp_WITM = nvc["WITM"];

            string Tmp_Sql;
            Tmp_Sql = " SELECT RNK,MITM,WITM,DDITM,STP,WC,NOTE,CLASS,WHR  "
                                    + "  FROM  ("
                                    + "  SELECT dense_rank() over(order by MITM,WITM,DDITM) as RNK,MITM,WITM,DDITM,STP,WC,NOTE,CLASS,WHR  "
                                    + "  FROM   AMM_WKSTPDD  "
                                    + " WHERE  1=1 ";
            //工作編號
            if (!myfunc.checkisnull(Tmp_MITM))
            {
                Tmp_Sql = Tmp_Sql + " AND   MITM=" + myfunc.AA(Tmp_MITM);                
            };
            //工作步序
            if (!myfunc.checkisnull(Tmp_WITM))
            {
                Tmp_Sql = Tmp_Sql + " AND   WITM=" + myfunc.AA(Tmp_WITM);                
            };

            Tmp_Sql = Tmp_Sql + " ORDER BY MITM,WITM,DDITM,STP  ) ";
            cmd.CommandText = Tmp_Sql;

            string Tmp_cntSql = " SELECT COUNT(*) as total  FROM  (" + Tmp_Sql + ")";
            DataSet ds = getDataTable(cmd, Tmp_cntSql);            
            return ds;
        }