- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
procedure TF_dvij.rg_sortClick(Sender: TObject);
var k :Integer;
    s,str1,str2 :string;
    fl :boolean;
begin
if G.Columns[9].Visible then
begin
  fl := Q_dvij.Active ;
  with Q_dvij do
  begin
    if fl then k := RecNo;
    if rg_sort.ItemIndex=0 then s:='order by obd,gr,exped,grot'
    else
    if rg_sort.ItemIndex=1 then s:='order by exped,gr,obd,grot'
    else
    if rg_sort.ItemIndex=2 then s:='order by gr,vp,exped,obd,grot'
    else
    if rg_sort.ItemIndex=3 then s:='order by id_korr,exped,obd,gr,grot'
    else
    if rg_sort.ItemIndex=4 then s:='order by grot,gr,exped,obd'
    else
      s:='order by strn,obd,gr,exped,grot';
      
    if rg_sort.ItemIndex=3 then
      begin
        str1 := 'select vp, id_korr,' ;           //100
        str2 := 'group by 1,2,3,4,5,6,7,8'          //192
      end
    else
      begin
        str1 := 'select vp, max(id_korr) as id_korr,' ;
        str2 := 'group by 1,3,4,5,6,7,8'
      end  ;
    Active:=false;
    SQL.Delete(100);
    SQL.Insert(100, str1 );
    SQL.Delete(192);
    SQL.Insert(192, str2 );
    SQL.Delete(262);
    SQL.Insert(262, s);
    Active:= fl;
    if fl then RecNo := k;
    G.Refresh;
  end;
end;