Создание справочника корреспондентов по arhdoc.dbt для клиента

Автор:Alexander
Дата:10.09.2002
Просмотров:2911
Скачиваний:776
Оценка: - , Оценок - 0
Скачать (rar-файл; Размер - 9472)

Обсудить в форуме

Описание

Программа заполнения справочника корреспондентов для клиента
(для толстого Клиент-Банка и, надеюсь :), Интернет - клиента)
файлы clntw32.def, s_korr.dbt, s_kacc.dbt положите в ..\RsBank\DbFile
после работы программы в файлы s_korr.dbt, s_kacc.dbt отдайте клиенту (положить в каталог ..\ClientW\DbFile) - это корреспонденты(и их счета) клиента

s_korr.mac - старая версия программы - минимум данных - долгая работа
s_korr_new.mac - усовершенствованная программа - много данных - быстрая работа

Изменения в программе:
30.10.2002 увеличение скорости работы программы
обработка всех клиентов,
обработка всех счетов клиента,
создание дополнительной базы для Интернет-клиента - справочник корреспондентов ИНН
файлы clntbnk_.def (переименованный clntbnk.def), clbacc.dbt положите в ..\RsBank\DbFile
файлы Portal.def, s_korINN.dbt положите в ..\RsBank\DbFile
(s_korINN.dbt - мой пример довесок для инет-клиента - т.к. Вам он скорее всего не нужен - просто не запускайте программу по всем клиентам)
if(INN=="")/*ИНН клиента*/
flag_INN=false; /*заполнять ли дополнительную базу s_korINN.dbt*/
end;

можно пользоваться батником, в OBJ, например:
rsl32.exe ..\Dbfile\clntw32.def ..\Mac\ClientW\s_korr_new.mac

Ранее было: :(((
На тестовом клиенте по всем счетам:
период 1 месяц
обработано около 54000 записей
время работы где-то 10 минут
1100 корреспондентов
1200 счетов
Теперь на том же клиенте 1 минута! правда пришлось подключать дополнительные базы... - но расширилась и функциональность!

для универсальности (работа с новыми версиями) необходимо раскомментарить строку
/* оставить
if(GetTrue(false/*Flag_Version_New*/,"Новая версия программы(файлов) клиент-банк?")))
keynum(s_kacc,3);
end;
*/

Текст примера

 /*некоторые мелочи из тескста удалил - подробнее смотри в программе*/
/*инициализация переменных*/
if (not GetDate(DateC,"С какой даты выбирать корреспондентов."))
end;
if (not GetString(Acc,"Введите счет клиента. Пусто - по всем счетам.",20))
end;
/*  оставить
if(GetTrue(false/*Flag_Version_New*/,"Новая версия программы(файлов) клиент-банк?")))
  keynum(s_kacc,3);
end;
*/
/*пересоздание файлов - с чистого листа*/
if(not clone(s_korr))end;
if(not clone(s_kacc))end;
/*основная программа*/
if(Acc=="") /*выбираем ИНН клиента*/
  if (not GetString(INN,"Введите ИНН клиента, Пусто - по всем клиентам",12))
  end;
  keynum(clbacc,1);
  if(INN=="")/*по всем корреспондентам и всем их счетам*/
    if(not clone(s_korINN)) end;
    /**/
    While(next(clbclnt))
      INN=clbclnt.INN;
      GetAcc_INN(INN,Acc,"",AccArray);
      /*основной макрос*/
      s_korr_acc(DateC/*Дата проводки документа*/,AccArray/*счет клиента*/,INN/*ИНН клиента*/);
    End;
  else
    GetAcc_INN(INN,Acc,"",AccArray);
    /*основной макрос*/
    INN="";
    s_korr_acc(DateC/*Дата проводки документа*/,AccArray/*счет клиента*/,INN/*ИНН клиента*/);
  end;
else /*ищем по номеру счета ИНН клиента*/
 keynum(clbacc,0);
 INN=GetINN_Acc(Acc,"");
 if(INN=="")
   msgbox("В справочнике счетов в БОУРМ нет клиента с таким счетом");
   exit(1);
 end;
 AccArray(0)=Acc;
 INN="";
 /*основной макрос*/
 s_korr_acc(DateC/*Дата проводки документа*/,AccArray/*счет клиента*/,INN/*ИНН клиента*/);
end;
/*Конец!*/