Вход

Разработка генератора банковских отчетов в системе Diasoft v.3.6.1.

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 146088
Дата создания 2008
Страниц 122
Источников 31
Мы сможем обработать ваш заказ (!) 19 апреля в 16:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
5 160руб.
КУПИТЬ

Содержание

Содержание
Введение
1. Анализ банковской деятельности в области формирования отчетности.
1.1 Технологии и инструменты подготовки банковской отчетности
1.1.1 Регламенты и технология подготовки отчетности
1.1.2 Способы и инструменты подготовки обязательной отчетности
1.1.3. Способы и инструменты подготовки налоговой отчетности
2. Теоретическая часть
2.1 Область применения технологии 5NT EIS
2.2 Технология реализации
2.2.1. Основные определения
2.3. Архитектура построения взаимодействия между базами данных
2.4 Системные требования к серверу резерва
2.5 Порядок инсталляции
2.5.1 Установка Replication Server (Rs)
2.5.2 Установка Replication Server Manager (RSM)
2.5.3 Установка Plug-in RSM
2.5.4 Настройка репликации по схеме Warm Standby
2.6 Обслуживание системы
2.6.1 Перенос копии рабочей базы в базу-получатель
2.6.2 Проверка реплицированных таблиц
2.6.3 Настройка выполнения отчетов на сервере резерва
2.6.4 Переход на резервный сервер
2.6.5 Переход на работу только с основным сервером
3. Технологическая часть
3.1 Инсталляция серверной части
3.1.1 Установка сетевого программного обеспечения
3.2 Инсталляция клиентской части
4. Практическая часть
Список литературы
Приложение 1. Реализация схемы Warm Standby

Фрагмент работы для ознакомления

,
@CommFrom = %CommFrom!,
@CommTo = %CommTo!
-- вычисляем даты
select @DateFrom = dateadd(dd,(-1)*(datepart(dd,@RepDate1)-1),@RepDate1)
,@dateTo = @RepDate1
------------- ЗАПОЛНЯЕМ ТАБЛИЦЫ -----------------
------------- автопотребы
insert into #Auto
select oc.ObjectID, c.ObjclassifierID, c.Name
from tObjClassifier c #M_NOLOCK_INDEX(XAK0tObjClassifier),
tObjClsRelation oc #M_NOLOCK_INDEX(XIE0tObjClsRelation)--,
where c.parentID = (select ObjClassifierID
from tObjclassifier #M_NOLOCK_INDEX(XAK0tObjClassifier )
where number = 2269
and ObjType = 1
and ParentID = 0 -- клиенты
)
and oc.ObjClassifierID = c.ObjClassifierID
and oc.ObjType =1
---------------------------------------------------------------
-------------- СТАВКИ ПО БАНКОВСКИМ ПРОДУКТАМ -----------------
declare @ObjectID numeric(15,0)
,@BankProductID numeric(15,0)
,@SubjectID numeric(15,0)
,@GroupAccrServID numeric(15,0)
,@AccrServID numeric(15,0)
,@CardInstrID numeric(15,0)
,@DopSoglID numeric(15,0)
,@DateReport smalldatetime
,@Date smalldatetime
,@Contr numeric(15,0)
,@FixQty float


insert #BankProduct
select distinct BankProductID
from tBankProduct (index XPKtBankProduct)

select @BankProductID = min(BPID) from #BankProduct
while @BankProductID is not null
begin
exec Cons_GetAccrServ
@BankProductID = @BankProductID,
@ContractID = 0,
@FundID = -1,
@PercentType = 201,
@Type = 26, -- MARKTYPE_IRT,
@SubjectID = @SubjectID output,
@GroupAccrServID = @GroupAccrServID output,
@AccrServID = @AccrServID output
select @ObjectID = @AccrServID
delete from pShowPrc where spid = @@spid
exec Select_Prc_OnObject
@Type = 2
,@PropType = 201
,@ObjectID = @ObjectID
,@OnDate = '19000101'
,@FundID = -1
,@Flag = 0
,@NotShowAll = 0
,@IsRisk = 0
,@Exportable = 0
insert #Prc
select bp.BankProductID
, bp.Brief
, sp.BriefPrcType
, sp.Brief
, sp.PropType
, sp.InterestValueID
, sp.Prcnt
, s.Brief
from tBankProduct bp (index XPKtBankProduct)
,pShowPrc sp (index XIE0pShowPrc)
,tSecurity s (index XPKtSecurity)
where 1 = 1
and bp.BankProductID = @BankProductID
and sp.Spid = @@spid
and s.SecurityID =*sp.FundID

-- фиксированные суммы комиссий
select @Contr = cc.contractID
from tBPConsCondPartner bpp (index XIE1tBPConsCondPartner),
tProperty p (index XPKtProperty),
tCtrCtrRelation cc (index XE1tCtrCtrRelation),
tInstRelation ir (index XPKtInstRelation)
where bpp.BankProductID = @BankProductID
and p.PropType = 151 --@PROP_TYPE_USRCTR_TYPE
and bpp.SubjectID = p.PropVal
and p.PropVal = 1
and cc.ParentContractID = bpp.BPConsCondPartnerID
and TypeLink = 4
and ir.InstRelationID = cc.ContractID
delete pShowPrc where spid=@@SPID

