Печать договоров по вкладчикам

Автор:григ
Дата:23.01.2002
Просмотров:4061
Скачиваний:2248
Оценка:, Оценок - 2
Сохранить в файле

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

Описание

Пример работы с Word

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

 /*Печать договоров по вкладчикам. Луппов Г.Б.*/
import deprinter,rslx,lgxs,lgs,BankInter,doctor;

file dc (depclnt) key 0;
file iso (isocur) key 1;

 /*получаем путь к шаблонам*/
 {mac}=GetIniString("MACRODIR");
 ndx=index({mac},";");
 if(ndx>0) {mac}=substr({mac},1,ndx-1); end;
 {mac}={mac}+"\\mymac\\depositr\\";

 /*печать договора*/
 macro f_print(dp,Шаблон,Подпись)
  array tt;

  tt(0)="dep_1.doc"; /*договор до востребования*/
  tt(1)="dep_2.doc"; /*срочный договор*/
  tt(2)="dep_3.doc"; /*договор до востребования в валюте*/

  if(dp.Code_Currency!=0)
   Шаблон=2;
  end;
  name=tt(Шаблон);

  if(IsStandAlone()) /*Двухзвенка*/
   wrd=ActiveX("Word.Application",null,true);
   /*namefile={mac}+name;*/
   path=dcGetCWD();
   ndx=dcindex(path,"\\");
   if(ndx>0) namefile=substr(path,1,ndx)+"mac\\mymac\\depositr\\"+name;
   else namefile="c:\\rsbank\\base\\mac\\mymac\\depositr\\"+name; end;
  else /*Трехзвенка*/
   wrd=TlgActiveX("Word.Application",true);
   namein={mac}+name;
   namefile=trim(lgFindFile(name));
   if(namefile=="")
    if(not lgServTerm(namein,name)) return; end;
   end;
   namefile="c:\\terminal\\"+name;
  end;

  do=dp.Start_DateDep;
  dc.CodClient=dp.CodClient;
  if(not GetEQ(dc))
   MsgBox("Не найден вкладчик!"); return;
  end;
  name=trim(dc.Sname)+" "+trim(dc.Name)+" "+trim(dc.Pname);
  name1=substr(trim(dc.Name),1,1)+"."+substr(trim(dc.Pname),1,1)+". "+trim(dc.Sname);
  pasport=trim(dc.DocIdMan);
  adres=trim(dc.Adress);

  /*Определяем процентную ставку по данному типу вклада
    на начало действия договора*/
  proc=PercRateTL(dp.Type_Account,dp.Start_DateDep);

  /*Определяем сумму договора на начало действия договора*/
  sum=RestAL(dp.Account,dp.Code_Currency,dp.Start_DateDep);

  sum1=string(sum);
  ndx=index(sum1,"."); if(ndx>0) sum1=substr(sum1,1,ndx-1)+"-"+substr(sum1,ndx+1); end;
  
  wrd.Documents.Open(namefile);
  adoc=wrd.ActiveDocument;

  if(dp.Code_Currency!=0)
   currency=dp.Code_Currency;
   iso.NumberCode=currency;
   if(GetEQ(iso))
    isocode=iso.IsoCode;
    namecurr=iso.NameCurr;
   else
    isocode=namecurr="";
   end;
   sum1=sum1+" "+isocode;
  end;

  if((Шаблон==0) or (Шаблон==2))
   ob=adoc.FormFields("Дата1");
   ob.Result=string(do:m);
   ob=adoc.FormFields("Дата2");
   ob.Result=string(do:m);
   ob=adoc.FormFields("Дата3");
   ob.Result=string(do:m);
   
   ob=adoc.FormFields("ФИО");
   ob.Result=name;
   ob=adoc.FormFields("ФИО2");
   ob.Result=name1;
   ob=adoc.FormFields("Паспорт");
   ob.Result=pasport;
   ob=adoc.FormFields("Адрес");
   ob.Result=adres;
  
   ob=adoc.FormFields("Сумма");
   ob.Result=CurToStrAlt(sum,null,null,dp.Code_Currency);
     ob=adoc.FormFields("Сумма1");
   ob.Result=sum1;

   ob=adoc.FormFields("Процент");
   ob.Result=string(proc:3:0);

   ob=adoc.FormFields("Счет");
   ob.Result=dp.TAccount;

   ndog=substr(dp.Account,3);
   ob=adoc.FormFields("Номер");
   ob.Result=ndog;

  elif(Шаблон==1)

   ob=adoc.FormFields("Дата1");
   ob.Result=string(do:m);
   ob=adoc.FormFields("Дата4");
   ob.Result=string(do:m);
   ob=adoc.FormFields("Дата5");
   ob.Result=string(do:m);

   ob=adoc.FormFields("Дата2");
   ob.Result=string(dp.End_DateDep:m);
   ob=adoc.FormFields("Дата3");
   ob.Result=string(dp.End_DateDep:m);
   
   ob=adoc.FormFields("ФИО");
   ob.Result=name;
   ob=adoc.FormFields("ФИО2");
   ob.Result=name1;
   ob=adoc.FormFields("Паспорт");
   ob.Result=pasport;
   ob=adoc.FormFields("Адрес");
   ob.Result=adres;
  
   ob=adoc.FormFields("Сумма");
   ob.Result=CurToStrAlt(sum,null,null,dp.Code_Currency);
     ob=adoc.FormFields("Сумма1");
   ob.Result=sum1;

   ob=adoc.FormFields("Процент");
   ob.Result=string(proc:3:0);

   ob=adoc.FormFields("Счет");
   ob.Result=dp.TAccount;

   if(dp.KindTerm==1)
    ob=adoc.FormFields("Дней");
    ob.Result=dp.Term;
   end;

   ndog=substr(dp.Account,3);
   ob=adoc.FormFields("Номер");
   ob.Result=ndog;

  else
   return;
  end;

  if(dp.Code_Currency!=0)
   ob=adoc.FormFields("Валюта");
   ob.Result=namecurr;
  end;

  if(Подпись==0)
   ob=adoc.FormFields("Boss1");
   ob.Result="Председателя Правления Саблина Владимира Валерьевича, действующего на основании Устава";
   ob=adoc.FormFields("Boss2");
   ob.Result="Председатель Правления Банка";
   ob=adoc.FormFields("Boss3");
   ob.Result="АКБ \"Первый Дортрансбанк\"                                                               В.В. Саблин";
  else
   ob=adoc.FormFields("Boss1");
   ob.Result="Заместителя Председателя Правления Скобелкина Владимира Гавриловича, действующего на основании доверенности N 1, от 24.05.2000 г.";
   ob=adoc.FormFields("Boss2");
   ob.Result="Заместитель Председателя Правления Банка";
   ob=adoc.FormFields("Boss3");
   ob.Result="АКБ \"Первый Дортрансбанк\"                                                               В.Г. Скобелкин";
  end;

  wrd.Visible=true;
  MsgBox("Отчет выведен в Word! Для переключения нажмите ALT+TAB!");
 
 end;

 /*Точка входа. dp - структура depositr.dbt*/
 macro main(dp)
  array tt;

  /*Проверить договор на тип до востребования
    (срочный депозит со сроком 100 лет)      */
  macro f_vostreb()
   if((dp.KindTerm==4) and (dp.Term==100)) /*Лет*/
    return true;
   end;
   return false;
  end;

  if(f_vostreb()) nm=0; else nm=1; end;

  tt(0)="~1.~ Договор до востребования"; 
  tt(1)="~2.~ Срочный договор";
  nm=menu(tt,null,null,null,null,nm);
  if(nm<0) return; end;

  asize(tt,2);
  tt(0)="1. Подпись Председателя Правления";
  tt(1)="2. Подпись Зам.Председателя Правления";
  nm1=menu(tt,null,"Подпись");
  if(nm1<0) return; end;

  f_print(dp,nm,nm1);
 end;
end;