2012-09-19 37 views
11

我有一個相當簡單的子報表,當沒有爲它選擇的記錄時,我想抑制它。問題是我有這個子報表的頁眉和頁腳部分,裏面有靜態元素(文本框,行等)。當沒有記錄時,我已經設置了包含子報表,子報表本身和子報表中的部分的部分。然而,子報表無論如何都顯示出來。沒有數據的數據部分確實被壓縮,但頁眉和頁腳似乎使子報表保持可見。抑制沒有數據和標題的子報表

任何想法?哦,我正在運行Crystal-Reports 2011.謝謝!

回答

16

我剛剛在CR2008中遇到了這個問題。下面是我做,使這項工作的步驟:

  1. 進入你的報表(我的意思是有它自己的設計器窗口中打開) - >進入「報告選項」的「文件」菜單下的 - >選擇'禁止打印如果沒有記錄'
  2. 現在回到您的主要報告。右鍵單擊子報表 - >轉到「格式子報表」 - >點擊「子報表」標籤 - >選中「壓縮空白子報表」複選框。
  3. 如果子報告是主要報告部分中的唯一內容,請在「部分編輯器」中通過右鍵單擊該部分 - >選中「抑制空白部分」複選框。

編輯:如果您的報表不會返回的記錄,但它只是沒有一個是顯示然後使用共享變量的嘗試。爲此,您需要考慮您首先在子報表中顯示記錄的邏輯。這可能是在細節部分抑制公式中找到的任何邏輯,但它將在很大程度上取決於特定子報告的格式。

現在,在您的子報表的報表標題中初始化一個共享的數字變量,然後在每次使用上述邏輯顯示行時增加它。

回到您的主報告中,您可能能夠檢查該變量的值,以有條件地抑制子報告的部分。我說「可能」,因爲CR可能不會評估子報表的變量之前的查看抑制公式,但給它一個旋風。您需要在部分抑制公式中使用whileprintingrecords;關鍵字來延遲其評估。祝你好運!

+0

Drat!沒有肥皂。我真的很有希望,因爲我不知道「文件」菜單下的「報告選項」對話框,該框未被選中。我檢查了它,但仍然得到了子報表。 –

+0

@DanBerlyoung該子報表是否實際顯示任何內容或僅僅是一個空框?如果你仍然得到的頁眉/頁腳有可能是子報表實際上獲取記錄,但他們只是不顯示?子報表查詢需要爲該複選框返回0行才能真正起作用。 Aye! – Ryan

+0

!有磨擦。子報表確實有在另一個子報表中打印的記錄,但是,在使用相同數據集的情況下,該報表只有其中沒有值的字段。所以它抑制了細節部分,因爲它沒有字段可以打印,但子報表實際上有記錄。是否有反應天氣或沒有實際打印的行,然後根據該值隱藏子報表? –

0

您是否嘗試過使用壓制公式?

右鍵單擊格式字段>檢查禁止>單擊編輯公式[X-2]按鈕

0

很難跟隨在後的一切,但如果數據運行到對方,然後添加一個部分,並將您的子報告放在該部分中,並確保可以增長。

如果您有要顯示的靜態數據,那麼您可能需要創建2個子報告,一個包含靜態數據,另一個包含動態數據,如果爲空白則隱藏。