我有一个报告,它使用表达式为每个特定页面提供数据。我已经能够使报告显示正确的数据,但表达式所在的列不是必需的,表的其余部分将不适合页面。我需要摆脱列,但在报告的其他地方引用表达式。我尝试了一些方法,例如引用文本框但得到Scope错误。
我希望表达式显示绿线的位置,并使第一列不可见。
如何在所需位置引用此文本框的值?
当前的举报状态:
表达式="Load Number: " & Fields!TPLD_SYS_NO.Value & " | " & "Vehicle:" & Fields!TPLD_TPVH_REG.Value & " | " & Fields!TPLD_REF.Value
用于引用第一个表达式=ReportItems!TPLD_SYS_NO1.Value
错误The value expression for the textbox 'textbox8' refers to the report item 'TPLD_SYS_NO1'. Report item expressions can only refer to other report items in the same grouping scope or a containing grouping scope
答案 0 :(得分:0)
这是来自记忆,零测试我害怕所以它可能不太正确但它应该足够接近。
有两种选择。
如果报告只显示此表达式的一个值,那么您应该可以直接在“新”文本框中使用原始值表达式,但只有Fields!myField.value
,请替换这些使用FIRST(Fields!myField.Value, "myDataset")
,其中myDataset
表示数据集的名称(必须包含引号)。
如果对报表进行分组,则此表达式将计算为两个或更多不同的值,则需要在最低组中添加一行,该行将包含自身或子组中的所有必填字段。我想我会说这与你的Total
文本框的级别相同。所以Insert Row / Inside Group Above
然后使用上面的表达式,但没有数据集名称。您应该无法指定此项,或者如果遇到问题,请将其指定为新文本框所在的行组的名称。
答案 1 :(得分:0)
要获得超出范围的值,您可以创建自定义代码函数来存储值并按如下方式分配文本:
="Load Details" + Code.Save_TPLD_SYS_NO(Fields!TPLD_SYS_NO.Value)
当您需要在某个其他位置调用该值时,您可以引用一个返回保存值的函数,如:
=Code.GetSaved_TPLD_SYS_NO(true)
在自定义代码中,您可以创建一个保存值的变量,该函数将类似于:
注意:这是未经测试的,代码来自内存,您可能需要调整一下才能获得正确的语法。
Public Dim Shared TPLD_SYS_NO As String ="";
function Save_TPLD_SYS_NO(value As String) As String
Begin
TPLD_SYS_NO = value
Return ""
End Function
function DisplayAndSave_TPLD_SYS_NO(value As String) As String
Begin
TPLD_SYS_NO = value
Return value
End Function
function GetSaved_TPLD_SYS_NO(resetValue as Boolean) As String
Begin
Dim result As String = TPLD_SYS_NO
If resetValue=true Then
TPLD_SYS_NO = ""
End If
Return result
End Function