b/s模式,报表制作(100分)

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

xyy0314

Unregistered / Unconfirmed
GUEST, unregistred user!
在服务器段用了adoconnection,adoquery,datasetprovider,客户机段用了dcomconnection,
clientdataset,我想通过对clientdataset查询后再将数据导入报表中,使用语句如下:
(报表控件用了quickrep和qrdbtext)
with datamodule2.ClientDataSet9 do
begin
datamodule2.ClientDataSet9.Close;
datamodule2.ClientDataSet9.CommandText:=' select 商品代号,数量 from 库存表 where 库存表.商品代号 = ''10025''';
datamodule2.ClientDataSet9.open;
qrdbtext1.DataSet := datamodule2.ClientDataSet9;
qrdbtext2.DataSet := datamodule2.ClientDataSet9;
qrdbtext1.DataField := datamodule2.ClientDataSet9['商品代号'] ;
qrdbtext2.DataField := datamodule2.ClientDataSet9['数量'] ;
if datamodule2.ClientDataSet9.RecNo=0 then
begin
showmessage('对不起,此记录不存在,请查找别的商品代号!');
exit;
end
else
begin
showmessage('查找成功!');
end;
end;
quickrep1.Preview;
但是,结果只显示第一条纪录,为什么?怎么解决?还有什么好办法?多谢
 
奇怪,都是过客而已,很难么
 
你点击TquickRep画面的背景,设定其DataSet类型后再试验一下。
 
你这是三层C/S,不是B/S 。报表可以用第三方控件做,如:FR,MR等等。
select 商品代号,数量 from 库存表 where 库存表.商品代号 = '10025'语句只返回一条记录,所以结果只显示第一条纪录。你可根据你的实际需要修改SQL语句。
 
也不对,我用过 “datamodule2.ClientDataSet11.CommandText:=' select 商品代号,数量 from 库存表 where 进货表.进货日期 = 2004-3-14 ' ”,同样是只显示第一条纪录。前面的知识举个例子而已
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部