Текущее время: Сб, авг 02 2025, 22:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая установка экранного поля, как комбобокса
СообщениеДобавлено: Чт, фев 12 2009, 17:25 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Всем добрый день.
Делаю свою версию ФМ POPUP_GET_VALUES .
Хочу, чтобы если у поля есть постоянные значения домена, то стиль поля менялся на комбобокс ("Listbox with keys").

Проблемы.
1.) Не получается вывести с ключами. Т.е., работает только как обычный "Listbox" .
2.) Не присваивается значение соответствующему полю ZSVALD-VALUE.

Вопрос: где грабли?

Код.
LZDIALOG_BOXESF60:
Code:
FORM p100_show.
....
  LOOP AT SCREEN.
    CASE screen-name.
      WHEN 'ZSVALD-VALUE'.
...
        PERFORM fill_combo .
      WHEN 'ZSVALD-KEYTEXT'.
...
    ENDCASE.
    MODIFY SCREEN.
    IF screen-values_in_combo = '1' .
      PERFORM fill_combo2 .
    ENDIF.
  ENDLOOP.


Перформы:
Code:
DATA: BEGIN OF ltd_domvalues OCCURS 0
     , domvalue TYPE domvalue_l
     , valtxt   TYPE val_text
    , END OF ltd_domvalues
    .

FORM fill_combo .
  DATA: lp_domvalue TYPE domvalue_l
     ,  lp_valtxt   TYPE val_text
     .

  REFRESH ltd_domvalues .
  lp_domvalue = svali-value .
  IF NOT svali-domname IS INITIAL .

    SELECT domvalue_l INTO ltd_domvalues-domvalue
      FROM dd07l
     WHERE domname EQ svali-domname .

      CALL FUNCTION 'GET_TEXT_DOMVALUE'
        EXPORTING
          domname   = svali-domname
          domvalue  = ltd_domvalues-domvalue
          langu     = sy-langu
        IMPORTING
          txt       = ltd_domvalues-valtxt
        EXCEPTIONS
          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.
      ELSE.
        APPEND ltd_domvalues .
      ENDIF.
    ENDSELECT .
  ENDIF.

  CHECK NOT ltd_domvalues[] IS INITIAL .
  screen-values_in_combo = '1' .
  screen-length = 25 .
ENDFORM.                    " fill_combo
*&---------------------------------------------------------------------*
*&      Form  fill_combo2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_combo2 .
  DATA: l_name      TYPE  vrm_id,
        lt_list      TYPE vrm_values,
        lwa_value    LIKE LINE OF lt_list .

  LOOP AT ltd_domvalues .
    lwa_value-key = ltd_domvalues-domvalue .
    lwa_value-text = ltd_domvalues-valtxt .
    APPEND lwa_value TO lt_list .
  ENDLOOP .

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = 'ZSVALD-VALUE'
      values = lt_list.
ENDFORM.                    " fill_combo2

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическая установка экранного поля, как комбобокса
СообщениеДобавлено: Чт, фев 12 2009, 18:36 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Уже разобрался сам.

На всякий случай - спасибо всем, кто собирался помочь.

По поводу стиля комбобокса стормозил:
Code:
    CONCATENATE lwa_value-key ':' ltd_domvalues-valtxt INTO lwa_value-text
      SEPARATED BY space .

В fill_combo2. И все, собсно.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


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

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


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

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


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

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