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

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

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

Запись от 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
Размещено в Без категории
Просмотров 11576 Комментарии 0
Всего комментариев 0

Комментарии

 


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