给纤检所做一个项目,对测试报告结果需要调整测试项目的顺序,之前做的是鼠标拖放来重新排列结果集的顺序,现在客户想通过一个向上和向下的按钮来调整结果集中记录的顺序,通过测试,可以通过下面的方法来简单操作(下面仅简单说明下上移动记录的方法,向下移动方法同此,略):
1 procedure TForm3.RzBitBtn1Click(Sender: TObject);
2 var
3 CurPos:TBookmark;
4 n,o:Integer;
5 begin
6 //向上移动,注意, ADODataSet1的IndexFieldName要设置成排序编号
7 if ADODataSet1.Bof then Exit;
8
9 //up
10
11 //记录当前记录位置
12 CurPos:=ADODataSet1.GetBookmark;
13 o:=ADODataSet1.FieldByName('排序编号').AsInteger;
14 ADODataSet1.Prior;
15
16 n:=ADODataSet1.FieldByName('排序编号').asinteger;
17 ADODataSet1.Edit;
18 ADODataSet1.FieldByName('排序编号').asinteger:=o;
19 ADODataSet1.Post;
20
21 ADODataSet1.GotoBookmark(CurPos);
22 ADODataSet1.Edit;
23 ADODataSet1.FieldByName('排序编号').asinteger:=n;
24 ADODataSet1.Post;
25
26 //ADODataSet1.GotoBookmark(CurPos);
27 end;
28
29
2 var
3 CurPos:TBookmark;
4 n,o:Integer;
5 begin
6 //向上移动,注意, ADODataSet1的IndexFieldName要设置成排序编号
7 if ADODataSet1.Bof then Exit;
8
9 //up
10
11 //记录当前记录位置
12 CurPos:=ADODataSet1.GetBookmark;
13 o:=ADODataSet1.FieldByName('排序编号').AsInteger;
14 ADODataSet1.Prior;
15
16 n:=ADODataSet1.FieldByName('排序编号').asinteger;
17 ADODataSet1.Edit;
18 ADODataSet1.FieldByName('排序编号').asinteger:=o;
19 ADODataSet1.Post;
20
21 ADODataSet1.GotoBookmark(CurPos);
22 ADODataSet1.Edit;
23 ADODataSet1.FieldByName('排序编号').asinteger:=n;
24 ADODataSet1.Post;
25
26 //ADODataSet1.GotoBookmark(CurPos);
27 end;
28
29