Ich bin eine RDLC-Datei, die von einer Drittpartei erstellt wird, eine Problembehandlung. Sie haben einen VB.NET-Code im Bericht und ein Ausdruck in der Detailzeile ruft eine Funktion auf, die durch den Code definiert wird. Die Funktion gibt keine Daten zurück; Es füllt nur ein Array. Es gibt nichts anderes in der Detailzeile und die Zeile selbst ist ausgeblendet.Verwenden Sie Code in einer versteckten Detailzeile von RDLC
In der Fußzeile einer Zusammenfassungsgruppe gibt es zwei weitere Ausdrücke, die Funktionen aufrufen, die das von der ersten Funktion aufgefüllte Array verwenden. Wenn die Detailzeile sichtbar ist, funktionieren diese Funktionen einwandfrei. Wenn die Detailzeile ausgeblendet ist, geben die Ausdrücke #Error zurück. Es scheint nicht die Funktion aufzurufen, und das Array bleibt leer.
Ich habe die Detailzeile so klein wie möglich gemacht, aber es werden einige Zeilen zurückgegeben, so dass ich ziemlich viel Leerraum bekomme. Gibt es eine Möglichkeit, die Detailzeile auszublenden und trotzdem die Funktion aus dem Berichtscode aufzurufen?
Ich fand die folgende Frage, die schien, was ich suchte, aber ich glaube nicht, dass die Befragten die Frage verstanden.
Hide a row in RDLC report without disabling the code execution
I 2013 Visual Studio bin mit schätze ich irgendwelche Vorschläge. Vielen Dank.
EDIT:
Hier ist der Bericht-Code Abschnitt, wenn es die Situation hilft zu klären.
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
Hier ist der detaillierte Zeilenausdruck.
=code.PrepairCashFlowArray(Fields!perfdate.Value,Fields!cashflow.Value,Fields!bfcashflow.Value)
Hier ist einer der beiden Zusammenfassungszeile Ausdrücke (sie sind ähnlich).
="Net of Fee IRR: ="&format(code.GetNETIRR(),"##,#0.#0")
Ich bin verwirrt. Wenn Sie die Detailzeilen ausblenden möchten, warum würden Sie nicht einfach eine Abfrage erstellen, die Ihnen die Zusammenfassungswerte liefert und den VBA-Code überspringt? – SMM
Da die IRR-Funktion ein Array als erstes Argument benötigt. –