我要打印的报表的列是动态的,不知如何做此类报表呀?高手请!(300分)

  • 主题发起人 主题发起人 wujer
  • 开始时间 开始时间
W

wujer

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要做个报表,行和列都是动态不定的,随意性太强了。
TND,人家用Excel做的,却要我用报表给他打出来,太没人性了。
现在小弟无能为力了,只有求助各位大虾了。
只要能提供能动态显示列的方法就感激不尽了,谁能尽快帮我解决马上给分。
能提供相关资料也会适量给分。
 
写存储过程到临时表,用query执行过程!
这样就可以和平常的query一样来取得数据了!
 
http://www.51delphi.com/delphi/soft?cx=Fastreport+%B6%AF%CC%AC%C1%AC%BD%D3%BF%E2
Fastreport 动态连接库
看它的例子呗,可以动态确定列的,注册后才能下载
 
喔,忘了跟大家说清楚了,我用的报表控件是:Report Machine;
我已经写到内存表了,但我怎么动态把数据标题和数据项列进报表里面呢?
而且数据标题又是多列的。
 
excel > StringGrid > RMStringGridReport
 
《Delphi6 数据库编程》中有用QuickReport实现的例子。找找看吧。
 
写存储过程到临时表,用query执行过程!
和平常的query一样来取得数据生成报表!
 
这个到不是特别困难的问题
关键是各列的间隔(因为不固定列),所以不太好排版的
选出的各列,动态加到 报表里面去
 
先动态构建sql(必要时用存储过程动态添加列),然后放到DBGrideh里面显示出来,再用PrintDBGrideh打印出来
 
我也想过打印DBGrid,但不行呀,这个表的样子有些像交叉报表的格式.
但去不能用交叉报表方法做,交叉报表是统计数据,而我这个报表是将数据一一列出来.
所以此方法行不通
 
你好!我做有类似的控件,DEMO可以到http://www.efile.com.cn上用dfw@133780搜索就可以看到
 
一个简单办法:你直接将报表写到EXCEL中,用EXCEL来打印,反正用户肯定有EXCEL的.
 
列的动态排版可以自己写,就是麻烦
(纸张宽度-各列宽度之和)/2=第一列 Left值
其他列Left=上一列Left+上一列宽度
祝你成功
 
建议用存储过程动态创建数据
然后写到excel中,格式可预先定义,
也可由用户最终修改
 
kisssun说的有道理
 
听了不少意见,呵呵,好像都没有一个好的办法,再看看吧,再没有高手出现,下星期一结贴!
 
Report Machine找WHF吧。
 
dez_0609说得没错,用dbgrideh,而不是你所说的dbgrid.
至于你说的,有点像交叉表,可以写存储过程来实现.
 
看我的笔记,完全符合你的要求
http://www.delphibbs.com/keylife/iblog_show.asp?xid=6858
 
RM的报表样式可以由用户自己来设计,调整,干脆把设计器拿给客户自己弄去吧.
 
后退
顶部