Помощь в написании студенческих работ
Антистрессовый сервис

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

Дипломная Купить готовую Узнать стоимостьмоей работы

Логическое соединение можно рассматривать как связующее звено между двумя физическими соединениями Replication сервера с активной и резервной базами данных. Для установления этой связи используется процедура Replication сервера create connection. В качестве параметров процедуры указываются имя сервера, базы данных, пользователя (maintenance user), под которым Replication сервер будет выполнять… Читать ещё >

Разработка генератора банковских отчетов в системе Diasoft v.3. 6. 1 (реферат, курсовая, диплом, контрольная)

Содержание

  • 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 = '19 000 101'

@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 = '19 000 101 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 (10 001 692 011)

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=10 000 961 281 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. R eplication сервер в этом случае ориентируется на два так называемых маркера: «enable replication marker» и «dump marker». R eplication сервер помещает «enable replication marker» в лог транзакций активной базы данных в момент, когда регистрирует standby connection. «D

ump 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 с.)

Показать весь текст

Список литературы

  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. Материал сайтов:
  32. http://www.diasoft.ru/
  33. http://www.docflow.ru/
  34. http://www.tiei.ru/ppage/pages/130/C1/index.htm
Заполнить форму текущей работой
Купить готовую работу

ИЛИ