2023年8月30日 星期三

V120401 - 取得目前資料的欄位值 – [刪除] – 更新單況 - SelectionModel() -cur_rec - cur_recs

 目的: V120401 – [刪除] – 更新單況

處理說明: 1>


1>*.js
//刪除 - 資料庫刪除資料
    Ext.getCmp('btn_del').afterDel = function () {
        var cur_recs = Ext.getCmp('grid_Single').getSelectionModel().getSelection();
        var cur_rec = cur_recs[0];
        var Tmp_TMNO = cur_rec.data['TMNO'].toString();
        var Tmp_result = S_DB.afterDel();  // 執行後端  Delete 程式
        if (Tmp_result) {
            var Tmp_Str = "條碼編號(" + Tmp_TMNO + ")的管制現況已改為 Z:已刪除";
            mysuccessalert(Tmp_Str);            
        }

        return Tmp_result;        
    };


2>*.cs
[HttpPost]
        public void Delete()
        {
            var c = System.Web.HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            //string[] arrCondition = new string[] { "" };
            //getPK(): 取得本Table 的 PK (AMM_TMDWG.TMNO)
            string[] arrCondition = getPK();
            //nvc : 傳入目前資料的欄位值
            //excuteDelete(nvc, DBTable, arrCondition);
            string Tmp_TMNO = nvc["TMNO"];
            string Tmp_Sql = "  UPDATE   AMM_TMDWG  "
                                       + "  SET           STAT='Z'   "
                                       + "  WHERE    TMNO=" + myfunc.AA(Tmp_TMNO);
            myfunc.SqlExec(Tmp_Sql);
        }



V120401 - 日期區間 – 過濾條件 – 2021/08/02 ~ 2021/08/02

 目的: V120401 - 日期區間 過濾條件 – 2021/08/02 ~ 2021/08/02

處理說明:  1>前端 : 日期區間 – 2021/08/02 ~ 2021/08/02
                          --> 應該要包含 日期: 2021/08/02
                     2>後端:  AND   MKDT>='2021/08/02'  
                                      AND   MKDT<'2021/08/03
                     3>後端: 日期+1
                               DateTime.Parse(nvc["s_MKDT2"]).AddDays(1));



