Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

dxDBGrid событие смены активного колумна   Найти похожие ветки 

 
korvin   (2004-01-13 09:21) [0]

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


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

OnColExit


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

>korvin ©

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


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

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

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


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

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


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


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

OnChangeColumn?


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

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

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


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

Post ?


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

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


 
kaif   (2004-01-14 01:16) [9]

Я для этой цели использую событие, отрабатываемое 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]
А для этого ваще надо вычисляемое поле юзать, так что ты не в ту сторону копаеш


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


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

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


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


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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.031 c
14-16705
Knight
2004-01-10 14:48
2004.02.06
Помогите разобраться с множителем в Биосе...


4-16797
FireMan_Alexey
2003-12-01 09:18
2004.02.06
Контроль запуска и выгрузки приложения


1-16478
Sphinx
2004-01-26 12:04
2004.02.06
Ресурсы в dll


14-16645
Rouse_
2004-01-14 01:49
2004.02.06
Возвращение к старому проекту...


7-16772
Донской
2003-11-17 19:27
2004.02.06
Ругается на (asm) Mov result,SE:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский