RDLC报告仅显示列表中的第一项

问题描述 投票:1回答:1

我正在尝试修改C#Windows Forms项目中的现有rdlc文件。该报告可以工作,但它仅显示列表中的第一项。如何使列表中的每个项目显示一页?

我的报告的数据集是具有这些值的列表:

enter image description here

[当我在报告查看器中查看报告时,我只在一页上看到列表中的第一项,而不是两页,每页只看到一项。

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();

这是设计器中的rdlc:enter image description here

这是rdlc的代码:

<?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

c# winforms rdlc reportviewer dynamic-rdlc-generation
1个回答
1
投票

Report with Grouping and Page Break Settings

看来您的报告似乎没有足够的内容。如果您希望每页一条记录,则确实需要在报表中添加一个表。从那里,添加一个“组”,例如按产品,客户,公司等分组。拥有该组后,您可以添加列以分别显示所需的数据。最后,如果在组上的/属性上单击鼠标右键,则会看到可以在其中设置分页符的位置。从您列出的报告中,我看不到这些元素的任何此类指标。

© www.soinside.com 2019 - 2024. All rights reserved.