代码之家  ›  专栏  ›  技术社区  ›  greenoldman

Microsoft报表(RDL)如何查询数据?

  •  3
  • greenoldman  · 技术社区  · 14 年前

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

    msdn声明rdl文件中的commandtext可以包含t-sql查询。好吧,我明白了,但它还能包含什么呢?

    我问是因为这句话清楚地表明你可以在那里加上其他的表达方式 所以,如果我理解正确,我可以查看rdl代码(在visual studio中,在rdl文件中是人民币,“查看代码”),感兴趣的部分是…?

    • datasourcename——这是通过数据源定义到数据库的“链接”
    • CommandText——我以为这是放置查询的地方,比如select……但据我所见没有使用任何查询
    4 回复  |  直到 14 年前
        1
  •  3
  •   Mazhar KarimiMazhar Karimi    14 年前

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

    数据源、报表参数等。

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

    生成输出(html/pdf)。

    就这样。

    我只是想用简单明了的话来解释。您可以查看msdn以获得完整的详细信息。

    当做,

    马扎尔卡里米

        2
  •  2
  •   kubal5003    14 年前

    您可以手动创建报表,并使用您希望的任何数据填充报表。

    例如:

    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";
    
        3
  •  1
  •   Community CDub    7 年前

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

    • 每个数据集的字段名都在 <Fields> 部分
    • <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的报表编辑器中轻松地看到这一点。也许是 bounty 我已经开始在这里帮忙了(有人想赢得50点信誉点吗)?

        4
  •  1
  •   Community CDub    7 年前

    最初,我不知道为什么op和@matt都在直接读取xml,而不是在visual studio中编辑查询(我只在极端情况下使用它)。但现在我想你可能是 missing "Report Data" pane 是的。

    像平常一样在visual studio中打开报表,然后从“视图”菜单中选择“报表数据”。如果它不在那里, 单击报表画布上的任意位置 ,然后应该会出现。在即将出现的“报表数据”窗格中,您对数据源(数据来自何处?)和数据集(什么是查询、参数、表达式?)是的。