Читайте также: |
|
2. Поместите на форму компонент TClientDataSet(ClientDataSet1) из вкладки Data Access;
3. Используя свойство FieldDefs компонента ClientDataSet1 создайте поля со следующими свойствами:
Name: | Код товара | Название | Ед. изм. | Цена |
DataType: | ftInteger | ftString | ftString | ftFloat |
используя окна редактора Editing ClientDataSet1.FildDefs и инспектора объектов:
В результате получится следующее:
4. В контекстном меню компонента ClientDataSet1 выбрать пункт Create DataSet;
5. Далее в контекстном меню компонента ClientDataSet1 выбрать пункт Save to binary MyBase file…, После чего откроется окно сохранения структуры создаваемой таблицы:
6. Введите имя файла Tovar, тип Client DataSet (*.cds) и сохраните в папку с будущим проектом;
7. В свойстве FileName компонента ClientDataSet1 укажите путь к созданному файлу Tovar.cds,
В открывшемся окне выбрать тип файла (*.cds), имя файла Tovar.cds и нажать кнопку Открыть;
8. Поместите на форму компонент TDataSource(DataSource1) из вкладки Data Access;
9. В свойстве DataSet компонента DataSource1 укажите компонент ClientDataSet1;
10. Поместите на форму компонент TDBGrid(DBGrid1) из вкладки DataControls и в его свойстве DataSource укажите компонент DataSource1. После указания в таблице должны появиться названия созданных полей;
11. Поместите на форму компонент TDBNavigator(DBNavigator1) и в свойстве DataSource укажите компонент DataSource1;
12. В итоге форма должна выглядеть так:
Создание второй таблицы Tovar_Post
1. Поместите на форму компонент TClientDataSet(ClientDataSet2) из вкладки Data Access;
2. В свойстве FieldDefs компонента ClientDataSet2 создайте поля со следующими свойствами:
Name: | № записи | Дата пост. тов. | Код тов. | Кол. тов. |
DataType: | ftInteger | ftDate | ftInteger | ftIneger |
3. Щелкните правой кнопкой мыши по компоненту ClientDataSet2 и из раскрывшегося меню выберите пункт Create DataSet;
4. Щелкните правой кнопкой мыши по компоненту ClientDataSet2 и из раскрывшегося меню выберите пункт Save to binary MyBase file…;
5. Введите имя файла Tovar_Post, тип Client DataSet (*.cds) и сохраните в папку с проектом;
6. В свойстве FileName компонента ClientDataSet2 укажите путь к созданному файлу;
7. Поместите на форму компонент TDataSource(DataSource2) из вкладки Data Access;
8. В свойстве DataSet компонента DataSource2 укажите компонент ClientDataSet2;
9. Поместите на форму компонент TDBGrid(DBGrid2) и в его свойстве DataSource укажите компонент DataSource2. После указания в таблице должны появиться названия созданных полей;
10. Поместите на форму компонент TDBNavigator(DBNavigator2) и в свойстве DataSource укажите компонент DataSource2;
11. В итоге вся форма должна выглядеть так:
Создание связей между таблицами
1. В свойстве MasterSource компонента ClientDataSet2 укажите компонент DataSource1;
2. Найдите свойство MasterFields компонента ClientDataSet2 и нажмите на многоточие. Должно появиться следующее окно:
3. В левой части окна выберите поле код тов., в правой части окна выберите поле код товара и нажмите на кнопку «Add».
Создание вычисляемого поля
1. Дважды щелкните по компоненту ClientDataSet1, щелкните правой кнопкой мыши в появившемся окне и выберите пункт меню Add All Fields; | |
2. Тоже самое проделайте с компонентом ClientDataset2; |
3. В контекстном меню последнего окна выберите пункт New Field. Должно появиться следующее окно:
4. В поле Name напишите «Сумма»; в поле Type укажите тип Integer; поставьте галочку напротив Calculated;
Вычисления по записям (в строке)
5. Для компонента ClienDataSet2 в окошке Object Inspector выберите вкладку Events, найдите поле OnCalcFields и дважды щелкните по нему;
6. В обработчике пропишите следующий код:
ClientDataSet2.FieldByName('Сумма').AsFloat:=ClientDataSet1.FieldByName ('цена').AsFloat* ClientDataSet2.FieldByName('кол. тов.').AsFloat;
7. Проверьте работу обработчика, запустив программу и введя случайные данные в таблицы.
Вычисления по полю (в столбце)
а) по щелчку
8. Добавьте на форму компонент TEdit для итога;
9. Чтобы посчитать сумму столбца необходимо для компонента ClientDataSet2 в событие (Events) AfterPost прописать следующий код:
procedure TForm1.ClientDataSet2AfterPost(DataSet: TDataSet);
var i:integer; a:real;
begin
a:=0;
for i:=1 to clientdataset2.RecordCount do
begin
clientdataset2.RecNo:=i;
a:=a+clientdataset2.FieldByName('Сумма').asfloat;
Edit1.text:=floattostr(a);
end;
10. Чтобы программа автоматически производила вышеуказанные вычисления при изменении названия товара из первой таблицы, для этого необходимо для компонента DBGrid1 в событие (Events) OnCellClick прописать этот же код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var i:integer; a:real;
begin
a:=0;
for i:=1 to clientdataset2.RecordCount do
begin
clientdataset2.RecNo:=i;
a:=a+clientdataset2.FieldByName('Сумма').asfloat;
Edit1.text:=floattostr(a);
end;
end;
Вычисления по полю (в столбце)
а) по кнопке
Добавить на форму компонент Button1 «Итог» и для него прописать этот же код.
Дата добавления: 2015-07-15; просмотров: 88 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Устройство интерфейсной обвязки | | | Вы можете продолжить регистрацию без проверки номера телефона, нажав на соответствующую ссылку на странице. |