|
09.11.2006, 10:26 | #1 |
Участник
|
Открытие контейнера из Map
Здравствуйте уважаемые.
Подскажите пожалуйста как получить данные загнанные в такой map: map = new map(Types::integer,Types::Container); Запихал так: map.insert(i,[test1a,test14, test7, test3, "SecurityKeys", test3b, test7a,test7b, test7c]); Хочу посмотреть, что там лежит: map.toString(); отображается не то что хочется: [1-><9>,2-><9>,3-><9>,4-><9>,5-><9>,6-><9>,7-><9>,8-><9>,9-><9>,10-><9>......... ............ ,366-><9>,367-><9>,368-><9>] А как правильно сперва получить контейнер из мэпа, а потом его открыть - не знаю. Помогите пожалуйста. Заранее благодарен.
__________________
Александр |
|
09.11.2006, 10:31 | #2 |
Участник
|
con2str(map.lookup(i));
|
|
09.11.2006, 11:10 | #3 |
Участник
|
Все получилось. Большое спасибо. Может быть за одно подскажите функцию нахождения данных в этом mape?
__________________
Александр |
|
09.11.2006, 10:31 | #4 |
NavAx
|
X++: container data;
;
data = map.lookup(i) |
|
09.11.2006, 10:35 | #5 |
Участник
|
есть еще функция conView
|
|
09.11.2006, 11:39 | #6 |
Участник
|
Последний раз редактировалось belugin; 09.11.2006 в 12:09. Причина: скобка |
|
09.11.2006, 12:30 | #7 |
Участник
|
__________________
Александр |
|
09.11.2006, 16:24 | #8 |
Участник
|
К слову, по поводу одного из кусков кода:
X++: int age; str keyid = "Wassini"; age = m.exists(keyid) ? m.lookup(keyid) : 0; m.remove(keyid); m.insert(keyid, age + 1); X++: if (m.exists(keyid)) m.insert(keyid, m.lookup(keyid)+1); |
|
11.11.2006, 17:47 | #9 |
Участник
|
Цитата:
Сообщение от gl00mie
К слову, по поводу одного из кусков кода:
X++: int age; str keyid = "Wassini"; age = m.exists(keyid) ? m.lookup(keyid) : 0; m.remove(keyid); m.insert(keyid, age + 1); X++: if (m.exists(keyid)) m.insert(keyid, m.lookup(keyid)+1); Написал следующее: int age; str keyid = "Bank"; str room; int test30; str room1; i = 0; im = new MapIterator(map); while (im.more()) { i = i + 1; Info (con2str(map.lookup(i))); room = con2str(map.lookup(i)); test30 = strFind(room, ",", 1,100); room1 = Substr(room, 1, test30-1); // con2str(map.lookup(i)); //age = map.exists(keyid) ? map.lookup(keyid) : 0; if (strfmt("%1", room1) == keyid) print i; else print "No!"; Pause; } im.next(); Поиск работает. Но насколько он хорош судить не мне. Всем большое спасибо. Что хотел - получилось.
__________________
Александр |
|
09.11.2006, 16:30 | #10 |
Участник
|
insert() обновляет значение в Map, если оно уже там есть.
То есть не обязательно проверять/удалять до этого KERNDOC://Classes/Map/insert Цитата:
Inserts the pair (keyValue, value) in the map. Returns TRUE if the key did not already exist in the map. If the key already exists in the map, the value is updated.
|
|
11.11.2006, 23:48 | #11 |
Участник
|
Лучше раскажите нам зачем всё это нужно, а то лично мне кажется, что вы выбрали не тот контейнерный класс.
Например, чем вам не нравится Array, если вы все равно ищете не по ключу? Если вы внутри цилка не вызываете im.next(), как у вас получается конечный цикл? |
|
12.11.2006, 17:48 | #12 |
Участник
|
Цитата:
Исторически сложилось, что права пользователям настраивались по-операционно (к примеру - на складские журналы). Для этого нужны права на то, другое и т.д. Потом, оказалось, что это неудобно по нескольким причинам. В итоге получилось, что права на некоторые пункты меню - пересекаются. Чтобы контролировать процесс, необходимо знать в каких правах групп пользователей имеется доступ на что-то конкретное (отчет, журнал, справочник). Как решить данную проблему? Сначала потытался выяснить на форуме, как строится дерево при отображении прав доступа на группу пользователей, чтобы попытаться использовать его. Но так и не выяснил. Прочитал, что права хранятся в таблицах AccessRightsList и еще двух. Если в таблице права группе пользователей даны на ключ(таблицу), то это значит что права распространяются на все подчиненные этому ключу пункты (к примеру ключ на отчеты главной книги - распространяетсяна все отчеты главной книги), хотя это не есть факт, а как это отследить не разобрался. Если права даны на конкретные отчеты подключенные к этому ключу, но на сам ключ прав нет, то они отображаются в таблице. ну и т.д. Осталось вытащить по коду ключа его название, а также к какому отчету (запросы, журналу) он привязан. А затем построить запрос по таблицам AccessRightsList , UserGroupList, UserGroupInfo , UserInfo в качестве параметра введя название отчета, журнала, справочника и т.д. получая на выходе имена пользователей и группы пользователей в которых имеется доступ (полный, чтение и т.д) на этот отчет. Список свойств MenuItem, SecurityKey и т.д. решил сохранять в МАП Вот вроде и все. Возможно я решаю данную проблему не так, но по другому пока не научился. Я так - немного балуюсь Аксаптой. Поиск, который посоветовали не работал, поэтому придумал, что придумал Про array - не знаю почему не пользуюсь. Программисты посоветовали - мап. Раньше сохранял в таблицу, но в рабочей базе не хочется - это переделка функционала, а это не мой профиль. Ошибку посмотрю Спасибо за участие.
__________________
Александр |
|
12.11.2006, 18:01 | #13 |
Участник
|
Только, что прочитал, что эта ветка про это же:
Экспорт/Импорт прав доступа
__________________
Александр |
|