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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2006, 14:07   #1  
mmm is offline
mmm
Участник
 
33 / 43 (2) +++
Регистрация: 10.07.2002
Адрес: Ukraine
Аналитика в DS
Добрый день!

Необходимо, в зависимости от выбраных параметров, либо разрешать пользователю указывать финнансовую аналитику на форме, либо нет.

Для первой аналитики запретить выбор помогает:
Sales_ds.object(fieldNum(SalesTable, Dimension)).allowEdit(false);

Как, для остальных двух аналитик сделать точно такое же?

Заранее спасибо.
Старый 11.12.2006, 14:09   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mmm Посмотреть сообщение
Как, для остальных двух аналитик сделать точно такое же?
Если аналитики сделаны автогруппой - то Нет.
Если аналитики вытащить на форму по одной - то Да, но тогда пропадет возможность авторасширения группы.
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:16   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, вообще-то не совсем так.

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);
Старый 11.12.2006, 14:20   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
X++:
    CustTable_ds.object(fieldId2Ext(fieldNum(CustTable, Dimension), 2)).allowEdit(false);
О-опс...
Да, здесь про датасорс. Извините. Был не прав.

kashperuk, а есть ли способ добраться до контрола не первой аналитики?
Например, как добраться до контрола третьей аналитики (стандартно Цель)?
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:26   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, к примеру, вот так.
X++:
    Dimension.controlNum(3).enabled(false);
Dimension - это АвтоГруппа из таблицы - для нее установлено свойство AutoDeclaration = True
За это сообщение автора поблагодарили: mazzy (20), Red Stranger (1), hated8 (1).
Старый 11.12.2006, 14:28   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Можно конечно и без AutoDeclaration, но мне так меньше нравится. - преобразования нужны да и вообще.

X++:
    FormGroupControl    gr;
    ;
    gr = element.control(control::Dimension);
    gr.controlNum(3).enabled(false);
За это сообщение автора поблагодарили: Hans (1).
Старый 11.12.2006, 14:41   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Ну, к примеру, вот так.
Кру-у-уть!!!
ОГРОМНОЕ спасибо!
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:43   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
В крайнем случае можно и так
X++:
element.control(control::Dimension+3).enabled(false);
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: mazzy (5).
Старый 11.12.2006, 14:45   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
В крайнем случае можно и так
X++:
element.control(control::Dimension+3).enabled(false);
Оба на! Спасибо.
Чувствую, что еще многого не знаю в Аксапте...

А тогда можно попросить объяснить суть этого хакерского метода?
Он всегда будет работать?
Почему +3, а не +2?
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:47   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
В частности, что в действительности означает/делает/возвращает конструкция control::myControl ?

Я всегда думал, что конструкция element.control(control::Dimension) является своеобразным макросом, который компилятор обрабатывает специальным образом.

А оказывается конструкция control::Dimension имеет самостоятельное значение.
Так что это за конструкция и есть ли у нее аналоги?
Например, есть ли method::myMethod или что-нибудь в этом духе?
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:54   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
control:imension - это идентификатор (id) контрола группы. При добавлении автогруппы все поля, входящие в нее, получают идентификатор, начиная с id+1 и т.д. Т.е., если это поле-массив, то id+3 - обращение к контролу 3-го элемента этого массива
__________________
Axapta v.3.0 sp5 kr2
Старый 11.12.2006, 15:02   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
control::Dimension - это идентификатор (id) контрола группы.
Это уникальная конструкция или есть подобные?
__________________
полезное на axForum, github, vk, coub.
Старый 12.12.2006, 11:17   #13  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Я, конечно, подозреваю, что все участники обсуждения об этом и так знают, но, так сказать, для будущих поколений, думаю, будет не лишним об этом упомянуть.

Если Вы блокируете редактирование для контрола на форме, то вы именно блокируете контрол. Не стоит забывать при этом, что в Аксапте есть такая фича, как пользовательская настройка форм. С помощью нее пользователь может добавлять на форму контролы, в которых будут отображаться произвольные поля датасорсов этой формы (вообще-то эта возможность контролируется свойством 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).
Старый 12.12.2006, 11:31   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да, спасибо - тему тогда эту наверное нужно перенести в Полезное.
Вот еще ссылочка в тему:
http://www.systomatics.com/Blog/009P...lay/blog09.htm
Старый 12.12.2006, 11:36   #15  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
2 Maxim Gorbunov
Истину глаголишь. Права доступа на поля формы.
__________________
Axapta v.3.0 sp5 kr2
Старый 12.12.2006, 18:51   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Мда... в 4ке это есть в стандарте...

С Уважением,
Георгий
Старый 13.12.2006, 10:16   #17  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Георгий, что именно?
__________________
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).
Старый 13.12.2006, 17:33   #18  
mmm is offline
mmm
Участник
 
33 / 43 (2) +++
Регистрация: 10.07.2002
Адрес: Ukraine
Всем огромное спасибо!

Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
mmm, а может подробнее про задачу расскажете? Настройку проверки аналитики для счетов ГК использовать там точно нельзя?
Задача большая, так что расписывать наверное не буду, но точно могу сказать, что настройку проверки аналитики не прикрутишь!
Теги
аналитика, редактирование аналитик

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Amand: Аналитика в строках закупки и аналитика по факту - есть ли различия? Blog bot DAX Blogs 0 01.02.2008 03:13
Привязка фильтров от одного DS к другому Андрей К. DAX: Программирование 10 24.08.2007 14:57
Вызов метода modified DS Mike2005 DAX: Программирование 1 17.10.2006 13:45
Аналитика только в одной половине проводки concigliory DAX: Функционал 9 29.10.2004 09:15
При резервировании не учитывается аналитика Партия? KIV DAX: Функционал 32 06.08.2004 13:23

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

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

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