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

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


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

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


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

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