轉帖|其它|編輯:郝浩|2011-11-09 14:37:58.000|閱讀 787 次
概述:我們在使用ActiveReports的時候,通常都是在工程里建一個.rpx文件,然后自動會有一個對應的代碼文件,我們就把代碼和處理邏輯寫在代碼文件里。但是,能不能脫離代碼文件,只使用.rpx文件來生成報表呢?答案是可以的,ActiveReports提供的EndUser功能可以做到這一點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
我們在使用ActiveReports的時候,通常都是在工程里建一個.rpx文件,然后自動會有一個對應的代碼文件,我們就把代碼和處理邏輯寫在代碼文件里。但是,能不能脫離代碼文件,只使用.rpx文件來生成報表呢?答案是可以的,ActiveReports提供的EndUser功能可以做到這一點。
ActiveReports自帶的示例代碼中包括了兩個EndUser功能的例子:DiamondReports和EndUserDesigner,前者的功能齊備些,后者比較簡單,但是對于學習使用EndUser功能,比較直觀,下面說說在winform和web環境下如何使用。
運行EndUserDesigner示例程序,會看到一個在VS.net中的報表設計界面非常相似的界面。有工具欄,有字段列表,有報表布局,有屬性,等。實際上最主要的兩個控件是ardMain和 ardReportExplorer,ardMain就是用來顯示報表布局的,ardReportExplorer用來顯示當前ardMain的數據源的字段列表和布局的各個部分。
使用EndUser主要有兩個步驟:設定數據源,設計報表布局。設定數據源可以通過點擊布局部分Detail字樣前的圖標,會彈出一個對話框,在這里可以設置數據源類型,連接串,sql語句。完成后會在字段列表部分顯示出通過sql語句得到的字段,然后就可以設計報表布局了。你可以把字段列表中的某一項拖放到布局上,會自動生成控件并綁定DataField。
在Winform下,設計完成后就可以通過EndUserDesigner菜單上的“預覽”看到你的報表了。然后可以用Save Layout菜單將報表保存為一個.rpx文件。要在web環境下使用剛才設計的報表,步驟要復雜些:
1. 按照上面的步驟設計.rpx文件。
2. 在web項目中包括.rpx文件。
3. 配置web.config文件,為了能在瀏覽器中直接顯示報表,需要對Web.config文件作一些設置,在system.web 標記里添加以下內容:
<httpHandlers>
<!--
********** ActiveReports HttpHandler Configuration **********
-->
<add verb="*" path="*.rpx"
type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web,
Version=4.0.0.1052, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
<add verb="*" path="*.ActiveReport"
type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler,
ActiveReports.Web, Version=4.0.0.1052, Culture=neutral,
PublicKeyToken=cc4967777c49a3ff" />
<add verb="*" path="*.ArCacheItem"
type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler,
ActiveReports.Web, Version=4.0.0.1052, Culture=neutral,
PublicKeyToken=cc4967777c49a3ff" />
</httpHandlers>
這里的Version和PublicKeyToken都必須正確,如果你不清楚,可以通過管理工具里的.net framework配置工具來查看這些屬性。
在ActiveReports的文檔里說在VS2005中如果不是使用IIS就可以不用配置,在VS2003里是必須的。但是我在VS2005中,如果不加這段配置還是不行。
4. 在頁面上使用,例如:<a href="YourReport.rpx?OutputFormat=pdf">Sample</a>
注意這里傳入的參數OutputFormat=pdf,這樣會使在瀏覽器里打開報表生成的pdf文件。
目前ActiveReports只支持pdf和html兩種格式,如果你使用excel或者rtf,是沒有效果的,都會按照html格式顯示。
上面說了基本的操作,但是如果在sql語句里有參數怎么作呢?怎樣向sql語句傳遞值來取得指定的數據呢?
首先要在sql語句里嵌入參數的表達形式,例如:
Select * from Customers WHERE Country = '<%Country%>'
下面要作的就是傳參數值了,在web下比較簡單,使用QueryString,例如,我們把Url寫成這樣:YourReport.rpx?OutputFormat=pdf& Country=China,一切就OK了。
在Winform下,不用自己傳參數值,只要你在運行報表的時候,ActiveReports會自己解析Sql語句,分析出有哪些參數,然后會彈出一個對話框,列出參數,要求你輸入值。
可以看出,使用EndUser功能是很簡單的,但是它一樣也有局限,就是適合較簡單的業務,雖然設計一個報表很簡單,甚至可以把一部分工作交給客戶自己完成,但是不要指望客戶能作多么復雜的東西,客戶寧可打個電話要求開發者幫忙義務勞動下,維護的工作量最終還是在程序員身上。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:網絡轉載