Предлагаемый здесь вариант работы используется в системах Центральная база <-> Аптечный пункт/магазин/торговая точка для автоматизации заказов, формируемых на местах и пересылаемых в центральную базу. Импортированные заявки попадают в список заявок, где и обрабатываются.
Для функционирования этой системы потребуется канал для передачи файлов-пакетов заявок. Например, это может быть система Solex с ее методикой обмена файлами.
После того, как файл-пакет заявок поступил на локальный диск, его обрабатывает скрипт импорта заявок. Скрипт этот может быть прописан или в настройках сканирования каталогов, или как отдельный пункт меню. Скрипт использует стандартную функцию, прописанную в FastReport: ImportPreqs. Все остальное зависит от деталей реализации. Вот простой пример такого скрипта:
файл office_import_preq.pas
// Скрипт импорта заявок, переданных через стандартные файлы заявок
// DirName должно быть определено одним из следующих способов
const DirName = 'c:\mail\in\'; // на случай жесткого запуска по таймеру
//var DirName :string; // Имя базового каталога, в котором происходит поиск, если настроено через сканирование каталогов
procedure import_preqs;
var
FList :TSTringList;
i :integer;
SRV :variant;
begin
FList := TStringlist.create;
try
GetFileList(DirName,FList,'exportpreq*.zip',true,true);
for i := 0 to FList.count-1 do
begin
try
ImportPreqs(FList[i]);
deletefile(fList[i]);
except
try
createhinte(ExceptMessage,'Ошибка импорта');
SRV := CreateOleObject('SOLEX.XPRSRV');
SRV.Connectwp('Пользователь','1');
SRV.CreateNotify(ExceptMessage);
except
createhinte(ExceptMessage,'Сохранение уведомления в solex');
end;
end;
end;
CreateHint('Обработано файлов: '+inttostr(FList.Count));
finally
FList.free
end;
end;
begin
import_preqs;
end.