Lenka.Guo 发表于 2016-4-25 16:41:49

本帖最后由 Lenka.Guo 于 2016-4-25 16:53 编辑

SunDream° 发表于 2016-4-25 16:34
你提供的这个DEMO链接地址是在运行view控件的时候自动绑定, 我想要一个是讲初始化的时候在设计器中绑定 ...
是的,博客主要内容是 如何使用代码创建带有数据集的区域报表。建议参考这部分内容。


然后,在ReportDesigner 中加载该区域报表,加载的思路与 页面报表相同。1. 在项目中创建空的区域报表(目的是通过报表路径,加载报表)。
2. 在后台代码中,添加数据集。(参考楼上给出的博客链接)
3. 使用 reportdesigner.LoadReport(new FileInfo(ReportPath));

页面报表和RDL报表,在后台代码中是不加区分的(这个已经在前面几楼讲过)。但是使用ToRdlString()可直接获取Rdl 报表的字符流。而区域报表和页面报表没有直接获取 字符流的方法,所以就采用上述:通过报表路径来加载报表的方法。希望你理解了,还有什么不清楚的嘛?

在设计器中加载区域报表的方法,这个需求,之前还未有用户问及,所以目前没有现成的Demo。
最快的方法是为您提供解决思路,还请谅解~



SunDream° 发表于 2016-4-25 17:01:53

Lenka.Guo 发表于 2016-4-25 16:41
是的,博客主要内容是 如何使用代码创建带有数据集的区域报表。建议参考这部分内容。




我这边有这样的需求呢~ 在初始化的时候执行一条SQL数据将这个SQL执行后的数据源绑定在区域报表的 设计器右边的字段栏位下面~你看看你们是否可以制作一个简单DEMO把重要的几个调用方法的使用显示出来就好了~      :)

Lenka.Guo 发表于 2016-4-25 17:16:54

本帖最后由 Lenka.Guo 于 2016-4-25 17:28 编辑

SunDream° 发表于 2016-4-25 17:01
我这边有这样的需求呢~ 在初始化的时候执行一条SQL数据将这个SQL执行后的数据源绑定在区域报表的 设计 ...
你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢??

制作Demo没有问题,因为会优先处理金牌用户的问题,Demo制作需要时间~我在这边会抓紧制作,也希望你如果对上面的思路清楚了,也可以先自己尝试哦。

SunDream° 发表于 2016-4-25 17:59:10

Lenka.Guo 发表于 2016-4-25 17:16
你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢 ...
给区域报表在初始化的时候绑定的Demo能尽快发给我们吗?其实什么客户不存在的好吗,我们公司目前用的是你们的active report 3 的版本, 最近我刚刚接手这一部分的内容我们公司打算全面升级到10的版本,   怎么说在你们这边也是老客户的对不对!对10版本的评估进度已经很慢了, 你们的ar3与ar10的版本差别本来就很大,基本现在是需要重新整合的状态, 现在我跟你们提问题在论坛上提问回复的本来就很慢, 我都没办法处理问题。

SunDream° 发表于 2016-4-25 18:05:06

Lenka.Guo 发表于 2016-4-25 17:16
你的需求我理解,上面的思路一直解决的是这个问题,

上面说的思路都理解了吗?是哪里不清楚,有问题呢 ...

并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需求我们想在你们的 ar10设计器上对 设计器进一步包装达到适合我们公司系统的数据模式,对页面, 区域, RDL,三种报表的数据源绑定方式更改这一块的需求是最多的, 你们给的解决方案又少, 在公司给予的评估期内要是还是没办法对这方面解决方案确定下来,我觉得我没必要在对你们的报表进行需求提问了!

Lenka.Guo 发表于 2016-4-26 12:34:13

SunDream° 发表于 2016-4-25 18:05
并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需 ...

非常能理解您在评估过程中,希望了解到更多的与项目需求相符的产品功能的展示的心情。

一开始没能充分理解您的项目需求和进展,非常抱歉,导致和您沟通次数较多,没有有效的解决您的问题。特意为您提供售前选型顾问电话 (029)8833 1988 610,可以电话沟通需求,希望能够帮您快速评估产品,解决产品评估中遇到的问题。

您这边的需求都是高级自定义开发需求,用的人比较少,确实资料不多。第一个示例是有其他示例参考,用了半天时间回复你了。现在您需要的是区域报表和页面报表示例,正在制作中,因为没有可以直接参考的示例,所以制作起来会比较慢,估计每一个需要1天左右的时间,还请您谅解。

