<object id="ged8u"></object>
  • <dd id="ged8u"><noscript id="ged8u"></noscript></dd><rp id="ged8u"></rp>
  • <tbody id="ged8u"><noscript id="ged8u"></noscript></tbody>

    新疆軟件開發

    本站首頁 軟件開發 成功案例 公司新聞 公司簡介 客服中心 軟件技術 網站建設
      您現在的位置: 新疆二域軟件開發公司 >> 開發語言 >> 文章正文

    大家看看,水晶報表的又一種靈活應用

                 
            使用水晶報表的強大功能來實現應用程序的統計分析及打印導出等功能,是微軟平臺上進行.NET應用程序開發報表的一種不錯的選擇。水晶報表在設計、開發、配置以及部署上,還是會給初學者帶來一定的困擾的。那么,是否存在一種相對比較簡單而且易用的方式來進行水晶報表的設計、開發、配置以及部署呢?本文將提供一種比較簡單且相對靈活的方法。
    本文將包含以下內容:

    Crystal Reports的另類非對象模式數據綁定  
    水晶報表的簡單模式部署
    P.S. 本文中描述到的Crystal Reports為Crystal Reports for Visual Studio .NET,原則上該版本是runtime free授權,for unlimited user的。VS IDE版本為2008,Crystal Reports版本為10

    Crystal Reports的另類非對象模式數據綁定
    水晶報表綁定數據的模式有很多種,其中包括使用DataSet、DataReader及ObjectCollection等。在某個特定的系統項目中,我們多數通過指定的業務數據庫來提供對報表數據的支持。本文將主要描述一種非數據庫數據綁定的變通模式,通過這種模式進行綁定的報表,可以不用設置其數據庫驗證參數(DBLogon)的相關信息,具體的數據源可以來源于數據庫,也可以來源于xml文件等其他半結構化數據。
    在VS IDE項目的Solution Explorer中,建立存放報表文件的文件夾,如ReprotFilesFolder
    用鼠標右鍵點擊新建的文件夾,選擇添加新項(Add New Item...)
     
    選擇“XML Schema”,將文件命名為Demo.xsd
    用DataSet Editor打開該Schema文件,點擊“Ctrl+Alt+S”,打開“Server Explorer”,找到當前項目使用的數據庫連接,將報表展示涉及到的數據表拖拽到設計區域
     
    推拽的表可以是存在鍵值關系的表,也可以是毫無關系的表,甚至通過存儲過程建立的臨時表,保存該xsd文件
    用鼠標右鍵點擊新建的文件夾,選擇添加新項(Add New Item...) 
    選擇Crystal Report,將報表文件命名為Demo.rpt,點擊添加(Add)
    在打開的水晶報表向導窗口中選擇“使用報表向導”,點擊確定
     
    在報表向導的數據向導頁中,選擇“創建新連接-數據庫文件”
     
    點擊數據庫文件前的“+”,將彈出選擇數據文件窗口,找到剛才創建的Demo.xsd文件,并點擊“打開”
     
    此時,我們剛添加到Demo.xsd中的兩個數據表將出現在“數據文件”節點的子節點下,選中數據表,點擊“>”按鈕,將表添加到“已選擇表”列表中
     
    點擊“下一步”,可以為表之間添加隱式的鍵值關系
     
    點擊完成,將生成一張空白的報表
     
    根據實際的業務情況設計符合要求的報表,并保存報表文件,例如下圖
     
    設計工作到此告一段落,下面將進行數據的綁定。
    新建一個WebForm頁面,將CrystalReportViewer添加到頁面中,如下圖所示
     
    在后臺頁面中首先引用Crystal Reports的程序集
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;
    定義變量
    private ReportDocument reportDocument;
    添加自定義方法
    /// <summary>
    /// 初始化報表
    /// </summary>
    private void ConfigureCrystalReports()
    {
        //當前業務的報表打印文件
        string RPTFile = "";
        //當前業務的報表打印數據集
        DataSet ds = null;

        #region 獲取報表打印文件
        if (Session["rf"] == null)
        {
            RPTFile = Server.MapPath("Demo.rpt");
            Session["rf"] = RPTFile;
        }
        else
            RPTFile = Session["rf"].ToString();
        #endregion

        #region 獲取當前業務的報表打印數據
        if (Session["pd"] == null)
        {
            ds = new DataSet();
            string sql = "";
            sql = "select * from SalesMaster where BItemSerialNumber='0802280001'";
            DataSet masterDs = 填充主表數據
            //將主表添加到報表數據集中
            ds.Merge(masterDs);
            //利用同樣的方法添加子表或其他的表,甚至可以添加表和表之間的關系

            //上述方法也可以從其他數據源讀入數據,包括Access數據庫、xml數據等

            Session["pd"] = ds;
        }
        else
            ds = (DataSet)Session["pd"];
        #endregion

        if (Session["reportDocument"] == null)
        {
            reportDocument = new ReportDocument();
            reportDocument.Load(RPTFile);
            reportDocument.SetDataSource(ds);
            Session["reportDocument"] = reportDocument;
        }
        else
            reportDocument = (ReportDocument)Session["reportDocument"];
        ReportViewer.ReportSource = reportDocument;
    }

    在頁面的Page_Load方法中添加Response.Expires = -1;
    添加頁面初始化方法
    /// <summary>
    /// 頁面初始化事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Init(object sender, EventArgs e)
    {
        ConfigureCrystalReports();
    }

    至此,報表的數據綁定及顯示工作完成。編譯項目后,在瀏覽器中可以查看報表效果。此種方法的靈活性在于
    完成后,完全可以刪除.xsd的Schema文件而運行,或將.xsd文件移出項目。
    數據的讀入,不論來自SQL Server、Access還是xml數據,只要符合我們設定的Schema的表格式,即可以綁定到報表中。
    我們也可以修改并強化上述的ConfigureCrystalReports方法,并建立系統管理頁面,在管理頁面上進行數據來源的選擇和設定等。
    水晶報表的簡單模式部署
    將水晶報表部署到目標服務器的原因是,.NET Framework的安裝中并沒涵蓋水晶報表的合成項。在之前,曾經聽說過程序員為了將水晶報表的支持部署到服務器,而在服務器上安裝VS IDE的事情。因此,在這里給一個簡單的方法。
    在安裝了VS IDE的開發機環境中,打開資源管理器
    VS2005定位到:
    %systemroot%\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports
    VS2008定位到:
    %systemroot%:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5
    在上述文件夾中找到CRRedist2005_x86.msi或CRRedist2008_x86.msi文件,在服務器上安裝即可

    作者:Richard | 文章來源:cnblogs | 更新時間:2008-2-28 15:53:08

  • 上一篇文章:

  • 下一篇文章:

  • 相關文章:
    沒有相關文章
    軟件技術
    · 開發語言
    · Java技術
    · .Net技術
    · 數據庫開發
    最新文章  
    ·搜集整理的asp.net的驗證方
    ·各種FOR循環結構的整理
    ·軟件項目開發中應該考慮那
    ·搜集整理的javascript sel
    ·軟件開發中項目經理有那些
    ·學習如何在Lambda表達式進
    ·C++基礎知識:結構體數據的
    ·C#實現短信發送程序的例子
    ·sun最近修補了一部分java的
    ·rss定制的另外一種實現方式
    ·delphi實現利用arp欺騙來實
    ·基礎學習:基于WF的流程框
    ·網絡編程中怎樣得知一次數
    ·如何逆序輸出單鏈表?
    ·軟件開發過程中的性能設計
    關于我們 | 軟件開發 | 下載試用 | 客服中心 | 聯系我們 | 友情鏈接 | 網站地圖 | 新疆電子地圖 | RSS訂閱
    版權所有 © 2016 新疆二域軟件開發網 www.vidoe666.cn All Rights Reserved 新ICP備14003571號
    新疆軟件開發總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯大廈A-5C 郵編:830000
     
    野花影视大全在线观看免费,野花影视大全在线观看免费高清,小小影视大全在线观看免费观看
    <object id="ged8u"></object>
  • <dd id="ged8u"><noscript id="ged8u"></noscript></dd><rp id="ged8u"></rp>
  • <tbody id="ged8u"><noscript id="ged8u"></noscript></tbody>