2025年2月25日 星期二

V20305 – 零件需求登錄 –[編輯]鈕 - 前端取得 KEYCODE 名稱 -V120202A- 取得人員姓名

目的: V20305  – 零件需求登錄 –[編輯] - 前端取得 KEYCODE 名稱 - 取得人員姓名

處理說明: 1> 前端取得 KEYCODE 名稱
                                             Tmp_RSTHAH = nulltoStr(cur_rec.data['RSTHAH']).toString();
                                            Tmp_RSTHAH_ = get_KEY_CODE_NM("AMM_UOCD","RSTHAH",Tmp_RSTHAH);

                                    2> 前端取得 人員姓名
                       Tmp_LoginId = loginInfo.id;
                       Tmp_LoginNM = getEmp_NM(loginInfo.id);



1>*.js
      //V20305A.js
     Tmp_RSTHAH = nulltoStr(cur_rec.data['RSTHAH']).toString();
     Tmp_RSTHAH_ = get_KEY_CODE_NM("AMM_UOCD","RSTHAH",Tmp_RSTHAH);

     //V120202A.js
     Tmp_LoginId = loginInfo.id;
     Tmp_LoginNM = getEmp_NM(loginInfo.id);

2>myfunc.js   - get_KEY_CODE_NM      - getEmp_NM
* 傳入參數:   par_TBL_NAME:  Table名稱
 *                       par_KEY_NAME:  KEYCODE欄位名稱  
 *                       par_KEY_CODE:   KEYCODE欄位值
SELECT KEY_CODE, DESCPT
FROM   KEYCODE
WHERE  TBL_NAME = 'AMM_UOCD'
AND    KEY_NAME = 'RSTHAH'
AND    KEY_CODE = 'A';
 */
function get_KEY_CODE_NM(par_TBL_NAME,par_KEY_NAME,par_KEY_CODE) {
    var obj = '';
    var Tmp_KEY_CODE_NM = "";
    if ( (par_TBL_NAME.length > 0) && (par_KEY_NAME.length > 0) && (par_KEY_CODE.length > 0) ){
        Ext.Ajax.request({
            method: "POST",
            //url: "../api/V20302AAPI/getEmp_NM?EMPLYID=" + par_EMPLYID,
            url: "../api/myAPI/get_KEY_CODE_NM?TBL_NAME=" + par_TBL_NAME+"&KEY_NAME="+par_KEY_NAME+"&KEY_CODE="+par_KEY_CODE,
            async: false,
            success: function (response, opts) {
                obj_Temp = Ext.decode(response.responseText);
                //console.log("obj_Temp:", obj_Temp);
                if (obj_Temp.T1.length > 0) {
                    obj = obj_Temp;
                    Tmp_KEY_CODE_NM = obj.T1[0]["DESCPT"].toString();
                    return Tmp_KEY_CODE_NM;
                }
            }
        }
        )
    }
    return Tmp_KEY_CODE_NM;
};


// function名稱 : getEMP_NM
// 參數 : par_EMPLYID  : 員工編號
// 傳回值:   傳入員工.姓名
function getEmp_NM(par_EMPLYID) {
    var obj = '';
    var Tmp_EMPLYNM = "";
    if (par_EMPLYID.length > 0) {
        Ext.Ajax.request({
            method: "POST",
            //url: "../api/V20302AAPI/getEmp_NM?EMPLYID=" + par_EMPLYID,
            url: "../api/myAPI/getEmp_NM?EMPLYID=" + par_EMPLYID,
            async: false,
            success: function (response, opts) {
                obj_Temp = Ext.decode(response.responseText);
                //console.log("obj_Temp:", obj_Temp);
                if (obj_Temp.T1.length > 0) {
                    obj = obj_Temp;
                    Tmp_EMPLYNM = obj.T1[0]["EMPLYNM"].toString();
                    return Tmp_EMPLYNM;
                }
            }
        }
        )
    }
    return Tmp_EMPLYNM;
};


