2010-03-15 34 views

回答

1

您可以使用參數(可在運行時設置這些值)並將它們用於對象的壓制公式。

+0

好的喬喬,如果我有3列,我想隱藏第二個,就是這樣做,沒有空的空間。 非常感謝你。 – 2010-03-15 10:25:29

2

選項1:使用條件抑制邏輯隱藏/顯示冗餘場

使用參數字段來驅動抑制公式所需的字段。

如果你想消除字段之間的空格,那麼你需要將字段堆疊在一起並適當地抑制它們。在你的例子中,第2列將包含field2和field3(都被抑制),第3列將包含field2和field3(都被抑制)。在您的示例中,抑制邏輯將繼續抑制第2列中的兩個字段,但會顯示第2列中的字段3(第2列中的字段2仍將被抑制)。

選項2:使用「佔位符」式場

數據的每一列,可以抑制將是一個公式字段。每個公式字段將使用SELECT CASE邏輯來選擇要顯示的所需字段。 「隱藏」字段只會返回空值。您的SELECT CASE邏輯將被寫入以確保值從左到右填充。格式化將需要公式而不是公式字段本身。

選項3:使用SDK動態更改報告。

使用CR .Net SDK或較早的CRAXDRT API動態修改列的可見性和定位。

但是,如果您使用此選項,則您的部署選項將受到更多限制。

+0

+1這就是我會做CR的專家。越簡單越好,保持簡單!所以,更簡單的是在Suppression條件下進行。您也可以抑制空白部分。 – 2010-03-15 19:47:45

+0

謝謝Craig的回答,那麼您對「佔位符」的含義是什麼,Will Marcouiller說我該如何抑制空白部分?非常感謝您的時間。另一個Q是有動態報告允許最終用戶顯示\隱藏列可選?並感謝Will Marcouiller – 2010-03-16 08:55:01

+1

@Dani AM:在這種情況下,'佔位符'是一個公式字段,它的值是動態計算的。 「抑制空白部分」是該部分的屬性 - 如果該行中的所有字段都爲空,它將隱藏整行。根據你的描述,我不認爲這是你想要的。 Crystal Reports本身沒有「動態」報告。你可以嘗試一個交叉標籤,但這可能不會滿足你的需求。您可以嘗試使用我提到的任一SDK動態創建報告,但這更復雜。 – craig 2010-03-16 11:32:21