水晶报表填充.Net Objects数据源

王朝学院·作者佚名  2016-05-21
窄屏简体版  字體: 小  |  中  |  大  |  超大  

水晶报表填充.Net Objects数据源Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表。是业内最专业、功能最强的报表系统。

查看网络资料及课本图书,鲜有介绍通过.NET Objects作为数据源填充水晶报表的示例。本文将通过两个简单的示例演示水晶报表填充.Net Objects数据源的过程。

示例一:打印学生信息(一个.NET Objects数据源的填充)

示例效果:

Student.cs

using System;

using System.Collections.Generic;

using System.Web;

namespace CrystalReportsDemo

{

public class Student

{

public Student(string studentNo,string studentName,string sex,int age)

{

this.StudentNo = studentNo;

this.StudentName = studentName;

this.Sex = sex;

this.Age = age;

}

public string StudentNo

{ set; get; }

public string StudentName

{ set; get; }

public string Sex

{ get; PRivate set; }

public int Age

{ get; private set; }

}

}

将其编译后,即可通过数据库专家将其作为数据源导入到字段资源管理器。

绘制报表样式并插入数据库字段:

在Default.aspx页面拖入CrystalReportViewer控件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CrystalReportsDemo._Default" %>

<%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

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

<div>

<CR:CrystalReportViewer ID="crvReport" runat="server" AutoDataBind="true" />

</div>

</form>

</body>

</html>

Default.aspx.cs

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace CrystalReportsDemo

{

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

FillReport();

}

private void FillReport()

{

List<Student> studentList = new List<Student>();

studentList.Add(new Student("200901001", "学生一", "男", 23));

studentList.Add(new Student("200901002", "学生二", "男", 24));

studentList.Add(new Student("200901003", "学生三", "女", 22));

studentList.Add(new Student("200901004", "学生四", "男", 23));

studentList.Add(new Student("200901005", "学生五", "女", 25));

studentList.Add(new Student("200901006", "学生六", "男", 23));

CrStudents studentsReport = new CrStudents();

studentsReport.SetDataSource(studentList);

crvReport.ReportSource = studentsReport;

}

}

}

示例二:打印学生成绩(多个.NET Objects数据源的填充)

示例效果:

Subject.cs

using System;

using System.Collections.Generic;

using System.Web;

namespace CrystalReportsDemo

{

public class Subject

{

public Subject(string subjectName,string subjectType,double result,string comment)

{

this.SubjectName = subjectName;

this.SubjectType = subjectType;

this.Result = result;

this.Comment = comment;

}

public string SubjectName

{ set; get; }

public string SubjectType

{ set; get; }

public double Result

{ set; get; }

public string Comment

{ set; get; }

}

}

主报表:(CrSupReport.rpt)

子报表:(CrSubReport.rpt)

Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="CrystalReportsDemo.Default2" %>

<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"

Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

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

<div>

<CR:CrystalReportViewer ID="crvReport2" runat="server" AutoDataBind="true" />

</div>

</form>

</body>

</html>

Default2.aspx.cs

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using CrystalDecisions.CrystalReports.Engine;

namespace CrystalReportsDemo

{

public partial class Default2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

FillReport();

}

private void FillReport()

{

List<Student> studentList = new List<Student>();

studentList.Add(new Student("200901001", "学生一", "男", 23));

ReportDocument supReport = new CrSupReport();

supReport.SetDataSource(studentList);

crvReport2.ReportSource = supReport;

List<Subject> subjectList = new List<Subject>();

subjectList.Add(new Subject("语文","文科",90,"评语"));

subjectList.Add(new Subject("数学", "理科", 90, "评语"));

subjectList.Add(new Subject("工程学", "工科", 80, "评语"));

subjectList.Add(new Subject

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航