Текущее время: Пн, авг 04 2025, 08:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Обработка полей экрана
СообщениеДобавлено: Ср, фев 06 2008, 15:37 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Добрый день!

Подскажите, пожалуйста, в чем проблема.
Есть два поля на экране ztable-code и поле экрана name.
Необходимо чтобы при выборе или заполнении поля code проставлялось соответствующее name.
Пробовал обработать в ПАИ, но почемуто не одна конструкция
field ... module ... (on). не срабатывает. Срабатывает только при выходе с экрана. Как добиться срабатывания моего модуля?

Спасибо.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
PAI модуль срабатывает только после того, как юзер нажал какую-нибудь "существенную" кнопку - Enter, функциональные, или мышкой кликнул по какой-нить кнопке.
Еще можно использовать обновление текстовых полей через search help (F4): если search help возвращает более одного параметра и текстовое поле (name) совпадает по имени/элекменту данных с этим параметром, то оно будет заполнено после выбора.
Либо вызывать Search help самому из модуля Process on value request и потом явно обновлять поле при помощи DYNP_VALUES_UPDATE.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 16:00 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Сергей Королев написал:

Еще можно использовать обновление текстовых полей через search help (F4): если search help возвращает более одного параметра и текстовое поле (name) совпадает по имени/элекменту данных с этим параметром, то оно будет заполнено после выбора.
Либо вызывать Search help самому из модуля Process on value request и потом явно обновлять поле при помощи DYNP_VALUES_UPDATE.

SerchHelp вызывается, но поле не совпадает ((
А если я буду делать через Process Value request мне надо будет свой хелп создавать? Просто я использую стандартный (KRED_C)... Или можно как нибудь его вызвать? Где тогда будет лежать значение поля? в поле экрана ztable-code в момент срабатывания модуля его еще нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 16:28 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
В модуле POV сделайте вызов ФМ F4IF_FIELD_VALUE_REQUEST. На вход подайте название нужного СП (KRED_C я так понимаю). На выходе - обработайте полученные данные и проапдейте экран, как Вам Сергей Королев предлагал, через DYNP_VALUES_UPDATE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 17:38 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
вызываю DYNP_VALUES_UPDATE с уже измененными значениями полей экрана, но на экране поля остаются пустыми...
вроде все делаю правильно:
Code:
  DATA:
    lc_repid       TYPE sy-repid,
    lc_dynr        TYPE sy-dynnr,
    lc_dnum      TYPE  d020s-dnum,
    ltb_fields     TYPE STANDARD TABLE OF dynpread WITH HEADER LINE,
    ltb_ret         TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.

  lc_repid = 'SAPLZSL_090_BTE'.
  lc_dynr = sy-dynnr.
  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
      tabname                   = 'LFA1'
      fieldname                 = 'LIFNR'
      searchhelp                = 'KRED_C'
      dynpprog                  = lc_repid
      dynpnr                    = lc_dynr
      dynprofield               = 'TBWHERE'
    TABLES
      return_tab                = ltb_ret
            .
  zfi_090_tsb-tbwhere = ltb_ret-fieldval.

  SELECT SINGLE name1
  INTO tbwhere
  FROM lfa1
  WHERE lifnr = zfi_090_tsb-tbwhere.

  ltb_fields-fieldname = 'ZFI_090_TSB-TBWHERE'.
  APPEND ltb_fields.
  ltb_fields-fieldname = 'TBWHERE'.
  APPEND ltb_fields.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'
    EXPORTING
      dyname                     = lc_repid
      dynumb                     = lc_dynr
    TABLES
      dynpfields                 = ltb_fields
            .
  IF sy-subrc <> 0.
  ENDIF.


подскажите, что делаю не так?


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

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
все получилось ))
Всем спасибо.


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

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


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

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


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

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