高手请进!(100分)

  • 主题发起人 主题发起人 xueren
  • 开始时间 开始时间
X

xueren

Unregistered / Unconfirmed
GUEST, unregistred user!
我要做一个好几层的一对多报表,不从数据库里取数据,用QuickRep的OnNeedData事件实现,请高手指点迷津。
假设某种商品对应好几个品牌,每一个品牌对应好几种颜色。

商品 品牌 颜色
商品1 品牌1 颜色1
颜色2
品牌2 颜色1
颜色2
商品2 品牌1 颜色1
颜色2
品牌2 颜色1
颜色2
 
为什么没有人回答我?
 
看看自己的手,不高,只好听听课。
 
我还不知道OnNeedData怎么用,帮助写的含糊,有没有资料,清赐教 告诉我资料也行
关于你的问题 我觉得可以这样实现
不知道你的商品1,2 等数据是不是存在一个库里,假设是一个库 (不是的话可以union连接)
query的sql语句写 select * from xxx order by 商品,品牌,颜色
在quickrep上加两个qrgroup, 在expression里分别写dataset.字段名(第一个是商品字段,xxxxxxxxxxxx
呵呵~~~~您是高手,就不细说了,关于qrgroup的帮助很明白的 我觉得思路就是这样的
 
我不从数据库里读数据,此数据来自于xml文档,我从xml文档将数据解释出来,直接写到quickrep上去。
 
OnNeedData有例子
(qr低的版本 有时会:预览正常 ,激光打印不对(针打没问题)) 我遇到过
(据说修改激光为光栅打印就可以) 不确定
你还是用临时表吧!
 
hfghfghfg:我用的delphi6.0的自带控件,不会出现这样的情况吧?
我列出的例子只有三层,事实上,我要做的报表有六层,如果将这样的一个xml
文档转换成临时表好像比较麻烦。
不画网格线的话,我贴出来的格式我能够实现,可是要加上网格线,我就有些无可奈何了。
大富翁的高手这么多,我期待大家能给我更多更好的建议,谢谢。
 
我好久不用QuickRep了
我 所说的临时表 只是一种 思路 ,即先生成数据
例:
ADODataSet1.LoadFromFile();
//源数据
ADODataSet2.FieldDefs:=ADODataSet1.FieldDefs;
ADODataSet2.FieldDefs.Add('temp',ftSmallint,0);
//按要求 加不同的字段
ADODataSet2.CreateDataSet;
ADODataSet2.Open;
//这就是临时表 ,不过现在还是空的
然后 就 可以 按 要求 对 ADODataSet2.Insert //sqlServer 中的游标 用 delphi 来完成
以上 只是 示意
 
多人接受答案了。
 
后退
顶部