翻譯|使用教程|編輯:王香|2018-10-15 09:31:51.000|閱讀 498 次
概述:使用報表腳本將計算字段添加到矩陣的方法示例。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
【下載FastReport.Net最新版本】
通常,矩陣或其他匯總表用于會計和統計報表。讓我們確定摘要表是什么。
摘要表是一種軟件工具,允許您重新組織和匯總表中所選的列和行數據,以獲取所需的報表。摘要表對于大量數據特別有用。例如,您正在經營像文具店這樣的小型企業。您想知道哪些產品具有最佳銷售率,或者本月銷售最好記錄是什么。分析它們需要大量的統計數據是非常費力的。這里有一個摘要表,它將一段時間內的數據組合在一個表中。
處理用于創建匯總表的數據的主要操作是求和。但是,有時候,您可能需要自己的函數來計算某些列,例如總計。讓我們看一下使用報表腳本將計算字段添加到矩陣的方法示例。創建報表并將矩陣對象添加到“Data”區域。如您所知,要創建列,排水或單元格,您需要將表達式拖動到相應的區域。表達式可以是:數據字段,函數,變量,總數。通常,數據面板中的任何對象。如果要從報表的腳本中填充矩陣,則將任何表達式添加到矩陣中,然后將其打開以進行編輯并清除它,或輸入數字。這是矩陣的模板:
要以編程方式將字段添加到矩陣,您需要為矩陣創建AfterData事件處理程序。
讓我們繼續閱讀報表腳本。在生成的處理程序中,將列添加到矩陣:
Matrix1.AddValue(new Object[] { "Accruals", "Salary" }, new Object[] { "1" }, new Object[] { 1000}); Matrix1.AddValue(new Object[] { "Accruals", "Bonus" }, new Object[] { "1" }, new Object[] { 500}); Matrix1.AddValue(new Object[] { "Accruals", "Penalty" }, new Object[] { "1" }, new Object[] { 200}); Matrix1.AddValue(new Object[] { "Accruals", "Total" }, new Object[] { "1" }, new Object[] { 0}); Matrix1.AddValue(new Object[] { "Accruals", "Salary" }, new Object[] { "2" }, new Object[] { 500}); Matrix1.AddValue(new Object[] { "Accruals", "Bonus" }, new Object[] { "2" }, new Object[] { 300}); Matrix1.AddValue(new Object[] { "Accruals", " Penalty" }, new Object[] { "2" }, new Object[] { 250}); Matrix1.AddValue(new Object[] { "Accruals", "Total" }, new Object[] { "2" }, new Object[] { 0});
請注意,列標題的結構由名稱枚舉 - “費用”,“薪水”給出。在我們的例子中,通用標題“Charges”有4個副標題()。接下來,我們創建一個標題為1的行。第三個參數是數據單元new Object [] {1000}的值。 我們添加了兩行數據。“總計”字段的值為零。現在我們需要為它設置一個值。我們在循環中遍歷矩陣的所有行并設置結果的值:
int[] rowIndices = Matrix1.Data.Rows.GetTerminalIndices(); for (int i = 0; i < rowIndices.Length; i++) { rowIndex = rowIndices[i]; SetValue("Accruals;Total", GetValue("Accruals;Salary") + GetValue("Accruals;Bonus") - GetValue("Accruals;Penalty")); }
將rowindex變量添加到類中: private int rowIndex; 請注意SetValue和GetValue方法。將它們添加到類中:
private void SetValue(string complexValue, float value) { int columnIndex = Matrix1.Data.Columns.Find(complexValue.Split(';')); Matrix1.Data.SetValue(columnIndex, rowIndex, value); } private float GetValue(string complexValue) { int columnIndex = Matrix1.Data.Columns.Find(complexValue.Split(';')); return new Variant(Matrix1.Data.GetValue(columnIndex, rowIndex, 0)); }
從標題中可以清楚地看出,一種方法是獲取單元格的值,第二種方法是更改??。 運行報表:
所以我們計算了每行數據的總數。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn