// скрипт для импорта прайс-листа. используется процедурой Loader.LoadFromFileWithScript // на вход подается открытый Dataset, который нужно заполнить в соответствии с полями: // если вернуть закрытый датасет, то операция не будет продолжена, и предполагается, что скрипт самостоятельно разобрался с прайсом. // для самостоятельности скрипту передается ID - идентификатор прайса, который сейчас заливается. // но в целом задача скрипта - транспортировать данные из файла Filename в Dataset var // предопределенные скриптом переменные Filename :string; // Файл импорта SelfLoader :TPriceLoader; // вызывающий объект // собственные объекты var tmpDir :string; tmpfile :string; Mappings :string; 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_Name_Producer := 'Производитель'; SelfLoader.Field_Name_Country := 'Страна'; selfloader.field_price := 'Цена с НДС'; selfloader.field_nds := 'Ставка НДС'; selfloader.field_isliveneed := 'ЖВ'; selfloader.field_price_registry := 'Гос_ реестр'; selfloader.field_shelf_life := 'Срок годности'; SElfLoader.Field_place_cap := 'Цех_ упак_'; SElfLoader.Field_quantity := 'Остаток'; readxls(selfloader.importcds, tmpfile,true,true,7); with selfloader.importcds do begin first; while not eof do begin edit; if fieldbyname('ЖВ').asstring = '+' then fieldbyname('ЖВ').asstring := '1' else fieldbyname('ЖВ').clear; post; next; end; end; //selfloader.importcds.savetofile('c:\temp\1.cds'); finally cleardir(tmpdir); deletedir(tmpdir); end; finally end; end.