RDL C Отчет показывает только первый элемент в списке - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь изменить существующий файл rdl c в проекте C# Windows Forms. Отчет работает, но в нем отображается только первый элемент списка. Как заставить его отображать 1 страницу для каждого элемента в списке?

Набор данных моего отчета представляет собой список со следующими значениями:

enter image description here

При просмотре отчета в средстве просмотра отчетов я вижу только 1-й элемент в списке на одной странице вместо двух страниц с 1-м элементом на каждой странице.

enter image description here

Вот код для моего класса:

public class WorkOrderItemViewModel
{
    public string FilterSize { get; set; }
    public int OrderID { get; set; }
}

Вот где я вызываю отчет в программе просмотра отчетов:

private Microsoft.Reporting.WinForms.ReportViewer OrderSummaryReportViewer;
this.OrderSummaryReportViewer = new Microsoft.Reporting.WinForms.ReportViewer();
OrderSummaryReportViewer.LocalReport.DataSources.Clear();
OrderSummaryReportViewer.LocalReport.DataSources.Add(new ReportDataSource("WorkOrderItemsDataSet", workOrderDetailViewModel.WorkOrderItems));
this.OrderSummaryReportViewer.Dock = System.Windows.Forms.DockStyle.Fill;
reportDataSource1.Name = "WorkOrderItemsDataSet";
reportDataSource1.Value = null;
reportDataSource2.Name = "WorkOrderDetailDataSet";
reportDataSource2.Value = null;
this.OrderSummaryReportViewer.LocalReport.DataSources.Add(reportDataSource1);
this.OrderSummaryReportViewer.LocalReport.DataSources.Add(reportDataSource2);
this.OrderSummaryReportViewer.LocalReport.DisplayName = "Pick List";
this.OrderSummaryReportViewer.LocalReport.ReportEmbeddedResource = "NTSupply.CustomFilter.Reports.OrderSummaryReport.rdlc";
this.OrderSummaryReportViewer.Location = new System.Drawing.Point(0, 0);
this.OrderSummaryReportViewer.Name = "OrderSummaryReportViewer";
this.OrderSummaryReportViewer.Size = new System.Drawing.Size(960, 621);
this.OrderSummaryReportViewer.TabIndex = 0;
this.OrderSummaryReportViewer.RenderingComplete += new Microsoft.Reporting.WinForms.RenderingCompleteEventHandler(this.OrderSummaryReportViewer_RenderingComplete);
OrderSummaryReportViewer.RefreshReport();

Вот код rdl c в конструкторе: enter image description here

