Текущее время: Пт, июл 25 2025, 05:41

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


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

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


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

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