3

我不是从头开始创建 RDL,所以这可能是个问题——我在处理已经准备好的文件。

MSDN 声明 RDL 文件中的 CommandText 可以包含 T-SQL 查询。好的,我明白了,但它还能包含什么?

我问是因为措辞清楚地表明你可以在那里放一些其他表达所以如果我理解正确,我可以查看 RDL 代码(在 Visual Studio 中,RDL 文件上的 RMB,“查看代码”),有趣的部分将是.. .?

  • DataSourceName - 这是通过数据源定义到数据库的“链接”
  • CommandText——我认为这是放置查询的地方,比如 SELECT... 但据我所知,没有使用任何查询
4

4 回答 4

3

报告服务,将 rdl 文件加载到其中,并根据它们的部分开始解析和读取命令,例如

数据源、报表参数等

获取 params 的值(如果有)。开始使用数据源数据库连接。执行 query/sp 命令。获取数据,并存储在 rdl 中也提到的单独数据字段中。将它们的值与控件(文本框、网格列等)绑定,如果有任何表达式写入其中,也执行它们。

生成输出(html/pdf)。

你去吧。

我只是试图用简短的语言来解释。您可以查看 msdn 以获取完整的详细信息。

问候,

马扎尔·卡里米

于 2010-10-26T13:31:00.923 回答
2

您可以手动创建报告并用您想要的任何数据填充它们。

某事喜欢:

ReportDataSource reportDataSource = new ReportDataSource();
reportViewer.Reset();
reportDataSource.Name = "DataSetOdczyty_klienci_adresy";
reportDataSource.Value = klienciadresyBindingSource;
reportViewer.LocalReport.DataSources.Add(reportDataSource);
reportViewer.LocalReport.ReportEmbeddedResource = "Wodociagi.Reports.ReportListaKlientow.rdlc";
于 2010-10-26T12:35:03.470 回答
1

您可以使用Notepad++*.rdl等 XML 编辑器 打开报告文件。然后,搜索,您将找到报告中使用的数据集。<DataSets>

  • 每个数据集的字段名称都在<Fields>section
  • <Query>每个数据集的部分中,您可以找到<CommandText><QueryParameters>如下例所示

例子:

  <Query>
    <DataSourceName>MyDataSource</DataSourceName>
    <CommandType>StoredProcedure</CommandType>
    <CommandText>usp_QueryCustomers</CommandText>
    <QueryParameters>
      <QueryParameter Name="@CustomerId">
        <Value>=Parameters!PersSysId.Value</Value>
      </QueryParameter>
      <QueryParameter Name="@RowsCnt">
        <Value>=Parameters!RowsCnt.Value</Value>
      </QueryParameter>
    </QueryParameters>
  </Query>

我没有找到在 Visual Studio 的报告编辑器中轻松查看的方法。也许我开始的赏金在这里有所帮助(有人喜欢赚取 50 声望点)吗?

于 2016-11-10T10:12:57.997 回答
1

最初,我不确定为什么 OP 和 @Matt 都直接读取 XML,而不是在 Visual Studio 中编辑查询(我只在极端情况下使用)。但是现在我认为您可能已经失败了缺少“报告数据”窗格的受害者。

像往常一样在 Visual Studio BIDS 中打开报表,然后从“查看”菜单中选择“报表数据”。如果它不存在,请在任何地方单击报告画布,然后它应该会出现。在将出现的“报告数据”窗格中,您对数据源(数据来自哪里?)和数据集(查询、参数、表达式是什么?)感兴趣。

于 2016-11-15T14:00:50.517 回答