
// Скрипт экспорта прайс-листа (минимальные цены) в XML-файл.

const
  ExportFileName = 'c:\temp\price.xls';


var
  Doc :Variant;
  SaveDialog :TSaveDialog;
  FileName :string;

  Node,RootNode,NodeDetail :Variant;
  Query :tQuery;


begin
  Filename := '';


  if exportfilename > '' then FileName := ExportFilename
  else begin
    // запрашиваем файл, куда будем класть данные. Учитываются данные предыдущего сеанса
    SaveDialog := TSaveDialog.create(nil);
    try
       SaveDialog.Title := 'Укажите файл';
       SaveDialog.FileName  := AppIniFile.readstring('plugin_exportxlsordbf','filename','');
       //SaveDialog.defaultext := ExportExt;
       if false //true //UseFormat = 0
       then
         SaveDialog.Filter := 'XML-файлы(*.xls)|*.xls'
       ;//else
       //  SaveDialog.Filter := 'TXT-файлы(*.txt)|*.txt';

       SaveDialog.filter := SaveDialog.Filter + '|Все файлы(*.*)|*.*';

       if  SaveDialog.execute then
       begin
           Filename := SaveDialog.FileName;
           AppIniFile.writestring('plugin_exportXLSordbf','filename',SaveDialog.filename);
       end;
    finally
      SaveDialog.free;
    end;
  end;

  // Судя по всему, нам дали отбой, уходим, понурив голову...
  if filename = '' then exit;


  Query := TQuery.create(nil);
  with TMyWait.create('Идет экспорт прайс-листа') do
  try
      Query.databasename := 'dbkassa';

      Query.sql.text := 'select b.name, min(a.rs_cena) as price,c.name as name_producer,d.name as name_country '+
                          ' from pr_tovar a join tovar b on a.nn = b.nn '+
                          ' left join producer c on a.producer = c.id '+
                          ' left join country d on c.country = d.id '+
                          ' where a.ostat>0 ' +
                          ' group by b.name,c.name,d.name ' +
                          ' order by b.name,c.name,d.name ';

      Query.open;


      progressbarpos := 0;
      progressbarmax := Query.recordcount;
      advancedtext := 'записей: '+inttostr(Query.recordcount);
      if false then
      begin
        Query.first;
        while not Query.eof do
        begin
            query.next;
            IncProgress;
        end;
      end;

      if true //UseFormat=0
      then begin
        TableCopyD(ExportFileName,Query);
      end;

      CreateHintI('Операция экспорта данных завершена');
  finally
    free;
    Query.free;
  end;

end.

