做主/从表报表时,定位主表后,如何定义从表当前记录的位置?(50分)

  • 主题发起人 主题发起人 浪刀
  • 开始时间 开始时间

浪刀

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TfrmKhzydaPrint.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
MasterTable.SetKey;
MasterTable.FieldByName('Khbm').AsString:=Khbm;
MasterTable.GotoKey;

DetailTable.IndexName:='cs_index';
DetailTable.SetKey;
DetailTable.FieldByName('cs').AsInteger:=Times;
DetailTable.GotoKey;
end;

为何不行?
 
作主从报表用quick report的subdetailband不就可以了
 
那我换用QUERY来检索数据然后打印,大家帮我看看代码吧。
QUERY的SQL语句为
SELECT Khzyjl.Khbh, Khzyjl.Cs, Khzyjl.Zynr, Khzyjl.Zysj, Khzyjl.Zyqtp, Khzyjl.Mrsjc, Khzyjl.Zyxx, Khzyjl.Zyhtp, Khzyjl.Mrsyj, Khzyjl.Rq, Mrszlgl.Xm
FROM "Khzyjl.DB" Khzyjl
INNER JOIN "mrszlgl.DB" Mrszlgl
ON (Khzyjl.Mrsbh = Mrszlgl.Bh)
WHERE (Khzyjl.Khbh = :s_Khbh)
AND (Khzyjl.Cs = :s_Cs)
在程序中写代码如下:
Query.Params.CreateParam(ftString, 's_Khbh', ptInput);
Query.Params.CreateParam(ftInteger, 's_Cs', ptInput);
Query.Close;
Query.ParamByName('s_Khbh').AsString:=Khbm;
Query.ParamByName('s_Cs').AsInteger:=Times;
ShowMessage(Query.SQL.Text);
Query.Open;
执行到Query.Open句时提示Can not find object.
为什么,帮我找找错误,谢谢
 
query.databasename=?
 
query.databasename没错的。
 
试一试吧:

QUERY的SQL语句为
SELECT Khzyjl.Khbh, Khzyjl.Cs, Khzyjl.Zynr, Khzyjl.Zysj, Khzyjl.Zyqtp, Khzyjl.Mrsjc, Khzyjl.Zyxx, Khzyjl.Zyhtp, Khzyjl.Mrsyj, Khzyjl.Rq, Mrszlgl.Xm
FROM "Khzyjl.DB" Khzyjl
INNER JOIN "mrszlgl.DB" Mrszlgl
ON (Khzyjl.Mrsbh = Mrszlgl.Bh)
WHERE (Khzyjl.Khbh = :s_Khbh)
AND (Khzyjl.Cs = :s_Cs)
在程序中写代码如下:
Query.Close;
Query.ParamByName('s_Khbh').AsString:=Khbm;
Query.ParamByName('s_Cs').AsInteger:=Times;
ShowMessage(Query.SQL.Text);
Query.Open;
 
多人接受答案了。
 
后退
顶部