內建資料集是指資料集的結構和資料都存入報表模板,運算報表的時候不再需要從資料來源取數。一般情況下,主要滿足以下兩種需要:
1、可以讓使用者快速的體驗建立報表的過程,只需在報表設計器中定義乙個內建資料集,錄入一些模擬資料就可以在報表中使用了,這樣給使用者的體驗過程帶來了極大的方便。
2、可以用於報表的跟蹤除錯,當報表預覽結果和預想的結果不符合時,可以把資料集轉為內建,然後把報表模板發給技術支援人員,方便支援人員跟蹤除錯(否則,在無源的狀態下,不能除錯則無法及時發現問題)。
當然,根據使用者特殊需求,內建資料集也可以作為乙個巧妙的功能點來使用。
比如,有使用者採用mvc框架結構,控制層呼叫服務層產生報表要展現的資料,報表只需將服務層返回的資料展現即可,不需要任何資料方面運算。
往往這種情況,在未考慮到內建資料集的時候,基本的解決方案是自定義資料集,由自定義資料集直接呼叫服務層返回資料封裝成dataset用於展現。再或者控制層獲取到資料後儲存成檔案,再由自定義資料集讀取展現。
但,客戶要求嚴格按照mvc結構來做,不允許報表呼叫服務層。儲存成檔案再讀取又怕併發大出問題,過程也繁瑣。這就無法讓報表讀到生成的資料了。那麼這個時候,內建資料集就很好用了。
基本的原理是,終端使用者發請求是控制層,控制層從服務層獲取資料,後控制層讀取已定義好格式的報表檔案,將獲取的資料封裝成報表的內建資料集即可,最終採用bean形式直接跳轉到展現層展示報表。
importcom.raqsoft.report.model.reportdefine;
importcom.raqsoft.report.usermodel.builtindatasetconfig;
import com.raqsoft.report.util.reportutils;
import com.runqian.report4.usermodel.types;
public class readreport ;
//定義內建資料機字段型別
byte coltypes =;
//設定內建資料集欄位名稱
bds.setcolnames(colnames);
//設定內建資料機字段型別
bds.setcoltypes(coltypes);
//定義並設定內建資料集資料列表
string valuess =,,};
bds.setvalues(valuess);
//為報表資料集列表增加新 內建資料集
rd.getdatasetmetadata().adddatasetconfig(bds);
//輸出儲存修改後的報表
}catch (exception e) {
e.printstacktrace();
注:報表設計器內增加內建資料集包括:增加字段、設定字段型別、新增資料。 因此api也是涉及對應的三個方法,由上面**(內建資料集類:builtindatasetconfig)可知:setcolnames()/setcoltypes()及setvalues()
潤幹報表V5如何訪問WEB INF下的JSP展現
web inf下面的檔案都是受保護的,把需要限制訪問的資源 比如說jsp 放到web應用的web inf目錄下,對於web inf及其子目錄,都是不允許直接訪問的,所以就可以起到保護這些 未經授權的訪問和窺視,更好的保護了源 結合頁面的跳轉方式 一 redirect 方式,二 forward 方式。...
潤幹報表5 巧用集算器資料集
看如下圖所示報表 這個報表從樣式來看,可以看作是乙個簡單的網格式報表,統計著各種收支金額,但因為取數負責,每個格仔的資料都來自乙個負責的sql資料集,並且涉及十幾個,乃至幾十個資料集,藍色區域裡每個格仔都需要從各自的資料集裡檢索遍歷,查詢與左表頭關聯的記錄。為了方便體會這一點,我們將上圖報表簡化一點...
潤幹V5大報表報錯的幾種情況
針對於資料量巨大的明細資料包表,潤幹提供了大報表功能,大報表在報表展現效能上有了很大提公升,把資料不斷分批取出,儲存到臨時檔案中。這樣用外存來換取記憶體,從而大大提高了報表的預覽速度,使得大報表運算和普通報表運算速度無異。但是使用時有可能會出現如下錯誤 第一種情況比較常見,要想使用大報表功能,要用到...