DELPHI cxgrid 统计主从表中,从表的记录数量
效果如图所示:
核心代码:
procedure TForm1.Button1Click(Sender: TObject); var AIndex, I, ATotalSelectedCount, ASelectedRecordsCount: integer; AMasterView: TcxGridDBTableView; ADetailDataController: TcxCustomDataController; begin ATotalSelectedCount := 0; // 初始化总选中记录计数为0 ASelectedRecordsCount := cxGrid1DBTableView1.Controller.SelectedRecordCount; // 获取当前选择的主表记录数量 AMasterView := cxGrid1DBTableView1; // 获取主视图 // 遍历每个选中的主表之下的从表,有多少记录,然后累加.当然你如果设置了单选行模式,就没必要累加了 for I := 0 to ASelectedRecordsCount - 1 do begin AIndex := AMasterView.Controller.SelectedRecords[i].RecordIndex; // 获取选中主记录的索引 ADetailDataController := AMasterView.DataController.GetDetailDataController(AIndex,0) as TcxCustomDataController; // 获取从表数据控制器 inc(ATotalSelectedCount, ADetailDataController.RecordCount); // 累加当前主表记录下的从表记录数量 end; ShowMessage( IntToStr(ATotalSelectedCount)); // 显示总选中记录数量 end;