04.05.2012, 14:23 | #1 |
Участник
|
прорисовка грида
добрый день. Коллеги, не подскажите, какой метод на форме/датасорсе ответственнен за прорисовку данных на гриде (ax 4.0 sp1)??
Опытным путем установил, что executeQuery на датасорсе уже отработал, но происходит "загрузка" строк в грид визуальная, то есть надо рыть в другом направлении. |
|
04.05.2012, 14:33 | #2 |
NavAx
|
Посмотрите наличие display - методов, которые используют элементы грида.
|
|
04.05.2012, 14:40 | #3 |
Участник
|
ну, они есть...
|
|
04.05.2012, 14:47 | #4 |
Участник
|
Наверное изначально нужно отталкиваться от того что вы хотите сделать. В чем заключается задача?
|
|
04.05.2012, 14:52 | #5 |
NavAx
|
В таком случае нужно посмотреть, насколько долго выполняются эти методы, закешированы ли они.
|
|
04.05.2012, 14:58 | #6 |
Участник
|
Цитата:
есть форма тяжеловесная, сверху - группа фильтрации. проблема такая, при прорисовке данных, когда она еще не закончилась, при вводе нескольких символов (не всех задуманных) в один из фильтров сверху, отрабатывает modified() на контроле фильтра. То есть, пользователь хотел ввести '3024' , ввел '302' и форма уже отреагировала. Как я понял опытным путем, во время этой прорисовки происходит некая потеря фокуса с группы фильтрации на рисование данных grid, и воспринимается это как modified() на контроле. Цель - перекрыть метод, ответственный за прорисовку, и заблокировать ввод в группу фильтрации, пока он не отработал |
|
04.05.2012, 15:10 | #7 |
NavAx
|
Цитата:
Сообщение от Nikolaich
избавляться от дисплей-методов - задача непосильная
есть форма тяжеловесная, сверху - группа фильтрации. проблема такая, при прорисовке данных, когда она еще не закончилась, при вводе нескольких символов (не всех задуманных) в один из фильтров сверху, отрабатывает modified() на контроле фильтра. То есть, пользователь хотел ввести '3024' , ввел '302' и форма уже отреагировала. Как я понял опытным путем, во время этой прорисовки происходит некая потеря фокуса с группы фильтрации на рисование данных grid, и воспринимается это как modified() на контроле. Цель - перекрыть метод, ответственный за прорисовку, и заблокировать ввод в группу фильтрации, пока он не отработал Или хотя бы их оптимизировать (наверняка в них есть тяжелые запросы к базе). А отработку фильтров по введенным значениям в поле можно перевесить на кнопку типа "обновить". Либо продумать вариант с задержкой выполнения запроса после ввода фильтра. |
|
04.05.2012, 15:17 | #8 |
Участник
|
Цитата:
Сообщение от Roman777
В чем проблема избавиться от дисплей-методов?
Или хотя бы их оптимизировать (наверняка в них есть тяжелые запросы к базе). А отработку фильтров по введенным значениям в поле можно перевесить на кнопку типа "обновить". Либо продумать вариант с задержкой выполнения запроса после ввода фильтра. оптимизировать - тоже нет, они итак оптимизированы, просто их много Кнопка обновить - спору нет, но неудобно задержка выполнения запроса - тоже не поможет, так как не в выполнении запроса дело, нужно заблокировать ввод в фильтры во время прорисовки данных |
|
04.05.2012, 15:36 | #9 |
NavAx
|
Цитата:
Про кнопку: т.е. пользователю удобнее наблюдать как рисуются строки? Как раз если задержка на выполнение запроса скорее всего поможет, т.к. именно после запроса происходит вызов дисплей-методов. |
|
|
|