25.05.2006, 13:55 | #1 |
Участник
|
Перечисление полей таблицы
Можно ли по табличной переменной узнать количество полей в таблице и перебрать их?
|
|
25.05.2006, 13:58 | #2 |
Участник
|
да, загляните в таблицу SqlDictionary, правда про временные там нет ничего
|
|
25.05.2006, 14:00 | #3 |
Moderator
|
Код: dictTable = new DictTable(myTableVariable.tableId); for (i = 1; i <= dictTable.fieldCnt(); i++) info(new DictField(dictTable.fieldCnt2id(i)).name());
__________________
Андрей. |
|
25.05.2006, 14:06 | #4 |
Участник
|
А можно по подробнее... у меня мало опыта... таблицы SqlDictionary в AOT я не нашел а в System Documentation не понятно как определить количество полей.
|
|
25.05.2006, 14:08 | #5 |
Участник
|
Код: static void MyMethod(CustTable _custTable) { DictTable dictTable = new DictTable(_custTable.TableId); int i; ; for(i = 1; i <= dictTable.fieldCnt(); i++) { info(strfmt(_custTable.(dictTable.fieldCnt2Id(i)))); } } |
|
25.05.2006, 14:13 | #6 |
Участник
|
находится здесь
\System Documentation\Tables\SqlDictionary, можно делать выбоки объявив SqlDictionary как таблицу. но наверное будет удобнее как предлагают Андрей и Gad |
|
25.05.2006, 14:19 | #7 |
Участник
|
Мне надо было занести в массивы структуру таблицы. Сделал так (Аксапта 2.5):
X++: Dictionary dict = new Dictionary(); DictTable priceDt = new DictTable(dict.tablename2id(tablestr(PriceDiscTable))); FieldId fieldId; int fieldCnt; // кол-во полей int fieldIds[]; // массив идентификаторов полей str fieldNames[]; // массив имён полей boolean nonSystemField[]; // массив признаков "обычное поле?" // структура таблицы PriceDiscTable fieldCnt = priceDt.fieldCnt(); for (i = 1; i <= fieldCnt; i += 1) { fieldIds[i] = priceDt.fieldCnt2Id(i); fieldNames[i] = priceDt.fieldName(fieldIds[i]); nonSystemField[i] = true; if (any2int(fieldIds[i]) >= 60000) // "системное" поле nonSystemField[i] = false; } Последний раз редактировалось mazzy; 08.07.2014 в 10:52. |
|
25.05.2006, 14:39 | #8 |
Участник
|
А как можно добраться до значения Label выбранного поля.
|
|
25.05.2006, 14:47 | #9 |
Участник
|
Через DictField, который в конструкторе new DictField() принимает в качестве параметров id таблицы и поля
|
|
25.05.2006, 15:02 | #10 |
Участник
|
Благодарю за оказанную помощь... Вроде разобрался.
|
|