cxgrid 上移下移一条记录

procedure TForm3.cxButton_moveDownClick(Sender: TObject); //下移
var
  i: Integer;
  recNo: Integer; //记录下位置
  strName, stype, saddress, num: string;
begin
  //i := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex;
  strName := cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').AsString;
  stype := cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').AsString;
  saddress := cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').AsString;
  num := cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').AsString;
  cxGrid1DBTableView1.DataController.DataSet.Delete;

  if cxGrid1DBTableView1.DataController.FocusedRecordIndex = cxGrid1DBTableView1.DataController.RecordCount - 1 then
  begin
    cxGrid1DBTableView1.DataController.Append;
  end
  else
  begin
    cxGrid1DBTableView1.DataController.MoveBy(1);
    recNo := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex;
    cxGrid1DBTableView1.DataController.Insert;
  end;

  cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').Value := strName;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').Value := stype;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').Value := saddress;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').Value := num;
  cxGrid1DBTableView1.DataController.DataSet.Post;
  //cxGrid1DBTableView1.DataController.DeleteRecord(i);
  //cxGrid1DBTableView1.DataController.RecNo := recNo - 1;

end;

procedure TForm3.cxButton_moveUpClick(Sender: TObject);   //上移
var
  i: Integer;
  recNo: Integer; //记录下位置
  strName, stype, saddress, num: string;
begin
  //i := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex;
  strName := cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').AsString;
  stype := cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').AsString;
  saddress := cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').AsString;
  num := cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').AsString;
  recNo := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex;
  if recNo = 0 then
    Exit;

  cxGrid1DBTableView1.DataController.MoveBy(-1);
  cxGrid1DBTableView1.DataController.Insert;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').Value := strName;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').Value := stype;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').Value := saddress;
  cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').Value := num;
  cxGrid1DBTableView1.DataController.DataSet.Post;
  cxGrid1DBTableView1.DataController.RecNo := recNo + 2;
  cxGrid1DBTableView1.DataController.DataSet.Delete;
  cxGrid1DBTableView1.DataController.RecNo := recNo;
  //cxGrid1DBTableView1.DataController.DeleteRecord(i + 1);

end;

 

转载于:https://www.cnblogs.com/yangxuming/p/9948712.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值