Текущее время: Пн, май 12 2025, 20:23

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Трабл с 'on change'
СообщениеДобавлено: Ср, сен 01 2004, 09:53 
Гость
Использую конструкцию on change of ... endon в подпрограмме, при первичном вызове все срабатывает прекрасно, но вот при повторном вызове подпрограммы чегой-то оно не работает :cry: .
Вопрос, вообще возможно ли повторное использование сей конструкции в программе? Если возможно, то что нужно почистить, обнулить?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Трабл с 'on change'
СообщениеДобавлено: Ср, сен 01 2004, 10:52 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
bmonk написал:
Использую конструкцию on change of ... endon в подпрограмме, при первичном вызове все срабатывает прекрасно

Ну что ли текст или куски текста приведи, а то мыслескоп чего-то барахлит :roll:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 12:09 
Гость
loop at g_nalog.
append g_nalog to lt_sflight.
endloop.
sort lt_sflight by BUKRS LAND KODNAL BUDJ.

* add data to tree
data: l_BUKRS_key type lvc_nkey,
l_LAND_key type lvc_nkey,
l_KODNAL_key type lvc_nkey,
l_last_key type lvc_nkey.

loop at lt_sflight into ls_sflight.
index = sy-tabix.
on change of ls_sflight-BUKRS.
perform add_BUKRS_line using ls_sflight
''
changing l_BUKRS_key.
read table lt_sflight into ls_sflight index index.
endon.
on change of ls_sflight-LAND.
perform add_LAND_line using ls_sflight
l_BUKRS_key
changing l_LAND_key.
read table lt_sflight into ls_sflight index index.
endon.
on change of ls_sflight-KODNAL.
perform add_KODNAL_line using ls_sflight
l_LAND_key
changing l_KODNAL_key.
read table lt_sflight into ls_sflight index index.
endon.
perform add_complete_line using ls_sflight
l_KODNAL_key
changing l_last_key.
endloop.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 12:26 
Гость
ну правильно, внутри же читаешь значения просматриваемой таблицы.
Читай в другую переменную!


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 12:31 
Гость
В начало подпрограммки такое:

form create_hierarchy.
data lt_sflight type znal_nalogs occurs 0.
clear ls_sflight.
...

Я так понимаю, что все должно чиститься, или не так?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 12:45 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
bmonk написал:
loop at lt_sflight into ls_sflight.
endloop.


Ну во первых действительно здесь может лучше использовать структуру с отличным именем от внутр.таблицы
bmonk написал:
on change of ls_sflight-BUKRS.

Здесь вроде все нормально, но вот здесь надо бы написать:
on change of ls_sflight-BUKRS or ls_sflight-LAND.
вместо:
bmonk написал:
on change of ls_sflight-LAND.

и далее:
on change of ls_sflight-BUKRS or ls_sflight-LAND or ls_sflight-KODNAL
вместо
bmonk написал:
on change of ls_sflight-KODNAL.

а то ведь при изменении балансовой единици, но при неизменном значении LAND или KODNAL это дело работать не будет


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 12:58 
Гость
Уважаемый, учите матчасть.
on change вообще придуман для другого, да и используете Вы его как-то хитро....

Вот Ваши конструкции: at new..., или же at end of...
Только перед употреблением почитайте help.

Там прикол только в том, что надо иметь в виду, что играет роль порядок определения внутренней таблички.
Т.е. если определение
vbeln
posnr
matnr
, то 'at new matnr' срабатывает и при изменении всех предшествующих matnr полей - vbeln и posnr.



loop at lt_sflight into ls_sflight.
index = sy-tabix.
at new bukrs.
...
endat.

Ине забудьте отсортировать внутреннюю табличку по соответствующим полям! (в вашем случае BUKRS LAND KODNAL)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 01 2004, 13:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Ну уж если человек решил использовать on-change, почему б не показать почему у него возникает ошибка? Хотя конечно, для внутренних таблиц надо использовать at, для селектов on-change. У нас кстати, древние отчеты, с версии 3.0 до сих пор юзаются с конструкцией on-change (тогда кажись еще не было at-хотя может и ошибаюсь)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB