動態水晶報表的實現

2021-06-16 04:35:12 字數 1561 閱讀 8286

實現基本功能的動態水晶報表

系統配置:vs2005+內嵌的水表

目的:

我也是剛接觸.net不久,做專案過程中需要設計報表,可乙個個的做起來煩啊,原來做過乙個vb6的動態報表,用起來還不錯,故也想弄乙個水表的東東。因為水表接觸時間不長,做的也不是很順手,用了我半個月的時間才弄個大概模樣,不當之處還請各位見諒。覺得有用就看看,沒用就當沒看到吧。

目前實現的功能

1、報表標題、頁碼顯示格式、紙張大小、紙張方向、邊距等的動態修改

2、報表列標題的動態修改(2行也支援,但是感覺定義麻煩)

最大允許使用者定義40列(內部定義的公式總數決定的,呵呵)

同時顯示的列數必須<=提供的資料表裡面的字段數,不讓報錯

3、資料部分偷懶了,是和提供的資料表的順序一致(本來想做兩種方式的)

4、分組頭部分

簡單的顯示分組名

5、分組尾部分

這部分能定義是否顯示、以及組的小計,比如計數、求和等

6、報表尾部分

這部分能定義是否顯示、以及總計資訊,比如計數、求和等

呼叫方法

dim strsql as string = "select a.employeeid,firstname,title,lastname,a.region,a.postalcode,a.country,a.homephone,a.reportsto,companyname,contactname,c.orderid,shipcity,shippostalcode,productid,unitprice,quantity,discount " & _

"from employees a,customers b,orders c , [order details] d " & _

"where(a.employeeid = c.employeeid and b.customerid = c.customerid and c.orderid = d.orderid)"

ds = getdata(strsql)

dim rc as integer

dim aa as new cryclsv1.autorepdoc

rc = aa.createrepdoc(sfile, ds.tables(0), sinfo)『sfile是ini格式的報表設定檔案

'sinfo是定義的報表左下角顯示的內容

if rc > 0 then

msgbox(rc)

else

crystalreportviewer1.reportsource = aa.reportdoc

end if

水晶報表動態載入資料

以前在學習水晶報表使用的時候都是使用嚮導,直接連線資料庫,然後將字段拖到報表檔案中。不過專案中要使用水晶報表來動態載入資料,下面是實現的方法 將取得的資料集匯出為xml檔案,然後使用資料庫專家,選擇建立新連線,選擇資料庫檔案,然後瀏覽到剛才匯出的xml檔案,這時在字段資源管理器中就有資料庫欄位了,然...

水晶報表 建立報表

水晶報表是乙個優秀的報表開發工具,本人在開發通用管理系統的時候,所有報表都使用水晶報表,其簡單 易用和強大的功能令筆者倍加喜愛,現將水晶報表使用手記呈現給大家。一 在使用自帶的水晶報表時,請註冊,否則只能使用30次 二 使用crystalreportviewer進行預覽 crystalreportv...

水晶報表 子報表

經過了一段時間對水晶報表的操作,我對其稍稍了解了一點點。這兩天,一直在為資料量太大而煩惱,我有六張表,其中一張關聯剩餘的五張表。想要顯示資料,結果,顯示不出來,即使我已經在鏈結裡面設定了左外連線。我知道這個是按照笛卡爾積相乘,所以資料會成倍的增加。所以,即使我改用直接連線資料庫的方式也行不通。就是p...