AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2007, 11:21   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Видимость поля
Здравствуйте. Вот такой вопрос. В таблицу добавляем новое поле. Нужно скрыть это поле во всех формах где оно есть, если конфигурационный ключ нашей фирмы не включен. Конечно, можно было бы это сделать и через форму, но ведь легче скрывать поле прямо в самой таблице. Вопрос в том, если вообще это возможно, в какой метод это засунуть. И второй вопрос, следует ли это делать?

ну, или хотя бы как поле таблицы программно сделать невидимым, то есть программно установить Visible этого поля в No?

Последний раз редактировалось Eldar9x; 25.01.2007 в 12:10.
Старый 25.01.2007, 12:10   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Если у поля заполнить свойство ConfigurationKey то что будет неправильно?
Старый 25.01.2007, 12:20   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
А разве это не приведет к потере данных при отключенном ключе?
Отключение же просто физически удалит это поле в БД, а не скроет.
Старый 25.01.2007, 12:21   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Именно так и хотел сделать, но вот это Создание feature key на поле формы
заставило искать другой путь
Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю...
К тому же сообщение oip открыло еще одну проблему...- поэтому программно

Последний раз редактировалось Eldar9x; 25.01.2007 в 12:27.
Старый 25.01.2007, 12:42   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Именно так и хотел сделать, но вот это Создание feature key на поле формы
заставило искать другой путь
Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю...
К тому же сообщение oip открыло еще одну проблему...- поэтому программно
feature key в Ax3.0 не работают. Они оставлены для совместимости.
В Ax3.0 работают Configuration key и Security key.

