以下的例子將說明最常用的統計報表實例,來說明Crystal ReportEEP2010間的整合關係。

 

q  Server

 

Step1Solution1中,增加一個新Project(從範本SSingle),命名為sReport2

6-5-1 新增ServerProject

 

Step2Solution Explorer裏用滑鼠雙按sReport2下面的Component.cs,打開Component.cs[Design]

6-5-2打開Component.cs[Design]

 

Step3InfoConnectionConnectionString屬性設置成ERPS。然後按一下MasterMaster是一個InfoCommandName,用戶可以自行修改其Name)的CommandText屬性右邊的打開CommandText Editor視窗。接著按一下Tables下面的Add按鈕,在Choose tables裏選擇OrderDetails表,按一下OK按鈕。接著在Tables裏選中Order Details表,然後按一下Add *按鈕,最後按下OK按鈕。完成圖如下:

6-5-3設置ERPS


6-5-4 添加OrderDetails

 

Step4再次按一下Tables下面的Add按鈕,在Choose tables裏選擇Orders表,然後按一下OK按鈕。

6-5-5 添加Order資料表

 

Step5接著Tables」頁籤裏選中Orders表,在Columns裏選擇OrderDate,然後按一下Add按鈕,跳出Join Option視窗,系統會預設好[Order Details].[OrderID] = [Orders].[OrderID]的設定,同時選擇默認的LeftJoin模式,最後按下OK按鈕。

6-5-6 設定Join語法

 

Step6按一Tables下面的Add按鈕,在Choose tables裏選擇Customers表,然後按一下OK按鈕

6-5-7 添加Customers

 

Step7接著在Tables裏選中Customers表,在Columns裏選擇CompanyName,然後按一下Add按鈕:

6-5-8 添加CompanyName


Step8跳出Join Option視窗,在Left這邊選 [Orders].[CustomerID],在Right這邊選[Customers].[CustomerID],然後按下OK按鈕。

6-5-9 設定Join的資料表

Step9回到CommandText Editor視窗,接著在Columns裏面選擇CustomerID,然後按下Add按鈕。

6-5-10 添加CustomerID

 

Step10Command Text裏面的[Orders].[OrderID]刪掉,最後加上Order By [Customers].[CustomerID],按下OK按鈕結束設定。也可在Command Text中直接輸入如下語法,這樣可省去Step3~Step10的步驟。

select [Order Details].OrderID,[Order Details].ProductID,[Order Details].UnitPrice,[Order Details].Quantity,[Order Details].Discount,Orders.OrderDate,Customers.CompanyName,Customers.CustomerID from [Order Details] left join Orders on [Order Details].OrderID=Orders.OrderID left join Customers on Orders.CustomerID=Customers.CustomerID Order by Customers.CustomerID


6-5-11 修改Command

 

Step11Solution Explorer裏用滑鼠右鍵sReport2,按一下Build編譯sReport2,產生sReport2.dll檔,執行EEPNetServer.exe

 

Step12然後打開File->Pakeage Manager,在Packages中選中Solution1,然後按一下Add..,選擇\InfoLight\ EEP2010\EEPNetServer\Solution1下面的sReport2.dll,按一下打開開啟(0)按鈕,最後按一下Package Manager中的Save按鈕。然後關閉Package Manager

 

 

q  Client

 

Step1Solution1中,增加一個新Project(從範本CReport2),命名為CRGroup

6-5-12 新增ClientProject

 

Step2用滑鼠按兩CRGroup下面的Form1.cs,打開Form1.cs[Design]

6-5-13打開Form1.cs[Design]

 

Step3一下MasterMasterInfoDataSet資料表RemoteName屬性右邊的打開PERemoteName視窗。然後在DataModule選中剛才sReport2,在DBCommand裏選擇MasterMasterServersReport2裏面的InfoCommand的名字),按一下OK按鈕。

 


6-5-14選中設定

 

Step4Master這個InfoDataSetActive屬性和AlwaysClose屬性設置成True。另一個PackedRecords的屬性則必須設為-1,代表全部一次下載。


6-5-15設定Master屬性

 

Step5接下來右Master(為InfoDataSet)的Save To Report,產生sReport2_Master.xml檔案。


6-5-16 執行Save To Report

 

Step6ibsMasterInfoBindingSource資料表DataMember屬性設置為Master

6-5-17 設定DataMember

Step7用滑鼠左鍵按一下clientQuery1Columns屬性右面的,打開QueryColumns Collection Editor視窗

6-5-18打開QueryColumns Collection Editor視窗

 

Step8QueryColumns Collection Editor視窗中按一下Add按鈕,增加2Member2Member的具體設置如下圖所示,分別設定從訂單日期到訂單日期,其中ColumnType設置為ClientQueryCalendarColumn,代表要以日曆元件做為輸入的選單,並設定條件為>=<=,設置完後按OK按鈕。

6-5-19增加2Member並設定參數

 

Step9用滑鼠左鍵按一CrystalReportViewer1右上角,打開功能選單,在裏面選擇Choose a Crystal Report…,打開Choose a Crystal Report視窗


6-5-20打開Choose a Crystal Report視窗

 

