我使用VB.Net 2012在Crystal Report中创建了以下报告。开放平衡& NET TOTAL行不在我的报告中,但我的问题就在那里。
User-Class
我在TR_ID | TR_DATE |DETAILS | EXPENSE | INCOME | BALANCE
OPENING BALANCE 0.00
1005 08/24/2015 CASH RTN 0.00 10,000.00 10,000.00
1013 08/25/2015 PURCHASE 3,500.00 0.00 6,500.00
1014 08/25/2015 DEPOSIT 5,000.00 0.00 1,500.00
1013 08/27/2015 SALES 0.00 4,000.00 5,500.00
NET TOTAL 5,500.00
和08/25/2015
&日期范围内过滤了特定记录。它运作良好。我的问题是如何获得特定日期08/26/2015
的先前余额(10000)" OPENING BALANCE"行和总净余额" NET TOTAL"行?
根据上面给出的数据,报告显示了4条记录,不包括OPENING BALANCE&净总值。我想添加OPENING BALANCE行以显示每个供应商的期初余额'我打开报告时的帐户。如果我在日期范围内查看特定客户的记录,则OPENING BALANCE行应显示之前的余额,直到给定日期标准的开始日期为止。例如:如果按照以上数据选择2015年8月25日至2015年8月26日期间的记录,报告将显示两个特定记录(第2和第3个)。但我希望显示之前的余额10,000或星级日期(2015年8月25日)以上的总金额应显示在OPENING BALANCE行中。以及该供应商的子总量 应显示在最后一个NET TOTAL行中。所以,请帮助我,公式将如何发生&怎么办。
谢谢
我期待你的帮助 谢谢
答案 0 :(得分:1)
对我来说不太清楚,但您可以尝试使用变量直接从报告中获取值。
打开报告后,您可以在CrystalReport选项中输入并选择“选择专家 - 保存的数据”。
您必须使用左侧面板中的“公式字段”创建公式,并使用前3个窗口构建公式:
所以,你必须
你需要做什么? 对不起,如果我无法准确理解你的需求。 拥抱!
<强>更新强> 您可以在报告中创建一个SUM公式。
要获取最后/旧余额,您可能必须从代码中获取它作为PARAMETER传递。要执行此操作,请在报告中创建参数:在FIELD EXPLORER中可以选择PARAMETER FIELD。创建它之后,请使用以下代码:
Dim MyCrystalReportt As New ReportDocument()
MyCrystalReportt.Load(Application.StartupPath & "\ReportSample.rpt\")
MyCrystalReportt.SetDatabaseLogon(UserID, Password, DataSource, InitialCatalog)
Dim myLogonInfo As New TableLogOnInfo()
Dim myTable As Table
For Each myTable In MyCrystalReportt.Database.Tables
myLogonInfo = myTable.LogOnInfo
myLogonInfo.ConnectionInfo.ServerName = DataSource
myLogonInfo.ConnectionInfo.DatabaseName = InitialCatalog
myLogonInfo.ConnectionInfo.UserID = UserID
myLogonInfo.ConnectionInfo.Password = Password
myTable.ApplyLogOnInfo(myLogonInfo)
Next
MyCrystalReportt.SetParameterValue("Data1", LastBalance.Value.ToString)
ReportsForm.CrystalReportViewer1.Reportsource = MyCrystalReport
ReportsForm.show
备注:强>
我希望它可以帮到你。 祝你好运。