exec Select_Prc_OnObject
@Type = 2 /* :Type_ */,
@PropType = 214 /* :PropType_ */,
@ObjectID = @Contr /* :ObjectID_ */,
@OnDate = '19000101 00:00:00' /* :OnDate_ */,
@FundID = -1 /* :FundID_ */,
@Flag = 0 /* :Flag_ */,
@NotShowAll = 0 /* :NotShowAll_ */,
@IsRisk = 0 /* :IsRisk_ */,
@Exportable = 0 /* :Exportable */
insert #Prod_FiXQty
select @BankProductID
,isnull(sum(iv.Qty),0)
from pShowPrc p (index XIE0pShowPrc),
tInterestValue iv (index XPKtInterestValue)
where SPID = @@spid
and Verify <> 1
and p.InterestValueID = iv.InterestValueID
-- at isolation read uncommitted


select @BankProductID = min(BPID) from #BankProduct where BPID > @BankProductID
end
insert #Prod_Prc
select p.BankProductID
, max(iv1.Prcnt)
, max(iv.Prcnt)
, p.PropType
from #Prc p
, tInterestValue iv1 (index XPKtInterestValue ) -- ставки на БП
, tInterestParam ip (index XAK0tInterestParam )
, tInterestValue iv (index XIE0tInterestValue ) -- базовые ставки
where 1=1
and p.PropType in ( 201 , 211, 214 )
and p.PrcFund = 'RUB'
and iv1.InterestValueID = p.InterestValue
and ip.InterestValueID = iv1.ParentID
and iv.InterestType = 2
and iv.InterestParamID = ip.InterestParamID
and iv.ParentID = iv1.ParentID
group by p.BankProductID, p.PropType

--select * from #Prod_Prc

insert #Prod_Prc
select p.BankProductID
, max(iv1.Prcnt)
, max(iv.Prcnt)
, p.PropType
from #Prc p
, tInterestValue iv1 (index XPKtInterestValue ) -- ставки на БП
, tInterestParam ip (index XAK0tInterestParam )
, tInterestValue iv (index XIE0tInterestValue ) -- базовые ставки
where 1=1
and p.PropType in ( 201, 211, 214 )
and isnull(p.PrcFund,'')= '' --- Валюта не определена
and iv1.InterestValueID = p.InterestValue
and ip.InterestValueID = iv1.ParentID
and iv.InterestType = 2
and iv.InterestParamID = ip.InterestParamID
and iv.ParentID = iv1.ParentID
and not exists (select 1
from #Prod_Prc ppr
where 1=1
and ppr.BankProductID = p.BankProductID
and ppr.PropType = p.PropType
)
group by p.BankProductID, p.PropType
------------------- КОНЕЦ СТАВКИ ПО БАНКОВСКИМ ПРОДУКТАМ ------------------------
---------------------------------------------------------------------------------
---------- список договоров
Insert into #Contracts
select c.ContractID
,fo.InstrumentID
,fo.Brief
,fo.Name
,DateFrom
,DateTo
,c.amount
,c.amount
,0
,0
,0
,''
,c.BankProductID
,0
,0
,0
,0
,0
,0
,0
,0
,0
,0
from tContract c (index XIE0tContract )
,tInstrument fo (index XPKtInstrument )
where 1 =1
--and c.ContractID in (10001692011)

and c.instrumentID = fo.InstrumentID
and fo.Brief not in ('ДопСоглаш','31')
and c.BranchID = c.BranchID
and c.BranchExtID = c.BranchExtID
-- чтобы использовать индекс по дате берем с датой заключения - месяц от начала периода
and c.DateFrom > dateadd(dd, -30, @DateFrom)
and c.DateFrom <= @DateTo


-- отставляем открытые в период построения
delete #Contracts where 0 = (select isnull(max(ContractCreditID),0)
from tContractCredit (index XPKtContractCredit )
where ContractCreditID = #Contracts.ContractID
and CreditDateFrom Between @DateFrom and @DateTo
)

