PB中通过单击数据窗口中的列来对数据进行排序

 
方法 A
一、在窗体中声明二实例对象:
// 取得上次单击的列对象
    string i_str_precolumn="" 
    //
判断上次是按升还是按降来排序
    integer i_int_clicktime=0
二、在数据窗口的单击事件 Clicked 中加如下代码:
string str_column,str_format
    str_column=dwo.name //
取点击的对象
    if right(str_column,2) <> "_t" then return
    //
对于列标题,取得的对象是列名 +"_t"
    str_column=left(str_column,len(str_column) - 2)
    if str_column=i_str_precolumn then //
已点击过
       if i_int_clicktime=0 then //0
表示原来按降序
          i_int_clicktime=1
          str_format=str_column + " A"
       else
          i_int_clicktime=0
          str_format=str_column + " D"
       end if
    else
       i_int_clicktime=1 //1
表示原来按升序
       str_format=str_column + " A"
    end if
    i_str_precolumn = str_column
    dw_1.SetSort(str_format)
    dw_1.Sort()
 
方法 B
一、在窗体中声明实例对象:
// 声明排序
   string is_sort = 'A'
二、在数据窗口的单击事件 Clicked 中加如下代码:
string   ls_column,ls_dwo,ls_sort    
 ls_column   =   string(dwo.name)  
 if   right(ls_column,2)   <>   "_t"   then   return   0    
 ls_dwo   =   mid(ls_column,1,len(ls_column)   -   2)  
 
 if is_sort = 'A'  then
 ls_sort   =   ls_dwo   +   "   A"
 is_sort = 'D'
 else
        ls_sort   =   ls_dwo   +   "   D"
   is_sort = 'A'
 end if
 this.setsort(ls_sort)  
 this.sort() 

你可能感兴趣的:(String,Integer)