2026年6月23日 星期二

V1060304A-定更定檢拆挪管制 - 自定icon – icon佔滿按鈕 - 空間 - space - css

 目的: V1060304A-定更定檢拆挪管制 - 自定icon – icon佔滿按鈕

處理說明: 1>var Tmp_Str = "<link type='text/css' rel='stylesheet' href='../JsFunction/mycss.css' >";
                      $('head').append(Tmp_Str);

     2>  var cmp_sub_btn_MOVE12 = get_cmp_btn1('右移', 'sub_btn_MOVE12', 10, 'myicon-right',);               var cmp_sub_btn_MOVE13 = get_cmp_btn1('  ', 'sub_btn_MOVE13', 10, 'icon-down',);
           --> 按鈕文字填入'   ' , 空白space  

    var cmp_sub_btn_MOVE31 = get_cmp_btn1('  ', 'sub_btn_MOVE31', 10, 'icon-up',);
3> //利用 { xtype: 'panel', flex: 20, } 製造按鈕空間
       items: [
                      { xtype: 'panel', flex: 20, }, //space panel
                       cmp_sub_btn_MOVE12,
                      { xtype: 'panel', flex: 5, }, //space panel
                       cmp_sub_btn_MOVE21,
                      { xtype: 'panel', flex: 5, },//space panel
                  ]

1>mycss.css
<style type="text/css" >
#my_tbl {
    border-width: 9px;
    border-style: solid;    
}
.my_bigfont{
    font-size:  30px;
        color: yellow;
}
.my_redcolor {
    background-color: red;
    background: red;
}
.my_required {
    background: #FFDBE4;
}
.my_lightgreen {
    background: #CCFF00;
}
.myicon-right {
    background-image: url('../images/icons/right.png'); /* 圖示路徑 */
    /*background-size: cover; */ /*圖示縮放填滿 */
    background-position: center;
    width: 80% !important;
    height: 80% !important;
}
 </style >

2>V1060304A.js
 //panel22 左移/右移
    var cmp_sub_btn_MOVE21 = get_cmp_btn1('  ', 'sub_btn_MOVE21', 10, 'icon-left-select',);
    //使用自定的 mycss.css檔案
    //var cmp_sub_btn_MOVE12 = get_cmp_btn1('右移', 'sub_btn_MOVE12', 10, 'myicon-right',);  
    var cmp_sub_btn_MOVE12 = get_cmp_btn1('  ', 'sub_btn_MOVE12', 10, 'icon-right-select',);
    //panel3 下移1/上移1     下移2/上移2
    var cmp_sub_btn_MOVE13 = get_cmp_btn1('  ', 'sub_btn_MOVE13', 10, 'icon-down',);
    var cmp_sub_btn_MOVE31 = get_cmp_btn1('  ', 'sub_btn_MOVE31', 10, 'icon-up',);
    var cmp_sub_btn_MOVE23 = get_cmp_btn1('  ', 'sub_btn_MOVE23', 10, 'icon-down',);
    var cmp_sub_btn_MOVE32 = get_cmp_btn1('  ', 'sub_btn_MOVE32', 10, 'icon-up',);

   {  //sub_panel22,左/右移    //利用 製造按鈕空間{ xtype: 'panel', flex: 20, }
                                                xtype: 'panel',
                                                id: 'sub_panel22',
                                                flex: 5,
                                                layout: { type: 'vbox',align:'stretch',},
                                                border: 1,
                                                //title: 'sub_panel22',
                                                items: [                                                    
                                                    { xtype: 'panel', flex: 20, }, //space panel
                                                    //{ xtype: 'spacer' },
                                                    cmp_sub_btn_MOVE12,                                                    
                                                    { xtype: 'panel', flex: 5, }, //space panel
                                                    //{ xtype: 'spacer' },
                                                    cmp_sub_btn_MOVE21,
                                                    //{ xtype: 'spacer' },
                                                    { xtype: 'panel', flex: 5, },//space panel
                                                ]
                                            },


