精华内容
下载资源
问答
  • olap动态报表制作

    2018-07-11 09:46:31
    olap动态报表制作包括3项技术(kylin+saiku+mondrian),本部分详细描述怎么用kylin做cube
  • 润乾报表 报表组 api 动态添加报表
    问题描述:
    
    客户希望能动态增加报表组的报表项,实现在不同条件下对不同报表的一次性导出。

    解决方法:
    可以通过报表组的相关api接口实现报表组的动态编辑报表项
    报表组编辑主要包括配置报表组中的报表源、设置报表组中的报表项、保存报表组、计算报表组中的报表。  

    报表源可以理解为设计器下图的设置:

    报表项可以理解为设计器下图的设置:


    主要代码如下:
    //新建一个子报表1

             SubReportConfig subReportConfig1=new SubReportConfig();   
             subReportConfig1.setName("report3");   //设子报表逻辑名
             subReportConfig1.setURLType(SubReportConfig.TYPE_RELATIVE);  //设置子报表的url类型,值为“TYPE_RELATIVE”表示相对路径,值为 “TYPE_ABSOLUTE”表示绝对路径,值为 “TYPE_URL”表示为路径为URL,值为 “TYPE_CUSTOM”表示为自定义路径
             subReportConfig1.setURL("cc.rpx");   //设置子报表的url


             SubReportMetaData srm = rg.getReportMetaData(); //定义报表组的元数据信息对象
             srm.addSubReportConfig(subReportConfig1);//增加一个子报表配置信息对象
             rg.setReportMetaData(srm);

           //配置报表项

             ReportGroupItem reportGroupItem1 = new ReportGroupItem();   //新建一个报表项1

             reportGroupItem1.setTitle("sheet3");     //设置报表sheet名称

             reportGroupItem1.setHtmlId("item3");          //设置逻辑名称

             reportGroupItem1.setName("report3"); //设置对应的报表源,在SubReportMetaData中增加了报表源,报表源的逻辑名为:report3

             rg.addItem(reportGroupItem1);    //把报表项添加到报表组中

    //保存报表组


              ReportGroup.write("d:/test1.rpg", rg);

                     
                     //报表组计算引擎
                 GroupEngine groupEngine = new GroupEngine(rg,cxt); 
                   //导出类设置
                 IdeReportExporter re1 = new IdeReportExporter("D:/test.pdf",(byte) (ReportExporter.EXPORT_PDF),null);
                     
                 re1.exportReportGroup(groupEngine);
    展开全文
  • 使用PowerBuilder实现动态报表

    千次阅读 2015-03-14 01:13:49
    使用PowerBuilder实现动态报表   发布时间:2004.12.22 14:28 来源:PB编程俱乐部 作者:赛迪网 在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作...

    使用PowerBuilder实现动态报表

     
    发布时间:2004.12.22 14:28     来源:PB编程俱乐部    作者:赛迪网

    在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时若能自动调用保存了的报表格式那就方便多了。

    一、实现原理

    PowerBuilder中有一种以PSR为后缀的特殊的保存报表的文件格式(本文简称PSR文件),数据窗口可以直接读取PSR文件生成报表,而程序通过生成PSR文件,就可以实现动态报表格式的保存。

    首先,通过设置数据窗口对象(dataobject)中的文本、列等的Resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。

    其次要保存报表格式。在一个应用中,数据窗口对象的名称总是惟一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。在窗口打开时,程序先校验报表格式是否存在。如果存在,将报表格式读出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,并提取数据; 如果不存在,直接提取数据即可。

    二、实现过程

    1. 建立一个数据库表用以保存报表格式文件,各个字段定义如下:

    2. 建立一个窗口w_temp。 定义实例变量如下:

    string is_dwtype,is_dwobject 
    
    //保存报表中对象的类型及名称


    3. 在窗口的Open事件中加入如下代码, 校验报表格式是否存在,如果存在,读取定义好的报表格式到数据窗口。 

    blob emp_pic 
    
    long ll_handle 
    
    string ls_dwobject,ls_reportfile,ls_path 
    
    ls_dwobject = dw_print.dataobject 
    
    //判断是否存在该数据窗口的报表格式 
    
    select count(*) into:ll_count from dyn_report where dwobject =:ls_dwobject; 
    
    if ll_count>0 then 
    
    //读取报表格式文件到大文本变量 
    
      selectblob memo into:emp_pic from dyn_report where dwobject =:ls_dwobject; 
    
      //创建PSR临时文件并保存到硬盘 
    
      ls_reportfile =‘\temp7089.psr’ 
    
      ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!) 
    
      FileWrite(ll_handle,emp_pic) 
    
      FileClose(ll_handle) 
    
      dw_print.dataobject = ls_reportfile 
    
      dw_print.settransobject(sqlca) 
    
    else 
    
      Dw_print.settransobject(sqlca) 
    
    End if 
    
    Dw_print.retrieve()


    4. 保存报表格式,这可以通过Cb_savereport按钮的clicked事件实现。

    string ls_filename 
    
    long ll_count 
    
    blob Emp_id_pic 
    
    ls_filename =“temp70201.psr” 
    
    //保存报表格式到硬盘临时文件 
    
    dw_print.saveas(ls_filename,PSReport! ,false) 
    
    sqlca.autocommit = true 
    
    select count(*) into :ll_count from dyn_report where dwobject =:is_dwobject; 
    
    if ll_count =0 then 
    
      insert into dyn_report(dwobject,rptitle) 
    
      values(:is_dwobject,:ls_filename,:ls_path); 
    
    end if 
    
    //从硬盘临时文件读取数据保存到数据库表中 
    
    emp_id_pic = of_readbmpfile(ls_filename) 
    
    //该函数将二进制文件内容读到大文本对象中 
    
    UPDATEBLOB dyn_report SET memo = :Emp_id_pic where dwobject = :is_dwobject; 
    
    //更新数据库 
    
    sqlca.autocommit = false


    5.动态报表的实现。通过数据窗口dw_print的clicked事件捕获数据窗口中的对象,并将对象名存放在实例变量is_dwobject中,为下一步修改报表做准备。

    string ls_type,ls_dwoname 
    
    //得到对象类型和名称 
    
    ls_type = trim(upper(dwo.type)) 
    
    ls_dwoname = trim(dwo.name) 
    
    is_dwtype = ls_type 
    
    choose case ls_type 
    
     case “TEXT”,“CommandButton”,“GROUPBOX” 
    
      is_dwobject = ls_dwoname 
    
      //设置为可以拖动和改变大小 
    
      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”) 
    
    this.modify(ls_dwoname+“.moveable=”+“1”) 
    
    case “LINE” 
    
    //直线对象不能通过设置Resizeable和moveable属性进行调整,必须通过其他途径 
    
    is_dwobject = ls_dwoname 
    
    case “RECTANGLE”,“ELLIPSE”,“GRAPH”,“BITMAP” 
    
      is_dwobject = ls_dwoname 
    
      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”) 
    
      this.modify(ls_dwoname+“.moveable=‘”+“1’”) 
    
    case “COLUMN”,“COMPUTE” 
    
      is_dwobject = ls_dwoname 
    
      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”) 
    
      this.modify(ls_dwoname+“.moveable=‘”+“1’”) 
    
    end choose

    最后再通过modify()函数就可以实现基本的动态报表操作。

    6. 在cb_exit按钮的clicked()事件中加入:close(parent)。

    7. 在应用的open事件中加入: open(w_temp)。然后保存并运行,全部工作到此结束!(T117)

    展开全文
  • 今天在做报表的时候碰到需要动态显示报表列的问题,阿泰的那篇文章比较不错,但是在动态显示列的情况下,我们还需要动态设置它的宽度,于是我做了一些尝试。。。由于是采用的PULL模式,所以报表里面的内容不方便写在...

     今天在做报表的时候碰到需要动态显示报表列的问题,阿泰的那篇文章比较不错,但是在动态显示列的情况下,我们还需要动态设置它的宽度,于是我做了一些尝试。。。

    由于是采用的PULL模式,所以报表里面的内容不方便写在这里,等我用PUSH的方式改写以后再与大家分享。。。

    其实很简单就一行语句:

                CrystalReportSource1.ReportDocument.ReportDefinition.ReportObjects["custDesc1"].Width = CrystalReportSource1.ReportDocument.ReportDefinition.ReportObjects["custDesc1"].Width + 1200;

     

     

    其中custDesc1是我报表里面的公式字段,www.birdzone.cn 飞鸟工作室

     

    如图, 前面那语句的作用是在ASPX.CS后台里面动态设置公式字段custDesc1的宽度

    还有一种方法 利用SECTION区域来访问里面的OBJECT:

     

    CrystalReportSource1.ReportDocument.ReportDefinition.Sections[0].ReportObjects["getdesc1"].Width = CrystalReportSource1.ReportDocument.ReportDefinition.Sections[0].ReportObjects["getdesc1"].Width + 1000;

      

    在这里使用了SECTION 注意标号是从0开始的, 0对应报表里面的SECTION1  至于那个后面的1000的单位, 在VS里面显示的是缇,不过我也没注意这是个什么单位,如果有哪位仁兄知道,还请不吝赐教~

      

     写得很简单,如果大家有什么想法,欢迎跟我交流~。。。 GOOD LUCK

     

    展开全文
  • PB动态报表的实现

    2008-11-13 22:38:00
    在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时若能...
      
    

    在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时若能自动调用保存了的报表格式那就方便多了。

     

    实现原理

     

    PowerBuilder中有一种以PSR为后缀的特殊的保存报表的文件格式(本文简称PSR文件),数据窗口可以直接读取PSR文件生成报表,而程序通过生成PSR文件,就可以实现动态报表格式的保存。

     

    首先,通过设置数据窗口对象(dataobject)中的文本、列等的Resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。

     

    其次要保存报表格式。在一个应用中,数据窗口对象的名称总是惟一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。在窗口打开时,程序先校验报表格式是否存在。如果存在,将报表格式读出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,并提取数据; 如果不存在,直接提取数据即可。

     

    实现过程

     

    1. 建立一个数据库表用以保存报表格式文件,各个字段定义如下:

     

    2. 建立一个窗口w_temp。定义实例变量如下:

     

    string is_dwtype,is_dwobject

     

    //保存报表中对象的类型及名称

     

    3. 在窗口的Open事件中加入如下代码, 校验报表格式是否存在,如果存在,读取定义好的报表格式到数据窗口。

     

    blob emp_pic

     

    long ll_handle

     

    string ls_dwobject,ls_reportfile,ls_path

     

    ls_dwobject = dw_print.dataobject

     

    //判断是否存在该数据窗口的报表格式

     

    select count(*) into:ll_count from dyn_report where dwobject =:ls_dwobject;

     

    if ll_count>0 then

     

    //读取报表格式文件到大文本变量

     

      selectblob memo into:emp_pic from dyn_report where dwobject =:ls_dwobject;

     

      //创建PSR临时文件并保存到硬盘

     

      ls_reportfile =‘/temp7089.psr’

     

      ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!)

     

      FileWrite(ll_handle,emp_pic)

     

      FileClose(ll_handle)

     

      dw_print.dataobject = ls_reportfile

     

      dw_print.settransobject(sqlca)

     

    else

     

      Dw_print.settransobject(sqlca)

     

    End if

     

    Dw_print.retrieve()

     

    4. 保存报表格式,这可以通过Cb_savereport按钮的clicked事件实现。

     

    string ls_filename

     

    long ll_count

     

    blob Emp_id_pic

     

    ls_filename =“temp70201.psr”

     

    //保存报表格式到硬盘临时文件

     

    dw_print.saveas(ls_filename,PSReport! ,false)

     

    sqlca.autocommit = true

     

    select count(*) into :ll_count from dyn_report where dwobject =:is_dwobject;

     

    if ll_count =0 then

     

      insert into dyn_report(dwobject,rptitle)

     

      values(:is_dwobject,:ls_filename,:ls_path);

     

    end if

     

    //从硬盘临时文件读取数据保存到数据库表中

     

    emp_id_pic = of_readbmpfile(ls_filename)

     

    //该函数将二进制文件内容读到大文本对象中

     

    UPDATEBLOB dyn_report SET memo = :Emp_id_pic where dwobject = :is_dwobject;

     

    //更新数据库

     

    sqlca.autocommit = false

     

    5. 动态报表的实现。通过数据窗口dw_print的clicked事件捕获数据窗口中的对象,并将对象名存放在实例变量is_dwobject中,为下一步修改报表做准备。

     

    string ls_type,ls_dwoname

     

    //得到对象类型和名称

     

    ls_type = trim(upper(dwo.type))

     

    ls_dwoname = trim(dwo.name)

     

    is_dwtype = ls_type

     

    choose case ls_type

     

     case “TEXT”,“CommandButton”,“GROUPBOX”

     

      is_dwobject = ls_dwoname

     

      //设置为可以拖动和改变大小

     

      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”)

     

    this.modify(ls_dwoname+“.moveable=”+“1”)

     

    case “LINE”

     

    //直线对象不能通过设置Resizeable和moveable属性进行调整,必须通过其他途径

     

    is_dwobject = ls_dwoname

     

    case “RECTANGLE”,“ELLIPSE”,“GRAPH”,“BITMAP”

     

      is_dwobject = ls_dwoname

     

      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”)

     

      this.modify(ls_dwoname+“.moveable=‘”+“1’”)

     

    case “COLUMN”,“COMPUTE”

     

      is_dwobject = ls_dwoname

     

      this.modify(ls_dwoname+“.Resizeable=‘”+“1’”)

     

      this.modify(ls_dwoname+“.moveable=‘”+“1’”)

     

    end choose

     

    最后再通过modify()函数就可以实现基本的动态报表操作,这一类的文章较多,PB中也有大量的例子可直接使用,在此不再赘述。

     

    6. 在cb_exit按钮的clicked()事件中加入:close(parent)。

     

    7. 在应用的open事件中加入: open(w_temp)。然后保存并运行,全部工作到此结束!

     

    本程序在PB7.0、Oracle 8.05下调试通过。

     

    展开全文
  • Java和Grails的动态报表

    2009-03-27 17:18:00
    DynamicJasper的核心思想是动态创建报表和运行时配置。可以在运行时配置的选项包括:列 组 变量 函数 图 子报表 完整特性参见其网站。DynamicJasper的团队负责人Juan Manuel Alvarez告诉InfoQ基于某些原因他们创建了...
  • Jasper+ireport动态报表学习(一)

    千次阅读 2017-02-16 10:57:38
    由于最近业务中进行了报表统计,最后决定采用动态报表设计。 这里所说的动态报表便是我要总结的技术知识: 报表模板制作工具 ireport5.1.0(只为获取报表模板XML,版本不用太新,也别太低) 根据模板报表生成...
  • 水晶报表推模式下的报表设计,其中包括相关代码。
  • 本实例主要讲解的是水晶报表动态调用过程,包括源码。实例中也添加了参数的传递,可以手动为定义的参数赋值,如有什么问题可以联系我,联系方式,邮箱:yz_wanchaowei@163.com,QQ:403299821
  • PB动态报表格式自由定义的实现

    千次阅读 2015-01-18 23:15:55
    在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时...
  • Ztree动态绑定和报表

    2015-09-10 10:53:47
    动态异步绑定Ztree,用的mysql数据库,jdbc访问。数据库中新建表dept加入id,pid,...该项目中还包括用jFreeChart生成统计报表的一些代码。项目中包含完整jar包,只需根据自己需要配置数据库和自己添加测试数据就能用。
  • 相信动态列的实现困扰了很多人,大数据量,多字段的加载将会非常耗时,数据又做不到真正的动态灵活。现有的方式都是通过变向的隐藏等方式来实现。
  • 在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要 是能够让用户自己调整报表的格式和内容,然后将它保存下来,...
  • 【PB】动态报表格式自由定义的实现

    千次阅读 2012-06-14 22:28:12
    在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时...
  • 用reporting service创建动态报表

    千次阅读 2006-02-01 14:53:00
    公布了两个公开的函数.Generate()用以在服务器产生RDl报表文件,UPLoad用以上传报表文件,使用时要实例化一个新实例. 仅做参考哈..我不知道一般的做法是怎么样的.我是这样想的..不知道是否可以用rs webservice 的...
  • 客户在使用BIRT报表的过程中遇到了数据库间动态关联的麻烦,用BIRT的跨库关联工具以及DB2的Federated Database都难以解决。客户报表全名为“ATM关键数据查询报表”,需要通过时间段和维度等参数来显示银行ATM的统计...
  • ASP.NET中动态控制RDLC报表

    千次阅读 2009-02-25 10:52:00
    Rdlc优点: 1:Rdlc报表设计简单 2:结果存成xml,易于控制 3:导出格式作的很不错 这里所说的动态控制报表所指的是:在一些时候,制作了报表之后希望在运行中可以动态的做一些小修改,比如说列的位置,用户...
  • Ø 在.NET中利用FORMULA ONE实现动态报表技术(一) 相信对大家Formula One (简称F1) 不会太陌生,它是一个优秀第三方报表制作控件,本人以前一直使用它与PB结合制作动态报表。现在有一.NET项目,有大量报表要实现...
  • sql 2005 创建动态数据报表的整个流程分析. SQL Server 2005 联机丛书设计和创建报表Reporting Services 包括两个报表设计工具:报表生成器和报表设计器。报表生成器是一种客户端应用程序,可以基于报表模型生成报表...
  • 报表开发知识大全(1) 什么报表

    千次阅读 2015-07-06 09:45:30
    今天我们来了解什么报表报表的发展历史,为什么需要报表报表的功能,以及常见报表分类。 简单的说:报表就是通过表格、图表等形式来动态显示数据,并为使用者提供浏览、打印、导出和分析功能,可以用公式表示...
  • 又到月末了吧,各位又要赶报表了吧,具体哪些人我就不点名了,财务、IT、表哥表姐自己对号入座。而且,费很长时间做的报表老板也不看,升职加薪...其实,动态报表不只是看上去颜值高而已,更重要的是能够充分解放报...
  • Qt 控件包括 1.动态读取sqlite 显示在QTableWidget; 2.动态解析xml文件 左侧显示在QTreeWidget上 3.点QTreeWidget的节点使右侧界面动态切换 以报表显示。
  • 用reporting service创建动态报表(代码)

    千次阅读 2006-08-29 10:01:00
    公布了两个公开的函数.Generate()用以在服务器产生RDl报表文件,UPLoad用以上传报表文件,使用时要实例化一个新实例. 仅做参考哈..我不知道一般的做法是怎么样的.我是这样想的..不知道是否可以用rs webservice 的...
  • 一、基本概念: XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,... 要创建绑定报表,则首先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项。报表控件、带区 和报表自身的所有大小和位置,...
  • 水晶报表 动态批量打印本地图片

    千次阅读 2009-09-28 14:25:00
    目的:从数据库中得到本地图片的路径,再将其打印到报表上,每一个ID查询出来的信息(包括多幅图片)对应报表中的一页环境:VS2005+自带水晶报表参考文献:http://babyt.cnblogs.com/archive/2005/04/21/142789.html 阿泰...
  • Asp.net中动态控制RDLC报表

    千次阅读 2007-08-08 14:14:00
    在asp.net程序中,可以选择使用水晶报表,功能确实强大。但是web版的水晶报表好像存在版权的问题。如果所作报表不是复杂的一塌糊涂的话,可以使用微软自带的Rdlc报表。已经有老兄做出了不少诠释:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,872
精华内容 16,748
关键字:

动态报表包括什么