Цикл проверки обязательности заполнения полей.
Запись от Poleax размещена 03.09.2010 в 14:18
Перебор пользовательских полей в таблице. Проверка на обязательное заполнение
Код использовался на форме.
Часть кода взята из Копирование строк таблицы с помощью DictTable
Проверка на обязательность (MANDATORY) http://msdn.microsoft.com/en-us/library/aa556779.aspx
Код использовался на форме.
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("Заполните поля");
}
}
}
}Проверка на обязательность (MANDATORY) http://msdn.microsoft.com/en-us/library/aa556779.aspx
Всего комментариев 0



