Експорт інформації з Каталогу матеріалів у файл

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

Файл:ExportMat.rar

 Використовує
   Класи, SysUtils;
        
функція BoolToStr(b1 : Boolean) : Рядок;
 починатися
   якщо b1, то
     результат := '1'
   ще
     результат := '0';
 кінець;
 const
   razdel = '|';
   nl = #$0D#$0A;
 var
   i, k : Ціле число;
   mi : TMatItem;
   mci : TMatColorItem;
   cli : TColorItem;
   f : TStringStream;
   ст, ст2 : Струна;
   vni : TValutaNameItem;
   rp : TRPParam;
   MatRazdelItem : TMaterialRazdelItem;
   ProizvodItem : TProizvodItem;
   ЕдІзм : ТЕдІзм;
 починатися
   f := TStringStream.Create;
   st := '';
   st := st + 'ID_Mat' + razdel;
   st := st + 'ID_Color' + razdel;
   st := st + 'Номінал' + раздель;
   st := st + 'SKU' + раздель;
   st := st + 'Колір' + раздель;
   st := st + 'Ціна' + раздель;
   st := st + 'Валюта' + раздель;
   st := st + 'Виробник' + razdel;
   st := st + 'Ідентифікатор виробника' + razdel;
   st := st + 'Partition' + razdel;
   st := st + 'ID section' + razdel;
   st := st + 'Одиниця' + раздель;
   st := st + 'Одиниця виміру ID' + раздель;
   st := st + 'Довжина відрізу' + раздель;
   st := st + 'Індивідуальні параметри різання' + раздель;
   st := st + 'Довжина' + раздель;
   st := st + 'Неліквід' + раздель;
   st := st + 'Сміття' + раздель;
   st := st + 'Паралельне різання' + раздель;
   st := st + 'Магазинні обрізки' + раздель;
   st := st + nl;
   f.WriteString(st);
   для i := 0 до gd. MatersDB.Items.Count-1 do
   починатися
     мі := гр. MatersDB.Items.GetByNum(i);
     для k := 0 до mi.Colorsm.Count-1 зробити
     починатися
       mci := mi.Colorsm.GetByNum(k);
       st := '';
       st := st + inttostr(mi.Id) + razdel +
                  inttostr(mci.Id) + razdel +
                  mi.Name + раздель +
                  mci.Art + раздель +
                  mci.ColorName + razdel +
                  floattostrf(mci.Price, ffFixed, 18, 2) + раздель;
       Валюта
       vni := ValutaName.Items.GetById(mci.IdValuta);
       st2 := '';
       Якщо призначено (VNI), то
         СТ2 := ВНІ. Ім'я;
       st := st + st2 + razdel;
      
Виробник + Ідентифікатор виробника
       ProizvodItem := гр. Proizvods.Items.GetById(mi.System);
       st2 := '';
       якщо призначено (ProizvodItem), то
         st2 := ProizvodItem.Name;
       st := st + st2 + razdel;
       st := st + inttostr(mi.System) + razdel;
               
Розділ + Ідентифікатор розділу
       MatRazdelItem := гр. MaterialRazdel.Items.GetById(mi.IdRazdel);
       st2 := '';
       якщо призначено (MatRazdelItem), то
         st2 := MatRazdelItem.Name;
       st := st + st2 + razdel;
       st := st + inttostr(mi.IdRazdel) + razdel;
      
Одиниця + ідентифікатор одиниці
       ЕдІзм := гд. EdIzm.GetById(mi.Izm);
       st2 := '';
       якщо призначено (EdIzm), то
         st2 := EdIzm.Name;
       st := st + st2 + razdel;
       st := st + inttostr(mi.Izm) + раздель;
      
Довжина відрізу
       st := st + BoolToStr(mi.RPMade) + razdel;
       якщо mi.RPMade, то
       починатися
         Індивідуальні параметри різання
         st := st + BoolToStr(mci.RPIndividual) + razdel;
         rp := mi.RPParam;
         якщо mci.RPIndividual, то
           rp := mci.RPParam;
         st := st + floattostr(rp. Довгий) + раздель + поплавок(рп. Nelikv) + раздель + флоаттостр(рп. Musor) + раздель;
         st := st + BoolToStr(rp. Paral) + раздель + BoolToStr(rp. DoSkladObrez) + раздель;
       кінець;
       st := st + nl;
       f.WriteString(st);
     кінець;
   кінець;
   f.SaveToFile('maters.txt');
   f. Безкоштовний;
 кінець.
‎