|
|
許多客戶利用Smart Query開發過程中,一直在詢問這樣的問題,如何與Delphi結合,又如何與VB.NET結合,甚至其他程式語言,所以我們提供了SmartViewer.ocx這個ActiveX元件(以下簡稱SmartViewer元件),只要在Window中使用的開發工具,都可直接利用此元件連接Smart-Query所設計的報表。 |
| |
| 當您安裝Smart Query後,在C:\Program Files\Smart-Query\Dll(如果安裝路徑有自行設定,則在設定路徑下的Dll資料夾中)路徑下有個SmartViewer.ocx檔案 , 就是SmartViewer元件。SmartViewer元件提供LinkQuery函式讓您呼叫Smart Query報表,透過傳入參數可以控制連結的報表及其內容和連結方式。以下會分別以Delphi及VB.Net為開發工具來介紹您如何在自行開發的系統中呼叫Smart-Query。
|
| |
| 一、使用DELPHI連結Smart Query的報表
|
首先需要先將SmartViewer安裝到Delphi開發環境中
|
Step1:安裝 SmartViewer.OCX之前,必需新增一個Package來安裝此元件,請執行功能選單中的File\New選項,選擇新增Package功能如【圖一】
|
| |
|
|
【圖一】新增Package |
| |
Step2:選擇一個資料夾儲存此Package並為此Package命名,在這個範例中將Package儲存在D:\Program Files\Borland\Delphi5\Projects\Bpl路徑,並將其命名為WebBrowser2。儲存這個Package產生WebBrowser2.dpk檔案。 |
| |
|
|
【圖二】儲存Package---WebBrowser2 |
| |
Step3:執行功能選單Component\Improt ActiveX Control選項,點選Add功能,選擇C:\Program Files\Smart-Query\Dll\SmartViewer.ocx檔案,如【圖三】。 |
| |
|
|
【圖三】 |
| |
| Step4:如【圖四】點選Install鍵,接下來執行Brwoser功能選擇前面新增的Package “D:\Program Files\Borland\Delphi5\Projects\Bpl\WebBrowser2.dpk”,將ocx包裝至此Packages中。 |
| |
|
【圖四】 |
|
| Step5:完成上面的步驟後,您可以在Delphi的ActiveX元件盤中找到新增的SmartViewer元件,如【圖五】。 |
| |
|
【圖五】 |
| |
然後我們就可以在ERP系統中利用SmartViewer元件來呼叫Smart-Query了,接下來以一簡明的範例來介紹如何呼叫Smart-Query。 |
| |
| Step6:在Smart-Query中製作了一個查詢”客戶年度銷售分析表”,這個查詢有三個條件,分別是查詢年度及客戶編號起訖值,想要呼叫這個查詢,並且帶入查詢年度為”2000”,如【圖六】。
|
|
【圖六】 |
| |
Step7:以Delphi製作了如下的程式來呼叫”客戶年度銷售分析表”,在【圖七】中可以看到畫面上放置了一個SmartVierer元件並有7個輸入框(Edit)及一個核取框(CheckBox),這些輸入元件可以改變要呼叫Smart-Query的參數值。
|
而在”連結查詢”Button的OnClick事件筆者撰寫了如下程式:
SamrtViewImpl11.LinkQuery(eServer.TExt, eUserID.TExt, ePassword.Text, eProject.Text, eSystem.Text, eQuery.Text, CheckBox1.Checked,edtParams.Text,''); |
| |
|
【圖七】 |
| |
Step8:在前面提到了SmartViewer元件提供LinkQuery函式以呼叫查詢及報表,這個函式的prototype 如下:
|
LinkQuery( P1:string,P2:string, P3:string, P4:string, P5:string,
P6:string,P7:boolean,P8:string,P9:string)
|
參數的意義如後: P1:ServerName P2:使用者帳號 P3:使用者密碼 P4:欲呼叫查詢所屬專案名稱 P5:欲呼叫查詢所屬子系統名稱 P6:欲呼叫的查詢名稱 P7:呼叫查詢時是否開啟新的瀏覽器視窗或是內嵌在SmartViewer元件中顯示 P8:如果有使用多公司別,則此參數傳入公司名稱 P9:傳入查詢中的條件值 【圖七】畫面的輸入元件正是對應了傳入LinkQuery函式的參數值 |
| |
Step9:想要呼叫”客戶年度銷售分析表”,所以在呼叫程式的輸入框填入正確的參數值,如畫面所示。其中在查詢的條件值中想要看查詢年度為”2000”的資料,所以輸入了”YEARMONTH0=2000”,而”YEARMONTH0”正是查詢年度這個條件在Smart-Query規格中的參數名稱。如果有多個條件要傳入的話就以”&”符號來連接,例如: ”YEARMONTH0=2000&CUSTID0=A001&CUSTID1=B002”;而想要開啟新的視窗來瀏覽,所以勾選了在新視窗中開啟;在這個範例中並不使用多公司別,所以在呼叫LinkQuery函式時,直接將公司別的參數填入空白。填完參數值後,按下”連接查詢”按鈕就可以看到開啟了新視窗來呼叫Smart-Query的”客戶年度銷售統計表了”,如【圖八】。 |
|
【圖八】 |
Step10:SmartViewer.ocx元件提供了另一個函數;Logout,此函數的使用時機為當您要將程式關閉時,而且您是使用將Smart Query內嵌在SmartViewer元件中,可以在FormClose的事件中呼叫SamrtViewImpl11.Logout函數,表示欲登出Smart Query系統,才不會導致使用者仍佔著系統的資源。 |
| |
上述內容以呼叫”客戶年度銷售分析表”為例,來解說如何利用SmartViewer.ocx呼叫Smart-Query的查詢。在範例中是以直接在畫面輸入LinkQuery的參數來控制,而一般在ERP或EIP系統中,所需的參數我們都會以變數儲存在程式中,所以只要在呼叫時將參數值換成變數名稱就可以了。 |
| |
二、如何使用VB.NET連結Smart Query的報表 |
前一段落以10個步驟說明了使用Delphi開發時如何呼叫Smart-Query查詢,若您是使用VB.NET程式語言的話,在呼叫Smart-Query的查詢時,是與前述Step6至Step10相同的。不同的地方是如何將SmartViewer元件安裝到VB.Net中,所以接下來僅針對這一部份作說明。 Step1:從開始功能表中啟動命令提示字元。 Step2:在命令提示字元中輸入cd C:\Program Files\Smart-Query\Dll將路徑移至存放SmartViewer元件的位置。 Step3:在命令提示字元中輸入Regsvr32 SmartViewer.ocx來註冊元件。 Step4:執行功能選單工具\自訂工具箱選項,接下來切換到COM元件頁次,可以看到一個”SmartViewerImpl1 Control”元件,勾選此元件將其匯入VB.Net的開發環境中,如【圖九】。 |
|
【圖九】 |
| |
Step5:在工具箱的”元件”頁次中便可以看到一個名為SmartViewerImpl1的元件類別,即是SmartViewer元件。 |
|
【圖十】 |
| |
三、如何建置Client端執行環境 |
當您在ERP系統完成利用SmartViewer元件呼叫Smart-Query報表的工作後,再分發程式到Client端時,也必須要分發SmartViewer元件的相關檔案,包含SmartViewer.ocx及LcloginP.dll兩個檔案。分發步驟如下述 : 1. 在您安裝Smart Query,SmartViewer.ocx及LcloginP.dll這兩個檔案會位於安裝電腦的C:\Program Files\Smart-Query\Dll中(如果在安裝時,您有自行指定路徑,則會位於您指定的路徑下的Dll資料夾中),首先先找到這兩個檔案。 2. 將這兩個檔案分發到Client端,例如筆者的ERP系統程式是位於Client端的C:\ERPComponent資料夾下,就將這兩個檔案複製到這個路徑。 3. 從開始功能表中啟動命令提示字元。 4. 在命令提示字元中輸入 cd C:\ERPComponent將路徑移至存放元件的位置。 5. 在命令提示字元中輸入Regsvr32 SmartViewer.ocx來註冊第一個檔案。 6. 在命令提示字元中輸入Regsvr32 LcloginP.dll註冊第二個檔案即完成分發步驟後,Client端即可執行應用程式,連結Smart Query報表。 |
| |
附註:若您的作業系統為Win98則Regsvr32(Regsvr32.exe檔案)這個指令會在C:\WINDOWS\SYSTEM路徑下(依作業系統安裝路徑決定),若是WIN2000等作業系統您可以直接在命令提示字元中執行這個指令。
|
|
|
 |
| |
|
|
|
| Best
Viewable size 800 x 600 |
|
|
| | | | | | | |