|
|
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги! Есть ПБ 10.2, ПФЦ. Имею 1 набор данных типа DS. Этот набор в разных окнах привязан к разным полям в частности как dddw. В зависимости от содержания строки на это dddw накладывается фильтр для показа подмножества данных при вводе. Фильтр накладывается в событии ITEMFOCUSCHANGED. В связи с тем что в других местах этот фильтр уже не нужен так как нужно показывать все данные, а даже наоборот вреден, то его надо вовремя снимать со 100 процентной вероятностью Так где бы это можно было делать? То есть - нужна пара событий для установки и снятия фильтра на поле dddw. Или какою нибудь другую методику для альтернативного метода работы. С уважением.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 22:34 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Для сняние фильтра достаточно задать пустое условие фильтра в команде SetFilter, т.е. dw_child.SetFilter(""), в том же событии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 10:00 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Как снять фильтр я знаю. Вопрос в том - КОГДА правильно это сделать. При потере фокуса самим ДВ событие ItemChanged не происходит и значит там это делать нельзя. Ставить фильтр можно и на событии dropdown. Для меня главное вовремя снять его так как в других местах это дддв выглядит не очень-вместо значений видны ненужные ключевые поля-то есть вместо текста стоят цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 10:09 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Возможно подойдет такой подход: для одного столбца запроса определить в dw два поля, расположенных на одном месте - одно Edit, другое dddw и определить для них взаимоисключающие условия visible ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 10:38 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Обработать событие pbm_dwndropdown полностью самому. Тогда и с фильтром проблем не будет, и дополнительную функциональность в DDDW внести можно (фильтр по подстроке, вызов справочника и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 10:41 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Локшин МаркОбработать событие pbm_dwndropdown полностью самому. Тогда и с фильтром проблем не будет, и дополнительную функциональность в DDDW внести можно (фильтр по подстроке, вызов справочника и т.д.). событие pbm_dwndropdown в моем случае и есть наложение фильтра для того чтобы потом выбрать данные в событии itemchanged. Вот после этого нужно фильтр снять-потому что этот же ds используется для отображения данных в dddw-а отфильтрованный ds показывает не все данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 10:59 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Kr_YuryВозможно подойдет такой подход: для одного столбца запроса определить в dw два поля, расположенных на одном месте - одно Edit, другое dddw и определить для них взаимоисключающие условия visible я для dddw использую в основном грид. в нем трудно это сделать. И потом - очень много этих DDDW-если на каждую делать по 2 поля то значит надо просто для показа делать select из другой таблицы то есть менять запрос и довольно сильно-а там всегда бывают нежелательные эффекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 11:07 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
sboykoсобытие pbm_dwndropdown в моем случае и есть наложение фильтра для того чтобы потом выбрать данные в событии itemchanged. Вот после этого нужно фильтр снять-потому что этот же ds используется для отображения данных в dddw-а отфильтрованный ds показывает не все данные. Ну так в этом событии поставить фильтр, открыть окно выпадающего списка, получить данные, присвоить данные полю, закрыть окно, снять фильтр вернуть 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:01 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoсобытие pbm_dwndropdown в моем случае и есть наложение фильтра для того чтобы потом выбрать данные в событии itemchanged. Вот после этого нужно фильтр снять-потому что этот же ds используется для отображения данных в dddw-а отфильтрованный ds показывает не все данные. Ну так в этом событии поставить фильтр, открыть окно выпадающего списка, получить данные, присвоить данные полю, закрыть окно, снять фильтр вернуть 1. Да но дело в том что если DW теряет фокус то нет события Itemchanged-например при переходе в др окно и снять фильтр не удается а др окна становятся "побитыми" - в них фильтр портит часть полей. Поэтому и вопрос-какое событие происходит со 100 вероятностью(в PFC или без него) где то после выхода из поля данных-там фильтр и сниму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:13 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
sboykoДа но дело в том что если DW теряет фокус то нет события Itemchanged-например при переходе в др окно и снять фильтр не удается Устанавливайте и снимайте фильтр в событии pbm_dwndropdown. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:47 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoДа но дело в том что если DW теряет фокус то нет события Itemchanged-например при переходе в др окно и снять фильтр не удается Устанавливайте и снимайте фильтр в событии pbm_dwndropdown. Спасибо - будем пробовать. Чего не понял-ведь выбор данных будет в Itemchanged- а это после dropdown-как ввести данные в поле в событии dropdown? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:59 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
sboykoСпасибо - будем пробовать. Чего не понял-ведь выбор данных будет в Itemchanged- а это после dropdown-как ввести данные в поле в событии dropdown? Зачем выбор данных в itemchanged делать - я что-то не понимаю? У нас это сделано через setitem, потом закомментарено :) и сделано через settext. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 13:40 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoСпасибо - будем пробовать. Чего не понял-ведь выбор данных будет в Itemchanged- а это после dropdown-как ввести данные в поле в событии dropdown? Зачем выбор данных в itemchanged делать - я что-то не понимаю? У нас это сделано через setitem, потом закомментарено :) и сделано через settext. Для иллюстрации маленький примерчик - правда ничего не понимаю :)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 13:45 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 13:54 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Все правильно. Только уменя нет таких параметров как - colID, colIdSource. вся проблема - где их взять потому что dropdown не имеет параметров. Это аналоги из itemchanged-имя колонки и ее новое значение. Вы наверно волшебники - это знаете но не говорите откуда :). А я и спрашиваю - как в dropdown получить имя колонки и ее новое значение? там же их нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 14:24 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
sboykoВсе правильно. Только уменя нет таких параметров как - colID, colIdSource. вся проблема - где их взять потому что dropdown не имеет параметров. Это аналоги из itemchanged-имя колонки и ее новое значение. Вы наверно волшебники - это знаете но не говорите откуда :). А я и спрашиваю - как в dropdown получить имя колонки и ее новое значение? там же их нет. Ну так текущая строка и текущая колонка - это оно и есть. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 14:29 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Теперь более или менее понятно. Но тогда можно ли сказать что в datawindowchild к данному моменту(в dropdown) getrow даст выбранную пользователем строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 14:46 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
sboykoТеперь более или менее понятно. Но тогда можно ли сказать что в datawindowchild к данному моменту(в dropdown) getrow даст выбранную пользователем строку. Это не в DataWindowChild, это в DataWindow, где нажали кнопку чтобы открыть DropDown. Вместо стандартного DropDown открывается свое окно, в котором пользователь выбирает значения из списка, после чего значение прописывается в текущую ячейку. Приведенные выше скрипты - именно с этого окна. На pbm_dwndropdown только висит только вызов этого окна с передачей ему конкретного экземпляра DataWindow в качестве параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 15:32 |
|
||
|
DDDW
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoТеперь более или менее понятно. Но тогда можно ли сказать что в datawindowchild к данному моменту(в dropdown) getrow даст выбранную пользователем строку. Это не в DataWindowChild, это в DataWindow, где нажали кнопку чтобы открыть DropDown. Вместо стандартного DropDown открывается свое окно, в котором пользователь выбирает значения из списка, после чего значение прописывается в текущую ячейку. Приведенные выше скрипты - именно с этого окна. На pbm_dwndropdown только висит только вызов этого окна с передачей ему конкретного экземпляра DataWindow в качестве параметра. Спасибо за помощь Марк! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 16:24 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33744273&tid=1337769]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 394ms |

| 0 / 0 |
