Текущее время: Вс, июл 27 2025, 19:23

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 13:46 
Ассистент
Ассистент

Зарегистрирован:
Вс, дек 09 2012, 16:41
Сообщения: 37
Добрый день!
Не разобрался в следующем вопросе: в диалоговом сообщении ( генерируемого с помощью ФМ popup_to_confirm) в текст сообщения динамически нужно передать параметры.
Вроде как, можно это сделать, передав в параметр parameter динамические параметры сообщения. Колдую над этим, но ничего не выходит.

Будьте добры, подскажите, как решить этот вопрос.

Код программы:

DATA: lt_spar TYPE TABLE OF spar, " внутренняя таблица для передачи параметров в ФМ
wa_spar like line of lt_spar. " рабочая область


wa_spar-param = '1'.
wa_spar-value = lv_name. " LV_name определен ранее в коде проги

append wa_spar to lt_spar.

wa_spar-param = '2'.
wa_spar-value = lv_neg_balance. " lv_neg_balance определен ранее в коде проги

append wa_spar to lt_spar.

" calling function popup_to_confirm
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Negative balance'
text_question = 'Abonent &1 has a negative balance: &2' " пытаюсь в тексте сообщения отобразить параметры сообщения
text_button_1 = 'Ja'(001)
icon_button_1 = 'ICON_OKAY'
start_column = 25
start_row = 6
popup_type = 'ICON_MESSAGE_WARNING'
IMPORTING
answer = answer
TABLES
parameter = lt_spar
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CASE answer.
WHEN '1'.
LEAVE PROGRAM.
ENDCASE.

И еще: можно ли сделать, чтобы при генерации диалогового экрана ФМ 'POPUP_TO_CONFIRM' отображалась одна кнопка (YES), а не три -- как это происходит у меня ))

В текст сообщения ( параметр text_question ) можно каким-либо путем передать параметры сообщения ( если не использовать параметр PARAMETER ФМ) ?

Спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 14:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
У Вас неправильно выполняется передача параметров.
Что бы посмотреть, как правильно - выполните программу RSSPO120( это рекомендуется сделать в тексте хелпа к ФМ)
Кнопок всегда будет минимум 2.
Это же именно CONFIRM(т.е. предполагается ответ да\нет как минимум). Что бы скрыть 3-ю кнопку: очистить парметр DISPLAY_CANCEL_BUTTON.
Если просто уведомление надо, то вполне подойдет обычное сообщение с типом I

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 14:18 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Добрый день!
А почему Вы не хотите в строке кода
text_question = 'Abonent &1 has a negative balance: &2' " пытаюсь в тексте сообщения отобразить параметры сообщения
Заменить символьный текст на переменную, которой присваиваете нужное значение от обстоятельств?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 14:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Ой, прошу прощения, я кажется не правильно поняла Ваш вопрос


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 15:29 
Ассистент
Ассистент

Зарегистрирован:
Вс, дек 09 2012, 16:41
Сообщения: 37
У Вас неправильно выполняется передача параметров.
Что бы посмотреть, как правильно - выполните программу RSSPO120( это рекомендуется сделать в тексте хелпа к ФМ)
Кнопок всегда будет минимум 2.
Это же именно CONFIRM(т.е. предполагается ответ да\нет как минимум). Что бы скрыть 3-ю кнопку: очистить парметр DISPLAY_CANCEL_BUTTON.
Если просто уведомление надо, то вполне подойдет обычное сообщение с типом I


Спасибо. С этим разобрался.


А почему Вы не хотите в строке кода
text_question = 'Abonent &1 has a negative balance: &2' " пытаюсь в тексте сообщения отобразить параметры сообщения
Заменить символьный текст на переменную, которой присваиваете нужное значение от обстоятельств?


