2012-02-26 60 views
0

我一直在嘗試使用動態交叉選項卡和列創建帶有小運氣的數據透視表。我需要它的功能就像這樣,頂部有動態交叉標籤,左側有動態列。下拉列表中的動態交叉選項卡

1 http://img689.imageshack.us/img689/1812/crosstabs.jpg

我也只需要選擇的列和跨接片被顯示。例如,如果只選擇了一列和一個交叉標籤,則它們應該是唯一顯示的列。我已經嘗試了一個SQL數據透視表和一個網格,但是我無法使用堆疊在頂部的兩列類別正確地格式化它。我也嘗試過水晶報告,但沒有選擇時無法隱藏交叉標籤。我嘗試了Telerik報告控制,但無法通過下拉菜單動態生成交叉表。我正在尋找關於如何解決這個問題的任何建議。此外,如果有人創造了這樣的東西或有一個想法如何,請分享。 在此先感謝。

回答

0

我從來沒有使用Telerik,因此以下建議僅適用於Crystal。

可以在至少兩種不同的方式有條件地隱藏交叉表水晶:

  1. 通過格式化對話框(交叉表專家) - 在交叉表上單擊鼠標右鍵,選擇格式化交叉Tab ...從菜單中,按格式編輯器對話框的公共選項卡中抑制旁邊的x-2按鈕,然後輸入適當的公式(類似{?crosstab1s1}="n/a")。
  2. 通過將交叉在自己的子部分,使子部分條件抑制 - 右鍵單擊​​灰色區域在相關子節的報表設計設計選項卡中的報表佈局區域的左側,選擇截面專家...在截面專家對話框的公共選項卡中按下抑制(無向下拉伸)旁邊的x-2按鈕,然後輸入適當的公式。

我建議使用這兩種方法中的後者 - 抑制交叉表本身仍然會將空白處留在要顯示的位置。

你也可以把每一個交叉表在自己的報表和抑制那些條件 - 然而,這引入了似乎沒有必要在這一點上覆雜的級別。

其他一些意見:

  • 水晶的參數比什麼可以在ASP實現靈活的要少得多,所以如果可能的話做ASP的所有參數選擇和參數傳遞給水晶。
  • 晶體的空值處理有些尷尬,因此傳遞一個指示不需要交叉表的特定值,而不是將參數評估爲空。目前
  • 您的交叉參數設置爲交叉製表1和2交叉表,每個或2節1和3。目前尚不清楚這是否意味着應達到總共六個交叉表,或只有兩個:
    • 如果是前者,那麼它是不明確的行分組,列分組和總結領域如何被指定。
    • 如果是後者,那麼我建議將第1,2和3部分重命名爲Row Grouping,Column Grouping和Summarized Field(因爲我認爲這就是它們要表示的內容)。
  • 您目前有顯示組總計和顯示百分比選項 - 這些選項似乎適用於交叉表。這些選項可以在Crystal中指定,但不能在報表設計器中有條件地指定。
    • 如果您能夠訪問Crystal API,應該可以在運行時以編程方式設置這些選項。
    • 否則,如果要爲每個交叉表包含這兩個選項,唯一的選擇是將每個交叉表的四個版本添加到報表中,每個選項都根據所選的選項進行有條件抑制。 (我不會推薦這種方法,除非你別無選擇。)
  • 晶體不能處理動態數據結構(即設計報告時必須知道數據結構),所以我建議生成結果基於指定的參數的SQL存儲過程中設置,具有結構是這樣的:

Dataset structure

crosstab1Row 
crosstab1Column 
crosstab1SumValue 
crosstab2Row 
crosstab2Column 
crosstab2SumValue 
reportColumn1 
reportColumn2 
reportColumn3 
reportColumn4 
reportColumn5 
+0

感謝您的回覆,我要試試這個,當我今晚回家。 – user973671 2012-02-27 14:51:01

+0

這是什麼意思,將交叉表放在其自己的子部分中,並使子部分有條件地被抑制。通過分節,你的意思是像報告標題b?謝謝 – user973671 2012-02-27 18:42:31

+0

@ user973671:確實如此 - 如果您打算將交叉表放入報表頁腳,請將報表頁腳部分分爲兩部分,並將交叉表放入其中一部分。 – 2012-02-27 18:57:04

相關問題