1. 程式人生 > >Asp.net 水晶報表

Asp.net 水晶報表

一、水晶報表簡介

Crystal Reports(水晶報表)是一款商務智慧(BI)軟體,主要用於設計及產生報表。水晶報表是業內最專業、功能最強的報表系統,它除了強大的報表功能外。最大的優勢是實現了與絕大多數流行開發工具的整合和介面。在VS.Net平臺做過報表開發的程式設計師,一定都對水晶報表強大、高效、整合等特性留下了深刻印象。 除了開發新程式外,在工作中我們常需要接觸到很多較早的軟體系統報表功能升級的需求,如果能結合水晶報表這一強大的工具,往往能事半功倍。

二、水晶報表的實現模式

在講解水晶報表實現模式之前,首先講解一下我的電腦使用配置環境:

  Visual Studio 2013與SQL Server 2012

因為VS2013沒有自帶建立水晶報表的功能,所以需要到網上下載並安裝一個外掛,才能使用VS2013建立水晶報表。

外掛安裝成功後開啟VS2013,會發現工具箱裡多了這些東西,那麼說明你的VS2013已經安裝了水晶報表的外掛,現在可以通過VS2013建立水晶報表了。

2.1、拉(PULL)模式

概念介紹:拉模式是由水晶模板(引擎)直接連線資料庫(源),從資料庫(源)里拉取資料。

2.1.1、不敲一句程式碼建立水晶報表拉模式

1、首先在建立水晶報表拉模式之前我們需要準備資料庫資料:

複製程式碼
use master
go
create database Demo
go
use Demo
go
create
table Dept ( ID int primary key identity(1,1), DeptID nvarchar(10), DeptName nvarchar(10) ) go create table UserInfo ( ID int primary key identity(1,1), UserName nvarchar(10), Salary decimal(10,2), Gender bit, DeptID int foreign key references Dept(ID) ) go insert into Dept values('HR','
人事部') insert into Dept values('DT','開發部') go insert into UserInfo values('程式猿1',2500,1,2) insert into UserInfo values('程式猿2',3500,0,2) insert into UserInfo values('程式猿3',5500,0,1) insert into UserInfo values('程式猿4',6500,1,1) insert into UserInfo values('程式猿5',10500,1,2) go
複製程式碼

2、然後,開啟VS2013建立一個空網站專案。

3、接著在該專案下右鍵新增一個Reports資料夾,用來管理水晶報表。

4、接著 在資料夾下右鍵選擇新增"新建專案",找到"CrystalReports",輸入報表名稱。

5、點選新增按鈕後,會彈出預設的水晶報表嚮導對話方塊,我們按嚮導預設選項。

6、確定後,開啟“標準報表建立嚮導”介面。

7、連線資料庫成功後,會在簡歷連線那裡出現你的連線資訊,然後選擇你要顯示的表。 

8、這裡選擇你要顯示的表字段。

9、點選下一步後後面彈出的選項可以不用選擇,因為暫時還用不著,所以後面一直點選下一步到完成會出現以下介面。

10、看到上面這個介面,說明你已經建立了一個水晶報表模板,因為是直接連線資料庫的,所以我們可以能立即看到實際的效果,點選最下面的主報表預覽,即可顯示資料庫的表資料。

至此,我們沒有敲過任何程式碼,拉模式報表建立完成。

2.1.2、在Web中使用水晶報表拉模式

在之前建立的專案中,新增一個Web窗體,命名為CrystalReport_Pull.aspx。

然後開啟設計頁面,找到工具箱中的報表設計,雙擊或單擊拖入到Web窗體中,如下圖所示。

方式一:不敲程式碼通過設計器繫結資料來源,顯示資料。

點選確定後,你會看到Web窗體如下介面。

點選源,可以看到如下介面,設計器會自動生成以下程式碼。

 最後我們執行VS2013在瀏覽器中檢視效果,發現什麼都沒有顯示,然後開啟瀏覽器除錯工具發現,報了以下錯誤。

此問題解決辦法如下:找到C:\inetpub\wwwroot此目錄下的資料夾,然後拷貝到你的專案的根目錄下。

重新編譯,再執行瀏覽檢視,如下圖,可以看到資料可以正常顯示。

方式二:通過後臺編寫程式碼,連線資料庫繫結資料來源,顯示資料。

 重新新增一個Web窗體,建立步驟與上面一致。然後右鍵點選檢視原始碼,新增如下程式碼即可實現水晶報表拉模式。

複製程式碼
 1 using CrystalDecisions.CrystalReports.Engine;
 2 using CrystalDecisions.Shared;
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Linq;
 6 using System.Web;
 7 using System.Web.UI;
 8 using System.Web.UI.WebControls;
 9 
10 namespace ch02
11 {
12     public partial class CrystalReport_Pull : System.Web.UI.Page
13     {
14         protected void Page_Load(object sender, EventArgs e)
15         {
16             ConfigureCrystalReports();
17         }
18 
19         private ReportDocument myReport;
20         private void ConfigureCrystalReports()
21         {
22             //定義ReportDocument物件,裝載Crystalreport1.rpt
23             myReport = new ReportDocument();
24             string reportPath = Server.MapPath("Reports/CrystalReport1.rpt");
25             myReport.Load(reportPath);
26             //把模板物件賦給報表前端呈現控制元件CrystalReportViewerl
27             CrystalReportViewer1.ReportSource = myReport;
28         }
29     }
30 }
複製程式碼

 實現效果同上

2.2、推(PUSH)模式

概念介紹:由應用程式從資料庫(源)獲取資料,然後把資料推送給水晶報表引擎。水晶報表本身不與資料庫進行互動。

1、要實現水晶報表推模式,首先我們需要在 網站專案中新增一個數據集。

 

2、然後你有兩種方式 建立資料表,這裡我們選擇方式二建立。

3、把要顯示的表拖入右邊。

4、接下來要設計一個水晶報表模板。在Reports資料夾上右鍵新增新建項,步驟與上面推模式步驟一致,這裡就不再詳細解說。

5、最後我們開始編寫頁面CrystalReport_Push.aspx後臺程式碼。

 首先引入如下名稱空間:

複製程式碼
using CrystalDecisions.CrystalReports.Engine;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ch02
{
    public partial class CrystalReport_Push : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadCrystalReports();
        }

        //載入水晶報表
        private void LoadCrystalReports()
        {
            DataSet ds = new DataSet();
            string connStr = @"server=PC-201511211346\MSSQLSERVER2;database=Demo;uid=sa;pwd=123456";
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                string SQL = "select * from UserInfo";
                SqlDataAdapter sda = new SqlDataAdapter(SQL, conn);
                sda.Fill(ds, "UserInfo");
            }
            ReportDocument rd = new ReportDocument();
            //獲取報表路徑
            string reportPath = Server.MapPath("Reports/CrystalReport2.rpt");
            rd.Load(reportPath);
            //繫結資料集,注意一個表用一個數據集。
            rd.SetDataSource(ds);
            CrystalReportViewer1.ReportSource = rd;
        }
    }
}
複製程式碼

 最後執行檢視效果:

