SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

вопрос по Editable ALV Grid


Goto page 1, 2  Next
 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Fri Aug 13, 2010 9:31 am    Post subject: вопрос по Editable ALV Grid Reply with quote

Добрый день,коллеги!
Проконсультируйте,пожалуйста. Есть ALV Grid . В нем редактируются 3 столбца из 6. Возможно ли сделать построчное редактирование, т.е. например, первые 4 строки не редактируемые, последующие 5 редактируемые, далее одна не редактируемая, затем 3 редактируемые и т.д.

Заранее благодарен.

п.с. Забыл добавить: использую класс CL_GUI_ALV_GRID
Back to top
View user's profile Send private message
ludvix
Участник
Участник



Joined: 23 Oct 2009
Posts: 6
Location: Moscow

PostPosted: Fri Aug 13, 2010 10:07 am    Post subject: Reply with quote

Возможно.
Чтобы сделать поле не редактируемым в какой-либо строке, если столбец во всей таблице доступен для редактирования, нужно:

1. В таблицу с данными добавляем поле-таблицу CELLTAB типа LVC_T_STYL.

2. Указываем, что это поле является таблицей стилей:
gs_layout-stylefname = 'CELLTAB'.

3. В строке, в которой поле нужно сделать не редактируемым в таблицу CELLTAB нужно добавить следующее значение:

DATA: ls_alv_cell_style TYPE lvc_s_styl,
lt_alv_style_list TYPE lvc_t_styl.

ls_alv_cell_style-fieldname = <имя поля>.
ls_alv_cell_style-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_alv_cell_style INTO TABLE lt_alv_style_list.

LOOP AT gt_grid. “gt_grid – таблица с данными
REFRESH: gt_grid-celltab.
IF <Условие>.
APPEND LINES OF lt_alv_style_list TO gt_grid-celltab.
ENDIF.
MODIFY gt_grid.
ENDLOOP.
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Fri Aug 13, 2010 12:01 pm    Post subject: Reply with quote

ludvix

Большое спасибо за такое подробное объяснение!!!
Всё получилось.
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Fri Aug 13, 2010 4:10 pm    Post subject: Reply with quote

Не подскажете еще один момент?
После редактирования AVL Grida выполняется проверка на правильность вводимых значений. Возможно ли при несоответствии окрасить ячейки, в которых неправильные значения, в другой цвет. Как окрасить ячейки перед выводом я знаю, а вот после проверки,что-то никак не получается Embarassed

т.е. иными словами можно ли закрасить нужные строки (ячейки) после
CHECK_CHANGED_DATA.

Заранее спасибо!
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Fri Aug 13, 2010 4:33 pm    Post subject: Reply with quote

Code:
data: is_stable type lvc_s_stbl value 'XX'.
...
g_grid->refresh_table_display( is_stable = is_stable i_soft_refresh = 'X' )

" g_grid type ref to cl_gui_alv_grid

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Sun Aug 15, 2010 2:07 am    Post subject: Reply with quote

В обработчике события DATA_CHANGED вы можете воспользоваться методами MODIFY_CELL и MODIFY_STYLE интерфейса CL_ALV_CHANGED_DATA_PROTOCOL.
_________________
ABAP/4 You
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Mon Aug 16, 2010 4:12 pm    Post subject: Reply with quote

Dmitriy
не пинайте за глупые вопросы, я только учусь Smile

я не совсем понял, как мне передать значение цвета для этой ячейки Embarassed

в приведенных вами методах,такого параметра нет.

в примерах на сайте цвет задается перед выводом ALV.
Все мои попытки передать параметр цвета(по примерам) после ввода значений( значения 3-х ячеек после ввода суммируются и, в случае не совпадения суммы,разница выводится в ячейку,цвет которой нужно изменить) тщетны.
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Mon Aug 16, 2010 5:11 pm    Post subject: Reply with quote

Fami4 wrote:
Dmitriy
не пинайте за глупые вопросы, я только учусь Smile

я не совсем понял, как мне передать значение цвета для этой ячейки Embarassed

в приведенных вами методах,такого параметра нет.

в примерах на сайте цвет задается перед выводом ALV.
Все мои попытки передать параметр цвета(по примерам) после ввода значений( значения 3-х ячеек после ввода суммируются и, в случае не совпадения суммы,разница выводится в ячейку,цвет которой нужно изменить) тщетны.

На самом деле вопросы нормальные. Вы как вообще ячейки до первого вывода закрашиваете? Так вот те же самые параметры нужно будет выставить уже после проверок и обновить объект. Я использую как раз обозначенные методы, т.е. в событии DATA_CHANGED обрабатываю изменения "поштучно", а для подобных ситуаций всегда менял цвет всей строки. Так что учусь вместе с вами. Это же ALV Grid! Wink

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Tue Aug 17, 2010 9:52 am    Post subject: Reply with quote

Dmitriy

Большое спасибо за помощь!!!

Все отлично работает.

Для окраски нужных ячеек отследил изменения в нужном столбце , затем изменил цвет ячеек,где значения не были начальными (я использовал loop at ... where...) .
Да,еще один момент: обязательно нужно REFRESH wa_itab-colortab (я пропустил и долго с этим возился Embarassed ).

п.с. попутно нашел небольшие огрехи в коде Rolling Eyes
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Tue Aug 17, 2010 4:18 pm    Post subject: Reply with quote

Не за что.
http://www.sapnet.ru/viewtopic.php?t=3727&highlight=colortab
Этот "пример на сайте" имели ввиду?

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Tue Aug 17, 2010 4:52 pm    Post subject: Reply with quote

Уважаемые модераторы, удалите, пожалуйста, это сообщение

Last edited by Fami4 on Tue Aug 17, 2010 4:59 pm; edited 2 times in total
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Tue Aug 17, 2010 4:57 pm    Post subject: Reply with quote

Quote:
Не за что.
http://www.sapnet.ru/viewtopic.php?t=3727&highlight=colortab
Этот "пример на сайте" имели ввиду?

Да,это он.

По Editable ALV Grid использовал :
http://www.sapnet.ru/viewtopic.php?t=64
но тут не используют метод:
Code:
 CALL METHOD o_GRID->CHECK_CHANGED_DATA.

хотя надо бы Confused

так же:
http://www.sapnet.ru/viewtopic.php?t=968
кстати, если бы повнимательнее изучил этот пример,то первый вопрос в этой теме отпал бы сам собой Embarassed
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Tue Aug 17, 2010 7:34 pm    Post subject: Reply with quote

Fami4 wrote:
По Editable ALV Grid использовал :
http://www.sapnet.ru/viewtopic.php?t=64
но тут не используют метод:
Code:
 CALL METHOD o_GRID->CHECK_CHANGED_DATA.

хотя надо бы Confused

Значит не обязательно именно этот метод использовать. Посмотрите его в отладке и событие DATA_CHANGED.

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Wed Aug 18, 2010 10:28 am    Post subject: Reply with quote

Dmitriy
я в очередной раз смотрю в книгу и ничего не вижу)

да,вы правы, в примере можно обойтись и без этого метода
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Wed Aug 18, 2010 12:18 pm    Post subject: Reply with quote

Fami4 wrote:
в примере можно обойтись и без этого метода

Да, как раз без этого метода и можно иногда обойтись. Wink

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.