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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: alv grid
СообщениеДобавлено: Ср, дек 14 2011, 12:08 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа! Есть объектый грид.
В обработчике DATA_CHANGHED
нужно при определенных значениях поля F1 запрещать/разрешать ввод в поле F2 и если поле F2 разрешено на ввод и оно пустое выдать ошибку.

Что делаю.
в обработчике DATA_CHANGED при значении F1 когда F2 должно открыться на ввод
вызываю для ячейки F2 ER_DATA_CHANGED->MODIFY_STYLE с cl_gui_alv_grid=>mc_style_enabled.
Все отлично. Поле открывается на ввод.

Теперь хочу чтобы еще выдалось сообщение если поле F2 разрешено и не заполнено.
в обработчике DATA_CHANGED добавляю ER_DATA_CHANGED->ADD_PROTOCOL_ENTRY для ячейки F2.
В итоге появляется окно c ошибкой, но стиль F2 на ввод не открывается. Хотя если нажать гридовскую кнопку обновить, то оно открывается.
Я так понимаю что грид не обновляет поля, которые присутствуют в протоколе ошибок.

Это как-нибудь можно обойти?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: alv grid
СообщениеДобавлено: Ср, дек 14 2011, 14:08 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Правильно ли я понимаю, что изначально у вас F1 и F2 например пустые, F2 недоступно для ввода.
Заполняете F1 определенным значением (открывающим ввод в F2), жмете Ентер- F2 становится доступным для ввода. И вы сразу же в этом событии DATA_CHANGED проверяете заполненность F2?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: alv grid
СообщениеДобавлено: Ср, дек 14 2011, 19:45 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
bossjohn написал(а):
Правильно ли я понимаю, что изначально у вас F1 и F2 например пустые, F2 недоступно для ввода.
Заполняете F1 определенным значением (открывающим ввод в F2), жмете Ентер- F2 должно стать доступным для ввода. И вы сразу же в этом событии DATA_CHANGED проверяете заполненность F2?



Да. Я хочу в data_changed открыть F2 на ввод и сразу же прокричать пользователю что оно должно быть заполненным.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: alv grid
СообщениеДобавлено: Ср, дек 14 2011, 22:46 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Тоже много раз просили сделать ячейки "красными" сразу при отрисовке грида. Но не нашел такой возможности. Если решение есть, хотелось бы посмотреть. Приемлемое решение - сделать свой столбец с ошибками, и не выдавать стандартные ошибки.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: alv grid
СообщениеДобавлено: Чт, дек 15 2011, 11:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Code:
        error_cell-col_id      = fcat-col_pos.
*        error_cell-col_id      = sy-tabix.
*        error_cell-type        = 0. " all red, text&border,   ignores cell style
*        error_cell-type        = 1. " yellow border
*        error_cell-type        = 2. " green border
        error_cell-type        = 3. " red border
        append error_cell  to error_cells[].
...
call function 'DP_CONTROL_ASSIGN_TABLE'
       exporting
            h_cntl       = h_control_1
            medium       = cndp_medium_r3table
            propertyname = 'ErrorCells'
       tables
            data         = error_cells[]
       exceptions
            others       = 1.
где h_control_1-obj-handle:
Code:
      create object alv_1
        exporting
          i_parent          = ..
          .
        " must be right after: CREATE OBJECT ALV_1
          create object h_control_1-obj 'SAP.Functions'.
          subtract 1 from h_control_1-obj-handle.

..
    alv_1->set_ready_for_input( ).  " 4.7, comment if newer


(можно сделать проще, через внешний журнал (protocol), тогда будет работать навигация по ошибкам, но у меня не включилась подсветка ячеек, наверное нужен set_ready_for_input)
но если много ошибок - рябит в глазах, рекомендую подкрашивать шрифт через стили (layout-ctab_fname), inverse color


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: alv grid  Тема решена
СообщениеДобавлено: Чт, дек 15 2011, 11:51 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Сделал тупо.
Ошибки с типом E заменяю на тип W. Тогда грид стили в ячейках обновляет. Правда подсвечивает желтым.
При сохранении все проверки еще раз все равно прогоняются, так что если пользователь желтые ошибки проигнорирует все равно сохранить не сможет. Кривовато конечно.


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

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


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

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


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

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