總結:此文章是對ASP.NET 水晶報表(Crystal Reports)的簡單使用做了一個學習總結,目的是為了幫助想要學習水晶報表的初學者做了一個入門指導,讓初學者少走一些彎路。

相關推薦

Asp.net 水晶報表

一、水晶報表簡介 Crystal Reports(水晶報表)是一款商務智慧(BI)軟體,主要用於設計及產生報表。水晶報表是業內最專業、功能最強的報表系統,它除了強大的報表功能外。最大的優勢是實現了與絕大多數流行開發工具的整合和介面。在VS.Net平臺做過報表開發的程式設計師,一定都對水晶報表強大、高

asp.net 水晶報表使用總結

手頭上的一個專案,終顯雛形,其中遇到一些問題,經過多番努力,終於得以解決,主要是水晶報表方面的。因為是第一次用,總結的同時,也給後來可能用到水晶報表的人一些微弱的指引,所以如果總結的不好的話,請大家指正

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

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

.Net水晶報表使用

FULL NAME -> PARADOX ORGANIZATION -> PDX-ROXX KEY CODE -> A5860-01C000G-T4C00JP註冊號:6707437608密碼:AAP5GKS0000GDE100DS水晶報表10企業版key c

IIS中asp.net程式後臺列印水晶報表 程式假死或印表機無反應的解決方法

  最近在做的幾個專案都用到了水晶報表的後臺列印,除錯的時候非常好用,無論是虛擬列印還是指定真實印表機,可一部署到IIS上就莫名其妙的卡死,或者提示了列印成功,印表機卻毫無反應。       一開始認為是許可權的問題,把C:/windows/temp和程式

ASP.NET中使用水晶報表

在我們對VS.Net中的水晶報表(Crystal Reports)進行研究之前,我和我朋友對如何將這個複雜的東東加入我們的Web應用有著非常的好奇心。一週以後,在閱讀了大量的“HOWTO”文件之後,我們成功地將一些簡單的報告加入到了我們的Asp.net程式中,並得到了一

MVC引用asp.net報表(測試小例子)

