reporting services中列的隱藏

2021-09-21 12:07:16 字數 1220 閱讀 9058

在reporting services中當我們想隱藏一列資料的時候,往往會發現雖然資料隱藏掉,但一張報表卻被一分為而。如下圖所示:

這時,好像無論我們再怎麼調,隱藏掉的列仍是顯示空白。要想解決這個問題,我們得先得搞清楚幾個概念:單元格,列,分組。貌似這幾個概念很好理解,列就是一列資料,包含多個單元格。單元格就是**中顯示資料的乙個單位而已,分組基本就是用來彙總資料。單元格隱藏應用的主要場景是在一列中如果下面幾個值和上面相同就將單元格顯示為空。所以單元格隱藏後位置仍然還是存在的,要不然**的格式看上去就不美觀。列和行的隱藏主要用於不同的人開啟報表時顯示不同的資料,比較某個指標只有某幾個國家有,則其它國家就不需要顯示這幾個指標。所以列和行隱藏後位置同時也要隱藏掉。分組主要是用來彙總資料,分組的隱藏主要是應用在彙總級別上。所以隱藏後結果不需要發生變化,只要將位置和父級合併即可。因此,當遇到列隱藏後出現上圖的問題,那我們就要看下是不是隱藏的方式錯了。誤將單元格或者分組隱藏。

對於單元格,列,分組的隱藏方法是不同的。單元格的隱藏可以直接選中單元格,在屬性的visibility中設定hidden屬性為true或者你希望的表示式。我們隱藏列後出現空白的大部分原因是我們用錯為這個屬性。列的隱藏我們只能選中列然後右擊選擇column visibility,在其中設定隱藏選項。只有通過這種方式設定的隱藏才是真正的隱藏。分組的隱藏在分組窗格中通過分組屬性來隱藏。

那麼現在回到開始的圖上,tablix行組只能通過組的方式隱藏,tablix正文部分可以通過列隱藏的方式進行隱藏,其中的每個單元格可以通過單元格的方式將資料隱藏掉。那麼為什麼列的分組可以通過列隱藏的方式隱藏掉呢。很簡單,列分組的方式是縱向的,所以行分組也可以通過行隱藏的方式隱藏掉,但如果行分組中的列要用列隱藏的方式隱藏,那麼reporting services就不知道要如何對報表進行處理了。

以上原理大家都了解了以後,我們就可以完全fix掉這個錯誤。首先,判斷我們是否是用了單元格隱藏的方式。選中隱藏列,看屬性窗格中的visibility->hidden是否為true如果為true則先將其設為false。

然後,右擊要隱藏的列,看其column visibility是否可選,如果不可選則說明其在分組中。再檢視分組中的資料,如果在分組中只是用做明細資料而不做為分組的條件的話,則將其轉換為靜態列。這樣column visibility就可用了,直接設定就可以將此列隱藏掉。

如何轉換為靜態列,如開始的中,選中左邊的tablix列組,右擊->insert column->outside group-left. 如此直接用新新增的列展示資料即可。

附件:

隱式轉換中隱式引數與隱式函式的使用

隱式引數的使用 要定義多個隱式引數時,需要使用柯里化函式。隱式轉換作用就是 當呼叫方法時,不必手動傳入方法中的隱式引數,scala會自動在作用域範圍內尋找隱式值自動傳入。1 同型別的引數的隱式值只能在作用域內出現一次,同乙個作用域內不能定義多個型別一樣的隱式值。2 implicit 關鍵字必須放在隱...

Scala中的隱式轉換函式 隱式引數和隱式類

隱式轉換函式 所謂隱式轉換函式指的是implicit關鍵字修飾的且只有乙個引數的函式,其作用是 1.隱式轉換增強現有型別,2.隱式轉換做引數型別轉換 1.例如 inplicit def int2string n int string n.tostring 上案例 我們把fruit物件轉換成了monk...

mysql 關閉隱式轉換 Mysql中的隱式轉換

在mysql查詢中,當查詢條件左右兩側型別不匹配的時候會發生隱式轉換,可能導致查詢無法使用索引,下面分析兩種隱式轉換的情況看表結構phone為int型別,name為varchar型別 兩種情況都可以用到索引,這次等號右側是 2 注意帶單引號喲,左側的索引欄位是int型別,因此也會發生隱式轉換,但因為...