Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание БД в Delphi_30_01_12.doc
Скачиваний:
15
Добавлен:
21.08.2019
Размер:
619.01 Кб
Скачать

Занятие 4. Разработка главной формы программы

Главная форма приложения, как правило, предназначается для выполнения основной задачи пользователя. В нашем случае это создание накладной и перечня продаваемых товаров для определенного покупателя, включая подсчет общей стоимости проданных товаров.

  1. Для решения этой задачи разместим:

  1. в модуле данных DM:

  • компонент TZTable ( Name = Nakladn; TableName = NAKL; MasterSource = DSPokup; MasterFields = IDPOKUP; LinkedFields = IDPOKUP ),

  • два компонента TDataSource с именами DSNakl и DSOtpusk;

  • компоненты TZQuery ( Name=Otpusk ) и TZUpdateSQL ( Name=OtpUpdSQL )

  1. на форме следующие компоненты:

  • компонент TDBText ( DataSource=DM.DSPokup; dataField = POKUPNAME ).

  • компонент TDBNavigator ( DataSource=DM.DSPokup )

  • два компонента DBGrid и соответствующие им два TDBNavigator, задав им свойства DataSource = DM.DSNakl и DataSource = DM.DSOtpusk соответственно.

Таблицу Nakladn подключите как дочернюю к таблице Pokupatel.

В компоненте TZQuery свойство TableName отсутствует, зато есть два важных свойства – SQL и UpdateObject.

  1. Раскройте выпадающий список свойства UpdateObject и выберите OtpUpdSQL.

В этом случае данные ZQuery можно будет редактировать. Если же свойство UpdateObject не определено ( UpdateObject := null ), то данные ZQuery можно будет только читать.

Значение свойства SQL типа TStrings задается в редакторе многострочного текста, как показано на рис. 18:

Рисунок 18. SQL – оператор выборки данных компонента ZQuery

  1. Введите текст SQL – запроса, как показано на рис. 18

О братите внимание на фрагмент SQL – оператора:

where NAKLNOM = :NAKLNOM

Вводя в текст запроса :NAKLNOM мы создали параметр с именем NAKLNOM, свойства которого нужно отредактировать в Object Inspector (рис. 19).

  1. Задайте свойства DataType=ftInteger, ParamType=ptInput, Size=4 параметра NAKLNOM так, как показано на рис.

Внимание: между двоеточием и именем параметра пробелов нет.

Если имя параметра (NAKLNOM) совпадает с именем поля в составе первичного ключа компонента родительской таблицы, то реализуется связь Master – Detail, такая же, как в случае компонент TZTable. Однако возможно создавать и другие, дополнительные параметры, значения которых задаются программно перед активизацией TZQuery.

Чтобы сделать TZQuery Otpusk редактируемым набором, нужно задать его свойства InsertSQL, ModifySQL, DeleteSQL и RefreshSQL. Если текст SQL – запроса в компоненте TZQuery Otpusk, то:

  1. Выделите в модуле DM компонент TZUpdateSQL OtpUpdSQL и щелчком правой кнопки мыши вызовите контекстное меню, в котором выберите UpdateSQL Editor. Окно диалога приведено на рисунке:

Рисунок 20. Диалог построения DML – операторов компонента ZUpdateSQL

В таблице OTPUSK первичный ключ состоит из двух полей: IDTOV и NAKLNOM. Выделите их в списке Key Fields, а в Update Fields – все поля таблицы. Нажмите кнопку "Generate SQL". Конструктор генерирует соответствующие SQL – операторы для вставки, изменения и удаления данных, которые приведены на рис. 21:

Рисунок 21. Созданные в диалоге компонента ZUpdateSQL операторы вставки, изменения, удаления и обновления данных

Сохраните проект, а затем запустите на выполнение. Теперь Вы можете вводить новые, редактировать и удалять записи в таблицах NAKL и OTPUSK базы данных, как показано на рис. 22:

Рисунок 22. Создание новой накладной и отпуск товаров в окне приложения