我正在使用報表生成器來生成字母。我想要做的是有一列的值,但是當它到達頁面的末尾時,而不是創建一個新頁面,我希望它溢出到第一個右側的新列。或者,如果它在創建新行之前在多個列中填充數據,它將會工作。報表生成器創建新列而不是頁面
這是可能的嗎?
我正在使用報表生成器來生成字母。我想要做的是有一列的值,但是當它到達頁面的末尾時,而不是創建一個新頁面,我希望它溢出到第一個右側的新列。或者,如果它在創建新行之前在多個列中填充數據,它將會工作。報表生成器創建新列而不是頁面
這是可能的嗎?
您必須從sql存儲過程區域中找到解決辦法,因爲SSRS中的tablix基於檢索的數據集,這不是報表生成器中的功能或變通方法。
我建議您嘗試創建一個存儲過程,爲您執行此操作的設置數量或列,並測試設置的行數。這將不得不在你的sql平臺上進行。
祝你好運我愛你的要求和問題!
我會尋求解決方法: 基本上,解決方案是定義查詢以在列中顯示數據(例如列A - 值1-60,列B - 值61-120 ...)。
然後您可以將每列定義爲不同的數據集。
在SSRS中,您可以定義多個表(每個表只包含一列)並將它們放在一起。 (使用表可見性隱藏null
表)
讓我們開始:
首先你需要知道多少行擬合一個頁面(在這個例子中可以說60)。
接下來你需要知道你可以擁有的最大值是什麼(在這個例子中可以說180)。
根據以下定義查詢:
WITH NumberedMyTable AS
(
SELECT
Id,
Value,
ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber
FROM
MyTable
)
SELECT
Id,
Value
FROM
NumberedMyTable
WHERE
RowNumber BETWEEN @From AND @To
重複此查詢每列(在這個例子中,你需要定義這個查詢3次)。
然後定義3個表格 - 每列一列,並將每個數據集定義爲相應的值。
定義表矩陣知名度表達如下: =IIf(CountRows("MyDataset") = 0,false,true)
這吧!