實現基本功能的動態水晶報表
系統配置: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...