Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

dxDBGrid событие смены активного колумна [D6, IB6.x]


korvin ©   (2004-01-13 09:21:00) 

При выходе из колонки таблицы нужно выполнить некоторые действия. Помогите определить этот момент (не вижу такого события). В принцыпе не имеет значения какая именно колонка потеряла фокус, главное сам факт.


Silver_   (2004-01-14 13:49:00) [1]


> особенно если имелись округления копеек.


Не понял сегодня округлённой суммой, подщитал один итог а завтра другой.
Вычсляемое поле тоже ВСЕГДА будет округлять одинаково, если ты конечно в проге не изменил этого, но тут ТЫ царь и бог, если хочешь :)

Мораль: Не имеет смысла хранить то что можно вычислить, за исключением некоторых ситуаций, ну например если вичисления ну очень много времени и сил компа отбирает :)


Desdechado   (2004-01-14 10:47:00) [2]

именно, ИНОГДА.
а так вычисляемые поля (calculated) именно для этой цели предназначены (как в БД, так и на клиенте - хоть и смысл несколько разный при этом :).


kaif   (2004-01-14 01:16:00) [3]

Я для этой цели использую событие, отрабатываемое OnDataChange компонентом TDataSource.
Это событие хорошо тем, что в качестве параметра передается указатель на TField. При простой прокрутке передается nil. После редактирования любого поля передается конкретный указатель на поле, которое было отредактировано.
Я обычно анализирую (спомощью пары if-ов), какое поле изменялось, и, в зависимости от этого, обновляю поле суммы, к примеру:

if (Field = MyPriceField) or
(Field = MyQuantityFireld) then
MyAmountField.AsCurrency :=
MyPriceField.AsCurrency * MyQuantityFireld.AsCurrency;

Этот подход тем хорош, что в этот момент сам DataSet всегда еще находится в состоянии редактирования.

Silver_ © (14.01.04 00:09) [8]
А для этого ваще надо вычисляемое поле юзать, так что ты не в ту сторону копаеш


Не всегда. Иногда полезно хранить в базе данных поле суммы, особенно если имелись округления копеек.


Silver_   (2004-01-14 00:09:00) [4]

А для этого ваще надо вычисляемое поле юзать, так что ты не в ту сторону копаеш


Johnmen   (2004-01-13 18:16:00) [5]

Post ?


korvin   (2004-01-13 18:13:00) [6]

> Вот я и говорю, как будешь ловить OnColExit, если вниз/вверх ...:)
Нет ребята, скрол мне не мешает, скорее он тут даже не при чём. Грубый пример: количество, цена, сумма. При вводе количества и цены вычислить значение суммы. При скроле эта операция пройдёт без сучка ... А вот как добится такого не уходя с записи????

> OnChangeColumn?
Да, что-то вроде этого ... На скорую руку попробовал - вроде оно. Сенкс.


Vlad   (2004-01-13 16:45:00) [7]


> korvin © (13.01.04 16:35) [3]

OnChangeColumn?


Johnmen   (2004-01-13 16:39:00) [8]

Вот я и говорю, как будешь ловить OnColExit, если вниз/вверх ...:)


korvin   (2004-01-13 16:35:00) [9]

> OnColExit - не смешно, я серьёзно спросил, а у dxDBGrid такого события нет

> А если переместились вниз/вверх? - нет, нужно провести пересчёт до скролинга и изменить значение в другом поле этой записи


Johnmen   (2004-01-13 09:26:00) [10]

>korvin ©

А если переместились вниз/вверх ?


Anatoly Podgoretsky   (2004-01-13 09:24:00) [11]

OnColExit


Наверх

Титульная страница Поиск, карта сайта Написать письмо