Вот код для rdl c:

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <Body>
    <ReportItems>
      <Textbox Name="Textbox21">
        <CanGrow>true</CanGrow>
        <KeepTogether>true</KeepTogether>
        <Paragraphs>
          <Paragraph>
            <TextRuns>
              <TextRun>
                <Value>Finished Good:</Value>
                <Style>
                  <FontSize>12pt</FontSize>
                  <FontWeight>Bold</FontWeight>
                  <TextDecoration>None</TextDecoration>
                </Style>
              </TextRun>
            </TextRuns>
            <Style>
              <TextAlign>Left</TextAlign>
            </Style>
          </Paragraph>
        </Paragraphs>
        <rd:DefaultName>Textbox11</rd:DefaultName>
        <Top>0.17187in</Top>
        <Left>0.05in</Left>
        <Height>0.25in</Height>
        <Width>1.33333in</Width>
        <Style>
          <Border>
            <Style>Solid</Style>
          </Border>
          <VerticalAlign>Bottom</VerticalAlign>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
      </Textbox>
      <Textbox Name="FilterSize1">
        <CanGrow>true</CanGrow>
        <KeepTogether>true</KeepTogether>
        <Paragraphs>
          <Paragraph>
            <TextRuns>
              <TextRun>
                <Value>=Fields!FilterSize.Value</Value>
                <Style />
              </TextRun>
            </TextRuns>
            <Style>
              <TextAlign>Left</TextAlign>
            </Style>
          </Paragraph>
        </Paragraphs>
        <rd:DefaultName>FilterSize1</rd:DefaultName>
        <Top>0.17187in</Top>
        <Left>1.45278in</Left>
        <Height>0.25in</Height>
        <Width>1.55208in</Width>
        <ZIndex>1</ZIndex>
        <Style>
          <Border>
            <Style>Solid</Style>
          </Border>
          <VerticalAlign>Bottom</VerticalAlign>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
      </Textbox>
    </ReportItems>
    <Height>0.625in</Height>
    <Style />
  </Body>
  <Width>8in</Width>
  <Page>
    <PageHeader>
      <Height>0.5625in</Height>
      <PrintOnFirstPage>true</PrintOnFirstPage>
      <PrintOnLastPage>true</PrintOnLastPage>
      <ReportItems>
        <Textbox Name="OrderID">
          <CanGrow>true</CanGrow>
          <KeepTogether>true</KeepTogether>
          <Paragraphs>
            <Paragraph>
              <TextRuns>
                <TextRun>
                  <Value>=Fields!OrderID.Value</Value>
                  <Style>
                    <FontSize>12pt</FontSize>
                  </Style>
                </TextRun>
              </TextRuns>
              <Style>
                <TextAlign>Left</TextAlign>
              </Style>
            </Paragraph>
          </Paragraphs>
          <rd:DefaultName>OrderID</rd:DefaultName>
          <Top>0.125in</Top>
          <Left>0.09861in</Left>
          <Height>0.25in</Height>
          <Width>2.90625in</Width>
          <Style>
            <Border>
              <Style>Solid</Style>
            </Border>
            <PaddingLeft>2pt</PaddingLeft>
            <PaddingRight>2pt</PaddingRight>
            <PaddingTop>2pt</PaddingTop>
            <PaddingBottom>2pt</PaddingBottom>
          </Style>
        </Textbox>
      </ReportItems>
      <Style>
        <Border>
          <Style>None</Style>
        </Border>
      </Style>
    </PageHeader>
    <LeftMargin>0.25in</LeftMargin>
    <RightMargin>0.25in</RightMargin>
    <TopMargin>0.25in</TopMargin>
    <BottomMargin>0.25in</BottomMargin>
    <Style />
  </Page>
  <AutoRefresh>0</AutoRefresh>
  <DataSources>
    <DataSource Name="NTSupplyCustomFilterViewModels">
      <ConnectionProperties>
        <DataProvider>System.Data.DataSet</DataProvider>
        <ConnectString>/* Local Connection */</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>af4b9e33-ffdc-42b0-82b7-cd63dceba934</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="WorkOrderItemsDataSet">
      <Query>
        <DataSourceName>NTSupplyCustomFilterViewModels</DataSourceName>
        <CommandText>/* Local Query */</CommandText>
      </Query>
        <Field Name="FilterSize">
          <DataField>FilterSize</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="OrderID">
          <DataField>OrderID</DataField>
          <rd:TypeName>System.Int32</rd:TypeName>
        </Field>
      </Fields>
      <rd:DataSetInfo>
        <rd:DataSetName>NTSupply.CustomFilter.ViewModels</rd:DataSetName>
        <rd:TableName>WorkOrderItemViewModel</rd:TableName>
        <rd:ObjectDataSourceType>NTSupply.CustomFilter.ViewModels.WorkOrderItemViewModel, CustomFilterApplication, Version=1.0.1.57, Culture=neutral, PublicKeyToken=null</rd:ObjectDataSourceType>
      </rd:DataSetInfo>
    </DataSet>
  </DataSets>
  <rd:ReportUnitType>Inch</rd:ReportUnitType>
  <rd:ReportID>a8be0d7c-0875-4915-91df-572c8fded42f</rd:ReportID>
</Report>

Редактировать:

Предложение было для добавления стол. Это работает, поскольку добавление таблицы и разрыв страницы отображают данные таблицы на нескольких страницах, но это не совсем то, что мне нужно. К сожалению, запрос не для таблицы данных, а отформатированный документ с разными метками. Например, добавление таблицы помещает вторую строку данных таблицы на следующую страницу, но метка и значения вне таблицы находятся только на первой странице. Мне нужны эти элементы на новой странице:

enter image description here

1 Ответ

1 голос
/ 28 апреля 2020

Report with Grouping and Page Break Settings

Не похоже, что в вашем отчете достаточно частей. Если вам нужна одна запись на страницу, вам действительно нужно добавить таблицу в ваш отчет. Оттуда добавьте «Группу», такую ​​как группа по продукту, клиенту, компании, что угодно. Когда у вас есть группа, вы можете добавить свои столбцы, чтобы показать нужные данные соответственно. Наконец, если вы щелкните правой кнопкой мыши / свойства в группе, вы увидите, где можно установить разрывы страниц. Из отчета, который вы перечислили, я не вижу таких индикаторов этих элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...