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

Оценить эту запись

Цикл проверки обязательности заполнения полей.

Запись от Poleax размещена 03.09.2010 в 14:18

Перебор пользовательских полей в таблице. Проверка на обязательное заполнение
Код использовался на форме.

X++:
    #macrolib.dictfield

    //Tables
    DictTable               dictTable = new DictTable(TABLE.tableId);

    //Variables
    DictField               dictField;
    int                     i = 0 ;
    int                     nFlags;
    fieldId                 fieldId   = dictTable.fieldNext(0);
;

    while select firstfast TABLE
    {//Ниже агресивно-насильственный цикл проверки обязательности заполнения полей.
     //К сожалению  метод TABLE_DS.write(); не помог в некоторых случаях.

        for (i = 1; i <= dictTable.fieldCnt(); i++)
        {
            dictField  = new dictField(TABLE.TableId, dictTable.fieldCnt2Id(i));

            if(!dictField.isSystem())
            {
                nFlags = dictField.flags();
                if (bitTest(nFlags,#DBF_MANDATORY))
                {
                    fieldId         = dictTable.fieldCnt2Id(i);
                    if(! TABLE.validateField(fieldId))
                        throw error("Заполните поля");
                }
            }
        }
    }
Часть кода взята из Копирование строк таблицы с помощью DictTable

Проверка на обязательность (MANDATORY) http://msdn.microsoft.com/en-us/library/aa556779.aspx
Размещено в Без категории
Просмотров 11999 Комментарии 0
Всего комментариев 0

Комментарии

 


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