delphi 中 cx Grid 使用汇总(一) 2011-10-27 23:26:16| 分类: delphi xe2|字号 订阅 1. 去掉cxGrid 中台头的Box 解决:在tableview1 的ptionsview 的groupbybox=false; ***************************************************************************** 2.统计功能 解决:(1) tableview tableview1 的optionsviewfooter=ture 然后在cxGRid1 的customize..中的summary 的footer.add 需要合计的列kind= skSum 在Footer 的第一列显示[合计:] 加一个 Summary 项,Column 设为 Grid 的第一列,Kind 设为 skNone 在该 Summary 项的OnGetText 事件中,输入: procedure TFormExpense.tvExpenseTcxGridDBDataControllerTcxDataSummaryFooterSummaryItems2GetText( Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; var AText: String); begin AText := '合计:'; end; (2) 按条件汇总: 在TableView 的DataController->Summary->FooterSummary->OnSummary 事件中,输入: procedure TFormExpense.tvExpenseDataControllerSummaryFooterSummaryItemsSummary( ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments; var OutArguments: TcxSummaryEventOutArguments); begin //得到字段名 TcxDBDataSummaryItem(Arguments.SummaryItem).FieldName; if (ASender.DataController.Values[Arguments.RecordIndex, tvExpenseLevel.Index] > 1) //只统计Level 列=1 的值 and (TcxDBDataSummaryItem(Arguments.SummaryItem).Kind = skSum) then OutArguments.Value := 0; //Level > 1 的统计值设为 0 end; OptionView 中属性 GroupFooters 设为 gfAlwaysVisible 并设置需要求和的列,在summary.default for Groups 下 add 加入需要合计的字段,column下显示fieldname 为统计字段,format为格式,kind为统计方法,position 为位子 spfooter 在分组的下面,spgroup 在分组的上面 或用 cxGridPopupMenu1,在运行時可对任意数字类型列求和,方法是只需设置 cxGridPopupMenu1 的属性 Grid 为 cxGrid1DBTableView1的cxGrid, ***************************************************************************** 3.去掉cxgrid 中的过滤下拉箭头 解决: 选择tableview1.optionscustomize.columnfiltering=fasle; *...