我试图在SSRS中创建发票报告。我想将长数据包装到我的SSRS专栏中。同时我还想保留固定的表格布局。如果没有足够的数据来维护表格布局,我必须添加空行/空行。
我现在所拥有的是我可以通过使用循环和临时故事来使用sql存储过程来提供空行。一切都很好,直到描述更长一点的文本。在这种情况下,需要下到下一行/行,以便可以完全看到它。但问题是,如果它这样做,我将错误地计算并且不能像以前那样维护表格布局。有一种简单的方法,只是为每行提供高柱高 - 结果是不利的。请给我一些解决方法或解决方案或见解,无论如何。非常感谢!
最初的想法改编自https://www.intertech.com/Blog/use-sql-server-reporting-services-to-generate-an-invoice-document/
如果我将Can Grow Properties设置为True,那么这就是我得到的。在这里,我们得到了不一致的表格布局。
如果我将Can Grow Properties设置为False,这就是我得到的。在这里,表格布局是可以接受的,但文本被切断了。
> SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE
> [dbo].[uspInvoice] ( @InLinesPerPage int ---determine how many rows
> to display per page ) AS DECLARE @TotalRows int DECLARE @Remainder int
> DECLARE @NumPages int DECLARE @NextPageRows int set @TotalRows= 0
> SELECT ROW_NUMBER() OVER( ORDER BY InvProduct)as InvoiceRow,
> CoID,
> InvNo,
> InvProduct,
> InvDesc,
> InvQuantity,
> InvUnitPrice,
> InvAmt
>
> into #tempInvoice FROM Invoice_Products1
>
>
>
> SET @TotalRows= @@ROWCOUNT IF @TotalRows=0 BEGIN WHILE @TotalRows <
> @InLinesPerPage -- Add Blank Rows will generate blank invoice.
> BEGIN
> SET @TotalRows= @TotalRows+1
> INSERT #tempInvoice
> (InvoiceRow,
> CoID,
> InvNo,
> InvProduct,
> InvDesc,
> InvQuantity,
> InvUnitPrice,
> InvAmt
> )
> VALUES
> (@TotalRows
> ,''
> ,0
> ,''
> ,''
> ,''
>
> ,null
> ,null
> ) END END ELSE BEGIN SET @Remainder = @TotalRows%@InLinesPerPage -- get remainder IF @Remainder !=0
> BEGIN -- Get the current page increase by 1 becasue we have a
> remainder. SET @NumPages = @TotalRows/@InLinesPerPage +1 SET
> @NextPageRows = @NumPages * @InLinesPerPage WHILE @TotalRows <
> @NextPageRows -- Add Blank Rows BEGIN
> SET @TotalRows= @TotalRows+1
> INSERT #tempInvoice
> (InvoiceRow,
> CoID,
> InvNo,
> InvProduct,
> InvDesc,
> InvQuantity,
> InvUnitPrice,
> InvAmt
> )
> VALUES
> (@TotalRows
> ,''
> ,0
> ,''
> ,''
> ,''
> ,null
> ,null
> ) END END END SELECT * from #tempInvoice order by InvoiceRow asc return