// скрипт выгрузки прайс-листа для ЗАО Бонум. Используется почта x-price // предопределены переменные: VAR VariantName :string; // имя варианта в программе VariantFile :string; // файл-скрипт Dataset :tdataset; // файл с прайс-листом var MailMessage :Variant; Table :ttable; strValue :string; IntValue :integer; begin with TmyWait.create('Идет экспорт прайс-листа') do try MailMessage := CreateOleObject('xpricews.xpemailmessage'); if not MailMessage.srv.connected then mailMessage.srv.connectwp('Пользователь','1'); if not mailMessage.srv.connected then begin createhinte('Ошибка, сервер не подключен'); exit; end; MailMessage.id := 0; // инициализируем MailMessage.recipient := 'price@bonum.ru'; MailMessage.subject := 'Прайс-лист ООО Прайд'; table := ttable.create(nil); try table.tablename := GetUniqueFileName(gettempdir,'pride.dbf'); deletefile(table.tablename); BDEExecSQL( 'create table '+QuotedSTr(TAble.tablename) + ' ( '+ ' CODE_GOODS varchar(20),'+ ' NAME_GOODS varchar(200),'+ ' SHELF_LIFE date,'+ ' NAME_PRD varchar(200),'+ ' NAME_CNT varchar(100),'+ ' PRICE numeric(15,4),'+ ' DIVNUM integer,'+ ' BALANCE numeric(15,4),'+ ' NDS integer'+ ' )',[null]); // код товара у поставщика, // наименование товара у поставщика, // срок годности препарата, // наименование производителя, // страна производитель, // цена, // деление упаковки (кол-во в упаковки), // остаток на складе поставщика. table.open; dataset.disablecontrols; try progressbarmax := dataset.recordcount; dataset.first; while not dataset.eof do begin incprogress; table.append; IntValue := dataset.fieldbyname('id_goods').asInteger * 1000; IntValue := IntValue + dataset.fieldbyname('producer').asInteger; table.fieldbyname('code_goods').asstring := inttostr(IntValue); table.fieldbyname('name_goods').asstring := dataset.fieldbyname('name').asstring; table.fieldbyname('name_prd').asstring := dataset.fieldbyname('producername').asstring; table.fieldbyname('name_cnt').asstring := dataset.fieldbyname('countryname').asstring; if dataset.fieldbyname('srokkart').asdatetime<>0 then table.fieldbyname('shelf_life').asdatetime := dataset.fieldbyname('srokkart').asdatetime; table.fieldbyname('balance').asfloat := dataset.fieldbyname('ostat').asfloat; table.fieldbyname('price').asfloat := dataset.fieldbyname('rs_cena').asfloat; table.fieldbyname('nds').asinteger := dataset.fieldbyname('nds').asinteger; table.post; dataset.next; end; finally dataset.enablecontrols; end; table.close; MailMessage.addAttachment(TAble.tablename); MailMessage.save; finally table.free; end; finally free end; CreateHintI('Операция завершена, не забудьте доставить почту X-Price'); end.