2023年1月4日 星期三

映像檔轉虛擬光碟機_操作說明

 目的: 將映像檔轉虛擬光碟機操作說明, 以便安裝軟體(Ex: Delphi)

操作說明: 1>將映像檔掛接成虛擬磁碟機

                  2>由虛擬光碟機安裝軟體(Ex: Delphi)

                  3>退出虛擬光碟機


1>將映像檔掛接成虛擬磁碟機



  2>由虛擬光碟機安裝軟體(Ex: Delphi)



  3>退出虛擬光碟機



2023年1月2日 星期一

PL/SQL Developer – 環境設定 - 自動 Selection Statement / 自動Commit

 目的: PL/SQL Developer – 環境設定 - 自動 Selection Statement / 自動 Commit

操作說明: 1>  Edit à PL/SQL Beautify Options à Windows àSQL Windows

                  2> 勾選    [v] AutoCommit

                                   [v] AutoSelect  Statement







Visual Studio IDE 環境設定 - 背景顏色/字型大小/字型顏色

目的:  Visual Studio IDE 環境設定 - 背景顏色/字型大小/字型顏色

操作說明: 1>由工具 --> 選項 --> 環境

                  2>[字型與色彩]

                  3>由工具 --> 選項 --> 匯入和匯出設定








2>Visual Studio IDE 環境設定匯入  - 工具à匯入和匯出設定












3>目前 Visual Studio 2019 的環境設定檔, 範例放置路徑如下:
D:\A_PROJ\000_維航處\01_教育訓練\0_VisualStudio2019\000_IDE_Setting\microed_202010.vssettings\microed_202010.vssettings

2022年12月26日 星期一

V80201- 請稍候訊息 - 1>Label方式 2>LoadMask方式

目的:  V80201- 顯示 請稍候訊息

處理說明: 1>畫面上,以 label 顯示訊息 - 請稍候  - label.setVisible(true)  ;
                  2>載入完成時, label.setVisible(false)  ;
                  3>Ext.Ajax 的  async 必需為 true, 異步式處理, 即去後端處理時,前端仍需繼續處理
                       ,如此前端才會顯示等待訊息




一.以 Label 方式處理
1>*.js
  //資料處理中..,請稍候
                {
                    xtype: 'label',
                    id: 'waitlbl1',
                    text: '.',
                    hidden: false,
                }, // end of 請稍候
                {
                    xtype: 'label',
                    id: 'waitlbl',

                    text: '資料處理中,請稍候...',
                    hidden: true,
                    style: {color: 'blue',}

                }, // end of 請稍候

{
            xtype: 'button', text: '確定', id: 'sub_ShowPN_OkBtn',
            listeners: {
                click: function () {
                    //mysuccessalert("mysub2_確定 ");
                    Ext.getCmp("waitlbl").setVisible(true);
                    //Ext.getCmp("waitlbl").setX(100);                                        
                    //myMask.show();                    
                    ShowPNGridDetail(par_PN, par_ECNO, par_CNDPROCCODE, par_ASN);
                }
            }
        },        


