Как отчеты Microsoft (RDL) запрашивают данные? - PullRequest
3 голосов
/ 26 октября 2010

Я не создаю RDL с нуля, так что, возможно, это проблема - я работаю над уже подготовленными файлами.

MSDN утверждает, что CommandText в файле RDL может содержать запрос T-SQL.Хорошо, это я понимаю, но что еще оно может содержать?

Я спрашиваю, потому что формулировка ясно указывает, что вы можете поместить туда другое выражение. Так что, если я правильно понимаю, я могу посмотреть на код RDL (в Visual Studio, RMB в файле RDL, «код представления») и интересные части будут ...?

  • DataSourceName - это «ссылка» на базу данных через определения источников данных
  • CommandText - я думал, что это место для размещения запроса, как SELECT ... но из того, что я вижу, запросы не используются

Ответы [ 4 ]

3 голосов
/ 26 октября 2010

Служба отчетов загружает в него файл rdl и начинает анализ и чтение команды в соответствии с их разделами, такими как

источник данных, параметры отчета и т. Д.(если есть).начать использовать соединение с базой данных источника данных.выполнить команду query / sp.получить данные и хранить в отдельных полях данных, которые также упоминаются в rdl.связывает их значения с элементами управления (текстовое поле, столбцы сетки и т. д.), если в него записано какое-либо выражение, также выполните их.

Создайте вывод (html / pdf).

И вот, пожалуйста.

Я просто пытался объяснить короткими и простыми словами.Вы можете проверить MSDN для получения полной информации.

С уважением,

Мажар Карими

2 голосов
/ 26 октября 2010

Вы можете создавать отчеты вручную и заполнять их любыми данными, которые вам нужны.

Sth like:

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";
1 голос
/ 15 ноября 2016

Изначально я не был уверен, почему и OP, и @Matt читают XML напрямую, а не редактируют запрос в Visual Studio (я прибегаю к этому только в крайних случаях).Но теперь я думаю, что вы, возможно, потерпели неудачу из-за отсутствия отсутствующей панели «Данные отчета» .

Откройте отчет в Visual Studio BIDS как обычно, затем в меню «Вид» выберите «Данные отчета».Если его там нет, щелкните где-нибудь на холсте отчета , тогда он должен появиться.В появившейся панели «Данные отчета» вас интересуют источники данных (откуда поступают данные?) И наборы данных (что такое запросы, параметры, выражения?).

1 голос
/ 10 ноября 2016

Файл отчета *.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.Может быть, щедрость , которую я начал, помогает здесь (кому-то нравится зарабатывать 50 очков репутации)?

...