1. 程式人生 > >FastReport.NET報表工具,你的報表幫手

FastReport.NET報表工具,你的報表幫手

一、頁面設定

  情景:FastReport設計器頁面預設設定為A4紙,但如果需要顯示的欄位過多,這時就出現了頁面的大小無法滿足完整顯示所需內容的問題。

  解決:出現這個問題後,我們可以在來到"檔案"—"頁面設定"選項中進行設定,在這裡可以直接調整頁面的紙張型別和尺寸,但是我使用的時候更多的會調整Portrait為Landscape,所謂Portrait按詞霸的翻譯就是“紙短的一邊在頂端和底端的列印方式”,而Landscape則恰恰相反,意思是“紙長的一邊在頂端和底端的列印方式”,可以簡單的理解Portrait為縱向,Landscape為橫向,通過這樣的調整既可以保證用標準的A4紙列印,又滿足了設計時能夠擴充紙張大小,保證顯示內容的目的。

二、過濾或排序顯示資料

  情景:為了將資料按順序顯示,便於檢視。

  解決:此時可以雙擊資料區,這時就會看到排序和過濾的選項,可以通過點選後面fx圖示,使用設計器的方式實現,當然也可以手動新增程式碼:

三、新增和設定子報表

  情景:顯示覆雜關係的資料。

  解決:進入"報表"--"設定報表欄",可以對報表進行各種設定,其中資料首隻會列印一次,資料尾則會在所有資料之後被列印。

四、日期顯示

  情景:有些資料表裡的日期欄位是空的,這時FastReport會自動將其轉化為0001/1/1的形式。

  解決:此時如果想要讓日期為空時不顯示此預設的形式,可以再次進入"報表"--"選項"中,在"一般"選項卡中取消勾選"轉換空值"即可。

五、資料表的巢狀

  情景:複雜的資料庫表之間有很多複雜的主從對應關係,這時需要在資料來源中建立關係。

  解決:選擇動作--新建關係,然後就可以象在資料庫裡一樣建立主外來鍵關聯了。

六、手動確定資料來源

  情景:有些時候SQL語句建立表的關係過於複雜,以至於很難建立良好的主從關係,比如我遇到的這樣的SQL查詢
        
SELECT i.SheetKeyId,i.SheetId,i.OperatorName,
i.InCheckDateTime,i.OutCheckDateTime,i.OutCheckPeople,
s1.BranchName AS InBranchName,s2.BranchName AS OutBranchName
FROM   dbo.T_StorageBranch s1 , dbo.T_StorageBranch s2 , 
dbo.T_LeechdomIOSheet i , dbo.T_LeechdomIOSheet i2
WHERE  i.InBranchKeyId = s1.BranchKeyId
AND    i2.OutBranchKeyId = s2.BranchKeyId
AND    i.SheetId = i2.SheetId

  既有自表關聯,又有和其他表的關聯,那建立主從關係豈不要鬱悶死。。。

  解決:此時我的解決方法有兩種,一個是基於FastReport是支援表和檢視作為資料來源的,此時可以事先在資料庫中建立檢視,從而使用檢視作為資料來源解決此表的關聯問題,當然如沒有專案的需求,大可採用第二種方法,即點選"新增SQL查詢",這是輸入我們的SQL語句,便會自動生成一個查詢結果,我們只需要在報表設計時用其作為資料來源就ok了。

七、使用系統變數

  情景:我們經常會在報表列印時要求顯示當前的頁數,當前的資料量統計以及當前的列印時間等。

  解決:FastReport其實已經我們內建了所有這些功能,可以在系統變數中找到,只需要簡單的拖入Date就可以顯示出當前日期,拖入PageN就可以顯示頁碼等。

八、使報表顯示時呈現常見的奇偶行變色效果。

  情景:資料量大時可以方便檢視資料。

  解決:這裡同樣有兩種方法,一是在"報表"--"樣式"中新增一個樣式,叫做EvenRows,什麼樣式都不用設定,確定即可,然後單擊資料區,在外觀的EvenStyle屬性裡面選擇此樣式,最後改變Fill屬性的填充顏色即可。第二種方法是通過程式的方式來實現,程式碼如下:
        
private void Data1_BeforePrint(object sender, EventArgs e)
{
if (((Int32)Report.GetVariableValue("Row#")) % 2 == 0)
Data1.FillColor = Color.Gainsboro;
}

  這裡的Row#為系統內建變數,代表行號,我們選出偶數行後,設定FillColor為自己想要的顏色即可,但不可為window顏色,這樣就看不出效果了。

九、使用程式操作報表

  情景:在窗體程式中可以使用程式設計的方式對報表的相關欄位進行操作。

  解決:
    
