|
|
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
Я связал объект TreeView с данными из БД для представления иерархии организации. Проблема заключается в том, что надо сделать возможность добавления, удаления и редактирования записей с мгновенным изменением в дереве. Я думаю что обновление (!) всего дерева будет очень неэффетивно учитывая лишние обращения к БД (хотя записей мало). Скажите, пожалуйста, как можно решить эту проблему? Я думаю, что сам стадартный объект TreeView от PB является очень неудобным. Тем не менее, я хочу его использовать и не лезть в PFC. Я очень надеюсь получить какие либо предложения и рекомендации. Большое Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 23:10 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
тогда посмотри примеры из PowerBuilder или как реализовано в pfc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 18:54 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
У меня TreeViewItem заполняется при его открытии, поэтому для обновления открытого элемента я его просто закрываю, а затем открываю. Для скорости важно отключить перерисовку TreeView. Работает быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 19:39 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
У меня реализованно следующим образом: (но я пока изучаю РВ и незнаю правильный ли у меня подход) Имеется функция f_tv_ied (eid integer) Код: 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. На кнопках: Добавить f_tv_ied(1) Редактировать f_tv_ied(2) Удалить f_tv_ied(3) P.S. Если что не так, подскажите как правильно и лучьше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 09:58 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
PaulJBУ меня TreeViewItem заполняется при его открытии, поэтому для обновления открытого элемента я его просто закрываю, а затем открываю. Для скорости важно отключить перерисовку TreeView. Работает быстро. Понятно. А как обновить все дерево, чтобы сохранился общий вид дерева, то есть ветки которые были открыты ... и т.д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 21:32 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
>А как обновить все дерево, чтобы сохранился общий вид дерева, то есть ветки которые были открыты ... и т.д У меня такой проблемы не возникало, т.к. в один момент времени обновляется только одна ветка. Тут надо думать. А для чего это делается, может есть другой выход ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2005, 12:04 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
PaulJB>А как обновить все дерево, чтобы сохранился общий вид дерева, то есть ветки которые были открыты ... и т.д У меня такой проблемы не возникало, т.к. в один момент времени обновляется только одна ветка. Тут надо думать. А для чего это делается, может есть другой выход ? Спасибо, что ответили. Дело в том, что как я говорил раньше TreeView совмещен с DataWindow, и в последнем реализовано меню для добавления, удаления и редактирования отдельных записей. Так вот добавлять можно в любое место дерева, а лезть и изменять другие объекты нельзя поэтому приходится обновлять все дерево. Но записей не много поэтому проблем с нагрузкой не должно возникуть. Вы не скажите где про это можно почитать? Относится ли это как то к теории графов? Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2005, 14:35 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
можно попробовать вспомнить про ООП и реализовать следующее: при вставке элемента в treeview указывать не только Label и ID записи в БД, а создавать объект, который содержит всю необходимую информацию о элементе и умеет обновлять себя в дереве. Ссылку на объект присваивать свойству Data в TreeviewItem, также эту ссылку регистрировать в менеджере объектов, который будет рассылать сообщения. При изменении данных в dataWindow сообщение об этом событии с указанием значения ключевого поля отправляется менеджеру объектов, который перенаправляет сообщение нужному объекту, привязанному к treeviewitem. При изменении Label или удалении элемента все понятно, при изменении родителя объект должен уметь удалить свой элемент в treeview и вставить в нужном месте, вместе с детьми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2005, 01:50 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
rcryoможно попробовать вспомнить про ООП и реализовать следующее: при вставке элемента в treeview указывать не только Label и ID записи в БД, а создавать объект, который содержит всю необходимую информацию о элементе и умеет обновлять себя в дереве. Ссылку на объект присваивать свойству Data в TreeviewItem, также эту ссылку регистрировать в менеджере объектов, который будет рассылать сообщения. При изменении данных в dataWindow сообщение об этом событии с указанием значения ключевого поля отправляется менеджеру объектов, который перенаправляет сообщение нужному объекту, привязанному к treeviewitem. При изменении Label или удалении элемента все понятно, при изменении родителя объект должен уметь удалить свой элемент в treeview и вставить в нужном месте, вместе с детьми. Большое спасибо за ответ! Я думаю это действительно должно получится. Сейчас начну копать в этом напрвление! Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2005, 06:57 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
Я использую PowerBuilder 9, но в документации к сожалению не нашел каких либо упоминаний об Object Manager! Прочитал о регистрации и использовании SharedOBjects но это ли то, что Вы имели ввиду? Спасибо заранее за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 02:10 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
Oscar, Mенеджер объектов ВЫ должны написать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 02:58 |
|
||
|
Помогите с TreeView + БД
|
|||
|---|---|---|---|
|
#18+
ФилиппOscar, Mенеджер объектов ВЫ должны написать :-) Ахахаха ... да насмешил конечно я Вас. Я только начинающий в PowerBuilder, и изучаю уже как ~ 3 недели. Скажите как перехватывать сообщения ... и вообще есть ли примеры где это реализовано. Я буду очень признателен ответам со ссылками на ресурсы в сети и с примерами. Спасибо! P.S Мне очень важно решить эту проблему! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 05:36 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32911804&tid=1338541]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 387ms |

| 0 / 0 |
