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

6.4.2. Программа создания Документа

Private Sub mnuDoc_Click()

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

Dim T As Integer, L As Integer 'индексы

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

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

Dim Nstr As Integer 'номера строк "ДОКУМЕНТ"

Dim B As Variant 'вспомогательная переменная для временного хранения записи

LbND.Caption.Caption = " Д О К У М Е Н Т " 'настройки интерфейса

LbSInf.Caption = "Сведения о заработной плате за последние 4 месяца,

УПОРЯДОЧЕННЫЕ по алфавиту фамилий ИСПОЛНИТЕЛЕЙ"

FlMN.ColWidth(0) = 550

FlMN.ColWidth(1) = 1250

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

таблицы ISP

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

таблицы DET

FlMN.Rows = 1 'начальное количество строк "ДОКУМЕНТ"

FlMN.Cols = 6 'количество колонок "ДОКУМЕНТ"

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

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

FlMN.TextMatrix(0, 2) = “ЗрпМес3”

FlMN.TextMatrix(0, 3) = “ЗрпМес4”

FlMN.TextMatrix(0, 4) = “ЗрпМес5”

FlMN.TextMatrix(0, 5) = “ЗрпМес6”

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

Nstr = 0

For I = 1 To Kzapi 'Цикл формирования Итогового Документа

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

For U = 1 To Kzapd 'Цикл создания Документа в соответствии с условием

' ЗАДАНИЯ

'Условие соответствий ЗАПИСЕЙ таблиц ISP и DET

'по шифрам ДЕТАЛЕЙ

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

DATA2.Recordset.Fields(0).Value Then

FlMN.Rows = FlMN.Rows + 1 'добавление строки

сетку FlMN

Nstr = Nstr + 1 'Формирование номера

'следующей строки сетки FlMN

FlMN.TextMatrix(Nstr, 0) = Nstr

For J = 1 To 5

If J < 2 Then

FlMN.TextMatrix(Nstr, 1) = _

DATA1.Recordset.Fields(0).Value

Else

FlMN.TextMatrix(Nstr, J ) = (DATA1.Recordset.Fields(J + 2).Value * _

DATA2.Recordset.Fields(2).Value)*0.86

End If

Next J

End If

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

Next U

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

Next I

Имеются ли записи в созданном Документе ?

If Nstr > 1 Then

For I = 1 To Nstr – 1 'Упорядочение Записей ДОКУМЕНТА по алфавиту _

фамилий

T = I ' Начальная "лучшая" запись ДОКУМЕНТА по упорядочиваемому полю

‘(T – номер текущей “лучшей” записи)

For L = I + 1 To Nstr 'Цикл поиска "лучшей" записи в ДОКУМЕНТЕ

If Asc(FlMN.TextMatrix(T, 1)) > _

Asc(FlMN.TextMatrix(L, 1)) Then T = L 'фиксирование номера

'"лучшей" записи ДОКУМЕНТА

Next L

If L <> T Then

For J = 1 To 5 'Цикл перестановок записей в Документе

по алфавиту фамилий

'Перестановка значений J-ых полей ЗАПИСЕЙ I – ой и T – ой строк

‘ Документа

B = FlMN.TextMatrix(I, J)

FlMN.TextMatrix(I, J) = FlMN.TextMatrix(T, J)

FlMN.TextMatrix(T, J) = B

Next J

End If

Next I

End If

If Nstr = 0 Then Fl1.TextMatrix(Nstr, 0) = "В Документе записей НЕТ "

End Sub