Далее создаем выпадающее поле Lookup для просмотра данных из справочника «Поставщики»
Для этогов структуре (Structure) -> prihod -> Fields -> щелкнем правой кнопкой мыши и выберем New field….
и заполняем
В поле Name: пишем postav_ik;
в поле Type: выбираем String;
выбираем поле Lookup;
в Key Fields:выбираем id_postav_ik;
в Dataset: выбираем form_general.table_postav_ik;
в Lookup Keys: выбираем id;
а в Result Field: выбираем postav_ik_name жмем ОК
В инспекторе объектов для созданного поля свойство DisplyLabel-> Поставщик, DisplyWidth-> 24 иперемещаем поле мышкой в позицию после поляid_postav_ik.
После этого видим для формы «Приход»:
Вопросы для контроля
1. Для чего устанавливаем в DisplayLabel -> Номер документа?
2. Что такое Key Fields и для чего нужен?
3. Что устанавливаем в Dataset и для чего?
4. Что произойдет если в Lookup Keys: выбираем id?
5. Что произойдет если в Result Field: выбираем postav_ik_name?
Литература
1. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. -СПб.: Питер, 2003.
2. Бобровский С.И. Delphi 7. Учебный курс. - СПб.: Питер, 2005.
3. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi. - СПб.: БХВ - Петербург, 2005.
ЛАБОРАТОРНАЯ РАБОТА № 8
Тема: Создание формы прихода продуктов на склад
Цель: Научиться создавать форму и продумывать интерфейс программы
Оборудование и/или программное обеспечение: ПК, Delphi
Теоретическая часть
Для того чтобы иметь возможность просматривать записи файла данных, в форму приложения нужно добавить компонент TDBNavigator, значок которого находится на вкладке Data Controls. Компонент TDBNavigator (рисунок 1) представляет собой набор кнопок, по щелчку на которых во время работы программы происходит перемещение указателя текущей записи к следующей, предыдущей, первой или последней записи базы данных, а также добавление к файлу данных новой записи, удаление текущей записи.
Рис.1. Компонент TDBNavigator
В приведенной ниже таблице содержится описание каждой кнопки.
Таблица 1. Назначение кнопок компонента TDBNavigator | |||
Кнопка | Название | Обозначение | Действие |
К первой | nbFirst | Указатель текущей записи перемещается к первой записи файла данных | |
К предыдущей | nbPrior | Указатель текущей записи перемещается к предыдущей записи файла данных | |
К следующей | nbNext | Указатель текущей записи перемещается к следующей записи файла данных | |
К последней | nbLast | Указатель текущей записи перемещается к последней записи файла данных | |
Добавить | nbInsert | В файл данных добавляется новая запись | |
Удалить | nbDelete | Удаляется текущая запись файла данных | |
Редактирование | nbEdit | Устанавливает режим редактирования текущей записи | |
Сохранить | nbPost | Изменения, внесенные в текущую запись, записываются в файл данных | |
Отменить | nbCancel | Отменяет внесенные в текущую запись изменения | |
Обновить | nbRefresh | Записывает внесенные изменения в файл |
Свойство VisibleButtons позволяет скрыть некоторые кнопки компонента TDBNavigator и тем самым запретить выполнение соответствующих операций над файлом данных. Например, присвоив значение False свойству VisibleButtons.nbDelete можно скрыть кнопку nbDelete и тем самым запретить удаление записей. Свойство DataSource, как и, например, для компонентов TDBEdit служит для связывания компонента с таблицей.
Свойству DataSource присвоим значение DataSource1.
Теперь запустим наше приложение. Мы видим, что записи в нашей БД отсутствуют. Внесем несколько записей в таблицу, используя клавишу компонента TDBNavigator. Так как для полей Family, Name, God, Predmet мы поставили флажок Required Field, что означает обязательное заполнение поля, то при нажатии клавиши , необходимо чтобы все компоненты TDBEdit были заполнены, иначе программа выдаст ошибку.
Практическая часть
На этом уроке мы создадим вторую форму, в которой будут отражаться данные о продуктах для каждого прихода.
Приступим к созданию формы.
Создаем новую форму File->New->Form –Delphi
В инспекторе объектов устанавливаем следующие свойства для новой формы
Name -> Form_prihod_prod;
Visible->False;
Сохраните модуль с именем prihod_prod.
Пропишем uses general, prihod, unit_dm; после раздела implementation в программном модуле unit prihod_prod.
А программном модуле unit general главной формы пропишем Uses ed_izmer, product_group, postav_ik, products, prihod, prihod_prod;
А программном модуле unit prihodформы прихода (form_prihod) пропишем uses general, unit_dm, prihod_prod;
Далее размещаем на форме следующие компоненты
Три кнопки TButton, компонент TEditи пять компонентов TLableиз вкладки Standart
В инспекторе объектов для Button1 устанавливаем свойство Caption -> Новая запись;
для Button2 устанавливаем свойство Caption -> Удалить запись;
для Button3 устанавливаем свойство Caption -> Закрыть;
для Edit1устанавливаем свойство Name-> docum_number, NumbersOnly->True;
дляLabel1устанавливаем свойство Caption -> Документ номер;
дляLabel2устанавливаем свойство Caption -> от;
дляLabel3устанавливаем свойство Caption -> Поставщик;
дляLabel4устанавливаем свойство Caption -> Итого на сумму
дляLabel5устанавливаем свойство Caption -> руб.
Из вкладки Win32,компонентTDateTimePicker
В инспекторе объектов для него устанавливаем свойство Format -> dd.MM.yyyy, Time -> 0:00:00;
Далее из панели компонентов dbGo (ADO) размещаем на форме компоненты два TADOTable и TADOQuery.
для ADOTable1 в инспекторе объектов свойство Name записываем table_copy_prihod,
Connection устанавливаем -> form_general.ADOConnection1
TableName-> prihod,
Active-> True;
для ADOTable2 в инспекторе объектов свойство Name записываем table_storage,
Connection устанавливаем -> form_general.ADOConnection1
TableName-> strorage,
Active-> True;
Выбираем table_storageи в структуре (Structure) -> storage -> Fields -> щелкнем правой кнопкой мыши и выберем Add all fields.
должно получиться следующее:
Далее выбираем поле id и в инспекторе объектов устанавливаем у него свойство Visible->False.
Для поля id_product устанавливаем свойство Visible->False.
Для поля id_product_group устанавливаем свойство Visible->False.
Для поля id_prihod устанавливаем свойство Visible->False.
Для поля id_ed_izmer устанавливаем свойство Visible->False.
Для поля quantity
DisplayFormat->.###
DisplayLabel -> Количество;
DisplayWidth -> 10;
Для поля price
DisplayFormat->.##
DisplayLabel -> Цена;
DisplayWidth -> 10;
Для поля date_realization
DisplayLabel -> Реализовать до:;
DisplayWidth -> 18;