Step10選擇EEP2010安裝目錄EEPNetReport目錄裏面的RGroup.rpt案,然後把Add to project前面的也打上,最後按OK按鈕結束。


6-5-20打開RGroup.rpt

 

Step11用滑鼠左鍵按一下CrystalReportViewer1上角的,打開功能選單,把Choose a Tool Panel View選為GroupTree

6-5-21選中Display Group Tree

 

Step12Form1的設計畫面滑鼠連按兩下Query按鈕,在button1_Click件中輸入以下三行程式。

            clientQuery.Excute(Panel1);

            RGroup1.SetDataSource(Master.RealDataSet);

            crystalReportViewer1.ReportSource = RGroup1;

完成圖如下:

    

6-5-22 編輯button1_Click

 

Step13RGroup.rpt,打開CrystalReport設計器。


6-5-23打開CrystalReport設計器

 

Step14用滑鼠左鍵按一下CrystalReport設計器最右面的「Field Explorer」,然後右鍵Database Fields打開Database Expert…

6-5-24打開Database Expert

 

Step15按一Create New Connection前的“+”號展開檔案夾,然後再按一下ADO.NET前的“+”號,會彈出ADO.NET視窗,然後選擇Infolight\EEP2010\EEPNetReport\下的SReport2_Master.xml檔案,按一下開啟(O)】按鈕。最後ADO.NET窗中按一下【完成】按鈕。

6-5-25開啓SReport2_Master.xml檔案

 

Step16Available Data Source裏選中Master,然後按一下 按鈕,把『Master』增加到Selected tables面,按一下【確定】按鈕。


6-5-26添加Master

 

Step17Crystal Report的設計頁面中有一個GroupHeader Section1這個區域,請在滑鼠右鍵功能表先Report往右選Group Expert」,來打開Group Expert窗。


6-5-27打開Group Expert

Step18Group Expert視窗的Group By裏面,右鍵Group#1-A選擇「Options」,打Change Group Options窗。


6-5-28Change Group Options

 

Step19Change Group Options視窗選擇CustomerID』欄位,然後按下【確定】按鈕,代表要以CustomerID做為群組的依據欄位。


6-5-29CustomerID欄位

Step20滑鼠在Field Explorer裏的Formula Fields一下,再右鍵「New」,打開Formula Name視窗增加一個公式欄位。

6-5-30增加公式欄位

 

Step21Name: 裏輸入 “TotalAmount”,然後按一下 Use Editor 按鈕,打開Formula Workshop – Formula Editor視窗。


6-5-31打開Formula Workshop – Formula Editor視窗

 

Step22FormulaWorkshop–FormulaEditor視窗的中輸入{Detail.UnitPrice}*{Detail.Quantity},這2個欄位也可以從New DataSet中拖入到編輯器裏。最後按下【Save and close】。

6-5-32 定義Command

Step23Field Explorer先按一下Database Fields前的“+”號,再按一下Master前的“+”號。最後在展開Master中選中所需的欄位按下滑鼠左鍵不放,把所需要的欄位拖到CrystalReport設計器的Details區域中。把『CustomerID』與『CompanyName』拖到GroupHeaderSection1面,代表要在群組表頭中列印CustomerIDCompanyName。最後把新建的公式欄位拖入到報表的Details區域中。

 


6-5-33 公式欄位拖至Details區域

 

Step24右鍵Field Explorer裏的「Running Total Fields」,再右鍵「New…」。


6-5-34 新建

 

Step25打開Create Running Total Field視窗,增加一個匯總欄位。

Œ    在『Running Total Name:裏輸Total

   然後在『Available Tables and Fields:』裏面選中TotalAmount欄位,也就是剛才所創建的公式欄位。

Ž   接著按下Field to summarize左面的按鈕,這樣就在Field to summarize裏新增了一個@TotalAmount的變數;

   緊接著在『Type of summary』裏選擇sum

   最後在『Reset』裡選擇On change of group,目的是爲了讓加總欄位按照每一個CustomerID的明細數據進行加總,按下OK結束設定。


6-5-35增加匯總欄位

 

Step26最後把新建的匯總欄位拖入到報表的GroupFooterSection1域中。並增加一個Text Object雙按Text Object輸入總計:


6-5-36增加一個Text Object

 

Step27雙按報表表頭這個TextObject把名字改成訂單產品統計表


6-5-37修改表頭

 

Step27右鍵CRGroup按一下【Build】編CRGroup產生CRGroup.dll然後執行EEPNetServer.exe」,接著執行「EEPManager.exe」。

 

Step28選擇System->Security Manager」,打Security窗。然後選中ROOT,按一下【Add】按鈕,增加一個功能表,將『Caption』設置為【CRGroupSequence』設置為【4(其中Package是選擇EEP安裝目錄InfoLight\EEP2010\EEPNetClient\Solution1下的CRGroup.dll),最後按一下【OK】按鈕。選CRGroup,按一下【Access Groups,選中『EveryOne』,然後按一下按鈕,接著按一下【OK】按鈕,最後關閉Security視窗

 

Step29執行「EEPNetClient.exe」,然後雙按CRGroup功能表,然後輸入要查詢的日期,最後按下「Query」按鈕查看執行結果。



6-5-38統計報表完成

 

===============EEP2010報表設計 ==============

 

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)