1. 程式人生 > >使用功能強大的外掛FastReport.Net列印報表例項

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

我第一次使用FastReport外掛做的功能是列印一個十分複雜的excel表格,有幾百個欄位都需要繫結資料,至少需要4個數據源,而且用到橫向、豎向合併單元格。

  我不是直接連線資料庫,而是使用RegisterData的方式自己註冊DataSet物件,所有的表Table都是程式碼生成,填充到DataSet中,然後註冊到控制元件中。

  最開始嘗試使用這個外掛做一個簡單的功能使用的就是下面的例子,不過花了一整天,還請假了4個人都沒有搞出來,晚上拿著別人的模板直接修改,然後測試,就通過了。

  之前測試,一直都提示未連線到資料來源,原因是我直接使用記事本來向模板新增資料來源導致的,平時別人使用的資料來源都是自己寫程式碼,呼叫Design的方式得到的,而且只能是winform程式,webform程式不行,因為要啟動com元件。

  下面是我總結的特別簡單的一個方式,使用RegisterData的方式自己註冊DataSet物件。

1,          選擇【File】-》【New】 新建FastReport模板,選擇下圖的1。

                       

2,          選擇【View】-》【Data】,顯示如下,匯出Dictionary,儲存。

 

3,          編輯匯出的.frd檔案,編輯完後儲存,再匯入。

如下:

(1)  TableDataSource 是資料來源節點。

(2)  Name是DataSet物件的Table的表名。

(3)  Column是Table的列,模板繫結資料時,使用Column的Name屬性。

<?xml version="1.0" encoding="utf-8"?>

<Dictionary>

  <TableDataSource Name="Table1" ReferenceName="Data.Table1" DataType="System.Int32" Enabled="true">

    <Column Name="姓名" DataType="System.String" PropName="Column"/>

    <Column Name="密碼" DataType="System.String" PropName="Column"/>

  </TableDataSource>

</Dictionary>

4,          編輯模板,新增一個Table控制元件。

第一行直接雙擊輸入文字;第二行直接將右邊的資料來源託到單元格中;

設定邊框、字型。

 

5,          新增事件後臺方法

如下圖,選中Table1,在事件ManualBuild的後面雙擊,新增下面的程式碼:

 

    // 控制元件Table1的構建事件

    private void Table1_ManualBuild(object sender, EventArgs e)

    {

        DataSourceBase data1 = Report.GetDataSource("Table1"); // 獲取DataSet中表名為Table1的資料來源

        data1.Init(); // 初始化

        Table1.PrintRow(0); // 控制元件Table1列印第0行

        Table1.PrintColumns(); // 每列印一行,都要呼叫 PrintColumn或PrintColumns

        while(data1.HasMoreRows) // 列印重複迴圈的行

        {

            Table1.PrintRow(1);

            Table1.PrintColumns();

            data1.Next(); // 讀取下一行

        }

    }

說明:

(1)   Table控制元件是從第0行開始的。

(2)   繫結資料的重複行,算作一行。

(3)   輸出行之前,要先呼叫Init() 方法,當有兩個資料來源,比如data1和data2,data1又是data2的父資料來源,需要把data1當做引數,如 data2.Init(data1);

(4)   每列印一行,都要呼叫 PrintColumn或PrintColumns

6,          新增c#程式碼

新建一個測試頁面test.aspx,將一個FastReport控制元件拖放到頁面上(只有按照過FastReport.net,且引用了FastReport.dll,FastReport.Bars.dll,FastReport.Web.dll之後才可以)

新增後頁面如下:

<body>

    <form id="form1" runat="server">   

    <cc1:WebReport ID="webReport" runat="server" OnStartReport="WebReport_StartReport" />

    </form>   

</body>

