Текущее время: Чт, мар 28 2024, 16:12

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


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

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


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

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