高手请进,什么打印控件能够实现以下打印功能(分数可以再加)?

kmlinda 2006-03-07 03:43:29
已有的设计为:用户可以自由选择要打印的报表字段,并在dbgridE中预览数据报表,选择的打印报表结构作为打印模版的内容保存在数据库中(子表),主表用来保存该模版的打印参数,如:纸张设置、横向/纵向、边距、标题、副标题、字体等等,实现用户一次设置,不用每次都进入打印机设置窗口。
问题是该选用什么控件实现运行时动态地设置以上的打印参数?如果可能,希望能够由用户设置打印列的宽度,不行的话,要能够实现自动适应列宽。
试过dbPrintEH,连横向、纵向都不能搞定。想用rave,但资料太少。实在不知怎样做了,请各位高手帮忙,如果有代码,就更感激涕零了!!!!
...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmlinda 2006-03-09
  • 打赏
  • 举报
回复
comerliang(天地良心) 能说详细一些吗?

呜.....没有人知道吗?
dragonhux 2006-03-09
  • 打赏
  • 举报
回复
楼上是一做广告的 :-)不过grid++确实还可以。

建议一下:dbgridEh中自己带一个打印控件,楼主从数据库读出纸张等参数设置给dbgridEh,并且指定dbgrideh就OK了,有部分不能满足楼主的要求,楼主可以修改source达到自己的要求,也不是很复杂。
GRWriter 2006-03-09
  • 打赏
  • 举报
回复
去 http://www.rubylong.cn/Doc/DynamicReport.htm 读原文。

首先 Grid++Report 的报表模板定义是完全可编程的。Grid++Report 的可视化设计器功能非常完善,全面支持各种通用操作方式,也符合规范的操作习惯。同时 Grid++Report 也提供完备而清晰的编程接口,整个报表模板定义可以通过程序定义出来。也就是说,报表设计器可视化设计出来的报表,用编程的手段一样可以定义出来。正因为 Grid++Report 是完全可编程定义的,为实现动态报表提供了最基本的实现保障。

仅仅可编程定义报表还不够,如果编程定义的过程非常繁杂,这样实现动态报表也不会轻松。下面就来看看 Grid++Report 怎样轻松实现报表的可编程定义:首先 Grid++Report 的编程模型非常清晰规范,其组件对象模型设计非常合理。其次 Grid++Report 的报表定义核心部分由一个具有超强数据展现能力的明细网格组成,通过动态定义列从而实现整个报表最核心部分的动态变化,列按从左到右的顺序排列,只要给列设定合理的宽度,就可以得到合理的报表明细数据输出,而不用繁琐的计算每个明细数据项的准确位置。

当然 Grid++Report 独有的报表查询显示功能也为实现动态报表提供了极大的便利,报表的动态输出结果将更多的是在报表查询显示状态中,有关Grid++Report 独有的报表查询显示功能的更多介绍请参阅《报表查询显示功能 - Grid++Report 独创》

Grid++Report 在报表查询显示时可以适应不同的显示窗口尺寸。为报表内容提供了多种自动排列方式,可以将报表内容设定到合理的相对位置,这样就可以在动态的显示条件下得到理想的显示效果。居中方式指定在水平与垂直方向上保持位置的居中;锚定方式保持报表部件与一个或几个显示边界的固定距离;停靠方式指定报表部件采用怎样的方式充满显示区域的某一边或整个区域;指定对齐到列与对齐列方式可以让列之外的报表部件与列始终保持对齐。设定合理的自动布局方式,就可以在不同尺寸的查询显示窗口中得到理想的输出布局,从而适应用户动态变化的显示环境。

同样Grid++Report 的自动布局能力在打印输出时可以很好地实现同一报表在不同尺寸的纸张上打印,Grid++Report 无论在何种纸张规格上都会让你得到满意的打印输出效果。很多其它的报表构件只能在设计时指定的纸张规格上得到合理的打印输出结果,如果采用其它规格的纸张打印就不能得到布局良好的输出。另 Grid++Report 还提供多种打印输出适应策略:如列的总宽度大于或小于打印区域的宽度,可以自动进行各个列宽的按比例缩放,调整列的总宽度与打印区域的宽度到一样;如果列的总宽度小于打印区域的宽度,可以指定将所有列水平居中输出到打印区域;当列的总宽度大于打印区域的宽度,可以实现横向分页打印,超范围的列另起新页进行输出,如果存在锁定列,可以指定是否在新页中重复输出锁定列。

在前面说过动态报表需要动态变化的方面,现在就来说说 Grid++Report 如何帮助报表开发者实现这些方面。

实现报表的显示外观的动态变化:因为Grid++Report是完全可编程定义的,只要将用户配置的外观参数定义到报表模板定义中,就实现了报表外观的定义。
实现报表的布局的动态变化:前面已经说过 Grid++Report 的核心由一个有超强数据展现能力的明细网格组成,以及报表部件的多种布局方式,这些都有力地保证了报表可以很好地适应布局的动态变化。Grid++Report专业的可视化设计功能可以帮助报表最终用户进行报表布局的可视化调整。
实现报表数据的动态筛选:根据报表的数据筛选参数,动态定义 Grid++Report 中报表的记录集需要的字段。当然报表开发者此时需要根据报表的数据筛选参数动态地去实现向数据源取数功能,一般也就是根据数据筛选条件动态生成查询数据库数据的 SQL 语句,有了动态的取数功能,可以用推模式或拉模式向报表提供数据。
实现报表分析方式的动态变化:这里同样需要报表的可编程定义功能,需要报表开发者通过编程接口将配置好的报表统计分析方式定义到报表中,至于报表的统计分析功能那就是 Grid++Report 的报表引擎的事情了。
报表输出的自适应:在前面已经叙述了报表在查询显示时与报表打印预览时的自适应能力,这里就不在赘述。报表配置参数的持久化需要报表开发者实现合理的保存与载入功能,建议对于多用户网络环境下的报表系统将报表配置参数保存在服务器的数据库中,这样便可共享动态报表的配置参数。报表配置参数载入之后就是调用报表的编程接口定义到报表中,这样用户的报表配置就可以持久可用。
kmlinda 2006-03-09
  • 打赏
  • 举报
回复
高手,高手呢????????????????????
Comer 2006-03-08
  • 打赏
  • 举报
回复
fastreport不行嘛?
NewQger 2006-03-08
  • 打赏
  • 举报
回复
帮你顶
kmlinda 2006-03-07
  • 打赏
  • 举报
回复
呼唤高手!!!!!!!!!!!!!!
kmlinda 2006-03-07
  • 打赏
  • 举报
回复
自己顶!!!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