後臺方法:

        protected void WebReport_StartReport(object sender, EventArgs e)

        {

            DataSet ds = new DataSet();

            DataTable table1 = new DataTable();

            table1.TableName = "Table1"; // 一定要設定表名稱

            ds.Tables.Add(table1);

            // 新增表中的列

            table1.Columns.Add("姓名", typeof(string));

            table1.Columns.Add("密碼", typeof(string));

            // 任意新增一些資料

            for (int i = 0, maxI = 10; i < maxI; i++)

            {

                DataRow row = table1.NewRow();

                row["姓名"] = "我是" + i.ToString();

                row["密碼"] = i.ToString();

                table1.Rows.Add(row);

            }

            Report FReport = (sender as WebReport).Report;       

            string sPath = GetReportsPath("test.frx") ;

            FReport.Load(sPath);

            // 將DataSet物件註冊到FastReport控制元件中

            FReport.RegisterData(ds);

        }

        /// <summary>

        /// 獲取fastreport模板的路徑

        /// </summary>

        /// <param name="sReportName">模板名稱</param>

        /// <returns>返回模板路徑</returns>

        public string GetReportsPath(string sReportName)

        {

            return FastReport.Utils.Config.ApplicationFolder + "Reports\\" + sReportName;

        }

7,          測試效果

1對應儲存,可以是各種格式;

2對應列印;

3對應分頁。

 

相關推薦

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

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

ASP.NET水晶報表實現列印功能

ASP.NET下的水晶報表列印,據我所知有以下幾種辦法可以列印:        1.用IE的列印.呼叫window.print(),但這種辦法對於頁面上即有報表,又有其它控制元件情況就無法區分,不能達到只打印報表內容的目的;       2.自已寫列印程式碼. 程式碼如

draggabilly一款功能強大的拖動拖拽元素外掛

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

功能強大的最新HTML5例項

HTML5非常強大,今天我們再一次向大家分享8款功能強大的最新HTML5特效例項,包含選單、圖片、Canvas動畫等,一起來欣賞吧。 1、HTML5 Canvas畫板畫圖工具 可定義筆刷和畫布 HTML5 Canvas還有一個比較實用的應用,那就是網路畫板,這樣我們就可以在網頁上直接進行畫圖操作

列印報表時遇到問題:Ming-WebReport Viewer外掛尚未正確安裝

一、背景 在某頁面上需要列印報表,頁面給了驅動的下載方式,不過下載安裝驅動後仍舊報錯。 二、問題的出現 在某頁面上填寫完相關資訊後,需要下載資訊表並簽字,但是直接開啟資訊表是沒法開啟的。網頁上給了一個說明,下載驅動安裝後,再使用報表工具進行列印: 不過就算把驅動下載並安裝好了,

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

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

全網最詳細的如何在谷歌瀏覽器里正確下載並安裝Postman【一款功能強大的網頁除錯與傳送網頁HTTP請求的Chrome外掛】(圖文詳解)

     不多說,直接上乾貨!     想必,玩過Java Web的你,肯定是對於http post和get等請求測試的過程記憶猶新吧。     Postman的安裝方法分好幾種,主要分為兩種安裝模式介紹:       (1)chrome瀏覽器postman 外掛安裝  【本

Logger-功能強大使用方便的Log日誌列印工具類

