|
10.09.2009, 08:17 | #1 |
Участник
|
Как определить fieldId в relation расширенного типа
Доброго всем времени суток. Подскажите как определить fieldId в releation'е расширенного типа. DictRelation содержит только tableid а fieldid ни как не могу найти. Поэтому приходится перебирать все поля таблицы чтобы определить поле с таким типом. Мне кажется это немного коряво, моэет есть более простой способ?
|
|
10.09.2009, 08:35 | #2 |
Участник
|
Лучше расскажите, "как вы дошли до жизни такой" т.е. с чего возникла задача программно разбирать relation на EDT? Может, исходную задачу можно решить иначе?..
|
|
10.09.2009, 08:39 | #3 |
Боец
|
Цитата:
Сообщение от IvanS
Доброго всем времени суток. Подскажите как определить fieldId в releation'е расширенного типа. DictRelation содержит только tableid а fieldid ни как не могу найти. Поэтому приходится перебирать все поля таблицы чтобы определить поле с таким типом. Мне кажется это немного коряво, моэет есть более простой способ?
X++: //EVO static void EDT_Relation(Args _args) { DictRelation dr ; DictType dt; ; dt = new DictType(typeId2ExtendedTypeId(typeid(CustAccount))); dr = dt.relationObject(1); info(strFmt("TableId: %1 FieldId: %2", dr.lineTableValue(1), dr.lineExternTableValue(1))); } |
|
|
За это сообщение автора поблагодарили: IvanS (1). |
10.09.2009, 08:43 | #4 |
Участник
|
Цитата:
|
|
10.09.2009, 08:47 | #5 |
Участник
|
Хотя так написал так же все работает нормально Пасибо
|
|
10.09.2009, 08:50 | #6 |
Участник
|
А еще вопрос в этом же направлении как можно быстро проверить есть ли поле в таблице по названию или нет без перебора?
|
|
10.09.2009, 09:05 | #7 |
Боец
|
Цитата:
X++: if (new DictTable(tablenum(InventTable)).fieldName2Id("ItemId")) { info("The field exists"); } Но, расскажите, что вы такое интересное делаете? |
|
10.09.2009, 09:34 | #8 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: IvanS (1), alex55 (1). |
10.09.2009, 08:48 | #9 |
Боец
|
|
|
Теги |
edt, extended data type, fieldid, relation |
|
|