//獲取資料來源中列的值
string productName = (string)Report.GetColumnValue("Products.Name");


//獲取資料來源
DataSourceBase ds = Report.GetDataSource("Products");


//獲取系統變數值
DateTime date = (DateTime)Report.GetVariableValue("Date");


//獲取總計數
float sales = Report.GetTotalValue("TotalSales");


//獲取引數
int myParam = (int)Report.GetParameterValue("MyParameter");


//設定引數
report1.SetParameterValue("EmployeeID", 2);


十、備註

  1、在FastReport中的變數都使用的是[DataSourceName.FieldName]的形式,凡是以這種形式表示的都需要從資料庫中讀取,而普通文字則需要[文字內容]這樣的形式就可以搞定。

  2、在FastReport中可以設定資料表的別名,這樣可以在多表關聯的時候使用別名與相關欄位對應。

  3、如果你還沒有心動的話,我貼幾張現成的基於Northwind資料庫的demo示例看看吧。。。


相關推薦

FastReport.NET報表工具,報表幫手

一、頁面設定   情景:FastReport設計器頁面預設設定為A4紙,但如果需要顯示的欄位過多,這時就出現了頁面的大小無法滿足完整顯示所需內容的問題。   解決:出現這個問題後,我們可以在來到"檔案"—"頁面設定"選項中進行設定,在這裡可以直接調整頁面的紙張型別和尺寸,但

使用FastReport報表工具生成報表PDF文件

在我們開發某個系統的時候,客戶總會提出一些特定的報表需求,固定的報表格式符合他們的業務處理需要,也貼合他們的工作場景,因此我們儘可能做出符合他們實際需要的報表,這樣我們的系統會得到更好的認同感。本篇隨筆介紹如何基於FastReport報表工具,生成報表PDF文件展示醫院處方箋的內容。 之前在隨筆《在Winf

這些.NET開源專案知道嗎?.NET平臺開源文件與報表處理元件集合(三)

    在前2篇文章這些.NET開源專案你知道嗎?讓.NET開源來得更加猛烈些吧 和這些.NET開源專案你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)中,大夥熱情高漲。再次拿出自己的私貨,在.NET平臺處理文件相關的開源元件。文件處理在開發中是一個非常常見的任務了,例如匯出Excel,匯出Word,

使用功能強大的外掛FastReport.Net列印報表例項

我第一次使用FastReport外掛做的功能是列印一個十分複雜的excel表格,有幾百個欄位都需要繫結資料,至少需要4個數據源,而且用到橫向、豎向合併單元格。   我不是直接連線資料庫,而是使用RegisterData的方式自己註冊DataSet物件,所有的表Tabl

使用FastReport報表工具生成標籤列印文件

在我們實際開發報表的時候,我們需要按一定的業務規則組織好報表的模板設計,讓報表儘可能的貼近實際的需求,在之前的隨筆中《使用FastReport報表工具生成報表PDF文件》介紹了FastReport生成常規報表的處理,本篇隨筆回顧常規報表的處理效果,並介紹基於FastReport生成標籤紙列印需要的報表格式。

使用FastReport報表工具生成圖片格式文件

之前我在隨筆《使用FastReport報表工具生成報表PDF文件》介紹過使用FastReport.Net來根據報表模板進行生成PDF,以及隨筆《使用FastReport報表工具生成標籤列印文件》介紹過生成標籤文件的處理,基本上都是基於模板進行生成PDF的做法,由於PDF在手機端顯示總是覺得不那麼方便,不管使用

使用FastReport報表工具實現信封套打功能

在較早期的報表套打的時候,我傾向於使用LODOP的ActiveX進行報表的列印或者套打,BS效果還是很不錯的。之前利用它在Winform程式裡面實現信封套打功能,詳細參考《基於信封套打以及批量列印的實現過程》,雖然功能能夠完美實現,不過由於還需要附帶一個不是百分百整合一起的外掛,還是有點另類的,雖然只是第一次

Web報表工具FineReport二次開發JS之字符串

報表 獲取字符串 網頁 簡介 popu 能夠 int() 例如 位置 在報表開發過程中,有些需求可能無法通過現有的功能來實現。須要開發者二次開發,以FineReport為例。能夠使用網頁腳本、API接口等進行深入的開發與控制。考慮到JS腳本開發的使用較多。這裏先先簡介怎

報表工具highcharts使用心得

技術 java 通過 als 心得 去掉 rip 提交 label 公司讓做一個報表頁面,搜索了下發現highcharts比較符合業務需求,下面就說一下使用心得。 $(‘#container‘).highcharts({ title: {

報表工具輕松搞定票據單據套打

項目開發 分享圖片 畫圖軟件 什麽 class 畫圖 根據 接下來 需要 實際項目開發中,很多情況會涉及到票據的打印。即在一張印刷好的空白票據上,準確無誤地打印上票據的內容。用傳統的報表工具,我們通常會用尺子量每一個數據區域的位置,然後在屏幕上根據尺子量出的尺寸設計每一個格

報表工具輕松搞定卡片式報表

分享圖片 size 遇到的問題 神器 con font 報表設計器 com 能夠 在我們日常生活或工作中,經常會看到這樣一個個小卡片,上面記載著某件商品或者某個人的基本信息。如同名片一般,看起來簡單明了。而在數據庫中,這些信息實際上是密密麻麻的一條條記錄,直接查看非常容易看

報表工具如何實現“點擊查看原圖”

dial width 數據源 疑問 普通 html屬性 實例 博客 很多 在各種涉及圖片的Web網站上,無論是搜圖類、社交類、保險服務類,以及ERP或檔案管理等內部系統,其中對於圖片通常會提供一種點擊圖片查看原圖的操作,也就是一開始呈現小圖,點擊後放大查看。這種操作我們能在

報表工具怎麽做模糊查詢

ext 工具 adb image 變量 ges 連接數 連接 展現 在數據查詢系統中,我們常常會遇到精準查詢和模糊查詢。我們知道,對於關系數據庫,使用精準查詢可以直接在 sql 裏面使用“where 字段 = 參數值”來過濾對應的數據,而要實現模糊查詢,我們使用的就是 li

要!不要報表工具???

要,要,切克鬧,報表工具來一套!!! 要問什麼是報表工具?那我們先得掰扯掰扯什麼是報表。查一下某某百科……簡單的說,報表就是用表格、圖表等格式來動態顯示資料。可以用公式表示為:“報表 = 多樣的格式 + 動態的資料”。而報表工具呢?用廢話說,就是幫助使用者做報表的工具……不那麼廢的話,還是某某百

用皕傑報表工具如何實現累計報表

從報表工具的計算模型我們知道行式報表是逐行擴展出來的,擴充套件的過程中如何求下圖中的累計值呢?下面我們來看一下在皕傑報表工具中如何實現上述報表。1.設計報表表樣設計如圖:E2單元格中D2+E2[-1]指的是本條記錄所對應的D2單元格內容(即獎金)加上上一條記錄的E2單元格內容(即累積獎金)。這個公式運用到了位

報表工具:開源還是商用?試用三款報表軟體的感受

頭疼啊  頭疼 因後期專案需要,領導突然給安排整理報表廠商的對比,方便選型。 雖然本人搞BI專案也不計其數了,其中也涉及到了多種開源及商業的報表工具軟體。說實話,還真沒好好的做過對比分析,就傻傻的搞搞搞了,一時來這事,有點懵圈,不知如何下手。 不過也算是個機會,總算有時間可以靜

BI工具報表設計之報表引數

億信BI在設計報表時提供了多種報表引數,那什麼是報表引數,包含哪些型別?都有什麼作用呢?在設計報表時我們如何正確使用這些報表引數?今日課題為你詳解報表引數的相關內容。   1什麼是報表引數 億信BI報表內容都可以作為引數,使用者可以根據實際需求將報表中的可變數作為引數。

國內價效比最高的報表工具套件

廢話少說,6句話瞭解這套報表工具。 中式報表的先行者,完美創造實現非線性模型。 自助報表的活雷鋒,免費開源拖拖拽拽不用愁。 填報報表的終結者,憑他是技術填報業務填報。 普通報表的聯結器,資料開發和資料展現分離。 複雜報表的工具箱,自定義資料集從此變簡單。 低速報表的加速器,多

【Stimulsoft Reports.Net教程】在報表中使用變數

下載Stimulsoft Reports.Net最新版本 此示例顯示Web報表中的使用變數(報表引數)。在開始頁面上,表單中有幾個引數 - 例如,這是一個簡單的使用者配置檔案。填充後,這些引數將傳遞到Report.aspx頁面。 <%@ Page Language="C#" AutoE

如何利用報表工具快速實現資料庫表維護

在各種產品直銷系統中,隨時可能更新產品資訊,例如將過時產品資訊下架、新開發產品上新、根據不同節假日修改產品價格,等等等等。傳統的做法中,如果沒有面向業務人員的專門維護介面,或者資料修改的策略常常發生變化,業務人員就只能求助開發人員,讓他們去資料庫中執行查詢或更新 sql 語句來實現產品資訊的維護,這