Текущее время: Вт, мар 19 2024, 08:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Ср, июн 20 2018, 15:51 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
Добрый день.

Возник следующий вопрос. Есть разработка, в которой отчёт выводится на экран конструкцией вида:
Code:
CALL METHOD cl_salv_table=>factory
          EXPORTING
            list_display   = if_salv_c_bool_sap=>false
            r_container    = lo_cont
            container_name = 'DOCK_CONT'
          IMPORTING
            r_salv_table   = lo_alv
          CHANGING
            t_table        = me->t_data31.


Кто-нибудь сталкивался, можно ли задать конкретную ячейку доступной к редактированию (нужны именно диапазоны ячеек - не строки, не столбцы), если отчёт выведен через cl_salv_table=>factory?
Я знаю, что существует cl_gui_alv_grid=>mc_style_enabled, который работает для варианта через set_table_for_first_display.
Но, к сожалению, не знаю, куда его подавать в случае, если работаем с cl_salv_table (и есть ли вообще такая возможность).

Попробовал сделать так - получить филдкаталог, исправить его и установить обратно. Не сработало. Вот часть кода:

Code:

.....

lo_columns = lo_alv->get_columns( ).

DATA: rt_fcat TYPE lvc_t_fcat,
wa_fcat TYPE lvc_s_fcat.

rt_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
r_columns = lo_columns
r_aggregations = lo_alv->get_aggregations( ) ).

LOOP AT rt_fcat INTO wa_fcat.
IF wa_fcat-fieldname+0(1) EQ 'D' AND strlen( wa_fcat-fieldname ) EQ 3.
wa_fcat-edit = 'X'.
MODIFY rt_fcat FROM wa_fcat.
ENDIF.
ENDLOOP.

cl_salv_controller_metadata=>set_lvc_fieldcatalog(
t_fieldcatalog = rt_fcat
r_columns = lo_columns
r_aggregations = lo_alv->get_aggregations( ) ).

.......

    lo_columns->set_optimize( ).
    lo_alv->display( ).


Всё компилится и в отладке видно, что rt_fcat-edit для нужных полей заполнен крестиком, однако отчёт всё равно readonly полностью.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Ср, июн 20 2018, 16:12 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
SALV Editable

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Чт, июн 21 2018, 08:42 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
ghost написал:


Спасибо за ссылку. Ранее она мне уже попадалась, но я не очень внимательно вчитался в статью, потому что, на первый взгляд, она не решала мою проблему (сделать редактируемой конкретную ячейку из таблицы).
Сейчас вчитался и убедился, что не решает. Вы подразумеваете, что такой возможности в САП не существует?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table  Тема решена
СообщениеДобавлено: Чт, июн 21 2018, 10:55 
Ассистент
Ассистент

Зарегистрирован:
Пт, фев 01 2013, 10:27
Сообщения: 35
boreich написал(а):
Вы подразумеваете, что такой возможности в САП не существует?


"Официально" SALV - не редактируемый. Всё что описано в статьях - это обходные пути.

Может быть легче будет переписать на cl_gui_alv_grid, если ALV не сложный?
Ибо хотелки пользователей имеют свойство расти..


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Чт, июн 21 2018, 11:02 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
Rizor написал(а):
boreich написал(а):
Вы подразумеваете, что такой возможности в САП не существует?


"Официально" SALV - не редактируемый. Всё что описано в статьях - это обходные пути.

Может быть легче будет переписать на cl_gui_alv_grid, если ALV не сложный?
Ибо хотелки пользователей имеют свойство расти..


Да, alv довольно замороченный, но, скорее всего, это действительно сэкономит времени в будущем. Спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Чт, июн 21 2018, 14:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
По ситуации(например если одно поле) - можно сделать ввод данных через кнопку или линку. Ну например нажали на ячейку, появилось окошко для ввода данных, или по кнопке с тулбара. Можно вывести диалог редактирования записи в отдельное окно в целом.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Редактируемые ячейки в cl_salv_table
СообщениеДобавлено: Пт, июн 22 2018, 14:27 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
Небольшой оффтоп - от класса cl_salv_table отказался, ячейки отдельные получилось задействовать, но возникло ещё одно неудобство.
По логике отчёта, необходимо красить строки в опр. цвета и некоторые из ячеек этих строк должны быть доступны для редактирования.
Покрасить строку сложности нет - проблема возникает из-за того, что в дальнейшем это выглядит "не эстетично":

Изображение

В типе lvc_s_styl есть поля style...style4, однако первое из них задействовано константой cl_gui_alv_grid=>mc_style_disabled, а остальные как-будто игнорируются.
Может, у кого то есть рабочий пример, где эти поля также используются? Гуглил часа два - ничего путного не попалось.

Самое смешное, что cl_gui_alv_grid=>mc_style_enabled также не отрабатывает корректно (если в филдкаталоге не прописан эдит) - если бы работало так, то можно было бы в редактируемые в style писать cl_gui_alv_grid=>mc_style_enabled, а для остальных в style - нужный цвет.


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

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


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

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


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

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