顯示具有 Web改版 標籤的文章。 顯示所有文章
顯示具有 Web改版 標籤的文章。 顯示所有文章

2022年7月14日 星期四

Web改版 - V120902- CheckBox欄位編輯處理

 Web改版V120902 – 出勤現況維護

目的: Checkbox編輯欄位值

問題: 1>如何在 Grid    Columns 加入 CheckBox

                    2>如何在後端讀取 CheckBox欄位值



Q1>如何在 Grid    Columns 加入 CheckBox

Ans:     1>於Grid的 Columns加入一欄位 : xtype: 'checkColumn',  

             {header: '缺勤',
                dataIndex: 'NWK',
                xtype: 'checkcolumn',
                          :
                }

                   2> checkColumn    renderer 時,  傳回  <input    type='checkbox'      checked/>
                           依欄位值 , 設定   checked   或空白
                          renderer: function (value, metadata, record, rowIndex, colIndex, store) {
                           var tempVal = '';
                           if ((value === 'Y') || (value === true)) { tempVal = 'checked'; }
                                   var Tmp_Str = "<input  type='checkbox'  name=" + DatetoStr(record.get('DT')) + "_" +                                                                                                            record.get('DEP') + "_" + record.get('EMPLYID') + "   " + tempVal + " >";
                              return Tmp_Str;
                },

              3>按[確定]鈕,  每筆 store 處理   [NWK]欄位值
                      var Tmp_Grid = Ext.getCmp('sub2_Grid');
                       var Tmp_store = Tmp_Grid.store;
                      var Tmp_TotalCnt = Tmp_store.getTotalCount();
for (i = 0; i < Tmp_TotalCnt; i++) {
                console.log("更新第 i  筆", i);
                //依目前 store的資料, 更新 AMM_FACDEPD.NWK , PK( DT+DEP+EMPLYID)
                cur_rec = Tmp_store.getAt(i);
                Tmp_DT = cur_rec.data["DT"];
                Tmp_DEP = cur_rec.data["DEP"];
                Tmp_EMPLYID = cur_rec.data["EMPLYID"];
                Tmp_LDMAN = cur_rec.data["LDMAN"];
                Tmp_NWK = cur_rec.data["NWK"];
                         : 
                          }

PS1:     加入  checkbox   欄位

 var sub2_Columns = [
            { header: "員工編號", dataIndex: "EMPLYID", width: 150, TMType: "string" },
            { header: "姓名", dataIndex: "EMPLYID_", width: 100, TMType: "string" },

            { header: "備註", dataIndex: "NOTE", width: 200, TMType: "string", },
            {
                header: '缺勤',
                dataIndex: 'NWK',
                xtype: 'checkcolumn',
                width: 60,
                editor: {
                    xtype: 'checkbox',
                    cls: 'x-grid-checkheader-editor',
                    inputValue: 'Y',
                    uncheckedValue: 'N'
                },
                //A renderer function used to return HTML markup for a cell given the cell's data value.
                renderer: function (value, metadata, record, rowIndex, colIndex, store) {
                    var tempVal = '';
                    if ((value === 'Y') || (value === true)) { tempVal = 'checked'; }
                    var Tmp_Str = "<input  type='checkbox'  name=" + DatetoStr(record.get('DT')) + "_" + record.get('DEP') + "_" + record.get('EMPLYID') + "   " + tempVal + " >";
                    return Tmp_Str;
                },
            }, // end of  header='缺勤1'
        ];

PS2:    renderer 時, 依[NWK]欄位值 , 設定 checked


 Q2>如何在後端讀取 CheckBox欄位值

Ans:

public HttpResponseMessage UPD_AMM_FACDEPD()
 string Tmp_NWK = nvc["Tmp_NWK"];
   if ((Tmp_NWK=="true") || (Tmp_NWK == "Y"))
                { Tmp_NWK_VAL = "Y"; }
                else
                { Tmp_NWK_VAL = "N"; }

 Tmp_Sql = "  UPDATE  AMM_FACDEPD  "
                                + "  SET          NWK=" + myfunc.AA(Tmp_NWK_VAL)+","
                                                         +"  NOTE=" + myfunc.AA(Tmp_NOTE)
                                + "  WHERE   DT= " + myfunc.AA(Tmp_DT)
                                + "   AND       DEP= " + myfunc.AA(Tmp_DEP)
                                + "   AND       EMPLYID= " + myfunc.AA(Tmp_EMPLYID);