之前用flex+c#做的一个项目中,有涉及到列的汇总计算。可以用到的方法很多,这里列举了一种,在前台flash中用footerdatagrid结合labelfunction的用法即可实现。当然,下面的代码实现的是每一列的所有行的汇总(由SUMcolum中的for循环可知),如果要实现每一列的奇数行(或偶数行或其他自定义挑选的行)的汇总,则需要稍作修改。
(不过,最后没用这种方法,而是在后台C#实体类中添加“合计”成员来实现。)
1 xmlns:local="HZAssessment.TCJS.*" //声明自定义的组件local 2 3 4 /**列汇总公共函数**/ 5 private function SUMcolumn(column:DataGridColumn):String 6 { 7 var n:int = datalist.length; 8 var sum:Number = 0; 9 for (var i:int = 0; i < n; i++) 10 { 11 sum += datalist[i][column.dataField]; 12 } 13 14 return sum.toFixed(0); 15 } 16 17 //土地正式列汇总 18 private function SUMsumTZ(column:DataGridColumn):String 19 { 20 return SUMcolumn(column); 21 } 22 23 //土地简式列汇总 24 private function SUMsumTJ(column:DataGridColumn):String 25 { 26 return SUMcolumn(column); 27 } 28 29 //房产正式列汇总 30 private function SUMsumFZ(column:DataGridColumn):String 31 { 32 return SUMcolumn(column); 33 } 34 35 //房产简式列汇总 36 private function SUMsumFJ(column:DataGridColumn):String 37 { 38 return SUMcolumn(column); 39 } 40 41 //房拆正式列汇总 42 private function SUMsumFCZ(column:DataGridColumn):String 43 { 44 return SUMcolumn(column); 45 46 } 47 //房拆简式列汇总 48 private function SUMsumFCJ(column:DataGridColumn):String 49 { 50 return SUMcolumn(column); 51 } 52 53 //合计正式列汇总 54 private function SUMsumHJZS(column:DataGridColumn):String 55 { 56 return SUMcolumn(column); 57 } 58 59 //合计简式列汇总 60 private function SUMsumHJJS(column:DataGridColumn):String 61 { 62 return SUMcolumn(column); 63 } 64 65 66 67 <local:FooterDataGrid id="dg_shtjlist" initialize="dg_shtjlist.dataProvider ='{datalist}'" width="100%" height="100%" paddingTop="0" paddingBottom="0" verticalAlign="middle" > 68 <local:columns> 69 <local:FooterDataGridColumn id="shr" headerText="审核人" dataField="zsrxm"> 70 <mx:DataGridColumn headerText="汇总" dataField="zsrxm" /> 71 </local:FooterDataGridColumn> 72 <local:FooterDataGridColumn id="tz" headerText="土地正式" dataField="sumTZ" > 73 <mx:DataGridColumn dataField="sumTZ" labelFunction="SUMsumTZ" /> 74 </local:FooterDataGridColumn> 75 <local:FooterDataGridColumn id="tj" headerText="土地简式" dataField="sumTJ" > 76 <mx:DataGridColumn labelFunction="SUMsumTJ" dataField="sumTJ" /> 77 </local:FooterDataGridColumn> 78 <local:FooterDataGridColumn id="fz" headerText="房产正式" dataField="sumFZ" > 79 <mx:DataGridColumn labelFunction="SUMsumFZ" dataField="sumFZ" /> 80 </local:FooterDataGridColumn> 81 <local:FooterDataGridColumn id="fj" headerText="房产简式" dataField="sumFJ" > 82 <mx:DataGridColumn labelFunction="SUMsumFJ" dataField="sumFJ" /> 83 </local:FooterDataGridColumn> 84 <local:FooterDataGridColumn id="fcz" headerText="房拆正式" dataField="sumFCZ" > 85 <mx:DataGridColumn labelFunction="SUMsumFCZ" dataField="sumFCZ" /> 86 </local:FooterDataGridColumn> 87 <local:FooterDataGridColumn id="fcj" headerText="房拆简式" dataField="sumFCJ" > 88 <mx:DataGridColumn labelFunction="SUMsumFCJ" dataField="sumFCJ" /> 89 </local:FooterDataGridColumn> 90 91 <local:FooterDataGridColumn id="hjzs" headerText="合计(正式)" dataField="sumHJZS" labelFunction="HJZSlabel" color="#8A2BE2" > 92 <mx:DataGridColumn labelFunction="SUMsumHJZS" dataField="sumHJZS" color="#8A2BE2" /> 93 </local:FooterDataGridColumn> 94 95 <local:FooterDataGridColumn id="hjjs" headerText="合计(简式)" dataField="sumHJJS" labelFunction="HJJSlabel" color="#8A2BE2" > 96 <mx:DataGridColumn labelFunction="SUMsumHJJS" dataField="sumHJJS" color="#8A2BE2"/> 97 </local:FooterDataGridColumn> 98 99 </local:columns> 100 </local:FooterDataGrid>