介紹 Android開發中Log日誌列印對開發者來說是非常重要的功能。但是感覺Log寫多了也是煩,每次都需要設定一個TAG過濾值和具體的列印資訊,而且列印的資訊也不夠豐富。 這裡我推薦一個功能強大的Log日誌列印工具類-Logger。(不是java.util

簡單功能強大的jQuery圖片剪裁外掛Image Cropper

相信很多朋友都在大型的網站,如新浪微博、QQ微博上看到過頭像裁圖工具,感覺很高大尚吧,今天朋友們有福了,今天就來說一說一款這麼高大尚的外掛cropper,cropper是一款使用簡單且功能強大的圖片剪裁外掛。該圖片剪裁外掛支援圖片放大縮小,支援滑鼠滾輪操作,支

Swifter.Json -- 在 .Net 平臺上的一個功能強大,簡單易用,穩定又不失高效能的 JSON 序列化和反序列化工具。

Swifter.Json Github Wiki 在 .Net 平臺上的一個功能強大,簡單易用,穩定又不失高效能的 JSON 序列

功能強大的Spring EL表示式應用在.net平臺

Spring EL 表示式是什麼? Spring3中引入了Spring表示式語言—SpringEL,SpEL是一種強大,簡潔的裝配Bean的方式,他可以通過執行期間執行的表示式將值裝配到我們的屬性或建構函式當中,更可以呼叫C#中提供的靜態常量,獲取外部json xml檔案中的的配置值 為什麼要

開源!一款功能強大的高效能二進位制序列化器Bssom.Net

### 好久沒更新部落格了,我開源了一款高效能的二進位制序列化器Bssom.Net和新穎的二進位制協議Bssom,歡迎大家Star,歡迎參與專案貢獻! **Net開源技術交流群 976304396**,禁止水,只能討論技術, 歡迎與我討論和效能相關的技術話題! 另外,我還在抖音申請了一個賬號,用來記錄自己

phpspy2015--功能強大齊全的phpwebshell

php webshell 改良版phpspy,密碼phpspy2015,具有設置、文件操作、命令執行、sql查詢及備份等強大功能,希望可以給大家帶來幫助~~~ PS:本PHP-webshell僅供學習交流以及網站安全檢測之用,功能過於強大,請不要用過非法用途,否則一切後果由使用者本人

高仿webqq做的一個webos桌面效果和web聊天工具,桌面效果完好,功能強大

應對 基本 架構優化 jquery 人生觀 開發 ebr http pos QQ技術交流群:159995692 /-------- 暫時開放的測試 帳號/password:[88888888/1;666666/1] --

Arduino Tian開發板:一個功能強大的天氣預報中心

man 2pc 目前 range 分享 amazon 入門 雲平臺 充電 每天都在出現新的連接設備。 Arduino攜手雲平臺一起加入這場戰鬥,於是出現了一個新的挑戰者 - Arduino Tian! 使用python和經典Arduino框架,本教程將引導您將您的A

一般人都不知道的功能強大的超級搜索引擎!!!!

div 不同 watermark search 引擎 cor 百度 bsp server 百度的中文搜索非常的好。Google的搜索引擎支持非常多種語言。速度也非常快,據說有8000多臺server來支撐搜索。可是有時候域名解析不是特別的穩定。並且我們發現用同一個key

oracle功能強大的with子句

statementsselect * from emp ;EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO17369SMITHCLERK790217-12月-808002027499ALLENSALESMAN769820-2月 -8116003003037521WARDSALESMA

opentwebst一個ie自動化操作測試軟件-功能強大

ima blog content mar show 測試 -c index.php 說明書 opentwebst一個ie自動化操作測試軟件-功能強大 一個ie自動化操作測試軟件,自動根據操作記錄腳本。生成vbs,js和其他腳本語言,用來運行 裏面包含了兩個東西: 1、腳本

Inxi:一個功能強大的獲取Linux系統信息的命令行工具

linux查看系統配置Inxi 最初是為控制臺和 IRC(網絡中繼聊天)開發的一個強大且優秀的命令行系統信息腳本。可以使用它獲取用戶的硬件和系統信息,它也用於調試或者社區技術支持工具。使用 Inxi 可以很容易的獲取所有的硬件信息:硬盤、聲卡、顯卡、網卡、CPU 和 RAM 等。同時也能夠獲取大量的操作系統

造型簡單學習功能強大的遙控器——安瑞創萬能遙控器AN5004B

智能家居市場的日益升溫下催生出了一系列終端控制類產品,雖然安瑞創一直在主力進軍智能遙控器的市場,但對於普通的萬能遙控器市場來說仍然占據了主導的地位,兩者一比較起來大家會發現這種控制的方式除了外形上不太時尚外伯,而且還會增加應用上的操作復雜度。面臨這類問題,安瑞創給大家帶來一款具有代表性的遙控類產品——