自动换行到长文本并显示在SSRS发票报表中的固定表格中

时间:2017-03-29 03:25:36

标签: sql sql-server vb.net reporting-services

我试图在SSRS中创建发票报告。我想将长数据包装到我的SSRS专栏中。同时我还想保留固定的表格布局。如果没有足够的数据来维护表格布局,我必须添加空行/空行。 我现在所拥有的是我可以通过使用循环和临时故事来使用sql存储过程来提供空行。一切都很好,直到描述更长一点的文本。在这种情况下,需要下到下一行/行,以便可以完全看到它。但问题是,如果它这样做,我将错误地计算并且不能像以前那样维护表格布局。有一种简单的方法,只是为每行提供高柱高 - 结果是不利的。请给我一些解决方法或解决方案或见解,无论如何。非常感谢!
最初的想法改编自https://www.intertech.com/Blog/use-sql-server-reporting-services-to-generate-an-invoice-document/ 如果我将Can Grow Properties设置为True,那么这就是我得到的。在这里,我们得到了不一致的表格布局。 enter image description here 如果我将Can Grow Properties设置为False,这就是我得到的。在这里,表格布局是可以接受的,但文本被切断了。 enter image description here

> 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

0 个答案:

没有答案