1>*.js
 //建檔日期
    var cmp_MKDT = get_cmp_dt1('建檔日期', 's_MKDT1', 80, 100);
    var cmp_MKDT_lbl = get_cmp_lbl0(" ~ ", 20);
    var cmp_MKDT2 = get_cmp_dt0('s_MKDT2', 100);
    cmp_MKDT.items.push(cmp_MKDT_lbl, cmp_MKDT2);    
    var Query = new Ext.FormPanel({
        id: 's_form',
        height:120,
        layout: { type: 'hbox', align: 'stretch' },
        fieldDefaults: { labelAlign: 'right' },
        defaults: { margin: { top: 3 } },
        items: [
            {
                xtype: 'panel',  id: 'panel1',  layout: { type: 'hbox', align: 'stretch' },   flex: 14,  border: 0,
                items: [
                    {
                        xtype: 'panel',  id: 'panel11',  layout: { type: 'vbox', align: 'stretch' }, flex: 25,   border: 0,
                        items: [cmp_TMNOXX, cmp_DOCNO, cmp_TMNO],
                    },  // end of panel11
                    {
                        xtype: 'panel',  id: 'panel12', layout: { type: 'vbox', align: 'stretch' }, flex: 30, border: 0,
                        items: [cmp_VOL, cmp_STLCT,  cmp_MKDT],                        
                    },   // end of panel12 , flex:16                    
   

2>*.cs
//建檔日期  - 起  - 迄
            string Tmp_MKDT1 = "";   //建檔日期  - 起迄
            string Tmp_MKDT2 = "";   //建檔日期  - 起迄
            if (!myfunc.checkisnull(nvc["s_MKDT1"]))
            {
                Tmp_MKDT1 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_MKDT1"]));
            };
            if (!myfunc.checkisnull(nvc["s_MKDT2"]))
            {
                Tmp_MKDT2 = string.Format("{0:yyyy/MM/dd}", DateTime.Parse(nvc["s_MKDT2"]).AddDays(1));
            };
            string Tmp_Sql1 = "";
            
            if ((!myfunc.checkisnull(Tmp_MKDT1)) || (!myfunc.checkisnull(Tmp_MKDT2)))
            {
                if (!myfunc.checkisnull(Tmp_MKDT1))
                {
                    Tmp_Sql1 = Tmp_Sql1 + "  AND        MKDT>=" + myfunc.AA(Tmp_MKDT1);
                };
                if (!myfunc.checkisnull(Tmp_MKDT2))
                {
                    Tmp_Sql1 = Tmp_Sql1 + "  AND        MKDT<" + myfunc.AA(Tmp_MKDT2);
                }
                Tmp_Sql = Tmp_Sql + Tmp_Sql1;
            };

2023年8月29日 星期二

V120401F - 標籤列印(長*寬) - 版面設計3 -html格式 - div -table

 目的: V120401F - 標籤列印(長*寬) - 版面設計

       1>HTML online - 先製作標籤版面(含框線)
       2>將版面 HTML 移至程式(加入 Panel),  $('#panel_V120401F-innerCt').append(print_area_Str1)
       3>$('#panel_V120401F)  --> 取得DOM id (Ext.panel元件又分成 DOM Header & Body)
           Ext.getCmp('panel_V120401F)  --> 取得Ext 元件
            
處理說明:
1>利用 HTML Online排版完成標籤格式 - https://www.tutorialspoint.com/online_html_editor.php
2>html 的版面配置 OK 後, 才將html 的格式內容複製至 程式內
3><div> 設定邊框及顏色 & 長寬 & 字形大小
    <div id='print_area' style='border: 5px solid green; width:10cm;height:3cm; font-size:8pt;' >
4><table> 設定邊框及顏色 & 長寬 & 字形大小
    <table id='my_tbl_1' border=1 bordercolor='red' cellspacing=0 style='width: 100%' >
    --> Table 的高度由 <div  font-size 決定
5>必需 id 已顯示在畫面, 才可 $('#panel_V120401F-innerCt').append(pub_print_area_Str1);
    win.show();
    var Tmp_panel_V120401F_innerCt = $('#panel_V120401F-innerCt');
    Tmp_panel_V120401F_innerCt.append(pub_print_area_Str1);



1>*.html

<!DOCTYPE html>
<html>
<title>Online HTML Editor</title>
<head>
</head>

<body>
<div id='print_area' style='border: 5px solid green;'>
<div id='my_div_1' style='width:10cm;height:3cm;border:3px solid yellow;font-size:8pt;'>
<table id='my_tbl_1' style='width: 100%'  border=1 bordercolor='red' cellspacing=0 >
<tr>
<td width=70%>
<table id='my_tbl_1' style='width:100%;' border=1 bordercolor='blue' cellspacing=0>
<th width=50% style='margin: 0 0 0 0 ;'>技令編號(TO NO) : </th>
<td width=50% >XX16W6-40-22</td>
</tr>
<tr>
<th width=50% >冊號(Copy#) :</th>
<td width=50% ></td>
</tr>
<tr >
<th width=50% >儲位(Location) :</th>
<td width=50% ></td>
</tr>
<tr >
<th width=50% >使用單位(Work Unit) :</th>
<td width=50% >W30</td>
</tr>
<tr >
<th width=50% >語言(Language) :</th>
<td width=50% >E</td>
</tr>
</table>
</td>
<td >
<table id = 'my_tbl_r1' style='width:100%;' border=1 bordercolor='blue' cellspacing=0>
<tr>
<td >



<?xml version="1.0" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="90" height="90">
<rect x="0" y="0" width="90" height="90" style="fill:#ffffff;shape-rendering:crispEdges;"/>
<path x="0" y="0" style="fill:#000000;shape-rendering:crispEdges;" d="M0,0 V4.29 H4.29 V0 H0 Z M4.29,0 V4.29 H8.57 V0 H4.29 Z M8.57,0 V4.29 H12.86 V0 H8.57 Z M12.86,0 V4.29 H17.14 V0 H12.86 Z M17.14,0 V4.29 H21.43 V0 H17.14 Z M21.43,0 V4.29 H25.71 V0 H21.43 Z M25.71,0 V4.29 H30 V0 H25.71 Z M34.29,0 V4.29 H38.57 V0 H34.29 Z M51.43,0 V4.29 H55.71 V0 H51.43 Z M60,0 V4.29 H64.29 V0 H60 Z M64.29,0 V4.29 H68.57 V0 H64.29 Z M68.57,0 V4.29 H72.86 V0 H68.57 Z M72.86,0 V4.29 H77.14 V0 H72.86 Z M77.14,0 V4.29 H81.43 V0 H77.14 Z M81.43,0 V4.29 H85.71 V0 H81.43 Z M85.71,0 V4.29 H90 V0 H85.71 Z M0,4.29 V8.57 H4.29 V4.29 H0 Z M25.71,4.29 V8.57 H30 V4.29 H25.71 Z M42.86,4.29 V8.57 H47.14 V4.29 H42.86 Z M47.14,4.29 V8.57 H51.43 V4.29 H47.14 Z M51.43,4.29 V8.57 H55.71 V4.29 H51.43 Z M60,4.29 V8.57 H64.29 V4.29 H60 Z M85.71,4.29 V8.57 H90 V4.29 H85.71 Z M0,8.57 V12.86 H4.29 V8.57 H0 Z M8.57,8.57 V12.86 H12.86 V8.57 H8.57 Z M12.86,8.57 V12.86 H17.14 V8.57 H12.86 Z M17.14,8.57 V12.86 H21.43 V8.57 H17.14 Z M25.71,8.57 V12.86 H30 V8.57 H25.71 Z M38.57,8.57 V12.86 H42.86 V8.57 H38.57 Z M42.86,8.57 V12.86 H47.14 V8.57 H42.86 Z M47.14,8.57 V12.86 H51.43 V8.57 H47.14 Z M60,8.57 V12.86 H64.29 V8.57 H60 Z M68.57,8.57 V12.86 H72.86 V8.57 H68.57 Z M72.86,8.57 V12.86 H77.14 V8.57 H72.86 Z M77.14,8.57 V12.86 H81.43 V8.57 H77.14 Z M85.71,8.57 V12.86 H90 V8.57 H85.71 Z M0,12.86 V17.14 H4.29 V12.86 H0 Z M8.57,12.86 V17.14 H12.86 V12.86 H8.57 Z M12.86,12.86 V17.14 H17.14 V12.86 H12.86 Z M17.14,12.86 V17.14 H21.43 V12.86 H17.14 Z M25.71,12.86 V17.14 H30 V12.86 H25.71 Z M34.29,12.86 V17.14 H38.57 V12.86 H34.29 Z M38.57,12.86 V17.14 H42.86 V12.86 H38.57 Z M42.86,12.86 V17.14 H47.14 V12.86 H42.86 Z M51.43,12.86 V17.14 H55.71 V12.86 H51.43 Z M60,12.86 V17.14 H64.29 V12.86 H60 Z M68.57,12.86 V17.14 H72.86 V12.86 H68.57 Z M72.86,12.86 V17.14 H77.14 V12.86 H72.86 Z M77.14,12.86 V17.14 H81.43 V12.86 H77.14 Z M85.71,12.86 V17.14 H90 V12.86 H85.71 Z M0,17.14 V21.43 H4.29 V17.14 H0 Z M8.57,17.14 V21.43 H12.86 V17.14 H8.57 Z M12.86,17.14 V21.43 H17.14 V17.14 H12.86 Z M17.14,17.14 V21.43 H21.43 V17.14 H17.14 Z M25.71,17.14 V21.43 H30 V17.14 H25.71 Z M38.57,17.14 V21.43 H42.86 V17.14 H38.57 Z M47.14,17.14 V21.43 H51.43 V17.14 H47.14 Z M51.43,17.14 V21.43 H55.71 V17.14 H51.43 Z M60,17.14 V21.43 H64.29 V17.14 H60 Z M68.57,17.14 V21.43 H72.86 V17.14 H68.57 Z M72.86,17.14 V21.43 H77.14 V17.14 H72.86 Z M77.14,17.14 V21.43 H81.43 V17.14 H77.14 Z M85.71,17.14 V21.43 H90 V17.14 H85.71 Z M0,21.43 V25.71 H4.29 V21.43 H0 Z M25.71,21.43 V25.71 H30 V21.43 H25.71 Z M34.29,21.43 V25.71 H38.57 V21.43 H34.29 Z M38.57,21.43 V25.71 H42.86 V21.43 H38.57 Z M42.86,21.43 V25.71 H47.14 V21.43 H42.86 Z M60,21.43 V25.71 H64.29 V21.43 H60 Z M85.71,21.43 V25.71 H90 V21.43 H85.71 Z M0,25.71 V30 H4.29 V25.71 H0 Z M4.29,25.71 V30 H8.57 V25.71 H4.29 Z M8.57,25.71 V30 H12.86 V25.71 H8.57 Z M12.86,25.71 V30 H17.14 V25.71 H12.86 Z M17.14,25.71 V30 H21.43 V25.71 H17.14 Z M21.43,25.71 V30 H25.71 V25.71 H21.43 Z M25.71,25.71 V30 H30 V25.71 H25.71 Z M34.29,25.71 V30 H38.57 V25.71 H34.29 Z M42.86,25.71 V30 H47.14 V25.71 H42.86 Z M51.43,25.71 V30 H55.71 V25.71 H51.43 Z M60,25.71 V30 H64.29 V25.71 H60 Z M64.29,25.71 V30 H68.57 V25.71 H64.29 Z M68.57,25.71 V30 H72.86 V25.71 H68.57 Z M72.86,25.71 V30 H77.14 V25.71 H72.86 Z M77.14,25.71 V30 H81.43 V25.71 H77.14 Z M81.43,25.71 V30 H85.71 V25.71 H81.43 Z M85.71,25.71 V30 H90 V25.71 H85.71 Z M47.14,30 V34.29 H51.43 V30 H47.14 Z M21.43,34.29 V38.57 H25.71 V34.29 H21.43 Z M25.71,34.29 V38.57 H30 V34.29 H25.71 Z M34.29,34.29 V38.57 H38.57 V34.29 H34.29 Z M42.86,34.29 V38.57 H47.14 V34.29 H42.86 Z M47.14,34.29 V38.57 H51.43 V34.29 H47.14 Z M51.43,34.29 V38.57 H55.71 V34.29 H51.43 Z M55.71,34.29 V38.57 H60 V34.29 H55.71 Z M64.29,34.29 V38.57 H68.57 V34.29 H64.29 Z M72.86,34.29 V38.57 H77.14 V34.29 H72.86 Z M85.71,34.29 V38.57 H90 V34.29 H85.71 Z M0,38.57 V42.86 H4.29 V38.57 H0 Z M4.29,38.57 V42.86 H8.57 V38.57 H4.29 Z M12.86,38.57 V42.86 H17.14 V38.57 H12.86 Z M34.29,38.57 V42.86 H38.57 V38.57 H34.29 Z M47.14,38.57 V42.86 H51.43 V38.57 H47.14 Z M64.29,38.57 V42.86 H68.57 V38.57 H64.29 Z M68.57,38.57 V42.86 H72.86 V38.57 H68.57 Z M81.43,38.57 V42.86 H85.71 V38.57 H81.43 Z M85.71,38.57 V42.86 H90 V38.57 H85.71 Z M25.71,42.86 V47.14 H30 V42.86 H25.71 Z M34.29,42.86 V47.14 H38.57 V42.86 H34.29 Z M38.57,42.86 V47.14 H42.86 V42.86 H38.57 Z M55.71,42.86 V47.14 H60 V42.86 H55.71 Z M60,42.86 V47.14 H64.29 V42.86 H60 Z M68.57,42.86 V47.14 H72.86 V42.86 H68.57 Z M72.86,42.86 V47.14 H77.14 V42.86 H72.86 Z M77.14,42.86 V47.14 H81.43 V42.86 H77.14 Z M81.43,42.86 V47.14 H85.71 V42.86 H81.43 Z M85.71,42.86 V47.14 H90 V42.86 H85.71 Z M0,47.14 V51.43 H4.29 V47.14 H0 Z M4.29,47.14 V51.43 H8.57 V47.14 H4.29 Z M8.57,47.14 V51.43 H12.86 V47.14 H8.57 Z M17.14,47.14 V51.43 H21.43 V47.14 H17.14 Z M34.29,47.14 V51.43 H38.57 V47.14 H34.29 Z M38.57,47.14 V51.43 H42.86 V47.14 H38.57 Z M42.86,47.14 V51.43 H47.14 V47.14 H42.86 Z M51.43,47.14 V51.43 H55.71 V47.14 H51.43 Z M60,47.14 V51.43 H64.29 V47.14 H60 Z M77.14,47.14 V51.43 H81.43 V47.14 H77.14 Z M81.43,47.14 V51.43 H85.71 V47.14 H81.43 Z M0,51.43 V55.71 H4.29 V51.43 H0 Z M4.29,51.43 V55.71 H8.57 V51.43 H4.29 Z M8.57,51.43 V55.71 H12.86 V51.43 H8.57 Z M17.14,51.43 V55.71 H21.43 V51.43 H17.14 Z M25.71,51.43 V55.71 H30 V51.43 H25.71 Z M34.29,51.43 V55.71 H38.57 V51.43 H34.29 Z M47.14,51.43 V55.71 H51.43 V51.43 H47.14 Z M60,51.43 V55.71 H64.29 V51.43 H60 Z M68.57,51.43 V55.71 H72.86 V51.43 H68.57 Z M81.43,51.43 V55.71 H85.71 V51.43 H81.43 Z M34.29,55.71 V60 H38.57 V55.71 H34.29 Z M42.86,55.71 V60 H47.14 V55.71 H42.86 Z M47.14,55.71 V60 H51.43 V55.71 H47.14 Z M51.43,55.71 V60 H55.71 V55.71 H51.43 Z M64.29,55.71 V60 H68.57 V55.71 H64.29 Z M72.86,55.71 V60 H77.14 V55.71 H72.86 Z M0,60 V64.29 H4.29 V60 H0 Z M4.29,60 V64.29 H8.57 V60 H4.29 Z M8.57,60 V64.29 H12.86 V60 H8.57 Z M12.86,60 V64.29 H17.14 V60 H12.86 Z M17.14,60 V64.29 H21.43 V60 H17.14 Z M21.43,60 V64.29 H25.71 V60 H21.43 Z M25.71,60 V64.29 H30 V60 H25.71 Z M42.86,60 V64.29 H47.14 V60 H42.86 Z M47.14,60 V64.29 H51.43 V60 H47.14 Z M72.86,60 V64.29 H77.14 V60 H72.86 Z M77.14,60 V64.29 H81.43 V60 H77.14 Z M0,64.29 V68.57 H4.29 V64.29 H0 Z M25.71,64.29 V68.57 H30 V64.29 H25.71 Z M34.29,64.29 V68.57 H38.57 V64.29 H34.29 Z M64.29,64.29 V68.57 H68.57 V64.29 H64.29 Z M81.43,64.29 V68.57 H85.71 V64.29 H81.43 Z M0,68.57 V72.86 H4.29 V68.57 H0 Z M8.57,68.57 V72.86 H12.86 V68.57 H8.57 Z M12.86,68.57 V72.86 H17.14 V68.57 H12.86 Z M17.14,68.57 V72.86 H21.43 V68.57 H17.14 Z M25.71,68.57 V72.86 H30 V68.57 H25.71 Z M38.57,68.57 V72.86 H42.86 V68.57 H38.57 Z M51.43,68.57 V72.86 H55.71 V68.57 H51.43 Z M60,68.57 V72.86 H64.29 V68.57 H60 Z M72.86,68.57 V72.86 H77.14 V68.57 H72.86 Z M77.14,68.57 V72.86 H81.43 V68.57 H77.14 Z M81.43,68.57 V72.86 H85.71 V68.57 H81.43 Z M85.71,68.57 V72.86 H90 V68.57 H85.71 Z M0,72.86 V77.14 H4.29 V72.86 H0 Z M8.57,72.86 V77.14 H12.86 V72.86 H8.57 Z M12.86,72.86 V77.14 H17.14 V72.86 H12.86 Z M17.14,72.86 V77.14 H21.43 V72.86 H17.14 Z M25.71,72.86 V77.14 H30 V72.86 H25.71 Z M38.57,72.86 V77.14 H42.86 V72.86 H38.57 Z M42.86,72.86 V77.14 H47.14 V72.86 H42.86 Z M51.43,72.86 V77.14 H55.71 V72.86 H51.43 Z M55.71,72.86 V77.14 H60 V72.86 H55.71 Z M60,72.86 V77.14 H64.29 V72.86 H60 Z M64.29,72.86 V77.14 H68.57 V72.86 H64.29 Z M68.57,72.86 V77.14 H72.86 V72.86 H68.57 Z M81.43,72.86 V77.14 H85.71 V72.86 H81.43 Z M0,77.14 V81.43 H4.29 V77.14 H0 Z M8.57,77.14 V81.43 H12.86 V77.14 H8.57 Z M12.86,77.14 V81.43 H17.14 V77.14 H12.86 Z M17.14,77.14 V81.43 H21.43 V77.14 H17.14 Z M25.71,77.14 V81.43 H30 V77.14 H25.71 Z M42.86,77.14 V81.43 H47.14 V77.14 H42.86 Z M60,77.14 V81.43 H64.29 V77.14 H60 Z M77.14,77.14 V81.43 H81.43 V77.14 H77.14 Z M0,81.43 V85.71 H4.29 V81.43 H0 Z M25.71,81.43 V85.71 H30 V81.43 H25.71 Z M42.86,81.43 V85.71 H47.14 V81.43 H42.86 Z M47.14,81.43 V85.71 H51.43 V81.43 H47.14 Z M51.43,81.43 V85.71 H55.71 V81.43 H51.43 Z M55.71,81.43 V85.71 H60 V81.43 H55.71 Z M60,81.43 V85.71 H64.29 V81.43 H60 Z M64.29,81.43 V85.71 H68.57 V81.43 H64.29 Z M68.57,81.43 V85.71 H72.86 V81.43 H68.57 Z M72.86,81.43 V85.71 H77.14 V81.43 H72.86 Z M85.71,81.43 V85.71 H90 V81.43 H85.71 Z M0,85.71 V90 H4.29 V85.71 H0 Z M4.29,85.71 V90 H8.57 V85.71 H4.29 Z M8.57,85.71 V90 H12.86 V85.71 H8.57 Z M12.86,85.71 V90 H17.14 V85.71 H12.86 Z M17.14,85.71 V90 H21.43 V85.71 H17.14 Z M21.43,85.71 V90 H25.71 V85.71 H21.43 Z M25.71,85.71 V90 H30 V85.71 H25.71 Z M38.57,85.71 V90 H42.86 V85.71 H38.57 Z M42.86,85.71 V90 H47.14 V85.71 H42.86 Z M47.14,85.71 V90 H51.43 V85.71 H47.14 Z M51.43,85.71 V90 H55.71 V85.71 H51.43 Z M64.29,85.71 V90 H68.57 V85.71 H64.29 Z M72.86,85.71 V90 H77.14 V85.71 H72.86 Z M77.14,85.71 V90 H81.43 V85.71 H77.14 Z " /></svg><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class='display' id='break_page1' style='break-after:page'>
</div>
</div >
</body>
</html>


2023年8月28日 星期一

V120401F HTML : Table rowspan

 目的: V120401F   <HTML>  Table  rowspan 的用法  - 列印標籤

處理說明:  1>



1>*.js

HTML碼如下。

<table>
    <tbody>
        <tr>
            <td>1</td><td rowspan="2">2</td><td rowspan="3">3</td><td rowspan="4">4</td><td rowspan="5">5</td>
        </tr>
        <tr>
            <td>6</td>
        </tr>
        <tr>
            <td>11</td><td>12</td>
        </tr>
        <tr>
            <td>16</td><td>17</td><td>18</td>
        </tr>
        <tr>
            <td>21</td><td>22</td><td>23</td><td>24</td>
        </tr>
    </tbody>
</table>



2023年8月22日 星期二

V120401A -myfunc.getDataTable1() -T1C - 自訂 SQL 取得 Grid資料 - 不含RNK , 自行處理分頁

 目的: V120401A -myfunc.getDataTable1() - 自訂 SQL 取得 Grid資料 - 不含RNK , 自行處理分頁 

處理說明: 1> 自訂 SQL 取得 Grid資料, 不含 RNK  , 不用 count_Sql                       
                        --> 呼叫  ds = myfunc.getDataTable1(par_Sql,par_page);
                  2> 順序依自訂 SQL 的  order  by xxxx; 排序 
                  3>新增 DataTable("T1C")  的 [TOTAL]欄位值=目前筆數
                      DataSet ds = new DataSet();
                      DataTable T1C = new DataTable();
                      T1C.TableName = "T1C";
                      DataRow row = T1C.NewRow();
                      T1C.Columns.Add(new DataColumn("TOTAL", typeof(Int32)));
                       row["TOTAL"] = dt.Rows.Count;
                      T1C.Rows.Add(row);
                      ds.Tables.Add(T1C);
                  4>取得 dt 的目前頁次資料 傳回 ds.T1
                      OracleDataAdapter da = new OracleDataAdapter();
                      da.SelectCommand = cmd;
                      //取 cmd 結果的 page資料,存入 ds.Tables["T1"]
                      da.Fill(ds, start, limit, "T1");   


1>myfunc.cs - get_DataTable1(string par_Sql, bool  par_page)
        //函式名稱: getDataTable1
           傳入參數  :  par_Sql  :  目前 SQL
                                par_page: true/false  : 分頁,不分頁 , 預設值: true 
          傳回值 : ds   - 已分頁的資料 , 依 page,start,limit 分頁
        */
        public static dynamic getDataTable1(string par_Sql, bool par_page=true)
        {            
            var c = HttpContext.Current;
            NameValueCollection nvc = c.Request.Form;
            DataSet ds = new DataSet();
            OracleConnection conn = new OracleConnection(DBService.ConnectionString("AMMEU"));
            try
            {            
            int page = 1;
            int start = 1;
            int limit = 30;

            if (nvc.Count > 0 && nvc["page"] != null)
            {
                page = int.Parse(nvc["page"]);
                start = int.Parse(nvc["start"]);
                limit = int.Parse(nvc["limit"]);                
            }

            //產生 par_SQL  的 DataTable , 全部資料全取
            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = par_Sql;                
            conn.Open();
            DataTable dt = new DataTable();
            dt.Load(cmd.ExecuteReader());

            //加入 T1C 
            DataTable T1C = new DataTable();
            T1C.TableName = "T1C";
            DataRow row = T1C.NewRow();
            T1C.Columns.Add(new DataColumn("TOTAL", typeof(Int32)));
            row["TOTAL"] = dt.Rows.Count;
            T1C.Rows.Add(row);
            ds.Tables.Add(T1C);

            //加入 T1  -將 par_Sql 的 分頁資料填入 ds.T1 
            OracleDataAdapter da = new OracleDataAdapter();
            da.SelectCommand = cmd;
            if (par_page)
               da.Fill(ds, start, limit, "T1");
            else
               da.Fill(ds, "T1");
             return ds;
            }  // end try 
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {                
            }         
            return ds;
        }

2>*.js
 {
                                    xtype: 'button',
                                    id: 'btn_sub_Show',
                                    flex: 2,
                                    border: 1,
                                    text: '資料顯示',  //sub_btn_Add
                                    iconCls: 'icon-search',                                    
                                    handler: function () {
                                        //清空 - 勾選註記
                                        CHK_PK_OBJ1.PK_LIST = [];
                                        CHK_PK_OBJ1.ALL_LIST = [];
                                        //--> 需改為將 TMNO 的[AMM_TMDWG]資料加入 store 
                                        var np = {};
                                        np["sub_DOC_NUM"] = Ext.getCmp("sub_DOC_NUM").getValue();                                        
                                        np["sub_STAT"] = Ext.getCmp("sub_STAT").getValue();
                                        var is_Ok = true;
                                                                                
                                        var Tmp_store = Ext.getCmp('sub_Grid').store;
                                        console.log("0 Tmp_store: ", Tmp_store);
                                        Tmp_store.getProxy().url = '../../api/V120401AAPI/get_sub_Data1';
                                        Tmp_store.getProxy().extraParams = np; //分頁OK,篩選條件OK                  
                                        Tmp_store.pageSize = 30;
                                        Tmp_store.load();
                                        console.log("1 Tmp_store: ", Tmp_store);
                                    } // end of handler of sub_btn_Add
                                },// end of  button  sub_btn_Show  , 資料顯示

2023年8月20日 星期日

V120401B – 新增藍圖 - 日期顯示: 0NaN/Nan/Nan - 日期格式不對

 目的: V120401B – 新增藍圖  - 日期顯示: 0NaN/Nan/Nan

 處理說明:  1> AES SQL 傳回的日期欄位, 欄位格式為 : string , 非 date

                    2> 欄位格式設為[日期]來接收 , 造成錯誤, 改為 [string]格式即可




2023年8月15日 星期二

V120401 - 設定 Query高度 - Query 高度亂掉 - radio - 字折行

 目的: V120401 - 編輯後 - Query 高度亂掉 - radio

處理說明:  1> Query的高度設為固定
                        var Query = new Ext.FormPanel({
                                              id: 's_form',
                                             height:120,
                                             layout: { type: 'hbox', align: 'stretch' },
                  2> 按[存檔]後,重新顯示資料                      
                       Ext.getCmp('btn_save').setFormValue = function () {
                               Ext.getCmp('btn_Show').fireHandler();        
                               return true;        
                         };





 
1>*.js
//篩選條件畫面
    var Query = new Ext.FormPanel({
        id: 's_form',
        height:120,
        layout: { type: 'hbox', align: 'stretch' },
        fieldDefaults: { labelAlign: 'right' },
        defaults: { margin: { top: 3 } },
        items: [
            {
                xtype: 'panel',  id: 'panel1',  layout: { type: 'hbox', align: 'stretch' },   flex: 14,  border: 0,
                items: [
                    {
                        xtype: 'panel',  id: 'panel11',  layout: { type: 'vbox', align: 'stretch' }, flex: 25,   border: 0,
                        items: [cmp_TMNOXX, cmp_DOCNO, cmp_TMNO],
                    },  // end of panel11
                    {
                        xtype: 'panel',  id: 'panel12', layout: { type: 'vbox', align: 'stretch' }, flex: 30, border: 0,
                        items: [cmp_VOL, cmp_STLCT,  cmp_MKDT],                        
                    },   // end of panel12 , flex:16                    
                    {
                        xtype: 'panel',  id: 'panel13', layout: { type: 'vbox', align: 'stretch' },  flex: 20, border: 0,
                        items: [cmp_STAT],
                    },   // end of panel13 , flex:16              
                    {
                        xtype: 'panel', id: 'panel14', layout: { type: 'vbox', align: 'stretch' }, flex: 20, border: 0,
                        items: [cmp_TYPE],
                    },   // end of panel13 , flex:16                               
                    {
                        xtype: 'panel', id: 'panel15', layout: { type: 'vbox', align: 'stretch' }, flex: 20, border: 0,
                        items: [],
                    },   // end of panel13 , flex:16                               
                ]
            },  // end of panel1            
            {
                //xtype: 'toolbar',
                xtype: 'panel',
                id: 'panel2',
                layout: { type: 'vbox', align: 'right' },
                flex: 1,
                border: 0,
                items: [
                    {
                        xtype: 'button',
                        id: 'btn_Show',
                        flex: 2,
                        border: 1,
                        text: '資料顯示',
                        iconCls: 'icon-search',
                        handler: function () {
                            var np = s_JSON('s_form'); //TMFunction.js, 組合form上的查詢條件為json參數傳遞                                                       
                            np["s_STAT"] = Ext.getCmp('s_STAT').getValue();
                            np["s_TYPE"] = Ext.getCmp('s_TYPE').getValue();                            
                            //console.log('1 gridstore: ', gridstore);
                            //var gridstore = Ext.getCmp('grid_Single').store;                            
                            gridstore.getProxy().url = '../api/V120401API/getGridData_M';
                            gridstore.getProxy().extraParams = np; //分頁OK,篩選條件OK                            
                            Ext.getCmp('grid_Single').store.pageSize = 30;
                            Ext.getCmp('grid_Single').reloadGridData();       
                            CHK_PK_OBJ.PK_LIST = [];
                            CHK_PK_OBJ.ALL_LIST = [];                                                        
                        }
                    },  // end of 顯示資料
                    {
                        xtype: 'button',
                        id: 'btn_clear',
                        flex: 2,
                        border: 1,
                        text: '清除條件',
                        iconCls: 'icon-clear',
                        handler: function () {
                            var f = Query.getForm();
                            f.reset();
                        }
                    },  // end of 清除條件                    
                   { xtype: 'label', id: 'label151', flex: 2, border: 0, text: '', },  // end of label                    
                ]  // end of items of [顯示資料][清除條件]
            }   // end of panel2  //顯示按鈕
        ]  // end of  items of Query
    });

    Ext.getCmp('grid_Single').addDocked({
        dockedItems: [{
            items: [Query]
        }]
    });

 //存檔.設定欄位值, 重新顯示資料, 以便畫面顯示正常
    //若沒重新顯示,則 radiobox 間距會加大,  畫面顯示不正常
    Ext.getCmp('btn_save').setFormValue = function () {
        Ext.getCmp('btn_Show').fireHandler();        
        return true;        
    };

 // panel11  
    var cmp_TMNOXX = get_cmp_txt1('技令編號', 's_TMNOXX', 80, 130);    
    var cmp_pick_TMNOXX = get_pick_btn0('挑選技令編號', 's_btn_TMNOXX',
        '../api/V120401API/get_s_TMNOXXPick?isComplete=0',
        ['TMNOXX'], ['s_TMNOXX'], J_pickstore_s_TMNOXX, J_pickcolumns_s_TMNOXX);
    cmp_TMNOXX.items.push(cmp_pick_TMNOXX);
    cmp_TMNOXX.items[0].value = '11P10-6-7';
    // DOCNO
    var cmp_DOCNO = get_cmp_txt1('文件編號', 's_DOCNO', 80, 130);
    var cmp_pick_DOCNO = get_pick_btn0('挑選文件編號', 's_btn_DOCNO',
        '../api/V120401API/get_s_DOCNOPick?isComplete=0',
        ['DOCNO'], ['s_DOCNO'], J_pickstore_s_DOCNO, J_pickcolumns_s_DOCNO);
    cmp_DOCNO.items.push(cmp_pick_DOCNO);
    // TMNO
    var cmp_TMNO = get_cmp_txt1('條碼編號', 's_TMNO', 80, 130);
    var cmp_pick_TMNO = get_pick_btn0('挑選條碼編號', 's_btn_TMNO',
        '../api/V120401API/get_s_TMNOPick?isComplete=0',
        ['TMNO'], ['s_TMNO'], J_pickstore_s_TMNO, J_pickcolumns_s_TMNO);
    cmp_TMNO.items.push(cmp_pick_TMNO);


    //panel12
    // 冊號(VOL)
    var cmp_VOL = get_cmp_txt1('冊號', 's_VOL', 80, 130);
    var cmp_pick_VOL = get_pick_btn0('挑選冊號', 's_btn_VOL',
        '../api/V120401API/get_s_VOLPick?isComplete=0',
        ['VOL'], ['s_VOL'], J_pickstore_s_VOL, J_pickcolumns_s_VOL);
    cmp_VOL.items.push(cmp_pick_VOL);
    //儲位(STLCT)
    var cmp_STLCT = get_cmp_txt1('儲位', 's_STLCT', 80, 130);
    var cmp_pick_STLCT = get_pick_btn0('挑選儲位', 's_btn_STLCT',
        '../api/V120401API/get_s_STLCTPick?isComplete=0',
        ['STLCT'], ['s_STLCT'], J_pickstore_s_STLCT, J_pickcolumns_s_STLCT);
    cmp_STLCT.items.push(cmp_pick_STLCT);
    //建檔日期
    var cmp_MKDT = get_cmp_dt1('建檔日期', 's_MKDT1', 80, 100);
    var cmp_MKDT_lbl = get_cmp_lbl0(" ~ ", 20);
    var cmp_MKDT2 = get_cmp_dt0('s_MKDT2', 100);
    cmp_MKDT.items.push(cmp_MKDT_lbl, cmp_MKDT2);    
    
     // panel13            
    var cmp_STAT = get_cmp_rdgrp1('現況', 's_STAT', 80);    
    var cmp_STAT1 = get_cmp_rd0('全部(不含刪除)', 's_STAT', 50, 'ALL');
    cmp_STAT1.checked = true;
    var cmp_STAT2 = get_cmp_rd0('可借閱', 's_STAT', 50, 'A');
    var cmp_STAT3 = get_cmp_rd0('已借出', 's_STAT', 50, 'B');
    var cmp_STAT4 = get_cmp_rd0('已刪除', 's_STAT', 50, 'Z');
    cmp_STAT.items.push(cmp_STAT1, cmp_STAT2, cmp_STAT3, cmp_STAT4);
    
        
    var cmp_TYPE = get_cmp_rdgrp1('類別', 's_TYPE', 80);
    var cmp_TYPE1 = get_cmp_rd0('全部', 's_TYPE', 50, 'ALL');
    cmp_TYPE1.checked = true;
    var cmp_TYPE2 = get_cmp_rd0('藍圖', 's_TYPE', 50, 'D');
    var cmp_TYPE3 = get_cmp_rd0('技令', 's_TYPE', 50, 'T');    
    cmp_TYPE.items.push(cmp_TYPE1, cmp_TYPE2, cmp_TYPE3);


2>myfunc.js
function get_cmp_chk0(par_caption, par_name, par_l_width, par_value, par_margin) {
    if (checkisnull(par_margin))
        par_margin='0  0  0 0 '
    var rtn_cmp =
    {
        xtype: 'checkbox', boxLabel: par_caption, name: par_name, labelWidth : par_l_width,
        inputValue: par_value,
        margin: par_margin,
        width: '100%',  //避免 radio字折行
    }
    return rtn_cmp;
}