0

我用 Delphi7 开发了一个 Account 程序,用 Fastreport4 设计报告我有一个 Bill 表,它有 6 列(BillID、BillDate、BillDesc、BillPrice、DebitID、CreditID),其中 DebitID 和 CreditID 是整数值,并且与具有两个的 Account 表有关系列(AccID,AccName)。我想在 Delphi7 中使用 FastReport 创建一个报告,其中包含以下列的结果:

报告名称:Mr.x 的余额

BillID , BillDate , BillDesc , DebitPrice , CreditPrice , 剩余
-------------------------------------------------- ---------------
1 , 2012/01/22, 样本 Desc1, 100USD , 0 , -100USD
1 , 2012/01/22, 样本 Desc2, 0 , 100USD , 0USD

我认为如果我可以创建一个具有上述结果的 SQL 查询,那么创建报告就很容易。如果你有任何想法,请告诉我?

4

2 回答 2

2
select BillID , BillDate ,BillPrice,  BillDesc, b.accid, c.accid
from a Bill 
left outer join account b on a.DebitID = b.AccID
left outer join account c on a.CreditID = c.AccID

然后,您必须评估您的主数据/明细数据带的“打印前事件”。

if (b.accid <> '') then
  DebitPrice := BillPrice
else
  CreditPrice := BillPrice

注意:DebitPrice、CreditPrice 是全局变量

于 2013-02-22T00:06:59.240 回答
0

尝试子查询

select a.BillID, a.BillDate, a.BillDesc,
(select b.BillPrice from Bill b inner join Account c on b.DebitID=c.AccID
where b.BillID=a.BillID) as DebitPrice,
(select d.BillPrice from Bill d inner join Account e on d.CreditID=e.AccID
where d.BillID=a.BillID) as CreditPrice
from Bill a

我没有测试它,但我认为它会起作用,请告诉我

于 2013-02-22T00:45:26.110 回答