Delphi7 +Report Machine6.5 主从表关系,求高手解答。。。在线等。。。。。

linzhen6790 2009-10-20 08:25:34
数据库为ACCESS
主表数据为:kfzl(id,xm,xb,fk,sfz,dz) ==>>表示客户资料(编号,姓名,性别,户口,身份证,电址)
从表数据为:cszl(id,bskh,cpbh.cpmc,cpch) ==>>表示销售资料(编号,标识卡号,产品编号,产品名称,产品型号)

id属性为共用

使用的控件,两个ADOquery,一个RMReport,两个RMDBDataSet,一个DataSource

ADOquery1连接主表数据
ADOquery2连接从表数据

比如我的数据是 这样

kfzl数据
编号 id fk xm xb sfz dz sj df
1 XPCS0910050001 123456 av 要 3 在 12 15
2 XPCS0910050002 a a a 1 工 1

cszl数据
编号 id csrq spbh bskh cpbh spmc spch sppb jg
8 XPCS0910050001 2009-9-24 1010013 HRDG136 1346A 电视机 21TA1-
9 XPCS0910050001 2009-9-24 1010001 A A 电视机 21TA1-7 123 "
10 XPCS0910050001 2009-9-24 1010001 B A 电视机 21TA1-71 123 "
11 XPCS0910050002 2009-9-24 1010001 1 1 电视机 21TA1-72 123 "
12 XPCS0910050003 2009-9-24 1010001 3 1 电视机 21TA1-73 123 "

ADOquery1的SQL属性:select * from kfzl
ADOquery2的SQL属性:select * from cszl where id=:id



现在出现了问题是:
我只想打印其中了表单第一个数据(XPCS0910050001),,我打印预览了时候,,连(XPCS0910050002)也一起出来 ,
代码:
procedure Tllct.N5Click(Sender: TObject);
begin
if ADOQuery1.IsEmpty then
Exit;
try
RMReport1 := TRMReport.Create(Self);
RMReport1.LoadFromFile('jdxxsqbb.rmf');
RMReport1.PrepareReport;
RMReport1.ShowReport;
finally
RMReport1.Free;
end;

end;

我如果把ID指向单号,打印预览了时候,主表跟从表,都全部没有显示,代码如下:
procedure Tllct.N5Click(Sender: TObject);
begin
if ADOQuery3.IsEmpty then
Exit;
try
RMReport1 := TRMReport.Create(Self);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from kfzl where id=a order by id');
ADOQuery1.Parameters.ParamByName('a').Value:=label25.Caption;//===》》(label25.caprion 是单号ID)

ADOQuery1.Open;
ADOQuery2.Open;

RMReport1.LoadFromFile('jdxxsqbb.rmf');
RMReport1.PrepareReport;
RMReport1.ShowReport;
finally
RMReport1.Free;
end;

end;



后来,我再查了一下资料,说有了要在ADOquery1那里要有
代码如下:
procedure Tllct.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from kfzl where id=:id ');
adoquery2.Parameters.ParamByName('id').Value := adoquery1.fieldbyname('id').value;
adoquery2.Open;
end;


也不行,主从表都全部不显示


现在想请大侠们,指点一下,我上面是错在哪边,我现在只想通过label25.caprion(id单号),从数据库里面打印这一条主从表数据,不是整个数据库的数据

至于分数,我也不知道怎么分,知道了。。请帮帮我。好吗,要源码请联系我:linzhen6790@163.com

...全文
583 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyliguang 2011-08-15
  • 打赏
  • 举报
回复
这个没用过,用过fastreport
searcher2000 2010-12-10
  • 打赏
  • 举报
回复
把主项数据的 RangeBegin设置成rmrbCurrent就可以了
wangjianquan 2009-12-05
  • 打赏
  • 举报
回复
ADOquery1的SQL属性:select * from kfzl where id='XPCS0910050001'
linzhen6790 2009-10-21
  • 打赏
  • 举报
回复
唉,失望中。。。。。
linzhen6790 2009-10-21
  • 打赏
  • 举报
回复
没有人吗,,如果分数不够,我再加。。。请有知道了帮帮忙
linzhen6790 2009-10-20
  • 打赏
  • 举报
回复
有没有大哥,知道了,帮忙一下,这个问题已经搞晕了我一个星期了。。。

用QuickReport,我懂得去做,但是QuickReport报表不能修改,要修改要动用掉源码。

改为Report Machine,是因为,报表可以随时更改,不用再需要去源码。

5,388

社区成员

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

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