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;

 

posted @ 2018-11-12 20:03  夏天的西瓜君  阅读(815)  评论(0编辑  收藏  举报