lse lsp publickey bag override request RR bre rda 1 public class Default1Controller : Controller 2 { 3 // 4 //

讀取資料庫資料,以報表的形式顯示在前臺網頁(asp.net+echarts+ajax+資料庫)

1、首先在VS2010裡新建專案ASP.NET Web應用程式:WebApplication1; 在應用程式裡新建專案:WebForm.aspx(Web窗體),Model.cs(類),Controller.cs(類),Handler.ashx(一般處理程式),WebForm.js(JScript

Telerik UI for ASP.NET AJAX教程:報表如何為任何UI套件增加價值

【下載Telerik UI for ASP.NET AJAX最新版本】 每天生成的資料量不斷增加,並且以一種吸引眼球且易於理解的方式將其全部視覺化並不容易。如果您需要向某人提供大量資料,可以通過幾種方法嘗試執行此操作。如果使用控制套件,則可以進行CRUD資料輸入,應用一些自定義和主題,甚至可以進

Visual Studio 2017 整合Crystal Report為ASP.NET MVC呈現報表

 選擇語言,點選下一步,同意SAP BUSINESSOBJECTS license Agreement: 選中Yes,install 64-bit runtime選項。點選Finish按鈕,繼續安裝。 安裝結束,所有安裝視窗自動關閉。 開啟你的專案,參考下面幾個類:

ASP.NET Core2呼叫Azure雲上的PowerBI報表展示

在開發企業應用中,報表功能是當之無愧的重頭戲,如何將資料通過合適的報表呈現出來成為每個專案人員必需面臨的問題。而找到一款合適的報表往往都需要考率價格、開發、風格、支撐等因素。那麼,我在這裡給大家介紹一款由微軟提供的視覺化報表工具Power BI,並通過ASP.NET Core2程式呼叫雲端的報表(國內的Azu

[原始碼和文件分享]基於ASP.NET和SQL SERVER實現的電信報表系統

1 需求分析 專案總體目標是搭建中國網通的報表系統管理平臺,不僅滿足目前的業務需要,還要滿足公司未來的發展,而且要具備良好的可擴充套件性,在網通與聯通合併之後依然能夠正常工作。 1.3 資料字典 手工錄入資料 = 出賬表 + 卡銷售表 + 網間結算表 + 預存轉入表 + 通知單表

利用資料集在水晶報表中顯示影象的 .NET 程式教程

目錄 描述檔案列表步驟Form1.csVB.NET 版 描述 該 C# .NET Windows 程式演示瞭如何建立資料集,並將影象新增到資料集,以及在執行時將資料集傳遞到子報表。 檔案列表 - bin/Debug/Canada.jpg- bin/Debug/Germany.

ASP.NET MVC搭建專案後臺UI框架—7、統計報表

本節,我將通過一個Demo,演示Datatables 和ASP.NET MVC的完美結合,可以這麼說,如果這樣的介面都能做出來,後臺系統90%的介面功能都可以開發出來了。 用jquery Datatables 來開發確實是件比較蛋疼的事情(和Jquery EasyUI、MiniUI、ExtJs相比),用

ASP.NET+JQuery+.Ashx實現+百度Echarts 實現動態柱狀圖資料圖形報表的統計

在目前的一個專案中,需要用到報表表現資料,這些資料有多個維度,需要同時表現出來,同時可能會有大量資料呈現的需求,經過幾輪挑選,最終選擇了百度的echarts作為報表基礎類庫。echarts功能強大,介面優美。要呈現的資料就用柱狀圖來顯示了,柱狀圖更直觀的顯示出客戶最想要的東

ASP.NET MVC 初學筆記.3 MVC5、EF、RDLC實現報表操作

在ASP.NET的研究學習中又要用到報表,比如在OA系統裡實現憑證、檔案等,報表是一個必不可少的東西,但百度了一圈,發現講得最多的還是水晶報表等第三方報表,好像微軟原裝的RDLC報表隨著MVC的升級漸漸淡出了報表圈?本著原裝的就是最好的契合度的想法,於是開始了默默的研究使用

asp.net GridView 在報表底部增加合計行

首先:在GridView 屬性設定中,ShowFooter 設為 true方法一:使用SQL查詢統計出合計值,在繫結GridView時讓其結果賦於一個DataTable(全域性變數),然後在RowDataBound事件中 if (e.Row.RowType == DataC

如何在水晶報表中新增條形碼-winform ,c#.net

This is 3 of 9 (sometimes called "code 39"), a widely used barcode standard that includes capital letters, numbers, and several symbols. This is not the ba

vs2013下, asp.net mvc5 使用和釋出rdlc報表的步驟 ,使用ef來獲取資料

1.右鍵專案,新增 新建項-》資料-》資料集 2.使用sql語句建立資料集,儘量包含所有的欄位 3.右鍵專案 ,新增報表,設計報表,然後新增資料集 4.在controll中,             LogisticsDbContext db = new Logistics

ASP.NET MVC5 中百度ueditor富文本編輯器的使用

編譯時間 文本編輯器 ida height git aid asp ueditor jquery 隨著網站信息發布內容越來越多,越來越重視美觀,富文本編輯就是不可缺少的了,眾多編輯器比較後我選了百度的ueditor富文本編輯器。 百度ueditor富文本編輯器分為兩種一種