• CRYSTAL net样式


    报表的运用,分为两种方式:pull和push

    拉和推模型
    为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。

    拉模型

    在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。

    推模型

    相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。


    其中推荐使用push,因为它的性能较pull好,具体的可以到网上去查看相关内容描述。

    在此,我只是对push进行描述;(个人的操作顺序,不过只能说明是一个方法,也应该有其他方法)

    首先,创建一个数据集,假如是(DataSet1.xsd),设置好数据集以后,再创建crystralreport1.rpt,在crystralreport.rpt中设置好数据连接,并且把报表设计好以后,接着就要创建一个web窗体,(例如是Crystral_Use.aspx),其中页面中要拖进一个CrystalReportViewer控件,随后进行下面的操作:

    其次,引用对应的命名空间using CrystalDecisions.Shared;和 using CrystalDecisions.CrystalReports.Engine;

    最后,在crystral-use.aspx页面中进行下面的编程:

    CrystalReport1 crvs=new CrystalReport1();//实例化报表

          private void Page_Load(object sender, System.EventArgs e)

          {

            // 在此处放置用户代码以初始化页面

            string connstring="server=.; database=BMSShopping ;uid =sa; pwd=123456;"; //连接数据库        SqlConnection conn=new SqlConnection(connstring);

            SqlDataAdapter da=new  SqlDataAdapter();

            da.SelectCommand=new SqlCommand();

            da.SelectCommand.CommandText="select top 3 * from orders";//从数据库中检索数据        da.SelectCommand.Connection=conn;

            conn.Open();

            DataSet1 ds=new DataSet1();//应用自定义的一个数据集

            da.Fill(ds,"Orders");

            crvs.SetDataSource(ds);

            this.CrystalReportViewer1.ReportSource=crvs;

    }

    这样,一个简单的crystralreport就应用完了;

    扩展一下:

    如果你想把报表导出,那么你就继续进行下面的操作设置:

    首先,还是要在上面的基础上,拖放一个dropdownlist控件,以便能选择导出格式:

    随后,编写代码:

    //导出报表

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

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

            switch (ddlFormat.SelectedItem.Text)

            {

               case "RTF格式":

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

                  DiskOpts.DiskFileName = "d:\Output.rtf";//导出路径

                  this.Response.Write("导出RTF格式成功!");

                  break;

               case "PDF格式":

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

                  DiskOpts.DiskFileName = "d:\Output.pdf";//导出路径

                  this.Response.Write("导出PDF格式成功!");

                  break;

               case "DOC格式":

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

                  DiskOpts.DiskFileName = "d:\Output.doc";//导出路径

                  this.Response.Write("导出DOC格式成功!");

                  break;

               case "EXCEL格式":

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

                    DiskOpts.DiskFileName = "d:\Output.xls";//导出路径

                  this.Response.Write("导出EXCEL格式成功!");

                  break;

               default:

                  break;

            }

            crvs.ExportOptions.DestinationOptions = DiskOpts;

          crvs.Export();

          }

    至此,所有有关报表打印实现就完了,也许有其他更好的操作或者方法,希望大家不吝赐教。至于在visual studio 2005中水晶报表操作,比起visual studio 2003中要简单的多,通过拖放操作就可以实现。而且visual studio 2005中比较简单,而且美观也有升级。
    ————————————————
    版权声明:本文为CSDN博主「yingzhaom」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yingzhaom/article/details/7775491

  • 相关阅读:
    冒泡排序
    二分查找
    数3退1的java实现
    列出目录下对应的子目录及文件
    errno相关
    Fibonacci
    windows 下查看Python 的安装路径
    20条编程经验
    [转]一位程序员工作10年总结的13个忠告
    Sql查询语句过滤重复的数据
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/12158964.html
Copyright © 2020-2023  润新知