Winforms RDLC查找不工作
我有一个Winforms RDLC查找不工作,winforms,rdlc,reportviewer,Winforms,Rdlc,Reportviewer,我有一个表,其中有一组带有整数的数据,这些整数标记了在另一个数据集中查找字符串描述的位置。我尝试使用: =LOOKUP( CINT(Fields!LTC_Leak.Value), CINT(Fields!LTC_Leak.Value), Fields!LTC_LeakDesc.Value, "LeakCheckTypes" ) 这应该使用详细信息数据集中的整数字段LTC\U Leak。该表也有范围,并在“LeakC
表
,其中有一组带有整数的数据,这些整数标记了在另一个数据集
中查找字符串描述的位置。我尝试使用:
=LOOKUP(
CINT(Fields!LTC_Leak.Value),
CINT(Fields!LTC_Leak.Value),
Fields!LTC_LeakDesc.Value,
"LeakCheckTypes"
)
这应该使用详细信息数据集中的整数字段LTC\U Leak
。该表也有范围,并在“LeakCheckTypes”
数据集中查找该行的描述,但我一直得到错误:
The Value expression for the text box 'LeakCheckType' refers to the field 'LTC_LeakDesc'. Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope.
我已经使用调试器进行了检查,所有的数据集都存在,命名正确,并且具有所有正确的数据。有人知道我做错了什么吗
从我使用的datasetmodel添加xml(缩短为受影响的表)
RDLC文件中的XML:
<DataSet Name="LeakCheckTypes">
<Query>
<DataSourceName>OprData</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="LTC_Leak">
<DataField>LTC_Leak</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="LTC_LeakDesc">
<DataField>LTC_LeakDesc</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Leak_Tolerance">
<DataField>Leak_Tolerance</DataField>
<rd:TypeName>System.Decimal</rd:TypeName>
</Field>
<Field Name="LC_Length">
<DataField>LC_Length</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="VTA">
<DataField>VTA</DataField>
<rd:TypeName>System.Boolean</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>OprData</rd:DataSetName>
<rd:SchemaPath>C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd</rd:SchemaPath>
<rd:TableName>LeakCheckTypes</rd:TableName>
<rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>
<rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>
<rd:TableAdapterName>LeakCheckTypesTableAdapter</rd:TableAdapterName>
</rd:DataSetInfo>
</DataSet>
<DataSet Name="Details">
<Query>
<DataSourceName>OprData</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="Row">
<DataField>Row</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="OPRID">
<DataField>OPRID</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="NAME">
<DataField>NAME</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_Cure">
<DataField>LTC_Cure</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_Leak">
<DataField>LTC_Leak</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumCheck">
<DataField>LTC_VacuumCheck</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumInterval">
<DataField>LTC_VacuumInterval</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumCheckType">
<DataField>LTC_VacuumCheckType</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>OprData</rd:DataSetName>
<rd:SchemaPath>C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd</rd:SchemaPath>
<rd:TableName>Details</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>
OprData
/*本地查询*/
LTC_泄漏
System.Int32
LTC_LeakDesc
系统字符串
泄漏容限
十进制
LC_长度
System.Int32
VTA
系统布尔
OprData
C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd
漏检类型
填满
获取数据
LeakCheckTypeStableApter
OprData
/*本地查询*/
一行
系统字符串
奥普拉德
系统字符串
名称
系统字符串
长期护理
系统字符串
LTC_泄漏
系统字符串
LTC_真空检查
系统字符串
LTC_真空计
系统字符串
LTC_真空检查类型
系统字符串
OprData
C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd
细节
注意:我也尝试过在字段上不使用CINT(),它给出了相同的错误。该错误使我认为第二个数据集中不存在字段“LTC_LeakDesc”(“LeakCheckTypes”)。检查您的数据集定义(xml)和基础查询。奇怪的是,我使用调试器进行了检查,以确保列和数据集名称都正确并且包含数据。从我在发布这个问题之前的研究来看,这似乎是不应该发生的事情,但我不知道是什么导致了它,因为所有的名字都是正确的。我甚至尝试过删除和重新创建数据集,以及它们在整个应用程序中的使用方式,但没有解决任何错误。您能否为您的问题添加包含报告数据源定义的XML部分?您是否能够将详细数据集中的LTC_泄漏字段转换为数据库中的INT并尝试使用该字段。它可能是导致报告引擎问题的字符串。
<DataSet Name="LeakCheckTypes">
<Query>
<DataSourceName>OprData</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="LTC_Leak">
<DataField>LTC_Leak</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="LTC_LeakDesc">
<DataField>LTC_LeakDesc</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Leak_Tolerance">
<DataField>Leak_Tolerance</DataField>
<rd:TypeName>System.Decimal</rd:TypeName>
</Field>
<Field Name="LC_Length">
<DataField>LC_Length</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
<Field Name="VTA">
<DataField>VTA</DataField>
<rd:TypeName>System.Boolean</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>OprData</rd:DataSetName>
<rd:SchemaPath>C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd</rd:SchemaPath>
<rd:TableName>LeakCheckTypes</rd:TableName>
<rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>
<rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>
<rd:TableAdapterName>LeakCheckTypesTableAdapter</rd:TableAdapterName>
</rd:DataSetInfo>
</DataSet>
<DataSet Name="Details">
<Query>
<DataSourceName>OprData</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="Row">
<DataField>Row</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="OPRID">
<DataField>OPRID</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="NAME">
<DataField>NAME</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_Cure">
<DataField>LTC_Cure</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_Leak">
<DataField>LTC_Leak</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumCheck">
<DataField>LTC_VacuumCheck</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumInterval">
<DataField>LTC_VacuumInterval</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="LTC_VacuumCheckType">
<DataField>LTC_VacuumCheckType</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>OprData</rd:DataSetName>
<rd:SchemaPath>C:\Users\aridder\Desktop\AC Recipe Builder\AC Recipe Builder\OprReports\OprData.xsd</rd:SchemaPath>
<rd:TableName>Details</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>