我正在解決由第三方創建的RDLC文件。他們在報表中有一些VB.NET代碼,並且詳細信息行中的表達式正在調用由代碼定義的函數。該函數不返回任何數據;它只是填充一個數組。細節行中沒有其他內容,並且行本身是隱藏的。在RDLC的隱藏詳細信息行中使用代碼
在摘要組的頁腳中,還有兩個表達式調用使用由第一個函數填充的數組的函數。如果詳細信息行可見,則這些功能正常工作。如果詳細信息行被隱藏,則表達式會返回#Error。它似乎沒有調用該函數,並且數組保持空着。
我修改了細節行儘可能小,但有相當多的行被返回,所以我得到了相當多的空白。 有沒有辦法隱藏細節行,仍然有從報告代碼調用函數?
我發現下面這個問題似乎是我之後的問題,但我不認爲受訪者會理解這個問題。
Hide a row in RDLC report without disabling the code execution
我使用Visual Studio 2013年我明白任何建議。謝謝。
編輯:
以下是報告的代碼段,如果它可以幫助澄清這一情況。
public dim TranDate(0) as DateTime
public dim CashFlow(0) as Double
public dim BFCashFlow(0) as Double
public dim RowCount as Int32=0
Public Function PrepairCashFlowArray(byval myTrandate as Date,ByVal myCashFlow as Double,ByVal myBFCashFlow as Double)
Redim Preserve TranDate(RowCount)
Redim Preserve CashFlow(RowCount)
Redim Preserve BFCashFlow(RowCount)
TranDate(RowCount)=myTrandate
CashFlow(RowCount)=myCashFlow
BFCashFlow(RowCount)=myBFCashFlow
RowCount =RowCount +1
End Function
Public Function GetNETIRR() as Double
Return ((IRR(CashFlow, -0.1)+1)^4-1) * 100
End Function
Public Function GetGROSSIRR() as Double
Return ((IRR(BFCashFlow, -0.1)+1)^4-1) * 100
End Function
下面是詳細的行表達式。
=code.PrepairCashFlowArray(Fields!perfdate.Value,Fields!cashflow.Value,Fields!bfcashflow.Value)
這裏有兩個摘要行表達式(它們是相似的)之一。
="Net of Fee IRR: ="&format(code.GetNETIRR(),"##,#0.#0")
我很困惑。如果您想要隱藏詳細信息行,爲什麼不建立一個查詢來提供摘要值並跳過vba代碼? – SMM
因爲IRR函數需要一個數組作爲第一個參數。 –