【问题标题】:How do I tell what the datasource is for a rdlc report?如何判断 rdlc 报告的数据源是什么?
【发布时间】:2021-08-15 02:02:05
【问题描述】:

我正在使用我继承的 RDLC 报告处理 C#、.net、WinForms 项目。我如何知道报告使用了哪个类?

我查看了数据源,但它列出了整个项目的所有数据源(类名),而不仅仅是这份报告。我查看了报告的属性,但什么也没看到。 Tablix 的属性说 DataSetName 是“DataSet1”,但这并没有告诉我任何信息,而且我没有在 DataSources 选项卡下看到“DataSet1”。

【问题讨论】:

    标签: winforms rdlc


    【解决方案1】:

    在 Visual Studio 中,您可以从 DataSet 创建 RDLC 报告并将其删除;不建议这样做,因为如果您需要向报告中添加字段,则需要重新创建整个 DataSet

    为了更好的理解报表数据源,可以在记事本中打开.rdlc文件,分析Datasets标签。

    <DataSets>
        <DataSet Name="DataSet1">
            <Fields>
                <Field Name="Column1">
                    <DataField>Column1</DataField>
                    <rd:TypeName>System.String</rd:TypeName>
                </Field>
                <Field Name="Column2">
                    <DataField>Column2</DataField>
                    <rd:TypeName>System.String</rd:TypeName>
                </Field>
                <Field Name="Column3">
                    <DataField>Column3</DataField>
                    <rd:TypeName>System.String</rd:TypeName>
                </Field>
            </Fields>
            <Query>
                <DataSourceName>DataSet1</DataSourceName>
                <CommandText>/* Local Query */</CommandText>
            </Query>
            <rd:DataSetInfo>
                <rd:DataSetName>DataSet1</rd:DataSetName>
                <rd:SchemaPath>C:\TEST\DataSet1.xsd</rd:SchemaPath>
                <rd:TableName>Table1</rd:TableName>
                <rd:TableAdapterFillMethod />
                <rd:TableAdapterGetDataMethod />
                <rd:TableAdapterName />
            </rd:DataSetInfo>
        </DataSet>
    </DataSets>
    

    【讨论】:

      【解决方案2】:

      要在报表设计器中查看数据源和数据集,请执行以下操作

      CTRL + ALT + D

      其中显示了您的数据源。它可以是一个数据集(多个表被查询并作为一个完整的“一组”表提供给报表。它也可以作为基于对象的数据源存在,例如具有正在报告的事物的集合/列表的类。

      我显示“OneTableWithinDataSet”的数据集部分表示报告中使用的一个此类表。您可以有一个包含多个 table.column 字段的报告。但是,报表 Tablix 控件通常绑定到单个主“表”,并且显示的所有记录都与之关联。

      如果您的系统发生了变化,例如正在准备数据并且您现在有了新列等,您应该能够右键单击数据源和各个表并“刷新”它们。如果您的架构未更新,您可能必须这样做。

      在我创建的运行报告的框架中,在运行基于从数据库查询的表的报告之前,我总是会将 XML/XSD 模式重新转储到输出文件夹。因此,当确实发生更改时,我可以将最新的内容复制到生产源 XML/XSD 位置,重新构建项目。然后我可以对报告进行“刷新”,新的列就会出现供我使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多