Текущее время: Сб, июл 19 2025, 20:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Проблемма с RADIO BUTTONS
СообщениеДобавлено: Пн, фев 27 2006, 19:42 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Есть
1. два связанных RADIOBUTTON: Фактура: RADDOC1 и Договора: RADDOC2
2. поле ввода Numdoc
3. Средство поиска HS, относящееся к полю Numdoc

Задача в зависимости от выбора RADDOC1 или RADDOC2 в поле Numdoc по F4 должно вызываться свой запрос на формирование списка документов, отображающихся в HS.

IF RADDOC1 = 'X'. " если кнопка "Фактура"
SELECT * FROM T1 INTO lst_fact.
ELSEIF RADDOC2 = 'X'. " если кнопка "Договор"
SELECT * FROM T2 INTO lst_fact.
ENDIF. " IF RAD_FAC NE space.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'VBELN'
value_org = 'S'
DYNPROFIELD = 'Numdoc'
TABLES
value_tab = lst_fact
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.


Проблема:
когда RADIOBUTTONS переключаются мышкой, затем с помощью мышки или таба курсор переводиться в поле Numdoc, то значение RADDOC1 и RADDOC2 не изменяются(их значения не соответствуют экранному отобржению), и по F4 срабатывает одна и таже ветьв запроса.
Если нажать сначала Enter, а затем F4, то RADIOBUTTONS принимают правильные значения(как и отмечены на экране) и ветви выполняются правильно

Т.е. в первом случае на экране Фактура: ( ) и Договор:(*)
в отладчике: RADDOC1 = 'X', RADDOC2 = ' '

Во втором случае: Фактура: ( ) и Договор:(*)
в отладчике: RADDOC1 = ' ', RADDOC2 = 'X '

В чем прикол? то ли подключить что-то надо, то ли ABAP по жизни такой?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 27 2006, 23:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Цитата:
В чем прикол? то ли подключить что-то надо, то ли ABAP по жизни такой?


Прикол можно посмотреть в программе DEMO_DYNPRO_F4_HELP_MODULE.

Hint: А особенно советую приколоться над ФМ DYNP_VALUES_READ

:)

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 10:59 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Основной вопрос был не в том, как SH вызывать( у меня просто так пример совпал. вместо SH может стоять любой код), а почему при переключении RADIOBUTTONS мышкой не меняются их значение пока Enter не нажмешь.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 11:13 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
При помощи ФМ DYNP_VALUES_READ ты можешь считать значения своих переменных.
В случае с мышой, на экране радио-кнопки обновились, а значения в переменных RADDOC1 и, как там ее, нет.

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 12:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Герман написал(а):
Основной вопрос был не в том, как SH вызывать( у меня просто так пример совпал. вместо SH может стоять любой код), а почему при переключении RADIOBUTTONS мышкой не меняются их значение пока Enter не нажмешь.

Присвойте одной из кнопок группы USER-COMMAND ... и будет счастье.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 15:20 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
nicky555 написал:
Герман написал(а):
Основной вопрос был не в том, как SH вызывать( у меня просто так пример совпал. вместо SH может стоять любой код), а почему при переключении RADIOBUTTONS мышкой не меняются их значение пока Enter не нажмешь.

Присвойте одной из кнопок группы USER-COMMAND ... и будет счастье.

user command присваивается сразу группе кнопок=)

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 15:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
смешно :)
я имел ввиду указание дополнения USER-COMMAND у одного из параметров
PARAMETERS: rb_01 RADIOBUTTON GROUP xxx ...
Естественно, команда будет инициироваться при выборе любой кнопки группы :D

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 16:09 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Виктор(Минск) написал:
При помощи ФМ DYNP_VALUES_READ ты можешь считать значения своих переменных.
В случае с мышой, на экране радио-кнопки обновились, а значения в переменных RADDOC1 и, как там ее, нет.


Спасибо большое, суть понял, все получилось. Теперь еще попробую сделать другой вариант, как подсказали другие форумчане, через USER COMMAND


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 16:36 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
nicky555 написал:
Герман написал(а):
Основной вопрос был не в том, как SH вызывать( у меня просто так пример совпал. вместо SH может стоять любой код), а почему при переключении RADIOBUTTONS мышкой не меняются их значение пока Enter не нажмешь.

Присвойте одной из кнопок группы USER-COMMAND ... и будет счастье.


Спасибо большое, это вариант более простой и правильный. В этом случае даже нигде обработки не надо писать. Срабатывает команда аналогичная нажатию ENTER и значения кнопок устанавливаются правильно. В любом месте программы достаточно сделать проверку:

IF RADDOC1 = 'X'.
........
ELSEIF RADDOC2 = 'X'.
......
ENDIF.

P.S.Хотя первый тоже многому научил
.........


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 28 2006, 18:29 
Специалист
Специалист

Зарегистрирован:
Пт, апр 08 2005, 10:27
Сообщения: 125
Пол: Мужской
а зачем лишние проверки
IF RADDOC1 = 'X'.
........
ELSEIF RADDOC2 = 'X'.
......
ENDIF.
если RADDOC1 = 'X', то RADDOC2 однозначно <> 'X' и наоборот?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 01 2006, 09:25 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
Bit написал:
а зачем лишние проверки
IF RADDOC1 = 'X'.
........
ELSEIF RADDOC2 = 'X'.
......
ENDIF.
если RADDOC1 = 'X', то RADDOC2 однозначно <> 'X' и наоборот?


Я знаю. Просто у меня кнопок поболее будет и их проверку я заменил ".....". В оригинале:

IF RADDOC1 = 'X'.
........
ELSEIF RADDOC2 = 'X'.
......
ELSEIF RADDOC3 = 'X'.
......
ELSEIF RADDOC4 = 'X'.
......
и т.д.
ENDIF.

:)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 01 2006, 09:47 
Гость
Тогда уж рациональнее сделать так:

CASE 'X'.
WHEN RADDOC1.
....
WHEN RADDOC2.
....
WHEN RADDOC3.
....
ENDCASE.

:) :wink:


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

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


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

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


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

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