Sub РасчетАбонента(НомерАбонента As String, Месяц As Long, Год As Long) '--------------------------- 'расчет всех объектов и реактивных групп по абоненту '--------------------------- Dim БылоСтало As Integer Dim РедОбъект As Boolean Dim ВидРед As String Dim БДСчета As Database Dim ЗаписьОбъект As Recordset Dim ЗаписьРеактГруппа As Recordset '--------------------------- Set БДСчета = CurrentDb() '--------------------------- 'расчет объектов '--------------------------- Set ЗаписьОбъект = _ БДСчета.OpenRecordset( _ "SELECT * " & _ "FROM [Объект] " & _ "WHERE НомерАбонента = '" & НомерАбонента & "' ", _ dbOpenDynaset) '--------------------------- If (ЗаписьОбъект.RecordCount > 0) Then With ЗаписьОбъект .MoveLast .MoveFirst Do Until .EOF If СчитатьОбъект(!КодОбъекта, Месяц, Год) = True Then РедОбъект = РедактировалсяОбъектБылоСталоРасчМесяц(!КодОбъекта, _ Месяц, Год) If РедОбъект = False Then БылоСтало = 1 ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало Else БылоСтало = 0 'ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало БылоСтало = 1 ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало End If End If .MoveNext Loop End With End If ЗаписьОбъект.Close '--------------------------- 'расчет реактивных групп '--------------------------- Set ЗаписьРеактГруппа = _ БДСчета.OpenRecordset( _ "SELECT * " & _ "FROM [Группы реактивного учета] " & _ "WHERE НомерАбонента = '" & НомерАбонента & "' ", _ dbOpenDynaset) '--------------------------- If (ЗаписьРеактГруппа.RecordCount > 0) Then With ЗаписьРеактГруппа .MoveLast .MoveFirst Do Until .EOF If СчитатьРеактГруппа(!КодГруппыРеактУчета, Месяц, Год) = True Then КоррПотрРеактГруппа !КодГруппыРеактУчета, Месяц, Год End If .MoveNext Loop End With End If ЗаписьРеактГруппа.Close '--------------------------- 'расчет заявленной (основной платы) для 2-х ставочников '--------------------------- If АбонентДвухставочник(НомерАбонента) Then ФормПотрЗаявленная НомерАбонента, Месяц, Год End If БДСчета.Close End Sub
'---------------------------
'расчет всех объектов и реактивных групп по абоненту
'---------------------------
Dim БылоСтало As Integer
Dim РедОбъект As Boolean
Dim ВидРед As String
Dim БДСчета As Database
Dim ЗаписьОбъект As Recordset
Dim ЗаписьРеактГруппа As Recordset
'---------------------------
Set БДСчета = CurrentDb()
'---------------------------
'расчет объектов
'---------------------------
Set ЗаписьОбъект = _
БДСчета.OpenRecordset( _
"SELECT * " & _
"FROM [Объект] " & _
"WHERE НомерАбонента = '" & НомерАбонента & "' ", _
dbOpenDynaset)
'---------------------------
If (ЗаписьОбъект.RecordCount > 0) Then
With ЗаписьОбъект
.MoveLast
.MoveFirst
Do Until .EOF
If СчитатьОбъект(!КодОбъекта, Месяц, Год) = True Then
РедОбъект = РедактировалсяОбъектБылоСталоРасчМесяц(!КодОбъекта, _
Месяц, Год)
If РедОбъект = False Then
БылоСтало = 1
ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало
ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало
Else
БылоСтало = 0
'ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало
ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало
БылоСтало = 1
ФормПотребленияСубабонентов !КодОбъекта, Месяц, Год, БылоСтало
ФормПарамРасчОбъекта !КодОбъекта, Месяц, Год, БылоСтало
End If
End If
.MoveNext
Loop
End With
End If
ЗаписьОбъект.Close
'---------------------------
'расчет реактивных групп
'---------------------------
Set ЗаписьРеактГруппа = _
БДСчета.OpenRecordset( _
"SELECT * " & _
"FROM [Группы реактивного учета] " & _
"WHERE НомерАбонента = '" & НомерАбонента & "' ", _
dbOpenDynaset)
'---------------------------
If (ЗаписьРеактГруппа.RecordCount > 0) Then
With ЗаписьРеактГруппа
.MoveLast
.MoveFirst
Do Until .EOF
If СчитатьРеактГруппа(!КодГруппыРеактУчета, Месяц, Год) = True Then
КоррПотрРеактГруппа !КодГруппыРеактУчета, Месяц, Год
End If
.MoveNext
Loop
End With
End If
ЗаписьРеактГруппа.Close
'---------------------------
'расчет заявленной (основной платы) для 2-х ставочников
'---------------------------
If АбонентДвухставочник(НомерАбонента) Then
ФормПотрЗаявленная НомерАбонента, Месяц, Год
End If
БДСчета.Close
End Sub
Reply
Leave a comment