2013-02-01 33 views
1

我正在使用報表生成器來生成字母。我想要做的是有一列的值,但是當它到達頁面的末尾時,而不是創建一個新頁面,我希望它溢出到第一個右側的新列。或者,如果它在創建新行之前在多個列中填充數據,它將會工作。報表生成器創建新列而不是頁面

這是可能的嗎?

回答

1

您必須從sql存儲過程區域中找到解決辦法,因爲SSRS中的tablix基於檢索的數據集,這不是報表生成器中的功能或變通方法。

我建議您嘗試創建一個存儲過程,爲您執行此操作的設置數量或列,並測試設置的行數。這將不得不在你的sql平臺上進行。

祝你好運我愛你的要求和問題!

1

我會尋求解決方法: 基本上,解決方案是定義查詢以在列中顯示數據(例如列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)

這吧!

相關問題