我有一个带有子数据的条目,这里是带有子项目的检查按钮。如果我选中了这些项目,那么选中的项目应该被打印出来,而不是这个父项目的所有子项目。如何做到这一点?
我能想到的最简单的办法是提交你所做的更改(即把复选框的值存储到表中)。
然后通过传递 "master "行ID来调用报表。报表的查询就会像这样。
select some_columns
from master_table m join detail_table d on d.master_id = m.master_id
where m.master_id = :par_master_id
and d.checkbox = 1
报告的查询就会是这样的: where
条件将确保只打印被选中的行。
为了 "重置 "它,你可以使用 "报告后 "触发器和
update detail_table set
checkbox = 0
where master_id = :par_master_id
然而,这在多用户环境中是行不通的,因为许多用户可能会使用相同的数据,并 "覆盖 "彼此的复选框。更好的选择是创建额外的表,并存储[user, master_id, detail_id]行,这样每个人都可以使用自己的值。
或者,在表格中,如果没有太多的子记录,使用循环来连接检查行的ID,并将它们传递给报表,报表会将该字符串分割成行。