// скрипт для импорта прайс-листа Биоритм { add('code',ftstring,50); add('code_goods',ftstring,50); add('name_goods',ftstring,300); add('code_producer',ftstring,50); add('name_producer',ftstring,300); add('code_country',ftstring,50); add('name_country',ftstring,300); add('price',ftstring,50); add('price_without_nds',ftstring,50); add('price_first',ftstring,50); add('price_first_with_nds',ftstring,50); add('nds',ftstring,50); add('shelf_life',ftstring,50); add('ex_rate',ftstring,50); add('price_rtl',ftstring,50); add('amount',ftstring,50); add('id_valuta',ftstring,50); add('min_amount',ftstring,50); add('units',ftstring,50); add('place_cap',ftstring,50); add('isliveneed',ftstring,50); add('price_registry',ftstring,50); add('barcode',ftstring,50); } // если вернуть закрытый датасет, то операция не будет продолжена, и предполагается, что скрипт самостоятельно разобрался с прайсом. // для самостоятельности скрипту передается ID - идентификатор прайса, который сейчас заливается. // но в целом задача скрипта - транспортировать данные из файла Filename в Dataset var MissStrings :integer; var // предопределенные скриптом переменные Filename :string; // Файл импорта SelfLoader :TPriceLoader; // вызывающий объект // собственные объекты var tmpDir :string; tmpfile :string; Mappings :string; dt :tdatetime; begin try tmpdir := includetrailingpathdelimiter(gettempdir+'tmpscriptimport-'+formatdatetime('dd-mm-yyyy-hh-nn-ss',now)); forcedirectories(tmpdir); tmpfile := tmpdir + extractfilename(FileName); copyfile(filename,tmpfile); try selfloader.Field_Name_Goods := 'Наименование'; SelfLoader.Field_Code_Goods := 'Код'; SelfLoader.Field_Shelf_Life := 'Срок годности'; SelfLoader.Field_Name_Producer := 'Производитель'; SElfLoader.Field_place_cap := 'Заводская упаковка'; SElfLoader.Field_Quantity := 'Остаток'; SElfLoader.Field_Price_Registry := 'Цена реестра без НДС'; SElfLoader.Field_Price := 'Цена продажи'; SElfLoader.Field_Seria := 'Серия'; readxls(selfloader.importcds, tmpfile,true,false,-1); //selfloader.importcds.savetofile('c:\temp\1.cds'); selfloader.importcds.first; //dt := strtodateprotected(selfloader.importcds.fields[0].asstring); //if dt<>0 then selfloader.dt_update := dt; missstrings := 0; selfloader.importcds.first; while not selfloader.importcds.eof and (selfloader.importcds.fields[0].asstring<>selfloader.field_code_goods) do begin inc(MissStrings); selfloader.importcds.next; end; //selfloader.importcds.savetofile('c:\temp\1.cds'); //createhinti(inttostr(missstrings)); // считаем, сколько строк пропустить readxls(selfloader.importcds, tmpfile,true,true,MissStrings); //selfloader.importcds.savetofile('c:\temp\2.cds'); //selfloader.importcds.savetofile('c:\temp\1.cds'); finally cleardir(tmpdir); deletedir(tmpdir); end; finally end; end.