| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3657 人关注过本帖
标题:请教一个报表问题
只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:1 
乐阁爱真是个好狐友

只求每天有一丁点儿的进步就可以了
2016-03-27 15:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
个人理解是将三个页面(三个报表)放到一个预览窗口显示(从上到下顺序)。
用多细节也只能是三个报表在同一个页面,楼主用的AddReport方法可否介绍一下细节内容?
2016-03-27 15:48
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
我的理解也是同时运行三个独立的报表,在一个预览窗口显示(从上到下顺序/竖排)。
外观相当于是一个报表,页数/页码也要是独立的计数,好像不行。

VFP 打开 DOC/RTF 文件可以是没有或屏蔽掉工具栏/菜单条的,限制条件是你的机子必须安装 Office。
楼主不喜欢 DOC 文件,就不展开了。

如果报表不是很复杂的,可以用报表嵌套技术,三个报表集成在一个报表中,但这种技术不通用。
楼主还是上传你的测试数据和报表文件,我们试试看,不知道行不行。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-03-27 16:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用wcx_cc在2016-3-27 00:04:42的发言:
  生成 HTML,XML 文档都不成功。调用报表监听器,vfp不让调用。(提示致命错误,让给微软发送出错信息..)  
  谢谢您!

报表监听器只对一个报表文件操作,不能同时操作几个报表文件。
生成HTML可不用报表文件,HTML写一般表格的代码也不复杂。
用_ReportListener.vcx的HTMLListener子类输出HTML示例:
oHTML = NEWOBJECT("HTMLListener", HOME(0) + "ffc\_ReportListener.vcx")
oHTML.TargFileName = "myTest.htm"
oHTML.externalFileLocation = "c:\temp"
Report Form test.frx Object oHTML


2016-03-27 18:23
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:371
专家分:1157
注 册:2015-10-2
收藏
得分:0 
感谢13楼朋友回复。我要的页面,就像现在的咱们正在会话的帖子一样的格式。每一张独立的报表页面相当于现在咱们会话的一个会话栏。每一页都是A4纸显示。但是,每页内容大不相同。有多列表格的,有文章形的,有显示图片的。我虽然说的是显示3个报表,但是,实际上报表不止3个,只是为了想探讨点方法,而举例。实际上,报表个数是不定数量的,可能有很多的页面。
   如果vfp 能屏蔽掉 doc 的工具栏/菜单条,问题就算基本解决吧。我也没有细查有关资料,非常期待您提供点帮助!
   吹水佬版主的建议是正确!谢谢!但是,运行您的代码,和运行我的代码,出现的问题是一样的,调用 _ReportListener.vcx的HTMLListener 子类不行。调用 XMLListener 子类也不行,但是调用其他的子类都是行的!这是关键的问题!如果解决了这个问题,其他的就不麻烦大家了。是否vfp 版本有问题?
  出错提示:Microsoft visual foxpro 已停止工作,联机检查解决方案并关闭该程序 ..。

2016-03-28 00:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
以下是引用wcx_cc在2016-3-28 00:14:07的发言:
调用 _ReportListener.vcx的HTMLListener 子类不行。调用 XMLListener 子类也不行,但是调用其他的子类都是行的!这是关键的问题!如果解决了这个问题,其他的就不麻烦大家了。是否vfp 版本有问题?

试了一下,好象兼容有问题?
安装了MSXML 4.0(https://www.)能正常运行。
2016-03-28 09:16
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:20 
VFP 9.0 的 _ReportListener.vcx/ReportOutput 转出 Html 格式文件时不支持双字节字符的,它是 UTF-8 编码。
据说国内有位大佬改了几处代码,勉强可以用,好像还是不理想。

还是用巴西人搞的 FoxyPreviewer,网站在:http://foxypreviewer.
它是免费开源的,是 _ReportListener.vcx 的升级版和替代版,功能强得多。
还不需要 MSXML 4.0 文件。

比如生成 Html 文件:
Do Locfile("FoxyPreviewer.App")  && WITH "C:\YourAppFolderHere\"
Report Form MyReport.frx ;
    Object Type 15 ;  && Object : 10 = 标准 PDF, 11 = 图形 PDF, 12 = RTF, 13 = XLS, 14 = HTML(不支持双字节字符), 15 = HTML(支持双字节字符)
    To File Report.Html ;  && 目标文件/输出文件
    NoDialog ;
    Preview   && 生成后用关联软件打开/预览

它里面还有很多多报表合并的示例,就像楼主的题意一样,可以运行任意数量的报表,并合并成 PDF/Html/Dox 等文件。
比如三个报表合并成一个 PDF 的示例:
DO LOCFILE("FoxyPreviewer.App")

* To merge reports, the trick is to use the clauses
* NOPAGEEJECT NORESET

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Colors.frx") ;
    OBJECT TYPE 10 NOPAGEEJECT NORESET TO FILE "c:\Test10.pdf"

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Wrapping.frx") ;
    OBJECT TYPE 10 NOPAGEEJECT

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Percent.frx") ;
    OBJECT TYPE 10 PREVIEW

试试看.

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-03-28 13:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
自己写HTML文件,这样更灵活些。
2016-03-28 15:49
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:371
专家分:1157
注 册:2015-10-2
收藏
得分:0 
谢谢两位版主!!!
 我已把发帖内容收录下了!准备好好研究琢磨。不明白的继续再请教!
         感谢!感谢!
2016-03-29 00:13
快速回复:请教一个报表问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039724 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved