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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Редактирование в ALV
СообщениеДобавлено: Пт, апр 08 2005, 12:45 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 05 2005, 17:02
Сообщения: 70
Имеется полноэкранная АЛВ (создана ф-ей REUSE_ALV_GRID_DISPLAY) Необходимо организовать редактирование "по месту". Я, конечно, понимаю, что надо бы отлавливать события. Но, например, slis_ev_data_changed возникает не после изменения конкретной ячейки, а... непонятно, по какому принципу... Да и как применять функцию-обработчик не разобрался :oops:
Подскажите, в какую сторону копать? Желательно, с примерами :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 08 2005, 15:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Поищи по форуму - уже такое обсуждалось.
Смысл в отлове изменений в сетке в CALLBACK_USER_COMMAND по команде пользователя (например, "Сохранить").
Есть ФМ типа *LVC_GLOBALS_GET* (точно не помню названия :oops: ) - получаешь с его помощью ссылку на объект класса cl_gui_alv_grid. Дальше вызов метода для проверки изменений - это даст тебе обновление внутренней таблицы измененными значениями.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 08 2005, 16:04 
Гость
Гррр. самый простой спсособ:

Code:
FORM display_alv.

  DATA: fieldcat TYPE SLIS_T_FIELDCAT_ALV,
        fc_str   TYPE SLIS_FIELDCAT_ALV,
        layout   TYPE SLIS_LAYOUT_ALV,
        title    TYPE LVC_TITLE,
        repid    LIKE sy-repid,
        variant  LIKE DISVARIANT
        .
  repid = sy-repid.
  layout-colwidth_optimize = 'X'.
  layout-edit = 'X'.
  variant-report = repid.

* create field catalog
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     I_PROGRAM_NAME          = repid
     I_INTERNAL_TABNAME      = 'ITAB'
     I_INCLNAME              = repid
    CHANGING
      CT_FIELDCAT            = fieldcat
   EXCEPTIONS
     INCONSISTENT_INTERFACE  = 1
     PROGRAM_ERROR           = 2
     OTHERS                  = 3
          .

* update field catalog (hide/reposition/etc)
  LOOP AT fieldcat INTO fc_str.

    CASE fc_str-fieldname.
      WHEN 'MARK'.
        fc_str-ddictxt   = 'M'.
        fc_str-seltext_m = 'Выводить'.
        fc_str-checkbox = 'X'.
        fc_str-edit = 'X'.
      WHEN 'LBKUM'.
        fc_str-input = 'X'.
        fc_str-edit = 'X'.
      WHEN 'VERPR'.
        fc_str-input = 'X'.
        fc_str-edit = 'X'.
      WHEN OTHERS.
        fc_str-input = ' '.
        fc_str-edit = ' '.
    ENDCASE.

    MODIFY fieldcat FROM fc_str.
  ENDLOOP.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     I_GRID_TITLE        = title
     IT_FIELDCAT         = fieldcat
     IS_LAYOUT           = layout
     I_SAVE              = 'A'
     IS_VARIANT          = variant
     I_CALLBACK_PROGRAM       = repid
     I_CALLBACK_PF_STATUS_SET = 'OUTPUTALV_STATUS'
     I_CALLBACK_USER_COMMAND  = 'OUTPUTALV_CMD'
    TABLES
      T_OUTTAB    = itab
   EXCEPTIONS
     PROGRAM_ERROR = 1
     OTHERS        = 2
  .
ENDFORM.


Весь перенос в itab делается автоматически :)
Одна фишка - нужно после нового ввода нажать ентер в поле, дабы грид отработал ввод и сделал перенос.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 08 2005, 16:27 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 05 2005, 17:02
Сообщения: 70
Замечательно. То, что нужно! Но... Как я могу определить, какая запись у меня изменилась? Не лупиться же по всей таблице... :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 08 2005, 16:35 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 05 2005, 17:02
Сообщения: 70
Маленькое замечание - лучше установить layout-edit = ' '. Иначе юзер может писать даже в полях, которые закрыты на редактирование.

И ещё вопрос - а можно как-то запретить редактирование конкретных строк?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, апр 09 2005, 04:56 
Гость
Если надо, чтобы обновление таблицы происходило после изменений в
любой ячейке грида, то можешь поставить в структуре I_GRID_SETTINGS в поле EDT_CLL_CB значение X и будет тебе счастье
(вместе с хорошими тормозами, если таблица большая :D )



Code:
  ......

  ls_gridset-edt_cll_cb      = 'X'.

  ls_events-name = slis_ev_data_changed.
  ls_events-form  = 'ON_CHANGE'.
  append ls_events to lt_events.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       .....
      I_GRID_SETTINGS              = ls_gridset
      IT_EVENTS                    = lt_events
    TABLES
      .....
    EXCEPTIONS
      PROGRAM_ERROR             = 1
      OTHERS                    = 2.



FORM ON_CHANGE USING rr_data_changed type ref to
                                                   cl_alv_changed_data_protocol.
field-symbols <ft> type "твоя таблица".

assign rr_data_changed->mp_mod_rows->* to <ft>.

