Стоит посмотреть
Печать договоров по вкладчикам
Сохранить в файлеОбсудить в форуме
Описание
Пример работы с 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;