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

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


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

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


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

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