-- удаляем в состоянии "Заявка" и "Кредит отклонен"
delete #Contracts where ContractID = (select isnull(max(DealID),0)
from tDealProtocol dp (index XAK2tDealProtocol)
,tNode n (index XPKtNode )
where dp.DealID = #Contracts.ContractID
and dp.Number = 105
and dp.ReferenceID = 0
and n.NodeID = dp.ChildID
and n.Name in ("Заявка", "Кредит отклонен"))
------------- проставляем сумму страховки
-- страховка
select @Strah = PropertyUsrID
from tPropertyUsr p (index XPKtPropertyUsr)
where p.PropertyType = 6
and p.Brief = 'ПКСтрахКом'
-- старая страховка
-- выделенный НДС
select @StrahNDS = PropertyUsrID
from tPropertyUsr p (index XPKtPropertyUsr)
where p.PropertyType = 6
and p.Brief = 'ПКСтрахНДС'
-- проставляем сумму страховки
update #Contracts
set Insure = isnull((select Sum(dt.Qty)
from tDealProtocol dp (index XAK2tDealProtocol)
,tDealTransact dt (index XIE6tDealTransact)
where 1 = 1
and dp.DealID = #Contracts.ContractID
and dp.InstrumentID = #Contracts.foID
and dp.Number = 105
and dt.DealProtocolID = dp.DealProtocolID
and dt.BatchID in (@Strah, @StrahNDS,@StrahOld)
),0)
-- заполняем продавцов
update #Contracts
set Dealer =isnull((select max(UserID)
from tUserCtrRelation uc ( index XIE0tUserCtrRelation)
where uc.contractID = #Contracts.ContractID
and uc.Type <> 6 --- Не кредитная организация
and uc.Type = 5 --- Только продавец
),0)
-- наименование дилера
update #Contracts
set DealerName = isnull((select max(Brief)
from tInstitution
where InstitutionID = #Contracts.Dealer)
,'')

-- признак индивидуальной ставки
update #Contracts
set Ind = (select max(Flag & 128)
from tContractCredit (index XPKtContractCredit)
where ContractCreditID = #Contracts.ContractID)

-- для авто_потребов_ проставляем ФО=13
-- если продавец прокласифицирован как "автопотребы" то выделяем из ФО=03 в ФО=13
update #Contracts
set foBrief =isnull((select '13'
from tUserCtrRelation uc ( index XIE0tUserCtrRelation),
#Auto a
where uc.contractID = #Contracts.ContractID
and uc.Type <> 6 --- Не кредитная организация
and uc.Type = 5 --- Только продавец
and a.UserID = uc.UserID),foBrief)
-- ??? проклассифицированы все или только 03
where foBrief='03'
-- изменяем ФО
update #Contracts
set foName = 'Банковский продукт 13',
foID = 0
where foBrief='13'
-- проставляем диллера (владельца группы) и его наименование для автокредитов
update #Contracts
set Dealer = isnull((select max(ParentID)
from #Auto
where UserID = #Contracts.Dealer),Dealer)
, DealerName = isnull((select max(ParentName)
from #Auto
where UserID = #Contracts.Dealer),DealerName)
where foBrief in ('13','16','17')

-- определение раздела отчета
update #Contracts
set RepPart = case when foBrief='16' then 1
when foBrief='17' then 1
when foBrief='13' then 1
when foBrief='11' then 2
when foBrief='12' then 2
when foBrief='01' then 3
when foBrief='02' then 3
when foBrief='03' then 3
when foBrief='04' then 3
when foBrief='05' then 3
when foBrief='07' then 3
when foBrief='08' then 3
when foBrief='09' then 3
when foBrief='10' then 3
when foBrief='21' then 4 else 0 end

---------------------------------------------------------------------------------------------
--------------------------------- РАСЧЕТ EAPR ПО ДОГОВОРАМ ----------------------------------
---------------------------------------------------------------------------------------------
declare @MinID numeric(15,0)
,@BsRate float
,@Comm1 float
,@Comm4 float
,@Insure money
,@AnnualSum money
,@Type numeric(1)
,@Coef numeric(1)
-- ,@DateFrom smalldatetime
-- ,@DateTo smalldatetime
select @MinID = 0

----- ПРОДУКТОВЫЕ СТАВКИ
insert #Percents
select ContractID,201,PrcVal2,0
from #Contracts c
,#Prod_Prc p
where c.BankProductID = p.BankProductID
and c.Ind = 0 -- не индивидуальная схема
and p.PropType=201
insert #Percents
select ContractID,211,PrcVal2,0
from #Contracts c
,#Prod_Prc p
where c.BankProductID = p.BankProductID
and c.Ind = 0 -- не индивидуальная схема
and p.PropType=211
insert #Percents
select ContractID,214,PrcVal2,0
from #Contracts c
,#Prod_Prc p
where c.BankProductID = p.BankProductID
and c.Ind = 0 -- не индивидуальная схема
and p.PropType=214

----- ИНДИВИДУАЛЬНЫЕ СТАВКИ
delete pCreditPrc from pCreditPrc where SPID = @@spid
insert pCreditPrc ( SPID,ContractID,Date,PercentType,Interest,ErrorCode )
select @@SPID, ContractID, '', 0, 0, 0 from #Contracts where Ind=128

-- расчет основных процентных ставок
-- по основному долгу
set forceplan on
exec Cons_MassGetPrc @Date = @DateFrom
,@PercentType = 201
set forceplan off

insert #Percents
select ContractID,PercentType,Interest,1
from pCreditPrc where spid=@@SPID and PercentType=201
-- комиссия 1
delete pCreditPrc from pCreditPrc where SPID = @@spid
insert pCreditPrc ( SPID,ContractID,Date,PercentType,Interest,ErrorCode )
select @@SPID, ContractID, '', 0, 0, 0 from #Contracts where Ind=128
set forceplan on
exec Cons_MassGetPrc @Date = @DateFrom
,@PercentType = 211
set forceplan off
insert #Percents
select ContractID,PercentType,Interest,1
from pCreditPrc where spid=@@SPID and PercentType=211
-- комиссия 4
delete pCreditPrc from pCreditPrc where SPID = @@spid
insert pCreditPrc ( SPID,ContractID,Date,PercentType,Interest,ErrorCode )
select @@SPID, ContractID, '', 0, 0, 0 from #Contracts where Ind=128
set forceplan on
exec Cons_MassGetPrc @Date = @DateFrom
,@PercentType = 214
set forceplan off
insert #Percents
select ContractID,PercentType,Interest,1
from pCreditPrc where spid=@@SPID and PercentType=214
-- по кредитным договорам
select @MinID = Min(ContractID) from #Contracts
where ContractID > @MinID
-- в цикле по договорам расчитавыем аннуитет
WHILE isnull(@MinID,0) <> 0
BEGIN
-- реальные даты договора
select @DateFrom = CreditDateFrom,
@DateTo = CreditDateTo
from tContractCredit
where contractcreditID = @MinID

select @coef = case when repPart=3 or foBrief='13'
then 1
else 0 end
from #Contracts where ContractID=@MinID
-- проставим правильные даты
update #Contracts set DateFrom = @DateFrom
,DateTo = @DateTo
where ContractID = @MinID

-- процедура расчета аннуитета (без страховки)
select @Insure = 0
,@AnnualSum = 0
,@BsRate = 0
,@Comm1 = 0
,@Comm4 = 0
-- from #Contracts where ContractID = @MinID

-- ПРОЦЕНТНЫЕ СТАВКИ
select @BsRate = Interest
from #Percents
where ContractID = @MinID
and percentType = 201

select @Comm1 = isnull(Interest,0)
from #Percents
where ContractID = @MinID
and percentType = 211
select @Comm4 = isnull(Interest,0)
from #Percents
where ContractID = @MinID
and percentType = 214

-- ФИКСИРОВАННЫЕ КОМИССИИ
select @FixQty = isnull(sum(QtyVal),0)
from #Contracts cntr
,#Prod_FixQty q
where cntr.ContractID = @MinID
and cntr.BankProductID = q.BankProductID
update #Contracts
set Prc = @BsRate ,
Comm1 = isnull(@Comm1,0),
Comm4 = isnull(@Comm4,0)
where ContractID = @MinID


#M_FORCEPLAN_OFF
exec nf_CalcAnnualPay @MinID,
@BsRate,
0, -- посчитать страховку
@Insure output, -- возвращаемая сумма страховки
@AnnualSum output
#M_FORCEPLAN

-- если знаменатель = 0 (не корректный кредит)
if ( 0 != (select @AnnualSum*datediff(mm,@DateFrom,@DateTo)-Summ
from #Contracts
where ContractID = @minID) )
begin

update #Contracts set EAPR = isnull((( @BsRate*
( (@AnnualSum * datediff(mm,@DateFrom,@DateTo) - Summ)
+ @FixQty -- фиксированные комиссии
+ (@Comm4*Summ*0.01) -- разовые комиссии
+ (@coef*@CommFrom*(Summ-@Insure)*0.01)
- (@coef*@CommTo*(Summ-@Insure)*0.01)
+ (@Comm1*datediff(mm,@DateFrom,@DateTo)*Summ*0.01)) -- периодические комиссии
)
/
(@AnnualSum*datediff(mm,@DateFrom,@DateTo)-Summ)
),0)
,Annual = @AnnualSum
where ContractID = @minID
end
else
update #Contracts set EAPR = 0
where ContractID = @minID


-- insert into LVNtext
-- select convert(varchar,Annual)
-- from #Contracts where ContractID = @MinID


-- select * from pErrorLine where spid=@@SPID
-- select * from pCreditPrc where ContractID=10000961281 and spid=@@SPID

-- процедура расчета аннуитета (без страховки)
select @Insure = 0 --isnull(Insure,0)
,@AnnualSum = 0
-- from #Contracts where ContractID = @MinID
#M_FORCEPLAN_OFF
exec nf_CalcAnnualPay @MinID,
@BsRate,
1, -- посчитать страховку
@Insure output, -- передаем сумму страховки чтобы не считать еще раз
@AnnualSum output
#M_FORCEPLAN
-- insert into LVNtext
-- select convert(varchar,Annual)
-- from #Contracts where ContractID = @MinID
if ( 0 != (select @AnnualSum*datediff(mm,@DateFrom,@DateTo)-(Summ-@Insure)
from #Contracts
where ContractID = @minID) )
begin

update #Contracts set EAPRInsure = isnull((( @BsRate*
((@AnnualSum*datediff(mm,@DateFrom,@DateTo)-(Summ-@Insure))
+ (@Comm4*(Summ-@Insure)*0.01) -- разовые комиссии
+ (@coef*@CommFrom*(Summ-@Insure)*0.01)
- (@coef*@CommTo*(Summ-@Insure)*0.01)
+ (@Comm1*datediff(mm,@DateFrom,@DateTo)*(Summ-@Insure)*0.01)) -- периодические комиссии
)
/(@AnnualSum*datediff(mm,@DateFrom,@DateTo)-(Summ-@Insure))
),0)
,AnnualInsur = @AnnualSum
where ContractID = @minID
end
else
update #Contracts set EAPRInsure = 0
where ContractID = @minID

