|
|
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
В win_1.dw_1 объявлен достаточно навроченый ItemChanged. Из друго окна делаю замену нескольких полей в разных строках, что-то в духе: Код: plaintext 1. Спрашивается, что делать? Как заставить отработать событие win_1.dw_1.itemchanged() для iRow и iOtherRow. В принципе идеально отрабатывает код типа такого: Код: plaintext 1. 2. 3. 4. --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 23:55 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
White OwlВ win_1.dw_1 объявлен достаточно навроченый ItemChanged. Из друго окна делаю замену нескольких полей в разных строках, что-то в духе: Код: plaintext 1. По какой-такой непонятной? С чего он будет срабатывать? Пользователь разве что-нибудь поменял? Вообще говоря - безобразие делать подобные вещи из другого окна, тем не менее, типа: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 00:34 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
ФилиппПо какой-такой непонятной? С чего он будет срабатывать? Пользователь разве что-нибудь поменял?А какая разница, пользователь менял или не пользователь? Менялось же! Значит должно отрабатывать событие. ФилиппВообще говоря - безобразие делать подобные вещи из другого окна, тем не менее, типа: Код: plaintext 1. 2. Спасибо, только не работает :) ..... ааа! Работает. Только dwobject надо брать так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 02:02 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
White Owl ФилиппПо какой-такой непонятной? С чего он будет срабатывать? Пользователь разве что-нибудь поменял?А какая разница, пользователь менял или не пользователь? Менялось же! Значит должно отрабатывать событие. Исключительно у вас в голове. В PowerBuildere - НЕ ДОЛЖНО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 06:36 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
White Owl ФилиппПо какой-такой непонятной? С чего он будет срабатывать? Пользователь разве что-нибудь поменял?А какая разница, пользователь менял или не пользователь? Менялось же! Значит должно отрабатывать событие. Товарисч! Внимательнее изучайте матчасть! :) PB Help ItemChanged event (DataWindows) Description Occurs when a field in a DataWindow control has been modified and loses focus (for example, the user presses enter, the tab key, or an arrow key or clicks the mouse on another field within the DataWindow). It occurs before the change is applied to the item. ItemChanged can also occur when the AcceptText or Update function is called for a DataWindow control or DataStore object. То есть событие произойдет когда пользователь ручками изменил значение в DW и пошел дальше, а не когда что-то меняется из скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 06:54 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
AndynТо есть событие произойдет когда пользователь ручками изменил значение в DW и пошел дальше, а не когда что-то меняется из скрипта.Ок, раз задокументировано, значит опаньки :) А есть у нас какое-нибудь подобное событие, но не требующее потери фокуса? Или просто чтоб на SetItem реагировало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 18:42 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
создать событие OnSetItem( <параметры> ) перегрузить функцию datawindow SetItem( <параметры> ): Код: plaintext 1. 2. 3. Честно говоря, ни разу такие вещи не понадобились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 19:27 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
вернее Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 19:29 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
Можно и проще: dw.trigger event itemchanged(row, dw.object.column_name, value) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 16:44 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
Проще чем что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 17:51 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
edmikecaМожно и проще: dw.trigger event itemchanged(row, dw.object.column_name, value) Не надо так делать! Этим Вы меняете смысл этого события: в справке указано, что если из itemchanged вернуть 1 то изменения не будут приняты. А в Вашем случае это не так - изменения уже применены до входа в обработчик. И тот кто написал или напишет обработчик этого события (например в предке) будет долго отлавливать почему же возвращаемое itemchanged значение ни на что не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 19:01 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyИ тот кто написал или напишет обработчик этого события (например в предке) будет долго отлавливать почему же возвращаемое itemchanged значение ни на что не влияет. Ну это же можно и обработать при вызове itemchanged... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 19:23 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
2 Anatoly Moskovsky Позволю усомниться в этом по одной простой причине. Я триггерую это событие (так как написано) и обработчик события все равно срабатывает. Фактически я устанавливаю новое значения и заставляю обработчик обработать его, что и происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 20:12 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
edmikeca2 Anatoly Moskovsky Позволю усомниться в этом по одной простой причине. Я триггерую это событие (так как написано) и обработчик события все равно срабатывает. Фактически я устанавливаю новое значения и заставляю обработчик обработать его, что и происходит. Anatoly Moskovsky прав. itemchanged срабатывает при определенных условиях. Вызов его "принудительно" это просто хак. Вам просто лень выносить ваш обработчик в отдельную функцию которую можно было бы вызвать и из itemchanged и и после SetItem. Если я возвращаю 1 из itemchanged - я ожидаю срабатывания itemerror. Если я возвращаю 2 из itemchanged - я ожидаю что в column останется ПРЕЖНЕЕ значение. Программистов которые сами вызывают itemchanged clicked у кнопок doubleclicked и т.п. вместо того чтобы привести свой код в порядок надо увольнять без выходного пособия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 20:37 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейПрограммистов которые сами вызывают itemchanged clicked у кнопок doubleclicked и т.п. вместо того чтобы привести свой код в порядок надо увольнять без выходного пособия.Не совсем так. Увольнять надо тех кто пишет осмысленный код внутри itemchanged а не выносит его в функцию... Впрочем, эти люди уже уволены :) Потому-то топик и появился :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 20:44 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
2 ЗоринАндрей Обработчик у меня и так сидит в отдельной функции и вызывается из itemchanged. Честно говоря я не вижу в чем противоречие? Мне нужно что бы этот обработчик вызывался только из одного места itemchanged. И мне нужно быть уверенным что бы этот event вызывался не зависимо от того, что напечатает пользователь или я сам установлю новое значение в поле. Мне нужно проверить новое значение в любом случае. Посмотрите из-за чего начался топик. Если у Вас другое видение, то пожалуйста объясните его. Учиться хорошему стилю программирования никогда не поздно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 21:12 |
|
||
|
Как запустить ItemChanged для произвольной строки?
|
|||
|---|---|---|---|
|
#18+
edmikecaОбработчик у меня и так сидит в отдельной функции и вызывается из itemchanged. Честно говоря я не вижу в чем противоречие? Мне нужно что бы этот обработчик вызывался только из одного места itemchanged. И мне нужно быть уверенным что бы этот event вызывался не зависимо от того, что напечатает пользователь или я сам установлю новое значение в поле. Мне нужно проверить новое значение в любом случае.Если есть функция, надо звать функцию. Дергать вручную событие - дурной тон всегда. edmikecaПосмотрите из-за чего начался топик.Сказал бы я из-за чего начался этот топик. Да модератор не похвалит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 21:26 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34064958&tid=1337559]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 392ms |

| 0 / 0 |
