Наконец-то мы подошли к созданию таблиц и форм для учета товарных операций (приход и расход товара). В нашем случае данные приходных и расходных документов практически не отличаются, поэтому мы будем их хранить в одних и тех же таблицах. Соответственно и для работы с данными будем использовать одни и те же формы.
Наконец-то мы подошли к созданию таблиц и форм для учета товарных операций (приход и расход товара). Посмотреть готовый результат этого этапа можно здесь: Sklad_8.zip. Для начала нам необходимо сделать таблицы, в которых будут храниться данные товарных операций (Дата, Клиент, Документ, Товар, кол-во, Цена и др.) Для облегчения жизни мы не будем разделять по разным таблицам данные приходных и расходных документов, хотя частенько это имеет смысл. В нашем случае данные приходных и расходных документов практически не отличаются, поэтому мы будем их хранить в одних и тех же таблицах. Соответственно и для работы с данными будем использовать одни и те же формы. Документы у нас состоят из Шапки и Спецификации. Под одной шапкой документа могут находиться множество позиций спецификации. Исходя из этого положения, проектируем две таблицы следующим образом:  Шапки документов мы будем хранить в таблице ТовОпер, а спецификации каждой шапки - в ТовОперСп. Для того, что бы нам отличать приходную накладную от расходной, мы вставим поле [ТовОпер]![МетПрих]. Для приходной накладной это поле будет иметь значение TRUE, для расходной - FALSE. Сейчас мы сделаем формы для редактирования одного документа. Скажу сразу, что на этом этапе мы сделаем всего лишь "рыбу", но вполне работоспособную... Нам необходимо сделать две формы. Одна для спецификации (подчиненная), другая для редактирования шапки документа. Начнем со спецификации. Свойство "Режим по умолчанию" для нее сделаем "Таблица" для того, что бы пользователь мог сам изменять ширину полей (столбцов) в накладной.  Остановлюсь на двух полях, которые покажутся странными с первого взгляда. Эти поля выделены синим цветом (ПромежуточнаяШт и ПромежуточнаяСумма). Они пригодятся нам для отображения сумм по всему документу (Всего Шт; Всего Сумма). Для пользователя нет необходимости отображать их, поэтому мы их скроем. В главной форме, которая отображает шапку документа, использует форму ТовОперСп в качестве подчиненной. Сама главная форма в режиме конструктора выглядит следующим образом:  Внизу этой формы я вставил два поля, отображающие Итоговые суммы по документу. Эти поля просто считывают значения полей ПромежуточнаяШт и ПромежуточнаяСумма из подчиненной. Для ссылки используем выражения "=[ПодчиненнаяТовОперСп].[Form]![ПромежуточнаяШт]" и " =[ПодчиненнаяТовОперСп].[Form]![ПромежуточнаяСумма]" соответственно. Вот такие замысловатые ссылки используются для обращения к полям подчиненных форм. Советую хорошо запомнить подобный синтаксис, потому что в свое время многие поломали зубы на подобных вещах (в молодости конечно) ... В итоге получаем следующий вид рабочей формы:  Ну вот, наша "рыба" и готова. Что бы сделать ее удобной для пользователя, хорошо бы еще добавить возможность выбора даты из календаря и товара из специальной формы для выбора товара, потому что длинный выпадающий "рулон" со списком товаров очень неудобен. Нам нужна еще форма со списком всех товарных операций, что бы пользователь мог видеть все свои товарные операции и при необходимости мог их редактировать, удалять, добавлять, используя форму, которую мы сегодня сделали. Об этом пойдет речь на следующих этапах. А за сим позвольте откланяться... Просмотров: 17769
 Ваш коментарий будет первым | | |