|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
есть menu "Menu_ord",созданное через Menu Painter..например,пункт меню "Данные" содержит подпункты "Заказы","Справочник"..Подскажите,как в "Заказы" сделать еще один выпадающий список,содержащий все записи конкретного столбцы из БД? надеюсь,удалось более-менее сформулировать задачу... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 22:30 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
Можно конечно используя API добавить пункт, но вопрос - зачем? Вам же наверное нужно что и на clicked прописать? Да и товаров могут быть сотни или тысячи. Подумайте лучше над дизайном приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 09:32 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
Вот сдесь есть рецепт (если я правильно понял вопрос). Ну а сбазой и как получить значения для меню, надеюсь, разберетесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 11:42 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
... ну или сдесь ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 11:44 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
PaulJB,как в этом меню сделать меню 2-го уровня,т.е. "Заказы"->1... 2... и т.д. И как на созданное таким образом меню прописать событие "clicked"? menu mi,m m = create menu for li_item = 1 to UpperBound(as_items[])/ 2 // массив с именами меню и их тегами // пункты меню - это созданное в painter'e меню из одного пункта, // со скриптом clicked который по тегу определяет что делать mi = create m_dyn_menu_item m.item[li_item] = mi.item[1].item[ 1] // вот так вот :)) m.item[li_item].text = as_items[li_item * 2 - 1] m.item[li_item].tag = as_items[li_item * 2] next // замена подменю номер n на новое // если n = UpperBound(m_mdi.item[]) + 1 то пункт меню добавляется в конец. m_mdi.item[n]= m m_mdi.item[n].Hide() m_mdi.item[n].Show() ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 19:25 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
LeS_05PaulJB,как в этом меню сделать меню 2-го уровня,т.е. "Заказы"->1... 2... и т.д. И как на созданное таким образом меню прописать событие "clicked"? 1. У присваемого меню тоже есть свойство item. 2. Скрипт на событие динамически в PowerBuilder не присваивается. Для этого у того самого меню с 1-м пунктом уже прописан обработчик clicked который триггерит в ParentWindow menu event с параметром - тэгом данного пункта меню. На окне создается этот event который в зависимости от параметра обрабатывает действия. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 23:00 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
Возникла сходная задача. Выяснилось, что для всех вновь создаваемых с помощью подобного действия LeS_05m.item[li_item] = mi.item[1].item[ 1] // вот так вот :)) пунктов меню функция ClassName() возвращает одно и то же значение - то самое, которое было у "образца" mi.item[1].item[ 1]. Нет ли возможности задавать динамически встраиваемым пунктам свой уникальный ClassName? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 16:50 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
Просто объясните, зачем? Класс у них один - меню. Ориентируйтесь по тексту или потегам ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 17:36 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
spas2001Просто объясните, зачем? Объясняю. Сверху живёт система секьюрити, которая разграничивает доступ различных пользователей ко всем объектам и контролам основной системы. Разграничения прописываются в базу именно с использованием имён, возвращаемых функцией ClassName(). Если бы пунктам меню, созданным на основе содержимого референсной таблицы удалось прописать уникальные имена, они бы как родные были подхвачены имеющейся секьюритной надстройкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2017, 18:53 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
Так у вас ничего не выйдет скорее всего. Возможно можно сделать объект унаследованный от меню и уже от него создавать новое меню. Но в этом случае все созданные пункты тоже будут иметь одинаковое имя класса. Остаются варианты - доработать модуль доступа и не создавать динамически (запихать все и делать видимо/невидимо) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 16:24 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
spas2001Остаются варианты - доработать модуль доступа... Спасибо. Варианты просматриваются различные, и этот - один из них. Пока остановился на следующем: В меню m_dyn_menu_item (из примера кода выше) с помощью кондового копипаста засунул не один пункт, а 256. Само собой, с уникальным именем у каждого, но с идентичным скриптом из двух строчек. В таблицу со списком пунктов динамического меня добавилось уникальное (вкупе с другими полями PK) поле с номером от 1 до 256. Соответственно, в правой части этого присваивания m.item[li_item] = mi.item[1].item[ 1] используется не единица, а номер пункта, полученный из БД. Понятно, что 256 в данном случае - ограничение на количество пунктов каждого динамического меню, создаваемого подобным образом. Но на данном этапе есть мнение, что такого ограничения хватит с головой. Ну да, объект m_dummy_menu получился размером около 700 КБ, но вроде бы живой. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:02 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
В общем понятно, но в данном случае я порекомендовал бы пересмотреть дизайн. Выпадающий список или PictureListBox были бы уместнее. Выбрать какой-то пункт из такого огромного меню непросто. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2017, 11:37 |
|
Заполнение Menu PowerBuilder элементами БД
|
|||
---|---|---|---|
#18+
spas2001Выбрать какой-то пункт из такого огромного меню непросто. Да, но кто сказал, что оно будет огромным? Упомянутые выше 256 - ограничение сверху. Пункты в динамический раздел меню добавляются только по записям из таблицы. В реальности их количество вряд ли превысит десяток. Предполагается, что под каждый такой пункт отдельный код (не PB) при необходимости должен создаваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2017, 12:24 |
|
|
start [/forum/topic.php?fid=15&fpage=6&tid=1335178]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 397ms |
0 / 0 |