Експорт інформації з довідника замовників у файл

Матеріал з ADGroupWiki
Перейти до навігації Перейти до пошуку

Приклад отримання інформації про замовників із вивантаженням результатів у файл.

uses    
 SysUtils, Classes;

const
  delim = '|'; // роздільник даних у рядку
// nl = #$0D#$0A; // ознака кінця рядка
 
procedure SaveClientsInfoToFile(fn: string);
// процедура вивантажує інформацію про клієнтів у зовнішній файл
var
  f: TStringStream; // потік для вивантаження у зовнішній файл
  line, pass, dealer_code, nl: string;
  i: integer;
  client: TZakazchikItem; // клієнт
begin
  nl := Chr(13) + Chr(10); 
  
  f := TStringStream.Create; // створюємо потік для вивантаження даних
  line := 'id'+delim+'code'+delim+'city'+delim+'phone'+delim+'email'+delim+'email'+delim+'pass'+delim+'direction'+delim+'type'+delim+'region'+nl;
  // формуємо заголовок (для розуміння які дані в колонці)
  f.WriteString(line); // пишемо заголовок у потік 

  for i:=0 to gd.Zakazchik.Items.Count-1 do // проходимося по всіх клієнтах    
  begin     
    pass := ; // обнуляємо значення пароля
    dealer_code := ; // і коду дилера
                                 
    client := gd.Zakazchik.Items.GetByNum(i); // отримуємо інформацію про клієнта
       
    if client.Typ = 2 then // якщо клієнт - дилер
    begin     
      pass := client.Param2.GetDealerPass(gd.GlobalPar.DealerDatabaseId); // дістаємо його пароль
      dealer_code := client.Param2.FDealerCode; // читаємо значення коду дилера
    end;
    
    line := // формуємо поля для відображення (послідовність має відповідати перерахуванню в заголовку!)
      IntToStr(client.Id) + delim + 
      dealer_code + delim + 
      client.City + delim + delim +
      client.Tel + delim + delim +
      client.Email + delim + delim +
      pass + delim + delim +
      client.Napr + delim + delim +
      IntToStr(client.Typ) + delim +
      client.Oblast + 
      nl; 

    f.WriteString(line); // пишемо інформацію про клієнта в потік
  end;
  
  f.SaveToFile(fn); // зберігаємо потік у файл
  f.Free; // звільняємо потік
end;

begin
  SaveClientsInfoToFile('clients.txt');  
end;