Выгрузка остатков в справочную Фармклиент8
Материал из wiki.standart-n.ru
Версия от 17:51, 1 апреля 2016; BeTePoK (обсуждение | вклад)
выгрузка
- Параметр пути для выгрузки файла вместе с именем файла
INSERT INTO PARAMS ( PARENT_ID, PARAM_ID, PARAM_CAPTION, PARAM_TYPE, PARAM_VALUE, AUDIT_ID, IMAGEINDEX, STATUS, INSERTDT, SORTING, PARAM_TYPE_DATA, PACKET) VALUES ( -30, 'PHARMCLIENT_EXPORT_PATH', 'Путь для экспорта данных в ФармКлиент8', 1, NULL, 0, NULL, 0, '9-MAR-2016 15:04:03.215', NULL, NULL, 27373);
- ТМС выгрузки
INSERT INTO GROUPS ( PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES ( -400, 'Выгрузить данные в ФармКлиент', 'TMS', 0, '24-JAN-2014 14:15:09', 0, NULL, -1, NULL, NULL, NULL, 0, NULL);
- содержимое ТМС
uses Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Messages, SysUtils, ToolWin, ImgList, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, unMain,DB, IBQuery, IBDatabase, unDM, DBTables, cfdxUtils, Menus, System, Buttons, ExtCtrls, StdCtrls, cfSelectEdit, Math, gb_table, Grids, ClipBrd, DBGrids, unFrameCustomDict, cfWindows; var q: TIBQuery; katalog:string; Xml: TStringList; db: TIbDatabase; begin q:=TIBQuery.create(nil); db:=dm.FindComponent('db'); q.Database:=db; //q:=dm.TempQuery(nil); q.Active:=false; q.SQL.text:='select PARAM_VALUE from PARAMS where PARAM_ID=''PHARMCLIENT_EXPORT_PATH'''; q.Active:=true; katalog:=q.FieldByName('PARAM_VALUE').AsString;//'C:\Example1.xml' q_update.FieldByName('id').AsString try if katalog <> '' then begin Xml := TStringList.Create; Xml.Add ('<?xml version="1.0" encoding="windows-1251"?>'); Xml.Add ('<ДокументПрайс Идентификатор="Пусто">'); Xml.Add (' <Заголовок>'); Xml.Add (' <Логин>HILE10</Логин>'); Xml.Add (' <Пароль>TvlBkt</Пароль>'); Xml.Add (' <Версия_Клиента>Лекарь(Емлина, 10)</Версия_Клиента>'); //Xml.Add (' <Серийный_Номер>E01BEB73</Серийный_Номер>'); Xml.Add (' </Заголовок>'); Xml.Add ('<ПрайсЛист>'); Xml.Add (' <Аптека Код="20751">'); q.Active:=false; q.SQL.text:='select wb.part_id,wb.price,cast(wb.quant as integer) as quant,wb.godendo,wb.barcode,wb.sname,wb.sizg from vw_warebase wb where wb.quant > 0.001;'; q.Active:=true; while not q.eof do begin Xml.Add (' <ТоварнаяПозиция>'); Xml.Add (' <КодТовара>'+q.FieldByName('part_id').AsString+'</КодТовара>'); Xml.Add (' <Цена>'+q.FieldByName('price').AsString+'</Цена>'); Xml.Add (' <Количество>'+q.FieldByName('quant').AsString+'</Количество> '); Xml.Add (' <СрокГодности>'+q.FieldByName('godendo').AsString+'</СрокГодности>'); Xml.Add (' <EAN13>'+q.FieldByName('barcode').AsString+'</EAN13>'); Xml.Add (' <ИмяПреп>'+q.FieldByName('sname').AsString+'</ИмяПреп>'); Xml.Add (' <Производитель>'+StringReplace(StringReplace(q.FieldByName('sizg').AsString,'<','<',1),'>','>',1)+'</Производитель>'); Xml.Add (' </ТоварнаяПозиция>'); q.next; end; Xml.Add (' </Аптека>'); Xml.Add ('</ПрайсЛист>'); Xml.Add ('</ДокументПрайс>'); Xml.SaveToFile (katalog); end; finally Xml.Free; ShowMessage('Готово!'); end; end;