给纤检所做一个项目,对测试报告结果需要调整测试项目的顺序,之前做的是鼠标拖放来重新排列结果集的顺序,现在客户想通过一个向上和向下的按钮来调整结果集中记录的顺序,通过测试,可以通过下面的方法来简单操作(下面仅简单说明下上移动记录的方法,向下移动方法同此,略):
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