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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.09.2005, 15:51   #20  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
К сожалению без программирования я не знаю способа. Но могу предложить как это сделать для всей системы.

Класс SysQueryForm, метод buildRange

1. Необходимо добавить следующую вложенную функцию

PHP код:
boolean CheckFixedField(QueryBuildRange _range)
{
    
FieldId         fieldId;
    
DictRelation    dictRelation;
    
int             cnt;
    ;

    if (!
hasSecuritykeyAccess(securityKeyName2id(securitykeystr(AdminSetup)),AccessType::View) &&
        
_range && _range.dataSource() && _range.dataSource().joined())
    {
        
fieldId _range.field();

        
dictRelation = new DictRelation(_range.table());
        
dictRelation.loadTableRelation(_range.dataSource().parentDataSource().table());
        if (
dictRelation.validate())
        {
            for (
cnt 1cnt <= dictRelation.lines(); cnt++)
            {
                if ((
dictRelation.lineType(cnt) == TableRelation::ThisFixed) &&
                    (
dictRelation.lineTableValue(cnt) == fieldId))
                    return 
True;
            }
        }

    }
    return 
False;

2. Изменить следующий код

PHP код:
                    if (dynalinkFieldSet &&
                        
dynalinkFieldSet.in(queryBuildRange.field()))
                    {
                        
rangeStatus RangeStatus::Hidden;
                    }
                    else
                    {
                        
rangeStatus queryBuildRange.status();
                    } 
на

PHP код:
                    if (dynalinkFieldSet &&
                        
dynalinkFieldSet.in(queryBuildRange.field()))
                    {
                        
rangeStatus RangeStatus::Hidden;
                    }
                    else if (
CheckFixedField(queryBuildRange))
                    {
                        
rangeStatus RangeStatus::Locked;
                        
// или rangeStatus = RangeStatus::Hidden;
                    
}
                    else
                    {
                        
rangeStatus queryBuildRange.status();
                    } 
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблемы с Exists Join Logger DAX: Программирование 28 28.04.2010 02:54
Расширенный AddRange и OuterJoin Russland DAX: Программирование 0 04.07.2006 16:36
Опять про OuterJoin нескольких таблиц murad DAX: Программирование 1 15.05.2006 10:26
Проблемы работы ERP в многофилиальной и территориально разнесённой компании СНГ. SlavaK DAX: Прочие вопросы 18 02.03.2004 15:25

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

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

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