2026年6月21日 星期日

V1060301 – Visual Studio的 Debug 問題  按[下一步]卻停在不對的 statement , Debug/Release

 目的: V1060301 – Visual Studio Debug 問題,    [下一步]卻停在不對的 statement

處理說明: 1>Visual Studio的 組態必需為 Debug , 不可為  Release ,
                       --> 若為 Release ,則 Debug 的下一步  statement 會不正確




2026年6月17日 星期三

V1060304A- 判斷多欄位PK是否存在 Grid(store)中 – store.findBy( function(rec,id) { }) - 符合

 目的: V1060304A- 判斷多欄位PK是否存在 Grid(store) – store.findBy( function(rec,id) { })

處理說明: 1>var Tmp_index= store.findBy( function (rec,id) {      }) ;
                       若有符合條件,則傳回 符合的 index 
                            var Tmp_index = gridstore.findBy(function (rec, id) {
                                       var Tmp_bol = true;           
                                       Tmp_bol = rec.data["PROJID"].toString() == Tmp_PROJID
                                                         && rec.data["TYPE"].toString() == Tmp_TYPE
                                                         && rec.data["ITEM"].toString() == Tmp_ITEM;           
                                        return Tmp_bol;   // true : 有找到
                             });


1>*.js
      var Tmp_PROJID = nulltoStr(cur_rec.data['PROJID']).toString();
      var Tmp_TYPE = nulltoStr(cur_rec.data['TYPE']).toString();
      var Tmp_ITEM = nulltoStr(cur_rec.data['ITEM']).toString();
      var Tmp_ASN = nulltoStr(cur_rec.data['ASN']).toString();
 
//判斷目前資料是否已存在  sub_Grid2
        var gridstore = Ext.getCmp("sub_Grid2").store;
        var Tmp_index = gridstore.findBy(function (rec, id) {
            var Tmp_bol = true;           
            Tmp_bol = rec.data["PROJID"].toString() == Tmp_PROJID
                && rec.data["TYPE"].toString() == Tmp_TYPE
                && rec.data["ITEM"].toString() == Tmp_ITEM;           
            return Tmp_bol;   // true : 有找到
        });
        if (Tmp_index > 0) {
            Tmp_Str = "機號(" + Tmp_ASN2 + ")<br>"
                + "分類(" + Tmp_TYPE + ")<br>"
                + "ITEM(" + Tmp_ITEM + ")<br>"
                //+ "定更定檢項目(" + Tmp_CHKCHG_NM + ")<br>"               
                + " 資料已存在!!<br><br>"
                + "請先將機號(" + Tmp_ASN2 + ")ITEM(" + Tmp_ITEM + ")拆挪至備份件<br> "
                + "才可將機號(" + Tmp_ASN1 + ")ITEM(" + Tmp_ITEM + ")拆挪至機號(" + Tmp_ASN2+")<br>"
                ;
            mywarnalert(Tmp_Str);
            return;
        }

 

2026年6月16日 星期二

V1060304A – sub_Grid 不分頁 && 不顯示Toolbar

 目的: V1060304A – sub_Grid 不分頁 && 不顯示Toolbar

處理說明: 1>資料不分頁:
                       DataSet ds = getDataTable(cmd, countSql, false);
                  2>Toolbar 不顯示
                       Ext.getCmp('sub_Grid1_ptb').hide();  //toolbar 名稱= Grid名稱+'_ptb';
                       Ext.getCmp('sub_Grid2_ptb').hide(); 
                       Ext.getCmp('sub_Grid3_ptb').hide();



1>*.cs

        DataSet ds = getDataTable(cmd, countSql, false);  //paging = false

2>*.js
    //隱藏 ToolBar  , //toolbar 名稱= Grid名稱+'_ptb';
    Ext.getCmp('sub_Grid1_ptb').hide();
    Ext.getCmp('sub_Grid2_ptb').hide();
    Ext.getCmp('sub_Grid3_ptb').hide();


