// скрипт для импорта прайс-листа БСС. используется процедурой Loader.LoadFromFileWithScript { 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 Filename :string; // Файл импорта SelfLoader :TPriceLoader; // запускающий объект var CDS :Tclientdataset; taDBF :TTable; tmpDir :string; tmpfile :string; Mappings :string; strval :string; begin if uppercase(extractfileext(filename))='.DBF' then begin taDBF := tTable.create(selfscript); taDBF.TableType := ttFoxpro; taDBF.tablename := filename; taDBF.Open; { Mappings := 'ID=CODE_GOODS;'+ 'NAME=NAME_GOODS;'+ 'SERIA=SERIA;'+ 'FIRM=NAME_PRODUCER;'+ 'country=NAME_COUNTRY;'+ 'god_to=SHELF_LIFE;'+ 'NDS=NDS;'+ 'PRICE=PRICE;'+ 'qnty_max=AMOUNT;'+ 'qnty_min=MIN_AMOUNT;'+ 'EAN=BARCODE;' ; } SElfLoader.InitFieldsToDefault; SelfLoader.InitImportCDS; //TableAppend(SelfLoader.ImportCDS,taDBF,false,Mappings); tadbf.first; while not tadbf.eof do begin with selfloader.importcds do begin if pos('УЦЕНКА',uppercase(tadbf.fieldbyname('name').asstring))=0 then begin append; fieldbyname('code_goods').asstring := tadbf.fieldbyname('ID').asstring; fieldbyname('name_goods').asstring := tadbf.fieldbyname('name').asstring; fieldbyname('seria').asstring := tadbf.fieldbyname('seria').asstring; fieldbyname('name_producer').asstring := tadbf.fieldbyname('firm').asstring; fieldbyname('name_country').asstring := tadbf.fieldbyname('country').asstring; fieldbyname('nds').asstring := tadbf.fieldbyname('nds').asstring; fieldbyname('shelf_life').asstring := tadbf.fieldbyname('god_to').asstring; fieldbyname('price').asstring := tadbf.fieldbyname('price').asstring; fieldbyname('amount').asstring := tadbf.fieldbyname('qnty_max').asstring; fieldbyname('min_amount').asstring := tadbf.fieldbyname('qnty_min').asstring; fieldbyname('barcode').asstring := tadbf.fieldbyname('ean').asstring; post; end; end; tadbf.next; end; end end.