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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.11.2005, 09:06   #1  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
? Возможно ли как-нибудь продолжить выполнение метода после return
Есть метод, в конце идет команда retrun, надо еще выполнить несколько операций после return, возможно ли это?
Старый 09.11.2005, 09:17   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Нет нельзя.

Странный вопрос. Не могли бы вы уточнить с чем он связан
__________________
Axapta v.3.0 sp5 kr2
Старый 09.11.2005, 09:27   #3  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Вообщем формирую отчет, вот кусок кода



this.initPrologSection(_reportId,
_transDate,
fromInventLocationName,
fromActivityType,
toInventLocationName,
toActivityType);

this.initTotalsSection(qtyTotal,
grossWeightTotal,
netWeightTotal,
costAmountTotal);

this.initTotalsTxtSection(_offSessionId, costAmountTotal);

return xmlDocument;
}

}

после return закрывается скобка цикла while, он выполняется один раз до return, мне необходимо сделать два отчета с разными строками. Методы this.initPrologSection,this.initTotalsSection,this.initTotalsTxtSection создают шапку и нижнюю часть отчета, если вынести return за цикл вот так

this.initTotalsTxtSection(_offSessionId, costAmountTotal);

}
return xmlDocument;

}

методы this.initPrologSection,this.initTotalsSection,this.initTotalsTxtSection вообще не выполняются
Старый 09.11.2005, 09:28   #4  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen


Найди где и кем этот метод вызывается, и вставь код своих нескольких операций на следующей (!) строчке, после вызова метода. Каманда RETURN метода вернет управление и твой код обязательно исполниться.......

Удачи....
Старый 09.11.2005, 09:36   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вызывайте метод дважды с разными параметрами.

Вообще как вы себе представляете возврат двух xmlDocument за один вызов return?
__________________
Axapta v.3.0 sp5 kr2
Старый 09.11.2005, 09:44   #6  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от AndyD
Вообще как вы себе представляете возврат двух xmlDocument за один вызов return?
Созадется впечатление, что уважаемый Protey много чего не представляет.
Старый 09.11.2005, 09:59   #7  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Ага, учитывая что аксапту я вообще не знаю, сказали делать вот и мучаюсь
Старый 09.11.2005, 10:19   #8  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Protey
Ага, учитывая что аксапту я вообще не знаю, сказали делать вот и мучаюсь

))) а при чем здесь акса... исполнять что либо после команды return не умеет ни один язык...

Для получения двух отчетов запускайте цикл его формирующий два раза... с разными параметрами. Надеюсь как передают параметры в методы Вы представляете....
Старый 09.11.2005, 10:42   #9  
Lokis is offline
Lokis
Участник
 
8 / 10 (1) +
Регистрация: 14.06.2005
Цитата:
Сообщение от simply2double
))) а при чем здесь акса... исполнять что либо после команды return не умеет ни один язык...
в Object Pascal ( в Дельфи, то бишь ) возвращаемое значение функцией хранилось в переменной Result. Таким образом, можно было присваивать значение этой переменной в теле функции несколько раз и при выходе из нее значение переменной Result определяло результат, возвращаемый этой функцией.
Просто другая логика, из-за которой можно было немного запутаться при переходе на Си...
Старый 09.11.2005, 11:07   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
2 lokis
Вы путаете. Аналог Return для Pascal - Exit.
Result (или имя функции) - промежуточная переменная, значение которой сохраняется перед выходом из функции в регистре EAX

PS Извиняюсь за оффтопик
__________________
Axapta v.3.0 sp5 kr2
Старый 09.11.2005, 11:16   #11  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Lokis
в Object Pascal ( в Дельфи, то бишь ) возвращаемое значение функцией хранилось в переменной Result. Таким образом, можно было присваивать значение этой переменной в теле функции несколько раз и при выходе из нее значение переменной Result определяло результат, возвращаемый этой функцией.
Просто другая логика, из-за которой можно было немного запутаться при переходе на Си...
хм... в чем же отличие логики... просто интересно

