关于报表的问题,怎么实现3个ADOQUERY的并排打印?

walkmangood 2003-09-13 02:37:48
关于报表的问题,怎么实现3个ADOQUERY的并排打印?

就是这样的打印效果:

商品1 商品2 商品3
商品名称 数量 单价 商品名称 数量 单价 商品名称 数量 单价
aa 1 4
...全文
42 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkmangood 2003-09-16
  • 打赏
  • 举报
回复
按照香在故国晚秋的方法,已经OK,我已经无地只容,非常惭愧啊,谢谢以上的同学门。
walkmangood 2003-09-15
  • 打赏
  • 举报
回复
delphi6自带的QR
walkmangood 2003-09-15
  • 打赏
  • 举报
回复
u
walkmangood 2003-09-15
  • 打赏
  • 举报
回复
真是CSDN的耻辱,这个问题就是没人能解答,放了3天了
walkmangood 2003-09-15
  • 打赏
  • 举报
回复
TO xpbuaa(桂枝香在故国晚秋) :是不是每次打印到存到ClientDataSet里,但是客户每次都会添加和删除商品的,也就是说,商品是动态的。而且哪个多,也是不定的。这次打印完了,下次还是同一个客户的商品,但是数量价格,商品条数也变了。

是不是打印完了,我就给删掉,下次打在存

walkmangood 2003-09-15
  • 打赏
  • 举报
回复
我在试
hiflower 2003-09-15
  • 打赏
  • 举报
回复
老兄,CSDN 上还是有些人才的吧,呵呵
hmily1688 2003-09-15
  • 打赏
  • 举报
回复
lxpbuaa(桂枝香在故国晚秋) 我服了你,你给了条思路我正在研究怎么做你就把答案给贴出来了。
fssunset 2003-09-15
  • 打赏
  • 举报
回复
唉,忘记了一个更简单和高灵活性的方法:把数据导出到Excel中,这样你想怎么打就怎么打,怎么加工就怎么加工。前提就是计算机要装有Excel。详细情况请在google中敲入“导出 Excel”之类的字眼。
fssunset 2003-09-15
  • 打赏
  • 举报
回复
最简单的你就在Qreport的OnneedData事件里面写,该事件触发于每个detail Band读取数据的时候,并且控制该Band的项目,由MoreData := true/false 标志控制是否打印下一个Band.
lxpbuaa 2003-09-15
  • 打赏
  • 举报
回复
假设ADOQUERY1、ADOQUERY2、ADOQUERY3各有n1、n2、n3个字段,那么首先在ClientDataSet中创建n1+n2+n3个字段(可都为字符串类型)。然后:

ADOQUERY1.First;
ADOQUERY2.First;
ADOQUERY3.First;
while not ADOQUERYn.Eof do //自己想办法判断哪个ADOQUERY记录最多
begin
ClientDataSet.Append;
if not ADOQUER1.Eof then for I := 0 to n1-1 do
ClientDataSet.Fields[I].AsString := ADOQUER1.Fields[I].AsString;
if not ADOQUER2.Eof then for I := 0 to n2-1 do
ClientDataSet.Fields[n1+I].AsString := ADOQUER2.Fields[I].AsString;
if not ADOQUER3.Eof then for I := 0 to n3-1 do
ClientDataSet.Fields[n1+n2+I].AsString := ADOQUER3.Fields[I].AsString;
ClientDataSet.Post;
ADOQUER1.Next;
ADOQUER2.Next;
ADOQUER3.Next;
end;
最后用ClientDataSet作报表。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
walkmangood 2003-09-15
  • 打赏
  • 举报
回复
每个ADOQUERY查询的记录条数都不一样啊,

to: lxpbuaa(桂枝香在故国晚秋) :即三个ADOQUERY各取一条记录合并为一条,然后存入ClientDataSet,这个怎么实现
lxpbuaa 2003-09-15
  • 打赏
  • 举报
回复
将三个ADOQUERY的数据合并到一个ClientDataSet。即三个ADOQUERY各取一条记录合并为一条,然后存入ClientDataSet。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
hmily1688 2003-09-15
  • 打赏
  • 举报
回复
三个query中的数据记录数是不是可以不同,你可以如楼上所说用临时表来搞定
wangxiangsjz 2003-09-15
  • 打赏
  • 举报
回复
1、建一个临时表,把三个查询合并到一个表中。
2、用FastReport可以实现。
walkmangood 2003-09-14
  • 打赏
  • 举报
回复
怎么这个问题没有人会吗?失望
WuLoveXue 2003-09-14
  • 打赏
  • 举报
回复
你用的什么报表?
walkmangood 2003-09-14
  • 打赏
  • 举报
回复
用d6,我没有的d7
giftzhang 2003-09-14
  • 打赏
  • 举报
回复
商品1 商品2 商品3是可以对应三个不同 的查询的啊,你好好设置一下查询的属性就可以了
walkmangood 2003-09-14
  • 打赏
  • 举报
回复
876
加载更多回复(5)

5,388

社区成员

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

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