Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП А_НИА ЗАПИСКА 30.01.2011 .doc
Скачиваний:
9
Добавлен:
17.11.2018
Размер:
1 Mб
Скачать

6.3.2. Программа создания Справки №3 по таблицам isp и det

Private Sub mnuSpr3_Click()

Dim I As Integer, J As Integer, U As Integer 'индексы

Dim Kzapi As Integer 'количество записей в таблице ISP

Dim Kzapd As Integer 'количество записей в таблице DET

Dim Nstr As Integer 'номера строк таблицы "Справка №3"

Dim VirKv1As Long 'выработка Исполнителем в первом квартале

Dim VirKv2 As Long 'выработка Исполнителем во втором квартале

LbND.Caption = "СПРАВКА №3" 'настройки интерфейса

LbSInf.Caption = " СВЕДЕНИЯ о Исполнителях, у которых выработка во втором

квартале выше чем в первом"

TxtZmin.Visible = False : TxtZmax.Visible = False

FlMN.ColWidth(0) = 550 : Fl1.ColWidth(1) = 1500

Kzapi = DATA1.Recordset.RecordCount 'определение количества записей

' таблицы ISP

Kzapd = DATA2.Recordset.RecordCount 'определение количества записей

' таблицы DET

FlMN.Rows = 1 'начальное количество строк Справки №3

FlMN.Cols = 5 'количество колонок Справки №3

FlMN.TextMatrix(0, 0) = "№ п.п." 'наименование 0 - ой колонки сетки FlMN

FlMN.TextMatrix(0, 1) = DATA1.Recordset.Fields(0).Name

FlMN.TextMatrix(0, 2) = DATA1.Recordset.Fields(1).Name

FlMN.TextMatrix(0, 3) = VirKv1

FlMN.TextMatrix(0, 4) = VirKv2

DATA2.Recordset.MoveFirst 'переход к первой записи таблицы DET

Nstr = 0

For I = 1 To Kzapd 'Цикл формирования Справки №3 в соответствии

'С условием задания

DATA1.Recordset.MoveFirst 'переход к первой записи таблицы ISP

For U = 1 To Kzapi ‘Цикл поиска в таблице в таблице ISP записей, _

удовлетворяющих условию Справки №3 – соответствие _

ЗАПИСЕЙ таблиц по шифрам деталей)

'Условие ЗАДАНИЯ формирования Справки №3

If DATA1. Recordset.Fields(1).Value = _

DATA2.Recordset.Fields(0).Value _

And _

(Mid(Data1.Recordset.Fields(1).Value, 1, 1)=”A” Or _

Mid(Data1.Recordset.Fields(1).Value, 1, 1)=”N” Or _

Mid(Data1.Recordset.Fields(1).Value, 1, 1)=”S” Or _

Mid(Data1.Recordset.Fields(1).Value, 1, 1)=”V” ) Then

VirKv1=0 : VirKv2=0

For J = 1 To 6 Цикл вычислений квартальных

выработок и формирования Справки №3

If J <= 3 Then

VirKv1= VirKv1+ DATA1.Recordset.Fields(J+1).Value* _

DATA2.Recordset.Fields(2).Value

Else

VirKv2= VirKv2+ DATA1.Recordset.Fields(J+1).Value* _

DATA2.Recordset.Fields(2).Value

End If

Next J

If Virkv2> Virkv1 Then

FlMN.Rows = FlMN.Rows + 1 : Nstr=Nstr + 1

FlMN.TextMatrix(Nstr, 1)=DATA1.Recordset.Fields(0).Value

FlMN.TextMatrix(Nstr, 2)=DATA1.Recordset.Fields(1).Value

FlMN.TextMatrix(Nstr, 3)= VirKv1

FlMN.TextMatrix(Nstr, 4)= VirKv2

End If

End If

DATA1.Recordset.MoveNext 'переход к следующей записи таблицы ISP

Next U

DATA2.Recordset.MoveNext 'переход к следующей записи таблицы DET

Next I

End Sub