// скрипт для импорта прайс-листа. используется процедурой 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_Code_Goods := 'Наш код'; SelfLoader.Field_Name_Producer := 'Производитель'; SelfLoader.Field_code_Producer := 'Код произв_'; SelfLoader.Field_seria := 'Серия'; SelfLoader.Field_Shelf_life := 'Срок годности'; SElfLoader.Field_place_cap := 'Зав_ упак_'; SElfLoader.Field_units := 'Ед_ изм'; selfloader.field_price := 'Цена с НДС'; selfloader.field_nds := 'Ставка НДС'; SElfLoader.Field_quantity := 'Остаток'; selfloader.field_price_registry := 'ГРЦ'; readxls(selfloader.importcds, tmpfile,false,true,4); with selfloader.importcds do begin first; while not eof do begin if (fieldbyname('Цена с НДС').asstring = '') // это не строка прайса then delete else next; end; end; //selfloader.importcds.savetofile('c:\temp\1.cds'); finally cleardir(tmpdir); deletedir(tmpdir); end; finally end; end.