Текущее время: Пн, июл 21 2025, 02:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Спрятать закладки в кнопке extentions в select-options
СообщениеДобавлено: Вт, дек 20 2005, 06:52 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 02 2004, 10:06
Сообщения: 136
Хочу спрятать закладки с интервалами и с невключеными значениями.
мне почему то кажется, чтоя где-то читал, как это можно сделать, но найти не могу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 20 2005, 08:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Уж сколько раз твердили миру... :)
Цитата:
Параметры Selection-Screen'а можно всячески ограничивать. Для этого можно воспользоваться ФМ SELECT_OPTIONS_RESTRICT.

Ниже приведен пример, ограничивающий выбор интервалов в Select-Options (но не многократный выбор !). Подробнее - см. справку к Функциональному Модулю.

Пример:
Code:
TABLES t001.

SELECT-OPTIONS s_parms FOR t001-bukrs.

* Вспомогательные типы
TYPE-POOLS sscr.

* Объект RESTRICTION параметра
DATA restrict TYPE sscr_restrict.

* Обязательные подобъекты объекта RESTRICT
DATA: opt_list TYPE sscr_opt_list,
      ass      TYPE sscr_ass.


INITIALIZATION.
* только ПАРАМЕТР
  CLEAR opt_list.
  MOVE 'JUST_EQ' TO opt_list-name.
  MOVE 'X' TO opt_list-options-eq.
  APPEND opt_list TO restrict-opt_list_tab.

* применяется только к S_PARAMS
MOVE: 'S' TO ass-kind,
      'S_PARMS' TO ass-name,
      '*' TO ass-sg_main,
      'JUST_EQ' TO ass-op_main.
APPEND ass TO restrict-ass_tab.

* ограничение вызовом ФМ
  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction                = restrict
    EXCEPTIONS
      too_late                   = 1
      repeated                   = 2
      not_during_submit          = 3
      db_call_after_report_call  = 4
      selopt_without_options     = 5
      selopt_without_signs       = 6
      invalid_sign               = 7
      report_call_after_db_error = 8
      empty_option_list          = 9
      invalid_kind               = 10
      repeated_kind_a            = 11
      OTHERS                     = 12.
  IF sy-subrc NE 0.
*   TODO: обработка ошибок
  ENDIF.


AT SELECTION-SCREEN OUTPUT.
* подавить вывод на экран HIGH-параметра
  LOOP AT SCREEN.
    IF screen-name EQ 'S_PARMS-HIGH'.
      screen-invisible = '1'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.


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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 20 2005, 10:41 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 02 2004, 10:06
Сообщения: 136
ОНО! ЭТО ОНО! :)
ЧЕСТНОЕ СЛОВО, ПРЕЖДЕ ЧЕМ СПРОСИТЬ ИСКАЛ.
Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 21 2005, 03:21 
Гость
я видимо чего-то не понял, а no-intervals и no-extensions тут не канают ?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 21 2005, 10:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
no intervals убирает поле HIGH с экрана, но если на кнопку extensions нажать, то там все равно можно ввести интервалы. А вот про SELECT_OPTIONS_RESTRICT я и не знал.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 22 2005, 02:15 
Гость
Сергей Королев написал:
no intervals убирает поле HIGH с экрана, но если на кнопку extensions нажать, то там все равно можно ввести интервалы. А вот про SELECT_OPTIONS_RESTRICT я и не знал.


а точно ... хотя зачем уж так сильно то извращаться :) ...
зы: тож не знал ...


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 16 2008, 12:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 15 2007, 10:40
Сообщения: 172
Здравствуйте!
Решил не создавать новую тему.. эта, думаю, подходящая тема..
Хотел в множественном выборе скрыть вкладки "Отдельные значения" и "Интервалы" с красными светофорами, то есть, вкладки которые позволяют перечислять исключаемые значения.
Экран - свой нарисованный(скажем 110). Там создал подэкран subscr1. В главной программе определил так же подэкран с пом. конструкции
Code:
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK a.
SELECT-OPTIONS:
s_field1 FOR table1-field1,
s_field2 FOR table1-field2.
SELECTION-SCREEN END OF BLOCK a.
SELECTION-SCREEN END OF SCREEN 1001 . 

и в PBO и PAI включил
CALL SUBSCREEN subscr1 INCLUDING sy-cprog '1001'.
и
CALL SUBSCREEN subscr1 соответственно.

Подэкран нормально отображается, там появились поля s_field1, s_field2 с кнопками множественного выбора. Хотелось бы убрать возможность исключать значения, то есть чтобы возможно было только перечислять нужные.
1) Для этого интересовался опциями SELECT-OPTIONS(NO-EXTENSION, NO INTERVALS - первый скрывает вообще кнопку множественного выбора, а второй скрывает интервалы в множественного выбора, но возможность перечислять исключаемые значения остается).
2) Попробовал использовать ФМ SELECT_OPTIONS_RESTRICT но не помогает. Может я не правильно пользуюсь? вот фрагмент настройки:


Code:
  ls_opt_list-name       = 'JUST_EQ' .
  ls_opt_list-options-eq = 'X' .
  ls_opt_list-options-nb = space.
  ls_opt_list-options-ne = space.
  APPEND ls_opt_list TO ls_restrict-opt_list_tab .
  CLEAR ls_opt_list.

  ls_ass-kind = 'S' .
  ls_ass-name = 's_field1' .
  ls_ass-sg_main = 'I' .
  ls_ass-sg_addy = SPACE.
  ls_ass-op_main = 'JUST_EQ'.
  APPEND ls_ass TO ls_restrict-ass_tab .
  CLEAR ls_ass .

данный код я поставил после INITIALIZATION.
затем вызываю ФМ SELECT_OPTIONS_RESTRICT.

Видимо тут дело в типе программы. (так как INITIALIZATION. используется только для выполнимых программ). У меня главная программа -пулмодуль. Ставил в PBO нужного экрана - не срабатывает.. :(


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

Зарегистрирован:
Пт, июн 15 2007, 10:40
Сообщения: 172
похоже придется запрограммировать кнопку множественного выбора :-)


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

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


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

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


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

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