21.03.2007, 16:52 | #1 |
Участник
|
Программно добавить поле
Подскажите, можно ли программно добавить поле в таблицу?
Как и где посмотреть это можно? |
|
21.03.2007, 17:22 | #2 |
Участник
|
SystemDocumentation://Classes/AOTTableFieldList
SystemDocumentation://Classes/AOTTableFieldList
X++: AOTTableFieldList tfl = infolog.findNode('\\DataDictionary\\Tables\\TutorialJournalName\\Fields'); if (!tfl.AOTFindChild('NewEnum')) { tfl.addEnum('NewEnum'); // adds the field NewEnum } |
|
21.03.2007, 23:33 | #3 |
Участник
|
Цитата:
Пожалуйста не делайте этого. Если вам нужна разовая процедура, то лучше создайте xpo-файл и импортируйте его. Если вы собираетесь заниматься подобным извратом регулярно, то Во-первых, вам придется управлять синхронизацией. При работающих пользователях проще повеситься, нежели гарантировать, что ваше поле реально создасться. Во-вторых, программное создание создаст в текущий слой. Что резко добавит вам гемора, если вы работаете с несколькими слоями. Если при этом вы запоминаете данные о созданных полях в базе, а в дальнейшем правки будут выполняться в другом слое, то скорее всего произойдет рассинхронизация структуры данных и ваших записей (поскольку удалить поле, объявленное в верхнем уровне, нельзя) |
|
22.03.2007, 10:18 | #4 |
Участник
|
Спасибо за советы.
Цитата:
Посмотреть можно в зарплате.
Подобный изврат мне нужен одноразово. -) |
|
22.03.2007, 11:12 | #5 |
Участник
|
Вот ведь...
Как скажете. метод таблицы RPayCalendarTimeTable.validateWrite() метод таблицы RPayCalendarTimeTable.delete() Кстати, никогда не вставляйте изменение данных в validateWrite() Срабатывают эти методы при работе с формой Главное меню \ Расчеты с персоналом \ Учет рабочего времени \ Настройки \ Справочник времен |
|