3>myAPI.cs  - get_KEY_CODE_NM
//取得  TABLE.KEYCODE 的名稱
        [HttpPost]
        public dynamic get_KEY_CODE_NM(string TBL_NAME,string KEY_NAME, string KEY_CODE)
        {
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            string Tmp_Sql = " SELECT   KEY_CODE,DESCPT "
                                       + "   FROM    KEYCODE "
                                       + "   WHERE   1=1   "
                                       +"    AND        TBL_NAME="+myfunc.AA(TBL_NAME)
                                       +"    AND        KEY_NAME=" + myfunc.AA(KEY_NAME)
                                       + "    AND        KEY_CODE=" + myfunc.AA(KEY_CODE);
            if (myfunc.checkisnull(TBL_NAME)  || myfunc.checkisnull(KEY_NAME)  || myfunc.checkisnull(KEY_CODE))
            { return null; }
            //else
            //{ Tmp_Sql = Tmp_Sql + "  AND    EMPLYID=" + myfunc.AA(EMPLYID); }
            try
            {
                OracleConnection conn = new OracleConnection(DBService.ConnectionString("AMMEU"));
                OracleCommand cmd = new OracleCommand(Tmp_Sql, conn);

                OracleDataAdapter da = new OracleDataAdapter(cmd);
                DataSet ds = new DataSet();

                conn.Open();
                da.Fill(ds, "T1");
                conn.Close();
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }  // end of GetEmp_NM

2025年2月24日 星期一

V20305A – 零件需求編輯 – 子畫面編輯 – 唯讀/挑選/Memo欄位 - 按鈕隱藏 - 視窗最大化- New

目的: V20305A – 零件需求編輯 子畫面編輯 唯讀/挑選/Memo欄位

處理說明: 1>呼叫 Call_V20305A - 開啟子畫面
                      var win = getMyWindow("零件需求登錄", sub_V20305A_Flds, Btns_V20305A, "A");
                      //win.width = 600;
                      //win.height =300;
                      win.show();

                      win.maximize();
                      setFieldsCls('mySubFormA',..);
                      show_Data_V20305A();

                   2>設定 [必填]/[唯讀]欄位

                      setFieldsCls('mySubFormA',
                          [],  //required
                   ["sub_RPNOAF", "sub_AMMNO", "sub_TMNOXX", "sub_WP", "sub_FIG", "sub_IND",
                    "sub_NHA_PN_", "sub_NHA_QTY_", "sub_PN", "sub_CAGE", "sub_RQPN",                  
                    "sub_RQCAGE",
                   //"sub_C_UNIT",   //[C_UNIT]預設可編輯
                   "sub_QPA_TAL_", "sub_S_UNIT_",
                   "sub_SPN_", "sub_FACQTY_", "sub_ONLY_TLS",
                   "sub_EMPLYID",
                   "sub_EIAC", "sub_EI_LCN", "sub_EI_ALC", "sub_NHA_LCN", "sub_NHA_ALC",          
                   "sub_LCN", "sub_ALC",
                   ],  //readonly

                3>依欄位值,設定唯讀 , 按鈕隱藏
                     if (Tmp_C_UNIT.trim() != "") {  
                         Ext.getCmp("sub_C_UNIT").setReadOnly(true);
                         Ext.getCmp("sub_C_UNIT").inputEl.addCls('readonly');
                         Ext.getCmp("sub_btn_C_UNIT").setVisible(false);               
                     }







1>*.js

function Call_V20305A() {
console.log(" 1 inside - Call_V20305A 編輯: ");
//panel11
//交修單號(RPNOAF)
var cmp_sub_RPNOAF = get_cmp_txt1('交修單號', 'sub_RPNOAF', 100, 130);
var cmp_sub_AMMNO = get_cmp_txt1('AMM單號', 'sub_AMMNO', 100, 130);

//挑選欄位 - 料號 - 傳入 PN+CAGE挑選
 var cmp_sub_NSN = get_cmp_txt1('料號', 'sub_NSN', 100, 130);
    var cur_recs = Ext.getCmp('grid_D').getSelectionModel().getSelection();
    if (cur_recs.length == 0)
        return;
    var cur_rec = cur_recs[0];
    var Tmp_PN = nulltoStr(cur_rec.data['PN']).toString();
    var Tmp_CAGE = nulltoStr(cur_rec.data['CAGE']).toString();    
    var Tmp_urlStr = '../api/V20305AAPI/get_sub_NSNPick?isComplete=0&par_PN=' + Tmp_PN
        + '&par_CAGE=' + Tmp_CAGE;
    var cmp_sub_pick_NSN = get_pick_btn0('挑選料號', 'sub_btn_NSN',
        Tmp_urlStr ,
        ['NSN'], ['sub_NSN'],
        J_models_V20305A_NSN, J_columns_V20305A_NSN);
    cmp_sub_NSN.items.push(cmp_sub_pick_NSN);  
   
//Memo欄位
 var cmp_sub_OVERAHD = get_cmp_txtarea1('超量原因', 'sub_OVERAHD', 120, 600, 5);
 var cmp_sub_FRMK = get_cmp_txtarea1('故障現象', 'sub_FRMK', 120, 600, 5);


var sub_V20305A_Flds = [
        {
            type: 'panel', bodyStyle: "background-color:transparent;", border: 5, padding: "1",
            layout: 'border',
            items: [
                {
                    xtype: 'panel', id: 'sub_panel1', region: 'north', 
                    height: 300, layout: { type: 'hbox', align: 'stretch' },
                    items: [
                        { 
                            xtype: 'panel', id: 'sub_panel11', layout: 'vbox', flex: 10,                            
                            items: [cmp_sub_RPNOAF, cmp_sub_AMMNO, cmp_sub_TMNOXX, cmp_sub_WP, cmp_sub_FIG,
                                cmp_sub_IND, cmp_sub_NHA_PN_, cmp_sub_NHA_QTY_,
                            ]
                        },
:
:
     {
                    xtype: 'panel', id: 'sub_panel2', region: 'center',
                    layout: { type: 'vbox'},
                    border: 1,
                    items: [cmp_sub_OVERAHD,
                        cmp_sub_FRMK,
                        cmp_sub_FACHRN,
                        cmp_sub_NOTE,
                    ],
                },
            ]

      //若[需求單位]有值, 則 [需求單位]唯讀, 不可挑選  , 按鈕隱藏 
       if (Tmp_C_UNIT.trim() != "") {  
                Ext.getCmp("sub_C_UNIT").setReadOnly(true);
                Ext.getCmp("sub_C_UNIT").inputEl.addCls('readonly');
                Ext.getCmp("sub_btn_C_UNIT").setVisible(false);               
            }


2>*.cs
//過濾條件 [料號(NSN)]挑選
        [HttpPost]
        public dynamic get_sub_NSNPick(string NSN = "", string par_PN = "", string par_CAGE = "", int isComplete = 0)
        {
            //列出所有申請單(NSN)
            string Tmp_Sql ="  SELECT  NSN   "
                                       +" FROM     SP_NSN@TLS_245  "
                                       +" WHERE   PN = "+myfunc.AA(par_PN)
                                       +" AND        CAGE ="+ myfunc.AA(par_CAGE)
                                       +" ORDER  BY   NSN  ";
            string n = funId + "_sub_NSN";
            DataSet ds = setupPickDs(n, Tmp_Sql, new string[] { "AMM_FM" });
            if (NSN != null && !NSN.Equals(""))
            {
                if (isComplete == 1)
                {
                    ds = getPickDsbyCondi(n, "NSN='" + NSN + "'");
                }
                else
                {
                    ds = getPickDsbyCondi(n, "NSN  LIKE '%" + NSN + "%'");
                }
            }
            return ds;
        }  // end of  get_V20305A_NSNPick


        

2025年2月20日 星期四

V20304A – [工時提列] – Grid.欄位 設為唯讀,不可修改 , Grid欄位設為可編輯

 目的: V20304A – [工時提列] – 若工時已登錄,則Grid 設為唯讀,不可修改

處理說明:
1.Grid 欄位,允許編輯
    {
      header: "備註", dataIndex: "REMARK", width: 250, sortable: false, TMType: "string",
      editor: { xtype: 'textfield', allowBlank: true }, //允許空白
    },
   
2>Grid 欄位的編輯模式
 var sub_Grid = Ext.create('TMGrid', {
            grid_id: 'sub_Grid',
            columns: sub_Columns,
            //autoScroll: true,
            flex: 1,
            store: Ext.create('gridstore', { model: sub_model }),
            plugins: [                
                Ext.create('Ext.grid.plugin.CellEditing', { // 不會出現[Update][Cancel]鈕, 直接編輯 
                    clicksToEdit: 1,                           // 按一下進行編輯,預設為按兩下
                    clicksToMoveEditor: 1,   //在編輯模式下切換編輯另一行的行為1表示點選一就切換;                                                                  //2表示點2下才切換。
                })],
            //})],
        }); 

3>Grid 欄位唯讀
  Ext.getCmp("sub_Grid").on("beforeedit", function (editor, context) {
            return false; // 禁止編輯
        });        




1>V20304A_JSON.js
var sub_Columns = [
    { header: "", xtype: "rownumberer", width: 40, align: "center", sortable: false },
    //{ header: "系統件單號", dataIndex: "FMNO", width: 130, sortable: false, TMType: "string" },
    { header: "AMM項次", dataIndex: "AMINO", width: 80, sortable: false, TMType: "string" },
    //{ header: "流水序號", dataIndex: "ITM", width: 50, sortable: false, TMType: "string" },
    { header: "項次", dataIndex: "ITMNO", width: 70, sortable: false, TMType: "string" },
    { header: "工作項目", dataIndex: "WKDESC", width: 150, sortable: false, TMType: "string" },
    {
        header: "標準工時", dataIndex: "STDHR", width: 70, sortable: false, align: "right", TMType: "float",
        renderer: Ext.util.Format.numberRenderer('0,000.00')
    },
    {
        header: "需求工時", dataIndex: "RQHR", width: 70, sortable: false, align: "right", TMType: "float",
        renderer: Ext.util.Format.numberRenderer('0,000.00'),
        editor: { xtype: 'numberfield', allowBlank: true }, //允許空白        

    },
    {
        header: "備註", dataIndex: "REMARK", width: 250, sortable: false, TMType: "string",
        editor: { xtype: 'textfield', allowBlank: true }, //允許空白
        },
    //{ header: "件號專用表單編號", dataIndex: "PNSHTNO", width: 500, sortable: false, TMType: "string" }
];


2>V20304.js
1>> Grid 欄位可編輯
 var sub_Grid = Ext.create('TMGrid', {
            grid_id: 'sub_Grid',
            columns: sub_Columns,
            //autoScroll: true,
            flex: 1,
            store: Ext.create('gridstore', { model: sub_model }),
            plugins: [                
                Ext.create('Ext.grid.plugin.CellEditing', { // 不會出現[Update][Cancel]鈕, 直接編輯 
                    clicksToEdit: 1,                           // 按一下進行編輯,預設為按兩下
                    clicksToMoveEditor: 1,   //在編輯模式下切換編輯另一行的行為1表示點選一就切換;                                                                  //2表示點2下才切換。
                })],
            //})],
        });
        
2>> Grid 欄位唯讀, 不可編輯
//2025/02/21 , OPHR='N',仍列出工時,以便使用者查詢,但唯讀,不可修改
    if (par_OPHR == "N") {
        Ext.getCmp("sub_V20304A_OkBtn").setVisible(false);        
         //Ext.getCmp("sub_Grid").plugins = [];
        //var grid = new Ext.grid.EditorGridPanel({
        Ext.getCmp("sub_Grid").on("beforeedit", function (editor, context) {
            return false; // 禁止編輯
        });        

    }


2025年2月18日 星期二

V20305 – [刪除] – 刪除明細資料,並重新顯示Detail - 不使用 Template [刪除]鈕

 目的:  V20305 – [刪除] – 刪除明細資料,並重新顯示Detail

處理說明: 1>不使用原始的 Template [刪除]功能
                       Ext.getCmp("btn_del").beforeDel = function () {
                             return false;
                         }
                  2>自行定義[刪除]   - 刪除 Detail資料 - GetUrlStr()
                        np["ITMUOCD"] = cur_rec.data["ITMUOCD"];
                       //STEP1: 刪除 Detail 資料 - 明細需求件號
                      var Tmp_url = '../../api/V20305API/Delete_D';
                      var Tmp_RtnStr = getUrlStr(Tmp_url, np, "刪除明細需求件號(AMM_UOCD)");
                       if (!checkRtnOK(Tmp_RtnStr)) {
                          mywarnalert(Tmp_RtnStr);
                          return;
                       }    
                 3>刪除後,重新顯示Detail資料 - fireEvent("selectionchange", ..)
                    var cur_recs = Ext.getCmp('grid_M').getSelectionModel().getSelection();
                    Ext.getCmp('grid_M').fireEvent("selectionchange"
                                                                         Ext.getCmp("grid_M").getSelectionModel(), cur_recs);



1>*.js
Ext.getCmp('btn_del').on("click", function () {
var Tmp_AMMNO = "";
var Tmp_RQPN = "";
var cur_recs = Ext.getCmp('grid_D').getSelectionModel().getSelection();
if (cur_recs.length > 0) {
var cur_rec = cur_recs[0];
Tmp_AMMNO = nulltoStr(cur_rec.data['AMMNO']);
Tmp_RQPN = nulltoStr(cur_rec.data['RQPN']);
}
var Tmp_Str = "確定要刪除本筆需求明細件號資料嗎 ?\n"
        + "[AMM單號(" + Tmp_AMMNO + ") 提料件號(" + Tmp_RQPN + ")]\n";
    var id = confirm(Tmp_Str);
    if (!id)        
        return false;
    //取得目前所勾選資料,再匯出    
    var np = {};
    np["RPNOAF"] = cur_rec.data["RPNOAF"];
    np["EIAC"] = cur_rec.data["EIAC"];
    np["EI_LCN"] = cur_rec.data["EI_LCN"];
    np["EI_ALC"] = cur_rec.data["EI_ALC"];
    np["NHA_LCN"] = cur_rec.data["NHA_LCN"];
    np["NHA_ALC"] = cur_rec.data["NHA_ALC"];
    np["LCN"] = cur_rec.data["LCN"];
    np["ALC"] = cur_rec.data["ALC"];
    np["PN"] = cur_rec.data["PN"];
    np["ITMUOCD"] = cur_rec.data["ITMUOCD"];
    //STEP1: 刪除 Detail 資料 - 明細需求件號
    var Tmp_url = '../../api/V20305API/Delete_D';
    var Tmp_RtnStr = getUrlStr(Tmp_url, np, "刪除明細需求件號(AMM_UOCD)");
    if (!checkRtnOK(Tmp_RtnStr)) {
        mywarnalert(Tmp_RtnStr);
        return;
    }    

    var cur_recs = Ext.getCmp('grid_M').getSelectionModel().getSelection();
    Ext.getCmp('grid_M').fireEvent("selectionchange", Ext.getCmp("grid_M").getSelectionModel(), cur_recs);
    mysuccessalert("刪除完成!!");
});

2>*.cs
//刪除 - 明細資料(AMM_UOCD, AMM_UOC)
        [HttpPost]
        public dynamic Delete_D()
        {
            //取得參數值
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;            
            string Tmp_RPNOAF = nvc["RPNOAF"] ;
            string Tmp_EIAC = nvc["EIAC"] ;
            string Tmp_EI_LCN = nvc["EI_LCN"] ;
            string Tmp_EI_ALC = nvc["EI_ALC"] ;
            string Tmp_NHA_LCN = nvc["NHA_LCN"] ;
            string Tmp_NHA_ALC = nvc["NHA_ALC"] ;
            string Tmp_LCN = nvc["LCN"] ;
            string Tmp_ALC = nvc["ALC"] ;
            string Tmp_PN = nvc["PN"] ;
            string Tmp_ITMUOCD = nvc["ITMUOCD"] ;
            int Tmp_cnt;
            string Tmp_RtnMsg = "";
            string Tmp_Sql = "";
            string n = funId + "_Delete";
            HttpCookie MyCookie;
            DataTable Tmp_dt1 = new DataTable();
            try
            {
                Tmp_Sql = "  DELETE   FROM    AMM_UOCD   "
                                + "  WHERE   1=1 "
                                + "   AND        RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
                                + "   AND        EIAC=" + myfunc.AA(Tmp_EIAC)
                                + "   AND        EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
                                + "   AND        EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
                                + "   AND        NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
                                + "   AND        NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
                                + "   AND        LCN=" + myfunc.AA(Tmp_LCN)
                                + "   AND        ALC=" + myfunc.AA(Tmp_ALC)
                                + "   AND        PN=" + myfunc.AA(Tmp_PN);
                myfunc.SqlExec(Tmp_Sql);
            }
            catch (Exception e)
            {
                Tmp_RtnMsg = myfunc.Get1ORA(e.Message);
                Tmp_RtnMsg = "錯誤:刪除零件件號("+Tmp_PN+")失敗!!<br>"                                                                                 
                                         + Tmp_RtnMsg;            
            }
            return Tmp_RtnMsg;
        }

Visual Studio 快捷鈕 - 綜整


 https://summer10920.github.io/2020/10-23/article-vscode/

2025年2月17日 星期一

V20305 –[編輯] [刪除]鈕 - 不用Parent.Delete函式,自行定義 Delete處理(只刪除Detail目前資料)

 目的:V20305 [編輯][刪除]鈕 - 不用Parent.Delete函式,自行定義[刪除][編輯]鈕

處理說明: 1>隱藏 [編輯]頁 & [編輯按鈕]
                        Ext.getCmp('MDViewEdit_M').setTabVisible(0, false);
                        TMMDViewEdit.setTemplateBtnVisible(false);
                  2>自行新增[編輯][刪除]鈕
                      var Btn_Ary = [
                        {
                               xtype: 'button', text: '編輯', id: 'btn_edit1', iconCls: 'icon-edit',
                               listeners: {
                                  click: function () {                    
                                              mysuccessalert("按  [編輯]鈕");
                                    }
                              }
                       }, //end of [編輯]鈕
                      {
                        xtype: 'button', text: '刪除', id: 'btn_del1', iconCls: 'icon-delete',
                        listeners: {
                               click: function () {                    
                                          mysuccessalert("按  [刪除]鈕");
                                                      }
                                        }
                         }, //end of [刪除]鈕
                3>[刪除]後,重新顯示資料
        Ext.getCmp('grid_M').fireEvent("selectionchange", Ext.getCmp("grid_M").getSelectionModel(), cur_recs);



1>*.js

//[編輯]鈕,不套用 Template [編輯]鈕, 自行處理
    Ext.getCmp('MDViewEdit_M').setTabVisible(0, false);
    TMMDViewEdit.setTemplateBtnVisible(false);

 //新增按鈕 : [編輯][刪除] [全部選取] [全部取消][工時提列] [單筆工時匯出'] [單筆工時匯入']
    var Btn_Ary = [
        {
            xtype: 'button', text: '編輯', id: 'btn_edit1', iconCls: 'icon-edit',
            listeners: {
                click: function () {                    
                    mysuccessalert("按  [編輯]鈕");
                }
            }
        }, //end of [編輯]鈕
        {
            xtype: 'button', text: '刪除', id: 'btn_del1', iconCls: 'icon-delete',
            listeners: {
                click: function () {                    
                    mysuccessalert("按  [刪除]鈕");
                }
            }
        }, //end of [刪除]鈕

//[刪除]鈕, click
    Ext.getCmp('btn_del1').on("click", function () {
        var Tmp_AMMNO = "";
        var Tmp_RQPN = "";
        var cur_recs = Ext.getCmp('grid_D').getSelectionModel().getSelection();
        if (cur_recs.length > 0) {
            var cur_rec = cur_recs[0];
            Tmp_AMMNO = nulltoStr(cur_rec.data['AMMNO']);
            Tmp_RQPN = nulltoStr(cur_rec.data['RQPN']);
        }
        var Tmp_Str = "確定要刪除本筆需求明細件號資料嗎 ?\n"
            + "[AMM單號(" + Tmp_AMMNO + ") 提料件號(" + Tmp_RQPN + ")]\n";
        var id = confirm(Tmp_Str);
        if (!id)
            return false;

        //取得目前所勾選資料,再匯出    
        var np = {};
        np["RPNOAF"] = cur_rec.data["RPNOAF"];
        np["EIAC"] = cur_rec.data["EIAC"];
        np["EI_LCN"] = cur_rec.data["EI_LCN"];
        np["EI_ALC"] = cur_rec.data["EI_ALC"];
        np["NHA_LCN"] = cur_rec.data["NHA_LCN"];
        np["NHA_ALC"] = cur_rec.data["NHA_ALC"];
        np["LCN"] = cur_rec.data["LCN"];
        np["ALC"] = cur_rec.data["ALC"];
        np["PN"] = cur_rec.data["PN"];
        np["ITMUOCD"] = cur_rec.data["ITMUOCD"];

        //STEP1: 刪除 Detail 資料 - 明細需求件號
        var Tmp_url = '../../api/V20305API/Delete_D';
        var Tmp_RtnStr = getUrlStr(Tmp_url, np, "刪除明細需求件號(AMM_UOCD)");
        if (!checkRtnOK(Tmp_RtnStr)) {
            mywarnalert(Tmp_RtnStr);
            return;
        }
        var cur_recs = Ext.getCmp('grid_M').getSelectionModel().getSelection();
         //刪除後,重新顯示資料
        Ext.getCmp('grid_M').fireEvent("selectionchange", Ext.getCmp("grid_M").getSelectionModel(), cur_recs);
        mysuccessalert("刪除完成!!");
    });

V80201 - PDM & PLM WebService 1>參考 2>ConnectionService - New

 目的: V80201 - PDM  & PLM WebService匯入

處理說明:  1>參考  :  [加入服務參考] - 匯入 WebService

                   2>ConnectionService  :  WebService匯入後的節點 

                  3>本 Web Service 已開發完成的 WSDL如下
                      http://enovia/AMM/Service.asmx
                      method: AMM_PDM01/AMM_PDM04/AMM_PLM04

                 4>WebService設定後,相關設定記錄在Web.config 
                      (會有重覆的 endpoint ,必需 remark)                     

                 5>*.cs 呼叫 WebService 
                      ds = PLM04.AMM_PLM04(傳入參數)

1>匯入WebService : 參考 - 加入[服務參考]



2>加入[服務參考]:  WebService 網址 + method


3>Connection Service : WebService 匯入後的函式


4>WebService設定後,相關設定記錄在Web.config 


5>*.cs
PLM_WS.ServiceSoapClient PLM04 = new PLM_WS.ServiceSoapClient();
            DataSet ds=null;
            if (Tmp_STAT=="C")
            {
                Tmp_DT1 = Tmp_PROCDT1;
                Tmp_DT2 = Tmp_PROCDT2;
 ds = PLM04.AMM_PLM04(Tmp_PN, Tmp_ECNO, Tmp_PDM_CONFIG, Tmp_PDTP, Tmp_ACNO,
                                 Tmp_FACWC, Tmp_STAT, Tmp_DT1, Tmp_DT2, Tmp_MKNO,
                                 Tmp_CNDPROCCODE);
            }







測試區 - 發佈 - 設定

 目的: 測試區  - 發佈  - 設定  - 發佈至[資料夾]

處理說明: 1>發佈至[資料夾] , 非[網頁伺服器(IIS)]

                  2>發佈資料夾位置: \\192.30.8.240\TLSWEB_AMM5



發佈資料夾位置: \\192.30.8.240\TLSWEB_AMM5