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

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


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

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


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

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