zoukankan      html  css  js  c++  java
  • 水晶报表填充.Net Objects数据源

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

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

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

    示例效果:

    image

    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; }
        }
    }

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

    image

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

    image

    在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数据源的填充)

    示例效果:

    image

    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)

    image

    子报表:(CrSubReport.rpt)

    image

    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("现代医学", "医学", 90, "评语"));
     
                ReportDocument subReport = supReport.Subreports["CrSubReport"];
                subReport.SetDataSource(subjectList);
     
            }
        }
    }

  • 相关阅读:
    Eclipse中一个Web项目引用另一个项目中的类
    android adb shell中使用到的命令
    移动端服务器i-jetty下载编译安装及问题解决系列
    Windows和Ubuntu双系统独立分区安装的方法
    Mina2.0框架源码剖析(三)
    Mina2.0框架源码剖析(二)
    Mina2.0框架源码剖析(一)
    JBoss
    J2EE的体系结构
    微博三方登录
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/3684289.html
Copyright © 2011-2022 走看看