Текущий архив: 2003.11.17;
Скачать: CL | DM;
ВнизКакое событие при перемещению по гриду. Найти похожие ветки
← →
wsm-100 (2003-10-25 15:50) [0]При перемещении по гриду (Query1) на другой грид повесить фильтр(Query2)
← →
kaif (2003-10-25 16:09) [1]Это не на Grid надо вешать, а на Query.
1.
Там есть всякие BeforeScroll и AfterScroll, но я не рекомендую их использовать, так как возможны "двойные" срабатывания этих событий.
2.
соединить Query1 с Query2 через свойство DataSource:
Query2.DataSource := Quaery1.DataSource.
Если у тебя в Query2 параметризованный запрос
SELECT * FROM ... WHERE ... = :FIELD_NAME1
А в компоненте Qury1 имеется запрос, содержащи одноименное с параметром(ами) поле (поля):
SELECT FIELD_NAME1 FROM ... WHERE ...
То после активизации обоиз запросов, они будут работать так, как ты хочешь.
3. Можно задействованть событие OnDataChange компонента TDataSource, который подключен к Query1. Оно также срабатывает при перемещении по записям.
← →
Anatoly Podgoretsky (2003-10-25 16:09) [2]AfterScroll, но зачем есть DataSource
← →
MsGuns (2003-10-25 16:52) [3]Соотв.событе DataSource возникает несколько чаще AfterScroll`а ")
← →
kaif (2003-10-25 17:07) [4]2 MsGuns © (25.10.03 16:52) [3]
Событие DataChange возникает 1 раз при переходе со строки на строку. При этом передается параметр Field = nil в обработчик. Еще оно возникает после редактирования каждого поля и при этом передается в параметре Field указатель на отредактированное только что поле и тоже 1 раз. Если анализировать в обработчике на Field = nil событие возникнет гарантированно 1 раз при Open запроса и гарантированно 1 раз после каждого перемещения курсора по набору.
Я большой поклонник этого события, так как оно чрезвычайно универсально и применимо в разных ситуациях. Особенно оно полезно при редактировании полей, если нужно что-то посчитаь в одном поле после изменения в другом (например, посчитать сумму после изменения цены или количества в строке документа).
← →
MsGuns (2003-10-25 19:31) [5]>kaif © (25.10.03 17:07) [4]
>Еще оно возникает после редактирования каждого поля и при этом передается в параметре Field указатель на отредактированное только что поле и тоже 1 раз.
Именно это я и имел в виду, когда говорил "чаще".
>Особенно оно полезно при редактировании полей, если нужно что-то посчитать в одном поле после изменения в другом
Нет вопросов и даже комментариев. Но по сабжу, как я понял, требуется несколько другое ;)
ЗЫ. По поводу того, кто что любит. Мне больше нравятся целевые события датасетов и грида для пересчета полей при изменении какого-то одного из них узером. А вообще я в гридах стараюсь не давать редактить. Исключение только для TClientDataSet.
← →
Vemer (2003-10-26 02:36) [6]Привет!
Я вчера решил эту проблему так: создал невидимый DB_Edit для датасет главной таблицы и изменения подчиненной повесил на его ON_Change. Работает замечательно, и главное при обновлении главной таблицы по смене TabControl происходит обновление подчиненной идет автоматом.
← →
Term (2003-10-26 08:12) [7]это всё для чего, чтобы типа связь мастер-детальный???
если да то почему бы не сделать по человечески???
← →
Vemer (2003-10-26 10:52) [8]To Term
Под таблицами я имел в виду Query тоже, а приладить к таблице нормальное управление из TabControl и приладить к Query MasterSourse по-моему очень трудно.
← →
wsm-100 (2003-10-26 11:25) [9]Большое спасибо за помощь.
← →
Term (2003-10-26 11:55) [10]зачем фильтр что нельзя параметры в запрос передавать???
или я не так понял вопрос...
← →
Term (2003-10-26 12:02) [11]
> Под таблицами я имел в виду Query тоже, а приладить к таблице
> нормальное управление из TabControl и приладить к Query
> MasterSourse по-моему очень трудно
??????????
← →
Vemer (2003-10-27 10:38) [12]Я имел в виду, что мой вариант можно применять и для таблиц, и для запросов, т. е. вешать на ON_Change невидимой ячейки Close/Open подчиненного запроса с новыми параметрами. Для фильтров не знаю, не пробовал. Точно также обновлять запрос при смене TabControl мне кажеться проще, чем таблицу.
← →
Weare (2003-10-27 11:24) [13]
> Term © (26.10.03 08:12) [7]
> это всё для чего, чтобы типа связь мастер-детальный???
> если да то почему бы не сделать по человечески???
Вот вот, правильно говорит. Нужно воспользоваться св-вами у Table MasterField и MasterSource
Страницы: 1 вся ветка
Текущий архив: 2003.11.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c