Полная интеграция ПС Контакт и RS-Retail

Сканирование/отображение изображений в РС-Банк

 

Данный DLM-модуль был разработан для сканирования документа, удостоверяющего личность вкладчика(сканер должен поддерживать TWAIN-стандарт) и сохранения его на локальном диске с последующим просмотром. Работает как в 2-х, так и в 3-х звенке.
Так же возможно использование DLM-модуля для фотографирования клиента(проверялось с использованием web-камеры Genius VideoCAM Slim USB2)

Функции включенные в модуль:

void fsfshow(put,codclient,fio,buttons,del_button) - функция отображения файла.
Параметры:
string put - каталог размещения файлов с изображениями
string codclient - имя файла. Будут отображены все файлы по маске codclient*.jpg[.bmp]
string fio - подпись изображения
string buttons - признак отображения панели с кнопками(next,prev,delete), может быть "0" или "1"
string del_button - призанк отображения кнопки удаления, может быть "0" или "1"

void fsfprov(retval,put,codclient) - функция проверки наличия файла с именем
codclient в директории put

Параметры:
retval - возвращаемое значение
0
- файл есть
1 - есть хотя бы один файл удовлетворяющий маске codclient*.jpg[.bmp]
2 - директории нет
string put - каталог размещения файлов с изображениями
string codclient - имя файла

void fsfscan(put,codclient,retval) - функция сканирования изображения и его сохранение
в файл с именем codclient.jpg в директории put

Параметры:
string put - каталог размещения файлов с изображениями
string codclient - имя файла
retval - возвращаемое значение
0 - подпись отсканирована
1 - TWAIN-устройство не подключено
2 - TWAIN-устройство не выбрано
3 - Отсутствует директория для сохранения
4 - В системе отсутствует TWAIN-устройство

А
вот так все это можно использовать

 содержимое макроса scaner.mac ложим в каталог рс-банка, куда прописаны пути
 
import "filsign.d32";
import rsexts;
 
/*
Ф-я scansign выпоняет сканирование подписи клиента, сохранение ее в файл на локальном диске и отображает подпись
для работы необходим dlm-модуль filsign.d32, содержащий ф-ии: fsfscan - сканирование, fsfprov - проверка существования подписи и каталога подписей, fsfshow -просмотр
Возвращаемые значения ф-ей fsfscan:
0 - подпись сосканирована
1 - TWAIN-устройство не подключено
2 - TWAIN-устройство не выбрано
3 - Отсутствует директория для сохранения
4 - В системе отсутствует TWAIN-устройство
Возвращаемые значения ф-ей fsfprov:
0 - файл есть
1 - файла нет
2 - директории нет
*/
 
macro scandoc(put,codclient,fio)
  var i,t,retval=0,mv;
  if(IsStandAlone())
    fsfprov(t,put,"f"+codclient);
    if(t==0)
      if(MsgBoxEx("Документ клиента уже введен.
 Сканировать повторно?",MB_YES+MB_NO)==IND_YES)
        fsfscan(put,"f"+codclient,retval);
      end;
    elif(t==1)
      retval=fsfscan(put,"f"+codclient,retval);
      if(retval!=0)
        MsgBox("Ошибка сканирования № "+retval);
      else
        fsfshow(put,"f"+codclient,fio);
      end;
    elif(t==2)
      MsgBox("Отсутствует директория с подписями");
    end;
      [Документ клиента отсканирован];
  else
    t=CallRemoteRsl ("rtab.mac","_fsfprov",put,"f"+codclient);
    if(t==0)
      if(MsgBoxEx("Документ клиента уже введен.
 Сканировать повторно?",MB_YES+MB_NO)==IND_YES)
        retval=CallRemoteRsl ("rtab.mac","_fsfscan",put,"f"+codclient,fio);
        if(retval!=0)
          MsgBox("Ошибка сканирования № "+retval);
        else
          CallRemoteRsl ("rtab.mac","_fsfshow",put,"f"+codclient,fio);
        end;
      end;
    elif(t==1)
      retval=CallRemoteRsl ("rtab.mac","_fsfscan",put,"f"+codclient,fio);
      if(retval!=0)
        MsgBox("Ошибка сканирования № "+retval);
      else
        CallRemoteRsl ("rtab.mac","_fsfshow",put,"f"+codclient,fio);
      end;
    elif(t==2)
      MsgBox("Отсутствует директория с подписями");
    end;
    [Документ клиента отсканирован];
  end;
end;
 
/*
Ф-я showdoc отображает отсканированный документ клиента из файла на локальном 
диске для работы необходим dlm-модуль filsign.d32
ф-я fsfshow проверяет наличие файла подписи клиента, к-й должен называться 
  CodClient*.jpg[.bmp]
если подпись состоит более чем из 1 файла, то необходимо включить кнопки 
навигации 3 параметр(0/1), для возможности удалять файлы включить 4 парметр(0/1)
так же возможно увеличение/уменьшение изображения подписи при помощи клавиш +/- на дополнительной клавиатуре
*/
macro showdoc(put,codclient,fio)
  var t;
  if(IsStandAlone())
    fsfprov(t,put,"f"+codclient);
    if(t==0)
      fsfshow(put,"f"+codclient,fio,"1","0");
    elif(t==1)
      MsgBox("Отсутствует файл с подписями");
    elif(t==2)
      MsgBox("Отсутствует директория с подписями");
    end;
    [Графическая информация отображена];
  else
    t=CallRemoteRsl ("rtab.mac","_fsfprov",put,"f"+codclient);
    if(t==0)
      CallRemoteRsl ("rtab.mac","_fsfshow",put,"f"+codclient,fio, "1","0");
    elif(t==1)
      MsgBox("Отсутствует файл с подписями");
    elif(t==2)
      MsgBox("Отсутствует директория с подписями");
    end;
    [Графическая информация отображена];
  end;
end;
 
содержимое макроса rtab.mac ложим его на терминал в каталог mac
 
import "filsign.d32";
 
var r,i;
 
macro _fsfshow(put,codclient,fio,pr_multi,pr_del)
  fsfshow(put,codclient,fio,pr_multi,pr_del);
end;
 
macro _fsfscan(put,codclient,r)
  r=0;
  fsfscan(put,codclient,r);
  return r;
end;
 
macro _fsfprov(put,codclient)
  r=0;
  fsfprov(r,put,codclient);
  return r;
end;
 
пример вызова:
scandoc("\\gempel\bank\filsign", "f100001_1");
scandoc("\\gempel\bank\filsign", "f100001_2");
showdoc("\\gempel\bank\filsign", "f100001", "Иванов И.И.");