Содержание
Урок 1.1. Пишем программу складского учета.
Будем писать программу учета продуктов на складе по средней цене прихода. А для этого нам
нужно научиться работать с базами данных. Начнем работу с создания базы в MS
Access 2007.
Урок 1.2. Создаем главную форму программы склад.
На этом
уроке мы создадим главную форму для нашего склада. Создадим подключение, к
базе, используя компонент TADOConnection. Используемые компоненты (
TADOConnection ).
Урок 1.3. Создаем главную форму программы склад.
На этом
уроке мы продолжим создание главной формы для нашего склада. Разместим
основные компоненты, создадим меню... Используемые компоненты (TADOTable,
TMainMenu).
Урок 1.4. Создаем подчиненные формы для
справочников программы склад.
На этом
уроке мы создадим форму для справочника "Единицы измерения" нашего склада.
Используемые компоненты (TButton, TDBGrid, TDataSource ).
Урок 1.5. Создаем подчиненные формы для
справочников программы склад.
На этом
уроке мы создадим форму для справочника «Категории продуктов» и
«Поставщики» нашего склада. Используемые компоненты (TButton, TDBGrid,
TDataSource ).
Урок 1.6. Создаем подчиненные формы для
справочников программы склад.
На этом
уроке мы создадим форму для справочника «Продукты» нашего склада c
использованием поле Lookup из других таблиц. Используемые компоненты (TButton,
TDBGrid, TDataSource ).
Урок 1.7. Создаем формы прихода продуктов на склад.
На этом
уроке мы создадим формы прихода продуктов на склад. Приход продуктов будет
состоять из трех форм. В первой мы будем хранить данные о приходе. Во
второй, данные о продуктах для каждого прихода. Третья – форма для выбора
продуктов. Используемые компоненты (TButton, TDBGrid, TADOTable, TADOQuery,
DataModule).
Урок 1.8. Создаем формы прихода продуктов на склад.
На этом
уроке мы создадим вторую форму, в которой будут отражаться данные о
продуктах для каждого прихода. Используемые компоненты (TButton, TDBGrid,
TADOTable, TADOQuery, DataModule, TDateTimePicker, TDBLookupComboBox).
Урок 1.9. Создаем формы прихода продуктов на склад.
На этом
уроке мы создадим последнюю форму для прихода продуктов. В ней будет
происходить выбор продуктов прихода. Используемые компоненты (TButton,
TDataSource, TDateTimePicker, TDBLookupComboBox, TDBEdit).
Урок 1.10. Программирование баз данных в Delphi -
создаем формы прихода продуктов на склад.
На этом
уроке мы напишем процедуры для обработки событий для наших форм прихода,
созданных на уроках 1.7. – 1.9.
Урок 1.8.
Программирование
баз данных в Delphi - создаем формы прихода продуктов на склад.
На
этом уроке мы создадим вторую форму, в
которой будут отражаться данные о продуктах для каждого прихода.
Приступим к созданию формы.
Создаем новую форму 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->0.000
DisplayLabel -> Количество;
DisplayWidth -> 10;
Для поля price
DisplayFormat->0.00
DisplayLabel -> Цена;
DisplayWidth -> 10;
Для поля
date_realization
DisplayLabel -> Реализовать до:;
DisplayWidth -> 18;
Далее создаем
выпадающее поле Lookup (поле
подстановки) для просмотра данных из справочника «Продукты».
Для этого в
структуре (Structure) -> Storage -> Fields -> щелкнем
правой кнопкой мыши и выберем New field….
и заполняем следующее
окно
В поле Name: пишем product;
в поле Type: выбираем String;
выбираем поле Lookup;
в Key Fields:выбираем id_product;
в Dataset: выбираем form_general.table_products;
в Lookup Keys: выбираем id;
а в Result Field: выбираем product_name жмем ОК
В инспекторе объектов для созданного поля свойство DisplyLabel-> Продукт, DisplyWidth->
20 и перемещаем поле мышкой в позицию после поля id_product.
Далее создаем
выпадающее поле Lookup (поле
подстановки) для просмотра данных из справочника «Единицы измерения».
Для этого в
структуре (Structure) -> Storage -> Fields -> щелкнем
правой кнопкой мыши и выберем New field…. и
делаем аналогично предыдущему …
В поле Name: пишем ed_izmer;
в поле Type: выбираем String;
выбираем поле Lookup;
в Key Fields:выбираем id_ed_izmer;
в Dataset: выбираем form_general.table_ed_izmer;
в Lookup Keys: выбираем id;
а в Result Field: выбираем ed_name жмем ОК
В инспекторе объектов для созданного поля свойство DisplyLabel-> Ед.изм., DisplyWidth->
20 и перемещаем поле мышкой в позицию после поля product.
Далее создаем вычисляемое
поле summa .
Для этого в
структуре (Structure) -> Storage -> Fields -> щелкнем
правой кнопкой мыши и выберем New field…. и
делаем аналогично предыдущему …
В поле Name: пишем summa;
в поле Type: выбираем Float;
выбираем поле Calculated;
и жмем ОК
В инспекторе объектов для созданного поля свойство DisplyLabel-> Сумма., DisplyWidth->10, DisplayFormat->0.00 .
Свяжем таблицу table_storage с
таблицей table_prihod в Datamodule (dm) для этого выбираем
компонент table_storage и в инспекторе объектов свойство MasterSource -> dm.prihod,
MasterFields->…
и в
открывшемся окне выбираем в левом окне id_prihod а в
правом окне id нажимаем Add.
В окне JoinedFields должна появиться связь
Нажимаем ОК и
связь между таблицами установлена.
Для table_storage устанавливаем свойство Active-> True;
для ADOQuery1 в инспекторе объектов свойство Name записываем ADOQuery_summa,
Connection устанавливаем -> form_general.ADOConnection1;
DataSource-> dm.prihod;
SQL (TString)
-> в открывшемся окне вводим следующий запрос
SELECT storage.id_prihod,
Sum([storage].[quantity]*[storage].[price]) AS [sum] FROM storage GROUP BY storage.id_prihod HAVING
(((storage.id_prihod)=:id));
|
далее выбираем
свойство Parameters((TParameters)
Создаем новый параметр Name->id
Value->Type->Integer;
Выбираем
ADOQuery_summa и в структуре
(Structure)
-> ADOQuery_summa -> Fields ->
щелкнем правой кнопкой мыши и выберем Add all fields.
Для поля sum
DisplayFormat->0.00
DisplayLabel -> sum;
DisplayWidth -> 10;
Из вкладки Data Access помещаем на форму три компонента
TDataSource.
для DataSource1 в инспекторе
объектов свойство Name записываем summa,
DataSet-> ADOQuery_summa;
для DataSource2 в инспекторе
объектов свойство Name записываем postav_ik,
DataSet-> Form_general.table_postav_ik;
для DataSource3 в инспекторе
объектов свойство Name записываем storage,
DataSet-> table_storage;
Из вкладки Data Controls помещаем на
форму компоненты
TDBLookupComboBox , TDBGrid и TDBEdit.
для DBGrid1 в инспекторе объектов свойство DataSource-> storage, а свойство Options->dgRowSelect->True.
для DBEdit1 в Name-> DBEdit_summ, DataSource->summa, DataField->sum,
ReadOnly->True.
для DBLookupComboBox1 в инспекторе объектов свойство Name записываем
DBLookup_postav_ik, ListSource->postav_ik,
ListField->postav_ik_name, KeyField->id, DataSource->dm.prihod,
DataField->id_postav_ik.
Далее приводим нашу форму к следующему виду:
Скачать исходники урока можно здесь.
|