2017-12-18 264 views
1

我有一個Crystal Report,它調用存儲過程以返回包含各種值的表。如何在Crystal Report上放置特定的行

我希望將此表的各行放置在報表上的各個位置。爲此,我創建公式字段用公式從而在指定的數據項: -

{sp_MyReport.Column1} 

飛濺他們對必要的報告。要選擇不同行,我將選擇更改公式: -

{sp_MyReport.IdColumn} = 2 

但我這樣做的時候,在所有其它公式字段記錄選擇改爲匹配,所以我永遠只能有一行數據項目顯示。

首先,創建公式字段是正確的方式去做這件事(我必須保留空白標題中的文本,表明它可能沒有預期的用途)?

如果是這樣,我如何獲得不同的公式字段來顯示不同的行?

如果不是,我該怎麼做?

+0

如果您試圖只調用標題和值,那麼簡單的方法是使用交叉標籤,其中放置'{sp_MyReport.IdColumn}'on行和列上的值 – Siva

回答

1

一種方法是創建一個包含存儲過程的子報表,然後用共享變量緩存這些值。

爲每個值定義一個變量,該值應顯示在主報告中併爲其分配相應的值。

子報表將如下的公式如下:

WhilePrintingRecords; 
Shared NumberVar myValueX; 
Shared NumberVar myValueY; 

//assign the corresponding value to the variable 
If {sp_MyReport.IdColumn}=2 Then myValueX := {sp_MyReport.ValueColumn} 
If {sp_MyReport.IdColumn}=3 Then myValueY := {sp_MyReport.ValueColumn} 

要顯示在主報告中的值,創建一個公式如下:

WhilePrintingRecords; 
Shared NumberVar myValueX; 

的報表應該放在裏面報表頭部分,因爲變量總是從上到下進行評估。

要隱藏子報表,只是減小大小,直到它足夠小,以適應地方上的報告沒有「破壞」的報告設計。
(不要壓制子報表,因爲它不會被評估。)