如何在SSRS中修復表格大小? 我試過這 How to set Fixed Rows of Tablix in SSRS 但是,我關心的是如果數據行小於5,在報表中可以添加空白行,例如15行可以適合。而不是通過靜態插入新行,我想要動態顯示它。如在,我們並不總是知道有多少數據行將在那裏。 我可以考慮用表達式設置行可視性。 但是,我不太清楚,我想更多地瞭解它。 另一種替代方式可能是使用存儲過程?我想更多地瞭解它。 我希望對此事有所瞭解。 謝謝SSRS固定Tablix /在下面添加空白行
回答
@ bot的答案就是壁櫥。在網上找到之後,我偶然發現了一篇文章,但是您必須使用存儲過程(僅適用於tablix的單獨數據集),計算出行數/行數以填充到Tablix中,以滿足您的期望結果。 P.S:我不記得確切的URL參考。
存儲過程樣本:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[uspPurchaseLines]
(
[email protected] int
@InLinesPerPage int
)
AS
DECLARE @TotalRows int
DECLARE @Remainder int
DECLARE @NumPages int
DECLARE @NextPageRows int
set @TotalRows= 0
SELECT
ROW_NUMBER() OVER(ORDER BY P_id)as InvoiceRow,
CusID,
P_id,
Inv_No,
P_Desc,
Del_date,
Qty,
Pack_size,
U_Prize,
Amt
into #tempInvoice
FROM Purchase_Details
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,
CusID,
P_id,
Inv_No,
P_Desc,
Del_date,
Qty,
Pack_size,
U_Prize,
Amt
)
VALUES
(@TotalRows
--,@InInvoiceNbr
,''
,''
,0
,''
,NULL
,0
,''
,0
,0
)
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,
CusID,
P_id,
Inv_No,
P_Desc,
Del_date,
Qty,
Pack_size,
U_Prize,
Amt
)
VALUES
(@TotalRows
--,@InInvoiceNbr
,''
,''
,0
,NULL
,''
,0
,''
,0
,0
)
END
END
END
SELECT * from #tempInvoice order by InvoiceRow asc
return
我曾經應用添加額外的行的邏輯,其中需要設計發票或字母,並應始終跨越完整頁面,而不考慮細節線。不過,由於各種問題,我很快改變了我的方法。如果您還在創建信件或發票的過程中,請繼續閱讀;我不修復表格大小,但是我修復了報表佈局。這種方式即使行數較少或行數較多,SSRS也能正確處理數據。說明如下,
我們假設你正在創建一個寬8.5英寸,高11英寸的字母。假設你已經從所有側面留下了0.25英寸的邊界;這會給你留下8英寸的寬度和10.5英寸的高度。頁面頁眉1.5英寸,頁腳10.5英寸高1英寸。這留下8英寸的身高。明確地將身體的高度固定爲8英寸。一旦完成,SSRS理解它必須生成10.5英寸的頁面,而不管來自放置在表格中的細節線。我希望這有幫助。乾杯!
P.S.這種方法只會給出PDF輸出的預期結果。
感謝您分享您的方法。我會試一試,讓你知道。 – LittleBirdy
我已經嘗試過你的方法,但我想要顯示下面的空行,而不管數據行的數量。現在,它停止在數據行之後。因此,我爲什麼要報告佈局/表格固定。無論如何,我可以動態地添加空白行? – LittleBirdy
SSRS有兩種不同的渲染器用於屏幕輸出和pdf輸出。您不會在屏幕上看到效果,但PDF輸出會顯示您預期的結果。在我的情況下,通常客戶不關心屏幕輸出,但他們希望信件/發票的期望的pdf輸出發送給他們的客戶。對不起,我忘了在答案中提到這一點。我會更新我的答案。 –
在這個答案的最大行5,因爲15位長的數據行數爲3
目標輸出:
*我只有3個數據,所以剩下的另一
:因爲最大行5
解決兩行應該是空的1.首先創建一個表格。如果需要添加標題/列名稱。
2.參考您的餐桌上的數據集(右鍵點擊左上角最表,然後選擇Tablix屬性)
- 在一般選擇的數據集名稱下拉數據集,然後單擊確定。
- 數據行上添加你只是正常的方式需要添加數據
- 現在,在最左邊的數據行權單擊>插入行>以下的外部組。
現在放在組外的第一排。在最左側,點擊右側的>行可見性。在表達式上添加這個。
- 執行此也對其他外部行,但值應該是:
- 最簡單的方法是使用
SELECT TOP 5
或15的情況下,你的SQL查詢,以確保您始終獲得記錄的確切數目在表格中顯示。 - 我在我的sql查詢中添加了RowCount列來計算我擁有的所有記錄數。
- 在報表上右鍵單擊您的表> Tablix屬性>的左上角過濾
- 然後我進入這個值來限制我的表中顯示的數據的數量。
= IIF(CountRows()< 3, False,True) - >第二行
= IIF(CountRows()< 4,False,True) - >對於第三行
= IIF(CountRows()< 5,False,True) - >第四排
= IIF(CountRows()< 6,假,真) - >對於第五行
*可見性將隱藏根據該組中的行的計數的組以外的行。即使你有空的數據集,默認的行數也總是5.在你的情況下,你在組外添加15行空白行,並在數據行中具有相同高度,併爲每個行添加可見性條件。
UPDATE:
爲了限制數據的數量的表格顯示,這是我做到了。
另一種方法是在表格中使用過濾器。
從這個希望你現在有一個想法如何做到這一點在你的報告。
如果每頁的最大行數是10行。但數據庫有100行。這意味着我必須在每個頁面的tablix 100行中添加一行直到第十頁,好嗎? –
- 1. 在SSRS報告中添加空白行
- 2. 將空白頁面添加到SSRS
- 3. SSRS - 當Tablix超過page1空間時的半空白頁面
- 4. 將Tablix行固定到SSRS報告頁面的底部
- 5. tablix行之間的空白
- 6. 在Tablix中添加SSRS 2008年分組
- 7. 在SSRS中的每個新分組中添加空白頁面
- 8. SSRS的Tablix空間調整
- 9. SSRS添加一個空白頁
- 10. 添加空白行
- 11. SSRS Tablix行號到不同的Tablix
- 12. 在SSRS中的分頁符之後添加空白行
- 13. SSRS:重複Tablix
- 14. SSRS(ReportBuilder 3.0) - 如何刪除隱藏的Tablix佔用的空白?
- 15. SSRS重複Tablix組
- 16. 的Tablix:空白單元格添加新的子列組
- 17. SSRS Tablix分組
- 18. SSRS Tablix打印行高
- 19. SSRS分組給空白行
- 20. SSRS Tablix Row Group
- 21. 固定SSRS中的tablix或圖表寬度
- 22. FlexSlider在頁面右側添加空白
- 23. SSRS Tablix中篩選出空值
- 24. SSRS隱藏白色空間從Tablix之外的空文本框中刪除
- 25. Flexslider在滑塊下面添加巨大的空白處
- 26. SSRS 2008中的Tablix
- 27. 如何在SSRS報告的tablix列中添加條形圖?
- 28. 如何在Tablix單元內的SSRS Subreports中添加滾動條?
- 29. 如何在SSRS tablix中添加總和分組?
- 30. SSRS中的自定義Tablix篩選器
是5行的最低數量,即使它們是空的?對不起,我只是想澄清。我實際上是通過可視性來做到這一點 – bot
@bot,你究竟是什麼意思?我只有5個數據行,但在報告裏面,最大的行可以是15,那麼,如何顯示其餘(空行)?我只嘗試設置天花板..../15,但它只是無法正常工作。 – LittleBirdy
檢查我的答案,如果我確實瞭解你 – bot