powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
22 сообщений из 22, страница 1 из 1
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34920333
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Посоветуйте, пожалуйста, как создать меню так чтоб потом пожно было програмно раздавать разрешения попунктно - типа этому юзеру такие-то пункты доступны, а такие-то - нет и тд... Типа через таблицу. Причем необходимо чтоб недоступные юзеру пункты не были просто Disabled (\), а вообще не выводились, т.е. чтоб он их даже не видел. И еще к некоторым пунктам нада чтоб доп. можно было бы параметр задавать при вызове. Короче чтобы админ конструировал каждому юзеру индивидуального "клиента"...

таблица юзеров есть. меню создано через дизайнер.

спасибо!

vfp9
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34920426
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меню в FoxPro - это не объект. А для решения подобной задачи необходимо иметь возможность обращаться с пунктами меню как с объектами.

Основная "закавыка" в том, что через дизайнер меню невозможно НЕ создавать пункты. Придется создать все, а потом удалить лишнее. Ну, либо вручную писать все команды DEFINE POPUP окружая их разными IF...ELSE...

Поэтому необходимо симулировать "объектность" меню. Либо самопальными средствами (что не очень-то и сложно), либо при помощи готовых классов. Например, вот этого

http://www.universalthread.com/wconnect/wc.dll?2,54,33,9156

Написан еще для VFP6, но вполне подойдет. Можно еще посмотреть пример для проекта Sedna

http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=61

Здесь показан еще и способ хранения описания меню в отдельной таблице.

Другими словами, придется писать очень много кода. По сути, придется написать собственный дизайнер меню, симулирующий его объектность.

Через стандратный дизайнеры такая задача не решается. Точнее, решается не вполне корректными способами.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34920806
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в таких случаях создаю избыточное меню "на все случаи жизни". При этом ввожу свои названия пунктов и линеек (типа PAD1... POP1 ...). Затем создаю таблицу удаляемых BAR, в которой указываю, для какого пользователя что нужно удалить. Сканирование этой таблицы и удаление лишних пунктов через
RELEASE BAR (del_bar.bar) OF (ALLTRIM(del_bar.pab))
делаю в INIT формы - и все.

С уважением - Sea_Cat
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34921437
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эта ... а интересно можно ли замутить это через какой-нить BINDEVENT на какое-нибудь регулярно посылающееся сообщение ... например типа отрисовки главного окна типа (что-нить типа WM_PAINT) и в методе (объекте ли - щас посмотрел хелп) BINDEVENT и рулить состоянием меню через команды POPUP типа

зы я приношу извинения если в чем-то грубо ошибаюсь по поводу возможности фоксового интерфейса ну хотя бы по управлению меню - давно уже его (интерфейс фоксовый) не юзаю
зыы и также извиняюсь если это уже боян или, не дай бог, плагиат
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34921613
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую абсолютно другой подход (не факт что самый лучший).

В menu designer есть опция "Skip For". Для каждого необходимого пункта вставляю туда функцию типа ограничения доступа с параметром, который имеет тоже название, что и меню. Далее уже система безопасности берет на себя роль показа или нет данного пункта меню (точнее активация/деактивация пуктов меню/подменю)... Метод очень прост и на практике его вполне хватает, тем более что это часть системы безопасности программы...
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34922968
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ответы.

2Sergey_Ch - skip for это аналог disabled, т.е. пункт будет виден всем, только по условию будет доступным или нет для выбора:
HELPSKIP [FOR lExpression] Specifies a condition whereby if lExpression evaluates to true (.T.) the menu item is disabled preventing the user from choosing it; if false (.F.) the menu item is enabled. A disabled menu item appears in the disabled colors.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923096
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :(
Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант...
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923113
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оказывается со второй попытки запустить menudemo ругань на необъектный файл прекращается, но начинаеются ошибки NO PARAMETER statement is found
со строки
Код: plaintext
oMenu.File.AddObject("Spacer1","menupad","\-")
если все NO PARAMETER statement is found проигнорировать то в результате на экране ничего нового не появляется, за то из фоксы выйти не удается...

vfp9sp1
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923222
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO2Sergey_Ch - skip for это аналог disabled, т.е. пункт будет виден всем, только по условию будет доступным или нет для выбора...
Да, примерно так...

Отдельные операции формирую по группам и они уже не видны (внутри группы) неавторизованным пользователям...

P.S. Еще использую аналог меню outlook (скачал с UT). Но данный подход имеет один существенный недостаток - меню занимает значительную часть дорогой экранной площади, хотя и выглядит интересно :)
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923454
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы предпочел эмулятор обьектного меню с codeplex (вторая ссылка от ВладимирМ).
Там есть возможность прикручивать к меню иконки, возможность синхронизировать меню и панель инструментов и открытый код, позволяющий его редактировать.
Примеры, вложенные в исходники заводятся без проблем.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923543
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, да!
Menu Projec - это что-то!!! Супер просто!!!
Буду осваивать. Реальная весчь!!!

И еще добавлю о способе выгрузки BAR-ов, т.к. рассмотрел все варианты :). Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :)
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923591
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, объектное меню седна. И че дальше?
Я в принципе о системном меню, а не меню форм.
Я вижу так - выходит нужно создать таблицу в нее втулить все пункты. Потом сканить таблицу и описывать меню. Но тогда достаточно и обычного меню, зачем объектное?
че-то я не понял суть...
единственно что седновское вроде как легче будет описывать, или?..
в любом случае визуально я его не отредактирую больше и дизайнером не воспользуюсь.
или я чего-то не понял?
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34923755
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СТАС-КО
единственно что седновское вроде как легче будет описывать, или?..

Думаю, что ты прав. Его действительно легче описать и манипулировать им в в ходе выполнения приложения.Можно создать хоть таблицу, хоть .prg файл, который будет создавать меню в в зависимости от прав пользователя.
На мой скромный взгляд это значительно удобнее штатных фоксовских команд построения меню.

Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :)

А легкой жизни никто не обещал. Ведь это всего лишь альфа. Кое-что я подправил - можешь посмотреть.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34924714
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :(
Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант...

На той же страничке чуть ниже есть ссылка для VFP6. Она перейдет на закладку с файлом menulib60.zip - с этим проблем нет.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34926063
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите, а в этой Sedna описано создание PAD-ов с BAR-ами, а что же с POPUP-ами? Если BAR ведет к SUBMENU? Типа DEFINE POPUP задавать, или как?
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34926167
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34926683
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сенксь. оказываеццо надо addbar на бар...

2 дня мучал затею свою. Вымучал. Но к сожалению пока у меня все получилось более-менее нормально именно стандарными средствами (define pad/popup/bar). объектным меню труднее - там по ходу нужны полные пути начиная от родителя. Ну или мне не хватает думалки :)
Идея такая - создаеццо 1 таблица для меню. В ней есть уникальный ID (ai) и есть ParentID, который может указывать на этот ID, т.е. внутри 1й таблицы. Типа криво, но избавляет от создания отдельной таблы на каждого child-а.
Затем форма с деревом и там все наглядно создаеццо.

Тока вот одна незадача - я использовал node.tag для хранения команды (если это BAR), а вот куда сохранять ShortKey, Icon и прочие каменты - хз. Addproperty для node не канает...
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34926697
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не бы в этой же таблице не держать отдельные поля для ShortKey, Icon и прочие каменты , а затем при запуске меню- сканировать таблицу, из каждой строчки создавать команду с помощью нужных полей и выполнять эту команду при помощи макроподстановки или скажем EXECSCRIPT().
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34927230
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартный макет меню (файлы mnx и mnt) уже содержат в себе структуру меню. Т.е. можно использовать стандартный макет как основу собственного генератора.

Создаешь макет меню стандартными средствами, открываешь его как таблицу и смотришь его стуркутру

Код: plaintext
1.
2.
USE MyMenu.mnx
BROWSE

По сути, все сводится к написанию собственного генератора меню. А "исходник" (макет меню) можно использовать и стандартный.
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34928856
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

С иконками и прочими каментами я порешил, само собой в базе отведены соотв. поля.
Бачина в моем дизайнере образовалась - первыми в меню всегда оказываются бары на попапы, а затем простые бары. Это из-за того что я поочередно строю меню - пады, попапы, бары...

2Владимир Максимов - та да, нада было заюзать фоксовую базу меню, но я изобрел свой велисопед :) Хотя юзание фоксовой менюшной бд имеет несомненые преимущества... вероятно переделаю. и идея с ParentID там вроде как полегше и попроще...
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34929399
FOXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да все элементарно
есть признак активности неактивности пункта меню

только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто..

а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки...
...
Рейтинг: 0 / 0
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
    #34930053
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FOXXXда все элементарно
есть признак активности неактивности пункта меню
только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто..
а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки... так блин, это я и делаю - меню в таблицу и оттудова расдача согласно AuthID.
А "признак активности неактивности пункта меню" не канает - меню большое, а зачем каждому клиенту лицезреть полное меню, пусть даже серое неактивное? Чтоб в каждом паде искать а нет ли там чего для него? Или чтобы потом админу задавать "умные" вопросы?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]