AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.04.2008, 14:43   #1  
Zoe is offline
Zoe
Участник
 
14 / 10 (1) +
Регистрация: 23.03.2008
Адрес: Санкт-Петербург
:( Проблема вызова метода доступа (Enum'ы!)
Добрый день!!! Столкнулась с непреодолимой для себя проблемой (занимаюсь программированием в Axapt’е целых две недели, параллельно осваивая ООП J ). В двух словах: Программа для печати некоторых документов. По нажатию на разные кнопки в форме вызываются два разных метода (назовем их Meth_A и Meth_B), которые передают в специальный класс для передачи данных Cls_PassParam данные из одного поля, заполненного пользователем («Категория»). Данное поле имеет расширенный тип Enum, Z_Category. Метод доступа класса cls_PassParam имеет стандартный вид:
PHP код:
public Z_Category Pass_z_c (Z_Category _z_c z_c)
{
z_c _z_c;
return 
z_c;} 
Обращение к данному методу из двух разных методов печати приводит к разным результатам: в первом случае, при вызове из метода PrintCategory, категория отображается как положено, во втором - при вызове из метода PrintShowReport – она вообще не отображается. Понимаю, что чудес не бывает, поэтому хотелось бы как-то рационально объяснить происходящее. Для чистоты эксперимента строки вызова сделала идентичными и в методах, записывающем параметры в класс PassParam (например, метод meth_PrintCATEGORY),
PHP код:
void meth_PrintCATEGORY()
{
Cls_PrintStockLabel z_cls_PrintStockLabel;
Z_category z_category;
Cls_PassParam z_cls_PassParam = new Cls_PassParam();
Args _args
;
_args element.args();
<

z_category str2enum(Z_CategoryUserCategoryComboBox.valueStr());
z_cls_PassParam.Pass_z_c(z_category);
<...> } 
,
и в методах, вызывающих форму для печати (например, метод PrintShowReport)
PHP код:
void PrintShowReport(Cls_PassParam cls_passParamcontainer ElemCont)
{
FormDataSource formDataSource;
SysOperationProgress operationProgress;
Z_Category z_c;
<

if (
this.CategMeth(cls_PassParam.Pass_z_c()) != "PR_0")
{
fr.setVar('Categoria''\''this.CategMeth(cls_PassParam.Pass_z_c()) + '\'');
}
<
fr.show();} 
Да, и сам метод CategMeth
PHP код:
str CategMeth(Z_Category z_c)
{switch (
z_c)
{case 
Z_Category::PR1:
return 
"PR_1";
<
>
}
return 
"PR_0"; } 
Еще хочу отметить, что при отладке метод Pass_z_c возвращает 0. И, казалось бы, программка не должна была бы вообще работать... Однако на практике она не работает только во втором случае, в первом же – печатает безотказно и все как положено...
Простите меня, я в самом деле дилетант и прошу вашей помощи. Спасибо заранее огромное!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с правами доступа к данным velk DAX: Администрирование 12 14.11.2007 22:58
Проблема доступа через COM Connector wit DAX: Функционал 0 10.07.2006 12:34
Проблема с назначением доступа к таблице Договора Hidden DAX: Администрирование 5 17.11.2004 12:43
OLAP, проблема, ENUM в качестве аналитики z_av DAX: База знаний и проекты 1 22.07.2003 17:55
Проблема с правами доступа sa2002as DAX: Администрирование 1 30.06.2003 13:28
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:02.