另外,我们论坛是1个工作日之内有答复。通常是优先处理金牌用户的问题,考虑到你这边比较急,我们已经提升你问题的优先级,你可以对比一下金牌服务区,咱们沟通的响应的时间和频率都是和金牌用户相当,做的不好的地方,还希望您能够谅解。

Lenka.Guo 发表于 2016-4-26 17:14:35

SunDream° 发表于 2016-4-25 18:05
并且在安装你们的ar10后在C盘中出现的DEMO都是对报表的最后显示在view控件上面的, 这个不是我们公司的需 ...
您好,

加载页面报表Demo,如附件:


核心思路,在LayoutBulider.cs 中添加方法:
public static PageReport BuildPageReportLayout()
      {
            PageReport report = new PageReport();
            report.Load(new StringReader(
            @"<Report xmlns=""http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"">
    <Body>
      <Height>27.9cm</Height>
      <ReportItems>
            <FixedPage Name=""FixedPage1"">
                <Pages>
                  <Page />
                </Pages>
            </FixedPage>
      </ReportItems>
    </Body>
    <BottomMargin>2.5cm</BottomMargin>
    <LeftMargin>2.5cm</LeftMargin>
    <PageHeight>27.9cm</PageHeight>
    <PageWidth>21.6cm</PageWidth>
    <RightMargin>2.5cm</RightMargin>
    <TopMargin>2.5cm</TopMargin>
    <Width>21.6cm</Width>
      </Report>"));
            return report;
      }


在ReportForm.cs中调用该方法:
private void ReportsForm_Load(object sender, EventArgs e)
      {
            PageReport report = LayoutBuilder.BuildPageReportLayout();//Loading the layout to a PageReport object
            report = LayoutBuilder.AddDataSetDataSource(report);//Adding DataSources to the PageReport object
            MemoryStream reportStream = LayoutBuilder.LoadReportToStream(report);//Loading the PageReport object to a stream
            reportStream.Position = 0;
            reportDesigner.LoadReport(XmlReader.Create(reportStream),DesignerReportType.Page);

            
            //Loading the stream to the designer via aXmlReader
         // reportDesigner.LoadReport(XmlReader.Create(reportStream),DesignerReportType.Page);
         
            //Loading the stream to the designer
            report.Dispose();
                        reportStream.Dispose();
      }





SunDream° 发表于 2016-4-26 19:03:53

Lenka.Guo 发表于 2016-4-26 17:14
您好,

加载页面报表Demo,如附件:


还缺一个区域报表的呢? 后面会跟进发出来的吗?

Lenka.Guo 发表于 2016-4-27 10:33:20

SunDream° 发表于 2016-4-26 19:03
还缺一个区域报表的呢? 后面会跟进发出来的吗?

区域报表的Demo正在制作中,制作好了之后会给您回复。

Lenka.Guo 发表于 2016-4-27 13:15:43

SunDream° 发表于 2016-4-26 19:03
还缺一个区域报表的呢? 后面会跟进发出来的吗?

Hi,
区域报表的Demo 也做好了,因为区域报表本身结构问题,现有的解决方案只能是 :1. 新建一张空的区域报表(基于rpx);2. 通过后台代码绑定数据源;3. 在reportDesigner 中使用LoadLayout();给出报表的相对路径;


核心代码:
public static SectionReport AddDataSectionSetDataSource()
      {
            SectionReport report = new SectionReport();
         

            report.LoadLayout("..\\..\\SectionReport2.rpx");
            Data.OleDBDataSource ds = new Data.OleDBDataSource();
            ds.ConnectionString = Properties.Resources.ConnectionString;
            ds.SQL = Constants.cmdText;
            report.DataSource = ds;

            System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter("..\\..\\SectionReport2.rpx", null);
            report.SaveLayout(xtw);
            return report;         
            
      
      }

在ReportForm_Load中添加代码:

            SectionReport sr = LayoutBuilder.AddDataSectionSetDataSource();
            reportDesigner.LoadReport(new FileInfo("..\\..\\SectionReport2.rpx"));
            sr.Dispose();

代码下载:


您的Demo已经完成,如果您有新的问题,麻烦请开新帖,这样方便您查看和查找信息。



页: 1 2 3 4 [5]
查看完整版本: 关于初始化页面报表的问题,急!