2010年9月1日 星期三

Crystal Report 參數

Crystal Report 參數可在程式中傳入數值至報表中顯示或者做其他判斷使用。接下來就是幾個基本步驟設定。

有問題請一定要發問!如果圖片太小,可再點擊進去看大圖。

1.

在「欄位總管」中的「參數欄位」點擊右鍵,按下「新增」(如圖一)。
圖一

2.

此時會跳出「建立參數欄位」的視窗,鍵入自訂名稱,並且選擇數值類型,按下「確定」(如圖二)。
圖二

3.

確定後「參數欄位」下會多一個欄位,即為剛剛建立的欄位(如圖三)。
圖三

4.

接著可以利用這建立出來的欄位,拖曳到報表上利用(如圖四),而在程式碼之中,只需多加傳遞參數的函式 SetParameterValue ,傳入兩參數為參數欄位名稱與值(如圖五),最後執行報表後就會顯示出你所傳遞的值(如圖六)。
圖四
圖五
圖六

7 則留言:

Outway 提到...

請教一下, 我們公司有個前人留下的rpt檔, 只要按F5重新整理, 輸入資料就可以產生報表, 但是出現的第一個畫面是OLE DB(ADO)要輸入服務 使用者及密碼, 是否有方法可以出現這個畫面的時候密碼就已經打好了?

謝謝!!

David Kuo 提到...

您好,我曾有幾次遇到過類似的問題,第一就是通常一張報表會用到一個資料集 (DataSet),但如果您的資料集中有兩個以上資料表,而您又同時使用 SetDataSource 兩個 DataTable 的話,就會出現類似情形,這時您不仿考慮使用子報表。第二,就是程式碼順序錯誤,要先讀取 rpt 檔後,再 SetDataSource,最後傳入參數。又如果以上兩種狀況都不是,可以在詳細說明您的狀況。

Outway 提到...

您好, 用文字敘述可能無法完整表達意思, 我有抓畫面下來, 可否將您的mail address 寄到ourwayhu小老鼠gmail.com
我將畫面mail給您.
謝謝!!

David Kuo 提到...

您好,已寄出。

Unknown 提到...

您好:
我想請問一下,如果我在VS2008(VB.net)建立FORM專案,並新增crystal report項目(空白報表)進來,在form專案裡有放crystal reportviewer,在form_load時我去連sql2008,將資料存放到dataset裡面(有兩個dataTable),並想把dataset傳到crystal reportviewer去產生報表。我不知道如何去設計一個報表的欄位值是從dataset來的,請問您可否幫忙教導,謝謝。

我怕我上面說明不清楚,另外提出問題點來講仔細一點,抱歉呢。
1.建立空白報表後,在設計畫面時,如何添加欄位來接收dataset,因為我的資料來源不是從資料庫,而是在FORM專案執行時已經登入資料庫並選擇要的資料存到dataset了。
2.想麻煩您寫個簡單範例教學,謝謝

Unknown 提到...

我大概會了,我試著在專案中新增項目dataset.xsd檔,xsd檔裡增加兩個datatable,再把我從資料庫抓出來的資料分別對應到從xsd檔內兩個datatable欄位,目前試到這部份,等等在試從form表單傳值到crystalreport。

David Kuo 提到...

對應應該是沒問題,可顯示就會有問題。