|
|
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Привет! Посоветуйте, пожалуйста, как создать меню так чтоб потом пожно было програмно раздавать разрешения попунктно - типа этому юзеру такие-то пункты доступны, а такие-то - нет и тд... Типа через таблицу. Причем необходимо чтоб недоступные юзеру пункты не были просто Disabled (\), а вообще не выводились, т.е. чтоб он их даже не видел. И еще к некоторым пунктам нада чтоб доп. можно было бы параметр задавать при вызове. Короче чтобы админ конструировал каждому юзеру индивидуального "клиента"... таблица юзеров есть. меню создано через дизайнер. спасибо! vfp9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 21:30 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Меню в 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 Здесь показан еще и способ хранения описания меню в отдельной таблице. Другими словами, придется писать очень много кода. По сути, придется написать собственный дизайнер меню, симулирующий его объектность. Через стандратный дизайнеры такая задача не решается. Точнее, решается не вполне корректными способами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 22:54 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Я в таких случаях создаю избыточное меню "на все случаи жизни". При этом ввожу свои названия пунктов и линеек (типа PAD1... POP1 ...). Затем создаю таблицу удаляемых BAR, в которой указываю, для какого пользователя что нужно удалить. Сканирование этой таблицы и удаление лишних пунктов через RELEASE BAR (del_bar.bar) OF (ALLTRIM(del_bar.pab)) делаю в INIT формы - и все. С уважением - Sea_Cat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 09:37 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
эта ... а интересно можно ли замутить это через какой-нить BINDEVENT на какое-нибудь регулярно посылающееся сообщение ... например типа отрисовки главного окна типа (что-нить типа WM_PAINT) и в методе (объекте ли - щас посмотрел хелп) BINDEVENT и рулить состоянием меню через команды POPUP типа зы я приношу извинения если в чем-то грубо ошибаюсь по поводу возможности фоксового интерфейса ну хотя бы по управлению меню - давно уже его (интерфейс фоксовый) не юзаю зыы и также извиняюсь если это уже боян или, не дай бог, плагиат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:09 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Использую абсолютно другой подход (не факт что самый лучший). В menu designer есть опция "Skip For". Для каждого необходимого пункта вставляю туда функцию типа ограничения доступа с параметром, который имеет тоже название, что и меню. Далее уже система безопасности берет на себя роль показа или нет данного пункта меню (точнее активация/деактивация пуктов меню/подменю)... Метод очень прост и на практике его вполне хватает, тем более что это часть системы безопасности программы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:45 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
спасибо за ответы. 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 17:18 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :( Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 17:48 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
оказывается со второй попытки запустить menudemo ругань на необъектный файл прекращается, но начинаеются ошибки NO PARAMETER statement is found со строки Код: plaintext vfp9sp1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 17:52 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
CTAC-KO2Sergey_Ch - skip for это аналог disabled, т.е. пункт будет виден всем, только по условию будет доступным или нет для выбора... Да, примерно так... Отдельные операции формирую по группам и они уже не видны (внутри группы) неавторизованным пользователям... P.S. Еще использую аналог меню outlook (скачал с UT). Но данный подход имеет один существенный недостаток - меню занимает значительную часть дорогой экранной площади, хотя и выглядит интересно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 18:23 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Я бы предпочел эмулятор обьектного меню с codeplex (вторая ссылка от ВладимирМ). Там есть возможность прикручивать к меню иконки, возможность синхронизировать меню и панель инструментов и открытый код, позволяющий его редактировать. Примеры, вложенные в исходники заводятся без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 20:25 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
О, да! Menu Projec - это что-то!!! Супер просто!!! Буду осваивать. Реальная весчь!!! И еще добавлю о способе выгрузки BAR-ов, т.к. рассмотрел все варианты :). Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 21:53 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Ну хорошо, объектное меню седна. И че дальше? Я в принципе о системном меню, а не меню форм. Я вижу так - выходит нужно создать таблицу в нее втулить все пункты. Потом сканить таблицу и описывать меню. Но тогда достаточно и обычного меню, зачем объектное? че-то я не понял суть... единственно что седновское вроде как легче будет описывать, или?.. в любом случае визуально я его не отредактирую больше и дизайнером не воспользуюсь. или я чего-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 22:31 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
СТАС-КО единственно что седновское вроде как легче будет описывать, или?.. Думаю, что ты прав. Его действительно легче описать и манипулировать им в в ходе выполнения приложения.Можно создать хоть таблицу, хоть .prg файл, который будет создавать меню в в зависимости от прав пользователя. На мой скромный взгляд это значительно удобнее штатных фоксовских команд построения меню. Если выгружать BAR-ы, то меж ними образуются "пустоты". К примеру останутся 1 и 4 бар. место под 2 бара будет просто пустым между 1м и 4м баром. Некрасивенько как-то... Уж не говорю о варианте типа 2 и 16 :) А легкой жизни никто не обещал. Ведь это всего лишь альфа. Кое-что я подправил - можешь посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 06:41 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
CTAC-KO2ВладимирМ - скачал по первой приведенной Вами ссылке класс менюшки, но оно не работает :( Ругается что menulib.vct is not an odject file и с такой же ошибкой не дает редактировать класс menulib... Поэтому, к сожалению, не удалось мне попробывать этот вариант... На той же страничке чуть ниже есть ссылка для VFP6. Она перейдет на закладку с файлом menulib60.zip - с этим проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 12:48 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Скажите, а в этой Sedna описано создание PAD-ов с BAR-ами, а что же с POPUP-ами? Если BAR ведет к SUBMENU? Типа DEFINE POPUP задавать, или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 17:50 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 18:26 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
сенксь. оказываеццо надо addbar на бар... 2 дня мучал затею свою. Вымучал. Но к сожалению пока у меня все получилось более-менее нормально именно стандарными средствами (define pad/popup/bar). объектным меню труднее - там по ходу нужны полные пути начиная от родителя. Ну или мне не хватает думалки :) Идея такая - создаеццо 1 таблица для меню. В ней есть уникальный ID (ai) и есть ParentID, который может указывать на этот ID, т.е. внутри 1й таблицы. Типа криво, но избавляет от создания отдельной таблы на каждого child-а. Затем форма с деревом и там все наглядно создаеццо. Тока вот одна незадача - я использовал node.tag для хранения команды (если это BAR), а вот куда сохранять ShortKey, Icon и прочие каменты - хз. Addproperty для node не канает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 02:10 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
А почему не бы в этой же таблице не держать отдельные поля для ShortKey, Icon и прочие каменты , а затем при запуске меню- сканировать таблицу, из каждой строчки создавать команду с помощью нужных полей и выполнять эту команду при помощи макроподстановки или скажем EXECSCRIPT(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 02:48 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Стандартный макет меню (файлы mnx и mnt) уже содержат в себе структуру меню. Т.е. можно использовать стандартный макет как основу собственного генератора. Создаешь макет меню стандартными средствами, открываешь его как таблицу и смотришь его стуркутру Код: plaintext 1. 2. По сути, все сводится к написанию собственного генератора меню. А "исходник" (макет меню) можно использовать и стандартный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 10:48 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
Привет! С иконками и прочими каментами я порешил, само собой в базе отведены соотв. поля. Бачина в моем дизайнере образовалась - первыми в меню всегда оказываются бары на попапы, а затем простые бары. Это из-за того что я поочередно строю меню - пады, попапы, бары... 2Владимир Максимов - та да, нада было заюзать фоксовую базу меню, но я изобрел свой велисопед :) Хотя юзание фоксовой менюшной бд имеет несомненые преимущества... вероятно переделаю. и идея с ParentID там вроде как полегше и попроще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 16:16 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
да все элементарно есть признак активности неактивности пункта меню только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто.. а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 19:10 |
|
||
|
Посоветуйте, плиз, как замутить меню с раздачей разрешений попунктно...
|
|||
|---|---|---|---|
|
#18+
FOXXXда все элементарно есть признак активности неактивности пункта меню только доку надо найти по фоксу 2.0 и выше это все работает, просто с хелпа повыкинуто.. а лучше создать таблицы , в них держать пункты меню и в соответствии с привелегиями клиента раздавать менюшки... так блин, это я и делаю - меню в таблицу и оттудова расдача согласно AuthID. А "признак активности неактивности пункта меню" не канает - меню большое, а зачем каждому клиенту лицезреть полное меню, пусть даже серое неактивное? Чтоб в каждом паде искать а нет ли там чего для него? Или чтобы потом админу задавать "умные" вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2007, 16:28 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34922968&tid=1588554]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 306ms |

| 0 / 0 |
