簡單實現Crystal Report的動態載入 (轉)
crystal reprot 為我們開發報表提供了很大的便利,但是它不能實現runtime時資料自定義,給開發帶來了不完美。不過雖然我們不能runtime自定義資料,但我們還是可以實現runtime自定義載入報表。
要實現自定義載入報表,要使用推報表生成。(拉模式我沒有試過,哪位網友要是實現了可以告訴我:) )
回顧一下推模式的操作過程,在利用生成報表的那一步中,我們選擇空報表。這個時候在解決方案中生成一個report.rpt(假定是這個名字),但是我們在方案目錄下,我們還可以看到一個同名的report.cs。這個就是我們這次討論的關鍵。我們先來看看這個檔案有什麼。
namespace App_Crystal_Dynametic {
using System;
using System.ComponentModel;
using CrystalDecisions.Shared;
using CrystalDecisions.Report;
using CrystalDecisions.CrystalReports.Engine;
public class Report : ReportClass {
public Report() {
}
public overr string ResourceName {
get {
return "Report.rpt";
}
}
……
看到紅色高亮的嗎?當我們向report推資料的時候report類如何把資料繫結到合適報表中呢,就是靠這個程式碼了!既然如此,那麼我們如果能夠動態改變它的返回值就可以動態載入報表了,讓我們來試試。下面是我修改後的程式碼:
namespace WebApp_Crystal_Dynametic {
using System;
using System.ComponentModel;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;
public class Report : ReportClass {
string resourcename = "Report.rpt";
public Report() {
}
public override string ResourceName {
get {
return resourcename;
}
set {
resourcename = value;
}
}
……
好現在我們再新建幾個不同的報表(都是推模式的),在程式中我新增了幾個button,不同的button事件中載入不同的報表,並把不同的資料推向報表。程式編譯執行透過(window server + vs 2003)。
這樣我們只要在程式中使用plugin模式,就可以在不改變的情況下為程式新增新的報表檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 實現簡單的列表預載入iOS
- Python《成功破解簡單的 動態載入 的爬蟲》Python爬蟲
- 優雅的實現動態載入 css、jsCSSJS
- 使用 Crystal 實現驗證碼識別與自動化登入
- vue 實現tab切換動態載入不同的元件Vue元件
- Js使用水桶簡單方便實現同步載入JS
- 使用Netty和動態代理實現一個簡單的RPCNettyRPC
- Nginx實現簡單的負載均衡Nginx負載
- Spring Cloud Nacos實現動態配置載入的原始碼分析SpringCloud原始碼
- Umi + qiankun 實現動態載入子應用路由路由
- web前端入門到實戰:非同步載入CSS最簡單的實現方式Web前端非同步CSS
- 藉助 Webpack 靜態分析能力實現程式碼動態載入Web
- 利用 DynamicLinq 實現簡單的動態表示式構建查詢
- Vue的動態選單無法登入(無法載入選單)Vue
- Crystal 實現文字識別程式
- Python實現簡單負載均衡Python負載
- Spring Boot 如何熱載入 jar 實現動態外掛?Spring BootJAR
- Spring Boot 如何熱載入jar實現動態外掛?Spring BootJAR
- 【react】實現動態表單中巢狀動態表單React巢狀
- laravel_admin 單一登入的簡單實現Laravel
- vue 動態選單以及動態路由載入、重新整理採的坑Vue路由
- SQL 如何實現動態的行列轉置SQL
- 小視訊app原始碼,動態毛玻璃背景的簡單實現APP原始碼
- DcatAdmin 簡單實現匯入ExcelExcel
- Python實現簡單驗證碼的轉文字Python
- 實現動態表單的一種思路
- DLL動態庫動態載入
- 使用java動態位元組碼技術簡單實現arthas的trace功能。Java
- Servlet實現、與html的簡單互動ServletHTML
- 動手實現一個簡單的promisePromise
- AbstractRoutingDataSource 實現動態資料來源切換原理簡單分析
- 實現動態自動匹配輸入的內容
- 動手實現一個簡單的 rpc 框架到入門 grpc (下)RPC框架
- 動手實現一個簡單的 rpc 框架到入門 grpc(上)RPC框架
- 動手實現一個簡單的 rpc 框架到入門 grpc (上)RPC框架
- 指令碼的動態載入指令碼
- Dcat Admin實現簡單的excel匯入功能Excel
- JSP(ajax)+Servlet實現簡單的登入功能JSServlet
- 使用canvas實現簡單動畫Canvas動畫