没有注册的水晶报表只能使用30次,具体为修改下面两个键的值。否则回出现操作次数错误

打开注册表

HKEY_LOCAL_MACHINE;SOFTWARE;Crystal Decisions;10.0;Report Application

Server;InprocServer;PrintJobLimit

修改为1000

还有一个HKEY_LOCAL_MACHINE;SOFTWARE;Crystal Decisions;10.0;Report Application

Server;Server;PrintJobLimit 也修改为1000

1 pull模式:水晶报表直接根据指定的驱动连接数据库然后组装这些数据

2push模式:开发者自己写代码连接数据并组装dataset,同时将它传送至报表。

创建pulsh 的模式报表

1 首先创建一个dataset数据集,用来存放报表中用到的数据,放在app-_code中(在创建项目时有提示,直接创建即可

 点击服务器资源管理器,右键单击数据连接-- -添加新连接 选择服务器名,添加用户名密码,选择数据库, 最后点击确定如下图:

连接完毕后,将要在报表中显示的表拖入到dataset.xsd中如下图:

保存,数据集创建完成。

2创建一个报表文件.rpt

打开报表文件 选择 字段资源管理器

右击 数据库字段-----à数据库专家---à工程数据(project data----àAdo.net datasets------à

选择建立的数据集dataset 中的表,并把他加入到右侧的 Selected Tables 点击确定(要进行刷新否则 dataset 数据集不会显示表的名称)如下图:

在字段管理器-- 数据库字段 下面就会显示所加入的表的名字 本例是orders,展开表

将需要的字段拖入到报表文件的 details 中,可以对格式进行控制,如下图所示:

在报表文件中右击 弹出菜单,选择插入,可以插入各种图表,比如柱状图等

保存,报表文件已经完成

3 创建一个.aspx文件,在文件中加入CrystalReportViewer 控件(报表查看器 ,加入一个名称是打印的button ,在加入一个一个导出按钮 一个dropdownlist 导出的时候因为版本的问题可能回出现错误

1引用 命名空间

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

2

ReportDocument表示一个报表,并包括定义、格式化、加载导出报表的各种操作

ReportDocument rd = new ReportDocument();

    protected void Page_Load(object sender, EventArgs e)

{

  

       string strsql = "select * from Orders where OrderID=10248 ";

        SqlConnection con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa");

        con.Open();

        SqlDataAdapter sda = new SqlDataAdapter(strsql, con);

        DataSet2 ds = new DataSet2();//填充数据集,该数据集为上面建立的在app-code中的.xsd

        sda.Fill(ds, "Orders");

        rd.Load( Server.MapPath("~/CrystalReport.rpt"));//加载一个新报表

        rd.SetDataSource(ds);//将data传递给报表引擎

        this.CrystalReportViewer1.ReportSource = rd;//为报表查看器加载数据源

}

打印功能的实现

    protected void Button1_Click(object sender, EventArgs e)

    {

        //string strPrinterName;

        //strPrinterName = "hp LaserJet 3380 ";//打印机的名字如不知道则不用设置

        // 设置打印页边距

        PageMargins margins;

        margins = rd.PrintOptions.PageMargins;

        margins.bottomMargin = 250;

        margins.leftMargin = 350;

        margins.rightMargin = 350;

        margins.topMargin = 450;

        rd.PrintOptions.ApplyPageMargins(margins);

     

        //应用打印机名称

        //rd.PrintOptions.PrinterName = strPrinterName;

        // 打印    // 打印报表。将 startPageN 和 endPageN

        // 参数设置为 0 表示打印所有页。

        rd.PrintToPrinter(1, true, 0, 0);   

 quit() 

    }

导出功能的实现

    protected void Button2_Click(object sender, EventArgs e)

    {

        CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions();

        rd.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;

        switch (this.DropDownList1.SelectedItem.Text)

        {

            case "Rich Text ":

                rd.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText;//

                DiskOpts.DiskFileName = "c:""Output.rtf";//

                break;

            case "Portable Document (PDF)":

                rd.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;//

                DiskOpts.DiskFileName = "c:""Output.pdf";//

                break;

            case "MS Word (DOC)":

                rd.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;//

                DiskOpts.DiskFileName = "c:""Output.doc";//

                break;

            case "MS Excel (XLS)":

                rd.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;//

                DiskOpts.DiskFileName = "c:""Output.xls";//

                break;

            default:

                break;

        }

        rd.ExportOptions.DestinationOptions = DiskOpts;

        rd.Export();

quit()

    }

   private void quit()

    {

        Response.Redirect("ss.aspx");//解决刷新页面时,总发现有默认焦点的按钮自动发生Click事件

    }

创建图表

在水晶报表中点击右键---à图表专家 弹出如图所示的对话框

设置显示数据

设置标题等内容

选择图表类型

选择图表纵坐标显示内容

选择图表横坐标显示内容

图表所在的位置

单击确定

纵坐标标题

横坐标标题

图表副标题

图表主标题显示在图表正上方

示例

报表显示格式的设置如下图

在报表中店击右键-----à插入-----à ,然后在报表中划一个框,如上图

在报表中店击右键-----à插入-----à文本对象 在对文本对象进行编辑,如上图“部门经理”

在将文本对象对应的内容 从数据库字段下面的数据表中拖入到对应的位置

对文本对象还有拖入的字段的属性进行设置否则显示会有问题

右击拖入的字段 弹出对话框

扩展,字段的行数是否可扩展,选择0就是不对行数进行限制

选择水平对齐方式,要选择两端对齐

设置字段的字体,格式,大小,颜色,下划线等

右边缩进,要进行设置,否则显示有问题

行距,要选择多个行距,否则不会换行

左边缩进

第一行缩进单位厘米

posted on 2007-10-25 15:27  Burt  阅读(1221)  评论(0)    收藏  举报