第十四章PROC處理程序實作第十四章PROC處理程序實作\14-1 最簡單的Sample

14-1 最簡單的Sample

 

首先,透過PROC來實作一個簡單的Sample,就以抓取有成交的報價單(有效報價清單)為例,如下:

Step1>EEPCloud設計頁面中,在 [PROC] 右鍵,選擇新增】,並輸入PROC的名稱。

 

Step2>設計頁面出現如下的畫面,中間為設計器,會自動出現 [開始] [結束] 兩個固定的活動,設計設計頁面的左邊為 [活動工具箱],用來拖拉活動放入設計器中,右邊為活動的屬性編輯器,用來設定個活動的屬性。

Step3>點選[開始]這個活動,設定Items屬性,此用來設定傳入的變數或此PROC的某些變數的初值。如下,我們設定了一個傳入"YYYYMM"變數,內容代表"西元年+月份",設定完畢後,[開始]會顯示所有的變數在上面(可以自行將活動拉寬一點)

)

 

Step4>從工具箱中點選[Sql查詢]拖拉到 [開始] [結束] 活動之間(滑鼠拖拉時必須在""的位置變成紅色時,即可放開)

接著設定[Sql查詢]的屬性:

Title: 設定為"取得報價單",用來顯示在活動上。

CommandText: 查詢的SQL語法,如下:

SELECT 報價單號,報價日期,客戶編號,名稱,合計未稅,報價人 FROM 報價單 WHERE LEFT(CONVERT(varchar,報價日期,112),6)=@YYYYMM AND 報價單號 IN (SELECT 報價單號 FROM 出貨單 WHERE 出貨單.報價單號=報價單.報價單號 )

語法的意思是查詢有出現在出貨單的報價單號與其內容,其中@YYYYMM代表SQL中有使用到YYYYYMM這個變數,變數內容設定在Parameters屬性中。

Var: SQL查詢結果的存放變數,這裡設定"報價單"代表存到這個變數上(內有多筆資料)

Parameters: 設定SQL查詢語句裡的'@'參數,如下:

按下新增一個參數成員,Name下拉可以選到SQL裡的'@'參數名稱,Var則代表要傳入的變數或內容,點選Var內容會出現以下的[Expression Editor]編輯器:

 

此編輯器的Vars會列出所有目前的變數,包括傳進來的,這裡我們選擇YYYYMM這個傳入的變數,按下【確定】即可傳回該變數。(下方的SysVars代表固定的系統變數)

 

設定完畢,如下圖: (SQL活動可以拉寬一點)

 

Step5> [取有效報價] [結束]活動中間,拖入一個[文件輸出]活動,設定屬性如下:

OutputVar: 要輸出的變數內容,下拉選擇"報價單"這個變數。

OutputType: 要輸出的文件類型,可以選Excel/Word/Txt/ExcelPlate(Excel套表)/WordPlate(Word套表)/WordPlatePDF(Word套表)。這裡我們用預設值Excel

FileNameVar: 指定輸出的文件名稱,可以用運算式來指定檔名,這裡我們設定一個新的FileName的變數,這樣代表會隨機產生一個檔名並傳回給這個FileName的變數中。

 

Step6> [結束]這個活動中,我們選擇傳回前端這個檔案名稱,設定ReturnVar選擇剛剛的FileName變數即可。如下:

整個PROC設計完成,成果如下:

 

Step7>接著在前端,我們在 [報價單] 表單的ToolItmes中,增加一個有效報價單清單按鈕,並執行以下的JS程式:

function effecQuot()

{

    $.prompt("請輸入報價單年月(YYYYMM):","",function(yyyymm) { // 輸入yyyymm變數

        $.callProc('有效報價清單',{YYYYMM:yyyymm},function(result){ //非同步呼叫PROC

            var url = '../file?q=' + result + '&n=報價清單'; // 設定下載檔案路徑

window.open(url); //下載檔案

        });

    });

}

然後【預覽】這個 [報價單]並執行有效報價單清單按鈕,如下:

前端執行 $.prompt()可以用來輸入一個參數,然後透過$.callProc() 來執行後端的PROC模組,幾秒鐘後,就會透過windows.open() 來下載這個報價清單的Excel檔案。


 

Top of Page