--
select @MinID = Min(ContractID) from #Contracts
where ContractID > @MinID

END


--select 1
select * from #Percents
}
@SQL_debug@ = sql{
select * from #Contracts order by DealerName
--select * from #Percents

}
@SQLAuto@=SQL{
declare
@IsExcel numeric(1)
select @IsExcel = %InElectr!
---------------- АВТОКРЕДИТОВАНИЕ --------------
--#M_FORCEPLAN
select Part = repPart
,Dealer = Dealer
,CntDealer = count(distinct Dealer)
,DealerName = DealerName
-- сумма авто-кредитов
,Summ = sum(case when foBrief='13' then 0 else Summ end)
,Cnt = sum(case when foBrief='13' then 0 else 1 end)
-- сумма авто-потребительских кредитов
,Summ1 = sum(case when foBrief='13' then Summ else 0 end)
,Cnt1 = sum(case when foBrief='13' then 1 else 0 end)
,Insure = sum(Insure)
,Cnt2 = sum(case when Insure=0 then 0 else 1 end)
-- PenetrationRate
,PenetrationRate = 100*sum(case when Insure=0 then 0 else 1 end)/sum(1)
,Period = sum(datediff(mm,DateFrom,DateTo)*Summ)/sum(Summ)
,PeriodSum = sum(datediff(mm,DateFrom,DateTo)*Summ)/sum(Summ)
*sum(Summ)
-- EAPR's figure
-- Д.Фомин исправление замечания от Sadchikova, Galina [15:48:46 27/06/2006]
-- ,t1 = SUM(EAPR*Summ)
-- ,t2 = SUM(1*Summ)
-- ,t3 = SUM(EAPRInsure*Summ)
-- только АВТО-кредиты (НЕ потреб.) и без страховки
,EAPR = case
when sum(case when (foBrief<>'13' and Insure=0) then 1*Summ else 0 end) = 0
then 0
else
sum(case when (foBrief<>'13' and Insure=0) then EAPR*Summ else 0 end)
/ sum(case when (foBrief<>'13' and Insure=0) then 1*Summ else 0 end)
end
-- без страховки и все
,EAPR2 = case
when sum(case when Insure=0 then 1*Summ else 0 end) = 0
then 0
else
sum(case when Insure=0 then EAPR*Summ else 0 end)
/sum(case when Insure=0 then 1*Summ else 0 end)
end
-- все со страховкой
,EAPRInsure = case
when sum(case when 1=1/*Insure>0*/ then 1*Summ else 0 end) = 0
then 0
else
sum(case when 1=1/*Insure>0*/ then EAPRInsure*Summ else 0 end)
/sum(case when 1=1/*Insure>0*/ then 1*Summ else 0 end)
end
,EARP_tot = sum(case when foBrief<>'13' then Summ else 0 end)
*
case
when sum(case when foBrief<>'13' then Summ else 0 end) = 0
then 0
else
sum(case when foBrief<>'13' then EAPR*Summ else 0 end)
/ sum(case when foBrief<>'13' then Summ else 0 end)
end
,EARP2_tot = sum(1*Summ)
*
case
when sum(Summ) = 0
then 0
else
sum(EAPR*Summ)
/sum(Summ)
end
,EAPRInsure_tot = sum(1*Summ)
*
case
when sum(Summ) = 0
then 0
else
sum(EAPRInsure*Summ)
/sum(Summ)
end
,EARP_tot_sum = sum(case when (foBrief<>'13' and Insure=0)
then 1*Summ else 0 end)
,EARP2_tot_sum = sum(case when Insure=0 then 1*Summ else 0 end)
,EAPRInsure_tot_sum = sum(case when 1=1 /*Insure>0*/ then 1*Summ else 0 end)

,IsExcel = @IsExcel
--,DateFrom = DateFrom
--,DateTo = DateTo
from #Contracts
where RepPart = 1
group by Dealer, DealerName, RepPart
order by Dealer, DealerName, RepPart
//#M_FORCEPLANOFF
}
@SQLOther@=SQL{
declare
@IsExcel numeric(1)
select @IsExcel = %InElectr!
---------------- ВСЕ ОСТАЛЬНЫЕ --------------
--#M_FORCEPLAN
select Lab0 = case when repPart=2 then 'Кредиты на общие цели'
when repPart=3 then 'Потребительские кредиты'
when repPart=4 then 'Ипотечные кредиты' end
,Part = repPart
,Dealer = Dealer
,DealerName = DealerName
,Summ = sum(Summ - Insure)
,Cnt = count(1)
,CntDealer = count(distinct Dealer)
,Summ1 = 0 --sum(case when foBrief='13' then Summ else 0 end)
,Cnt1 = 0 --case when foBrief='13' then 1 else 0 end)
,Insure = sum(Insure)
,Cnt2 = sum(case when Insure=0 then 0 else 1 end)
-- PenetrationRate
,PenetrationRate = 100.00*sum(case when Insure=0 then 0 else 1 end)/sum(1)
,PenUp = sum(case when Insure=0 then 0 else 1 end)
,PenDown = sum(1)
,Period = sum(datediff(mm,DateFrom,DateTo)*Summ)/sum(Summ)
,PeriodSum = sum(datediff(mm,DateFrom,DateTo)*Summ)/sum(Summ)
*sum(Summ)
-- EAPR's figure
-- все без страховки
,EAPR = case
when sum(Summ) = 0
then 0
else
sum(EAPR*Summ)
/ sum(Summ)
end
-- все со страховкой
,EAPRInsure = case
when sum(Summ) = 0
then 0
else
sum(EAPRInsure*Summ)
/sum(Summ)
end

