fastreport 主从表。从表的数据全显示出来了

时间:2021-05-28 11:00:44
我用了2个ADOQuery 2个TfrDBDataset 
ADOquery1主表sql  select * from staff (staffid为主键)
ADOquery2从表sql  select * from study (staffid 引用主笔的)
每个ADOquery 绑定到TfrDBDataset 上面。

在fastreport里面用master 放主表数据
用detail 放从表数据。

(主表的)
姓名    staffid  
aa      1
(从表的)
类型    staffid
.net    1
java    2
(主表的)
姓名    staffid  
aa      2
(从表的)
类型    staffid
.net    1
java    2


我现在想如果主表是staffid是1的话。在从表出现的数据也是staffid 为1的数据。
如果主表的staffid为2的话。从表的数据staffid 为2的数据。
现在出现的是从表所有的数据都出现了。

8 个解决方案

#1


从表sql要有一个参数指向主表的主键
select * from study where staffid = :staffid
还要设置主从表间的datasource关联

#2


什麽意思?
不懂。select * from study where staffid = :staffid 
這個在那裡寫啊?寫了參數在那裡傳。
设置主从表间的datasource关联
這個怎么弄?

#3


自頂上去

#4


肯定是你的主从关心没有设定好。
“select * from study where staffid = :staffid”
就是强制从表显示与主表对应的内容,当然也可以使用过滤。

#5


ADOquery1主表sql  select * from staff (staffid为主键) 
ADOquery2从表sql  select * from study (staffid 引用主笔的) 
每个ADOquery 绑定到TfrDBDataset 上面。 

你这样的作法,实质上没有主从关系的,只是强制性的指定fr打印显示的内容,跟主从表没有关系。正确的主从表设定后,在dbgrid上点选主表的条目后,从表就自动过滤与之相对应的明细了。

#6


今天要出差,趁着这个时间我做了一个demo,你自己下载看看把,看清楚数据库的主从关系设置,和程序中的主从关系设置。使用delphi2009编译

http://www.gpepower.com/test01.rar

#7


同求,我的邮箱fengemail8@gmail.com

#8


6楼的怎么看不到啊

#1


从表sql要有一个参数指向主表的主键
select * from study where staffid = :staffid
还要设置主从表间的datasource关联

#2


什麽意思?
不懂。select * from study where staffid = :staffid 
這個在那裡寫啊?寫了參數在那裡傳。
设置主从表间的datasource关联
這個怎么弄?

#3


自頂上去

#4


肯定是你的主从关心没有设定好。
“select * from study where staffid = :staffid”
就是强制从表显示与主表对应的内容,当然也可以使用过滤。

#5


ADOquery1主表sql  select * from staff (staffid为主键) 
ADOquery2从表sql  select * from study (staffid 引用主笔的) 
每个ADOquery 绑定到TfrDBDataset 上面。 

你这样的作法,实质上没有主从关系的,只是强制性的指定fr打印显示的内容,跟主从表没有关系。正确的主从表设定后,在dbgrid上点选主表的条目后,从表就自动过滤与之相对应的明细了。

#6


今天要出差,趁着这个时间我做了一个demo,你自己下载看看把,看清楚数据库的主从关系设置,和程序中的主从关系设置。使用delphi2009编译

http://www.gpepower.com/test01.rar

#7


同求,我的邮箱fengemail8@gmail.com

#8


6楼的怎么看不到啊