Как это сделать ? =)
Как должна выглядеть текстовая строка в таком случае)
Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Пн, дек 02 2013, 17:58 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Code:
concatenate 'Abonent'  lv_name 'has a negative balance:' lv_neg_balance into
text_question SEPARATED BY space.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm  Тема решена
СообщениеДобавлено: Вт, дек 03 2013, 06:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Добрый день!
У ФМ есть еще параметр DIAGNOSE_OBJECT в котором задается имя объекта. Этот объект создается в транзакции SE61, класс создаваемого объекта "текст в диалоге",в этом объекте пишите свой текст с необходимым форматированием. Имя созданного объекта пишите при вызове ФМ.
Совет: откройте через SE38 программку RSSPO120 и разберите ее, там достаточно понятно. Если нужно просто текст без форматирования, то просто в параметре при вызове ФМ пишите TEXT_QUESTION = ИмяПеременной, значение ИмяПеременной вычисляется в каком-то кусочке программы в зависимости от условий.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 09:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
Цитата:

А почему Вы не хотите в строке кода
text_question = 'Abonent &1 has a negative balance: &2' " пытаюсь в тексте сообщения отобразить параметры сообщения
Заменить символьный текст на переменную, которой присваиваете нужное значение от обстоятельств?


Как это сделать ? =)
Как должна выглядеть текстовая строка в таком случае)
Спасибо!


Еще вариант - можно воспользоваться ФМ MESSAGE_PREPARE. Позволяет использовать все богатство шаблонов сообщений системы, как стандартных, так и Z. На входе идентификаторы шаблона (область, номер) и переменные со значениями, на выходе - текст сообщения, который заносим в отдельную переменную. После этого эту переменную подаем на вход модуля POPUP_TO_CONFIRM во входной параметр text_question.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 10:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Juventine, в Вашем случае ошибка в строке
text_question = 'Abonent &1 has a negative balance: &2'
нужно взять символ апострофа с обеих сторон от параметра, т.е. это будет так:
text_question = 'Abonent &1& has a negative balance: &2&' " пытаюсь в тексте сообщения


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 10:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
Простите, я ошиблась этот символ называется амперсанд, а не апостроф


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 12:44 
Ассистент
Ассистент

Зарегистрирован:
Вс, дек 09 2012, 16:41
Сообщения: 37
Juventine, в Вашем случае ошибка в строке
text_question = 'Abonent &1 has a negative balance: &2'
нужно взять символ апострофа с обеих сторон от параметра, т.е. это будет так:
text_question = 'Abonent &1& has a negative balance: &2&' " пытаюсь в тексте сообщения


К сожалению, такой синтаксис: 'Abonent &1& has a negative balance: &2&' не дает нужных результатов. ТО есть, данная строка отобразится именно в таком виде, как прописана )

Спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 13:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 juventine: Вы программу RSSPO120 посмотрели? Там все расписано как делать. Никаких сложностей. Между & должно быть имя параметра из таблицы. Текст сам надо завести в se61 как "Текст в диалоге".

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров сообщения в функциональный модуль popup_to_confirm
СообщениеДобавлено: Вт, дек 03 2013, 13:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, янв 27 2010, 19:05
Сообщения: 118
А у меня отработало, Вы наверное этот текст не присвоили переменной:
data: text_q(20) TYPE c.
DATA: lt_spar TYPE TABLE OF spar, " внутренняя таблица для передачи параметров в ФМ
wa_spar like line of lt_spar. " рабочая область

wa_spar-param ='1'.
wa_spar-value = sy-uname.
append wa_spar to lt_spar.
text_q = 'Подтверждаете,&1&'.
CASE i_function.
WHEN 'EXIT'.
perform free_control.
set PF-STATUS space.
LEAVE PROGRAM.
WHEN 'cancel'.
perform free_control.
LEAVE TO SCREEN 0.
WHEN 'COPY'.
* perform free_control.
* set PF-STATUS space.
* LEAVE PROGRAM.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = ' Вы выбрали ДопКнопку!!!'
text_question = text_q
DISPLAY_CANCEL_BUTTON = SPACE
start_column = 40
START_ROW = 8
IMPORTING
answer = l_answer
TABLES
parameter = lt_spar

EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
WHEN OTHERS.
LEAVE TO SCREEN 0.

ENDCASE.
endform.


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

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


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

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


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

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