Crystal reports 使用按月份分组的特定类型的记录创建图表,并使用移动余额
我正试图从我的数据库(Sage CRM)中的一个表中创建一个水晶图表(条形图或线条图) 记录如下:Crystal reports 使用按月份分组的特定类型的记录创建图表,并使用移动余额,crystal-reports,sage-crm,Crystal Reports,Sage Crm,我正试图从我的数据库(Sage CRM)中的一个表中创建一个水晶图表(条形图或线条图) 记录如下: CustomerId Date Invoice Amount 1234 3/4/2013 Cust Invoice 3322.00 1234 3/4/2013 Payment 2445.00 1234
CustomerId Date Invoice Amount
1234 3/4/2013 Cust Invoice 3322.00
1234 3/4/2013 Payment 2445.00
1234 4/5/2013 A/c transaction 322.00
1234 5/6/2013 interest 32.00
1234 6/6/2013 payment 643.00
因此,我希望有一份符合以下标准的报告
我应该使用交叉表吗?如果是,我将如何进行选择以仅显示我想要的发票和日期范围 在报告中创建日期参数,以便在运行所需数据的报告时,立即提取时过滤掉记录 现在,您可以使用公式字段在报表中手动输入数据
对我来说,编写存储过程是一项有点繁忙的任务,因为您可以在报表中手工处理数据。我无意不尊重任何人的意见,但坦率地说,这是我的意见。在报告中创建日期参数,以便在您现在运行报告时,在提取时过滤掉记录,同时保留所需的数据 现在,您可以使用公式字段在报表中手动输入数据
对我来说,编写存储过程是一项有点繁忙的任务,因为您可以在报表中手工处理数据。我无意不尊重任何人的意见,但坦率地说,这是我的意见。如果是这样的话,我建议瑞秋·雪莉: 对于标准第1部分和第2部分,我认为使用公式可能比使用存储过程更容易 对于发票,右键单击发票字段,然后在“抑制”选项旁边的“常用”选项卡中的“格式字段”有一个公式按钮,输入以下内容
IF {YourInvoiceField} IN ["Payment", "Invoice", "Interest] THEN FALSE ELSE TRUE
对于您的日期要求,您需要使用选择公式。。。代码应该是这样的
{YourDateHere} > DateAdd ("yyyy", -1, CurrentDate) AND {YourDateHere} < CurrentDate
{YourDateHere}>DateAdd(“yyyy”、-1,CurrentDate)和{YourDateHere}
上面的代码基本上查看运行报表的日期和一年前的日期
对于你的移动平衡,你应该能够通过向导实现
编辑-另一种方法是使用参数字段(我个人不喜欢),这只是意味着每次刷新报告时都必须输入参数,它们是不言自明的,但您可以找到一个指南,在这种情况下,我推荐以下内容 对于标准第1部分和第2部分,我认为使用公式可能比使用存储过程更容易 对于发票,右键单击发票字段,然后在“抑制”选项旁边的“常用”选项卡中的“格式字段”有一个公式按钮,输入以下内容
IF {YourInvoiceField} IN ["Payment", "Invoice", "Interest] THEN FALSE ELSE TRUE
对于您的日期要求,您需要使用选择公式。。。代码应该是这样的
{YourDateHere} > DateAdd ("yyyy", -1, CurrentDate) AND {YourDateHere} < CurrentDate
{YourDateHere}>DateAdd(“yyyy”、-1,CurrentDate)和{YourDateHere}
上面的代码基本上查看运行报表的日期和一年前的日期
对于你的移动平衡,你应该能够通过向导实现
编辑-另一种方法是使用参数字段(我个人不喜欢),这只是意味着每次刷新报告时都必须输入参数,这些参数是不言自明的,但在花了将近一周的时间解决这个问题后,您可以找到一个指南,在一位专家的大力帮助下,我终于找到了解决办法 为了创建一个金额,即自时间开始以来公司、月份和发票类型的所有记录的总和,同时只显示去年的记录,我创建了一个SQL命令
Select
//All of the fields for the report,
movingBalance.Amount
from myInvoiceTable as mit
<join to any other tables for the report>
left join (
select customerID, sum(amount) as Amount
from myInvoiceTable
where Record_Type in ('Payment', 'Invoice','Interest')
and Date < {?Report Start Date}
group by customerID) movingBalance
on mit.customerID = movingBalance.customerID
where mit.RecordType in ('Payment', 'Invoice','Interest')
and mit.Date >= {?Report Start Date}
and mit.Date <= {?Report End Date}
选择
//报告的所有字段,
动结余
从myInvoiceTable作为mit
左连接(
选择customerID,总和(金额)作为金额
从myInvoiceTable
其中记录\输入(‘付款’、‘发票’、‘利息’)
和日期<{?报告开始日期}
按客户分组(ID)移动余额
在mit.customerID=movingBalance.customerID上
其中mit.RecordType输入('付款','发票','利息')
和mit.Date>={?报告开始日期}
和mit.Date在这个问题上花了将近一周的时间,在一位专家的大力帮助下,我终于找到了解决办法
为了创建一个金额,即自时间开始以来公司、月份和发票类型的所有记录的总和,同时只显示去年的记录,我创建了一个SQL命令
Select
//All of the fields for the report,
movingBalance.Amount
from myInvoiceTable as mit
<join to any other tables for the report>
left join (
select customerID, sum(amount) as Amount
from myInvoiceTable
where Record_Type in ('Payment', 'Invoice','Interest')
and Date < {?Report Start Date}
group by customerID) movingBalance
on mit.customerID = movingBalance.customerID
where mit.RecordType in ('Payment', 'Invoice','Interest')
and mit.Date >= {?Report Start Date}
and mit.Date <= {?Report End Date}
选择
//报告的所有字段,
动结余
从myInvoiceTable作为mit
左连接(
选择customerID,总和(金额)作为金额
从myInvoiceTable
其中记录\输入(‘付款’、‘发票’、‘利息’)
和日期<{?报告开始日期}
按客户分组(ID)移动余额
在mit.customerID=movingBalance.customerID上
其中mit.RecordType输入('付款','发票','利息')
和mit.Date>={?报告开始日期}
还有麻省理工学院。你能就你的设置多提一点建议吗?您是否能够在数据库上创建存储的进程?如果是这样,我建议创建一个带有一些@parameters的存储过程。这样,您可以在crystal中刷新报告时设置日期和发票类型。移动平衡可以很容易地创建使用运行的总字段。。。如果你能提供更多信息,我很乐意提供帮助。嗨,亚历克,情况是我有13周的工作经验,我是3周前开始工作的,没有人指导我,因为没有其他it人员(只有会计师知道得很少)。我正在安装wampserver以便