![]() |
#1 |
Участник
|
Аналитика в DS
Добрый день!
Необходимо, в зависимости от выбраных параметров, либо разрешать пользователю указывать финнансовую аналитику на форме, либо нет. Для первой аналитики запретить выбор помогает: Sales_ds.object(fieldNum(SalesTable, Dimension)).allowEdit(false); Как, для остальных двух аналитик сделать точно такое же? Заранее спасибо. |
|
![]() |
#2 |
Участник
|
Если аналитики сделаны автогруппой - то Нет.
Если аналитики вытащить на форму по одной - то Да, но тогда пропадет возможность авторасширения группы. |
|
![]() |
#3 |
Участник
|
Ну, вообще-то не совсем так.
X++: CustTable_ds.object(fieldNum(CustTable, Dimension)).allowEdit(false); CustTable_ds.object(fieldId2Ext(fieldNum(CustTable, Dimension), 2)).allowEdit(false); CustTable_ds.object(fieldId2Ext(fieldNum(CustTable, Dimension), 3)).allowEdit(false); |
|
![]() |
#4 |
Участник
|
Цитата:
Да, здесь про датасорс. Извините. Был не прав. kashperuk, а есть ли способ добраться до контрола не первой аналитики? Например, как добраться до контрола третьей аналитики (стандартно Цель)? |
|
![]() |
#5 |
Участник
|
Ну, к примеру, вот так.
X++: Dimension.controlNum(3).enabled(false); |
|
|
За это сообщение автора поблагодарили: mazzy (20), Red Stranger (1), hated8 (1). |
![]() |
#6 |
Участник
|
Можно конечно и без AutoDeclaration, но мне так меньше нравится. - преобразования нужны да и вообще.
X++: FormGroupControl gr;
;
gr = element.control(control::Dimension);
gr.controlNum(3).enabled(false); |
|
|
За это сообщение автора поблагодарили: Hans (1). |
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
В крайнем случае можно и так
X++: element.control(control::Dimension+3).enabled(false);
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
![]() |
#9 |
Участник
|
Цитата:
Чувствую, что еще многого не знаю в Аксапте... А тогда можно попросить объяснить суть этого хакерского метода? Он всегда будет работать? Почему +3, а не +2? |
|
![]() |
#10 |
Участник
|
В частности, что в действительности означает/делает/возвращает конструкция control::myControl ?
Я всегда думал, что конструкция element.control(control::Dimension) является своеобразным макросом, который компилятор обрабатывает специальным образом. А оказывается конструкция control::Dimension имеет самостоятельное значение. Так что это за конструкция и есть ли у нее аналоги? Например, есть ли method::myMethod или что-нибудь в этом духе? |
|
![]() |
#11 |
Участник
|
control:
![]()
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#12 |
Участник
|
Это уникальная конструкция или есть подобные?
|
|
![]() |
#13 |
Administrator
|
Я, конечно, подозреваю, что все участники обсуждения об этом и так знают, но, так сказать, для будущих поколений, думаю, будет не лишним об этом упомянуть.
![]() Если Вы блокируете редактирование для контрола на форме, то вы именно блокируете контрол. Не стоит забывать при этом, что в Аксапте есть такая фича, как пользовательская настройка форм. С помощью нее пользователь может добавлять на форму контролы, в которых будут отображаться произвольные поля датасорсов этой формы (вообще-то эта возможность контролируется свойством AllowAdd у поля датасорса; по умолчанию оно установлено в Restricted, что означает, что если поле было добавлено на форму при разработке, то пользователь может добавить его еще раз). Так вот, если Вы заблокируете редактирование контрола, но при этом по-прежнему будете выводить его на форму, пользователь вполне сможет зайти в настройку формы и добавить еще один контрол, который будет привязан к тому же самому полю. Редактировать этот контрол можно будет свободно, так как редактирование поля разрешено. В общем, вывод: не блокируйте контролы, так как в этом смысла особого нет (впрочем, давайте так, если вы считаете иначе, приведите пример ![]() control - это перечисление, которое автоматически создается при компиляции формы (почти так же, как, например, element или FormDataSource объекты *_ds). Вообще говоря, особой гарантии, что control:: Dimension+1 будет соответствовать полю с аналитикой департамент, нет, хотя обычно это так. В общем, метод действительно хакерский, хотя другого, по-моему, нет. mmm, а может подробнее про задачу расскажете? Настройку проверки аналитики для счетов ГК использовать там точно нельзя?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: mazzy (5), glibs (2), lev (5), Red Stranger (1). |
![]() |
#14 |
Участник
|
Да, спасибо - тему тогда эту наверное нужно перенести в Полезное.
Вот еще ссылочка в тему: http://www.systomatics.com/Blog/009P...lay/blog09.htm |
|
![]() |
#15 |
Участник
|
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#16 |
Модератор
|
Мда... в 4ке это есть в стандарте...
С Уважением, Георгий |
|
![]() |
#17 |
Administrator
|
Георгий, что именно?
![]()
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: glibs (7). |
![]() |
#18 |
Участник
|
Всем огромное спасибо!
Задача большая, так что расписывать наверное не буду, но точно могу сказать, что настройку проверки аналитики не прикрутишь! |
|
Теги |
аналитика, редактирование аналитик |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|