Разработка системы автоматизации для малого коммерческого предприятия работающего в сфере информационных услуг
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «ОсновныеСчета»)
Связывание: мастер подстановок в таблице «ДанныеДляАвансОтчета»
Примечания: к каждому счета может относится несколько записей по
авансовому отчету.
5. Связь таблицы «ДанныеДляАвансОтчета» с таблицей «АвансовыйОтчет».
Поле: «Код» в таблице «ДанныеДляАвансОтчета» с полем «ИдентКод» в
таблице «АвансовыйОтчет».
Тип связи: один ко многим с обеспечения целостности данных с каскадным
удалением и каскадным обновлением данных.
(один со стороны таблицы «ДанныеДляАвансОтчета»)
Связывание: в окне схемы данных.
Часть 4. (листинг 2.4)
(таблицы «Заказчики», «ДругиеСчета», «ДругиеПлатежки»,
«ДругиеЗаказы», «ДанныеДляАвансОтчетаДр», «АвансовыйОтчетДр».)
1. Связь таблицы «Заказчики» с таблицей «ДругиеСчета».
Поле: «КодЗаказчика» в обеих таблицах.
Тип связи: один ко многим с обеспечения целостности данных с каскадным
удалением и каскадным обновлением данных.
(один со стороны таблицы «Заказчики»)
Связывание: в окне схемы данных.
Примечания: к каждому заказчику может относится несколько счетов по
дополнительным заказам.
2. Связь таблицы «Заказчики» с таблицей «ДанныеДляАвансОтчетаДр».
Поле: «КодЗаказчика» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «Заказчики»)
Связывание: мастер подстановок в таблице «ДанныеДляАвансОтчетаДр»
Примечания: при данной организации данных к каждому заказчику может
относится несколько записей по авансовому отчету по дополнительным заказам.
3. Связь таблицы «ДругиеСчета» с таблицей «ДругиеЗаказы».
Поле: «КодСчета» в обеих таблицах.
Тип связи: один ко многим с обеспечения целостности данных с каскадным
удалением и каскадным обновлением данных.
(один со стороны таблицы «ДругиеСчета»)
Связывание: мастер подстановок в таблице «ДругиеЗаказы»
Примечания: к каждому счету может относится несколько записей по
дополнительным заказам.
4. Связь таблицы «ДругиеСчета» с таблицей «ДругиеПлатежки».
Поле: «КодСчета» в обеих таблицах.
Тип связи: один ко многим с обеспечения целостности данных с каскадным
удалением и каскадным обновлением данных.
(один со стороны таблицы «ДругиеСчета»)
Связывание: в окне схемы данных.
Примечания: каждый счет может быть оплачен несколькими платежными
поручениями.
5. Связь таблицы «ДругиеСчета» с таблицей «ДанныеДляАвансОтчетаДр».
Поле: «КодСчета» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «ДругиеСчета»)
Связывание: мастер подстановок в таблице «ДанныеДляАвансОтчетаДр»
Примечания: при данной организации данных к каждому счету может
относится несколько записей в авансовом отчете.
6. Связь таблицы «ДанныеДляАвансОтчетаДр» с таблицей
«АвансовыйОтчетДр».
Поле: «Код» в таблице «ДанныеДляАвансОтчетаДр» с полем «ИдентКод» в
таблице «АвансовыйОтчетДр».
Тип связи: один ко многим с обеспечения целостности данных с каскадным
удалением и каскадным обновлением данных.
(один со стороны таблицы «ДанныеДляАвансОтчета»)
Связывание: в окне схемы данных.
Часть 5. (листинг 2.5)
(таблицы «ОсновныеСчета», «Источник», «Подразделение», «Сотрудники»)
1. Связь таблицы «ОсновныеСчета» с таблицей «Источник».
Поле: «КодИсточника» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «Источник»)
Связывание: мастер подстановок в таблице «ОсновныеСчета»
Примечания: данная связь заменяет повторяющееся текстовые значения
названия источника информации об организации соответствующим кодом из
таблицы «Источник».
2. Связь таблицы «ОсновныеСчета» с таблицей «Подразделение».
Поле: «КодПодразделения» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «Подразделение»)
Связывание: мастер подстановок в таблице «ОсновныеСчета»
Примечания: данная связь заменяет повторяющееся текстовые значения
названия подразделения, от которого поступила информация об организации,
соответствующим кодом из таблицы «Подразделение».
3. Связь таблицы «ОсновныеСчета» с таблицей «Сотрудники».
Поле: «КодСотрудника» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «Сотрудники»)
Связывание: мастер подстановок в таблице «ОсновныеСчета»
Примечания: данная связь заменяет повторяющееся текстовые значения
фамилий сотрудников, от которого поступила информация об организации,
соответствующим кодом из таблицы «Сотрудники».
Часть 6. (листинг 2.6)
(таблицы «Изменение АвансОтчета», «Системы», «СчетаФактуры»,
«МесяцыСГодом», «ПоследнииДниМесяцаСГодом»)
1. Связь таблицы «Изменение АвансОтчета» с таблицей «Системы».
Поле: «КодСистемы» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(*Может стоит заменить тип связи на «с обеспечением целостности
данных»?)
(один со стороны таблицы «Системы»)
Связывание: мастер подстановок в таблице «Изменение АвансОтчета»
Примечания: данная связь проверяет соответствие на правильность
занесения кодов систем.
2. Связь таблицы «СчетаФактуры» с таблицей «МесяцыСГодом».
Поле: «Код» в обеих таблицах.
Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «МесяцыСГодом»)
Связывание: мастер подстановок в таблице «Изменение АвансОтчета»
Примечания: данная связь заменяет повторяющееся текстовые значения
месяца и года даты счета-фактуры соответствующим кодом из таблицы
«МесяцыСГодом».
3. Связь таблицы «СчетаФактуры» с таблицей «ПоследнииДниМесяцаСГодом».
Поле: «КодСчетаФактуры» в таблице «СчетаФактуры» с полем «Код» в
таблице «ПоследнииДниМесяцаСГодом».
. Тип связи: один ко многим без обеспечения целостности данных.
(один со стороны таблицы «МесяцыСГодом»)
Связывание: мастер подстановок в таблице «Изменение АвансОтчета»
Примечания: данная связь заменяет повторяющееся текстовые значения
месяца и года даты счета-фактуры соответствующим кодом из таблицы
«ПоследнииДниМесяцаСГодом».
3.5. Техническая реализация проекта.
3.5.1. Общее описание работы с приложением.
После загрузки главного файла базы данных MdlByh97.MDB на экране
автоматически появляется экран, информирующий пользователя о процессе
загрузки базы данных. При загрузке происходит проверка целостности данных и
инициализация основных параметров базы данных, таких как путь к файлу
данных, определение глобальных переменных и т.д. Также происходит проверка
разрешения экрана. Дело в том, что экранные формы приложеня имеют
достаточно больной размер После процесса проверки формируется основное
меню и база данных готова к работе.
Далее, пользуясь командами меню, пользователь может выбрать разные
варианты работы:
выписка счетов;
- ввод и распределение денежных средств по платежным поручениям;
- ввод дополнительных данных финансового и справочного характера;
- получение справочной информации различного характера по конкретной
организации;
- получение финансовой информации в общем.
Соответственно, для выписки счетов по основному профилю работы
предприятия (Системы семейства «Консультант Плюс») пользователю необходимо
выбрать в меню «Оформление счетов» пункт «Счета по системам Консультант
Плюс» и из раскрывающегося списка выбрать пункт «Оформление». Далее в форме
необходимо найти требуемого заказчика, выбором из списка либо по процедуре
поиска, или ввести нового и оформить на организацию новый счет. Номер
нового счета вносится автоматически, в порядке последовательных номеров.
Далее, выбором из раскрывающихся списков требуется выбрать необходимые
позиции счета и добавить их, в буфер данных для распечатки.
Основным приемом при выписке документации, на этапе конструирования
форм, было заполнение временных таблиц, используя текущие данные в форме,
по процедуре обработки событий для кнопки и ее отображение в списке при
обновлении данных в форме.
Аналогичным образом оформляются счета на дополнительные заказы. При
этом выбор позиций счета строго не фиксирован, так как выписке счета по
дополнительным заказам предмет счета изменяется широких пределах.
По приходу денежных средств на расчетный счет предприятия по системе
«Банк-Клиент», денежные средства должны быть занесены в систему. Для этого
пользователю необходимо выбрать в меню «Оформление счетов» пункт «Счета по
системам Консультант Плюс» и из раскрывающегося списка выбрать пункт
«Просмотр». Далее необходимо найти счет, по которому пришли денежные
средства, занести в систему информацию по платежному поручению и занести
денежные средства на авансовый отчет. В процедуре занесения контролируется
соответствие денежных средств по платежным поручениям и по счету.
3.5.2. Формы отчетности (счетов, актов, счетов-фактур, накладных).
Данные отчеты реализованы с помощью конструктора отчетов. Источниками
данных для отчетов служат соответствующие временные таблицы, заполняемые
данными при выписке счетов, актов, накладных и т.д. Общим для всех отчетов
является ссылки на соответствующие поля в формах для выписки документов.
Для всех типов счетов, по событию форматирование области заголовка
отчета, по процедуре обработки события, изменяется свойство «Visible» для
подчиненного отчета и в соответствии со значениями глобальной переменной
ВалДляСчета, на печать выводятся реквизиты организации для перевода
денежных средств на счета в разных банках («Федеральный Банк Инноваций и
Развития», «Валютное управление СБ РФ»).
Во всех типах отчетов в области заголовка находится фирменный логотип
организации. Данный логотип представляет комбинацию битового изображения и
набора текстовых полей.
3.5.3. Сервисные функции.
Для обеспечения функциональной универсальности базы данных реализован
ряд функций общего назначения. Данные функции применяются в ряде форм и
отчетов, и выполняю как сервисные функции, так и функции обработки данных.
Например, функция «Number» применяется практически во всех формах
отчетности для перевода суммы из числового выражения в буквенное. Функции
сохранены в модулях базы данных и вызываются динамически по запросу из
процедур обработки событий. В листинге 4.1 приведены исходные тексты всех
модулей используемых в базе данных.
3.5.4. Описание структуры программы.
Учитывая сформированную иерархическую структуру данных и очередность
реализации проекта процесс технической реализации состоял из следующих
этапов.
1. Оформление, учет и выписка первичной бухгалтерской документации
(счетов) по основному профилю работы организации (системы КонсультантПлюс)
Для реализации данного этапа была разработана структура взаимодействия
трех форм:
1. «ОсновнаяОформлениеСчетов» - основная
(источник записей таблица «Заказчики»).
2. «ОсновныеСчета:Подчиненая» - подчиненная1 (к основной)
(источник записей таблица «СчетаОсновные»).
3. «Дистрибутивы1» - подчиненная1.1 (к подчиненной1)
(источник записей таблица «Дистрибутивы»).
Форма «ОсновнаяОформлениеСчетов».
а) Поля.
1) «Образец»
Назначение: для ввода текстовой и цифровой информации использующейся
для поиска по названию организации в процедуре обработки события кнопки
«Кнопка165»(Найти).
Вводимое значение: текстовое или цифровое.
2) «Долг»
Назначение: свободное поле для отображения неучтенной задолженности
для текущей организации.
Заполнение: в процедуре обработки события по событию «Текущая запись»
для данной формы.
Примечание: при очистке данного поля снимается задолженность с
данной организации и очищаются соответствующее связанные поля в
таблице «КредитАванс». Это осуществляется по событию «После
обновления» в процедуре обработки события (листинг 3.1).
3) «Код» (поле со списком)
Назначение: для отображения и выбора типа статуса текущей организации.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
4) «Организация»
Назначение: для отображения названия текущей организации.
Источник записей: аналогичное поле в исходной таблице.
5) «Прейскурант»
Назначение: свободное поле для отображения типа прейскуранта по
которому производится расчет для текущей организации.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечания:
- при выборе значения из списка , по событию «После обновления» в
процедуре обработки события (листинг 3.2), меняется значения источника
строк для поля «ВидСопровождения» в соответствии с наличием видов
сопровождения для выбранного прейскуранта.
- на событию «Потеря фокуса» в процедуре обработки события
(листинг 3.3), происходит проверка на наличие ввода пустого значения.
6) «ВидСопровождения»
Назначение: для отображения типа сопровождения по которому производится
расчет для текущей организации.
Заполнение: выбор из списка (значения списка изменяются в соответствии
с типом прейскуранта).
Источник записей: аналогичное поле в исходной таблице.
7) «Список116»(Список)
Назначение: свободное поле для поиска организации и перехода на
требуемую запись.
Источник записей: SQL - запрос по таблице «Заказчики».
Примечания: сформирован с помощью мастера.
8) Остальные поля «Индекс», «Страна» и т.д. предназначены для
отображения ввода и изменения адресных и банковских реквизитов текущей
организации.
Назначение: для отображения типа сопровождения по которому производится
расчет для текущей организации.
Источники записей: аналогичные поля в исходной таблице.
б) Кнопки. (для кнопок процедуры обработки событий вызываются по
событию «Нажатие кнопки»)
1) «Кнопка165»(Найти).
Назначение: для поиска и вывода информации по организации по текстовому
образцу введенному в поле «Образец». Процедура обработки событий (листинг
3.4).
Примечания: задание флагу flagFind значения True (используется для
отлавливания ошибки в «Отсутствие текущей записи», процедуре обработки
события по событию «Текущая запись» для формы «Основная»).
2) «Кнопка177»(Настройки счета).
Назначение: для вывода на экран диалогового окна «Настройки счета»
(смотри пункт __ ).
Примечания: реализация с помощью мастера.
3) «Кнопка170»(Настройки счета).
Назначение: для предварительного просмотра образца счета. Процедура
обработки событий.
Примечания: реализация с помощью мастера.
4) «КнопкаЗакрытьФорму» (Настройки счета).
Назначение: для закрытия текущей формы.
Примечания: реализация с помощью мастера.
5) «Кнопка_Новая_Запись» (Новая организация).
Назначение: для перехода в текущей форме на новую запись (ввод новой
организации).
Примечания: реализация с помощью мастера, задание флагу flagNew
значения True (используется для отлавливания ошибки в «Отсутствие текущей
записи», процедуре обработки события по событию «Текущая запись» для формы
«Основная»).
6) «Примечания»
Назначение: для вывода диалогового окна записи примечаний к текущей
организации
Примечания: реализация с помощью мастера.
в) Переключатели. (для переключателей процедуры обработки событий
вызываются по событию «После обновления»)
1) «Группа 168» (Организация-Счет).
Назначение: для перехода между информацией о счете и адресными
реквизитами для текущей организации. Процедура обработки событий (листинг
3.5)
Примечания: задание свойству «Visible» значения True или False в
зависимости от положения переключателя. событию «Текущая запись» для формы
«Основная»).
Форма «ОсновныеСчета:Подчиненая».
а) Поля.
1) «НомерСчета».
Назначение: для ввода и отображения номера счета для текущей
организации.
Заполнение: ввод с клавиатуры или по процедуре обработки событий кнопки
«КнопкаНоваяЗапись» в данной форме (смотри пункт __).
Источник записей: аналогичное поле в исходной таблице.
Примечание: значение данного поля изменяется в процедуре обработки
событий по событию «После обновления» поля со списком «КодОтдела» (смотри
пункт 4)).
2) «ДатаСчета».
Назначение: для ввода и отображения даты счета для текущей счета.
Заполнение: ввод с клавиатуры или по умолчанию, в свойстве «Значение по
умолчанию», значением текущей даты (функция Now()).
Источник записей: аналогичное поле в исходной таблице.
3) «Код» (Форма оплаты).
Назначение: для отображения и выбора формы оплаты данного счета.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечание: *надо убрать ПОС по событию «После обновления».
4) «КодОтдела».
Назначение: для отображения и выбора отдела который выписал данный
счет..
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечание: по процедуре обработки событий по событию «После
обновления» изменяется значение поля «НомерСчета» в соответствии с
существующей номенклатурой (листинг 3.6).
5) «СрокДействияСчета» (Срок действия счета).
Назначение: для отображения и ввода даты по которую будет действителен
текущий счет.
Заполнение: ввод с клавиатуры или по умолчанию, в свойстве «Значение по
умолчанию», значением последнего числа текущего месяца (функция EndMonth()
- смотри список функций базы данных).
Источник записей: аналогичное поле в исходной таблице.
Примечание: * необходимо переделать функцию EndMonth(), чтобы значение
срока действия счета = текущая дата + 20 (15) дней.
6) «ЦенаДистрибутива» - скрытое поле.
Назначение: свободное поле для хранения цены дистрибутива системы,
текущей в форме Подчиненная1.
Заполнение: по процедуре обработки событий для события «После
обновления» поля «КодСистемы» в форме Подчиненная1.1 (смотри пункт __ в
описании формы Подчиненная1.1).
Примечание: *необходимо сбрасывать значение данного поля в Null при
переходе по записям в форме Подчиненная1.1, для избежания ситуации с
занесением цены предыдущего или последующего дистрибутива.
7) «ЦенаСпецВыпуска» - скрытое поле.
Назначение: свободное поле для хранения цены спецвыпуска дистрибутива
системы, текущей в форме Подчиненная1.
Заполнение: по процедуре обработки событий для события «После
обновления» поля «КодСистемы» в форме Подчиненная1.1 (смотри пункт __ в
описании формы Подчиненная1.1).
Примечание: *необходимо сбрасывать значение данного поля в Null при
переходе по записям в форме Подчиненная1.1, для избежания ситуации с
занесением цены спецвыпуска предыдущего или последующего дистрибутива.
8) «Сопровождение» - скрытое поле.
Назначение: свободное поле для хранения цены на сопровождение системы,
текущей в форме Подчиненная1, в соответствии с параметрами полей
«Прейскурант» и «ВидСопровождения» формы Основная.
Заполнение: по процедуре обработки событий для события «После
обновления» поля «КодСистемы» в форме Подчиненная1.1 (смотри пункт __ в
описании формы Подчиненная1.1).
Примечание: * необходимо сбрасывать значение данного поля в Null при
переходе по записям в форме Подчиненная1.1, для избежания ситуации с
занесением цены спецвыпуска предыдущего или последующего дистрибутива.
9) «Месяц» - скрытое поле.
Назначение: свободное поле для хранения значения месяца прейскуранта по
которому выписывается заказы по текущему счету.
Заполнение: по процедуре обработки событий для события «После
обновления» поля «КодСистемы» в форме Подчиненная1.1 (смотри пункт __ в
описании формы Подчиненная1.1).
Примечание: * необходимо заполнять значение данного поля при повторной
выписке счета, возможно по процедуре обработки события для кнопки
«Кнопка63» в форме Подчиненная1.1.
10) «КодЗаказчика» - скрытое поле.
Назначение: главное связующее поле по для форм Подчиненная1 и Основная.
Заполнение: автоматически .
Источник записей: аналогичное поле в исходной таблице.
Примечание: не удалять.
б) Флажки.
1) «ВыпискаНакладной» и «ВыпискаАктов» ?.
Назначение: отметка о выписке актов и накладных при покупке системы.
Заполнение: по процедуре обработки события для кнопки «Кнопка170» в
форме Основная.
Источник записей: аналогичное поле в исходной таблице.
Примечание: * возможно запрещение выписки актов и накладных на данном
этапе, следовательно необходимость наличия этих полей отпадает.
в) Кнопки. (для кнопок процедуры обработки событий вызываются по
событию «Нажатие кнопки»)
1) «КнопкаНоваяЗапись».
Назначение: для перехода на новую запись для данной форма (новый счет
для текущей организации) и заполнения поля «НомерСчета» следующим номером
согласно существующей номенклатуре, очистка временных таблиц
«НаВыпискуСчета» и «НаВыпискуНакладной». Процедура обработки событий
(листинг 3.7).
Примечания: * отладить на возникновение ошибок при нестандартном номере
предыдущего счета.
2) «Кнопка333», «Кнопка334», «Кнопка335», «Кнопка336».
Назначение: для перехода по записям для текущей формы (счета для данной
организации). Реализация с помощью мастера.
Форма «Дистрибутивы1».
а) Поля.
1) «КодМесяца» (Месяц) - поле со списком.
Назначение: для выбора и отображения месяца прейскуранта для расчета
стоимости заказов для текущего счета.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечание: так как значение данного поля является критичным для
последующих вычислений, то для данного поля, в процедуре обработки событий
по событию «После обновления», происходит проверка на наличие пустого
значения в данном поле (листинг 3.8).
2) «КодСистемы» (Система).
Назначение: для выбора и отображения системы, на которую будет
оформлена запись в счете.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит заполнение поля «ЦенаДистрибутива»,
«ЦенаСпецВыпуска», «Сопровождение» формы Подчиненая1, соответствии с
выбранным значением данного поля и со значениями полей «Прейскурант» и
«ВидСопровождения», формы Основная (листинг 3.9).
3) «Код» (Тип системы) - поле со списком.
Назначение: для выбора и отображения типа системы, на которую будет
оформлена запись в счете.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цены системы и сопровождения (поля
«Цена»и «Сопровождение») в соответствии с выбранным значением данного поля
и со значениями полей «СпецвыпускИлиНет», «Количество», «Скидки»,
«КоличествоМ», «СкидкиС» текущей формы (листинг 3.10).
4) «СпецвыпускИлиНет» - флажок. (Спецвыпуск).
Назначение: для указания и отображения, является ли данный дистрибутив
спецвыпуском или нет.
Заполнение: ввод с клавиатуры.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цены системы и сопровождения (поля
«Цена»и «Сопровождение») в соответствии со значением данного поля и со
значениями полей «СпецвыпускИлиНет», «Количество», «Скидки», «КоличествоМ»,
«СкидкиС» текущей формы (листинг 3.11).
5) «Флажок58» - флажок. (только ИПС).
Назначение: для указания и отображения, оформляется ли данный заказ на
продажу или только на сопровождение.
Заполнение: ввод с клавиатуры.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цены сопровождения в соответствии со
значением данного поля и со значениями полей «СпецвыпускИлиНет»,
«Количество», «Скидки», «КоличествоМ», «СкидкиС» текущей формы, и
присваивается Null значению поле «Цена» (листинг 3.12).
6) «Примечание».
Назначение: для ввода и отображения комментариев к текущему заказу.
Заполнение: ввод с клавиатуры.
Источник записей: аналогичное поле в исходной таблице.
7) «НомерДистрибутива» - необходимость в данной форме ???.
8) «Количество» (Количество систем). - необходимость в данной форме
???.
Назначение: для ввода и отображения количества систем на которые
оформляется данный заказ счета.
Заполнение: постоянное значение, равное 1.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цен по данному заказу счета в
соответствии со значением в данном поле и со значениями полей
«СпецвыпускИлиНет», «Скидки», «КоличествоМ», «СкидкиС» текущей формы
(листинг 3.13).
9) «Скидки» (Скидки на систему).
Назначение: для ввода и отображения величены скидки на систему при
продаже.
Заполнение: ввод с клавиатуры, значение для ввода - дробное число (0.15
- 15%).
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цен по данному заказу счета в
соответствии со значением скидки в данном поле и со значениями полей
«СпецвыпускИлиНет», «Количество», «КоличествоМ», «СкидкиС» текущей формы
(листинг 3.14).
10) «КоличествоМ» (Количество месяцев)
Назначение: для ввода и отображения количества месяцев сопровождения на
текущую систему.
Заполнение: ввод с клавиатуры.
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цен по данному заказу счета в
соответствии со значением в данном поле и со значениями полей
«СпецвыпускИлиНет», «Скидки», «Количество», «СкидкиС» текущей формы
(листинг 3.15).
11) «СкидкиС» (Скидки на сопров.).
Назначение: для ввода и отображения величены скидки на сопровождение.
Заполнение: ввод с клавиатуры, значение для ввода - дробное число (0.15
- 15%).
Источник записей: аналогичное поле в исходной таблице.
Примечание: для данного поля, в процедуре обработки событий по событию
«После обновления», происходит расчет цен по данному заказу счета в
соответствии со значением скидки в данном поле и со значениями полей
«СпецвыпускИлиНет», «Количество», «КоличествоМ», текущей формы (листинг
3.16).
12) «Цена» (Поставка).
Назначение: для ввода и отображения цены на систему при покупке.
Заполнение: ввод с клавиатуры или по процедуре обработки событий
вышеописанных полей.
Источник записей: аналогичное поле в исходной таблице.
13) «Сопровождение».
Назначение: для ввода и отображения цены на сопровождение.
Заполнение: ввод с клавиатуры или по процедуре обработки событий
вышеописанных полей.
Источник записей: аналогичное поле в исходной таблице.
14) «КодСчета» - скрытое поле.
Назначение: главное связующее поле по для форм Подчиненная1 и
Подчиненная1.1.
Заполнение: автоматически .
Источник записей: аналогичное поле в исходной таблице.
Примечание: не удалять.
15) «СистемыНаВыписку» - список.
Назначение: свободное поле для отображения перечня заказов входящих в
счет.
Заполнение: по SQL - запросу.
Источник строк: SQL - запрос по таблице «НаВыпискуСчета».
(SELECT DISTINCTROW [НаВыпискуСчета].[Код], [НаВыпискуСчета].[Система],
[НаВыпискуСчета].[Количество] FROM [НаВыпискуСчета];)
Примечание: так как данное поле имеет источник строк SQL - запрос по
временной таблице, то отображение изменений для данного поля происходит
после обновления данных в форме (DoCmd Refresh).
б) Кнопки. (для кнопок процедуры обработки событий вызываются по
событию «Нажатие кнопки»)
1) «Кнопка63» (Добавить новую >- при выписке в счете нового заказа).
Назначение: занесение информации для данного заказа счета во временную
таблицу «НаВыпискуСчета» с проверкой на наличие правильности заполнения
критических значений полей, обновление содержимого формы, с целью
отображения последних изменений (в списке «СистемыНаВыписку») и переход на
новую запись в текущей форме (для ввода нового заказа счета). Процедура
обработки событий (листинг 3.17).
Примечания: - .
2) «Кнопка69» (Добавить > - при повторной выписке счета).
Назначение: занесение информации для данного заказа счета во временную
таблицу «НаВыпискуСчета» с проверкой на наличие правильности заполнения
критических значений полей, обновление содержимого формы, с целью
отображения последних изменений (в списке «СистемыНаВыписку») и переход на
следующую запись в текущей форме (для ввода или изменения следующего заказа
счета). Процедура обработки событий (листинг 3.18).
Примечания: - .
3) «Кнопка71», «Кнопка72», «Кнопка73», «Кнопка75».
Назначение: для перехода по записям для текущей формы (заказы для
данной счета). Реализация с помощью мастера.
4) «Кнопка70».
Назначение: для удаления выделенной записи в списке «СистемыНаВыписку»
из временной таблицы «НаВыпискуСчета» с проверкой на наличие выделенной
записи, обновление содержимого формы, с целью отображения последних
изменений (в списке «СистемыНаВыписку»). Процедура обработки событий
(листинг 3.19).
Примечания: - .
5) «Кнопка74».
Назначение: для удаления всех записей в списке «СистемыНаВыписку» из
временной таблицы «НаВыпискуСчета», обновление содержимого формы, с целью
отображения последних изменений (в списке «СистемыНаВыписку»). Процедура
обработки событий (листинг 3.20).
Примечания: - .
Комментарии.
Описанная структура имеет следующие особенности работы
1. Для формы Основная по событию «Текущая запись» в процедуре обработки
событий происходит расчет по значений задолженности текущей организации
(заполняется поле «Долг») и проверяется наличие важных примечаний для
данной организации (выделение цветом текста кнопки «Примечания»)
(листинг 3.21).
2. Также для формы Основная при загрузки инициализируются две
переменные flagNew и flagFind использующиеся для устранения ошибок в
процедуре обработки событий по событию «Текущая запись» для формы Основная
(для новой организации не может быть кредиторской или авансовой
задолженности). Значения переменных - флагов устанавливаются в процедурах
обработки событий для кнопок «Кнопка165» (flagFind) и «Кнопка_Новая_Запись»
(flagNew). (листинг 3.22).
3. Для формы Подчиненная1 по событию «Открытие» в процедуре обработки
событий происходит очистка временной таблицы «НаВыпискуСчета» и
«НаВыпискуНакладной» по функции ClearListBox()
2. Оформление, учет и выписка вторичной отчетной документации (акты
приемки-сдачи, накладные, счета-фактуры, акты на информационно-
программного сопровождение, счета-фактуры на информационно-программного
сопровождение), фиксирование информации о приходе денежных средств по
счетам, формирование первичного авансового отчета по основному профилю
работы организации (системы КонсультантПлюс)
Для реализации данного этапа была разработана структура взаимодействия
трех форм:
1. «Просмотр» - основная
(источник записей таблица «Заказчики»).
2. «ПросмотрSub» - подчиненная1 (к основной)
(источник записей таблица «СчетаОсновные»).
3. «ПросмотрSubSub» - подчиненная1.1 (к подчиненной1)
(источник записей таблица «Дистрибутивы»).
4. «Платежки» - подчиненная1.2 (к подчиненной1)
(источник записей таблица «Платежки»).
5. «СчетаФактурыОсновные» - подчиненная1.3 (к подчиненной1)
(источник записей таблица «СчетаФактурыОсновные»).
Форма «Просмотр».
а) Поля.
1) «Образец»
Назначение: для ввода текстовой и цифровой информации использующейся
для поиска
по названию организации в процедуре обработки события кнопки
«Кнопка165»(Найти).
Вводимое значение: текстовое или цифровое.
2) «Код» (поле со списком)
Назначение: для отображения и выбора типа статуса текущей организации.
Заполнение: выбор из списка.
Источник записей: аналогичное поле в исходной таблице.
3) «Организация»
Назначение: для отображения названия текущей организации.
Источник записей: аналогичное поле в исходной таблице.
4) «Список116»(Список)
Назначение: свободное поле для поиска организации и перехода на
требуемую запись.
Источник записей: SQL - запрос по таблице «Заказчики».
Примечания: сформирован с помощью мастера.
5) Остальные поля «Индекс», «Страна» и т.д. предназначены для
отображения ввода и изменения адресных и банковских реквизитов текущей
организации.
Назначение: для отображения типа сопровождения по которому производится
расчет для текущей организации.
Источники записей: аналогичные поля в исходной таблице.
6) «ПервыйМесяц»
Назначение: свободное поле для ввода первого месяца сопровождения
начиная с которого необходимо выписывать акты и счета-фактуры на
сопровождение для текущей организации.
Примечания: вводимое значение в кратком формате даты (например
04.03.97) используется только для формирования начальной даты при выписке
акты и счета-фактуры на сопровождение для текущей организации.
б) Кнопки. (для кнопок процедуры обработки событий вызываются по
событию «Нажатие кнопки»)
1) «Кнопка165»(Найти).
Назначение: для поиска и вывода информации по организации по текстовому
образцу введенному в поле «Образец». Процедура обработки событий (листинг
3.23).
Примечания: задание флагу flagFind значения True (используется для
отлавливания ошибки в «Отсутствие текущей записи», процедуре обработки
события по событию «Текущая запись» для формы «Основная»).
2) «Кнопка139»(Настройки печати).
Назначение: для вывода на экран диалогового окна «Настройки счета»
(смотри пункт __).
Примечания: реализация с помощью мастера.
3) «Кнопка174».
Назначение: для предварительного просмотра образца актов, накладных и
счетов-фактур по счету при продаже. Процедура обработки событий (листинг
3.24).
Примечания: реализация с помощью мастера, проверка значений формы
критических для выписки счета.
4) «КнопкаЗакрытьФорму» (Настройки счета).
Назначение: для закрытия текущей формы.
Примечания: реализация с помощью мастера.
5) «Кнопка181».
Назначение: для предварительного просмотра образца актов и счетов-
фактур на сопровождение по счету для текущей организации (листинг 3.25)
Примечания: реализация с помощью мастера, проверка значений формы
критических для выписки счета.
Форма «ПросмотрSub».
а) Поля.
1) «НомерСчета».
Назначение: для отображения номера счета для текущей организации.
Источник записей: аналогичное поле в исходной таблице.
2) «Код» (Форма оплаты).
Назначение: для отображения и выбора формы оплаты данного счета.
Заполнение: выбор из списка.
Страницы: 1, 2, 3, 4, 5, 6
|