17.01.2003, 08:00 | #1 |
Участник
|
Как пройтись по таблице
ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО!
Как пройтись по таблице? заменить значения полей со строк-го на enum? |
|
17.01.2003, 08:46 | #2 |
сибиряк
|
проитись по таблице можно так :
Table myTable; ; while select forUpdate myTable { myTable.myField = MyEnum::newValue; myTable.update(); } вот только что такое "строк-го" ?
__________________
С уважением, Вячеслав. |
|
17.01.2003, 08:51 | #3 |
Участник
|
тип String
|
|
17.01.2003, 09:03 | #4 |
сибиряк
|
тогда придется создать другое поле, и изменить его значения в соответствии со стринговым.
__________________
С уважением, Вячеслав. |
|
17.01.2003, 09:37 | #5 |
Участник
|
Я нашла (str2enum), а как обявить эту MyEnum
Спасибо |
|
17.01.2003, 09:39 | #6 |
Administrator
|
Надо создать Enum с соответствующим именем в Base Enums в AOT.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 09:47 | #7 |
Участник
|
Напиши пожалуйста пример кода создания своего MyEnum с использованием Base Enum.
т.е. void .... { ???? MyEnum; .... } |
|
17.01.2003, 09:59 | #8 |
сибиряк
|
static void Job32(Args _args)
{ TreeNode treeNode; xInfo xInfo = new xInfo(); ; treeNode = xInfo.rootNode(); treeNode = treeNode.AOTfindChild("Data Dictionary"); treeNode = treeNode.AOTfindChild("Base Enums"); treeNode.AOTadd("MyNewEnum"); treeNode.AOTsave(); treeNode = treeNode.AOTfindChild("MyNewEnum"); treeNode.AOTadd("element1"); treeNode.AOTadd("element2"); treeNode.AOTsave(); } вот так можно создать свой Enum (это если Вам лень добавить его вручную в АОТ)
__________________
С уважением, Вячеслав. |
|
17.01.2003, 10:03 | #9 |
Administrator
|
Если будет время, рекомендую прочитать раздел руководства разработчика Axapta Language Reference/Data types/Enums (axdvgus.chm::/LANG/Data_types/LANG_Enum.htm)
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 10:04 | #10 |
Administrator
|
Цитата:
Изначально опубликовано slava
вот так можно создать свой Enum (это если Вам лень добавить его вручную в АОТ)
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 10:29 | #11 |
Участник
|
Не могу разобраться вот в чем.
Надо в таблице SalesTable поменять поле SalesStatus на значение, которое в enumуреции SalesStatus имеет метку 'Открытый заказ' Т.е. проблема в том, что я не могу из метки 'Открытый заказ' получить значение 1. Т.е. как сопоставить метку и значение в enum? Какой функцией? |
|
17.01.2003, 10:34 | #12 |
сибиряк
|
2Maxim :
Да я понимаю наверное неудачно пошутил 2Natasha : а какое значение имеет это поле сейчас ? SalesStatus::... ? Кстати, лучше действительно прочитайте о Enum'ах
__________________
С уважением, Вячеслав. |
|
17.01.2003, 11:02 | #13 |
Administrator
|
Цитата:
Изначально опубликовано Natasha
Т.е. как сопоставить метку и значение в enum? Какой функцией? str2enum по типу Enum'а и значению метки возвращает переменную этого типа с соответствующей меткой. Например PHP код:
В принципе, enum'ы можно рассматривать и как значения типа int. Например, если вы сделаете int2str(SalesStatus::Backordered), получите так желаемую вами единицу.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 11:26 | #14 |
Участник
|
Видимо степень моих незнаний так велика, но прошу снисхождения.
Далее идет текст Job, который выводит 'Открытый заказ' вместо 1, а если вместо print SS использовать info (SS), то ошибка при компиляции. ПОЧЕМУ? static void Sales(Args _args) { SalesStatus _SS; ; SS = str2enum(SS,'Открытый заказ'); print SS; //info (SS); } |
|
17.01.2003, 11:33 | #15 |
Administrator
|
print автоматически выводит как раз label. Следующие два фрагмента кода эквивалентны:
PHP код:
PHP код:
PHP код:
PHP код:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 11:34 | #16 |
Участник
|
2Maxim Gorbunov
> В принципе, enum'ы можно рассматривать и как значения типа int. Например, если > вы сделаете int2str(SalesStatus::Backordered), получите так желаемую вами единицу. Попробуйте сделать такой Job и посмотрите на сообщение компилятора, у меня пишет "Перечень не существует". static void Sales(Args _args) { SalesStatus _SS; ; print int2str(SS::Backordered); } |
|
17.01.2003, 11:45 | #17 |
Administrator
|
Компилятор всегда прав
Дело в том, что _SS - это переменная. SalesStatus::Backordered - константа. Написать _SS::Backordered нельзя. Такой синтаксической структуры в X++ просто нет. Варианты написания того, что Вы хотите:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
17.01.2003, 11:45 | #18 |
NavAx
|
Надо
print int2str(SalesStatus::Backordered);
__________________
С уважением, Игорь Ласийчук. |
|
17.01.2003, 11:47 | #19 |
Участник
|
СПАСИБО ВСЕМ, ВСЕ ПОЛУЧИЛОСЬ!!!
|
|
17.01.2003, 11:47 | #20 |
Administrator
|
Да, кстати, по поводу сообщения компилятора. Его смысл следующий. Обнаружив лексему SS::Backordered компилятор пытается найти Base Enum (тип!!!) с именем SS. Не находя его, он сообщает, что "перечень не существует". "Перечень" - это так "Enum" у нас перевели Спрашивается, зачем.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|