FastReport.Net報表生成器:如果沒有數(shù)據(jù),如何隱藏列表中的列
制作報表時,我們希望它對使用者盡可能“友好”。太多的數(shù)據(jù)和設計元素處理使人們對信息的理解更加不利。比如,許多人希望刪除表中的沒有數(shù)據(jù)的空格。FastReport.Net報表生成器使您可以執(zhí)行此功能。如您所知,不僅需要隱藏該列,而且還需要為其隱藏標題。如果用鼠標單擊幾下即可隱藏一列,那么隱藏標題任務卻并非易事。
假設我們有一個表,要從中顯示報表中的數(shù)據(jù)。但是,某些數(shù)據(jù)可能會丟失或設置為零。在這種情況下,我們可以使用“條件選擇”工具隱藏零數(shù)據(jù)單元。選擇所需的單元格,然后單擊工具欄上的圖標:
添加條件時,默認情況下將檢查零。那就是我們所需要的。我們僅選擇顯示選項。在我們的例子中,我們刪除可見的標志:
因此,通過這些非精簡的操作,我們已經(jīng)實現(xiàn)了隱藏的零數(shù)據(jù)單元。但這并不能解決所有問題。我們的任務是在沒有值大于零的情況下隱藏整個列的標題。此列中的空白將檢查每頁的輸出。
要檢查給定列中頁面上是否沒有數(shù)據(jù),我們將使用“結果”。
該結果由給定的列求和,并匯總其中的所有值。如果總數(shù)為零,則該列中沒有單個值大于零,因此您需要隱藏該列的標題。
現(xiàn)在,讓我們添加結果:
結果放入“頁腳”區(qū)域中:
然后可以使用“visible”屬性隱藏結果。
然后,讓我們設置邏輯以隱藏最后一列的標題。代替RUB文本,我們引入表達式:
[IIf([Total]!=0,Text14.Text = "RUB",Text14.Text = "")]
但是,這還不是全部。由于結果是在頁面上顯示標題和數(shù)據(jù)之后形成的,因此在執(zhí)行我們上面介紹的表達式時,總價值無關緊要。因此,我們需要在列標題中使用延遲表達式計算選項,并對報表進行兩次遍歷。
選擇一個帶有RUB列標題的文本框。在文本字段的屬性中,我們找到ProcessAt并更改為PageFinished:
之后,我們需要打開報表屬性并安裝“Doublepass”選項:
此選項使您可以兩次生成報表。在第一種結構中,將計算所有結果,在第二種結構中,這些結果可用于標題。所有這些都是必要的,因為報表在元素上是一致的。也就是說,在構建下一個元素時,您將無法更改前一個元素。因此,您需要進行重新構建,以考慮下一個元素的結果。
讓我們看看RUB列中所有數(shù)據(jù)何時為0時報表的工作方式:
在某些頁面上可以顯示數(shù)據(jù),因此該列也會顯示:
這樣,我們可以根據(jù)列中的數(shù)據(jù)動態(tài)顯示或隱藏列。
重要通知:FastReport助力醫(yī)療機構,.NET正版授權限時限量免費申請!趕快搶占名額>>
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服