Выгрузка остатков в справочную Фармклиент8

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск

выгрузка

  • Параметр пути для выгрузки файла вместе с именем файла
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,'<','&lt',1),'>','&gt',1)+'</Производитель>');
     Xml.Add ('    </ТоварнаяПозиция>');
     q.next;
   end;

   Xml.Add ('  </Аптека>');
   Xml.Add ('</ПрайсЛист>');
   Xml.Add ('</ДокументПрайс>');

   Xml.SaveToFile (katalog);
  end;
 finally
   Xml.Free;
   ShowMessage('Готово!');
 end;

end;

Инструкция по работе с выгрузкой в ФармКлиенте

Медиа:Перегрузка_в_программу_abonent8.docx