Текущее время: Вс, июл 20 2025, 22:45

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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