Экспорт информации из справочника материалов в файл
Перейти к навигации
Перейти к поиску
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.