Код:
 
 
int MyMethod() // метод, возвращающий тип int 
{
	int Result = 0; // объявляю возвращаемую переменную
 
	;
   
	if (условие)
	Result = 1; // один раз присвоил
	else 
	Result = 2; // второй раз присвоил
	...
	Return Result; // вышел из метода и вернул переменную
}

в Object Pascal ( в Дельфи, то бишь ) можно что-то сотворить с Result после исполнения Return ?????

PS код немного подправил, чтоб было наляднее

Последний раз редактировалось simply2double; 09.11.2005 в 11:37.
Старый 09.11.2005, 11:25   #12  
Lokis is offline
Lokis
Участник
 
8 / 10 (1) +
Регистрация: 14.06.2005
2 AndyD
Спасибо, я в курсе как это работает. Я имел ввиду отличие в логике возвращения значения из функции. Вот примитивный пример:
Код:
function MyFunc(): integer;
begin
if  {какое-то условие} then
  Result:= 1 //Или MyFunc:= 1; 
else
  Result:= 0;

 //........какой-то код
 //а дальше хоть принуждайте выходить exit'ом, хоть дожидайтесь отработки кода 

end;
2simply2double
Нет, конечно же нельзя ничего сотворить с Result'ом после выполнения exit ("return" в Си).

Последний раз редактировалось Lokis; 09.11.2005 в 11:49.
Старый 09.11.2005, 11:45   #13  
Lokis is offline
Lokis
Участник
 
8 / 10 (1) +
Регистрация: 14.06.2005
2simply2double

В общем, признаюсь, что отличий в логике особенных и нет. Извините.
Старый 09.11.2005, 11:53   #14  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Lokis
2simply2double
Нет, конечно же нельзя ничего сотворить с Result'ом после выполнения exit ("return" в Си).
2Lokis
не кажеться ли Вам уважаемый, что рассуждениями о некоей мифической языковозависимой инвариантноти испонения кода Вы отвлекаете задающего вопросы от простого и ясного ответа.

Ответ должен быть как выстрел: НЕТ !!!
Старый 09.11.2005, 13:11   #15  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
2 simply2double
Эти методы вызывались нормально, я запихал их в цикл, чтобы они выполнялись несколько раз, теперь они вообще не выполняются

P.S. интересно было почитать вашу дискуссию
Старый 09.11.2005, 13:43   #16  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вы не привели условие вхождения в цикл. Возможно, проблемы там
__________________
Axapta v.3.0 sp5 kr2
Старый 09.11.2005, 15:44   #17  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Protey
2 simply2double
Эти методы вызывались нормально, я запихал их в цикл, чтобы они выполнялись несколько раз, теперь они вообще не выполняются

Предположение: Видимо кривовато инициализируете экземпляр класса xmlDocument. Либо неправильно вставляете в него узлы. AndyD прав. Выложили бы весь код вашего цикла. По крайне мере сам скелет.


Цитата:
Сообщение от Protey
2 simply2double
P.S. интересно было почитать вашу дискуссию
хм... спсибо за проявленный интерес )))
Старый 09.11.2005, 16:17   #18  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Сообщение от Protey
Есть метод, в конце идет команда retrun, надо еще выполнить несколько операций после return, возможно ли это?
Вопрос скорее философский. Из серии "есть ли жизнь после смерти?"
Старый 09.11.2005, 16:51   #19  
gudzon is offline
gudzon
программист
 
1,166 / 324 (13) ++++++
Регистрация: 06.07.2004
Адрес: Москва
Весело тут у вас... Шутку оценил.
Старый 09.11.2005, 17:20   #20  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Ruff
Вопрос скорее философский. Из серии "есть ли жизнь после смерти?"
хм... в отличии от философии здесь все однозначно... после ретурна все умирает...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Есть ли у кого-нибудь такая штучечка? miklenew DAX: Программирование 54 01.06.2015 12:09
Амортизация после кап.ремонта по НУ sns DAX: Функционал 15 05.12.2008 02:35
Новые поля после перехода на SP4 global DAX: Функционал 4 10.03.2006 11:15

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

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

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