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;

 

posted @ 2024-04-16 18:40  一曲轻扬  阅读(175)  评论(0编辑  收藏  举报