示例 3.交互式
在本例中,我們將看到如何通過單擊 "Matrix "對象的單元格來創(chuàng)建詳細報告。例如,我們將使用一個矩陣來顯示按年份分組的員工銷售額。
矩陣的數(shù)據(jù)源是 "MatrixDemo "表。該表顯示了按年和月分組的員工銷售額:
Name | Year | Month | ItemsSold | Revenue |
---|---|---|---|---|
Nancy Davolio | 1999 | 2 | 1 | 1000 |
Nancy Davolio | 1999 | 11 | 1 | 1100 |
Nancy Davolio | 1999 | 12 | 1 | 1200 |
Nancy Davolio | 2000 | 1 | 1 | 1300 |
Nancy Davolio | 2000 | 2 | 2 | 1400 |
Nancy Davolio | 2001 | 2 | 2 | 1500 |
Nancy Davolio | 2001 | 3 | 2 | 1600 |
Nancy Davolio | 2002 | 1 | 2 | 1700 |
Andrew Fuller | 2002 | 1 | 2 | 1800 |
Andrew Fuller | 1999 | 10 | 2 | 1900 |
Andrew Fuller | 1999 | 11 | 2 | 2000 |
Andrew Fuller | 2000 | 2 | 2 | 2100 |
Janet Leverling | 1999 | 10 | 3 | 3000 |
Janet Leverling | 1999 | 11 | 3 | 3100 |
Janet Leverling | 2000 | 3 | 3 | 3200 |
Steven Buchanan | 2001 | 1 | 3 | 4000 |
Steven Buchanan | 2001 | 2 | 4 | 4100 |
Steven Buchanan | 2000 | 1 | 4 | 3999 |
- 將 "MatrixDemo.Year "數(shù)據(jù)列放在列頭;
- 將 "MatrixDemo.Name "數(shù)據(jù)列放在行標題中;
- 將 "MatrixDemo.Revenue "數(shù)據(jù)列放在單元格中。

如圖所示,單元格的值是員工全年銷售額的總和。讓我們創(chuàng)建一個詳細報告,點擊單元格后就會顯示該報告。在我們的例子中,詳細報告可以包含所選員工在所選年度每個月的銷售額。
如何將單元格與打印數(shù)據(jù)連接起來?矩陣的每個單元格都有自己的地址。這是來自列標題和行標題的值的組合。在我們的示例中,單元格的地址是雇員年份和姓名的組合。這些數(shù)據(jù)可以準確地傳遞到詳細報告中。如何做到這一點呢?非常簡單:設置超鏈接,只顯示報告名稱和參數(shù)名稱。參數(shù)值無需標明:對于矩陣單元格,F(xiàn)astReport 本身會形成值并將其傳遞到參數(shù)中。
假設我們點擊了左上角包含數(shù)字 3900 的單元格。這是名為 "Andrew Fuller "的員工 1999 年的銷售額總和。使用什么表格將此值傳入?yún)?shù)?FastReport 使用分隔符合并列和行的值:
這是否意味著我們必須從這個字符串中提取年份值和員工姓名,將年份轉(zhuǎn)換為 int,然后使用這些值進行數(shù)據(jù)篩選?不,這要簡單得多。我們只需創(chuàng)建一個具有嵌套參數(shù)的參數(shù)。你可以在 "數(shù)據(jù) "一章中了解到這一點。在本例中,父參數(shù)可以是這樣的1999;Andrew Fuller

創(chuàng)建參數(shù)時,請考慮以下時刻:
- 不需要設置父參數(shù)。只需給它命名即可;
- 父參數(shù)的嵌套參數(shù)數(shù)量必須與矩陣傳遞的值數(shù)量相同。在本例中,有兩個值;
- 嵌套參數(shù)的順序必須與矩陣傳遞值的順序一致。在本例中,年份將在第一個參數(shù)中傳遞,雇員姓名將在第二個參數(shù)中傳遞;
- 嵌套參數(shù)可以隨意命名,但最好與矩陣元素名稱一致;
- 正確設置每個嵌套參數(shù)的數(shù)據(jù)類型非常重要。數(shù)據(jù)類型必須與傳入?yún)?shù)的值一致。在我們的例子中,第一個參數(shù)(年份)必須是整數(shù)類型,第二個參數(shù)(員工姓名)必須是字符串類型。

在超鏈接配置中,將父參數(shù)指定為報告參數(shù)(在我們的示例中為 "SelectedCell"):
FastReport 將這些值傳入 SelectedCell.Year 和 SelectedCell.Name 嵌套參數(shù)。這些值將轉(zhuǎn)換為參數(shù)配置中指定的數(shù)據(jù)類型,因此正確配置參數(shù)數(shù)據(jù)類型非常重要。
詳細報告位于主報告的單獨頁面上,使用相同的數(shù)據(jù)源:

為了顯示所選員工在所選年份的銷售額,請設置篩選條件。為此,請打開 "Data"帶編輯器,并輸入以下篩選條件:
報告已準備就緒。運行報告并點擊左上角的單元格。將打開一份詳細報告,其中包含以下數(shù)據(jù):[MatrixDemo.Year] == [SelectedCell.Year] && [MatrixDemo.Name] == [SelectedCell.Name]

如圖所示,數(shù)值之和(1900+2000)與我們點擊的矩陣單元格相對應。