Estoy intentando representar una relación padre-hijo-nieto en un informe RDLC de SQL Server Reporting Services. El informe se procesa en un control de visor de informes alojado en una aplicación de WPF. Estoy usando un conjunto de datos CLR basado en IEnumberable <> y vinculando las fuentes de datos del reporter a mis conjuntos de datos en una máquina virtual.Saltos de página en subinformes de RDLC no aparecen
Quiero que cada entidad hija se muestre en una página nueva (y las páginas se expanden si hay bastantes nietos en el conjunto de datos).
Actualmente tengo un informe maestro para la entidad principal, un subinforme para el niño y otro subinforme para los nietos.
Cada informe está utilizando un Tablix para diseñar los campos de la clase CLR correspondiente en la página. He asignado un grupo en el Tablix del subinforme del niño y he configurado las divisiones de página en StartAndEnd (es decir, las 3 casillas de verificación están seleccionadas en el cuadro de diálogo Propiedades del grupo).
Me he apagado, manténganse juntos en todas partes donde pueda encontrarlo.
Desafortunadamente, los saltos de página se ignoran cuando veo el informe en el modo Diseño de impresión, o exporto a PDF y los elementos secundarios en el subinforme fluyen juntos sin saltos de página que los separan.
He visto varios problemas en SO y MSDN hablando de saltos de página no deseados, pero no he encontrado ninguna discusión sobre saltos de página faltantes.
¿Alguien sabe cómo forzar que los saltos de página aparezcan en los subinformes? Si no es así, ¿existe una forma mejor/alternativa de representar datos de padres/hijos como este sin utilizar un subinforme?
Gracias por cualquier información que pueda ofrecer.
Fwiw, siguientes son algunos extractos de la RDLC que podría ser relavent:
Padres Informe:
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Rectangle Name="Rectangle1">
<ReportItems>
<Subreport Name="InvoicePageDetail">
<ReportName>InvoicePageDetail</ReportName>
<Parameters>
<Parameter Name="InvoiceID">
<Value>=Fields!InvoiceID.Value</Value>
</Parameter>
<Parameter Name="CustID">
<Value>=Fields!CustID.Value</Value>
</Parameter>
</Parameters>
<Height>0.25in</Height>
<Width>6.4in</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Subreport>
</ReportItems>
<PageBreak>
<BreakLocation>End</BreakLocation>
</PageBreak>
</Rectangle>
<ColSpan>3</ColSpan>
</CellContents>
</TablixCell>
<TablixCell />
<TablixCell />
</TablixCells>
</TablixRow>
Sub Informe:
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition">
<DataSources>
<DataSource Name="ISCBillingDataModel">
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
<rd:DataSourceID>50ce54a7-32e3-46df-bd7c-97f194ba4390</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets> snip...
</DataSets>
<Body>
<ReportItems>
<Tablix Name="Tablix1">
<TablixBody>
<TablixColumns> snip...
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Subreport Name="InvoiceFixedFeeDetail">
<ReportName>InvoiceFixedFeeDetail</ReportName>
<Parameters>
<Parameter Name="InvoicePageID">
<Value>=Fields!InvoicePageID.Value</Value>
</Parameter>
</Parameters>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Subreport>
<ColSpan>3</ColSpan>
</CellContents>
</TablixCell>
<TablixCell />
<TablixCell />
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<Group Name="Group1">
<GroupExpressions>
<GroupExpression>=Fields!InvoicePageID.Value</GroupExpression>
</GroupExpressions>
<PageBreak>
<BreakLocation>StartAndEnd</BreakLocation>
</PageBreak>
</Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!InvoicePageID.Value</Value>
</SortExpression>
</SortExpressions>
<TablixHeader>
<Size>0.03125in</Size>
<CellContents>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<CanShrink>true</CanShrink>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox11</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>None</Style>
</Border>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers>
<TablixMember>
<Group Name="Details">
<PageBreak>
<BreakLocation>StartAndEnd</BreakLocation>
</PageBreak>
</Group>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixMember>
</TablixMembers>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>pages</DataSetName>
<PageBreak>
<BreakLocation>Start</BreakLocation>
</PageBreak>
<Height>3.45in</Height>
<Width>6.38125in</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>3.6in</Height>
<Style>
<Border>
<Color>Green</Color>
<Style>None</Style>
</Border>
</Style>
</Body>
<ReportParameters>
<ReportParameter Name="InvoiceID">
<DataType>Integer</DataType>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="CustID">
<DataType>String</DataType>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<Width>6.43125in</Width>
<Page>
<LeftMargin>1in</LeftMargin>
<RightMargin>1in</RightMargin>
<TopMargin>1in</TopMargin>
<BottomMargin>1in</BottomMargin>
<Style />
</Page>
<rd:ReportID>a360303c-713c-4baf-b9ce-32ae0997c855</rd:ReportID>
<rd:ReportUnitType>Inch</rd:ReportUnitType>
</Report>
Gracias por el bounty jball. ¿Estás experimentando un problema similar? Hasta ahora, la única respuesta que se me ocurre es desnormalizar completamente el conjunto de datos. Todavía estoy esperando que alguien pueda sugerir una mejor respuesta. –
Tuve un problema similar y terminé con el mismo tipo de solución que usaste. Aquí está la esperanza de que alguien tenga una mejor idea. – jball