,EARP_tot = sum(case when (foBrief<>'13') then Summ else 0 end)
*
case
when sum(case when (foBrief<>'13') then Summ else 0 end) = 0
then 0
else
sum(case when (foBrief<>'13') then EAPR*Summ else 0 end)
/ sum(case when (foBrief<>'13') then Summ else 0 end)
end
,EAPRInsure_tot = sum(Summ)
*
case
when sum(Summ) = 0
then 0
else
sum(EAPRInsure*Summ)
/sum(Summ)
end

,EARP_tot_sum = sum(case when (foBrief<>'13') then Summ else 0 end)
,EAPRInsure_tot_sum = sum(Summ)


,IsExcel = @IsExcel
--,DateFrom = DateFrom
--,DateTo = DateTo
from #Contracts
where RepPart <> 1
group by Dealer, DealerName, RepPart
order by Dealer, DealerName, RepPart
//#M_FORCEPLANOFF
}
[FIELD]
@PS@=PrinterSetup{LANDSCAPE,10,4,4,4,Courier New Cyr DS,6}
@DealerName..................@=FIELD{DealerName,@s30}
@Summ........@=FIELD{Summ,@n14.2} -- для 1 раздела только АВТОКРЕДИТЫ
@Summ1.......@=FIELD{Summ1,@n14.2} -- для 1 раздела только АВТОпотребы
@SummTotal...@=FIELD{Summ+Summ1,@n14.2,SUM}
@Insure......@=FIELD{Insure,@n14.2}
@CntDeale@=FIELD{CntDealer,@n10}
@Cnt.....@=FIELD{Cnt,@n10}
@Cnt1....@=FIELD{Cnt1,@n10}
@Cnt2....@=FIELD{Cnt2,@n10}
@PenetratR@=FIELD{round(PenetrationRate,,3),@n11.3}
@PenTotal.@=EXPRFIELD{round(100*@Cnt2....@/(@Cnt.....@+@Cnt1....@),,3),@n11.3}
@Period....@=FIELD{Period,@n12.3}
@PeriodTot.@=FIELD{(Summ+Summ1)*Period,@n20.3,SUM}
@PeriodSum........@=Field{PeriodSum,@n-_19.3}
@PeriodTot2@=EXPRFIELD{@PeriodSum........@/*@PeriodTot.@*//(@SummTotal...@+@Insure......@),@n12.3} --,SUMSUM}
@EAPR...........@=FIELD{round(EAPR,,3),@n17.3}
--@EAPRTotal......@=EXPRFIELD{@EAPR...........@/@CntDeale@,@n17.2}
@EAPR2..........@=FIELD{round(EAPR2,,3),@n17.3}
@EAPRTotal......@=EXPRFIELD{round(@EARP_tot_sum....@=0!0:@EARP_tot........@/@EARP_tot_sum....@,,3),@n17.3}
@EAPR2Total.....@=EXPRFIELD{round(@EARP2_tot_sum...@=0!0:@EARP2_tot.......@/@EARP2_tot_sum...@,,3),@n17.3}
@EAPRInsTotal...@=EXPRFIELD{round(@EAPRInsure_tot_s@=0!0:@EAPRInsure_tot..@/@EAPRInsure_tot_s@,,3),@n17.3}
@EAPRInsure.....@=FIELD{round(EAPRInsure,,3),@n17.3}
-- Для расчета итоговых EARP
-- EARP*сумму только АВТО-кредитов в группе БЕЗ страховки
@EARP_tot........@=Field{EARP_tot,@n-_18.2}
-- EARP*сумму всех кредитов в группе БЕЗ страховки
@EARP2_tot.......@=Field{EARP2_tot,@n-_18.2}
-- сумма только АВТО-кредитов БЕЗ страховки
@EARP_tot_sum....@=Field{EARP_tot_sum,@n-_18.2}
-- сумма всех кредитов БЕЗ страховки
@EARP2_tot_sum...@=Field{EARP2_tot_sum,@n-_18.2}
@EAPRInsure_tot..@=Field{EAPRInsure_tot,@n-_18.2}
@EAPRInsure_tot_s@=Field{EAPRInsure_tot_sum,@n-_18.2}
@Part@=FIELD{Part,@n1}
@Lab0...................@=FIELD{Lab0,@s25,WRAP}
@DateFrom@=FIELD{DateFrom,@d5}
@DateTo@=FIELD{DateTo,@d5}
@IsExcel@=FIELD{IsExcel,@n2}
@StyleRule0@=StyleRule{block,"Раздел",NONE,0,1,Courier New Cyr XL,8,BOLD}
&&
#@PS@
#@SQLTab@
#@SQL@
#@SQLAuto@
#@StyleRule0@
Список литературы
Акулич Ю.И. «Бухгалтерский учёт», Мн., Дикта, 2003г.
Александрова Н. Г., Александров Н. А. «Банки и банковская деятельность для клиентов», С-Пб, Питер, 2002г.
Арлазаров В.Л., Емельянов Н.Е. «Документооборот. Концепции и инструментарий», УРСС 2004г.
Архипенков С.Я, Голубев Д.В., Максименко О.Б. «Хранилища данных», М. Диалог-МИФИ, 2002г.
Афанасьева Л.П., Богатырев В.И., Журкина Н.Г. «Основы банковской деятельности», М., Инфра-М, 2003г.
Баженова И.Ю. «SQL Windows», М., Диалог-МИФИ, 2004г.
Бархатов А.П. «Международный учёт», М., Маркетинг, 2001г.
Белкин П.Ю. «Защита программ и данных», М., Радио и Связь, 2000г.
Белоглазова Г. Н., Кроливецкая Л. П. «Организация деятельности коммерческого банка», М., Высшее образование, 2007 г.
Ванкевич В.Е. «Типовой план счетов бухгалтерского учета. Инструкция по его применению», Мн., фонд «Редакция журнала «Финансы, учет, аудит», 2003г.
Глущенко В. В. «Организация деятельности коммерческого банка», ТОО НПЦ "Крылья", 2007 г.
Дейт К. Дж. «Введение в системы баз данных», М., Вильямс, 2002г.
Джон Коннэлл «Введение в программирование баз данных», М., ДМК, 2003г.
Джон Парк, Стив Маккей, Эдвин Райт «Передача данных в системах контроля и управ», М.. Группа ИДТ, 2007г.
Джудит С. Боуман, Сандра Л. Эмерсон «Практическое руководство SQL», М., Вильямс, 2004г.
Дунаев С. «Доступ к базам данных и техника работы в сети», М., Диалог-МИФИ, 2003г.
Золотова Е. А. «Учет и операционная деятельность в коммерческих банках», М. Финансы и статистика, 2007 г.
Козлова И.К., Купрюшина Т.А. «Анализ деятельности банков», М., Вильямс, 2003г.
Мирошниченко Г. «Реляционные базы данных: практические приемы оптимальных решений», 2005г.
Полищук А.И. «Банковский учет и отчетность», Институт международного права и экономики им. А. С. Грибоедова, 2002г.
Ремин А.Д. «Администрирование и безопасность баз данных», М., Триумф, 2004г.
Роб Хоторн «Разработка баз данных Microsoft SQL Server 2000 на примерах», М., Вильямс, 2001г.
Роберт Виейра «Программирование баз данных Microsoft SQL Server 2005», М., Вильямс, 2008г.
Род Стивенс «Программирование баз данных», М., Бином-Пресс, 2003г.
Смирнов С. Н. «Безопасность систем баз данных», М, Гелиос, 2007 г
Спирли Эрик «Корпоративные хранилища данных. Планирование, разработка и реализация», М., Вильямс, 2002г.
Тепляков А.Б. «Отчеты по торговым операциям», М., РОСБУХ, 2007г.
Устинов Г. Н. «Основы информационной безопасности систем и сетей передачи данных», М., Синтег, 2002г.
Филипп Андон, Резниченко Валерий «Язык запросов SQL. Учебный курс», СПб, Питер, 2006г.
Шнайер Б. «Безопасность данных в цифровом мире», С-Пб, Питер, 2003г.
Материал сайтов:
http://www.diasoft.ru/
http://www.docflow.ru/
http://www.tiei.ru/ppage/pages/130/C1/index.htm
Приложение 1. Реализация схемы Warm Standby
1. Создание логического соединения (logical connection)
Replication сервер в режиме Warm Standby рассматривает активную и резервную базы как одну логическую сущность и создает для этого отдельное логическое соединение. Логическое соединение можно создать, выполнив процедуру create logical connection на Replication сервере. Возможно два варианта задания имени логического соединения. В случае если для активной базы уже существует соединение (physical connections) c Replication сервером, можно использовать его имя при создании логического соединения. В другом случае можно задать любое другое имя, не использующееся в настоящий момент Replication сервером.
2. Конфигурирование логического соединения. Создание физических соединений для активной и резервной баз данных.
Логическое соединение можно рассматривать как связующее звено между двумя физическими соединениями Replication сервера с активной и резервной базами данных. Для установления этой связи используется процедура Replication сервера create connection. В качестве параметров процедуры указываются имя сервера, базы данных, пользователя (maintenance user), под которым Replication сервер будет выполнять свои действия на активном и резервном сервере данных, и его пароля, а также имя логического соединения с указанием типа связи (as active или as standby).
3. Конфигурирование и запуск репликационного агента (Rep Agent). Определение списка объектов для репликации.
Репликационный агент представляет собой интерфейс, который запускается на активной базе и отслеживает выполнение транзакций. Сведения о завершенных транзакциях передаются Replication серверу. Механизм репликации построен на использовании так называемых secondary truncation point в логе транзакций. Эти точки присутствуют в логе для таблиц базы, помеченных как "участвующие в репликации". В этом случае очистка лога производится не только на основании "обычных" truncation point, но и secondary truncation point. После получения от Replication сервера подтверждения успешного выполнения транзакции на резервной базе, Rep Agent удаляет secondary truncation point из лога транзакций.
Замечание: удаление secondary truncation point из лога транзакций можно осуществить с помощью утилиты dbcc:
dbcc setrunc(ltm, ignore)
Для конфигурирования и запуска репликационного агента используются процедуры SQL сервера sp_config_rep_agent, sp_start_rep_agent, sp_stop_rep_agent, а также sp_configure 'enable rep agent threads'. В параметрах процедуры sp_config_rep_agent указываются имя Replication сервера, а также имя и пароль пользователя, под которым репликационный агент будет выполнять свои действия на Replication сервере.
Существуют две возможности определения списка объектов, участвующих в репликации на активной базе данных. С помощью системной процедуры sp_reptostandby можно определить активную базу данных как участвующую в репликации целиком. В этом случае реплицироваться будет выполнение всех DML (data manipulation language) команд и системных процедур для всех объектов активной базы данных, а также выполнение DDL (data definition language) команд, изменяющих структуру базы данных.
В случае если необходима репликация отдельных таблиц и пользовательских процедур, можно воспользоваться процедурами sp_setreptable и sp_setrepproc, с помощью которых установить статус репликации для каждого объекта индивидуально. При этом необходимо предварительно отменить общий статус репликации для базы данных (sp_reptostandby dbname, 'none'). В этом случае реплицироваться будет только выполнение DML команд для объектов, помеченных как участвующих в репликации.
4. Синхронизация активной и резервной базы данных. Запуск процесса репликации.
Перед началом репликации необходимо привести в соответствие данные в активной и резервной базах данных. Если на активной базе данных в момент старта репликации продолжается выполнение транзакций, т.е. база находится в "рабочем" режиме, то чтобы избежать рассогласования данных нужно выполнить следующую последовательность действий. Во-первых, standby connection в этом случае должна быть создана с опцией 'use dump marker'. Во-вторых, перенос данных из активной базы данных в резервную обязательно должен выполняться с помощью команд dump и load. Replication сервер в этом случае ориентируется на два так называемых маркера: "enable replication marker" и "dump marker". Replication сервер помещает "enable replication marker" в лог транзакций активной базы данных в момент, когда регистрирует standby connection. "Dump marker" заносится в лог транзакций SQL сервером в процессе создания дампа базы данных. Все транзакции, выполненные на активной базе данных после снятия дампа, будут затем реплицированы в резервную базу.
В случае, когда основная база во время переноса данных будет "пассивна", опцию 'use dump marker' при создании standby connection можно не указывать. Тогда Replication сервер будет ориентироваться только на 'enable replication marker'. И данные в этом случае можно переносить не только дампом, но и, например, с помощью bcp.
После выполнения всех вышеперечисленных действий Replication сервер должен начать процесс репликации. Если Rep Agent или соединения Replication сервера с активной или резервной базами по каким-либо причинам остались неактивны, следует активизировать их с помощью команд sp_start_rep_agent или resume connection.
Замечание. Вообще весь процесс репликации Warm Standby можно представить в виде трех самостоятельных процессов:
Rep Agent. Физически можно представить как системное приложение, запущенное на SQL сервере, которое работает с Replication сервером, используя заранее установленный администратором login и password.
DSI (Data Server Interface) для активной базы данных. Системное приложение, запущенное на Replication сервере, которое работает с основным SQL сервером, как maintenance user, используя login и password, установленный в процессе конфигурации.
DSI для резервной базы данных. Системное приложение, запущенное на Replication сервере, которое работает с резервным SQL сервером, как maintenance user, используя login и password, установленный в процессе конфигурации.
В случае остановки по каким-либо причинам одного из этих процессов, полноценная связь между компонентами системы будет разорвана, и репликация данных будет приостановлена. Но данные о выполняющихся транзакциях будут по-прежнему поступать в лог транзакций активной базы данных, secondary transaction point будет по-прежнему активной, и после возобновления нормальной работы всех трех процессов все транзакции, выполненные за это время, должны быть реплицированы.

