Экспорт информации из справочника материалов в файл
Перейти к навигации
Перейти к поиску
uses Classes, SysUtils; function BoolToStr(b1 : Boolean) : String; begin if b1 then result := '1' else result := '0'; end; const razdel = '|'; nl = #$0D#$0A; var i, k : Integer; mi : TMatItem; mci : TMatColorItem; cli : TColorItem; f : TStringStream; st, st2 : String; vni : TValutaNameItem; rp : TRPParam; MatRazdelItem : TMaterialRazdelItem; ProizvodItem : TProizvodItem; EdIzm : TEdIzm; begin f := TStringStream.Create; st := ''; st := st + 'ID_Mat' + razdel; st := st + 'ID_Color' + razdel; st := st + 'Наименование' + razdel; st := st + 'Артикул' + razdel; st := st + 'Цвет' + razdel; st := st + 'Цена' + razdel; st := st + 'Валюта' + razdel; st := st + 'Производитель' + razdel; st := st + 'Производитель ID' + razdel; st := st + 'Раздел' + razdel; st := st + 'Раздел ID' + razdel; st := st + 'Единица измерения' + razdel; st := st + 'Единица измерения ID' + razdel; st := st + 'Кроить длину' + razdel; st := st + 'Индивидуальные параметры раскроя' + razdel; st := st + 'Длина' + razdel; st := st + 'Неликвид' + razdel; st := st + 'Мусор' + razdel; st := st + 'Параллельный раскрой' + razdel; st := st + 'Складировать обрезки' + razdel; st := st + nl; f.WriteString(st); for i := 0 to gd.MatersDB.Items.Count-1 do begin mi := gd.MatersDB.Items.GetByNum(i); for k := 0 to mi.Colorsm.Count-1 do begin mci := mi.Colorsm.GetByNum(k); st := ''; st := st + inttostr(mi.Id) + razdel + inttostr(mci.Id) + razdel + mi.Name + razdel + mci.Art + razdel + mci.ColorName + razdel + floattostrf(mci.Price, ffFixed, 18, 2) + razdel; // Валюта vni := ValutaName.Items.GetById(mci.IdValuta); st2 := ''; if assigned(vni) then st2 := vni.Name; st := st + st2 + razdel; // Производитель + Производитель ID ProizvodItem := gd.Proizvods.Items.GetById(mi.System); st2 := ''; if assigned(ProizvodItem) then st2 := ProizvodItem.Name; st := st + st2 + razdel; st := st + inttostr(mi.System) + razdel; // Раздел + Раздел ID MatRazdelItem := gd.MaterialRazdel.Items.GetById(mi.IdRazdel); st2 := ''; if assigned(MatRazdelItem) then st2 := MatRazdelItem.Name; st := st + st2 + razdel; st := st + inttostr(mi.IdRazdel) + razdel; // Единица измерения + Единица измерения ID EdIzm := gd.EdIzm.GetById(mi.Izm); st2 := ''; if assigned(EdIzm) then st2 := EdIzm.Name; st := st + st2 + razdel; st := st + inttostr(mi.Izm) + razdel; // Кроить длину st := st + BoolToStr(mi.RPMade) + razdel; if mi.RPMade then begin // Индивидуальные параметры раскроя st := st + BoolToStr(mci.RPIndividual) + razdel; rp := mi.RPParam; if mci.RPIndividual then rp := mci.RPParam; st := st + floattostr(rp.Long) + razdel + floattostr(rp.Nelikv) + razdel + floattostr(rp.Musor) + razdel; st := st + BoolToStr(rp.Paral) + razdel + BoolToStr(rp.DoSkladObrez) + razdel; end; st := st + nl; f.WriteString(st); end; end; f.SaveToFile('maters.txt'); f.Free; end.