Ext.getCmp('sub_Grid').store.on("load", function (me, records, successful, eOpts) {        
        if (successful) {
            console.log("successful");
            console.log("Ext.getCmp('sub_Grid').store.data", Ext.getCmp('sub_Grid').store.data);
            win1.show();
            //若已載入完成,則            
            Ext.getCmp('waitlbl').setVisible(false);            
            //myMask.unmask();                    
            //myMask.hide();                                
        }
    }

二.以 LoadMask方式處理

目的:  V80201- 顯示 請稍候訊息  - 以 LoadMask 方式

處理說明: 1>畫面上,以 LoadMask 顯示訊息 - 請稍候  - Ext.getCmp("myMask").show();

                  2>載入完成時, - Ext.getCmp("myMask").hide();





1>*.js
var myMask = new Ext.LoadMask(Ext.getBody(), {
     msg: '資料處理中,請稍候...',
     id: 'myMask',

});

//顯示訊息
Ext.getCmp("myMask").show();

//隱藏訊息
Ext.getCmp('sub_Grid').store.on("load", function (me, records, successful, eOpts) {
        if (successful) {

            console.log("successful");
            console.log("Ext.getCmp('sub_Grid').store.data", Ext.getCmp('sub_Grid').store.data);
            win1.show();
            //若已載入完成,則            
            Ext.getCmp("myMask").hide();
        }
    }
    );






2022年12月13日 星期二

V80201 – 按鈕.預設值: disabled, 若有資料,才設為 enabled - 按鈕.Enabled

 目的: V80201 – 按鈕.預設值: disable,  若有資料,才設為 enabled



1>*.js


//按鈕 : [顯示子件資料] [顯示施工步序]
var BtnAry = [
{
xtype: 'button', text: '顯示子件資料', id: 'ShowPNBtn', disabled : true,
listeners: {
click: function () {
var cur_recs = Ext.getCmp("grid_Single").getSelectionModel().getSelection();
if (cur_recs.length == 0) {
var Tmp_Str = "請先選擇要查詢的件號資料";
mywarnalert(Tmp_Str);
return;
}
else {
var cur_rec = cur_recs[0];
var Tmp_PN = cur_rec.data["ITM_ID"];
var Tmp_ECNO = cur_rec.data["EC_MC_ID"];
var Tmp_CNDPROCCODE = cur_rec.data["DISPOSITION_CODE"];
var Tmp_ASN = cur_rec.data["CUT_IN"];
ShowPNBtn_click(Tmp_PN,Tmp_ECNO,Tmp_CNDPROCCODE,Tmp_ASN);
}
} // end of click
} // end of listeners
}, // end of 顯示子件資料
{
xtype: 'button', text: '顯示施工步序', id: 'ShowSTEPBtn', disabled: true,
listeners: {
click: function (me, e, eOpts) {
console.log(" 1 顯示施工步序: ");
var cur_recs = Ext.getCmp("grid_Single").getSelectionModel().getSelection();
if (cur_recs.length == 0) {
var Tmp_Str = "請先選擇要查詢的件號資料";
mywarnalert(Tmp_Str);
return;
}
else {
var cur_rec = cur_recs[0];
var Tmp_PN = cur_rec.data["ITM_ID"];
var Tmp_ECNO = cur_rec.data["EC_MC_ID"];
var Tmp_CNDPROCCODE = cur_rec.data["DISPOSITION_CODE"];
var Tmp_ASN = cur_rec.data["CUT_IN"];
ShowSTEPBtn_click(Tmp_PN, Tmp_ECNO, Tmp_CNDPROCCODE, Tmp_ASN);
}
}
} // end of listener
}, // end of 顯示施工步序
];



  gridstore.on("load", function () {
                                console.log("gridstore.onload !!");
                                if (gridstore.data.getCount() == 0) {
                                    Ext.getCmp("ShowPNBtn").setDisabled(true);
                                    Ext.getCmp("ShowSTEPBtn").setDisabled(true);
                                    mywarnalert("無符合條件的資料!!");
                                }
                                else {
                                    Ext.getCmp("ShowPNBtn").setDisabled(false);
                                    Ext.getCmp("ShowSTEPBtn").setDisabled(false);
                                }

V80201- 子視窗顯示資料,顯示第1筆的欄位值 -select(0)無效

 目的: V80201- 子視窗顯示資料,顯示第1筆的欄位值

處理說明: 1>select(0)無效
                   2>改用 grid_store.data.items[0].data["specdata1"];



1>*.js

Ext.getCmp('sub_Grid').store.on("load", function (me, records, successful, eOpts) {        
        if (successful) {
            console.log("successful");
            console.log("Ext.getCmp('sub_Grid').store.data", Ext.getCmp('sub_Grid').store.data);
            var grid_store = Ext.getCmp('sub_Grid').store;
            if (grid_store.getCount() > 0) {
                //若有資料,則預設選擇第一筆
                var Tmp_Str = grid_store.data.items[0].data["specdata1"];
                Ext.getCmp("sub_specdata1").setValue(Tmp_Str);
                /*
                //select(0) 無效
                console.log("count>0");
                Ext.getCmp('sub_Grid').getSelectionModel().select(0);                
                Ext.getCmp('sub_Grid').fireEvent("selectionchange");
                */
            }
            win1.show();
        }
    }
    );