[實踐]FastReport.NET使用示例

  

廢話不說直接正題!

1 下載FastReport.NET。網上搜索一下,下載資源一大把,這是收費的,所以我使用了demo版;

  注意:FastReport.NET 和FastReport Studio不是同一個東西,別下錯了;

  FR.NET只支持VS2005/2008;

  官網:http://ns.fast-report.com/en/,有說明文檔使用手冊下載,論壇也很不錯,問題解答的很詳細;

2  先在本機上安裝好VS2005/2008(我試驗的時候使用的是2008),再安裝FR.NET,啓動VS,新建一個ASP.NET WEB應用程序項目;

3  頁面設計:在VS中設計Default.aspx頁面時,可直接在工具箱中拖出一個 WebReport控件放置於頁面上:

 

   

                                                  圖一

4 數據源指定:FR支持多種數據源(詳見其說明),可以在aspx頁面上選定數據源,或者進入FR設計器中再指定;

  拖放一個SqlDataSouce控件到頁面上,設定好,在測試連接的時候最好預覽下數據,確保數據源能正常使用;

  選定WebReport控件,如圖一,會有一個“>”標記按鈕出現,點擊,會出現如圖二所示對話框:

                                                          

                        圖二

  點擊“Select Data Source”,彈出一個對話框,選擇剛剛配置好的SqlDataSouce;

5 設計:點擊圖二中的“Design Report...”就會打開FR設計器,如圖三所示:

  

                    圖三

  在設計器裏,大家可以盡情地發揮,設計出你最喜歡(多數時候得老闆喜歡)的樣式,FR已經提供了很多模板,很漂亮,大家稍微改動

  一下就能得到自己的模板(.frx文件)。我這裏只是簡單的拖放了幾個文本控件,然後將它們綁定到了前面選定好的datasouce上,大家可以自己

  動手點點看,這一點很簡單,也許你是第一次用,但憑猜想你也可以做出來。

6 codding/運行:設計好後點保存,然後關掉設計器(必須關掉,因爲它是以置頂子窗體彈出來的,不關掉不能操作VS)。

  在aspx頁面上選中webreport控件,查看它的事件,爲它添加上StartReport事件,寫上幾行代碼就OK了,如圖四:

       

  

                                               圖四

注意:在Page_load事件中也有一行代碼,我這裏的webreport控件的名字就叫“WebReport1”;

保存,運行,大家就可以看到效果了~

到此,這個簡單示例就完成了;剛開始使用FR千萬記得查看用戶手冊,你的很多疑問在這裏可以找到答案;

 

另:很多人在問FastReport如何從頁面傳遞參數的問題,我在這裏簡單說下吧:

  FR的參數分兩種,Query Parameter 和Report Parameter;

  Query Parameter (查詢參數):是在FR中用嚮導設定DataSouce時,可以用帶參數的SQl文來指定,形如:

    select * from table where country = @parameterName

    對於這種參數,在用嚮導創建DataSouce時,會彈出一個窗口來讓你對參數進行編輯,如圖五:

                  圖五

查詢參數的名字是  qparam1,大家需要給它指定表達式 ,Expression屬性中 “[param1]”就是一個表達式,param1是一個報表參數

Report Parameter。這意思就是,在運行時,qparam1的值將會和param1一致;

Report Parameter(報表參數):它的值你可以在FR的腳本中指定,也可以在aspx頁面的cs代碼中指定(參見圖四中被註釋掉的代碼);看圖三設計器界面圖,在右邊的窗口裏,你可以找到參數這一項,你可以在這裏新建/編輯一個報表參數;

現在大家應該明白如何從頁面傳遞參數的值,並把它用於SQl查詢中了;

但實際上還有一個問題,使用Query Parameter 時,它只能是一個簡單值,不能是複雜的字符串,比如這樣的SQL文:

select * from table where country in ('en','cn')

如果你想把('en','cn') 這整個部分設定爲一個參數那是不行的,嚮導會報錯,這時如何解決?

在FR設計器中,大家可以看到它是有自己的腳本的(C#語言),在其中添加上_StartReport事件,代碼如下所示:

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
 using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
using FastReport.Controls;

namespace FastReport
{
  public class ReportScript
  {

    private void _StartReport(object sender, EventArgs e)
    { 
     
      string str1 = (Report.Parameters.FindByName("param1")).Value.ToString();
     
      TableDataSource datasource = Report.GetDataSource("protable") as TableDataSource;
         datasource.SelectCommand =  "select * from protable where " + str1 ;
      
    }

  }
}


  再結合圖四中被註釋掉的傳參代碼,大家應該全明白了……ok,就到這裏吧。

學海無涯,回頭沒岸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章