09.11.2005, 09:06 | #1 |
Участник
|
Возможно ли как-нибудь продолжить выполнение метода после return
Есть метод, в конце идет команда retrun, надо еще выполнить несколько операций после return, возможно ли это?
|
|
09.11.2005, 09:17 | #2 |
Участник
|
Нет нельзя.
Странный вопрос. Не могли бы вы уточнить с чем он связан
__________________
Axapta v.3.0 sp5 kr2 |
|
09.11.2005, 09:27 | #3 |
Участник
|
Вообщем формирую отчет, вот кусок кода
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 |
Участник
|
Найди где и кем этот метод вызывается, и вставь код своих нескольких операций на следующей (!) строчке, после вызова метода. Каманда RETURN метода вернет управление и твой код обязательно исполниться....... Удачи.... |
|
09.11.2005, 09:36 | #5 |
Участник
|
Вызывайте метод дважды с разными параметрами.
Вообще как вы себе представляете возврат двух xmlDocument за один вызов return?
__________________
Axapta v.3.0 sp5 kr2 |
|
09.11.2005, 09:44 | #6 |
Участник
|
Цитата:
Сообщение от AndyD
Вообще как вы себе представляете возврат двух xmlDocument за один вызов return?
|
|
09.11.2005, 09:59 | #7 |
Участник
|
Ага, учитывая что аксапту я вообще не знаю, сказали делать вот и мучаюсь
|
|
09.11.2005, 10:19 | #8 |
Участник
|
Цитата:
Сообщение от Protey
Ага, учитывая что аксапту я вообще не знаю, сказали делать вот и мучаюсь
))) а при чем здесь акса... исполнять что либо после команды return не умеет ни один язык... Для получения двух отчетов запускайте цикл его формирующий два раза... с разными параметрами. Надеюсь как передают параметры в методы Вы представляете.... |
|
09.11.2005, 10:42 | #9 |
Участник
|
Цитата:
Сообщение от simply2double
))) а при чем здесь акса... исполнять что либо после команды return не умеет ни один язык...
Просто другая логика, из-за которой можно было немного запутаться при переходе на Си... |
|
09.11.2005, 11:07 | #10 |
Участник
|
2 lokis
Вы путаете. Аналог Return для Pascal - Exit. Result (или имя функции) - промежуточная переменная, значение которой сохраняется перед выходом из функции в регистре EAX PS Извиняюсь за оффтопик
__________________
Axapta v.3.0 sp5 kr2 |
|
09.11.2005, 11:16 | #11 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
2 AndyD
Спасибо, я в курсе как это работает. Я имел ввиду отличие в логике возвращения значения из функции. Вот примитивный пример: Код: function MyFunc(): integer; begin if {какое-то условие} then Result:= 1 //Или MyFunc:= 1; else Result:= 0; //........какой-то код //а дальше хоть принуждайте выходить exit'ом, хоть дожидайтесь отработки кода end; Нет, конечно же нельзя ничего сотворить с Result'ом после выполнения exit ("return" в Си). Последний раз редактировалось Lokis; 09.11.2005 в 11:49. |
|
09.11.2005, 11:45 | #13 |
Участник
|
2simply2double
В общем, признаюсь, что отличий в логике особенных и нет. Извините. |
|
09.11.2005, 11:53 | #14 |
Участник
|
Цитата:
Сообщение от Lokis
2simply2double
Нет, конечно же нельзя ничего сотворить с Result'ом после выполнения exit ("return" в Си). не кажеться ли Вам уважаемый, что рассуждениями о некоей мифической языковозависимой инвариантноти испонения кода Вы отвлекаете задающего вопросы от простого и ясного ответа. Ответ должен быть как выстрел: НЕТ !!! |
|
09.11.2005, 13:11 | #15 |
Участник
|
2 simply2double
Эти методы вызывались нормально, я запихал их в цикл, чтобы они выполнялись несколько раз, теперь они вообще не выполняются P.S. интересно было почитать вашу дискуссию |
|
09.11.2005, 13:43 | #16 |
Участник
|
Вы не привели условие вхождения в цикл. Возможно, проблемы там
__________________
Axapta v.3.0 sp5 kr2 |
|
09.11.2005, 15:44 | #17 |
Участник
|
Цитата:
Сообщение от Protey
2 simply2double
Эти методы вызывались нормально, я запихал их в цикл, чтобы они выполнялись несколько раз, теперь они вообще не выполняются Предположение: Видимо кривовато инициализируете экземпляр класса xmlDocument. Либо неправильно вставляете в него узлы. AndyD прав. Выложили бы весь код вашего цикла. По крайне мере сам скелет. Цитата:
Сообщение от Protey
2 simply2double
P.S. интересно было почитать вашу дискуссию |
|
09.11.2005, 16:17 | #18 |
Дмитрий Ерин
|
Цитата:
Сообщение от Protey
Есть метод, в конце идет команда retrun, надо еще выполнить несколько операций после return, возможно ли это?
|
|
09.11.2005, 16:51 | #19 |
программист
|
Весело тут у вас... Шутку оценил.
|
|
09.11.2005, 17:20 | #20 |
Участник
|
Цитата:
Сообщение от Ruff
Вопрос скорее философский. Из серии "есть ли жизнь после смерти?"
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Есть ли у кого-нибудь такая штучечка? | 54 | |||
Амортизация после кап.ремонта по НУ | 15 | |||
Новые поля после перехода на SP4 | 4 |
|