Текущее время: Сб, июл 26 2025, 04:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое создание CheckBox
СообщениеДобавлено: Ср, ноя 02 2011, 17:07 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 02 2011, 16:37
Сообщения: 33
Здравствуйте!
Подскажите пожалуйста в каком направлении копать? Интересует динамическое создание чекбоксов (или других контролов как пример)
Например:
1) Есть таблица со статусами заявок (50 записей)
2) На каждую запись на селекционнике сделать CheckBox
Всё..

Соответственно делать select options as checkbox очень не удобно..

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Ср, ноя 02 2011, 17:11 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Dante написал(а):
Здравствуйте!
Подскажите пожалуйста в каком направлении копать? Интересует динамическое создание чекбоксов (или других контролов как пример)
Например:
1) Есть таблица со статусами заявок (50 записей)
2) На каждую запись на селекционнике сделать CheckBox
Всё..

Соответственно делать select options as checkbox очень не удобно..

Спасибо!

:shock:
Сори, не понял, Вам это нужно чтобы строку в таблице выделить? Что за табличка? alv, table control, или write-ами рисовали?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Ср, ноя 02 2011, 17:21 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 02 2011, 16:37
Сообщения: 33
Besa написал:
Dante написал(а):
Здравствуйте!
Подскажите пожалуйста в каком направлении копать? Интересует динамическое создание чекбоксов (или других контролов как пример)
Например:
1) Есть таблица со статусами заявок (50 записей)
2) На каждую запись на селекционнике сделать CheckBox
Всё..

Соответственно делать select options as checkbox очень не удобно..

Спасибо!

:shock:
Сори, не понял, Вам это нужно чтобы строку в таблице выделить? Что за табличка? alv, table control, или write-ами рисовали?


Извиняюсь, видимо не достаточно точно описал:
Есть внутренняя таблица со статусами вида:
st_id, st_name
1 Принято
2 Утверждено
3 Отклонено
Хотелось бы на селекционном экране выводить чекбоксы на каждый статус из этой таблице, чтобы пользователь мог выбрать например статусы 1 и 2 (поставив галки в чекбоксах)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Ср, ноя 02 2011, 17:29 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Dante написал(а):
Извиняюсь, видимо не достаточно точно описал:
Есть внутренняя таблица со статусами вида:
st_id, st_name
1 Принято
2 Утверждено
3 Отклонено
Хотелось бы на селекционном экране выводить чекбоксы на каждый статус из этой таблице, чтобы пользователь мог выбрать например статусы 1 и 2 (поставив галки в чекбоксах)

И опять я не понял, есть вн. таблица, хорошо, но какими средствами она выводится на экран, да еще и на селективный? Другое дело есть поле selection-options типа st_id, к нему СП(f4), по выбору СП(средство поиска) выходит табличка, в которой можно выбрать только одно значение, но можно сделать и чекбоксы туда для выбора нескольких...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Ср, ноя 02 2011, 20:06 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Можно сделать. Посмотрите как реализован экран в ФМ POPUP_GET_VALUES* - там задан цикл обработки. Сделайте таким образом подэкран, и выводите его на селекционном экране.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Чт, ноя 03 2011, 10:17 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 08 2010, 11:37
Сообщения: 322
Как я делал:
Дано: таблица которую надо вывести на экран где пользователь может выбрать 1-5 статусов
1) Создал новую структуру данных где добавил 5 полей
2) При выводе алв новой структуре в эти 5 колонок забиваю чекбоксы
3) Обрабатываю и ставлю нужное значение в исходную таблицу

П.С. За качество не ручаюсь, работа сдельная, приоритет скорость :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Чт, ноя 03 2011, 10:37 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 02 2011, 16:37
Сообщения: 33
Спасибо за ответы!
1) POPUP_GET_VALUES посмотрел похоже то что нужно, сейчас разбираюсь как там делается, видел так же динамическое создание контролов при помощи ФМ'ок:
FREE_SELECTIONS_INIT и FREE_SELECTIONS_DIALOG
вот пример кода (может кому пригодится, достаточно полезная вещь)
2) Да, сделал бы в ALV, идея рабочаяя, но просят именно чекбоксами


Code:
   
TYPE-POOLS rsds.
   
   DATA tadir_wa  TYPE tadir.
   DATA selid     TYPE  rsdynsel-selid.
   DATA field_tab TYPE TABLE OF rsdsfields.
   DATA table_tab TYPE TABLE OF rsdstabs.
   DATA table     LIKE LINE OF table_tab.
   DATA cond_tab  TYPE  rsds_twhere.
   DATA cond      LIKE LINE OF cond_tab.
   DATA dref      TYPE REF TO data.
   DATA alv       TYPE REF TO cl_salv_table.
   
   FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
   
   SELECT SINGLE *
          FROM tadir
          INTO tadir_wa
          WHERE pgmid = 'R3TR' AND
                object = 'TABL' AND
                obj_name = dbtab.
   IF sy-subrc <> 0.
     MESSAGE 'Database not found' TYPE 'I' DISPLAY LIKE 'E'.
     LEAVE PROGRAM.
   ENDIF.
   
   table-prim_tab = dbtab.
   APPEND table TO table_tab.
   CALL FUNCTION 'FREE_SELECTIONS_INIT'
     EXPORTING
       kind         = 'T'
     IMPORTING
       selection_id = selid
     TABLES
       tables_tab   = table_tab
     EXCEPTIONS
       OTHERS       = 4.
   IF sy-subrc <> 0.
     MESSAGE 'Error in initialization' TYPE 'I' DISPLAY LIKE 'E'.
     LEAVE PROGRAM.
   ENDIF.
   
   CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
     EXPORTING
       selection_id  = selid
       title         = 'Free Selection'
       as_window     = ' '
     IMPORTING
       where_clauses = cond_tab
     TABLES
       fields_tab    = field_tab
     EXCEPTIONS
       OTHERS        = 4.
   IF sy-subrc <> 0.
     MESSAGE 'No free selection created' TYPE 'I'.
     LEAVE PROGRAM.
   ENDIF.
   
   READ TABLE cond_tab WITH KEY tablename = dbtab INTO cond.
   IF sy-subrc <> 0.
     MESSAGE 'Error in condition' TYPE 'I' DISPLAY LIKE 'E'.
     LEAVE PROGRAM.
   ENDIF.
   
   CREATE DATA dref TYPE TABLE OF (dbtab).
   ASSIGN dref->* TO <table>.
   
   TRY.
       SELECT *
              FROM (dbtab)
              INTO TABLE <table>
              WHERE (cond-where_tab).
     CATCH cx_sy_dynamic_osql_error.
       MESSAGE 'Error in dynamic Open SQL' TYPE 'I' DISPLAY LIKE 'E'.
       LEAVE PROGRAM.
   ENDTRY.
   
   TRY.
       cl_salv_table=>factory(
         IMPORTING r_salv_table = alv
         CHANGING  t_table      = <table> ).
       alv->display( ).
     CATCH cx_salv_msg.
       MESSAGE 'Error in ALV display' TYPE 'I' DISPLAY LIKE 'E'.
   ENDTRY.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое создание CheckBox
СообщениеДобавлено: Чт, ноя 03 2011, 10:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 08 2010, 11:37
Сообщения: 322
Dante написал(а):
2) Да, сделал бы в ALV, идея рабочаяя, но просят именно чекбоксами



ALV с чекбоксами это уже не чекбоксы? :D

Я думаю всегда можно уговорить консультанта изменить описание постановки с "сделать через ж*пу" на "с использованием ALV" :wink:


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

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


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

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


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

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