01.10.2009, 12:14 | #1 |
Участник
|
tmpTable mandatory field
Привет!
Я използуваю реалнаю таблицу как тмп таблицу. Table.setTmp() Патом нунзна убрат мандаторы проперти. X++: Dictionary dict = new Dictionary(); TreeNode treeNode; TreeNode fieldNode; DictTable dictTable; DictField dictField; AOTTableFieldList fieldList; str properties; int i; ; dictTable = new DictTable(_tableId); if (dictTable.isSystemTable() || dictTable.isView()) continue; treeNode = TreeNode::findNode('\\Data Dictionary\\Tables\\'+dictTable.name()); if (treeNode) { for(i=1;i<= dictTable.fieldCnt();i++) { dictField = new DictField(_tableId,dictTable.fieldCnt2Id(i)); if (dictField.isSystem()) continue; if( New SysDictField(_tableId,dictField.id()).mandatory()) { fieldList = treeNode.AOTfindChild('Fields'); fieldNode = fieldList.AOTfindChild(dictField.name()); if (!fieldNode) continue; properties = fieldNode.AOTgetProperties(); properties = setProperty(properties,'Mandatory','No'); fieldNode.AOTsetProperties(properties); fieldNode.AOTsave(); } } } |
|
01.10.2009, 12:47 | #2 |
Участник
|
Я так понимаю, таблица у вас на форме отображается?
Если так, то можно перекрыть метод ValidateWrite() на датасорсе и из него всегда возвращать true без вызова super(). Правда, от подчеркивания это не избавит, но сохранять записи можно.
__________________
Axapta v.3.0 sp5 kr2 |
|
01.10.2009, 15:11 | #3 |
Участник
|
|
|