本節我們將用一個實例來介紹下一個Label的設計過程,因為Server端與之前的一樣,因此只在這裏介紹Client的設計步驟,如下的說明:
q Client端設計
Step1>在Solution1中,增加一個新Project(從範本CReport1),命名為【cLabel】。可以從Solution ‘Solution1’ 的EEPClient目錄上面按下滑鼠右鍵,然後選擇Add->「New Project..」,出現如圖的視窗選擇範本「CReport1」,『Location』程式路徑請選擇【C:\Program Files\InfoLight\EEP2010\MyProject】即可。(Server與Client的程式都放在同一個目錄之下)。
圖 6-3-1 新建Client端Project
Step2>用滑鼠雙按cLabel下面的Form1.cs,打開Form1.cs[Design]。
圖 6-3-2 打開Form1.cs[Design]
Step3>按一下Master(InfoDataSet)的RemoteName屬性右邊的,打開RemoteName視窗。然後在DataModule選中剛才『sReport1』,在DBCommand裏選擇『Master』(Master為Server端sReport1裏面的InfoCommand的名字),按下【OK】按鈕。
圖 6-3-3 選中設定
Step4>把Master這個InfoDataSet的『Active』屬性設為【True】,『AlwaysClose』屬性設置成【False】,代表打開這個表單時此InfoDataSet是開啟的狀態。
圖 6-3-4 設定Master屬性
Step5>在Master(InfoDataSe)按下滑鼠右鍵,選取右鍵功能表的「Save To Report」,產生sReport1_Master.xml檔案。(Master為Server端sReport1裏面的InfoCommand的名字)。
此目的是為了在RPT報表格式的設計模式中取得我們InfoDataSet的資料結構。
圖 6-3-5 執行Save To Report
Step6>回到Form1設計畫面中,用滑鼠按一下CrystalReportViewer1右上角的,再按下「Create a New Crystal
Report..」,然後輸入報表名稱:CustomerReport,再按下【OK】。
圖 6-3-6 新建與輸入報表名稱
Step7>稍等2秒,會出現如下的畫面,選擇「From an Existing Report」,按下【OK】。
圖 6-3-7選擇報表類型
Step8>選擇EEP2010安裝目錄下EEPNetReport目錄裏面的RLabel.rpt檔案,最後按下【開啟(O)】。
圖 6-3-8開啟RLabel.rpt檔案
Step9>滑鼠左鍵連按兩下CustomerLabel.rpt,打開CrystalReport設計器。
Step10>用滑鼠左鍵按一下CrystalReport設計器的「Field
Explorer」頁籤,然後在Database Fields上按滑鼠右鍵,在右鍵功能表中選擇「Database
Expert…」按下滑鼠左鍵。
圖 6-3-9開啟Database Expert
Step11>按一下Create New Connection前的“+”號展開檔案夾,然後再按一下ADO.NET前的“+”號,會彈出ADO.NET視窗,然後選擇Infolight/EEP2010/EEPNetReport/下的sReport1_Master.xml檔案。(來自「Save To Report」功能)按一下【開啟(O)】按鈕。最後在ADO.NET視窗中按一下【完成】按鈕。
圖 6-3-10開啟sReport1_Master.xml檔案
Step12>在Available Data Source格子裏選中『Master』,然後按一下按鈕,把Master增加到Selected tables格子裏面,按一下【確定】按鈕。
圖 6-3-11添加Master
Step13>在Field Explorer先按一下Database Fields前的“+”號,再按一下Master前的“+”號。最後在展開的Master中選中所需的欄位按下滑鼠左鍵不放,把所需要的欄位拖到CrystalReport設計器的Details的方框中。
圖 6-3-12拖至Details區域
Step14>選擇Crystal Reports右擊滑鼠「Report」->「Section Expert…」功能表,打開Section Expert視窗,也可以在Report的設計畫面中按滑鼠右鍵,在右鍵功能表中選取Report->「Section Expert」,改變「Layout」頁籤下Detail Size的Width值,就可以改變標籤的寬度。(此時需要把Details區域中的欄位Box Object(框線控件)的寬度進行調整,來適應Details區域寬度)。
如果要改變標籤的高度,只需要改變Details區域高度即可,Box Object框線的高度在Template中我們已經設好會自動長高。
在Layout的還有一個「Print Direction」可設先下到右,也可以設定先右再下,左右能印多少個它會自動依紙張寬度來除以目前Details區域的寬度;上下也是依紙張高度除以Details的高度方式來計算。
圖 6-3-13設置報表Details參數
Step15>回到Form1的設計畫面,滑鼠連按兩下「Print」按鍵,就會開啟button1_Click事件程式碼。
圖 6-3-14開啟button1_Click事件
在button1_Click事件中已經有以下兩行程式:
string Wstr = "1=0";
Master.SetWhere(Wstr);
現在因為我們沒有條件,要全部印出,因此將上面兩行程式用「//」註釋掉。
F 然後我們要自己輸入以下程式:
CustomerLabel1.SetDataSource(Master.RealDataSet);
crystalReportViewer1.ReportSource = CustomerLabel1;
F完成之後就如同下圖:
圖 6-3-15輸入程式
在EEPManager.exe的設定步驟,我們不再贅述與貼圖,簡單說明操作方式即可。
Step16>右鍵cLabel,按一下【建置】編譯,產生cLabel.dll,然後執行「EEPNetServer.exe」,接著執行「EEPManager.exe」。
Step17>選擇System->「Security Manager」,打開Security視窗。然後選中ROOT,按一下【Add】按鈕,增加一個功能表,Menu Information裏面MenuId會自動編號,自行設定也可,但不能重複,將『Caption』設置為【CLabel】,『Sequence』設置為【2】。(其中Package是選擇EEP安裝目錄InfoLight\EEP2010\EEPNetClient\ Solution1下的cLabel.dll檔),最後按一下【OK】按鈕。
Step18>選中CLabel,按一下【Access Groups】,在出現frmSelGroups視窗中前先選中『EveryOne』,然後按一下按鈕,接著按一下【OK】按鈕,最後關閉Security視窗。
Step19>執行程式「EEPNetClient.exe」,然後雙按cLabel功能表,按一下「Print」按鈕查看執行結果。至此,一個簡單的Label設計就完成了。
圖 6-3-16 Label報表完成
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |