![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.02.2009
Сообщений: 3
|
![]()
Народ, прошу помочь в решении одного вопросов!!!
1) Создаю вычисляемое поле Начислено, которое расчитывается путем перемножения поля из одной таблицы на поле из другой и нужно чтобы результат не просто отображался, а сохранялся. (Желательно не применяя sql). 2) Также нужно, ... Читать правила раздела! Одна тема - один вопрос! Последний раз редактировалось mihali4; 21.02.2009 в 20:46. Причина: 2 разных вопроса в теме |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
1) DBEdit6.DataSource.DataSet.Edit;
DBEdit6.Field.AsString:=[значение которое сохраняем];
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#3 |
Регистрация: 20.02.2009
Сообщений: 3
|
![]()
А через dbgrid можно?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
пардон, а вы куда значения вводите? в саму dbgrid?
тогда так: выносите TDBNavigator и через него сохраняете... как вариант можно скрыть его, а на обычную кнопку "Сохранить", вынести любую интересующую вас функцию...
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#5 |
Регистрация: 20.02.2009
Сообщений: 3
|
![]()
Че- то не получается, сколько бы не пробовал: либо ошибку выдает, либо значение в базу не сохраняется.
DBEdit6.DataSource.DataSet.Edit; DBEdit6.Field.AsString:=[значение которое сохраняем]; в [значение которое сохраняем] я подставляю имя поля, в которое нужно сохранить результат. Может я че-то делаю не так? Может быть я не в том событии прописываю действия? В каком это событии прописывается Вот как я рассчитываю вычисляемое поле: procedure TForm1.uslugCalcFields(DataSet: TDataSet); begin uslugUslNachisleno.Value:=uslugUslT arif.Value*abAbPropisano.Value; end; UslTarif - поле из таблицы услуги; AbPropisano - поле из таблицы абоненты; UslNachisleno - вычисляемое поле из таблицы услуги. После добавления данных автоматически происходит расчет поля UslNachisleno. Вот нужно чтобы оно не просто отображало значения во время работы приложения, а сохраняло эти значения в базу (в себя или, допустим в другое поле, к примеру UslNachisl). Нашел в нете подходящий пример: procedure TForm1.DataSource2DataChange(Sender : TObject; Field: TField); begin if (Field<>nil) and (Field.FieldName<>'UslNachisleno') and (Field.DataSet.State in dsEditModes) then with Field.DataSet do FieldByName('UslNachisleno').Value: =FieldByName('Usltarif').Value*2; end; Но беда в том, что он ориентирован на использовании одной таблицы, а в моем случае в расчете участвуют поля из двух таблиц. FieldByName('UslNachisleno').Value: =FieldByName('Usltarif').Value*Fiel dByName('AbObchaya_plochad').Value; |
![]() |
![]() |
![]() |
#6 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
![]()
А вам не кажется, что при таком подходе теряется смысл "ВЫЧИСЛЯЕМОГО" поля? Какой смысл его хранить?
|
![]() |
![]() |
![]() |
#7 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объеденение полей запроса в для отображения нескольких полей в одном списке | mrCreator | Microsoft Office Access | 3 | 08.08.2009 00:53 |
сохранение значений прямо в exe | Roof | Общие вопросы Delphi | 37 | 04.12.2008 09:37 |
предстваление с суммой значений полей таблицы | Geddar | SQL, базы данных | 1 | 10.06.2008 19:30 |
Перенос строк в вычисляемых полях | Professor Hubert | БД в Delphi | 0 | 28.04.2008 20:39 |
Сортировка после просчета вычисляемых полей | azat | БД в Delphi | 4 | 19.01.2008 21:09 |