数据结构如下:
A表(客户信息): 序号,姓名,地址
b表(消费信息): 序号,客户序号,消费物品,数量,金额需要生成如下报表,关键是格子如何绘制?
┏━━━━┳━━━━━┳━━━━┳━━━━━┳━━━┳━━━━┓
┃ 姓名 ┃地址 ┃消费合计┃ 消费物品 ┃数量 ┃ 金额 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃ 物品A ┃ 4 ┃ 80.00 ┃
┃张三 ┃地址1 ┃100.00 ┣━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品B ┃ 5 ┃ 20.00 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品A ┃ 5 ┃ 100.00 ┃
┃ ┃ ┃ ┣━━━━━╋━━━╋━━━━┫
┃李四 ┃地址2 ┃ 150.00 ┃物品B ┃ 5 ┃ 20.00 ┃
┃ ┃ ┃ ┣━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品C ┃10 ┃ 30.00 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃王五 ┃地址3 ┃75.00 ┃物品D ┃3 ┃ 75.00 ┃
┗━━━━┻━━━━━┻━━━━┻━━━━━┻━━━┻━━━━┛
A表(客户信息): 序号,姓名,地址
b表(消费信息): 序号,客户序号,消费物品,数量,金额需要生成如下报表,关键是格子如何绘制?
┏━━━━┳━━━━━┳━━━━┳━━━━━┳━━━┳━━━━┓
┃ 姓名 ┃地址 ┃消费合计┃ 消费物品 ┃数量 ┃ 金额 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃ 物品A ┃ 4 ┃ 80.00 ┃
┃张三 ┃地址1 ┃100.00 ┣━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品B ┃ 5 ┃ 20.00 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品A ┃ 5 ┃ 100.00 ┃
┃ ┃ ┃ ┣━━━━━╋━━━╋━━━━┫
┃李四 ┃地址2 ┃ 150.00 ┃物品B ┃ 5 ┃ 20.00 ┃
┃ ┃ ┃ ┣━━━━━╋━━━╋━━━━┫
┃ ┃ ┃ ┃物品C ┃10 ┃ 30.00 ┃
┣━━━━╋━━━━━╋━━━━╋━━━━━╋━━━╋━━━━┫
┃王五 ┃地址3 ┃75.00 ┃物品D ┃3 ┃ 75.00 ┃
┗━━━━┻━━━━━┻━━━━┻━━━━━┻━━━┻━━━━┛
1.首先两个数据集表A和表B必须是主-子表的关系
2.在主表A的语句中,需要包含B表的合计值和记录数,建议用Query查询,查询后的数据集如下
数据结构如下:
A表(客户信息): 序号,姓名,地址,物品数,总金额
b表(消费信息): 序号,客户序号,消费物品,数量,金额然好在FastReport上放一个主数据的Band,数据集为A表,上面显示
姓名 ┃地址 ┃消费合计
对应的Memo,
再在主数据的Band上放一个子报表(SubReport),数据集为B表,子报表上显示
消费物品 ┃数量 ┃ 金额
对应的Memo
最后是设定关于显示垂直居中的问题,这里假定子报表上的Band或Memo的高度是20
那么就在前面的“姓名 ┃地址 ┃消费合计”的对应的Memo里面写上一条代码就行了
begin
Height := 20 * [Query1."物品数"];
end;
注意要首先把这些Memo的对齐方式设定为“垂直居中”
直接把你所需要的资料放在一个MasterData上就可以了,
记住:
一个MasterDataBand可以放多行数据的,把思维转一下,
我以前也做过
我也遇到类似的问题,麻烦您也发给我一份:[email protected] 谢谢!