2010-02-18 36 views
3

我在Crystal Report中有一個要抑制的部分。如果我正在使用的數據集中的特定表中有0行,我需要將其抑制。我將如何做到這一點?提供的記錄號特殊字段似乎是報告中記錄的內部計數,並且與底層數據表中的行無關。如果數據表中沒有行,則禁止Crystal Reports部分

我從C#創建報表,但我無法抑制代碼中的部分(它不適合項目結構) - 我必須能夠從報表本身完成。有關表格肯定正在傳遞給數據集中的報告,但它包含0行。報告本身必須有一種方法來建立這個.....

任何人都可以請指出我在正確的方向嗎?

回答

6

在Crystal Reports設計器中,查看您的部分的屬性,並且應該有Suppress選項,您可以給它一個公式以返回適當的布爾值。

然後,您可以在該公式中使用Count()函數,並且(我相信)您可以將數據集的名稱傳遞給Count()函數以獲取該數據集中的行數。

大約3個月前,我在一份複雜的報告上做了同樣的事情,但我無法再訪問報告,因爲我已經改變了工作,所以我很抱歉,我不能更具體,但很有抱負,這會給你一個開始點。

只是有一個快速谷歌 - try this

+0

感謝 - 這種工作,但現在我有另一個問題,因爲這一點。當問題表中有記錄時,報告現在重複整個詳細信息部分的次數與該表中的行數相同。 我也嘗試在子報表中使用Shared NumberVar對錶中的行進行計數,並且我可以在主報告中成功抑制我想要的部分,但是當有記錄時,這種技術會失敗 - 它仍然會抑制該部分。 我有很多表在細節級別使用,這可能沒有幫助.... – JamesW 2010-02-18 12:01:05

+0

我不得不添加一個公式來抑制我不想看到的後續行。這個補充完全取決於我的報告的設計,所以我會很樂意將您的答覆標記爲答案。 再次感謝。 – JamesW 2010-02-18 12:25:17

+0

如果您要爲報表中的每條記錄獲取一個部分,但是您想要記錄的摘要,則需要使用組標題並取消詳細信息。謝謝 :) – 2010-02-18 14:30:44

3

如果該部分只包含數據庫字段和f.e.沒有文本字段,那麼您可以在「部分導出」(右側部分)中使用該部分的設置「壓縮空白部分」。

如可以使用在「禁止」下面的公式中的「節導出」爲該部分的替代:

IsNull({table.field}) 

「{} table.field」是在數據集中的字段的一個。

希望這會有所幫助。

1

進入「節專家」,然後點擊「剿(無向下鑽取)」,然後嘗試在此:

IF {"DragYourFieldHere"} = "" then true else false 
0

創建一個虛擬組,檢查了每個頁面標題,添加標題中虛擬組的組頭。

相關問題