• Visual Studio2010 Microsoft 报表 #1


    Visual Studio2010 Microsoft 报表 #1

     http://www.cnblogs.com/lauyee/archive/2010/07/26/1783694.html

          前段时间我负责的一个项目中因为报表的缘故让项目整整延期了3个月。虽然也有客户方的原因,而我们公司的领导也能体谅到项目组的难处。但是终究还是被扣掉了一些项目奖金。客户的报表太过重于格式了,这一点客户方也没有办法,因为他们的表格样式是集团公司指定好的,不能随意更改。我们的客户大多来自于有国企性质的公司。所以为了以后项目的快速实施,必须找到一种方便,快捷,最重要能满足需求的报表工具。

          
          在那个项目过后,我尝试使用了很多种报表工具,但都觉得不是很能满足我们的要求。我们也曾经想过自己实现一种报表工具,但出于人手、时间、和经费、可行性的考虑最终还是打消了这个念头。这个时候微软发布了SQL Server 2008 R2,它另我为异常兴奋。这正是我们做要寻找的工具。但是很遗憾

     

     

             很抱歉都个小懒,我的表只有两个字段一个填充方法。

         我们在创建一个类用作对象数据源,很高兴微软报表支持一个报表内使用不同的数据源。下面是我的:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    namespace RdlcReports.Model
    {
        public class info
        {
            public string Author { get; set; }
            public string Blog { get; set; }
            public string Email { get; set; }
     
            public info(string author, string blog, string Email)
            {
                this.Author = author;
                this.Blog = blog;
                this.Email = Email;
            }
            public info()
            {
            }
     
          public  List<info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info> Getinfo()
            {
                List<info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info> objdata = new List<info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info><info></info>();
                objdata.Add(new info("junior lau", "www.cnblogs.com", "Email:Lauyee@foxmail.com"));
                return objdata;
            }
        }
    }

     5、接下来我们创建一个报表文件。选择添加-新建项-报表。我这里创建了一个名为Report1.rdlc的报表文件。

         我有点迫不及待了,才到这里。下面是我的界面

    6、点击报表数据-新建-数据集,选择一个数据源。这时候我们可以把刚才创建的Dataset1的计划表添加到报表的数据源中。

    1)你可以直接向上面那样用设计器添加一个类型化的DataSet到报表的数据源,但是我发现在Web项目中没有可以让你选择的可视化的操作。如果你使用WinForm做这个练习,很幸运设计器强帮你完成一切。

           2)如果你想使用对象数据源,如用上面所创建的info类作为数据源,可以直接修改.rdlc源代码(用右键Report1.rdlc选择打开方式--XML(文本)编辑器要比直接右击-查看代码好一点)

      将下面代码拷贝到    <DataSources></DataSources>标签之间

    1
    2
    3
    4
    5
    6
    7
    <DataSource Name="RdlcReportsModel">
      <ConnectionProperties>
        <DataProvider>System.Data.DataSet</DataProvider>
        <ConnectString>/* Local Connection */</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>bf49000a-37a9-4c7a-ae02-33575f080028</rd:DataSourceID>
    </DataSource>

    将下面代码拷贝到<DataSets></DataSets>之间

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <DataSet Name="DataSet2">
        <Fields>
          <Field Name="Author">
            <DataField>Author</DataField>
            <rd:TypeName>System.String</rd:TypeName>
          </Field>
          <Field Name="Blog">
            <DataField>Blog</DataField>
            <rd:TypeName>System.String</rd:TypeName>
          </Field>
          <Field Name="Email">
            <DataField>Email</DataField>
            <rd:TypeName>System.String</rd:TypeName>
          </Field>
        </Fields>
        <Query>
          <DataSourceName>RdlcReportsModel</DataSourceName>
          <CommandText>/* Local Query */</CommandText>
        </Query>
        <rd:DataSetInfo>
          <rd:DataSetName>RdlcReports.Model</rd:DataSetName>
          <rd:TableName>info</rd:TableName>
          <rd:ObjectDataSourceType>RdlcReports.Model.info, RdlcReports.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</rd:ObjectDataSourceType>
        </rd:DataSetInfo>
      </DataSet>

    现在你将得到以下的画面:

    接下来,你可以自由设计你的报表了,下面是我的。

    7、下来开始完成aspx页面。就是拖ReportViewer控件,更改其属性让其指向.rdlc文件。直接贴代码了。忘了一点页面上需要一个ScriptManager控件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <body>
        <form id="form1" runat="server">
        <div>
         
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
                Font-Size="8pt" Height="414px" InteractiveDeviceInfos="(集合)"
                WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="716px">
                <LocalReport ReportPath="Report1.rdlc">
                  
                    <DataSources>
                        <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
                        <rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="DataSet2" />
                    </DataSources>
                  
                </LocalReport>
            </rsweb:ReportViewer>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
                SelectMethod="GetData"
                TypeName="RdlcReports.Web.DataSet1TableAdapters.计划TableAdapter">
            </asp:ObjectDataSource>
         <asp:ObjectDataSource ID="ObjectDataSource2" runat="server"
        SelectMethod="Getinfo"
                TypeName="RdlcReports.Model.info">
         
        </asp:ObjectDataSource>
        </div>
     
        </form>
    </body>

    后台没有写一句话,现在运行程序,就会出现以下的话面。(附带的原代码包含了一种,用代码在后台绑定的模式,而不是在页面使用ObjectDataSource控件)

           好了,好像写了好多,但是其实操作很简单,也没有多少难度,只是让大家对微软报表有一个基本的概念。本来来打算在讲一点功能介绍呢,就留到下一节吧。

           附带的原代码中不包含,win和wpf的代码,(win要比web简单些)如果你需要也可以回复向我索取,或者在下一节下载代码。我计划在这个可能结束的时候将代码发布为一个小的开源项目。

          

           编码愉快!!下次见。

  • 相关阅读:
    算法笔记 第3章 入门篇(1) 学习笔记
    算法笔记 上机训练实战指南 第3章 入门篇(1)--入门模拟 学习笔记 3.1简单模拟
    机器学习实战:基于Scikit-Learn和TensorFlow 第5章 支持向量机 学习笔记(硬间隔)
    机器学习实战:基于Scikit-Learn和TensorFlow 读书笔记 第6章 决策树
    算法笔记 第7章 提高篇(1)--数据结构专题(1) 学习笔记
    算法笔记 第6章 C++标准模版库(STL)介绍 学习笔记
    自然语言处理入门 何晗 读书笔记 第2章 词典分词
    自然语言处理入门 何晗 读书笔记 第1章 新手上路
    [ML]随机森林
    [ML]LightGBM论文理解
  • 原文地址:https://www.cnblogs.com/chenzhonghua021/p/3315799.html
Copyright © 2020-2023  润新知