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