V1060304A- 調整版面高度 – 若為 region ,則split: true 若為 hbox,vbox 則 { xtype: 'splitter',width: 2},

 目的: V1060304A- 調整版面高度  
                  若為 region ,split: true  
            若為 hbox,vbox { xtype: 'splitter',width: 2}, 

處理說明:  1> 若為 region ,split: true    , Ex: V1060304A                  


   2> 若為 hbox,vbox { xtype: 'splitter',width: 2},  Ex: V20302B

1>V1060304A.js
 {  //往上/往下按鈕 - 
                        xtype: 'panel',
                        id: 'sub_panel3',
                        height: 60,
                        split: true,
                        region: 'south',
                        layout: { type: 'hbox', align: 'stretch' },
                        border: 1,
                        //title: 'sub_panel3',
                        items: [
                            { xtype: 'panel', flex: 30, }, //space panel
                            cmp_sub_btn_DOWN1,
                            { xtype: 'panel', flex: 10, }, //space panel
                            cmp_sub_btn_UP1,
                            { xtype: 'panel', flex: 50, },//space panel
                            cmp_sub_btn_DOWN2,
                            { xtype: 'panel', flex: 10, }, //space panel
                            cmp_sub_btn_UP2,
                            { xtype: 'panel', flex: 20, }, //space panel
                            cmp_sub_btn_CLOSE,
                        ]
                    },


2>V20304B.js - 系統件除帳
{
  xtype:'panel',bodyStyle: "background-color:transparent;", border: false, 
layout: {  type: "vbox",  align: 'stretch' }, padding: "5",
            id: 'sub1_myForm', items: [
 {
                    xtype: "fieldcontainer", fieldLabel: "內容", labelWidth: 60, layout: "fit", flex: 3, items: [
                        {
                            id: "sub1_content", name: "sub1_content", xtype: "textareafield",  padding: "0 4 0 0", 
                            //value: "AJT",
                        },
                    ]
                }, // end of 內容
  {
                    xtype: 'splitter',
                    width: 2,
                },
                {  //下方 TreeView, 左右移,正本/副本
                    xtype: "panel", flex: 5,
                    layout: {
                        type: 'hbox',
                        align: 'stretch'
                    },

2026年6月15日 星期一

V1060304A – [定更/定檢拆挪管制]鈕- 版面設計 - layout: 'border', - region: 'north'

 目的: V1060304A – [定更/定檢拆挪管制]- 版面設計

處理說明: 1>
                  2>



1>*.js

var sub_V1060304A_Flds = [
            {
                type: 'panel', bodyStyle: "background-color:transparent;", border: 5, padding: "1",
                layout: 'border',
                items: [
                    {  //專案別
                        xtype: 'panel', id: 'sub_panel1', region: 'north', layout: 'hbox',
                        height: 60,
                        border: 2,
                        title: 'sub_panel1',
                        items: [                            
                                cmp_sub_PROJID, cmp_sub_rd1, cmp_sub_rd2,                            
                        ]  //end of sub_panel1.items,
                    },  // end of sub_panel1                        
                    {  //機號1 --> 機號2
                        xtype: 'panel',
                        id: 'sub_panel2',
                        region: 'center',
                        layout: 'hbox',                        
                        border: 1,
                        title: 'sub_panel2',
                        items: [                            
                                    {  //sub_panel21,,實體定更定檢清單1
                                                xtype: 'panel',
                                                id: 'sub_panel21',                                                
                                                flex: 45,
                                                layout: 'vbox',
                                                border: 1,
                                                title: 'sub_panel21',
                                                items: [
                                                ]
                                            },
                                            {  //sub_panel22,左/右移
                                                xtype: 'panel',
                                                id: 'sub_panel22',
                                                flex: 10,
                                                layout: 'vbox',
                                                border: 1,
                                                title: 'sub_panel22',
                                                items: [
                                                ]
                                            },
                                            {  //sub_panel23,實體定更定檢清單2
                                                xtype: 'panel',
                                                id: 'sub_panel23',
                                                flex: 45,
                                                layout: 'vbox',
                                                border: 1,
                                                title: 'sub_panel23',
                                                items: [
                                                ]
                                            },                                        
                                ], // end of sub_panel2.items                            
                    },
                    {  //往上/往下按鈕 - 
                        xtype: 'panel',
                        id: 'sub_panel3',
                        height: 60,
                        region: 'south',
                        layout: 'hbox',
                        border: 1,
                        title: 'sub_panel3',
                        items: [
                        ]
                    },
                    {  //備份件清單 - Grid
                        xtype: 'panel',
                        id: 'sub_panel4',
                        region: 'south',
                        layout: 'fit',
                        height: 120,                        
                        border: 1,
                        title: 'sub_panel4',
                        items: [
                        ]
                    },
                ] // end of   layout: "vbox", padding: "5", items: [
            }  //end of  sub_ShowPN_Flds , items[{
        ]      //end of  var sub_ShowPN_Flds    

2026年6月14日 星期日

V1060301 – 以 ITEM 排序 1,2,3,.,9,9-1,10,10-1,..117,117-1,117-1A,117-A,118(依數字順序) - 字母排序 - 依數字排序 - 每頁筆數

目的: V1060301 – 如何以 ITEM 排序  1,2,3,..10,10-1,..117,117-1,117-1A,117-A,118(依數字順序)

      不可 1,10,100,117,..,2,3, (依字母順序)

處理說明: 1>依 ITEM 的數字排序(1,2,3,9,9-1,10,10-1,11,..101,102,)
                       ORDER BY PROJID,TYPE,
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER)

                  2>每頁 30筆,非 32筆(RNK)  - 因為 ITEM(9,9-1的 RNK 一樣(9),造成每頁筆數不對)
SELECT RNK,   
       PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,   
       SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,   
       TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,   
       PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,   
       MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,   
       IS_SER ,IS_CANCEL ,CANCEL_REASON  
FROM ( SELECT  rownum as RNK,   
               PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,   
               SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,   
               TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,   
               PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,   
               MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,   
               IS_SER ,IS_CANCEL ,CANCEL_REASON   
        FROM  (    select     PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,   
                              SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,   
                              TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,   
                              PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,   
                              MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,   
                              IS_SER ,IS_CANCEL ,CANCEL_REASON   
                   FROM  AMM_CHKCHG  A   
                   WHERE  1=1   
                   AND   PROJID  LIKE '%AJT%'  
                   ORDER  BY PROJID,TYPE,CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER)    
              ) 
     ) 










1>SQL:  --> (若有 - ,則ITEM去除 - 以後文字, , 若無 -, 則用 ITEM) 轉成數字 ,排序

select  PROJID,TYPE,
(case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as ITEM_,
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER) as ITEM__,   
                   ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,   
                   SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,   
                   TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,   
                   PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,   
                   MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,   
                   IS_SER ,IS_CANCEL ,CANCEL_REASON   
           FROM  AMM_CHKCHG  A   
           WHERE  1=1   
           AND   PROJID  LIKE '%AJT%'
)
ORDER  BY PROJID,TYPE,ITEM__



c# SQL: RNK 必需依目前的順序排序,不可重複
(Ex: ITEM: 9 , 9-1 的 RNK 會一樣(9),造成每頁32筆)

select dense_rank() over(order by PROJID,TYPE,
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER)) as RNK,"
                                                  + "   PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,"
                                                     + "   SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,"
                                                     + "   TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,"
                                                     + "   PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,"
                                                     + "   MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,"
                                                     + "   IS_SER ,IS_CANCEL ,CANCEL_REASON "
                                      + "  FROM  AMM_CHKCHG  A "
                                      + "  WHERE  1=1  ";