Возвращаясь к исходному вопросу.
Если вы хотите физически удалить данные, то нужно использовать configuration key.
Если вы хотите "скрыть", то нужно использовать security key.
__________________
полезное на axForum, github, vk, coub.
Старый 25.01.2007, 12:56   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
но вот не знаю как обратиться непосредственно к полю...
Обратиться можно, например, так:
X++:
static void setVisible(Args _args)
{
    #AOT
    #define.Visible('Visible')
    #define.Fields('Fields')
    #define.No('No')

    treeNode treeNode;
    treeNode fieldNode;
    str      properties;
    str      tableName = tableid2Name(tableNum(tableOip));
    str      fieldName = fieldid2name(tableNum(tableOip), fieldNum(tableOip, field1));
    str      myTablePath = #TablesPath + '\\' + tableName;
    str      myFieldPath = myTablePath + '\\' + #Fields + '\\' + fieldName;
;
    treeNode = infolog.findNode(myTablePath);
    fieldNode = infolog.findNode(myFieldPath);
    properties = fieldNode.AOTgetProperties();
    properties = setProperty(properties, #Visible, #No);
    fieldNode.AOTsetProperties(properties);
    treeNode.AOTsave();
}
Но поддерживаю Маззи. Лучше через SK решить задачу. Конфигурационные ключи не для этого.
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 25.01.2007, 13:14   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
может тогда просто не давать никому прав на это поле и всё?

можно даже без securityKey - если есть SK на таблице то можно добраться и до поля

Последний раз редактировалось belugin; 25.01.2007 в 13:20.
Старый 25.01.2007, 13:21   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
В таблицу добавляем новое поле. Нужно скрыть это поле во всех формах где оно есть, если конфигурационный ключ нашей фирмы не включен.
Может постановку задачи изменить?
Старый 25.01.2007, 13:24   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю...
1. initValue будет вызываться только при создании новых записей
2. теоретически можно подкорячить Класс  SysSetupFormRun и обходить все датасурсы формы скрывая поле.
Старый 25.01.2007, 13:29   #10  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Маззи, спасибо, за объяснение. Oip, огромное спасибо за код, то что надо. Все таки буду делать программно (потом легче отыскать ))); Belugin, что значит не давать прав?, поле должно быть доступно если ключ активен...
Старый 25.01.2007, 13:31   #11  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
2 belugin: то есть пресечь проблему в "корне" (т.е. таблице) не выйдет? Все равно придется копать в сторону форм и классов? На мой взгляд, вполне логично, вырубить поле в случае нактивного конф. ключа прямо там на таблице, а не копаться в различных формах где это поле показывается. То есть обрубаем в корне, исчезает везде...

Последний раз редактировалось Eldar9x; 25.01.2007 в 13:35.
Старый 25.01.2007, 13:37   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
вот еще идея - создать SK его задать для поля, а у него уже установить CK.
Старый 25.01.2007, 13:40   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Все таки буду делать программно (потом легче отыскать)
Вас проклянут все разработчики, которые будут потом работать в вашим кодом.
За то, что вы используете нештатный механизм для решения штатной задачи.

Этот топик очень напоминает мультик про Львенка и Черепаху.
http://hedgehoginmist.narod.ru/turtle.html
Цитата:
Они недовольно посмотрели друг на друга и вместе закончили:
- И на солнышко гляжу!
- И всё-таки надо петь лежу! - сказала Черепаха. - Это же я придумала!
- А как же я буду петь лежу, если я сижу? - спросил Львёнок.
- А ты ляг, и тогда всё будет по правде. Ты будешь лежать и петь: "Только я всё лежу!"
- А я не люблю лежать, - сказал Львёнок. - Я люблю бегать. Ну, в крайнем случае - сидеть!
- Но ты же лежал, когда подкрался ко мне!
- Я лежал, только чтобы подслушать песню, - сказал Львёнок. - Я лежу только в особенных случаях.
- Ну, а как ты спишь? Сидя, что ли? - спросила Черепаха.
- Нет, сплю я лёжа. Но когда я сплю, я же не пою!
- А ты представь себе, что ты спишь и поёшь!..
__________________
полезное на axForum, github, vk, coub.
Старый 25.01.2007, 13:44   #14  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Mazzy, на 100% уверен, что ведущий программист скажет также и заставит переделывать, но уж если проблема возникла, то хочу ее решить...этим путем. Belugin, а каким образом задать SK для поля таблицы, или в свойстве ConfigurationKey поля можно задать не только CK, но и SK?

Последний раз редактировалось Eldar9x; 25.01.2007 в 13:50.
Старый 25.01.2007, 13:48   #15  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Зря. Впрочем, как скажите.
Старый 25.01.2007, 13:50   #16  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Я ни на что не намекаю, но здесь прозвучала по этому поводу хорошая фраза
"Только самоубийца будет работать с такими, как ты"

(что-то типа, а програмист вместо того, чтобы просто решить задачу, будет неделю придумывать и реализовывать извращенный алгоритм, который позволит сделать точно то же, что можно было сделать стандартным способом, который уже много раз испробован) Это конечно весело и прикольно, а сишнику вдвойне, но это не так, как следует делать на языке ERP системы
Старый 25.01.2007, 13:51   #17  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
дык....
Старый 25.01.2007, 13:54   #18  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от kashperuk Посмотреть сообщение
(что-то типа, а програмист вместо того, чтобы просто решить задачу, будет неделю придумывать и реализовывать извращенный алгоритм, который позволит сделать точно то же, что можно было сделать стандартным способом, который уже много раз испробован) Это конечно весело и прикольно, а сишнику вдвойне, но это не так, как следует делать на языке ERP системы
Но плох тот програмист который не хочет написать свое решение, несматря на множество уже решенных возможносте, т.е. изобрести вилосипед, а вдруг этот велосипед будет лучше, быстрее, красивее..........

Но в основном эти решения не используются.........
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 25.01.2007, 13:57   #19  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Himan Посмотреть сообщение
Но плох тот програмист который не хочет написать свое решение, несматря на множество уже решенных возможносте, т.е. изобрести вилосипед, а вдруг этот велосипед будет лучше, быстрее, красивее..........

Но в основном эти решения не используются.........
Если это и есть цель разработки, то да, пожалуйста, я только за.

Но, насколько мне известно, суть проблемы - сделать то, что нужно, и побыстрее
Старый 25.01.2007, 14:00   #20  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Himan Посмотреть сообщение
Но плох тот програмист который не хочет написать свое решение, несматря на множество уже решенных возможносте, т.е. изобрести вилосипед, а вдруг этот велосипед будет лучше, быстрее, красивее..........
"Процесс подготовки грамотного разработчика на Microsoft Axapta в среднем занимает год.
...
Большое время подготовки, указанное нами, подразумевает подготовку грамотного разработчика. Мы вкладываем в это понятие не только умение кодировать - внутренняя среда и язык программирования Microsoft Axapta достаточно просты (а кодировать программисту со знанием Java и C++ несложно научиться за неделю). Грамотный разработчик должен знать существующиющие функциональные возможности и вести разработку, максимально использую уже имеющийся материал."

Из Книги А. Еременко.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Не получается закрыть видимость поля в гриде для группы egorych DAX: Администрирование 1 28.02.2007 11:07
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Недопустимая комбинация поля/поля ссылки Berty Wooster DAX: Программирование 2 29.05.2003 16:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:52.