Práce s vybranými záznamy, export do txt souboru, dotaz na soubor

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

Výběr jednoho záznamu pomocí standardního prohlížeče

Skript ukazuje jak lze využít standardního prohlížeče pro zvolení jednoho záznamu. Skript lze spustit volně (není třeba žádná asociace).

 

var

 Br: TBrowser;

 CL2: string;

begin

 Br := TBrowser(GlobalFindComponent('BrCl2', 'TBrowser'));

 if Br = nil then RaiseException('Browser pro činnosti nebyl nalezen');

 if Br.ShowModal(True) then begin

   CL2 := Br.Results.ParamByName('id_cl2').AsString;

   OkBox(Format('Zvolena činnost %s', [CL2]));

 end;

end.

 

Převzetí vybraných záznamů z prohlížeče

Skript ukazuje jak převzít vybrané záznamy z prohlížeče, zformátovat údaje a vyexportovat do souboru s čárkovým oddělovačem. Příklad předpokládá asociaci skriptu s prohlížečem Uskutečněné plnění.

 

var

 Qry: TQuery;

 List: TStringList;

 SaveDlg: TSaveDialog;

begin

 //vytvoř řádkový seznam

 List := TStringList.Create;

 try

   //vytvoř dotaz pro procházení vybraných záznamů

   Qry := TQuery.Create(nil);

   try

     Qry.DatabaseName := DefaultDatabaseName;

     Qry.SQL.Add('select * from #selrows');

     Qry.Open;

   

     //řádek po řádku zformátuj a ulož do seznamu List

     while not Qry.Eof do begin

       List.Add(

         Qry.FieldByName('rada').AsString+','+

         Qry.FieldByName('id_dokl').AsString+','+

         '"'+Qry.FieldByName('_odberatel').AsString+'",'+

         Qry.FieldByName('ico').AsString+','+

         Qry.FieldByName('multi').AsString+','+

         Qry.FieldByName('vsym').AsString+','+

         FloatToStrPoint(Qry.FieldByName('celkem_ciz').AsFloat)+','+

         '"'+FormatDateTime('YYYY-MM-DD',

              Qry.FieldByName('datsplat').AsDateTime)+'"'

       );

     

       Qry.Next;

     end;

   finally

     Qry.Free;

   end;

 

   //zeptej se na soubor a seznam ulož

   SaveDlg := TSaveDialog.Create(nil);

   try

     SaveDlg.Filter := 'Textové soubory|*.txt';

     SaveDlg.DefaultExt := 'txt';

     if SaveDlg.Execute then

       List.SaveToFile(SaveDlg.FileName);

   finally

     SaveDlg.Free;

   end;

   OKBox(Format('Export dokončen (počet záznamů: %d).', [List.Count]));

 finally

   List.Free;

 end;

end.

 

Související témata