(5, 12 с.)
- заключается в регулировании основных принципов, жесткая регламентация отсутствует
- законодательных требований не существует
- примером внутреннего регулирования может служить Учетная политика
(4, 30 с.)
75

Список литературы [ всего 31]

Список литературы
1.Акулич Ю.И. «Бухгалтерский учёт», Мн., Дикта, 2003г.
2.Александрова Н. Г., Александров Н. А. «Банки и банковская деятельность для клиентов», С-Пб, Питер, 2002г.
3.Арлазаров В.Л., Емельянов Н.Е. «Документооборот. Концепции и инструментарий», УРСС 2004г.
4.Архипенков С.Я, Голубев Д.В., Максименко О.Б. «Хранилища данных», М. Диалог-МИФИ, 2002г.
5.Афанасьева Л.П., Богатырев В.И., Журкина Н.Г. «Основы банковской деятельности», М., Инфра-М, 2003г.
6.Баженова И.Ю. «SQL Windows», М., Диалог-МИФИ, 2004г.
7.Бархатов А.П. «Международный учёт», М., Маркетинг, 2001г.
8.Белкин П.Ю. «Защита программ и данных», М., Радио и Связь, 2000г.
9.Белоглазова Г. Н., Кроливецкая Л. П. «Организация деятельности коммерческого банка», М., Высшее образование, 2007 г.
10.Ванкевич В.Е. «Типовой план счетов бухгалтерского учета. Инструкция по его применению», Мн., фонд «Редакция журнала «Финансы, учет, аудит», 2003г.
11.Глущенко В. В. «Организация деятельности коммерческого банка», ТОО НПЦ "Крылья", 2007 г.
12.Дейт К. Дж. «Введение в системы баз данных», М., Вильямс, 2002г.
13.Джон Коннэлл «Введение в программирование баз данных», М., ДМК, 2003г.
14.Джон Парк, Стив Маккей, Эдвин Райт «Передача данных в системах контроля и управ», М.. Группа ИДТ, 2007г.
15.Джудит С. Боуман, Сандра Л. Эмерсон «Практическое руководство SQL», М., Вильямс, 2004г.
16.Дунаев С. «Доступ к базам данных и техника работы в сети», М., Диалог-МИФИ, 2003г.
17.Золотова Е. А. «Учет и операционная деятельность в коммерческих банках», М. Финансы и статистика, 2007 г.
18.Козлова И.К., Купрюшина Т.А. «Анализ деятельности банков», М., Вильямс, 2003г.
19.Мирошниченко Г. «Реляционные базы данных: практические приемы оптимальных решений», 2005г.
20.Полищук А.И. «Банковский учет и отчетность», Институт международного права и экономики им. А. С. Грибоедова, 2002г.
21.Ремин А.Д. «Администрирование и безопасность баз данных», М., Триумф, 2004г.
22.Роб Хоторн «Разработка баз данных Microsoft SQL Server 2000 на примерах», М., Вильямс, 2001г.
23.Роберт Виейра «Программирование баз данных Microsoft SQL Server 2005», М., Вильямс, 2008г.
24.Род Стивенс «Программирование баз данных», М., Бином-Пресс, 2003г.
25.Смирнов С. Н. «Безопасность систем баз данных», М, Гелиос, 2007 г
26.Спирли Эрик «Корпоративные хранилища данных. Планирование, разработка и реализация», М., Вильямс, 2002г.
27.Тепляков А.Б. «Отчеты по торговым операциям», М., РОСБУХ, 2007г.
28.Устинов Г. Н. «Основы информационной безопасности систем и сетей передачи данных», М., Синтег, 2002г.
29.Филипп Андон, Резниченко Валерий «Язык запросов SQL. Учебный курс», СПб, Питер, 2006г.
30.Шнайер Б. «Безопасность данных в цифровом мире», С-Пб, Питер, 2003г.
31.Материал сайтов:
http://www.diasoft.ru/
http://www.docflow.ru/
http://www.tiei.ru/ppage/pages/130/C1/index.htm
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00468
© Рефератбанк, 2002 - 2024