.......
обработка
.......
ENDFORM.


При изменении любой ячейки в гриде программа перейдет в форму
ON_CHANGE, а там уже делай что хочешь :twisted:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 11 2005, 10:47 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 05 2005, 17:02
Сообщения: 70
Спасибо, это то, что нужно!
Но один вопрос остаётся -
Цитата:
а можно как-то запретить редактирование конкретных строк?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 12 2005, 05:04 
Гость
Можно, но в REUSE_ALV_GRID_DISPLAY навряд ли :( .
Попробуй использовать REUSE_ALV_GRID_DISPLAY_LVC, а лучше
переписать используя класс CL_GUI_ALV_GRID.

У класса и у ФМ REUSE...._LVC в IS_LAYOUT есть поле STYLEFNAME, с его помощью можно запретить редактирование в любой ячейке грида. Пример в 4.6с - BCALV_EDIT_02 (подпрограмма FILL_CELLTAB)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: re:
СообщениеДобавлено: Ср, янв 18 2006, 18:44 
Гость
куплю бизнес бизнес план проекта идеи малого бизнеса бизнес план проекта поддержка бизнеса деревянные окна со стеклопакетами идеи домашнего бизнеса поддержка бизнеса бизнес курсы расчет стеклопакетов куплю бизнес начать бизнес идеи домашнего бизнеса куплю стеклопакет бизнес курсы поддержка бизнеса бизнес предложения цена стеклопакеты бизнес центры петербурга кредитование бизнеса бизнес журнал пластиковые стеклопакеты пример бизнес поддержка бизнеса примеры бизнес план поддержка малого бизнеса идеи малого бизнеса психология бизнеса поддержка малого бизнеса ремонт стеклопакетов бизнес туризм стеклопакет линия перспективный бизнес бизнес предложения институт бизнеса стоимость стеклопакета туристический бизнес бизнес образование примеры бизнес план стеклопакеты санкт петербург бизнес образование пластиковые стеклопакеты бизнес план проекта бизнес структуры примеры бизнес план кредитование малого бизнеса бизнес книга идеи бизнеса модельный бизнес инвестиция бизнеса бизнес туризм примеры бизнес план куплю бизнес бизнес сайт бизнес курсы бизнес справочник безопасность бизнеса куплю стеклопакет новые бизнес идеи цена стеклопакеты бизнес предложения изготовление стеклопакетов начать бизнес новые бизнес идеи поддержка малого бизнеса домашний бизнес организовать бизнес бизнес проектов куплю бизнес новые бизнес идеи бизнес структуры деревянные окна со стеклопакетами безопасность бизнеса технология стеклопакетов бизнес тренинги цена стеклопакеты поддержка бизнеса стеклопакет стекло идеи домашнего бизнеса бизнес тренинги бизнес журнал организовать бизнес куплю бизнес окна стеклопакеты бизнес справочник бизнес санкт петербург бизнес петербург бизнес санкт петербург инвестиция бизнеса бизнес проектов производство оборудование стеклопакет кредитование бизнеса производство оборудование стеклопакет институт бизнеса стеклопакет москва бизнес справочник производители стеклопакета бизнес петербург стеклопакеты продажа бизнес журнал стеклопакеты спб стеклопакет стекло стеклопакет линия стеклопакет стекло ремонт стеклопакетов стеклопакет оборудование жалюзи стеклопакеты деревянные окна со стеклопакетами окна деревянные стеклопакет стеклопакеты стеклопакеты продажа домашний бизнес стоимость стеклопакета идеи бизнеса стеклопакеты монтаж безопасность бизнеса окна стеклопакеты институт бизнеса пластиковые стеклопакеты институт бизнеса


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: re:
СообщениеДобавлено: Чт, фев 02 2006, 00:44 
Гость
готовые фирмы лицензия регистрация компаний ликвидация филиала ремонт фотоаппаратов регистрация пбоюл цветок розы государственная регистрация юридических лиц готовые фирмы со готовые фирмы со регистрация ооо документы ликвидация фирмы перерегистрация фирм регистрация ооо документы ликвидация компаний ликвидация фирмы бизнес букет ликвидация филиала регистрация предпринимателей готовые фирмы лицензия готовые фирмы строительные лицензии ликвидация компаний готовые фирмы лицензия готовые ооо скачать ремонт регистрация ооо документы регистрация юридических лиц перерегистрация ооо ремонт мониторов юр лицо регистрация ремонт оборудования ликвидация фирмы ремонт двигателя перерегистрация ооо 2006 готовый бизнес предприятия регистрация общества перерегистрация предприятий свадебные букеты ликвидация филиала комнатные цветы доставка букетов ткань цветы ликвидации лица под цветы гарантийный ремонт букет невесты картинки цветов ткани цветы цветы доставка салоны цветов ремонт двигателя искусственные цветы ремонт цветы доставка ремонт мониторов заказ букетов под цветы бизнес букет ремонт открытки цветы ремонт офисов ткань цветы ремонт двигателя доставка букетов бизнес букет доставка букетов открытки цветы салоны цветов ликвидации лица букет цветов ремонт советы купить цветы готовый бизнес предприятия продажа цветов ликвидация предприятий искусственные цветы под цветы искусственные цветы готовый бизнес предприятия символика цветов салоны цветов магазин цветов готовые предприятия доставка цветов регистрация компаний каталог цветов интерьеры цветами заказ цветов ремонт офисов интерьеры цветами готовые фирмы форум ремонт перерегистрация ооо ремонт советы ремонт мониторов кузовной ремонт ремонт автомобилей гарантийный ремонт свадебный букет ремонт стиральных машин перерегистрация ооо 2006 ремонт ноутбуков картинки цветы ремонт машин цветы доставка ремонт техники картинки цветов ремонт сотовых телефонов перерегистрация предприятий ремонт машин регистрация юридических лиц ремонт ванной ремонт стиральных ремонт квартиры готовые строительные фирмы ремонт автомобилей регистрация ооо документы кузовной ремонт продажа готовых фирм ремонт квартиры комнатные цветы


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: re:
СообщениеДобавлено: Чт, фев 02 2006, 08:21 
Гость
ремонт стиральных без рекламы ремонт квартиры курсовая реклама ремонт обслуживание ремонт мониторов ремонт автомобилей ремонт двигателя руководство ремонт реклама маркетинг ремонт обслуживание без рекламы отделка ремонт реклама шанс ремонт обуви реклама sony ремонт квартиры ремонт мониторов ремонт холодильников ремонт блока ремонт мониторов реклама соков форум ремонт ремонт обуви ремонт стиральных ремонт автомобилей ремонт изготовление рекламы ремонт книг ремонт москва руководство ремонт реклама газеты ремонт книг наружная реклама ремонт книг законы рекламы ремонт машин гарантийный ремонт ремонт квартиры ремонт компьютеров рефераты реклама ремонт обслуживание типография психология рекламы реклама pr ремонт двигателя рынок рекламы менеджер рекламы без рекламы ремонт техники менеджер рекламы ремонт двигателя скачать рекламу бесплатная реклама реклама менеджер рекламы эффективность рекламы ремонт принтеров радио реклама психология рекламы музыка реклама скачать рекламу примеры рекламы изготовление рекламы реклама сайта реклама шанс реклама сми ремонт ноутбуков реклама сайта ремонт холодильников виды рекламы ремонт сотовых виды рекламы скачать ремонт курсовая реклама форум ремонт реклама пива ремонт автомобилей реклама газеты кузовной ремонт реклама pr ремонт телефонов законы рекламы ремонт стиральных машин бесплатная реклама ремонт автомобилей законы рекламы гарантийный ремонт без рекламы без рекламы реклама соков ремонт часов реклама ремонт оборудования реклама маркетинг ремонт ваз интернет реклама реклама москва музыка реклама ремонт стиральных машин типография ремонт фотоаппаратов история рекламы бытовой ремонт особенности рекламы бытовой ремонт менеджер рекламы рефераты реклама менеджер рекламы ремонт сотовых телефонов виды рекламы реклама шанс менеджер рекламы реклама шанс наружная реклама радио реклама реклама газеты ремонт холодильников реклама sony типографии москвы


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Вт, июл 25 2017, 11:58 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
MilAndAl1 написал(а):
Можно, но в REUSE_ALV_GRID_DISPLAY навряд ли :( .
Попробуй использовать REUSE_ALV_GRID_DISPLAY_LVC, а лучше
переписать используя класс CL_GUI_ALV_GRID.

У класса и у ФМ REUSE...._LVC в IS_LAYOUT есть поле STYLEFNAME, с его помощью можно запретить редактирование в любой ячейке грида. Пример в 4.6с - BCALV_EDIT_02 (подпрограмма FILL_CELLTAB)


не совсем понял как происходит блокирование редактирования ячеек. в этом примере все ячейки закрыты же для редактирования.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Re:
СообщениеДобавлено: Вт, авг 29 2017, 15:57 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
sonics написал(а):
MilAndAl1 написал(а):
Можно, но в REUSE_ALV_GRID_DISPLAY навряд ли :( .
Попробуй использовать REUSE_ALV_GRID_DISPLAY_LVC, а лучше
переписать используя класс CL_GUI_ALV_GRID.

У класса и у ФМ REUSE...._LVC в IS_LAYOUT есть поле STYLEFNAME, с его помощью можно запретить редактирование в любой ячейке грида. Пример в 4.6с - BCALV_EDIT_02 (подпрограмма FILL_CELLTAB)


не совсем понял как происходит блокирование редактирования ячеек. в этом примере все ячейки закрыты же для редактирования.

В каком в этом?
BCALV_EDIT_02 там есть переключатель режима редактирования, там на уровне ячеек идет управление вводом.
Если делаете все через ФМ, то это тоже решается, но все таки лучше использовать класс.
Принцип простой - структура Вашей результирующей таблицы должна содержать вложенную внутреннюю таблицу, где ведется управление стилями на уровне ячеек, через указание имя поля.


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

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


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

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


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

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