结果集手工排序

时间:2021-04-27 14:43:38

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

 

 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