Текущее время: Вт, июл 29 2025, 04:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Изменение протокола в ALV grid
СообщениеДобавлено: Пт, май 11 2007, 09:20 
Гость
Привет всем!

Есть вопрос по вводу новых строк в АЛВ гриде:

При вводе проверяю значения в новой строке и изменяю данные методом modify_cell:

Code:
   CALL METHOD p_pr_data_changed->modify_cell    " Статус записи в реестре
     EXPORTING
        i_row_id    = p_l_ins_row-row_id
*            i_tabix     =
        i_fieldname = 'STATUS'
        i_value     = c_status
        .


Но почему-то эти изменения не отображаются в гриде и не изменяются. Соответственно, они попадают в 'плохие' данные и отображаются в журнале ошибок.

Попыталась сделать:
Code:
* проверка введенных данных по ячейкакм
    LOOP AT pr_data_changed->mt_mod_cells INTO ls_good.        " mt_good_cells
      CASE ls_good-fieldname.
        WHEN 'STATUS'.
          ls_good-error = ' '.
          MODIFY pr_data_changed->mt_mod_cells FROM ls_good.
      ENDCASE.

    ENDLOOP.


Но не проходит.

Кто-нибудь подскажет, как 'обмануть протокол' или ещё чего-то сделать, чтобы изменения прошли и стали 'good_cells'?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Изменение протокола в ALV grid
СообщениеДобавлено: Пт, май 11 2007, 09:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Любаша написал(а):
Но почему-то эти изменения не отображаются в гриде и не изменяются. Соответственно, они попадают в 'плохие' данные и отображаются в журнале ошибок.


Зараз скока строк вводиш? :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 09:59 
Гость
А что, можно вводить не одну?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 10:29 
Гость
Я хотела сказать - это не имеет значения.

Можно и не одну, но всё проверяется в цикле.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 10:43 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А саму таблицу внутреннюю обновляете ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 10:50 
Гость
Lars написал:
А саму таблицу внутреннюю обновляете ?


Я извиняюсь, но судя по вашему вопросу, вы не понимаете, о чём речь.

Только без обид :(


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:00 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Возможно...
Я дуамю, что в событие data_changed для cl_gui_alv_grid, вы пытаетесь обновить ячейки без передергивания экрана.
И мне кажется, что если не получается у Вас, то не понимаете Вы :)


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

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Lars написал:
Возможно...
Я дуамю, что в событие data_changed для cl_gui_alv_grid, вы пытаетесь обновить ячейки без передергивания экрана.
И мне кажется, что если не получается у Вас, то не понимаете Вы :)

Ребята давайте жить дружно :D
Не знаю я делаю так и у меня все обновляется:
Code:
LOOP AT er_data_changed->mt_good_cells INTO ls_modify_row  .


    READ TABLE gt_os INTO wa_os  INDEX ls_modify_row-row_id.

    IF sy-subrc = 0.

      IF wa_os-anlue(1) <> '$'.

        CALL METHOD er_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_modify_row-row_id
            i_fieldname = 'UPDKZ'
            i_value     = 'V'.
      ENDIF.

    ENDIF.
  ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:12 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Погорячился .. Был не прав .. Искуплю..
А кстати, какие значения может принимать STATUS? Может ему пробел не нравится ?


Последний раз редактировалось Lars Пт, май 11 2007, 11:14, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:13 
Гость
Lars написал:
Возможно...
Я дуамю, что в событие data_changed для cl_gui_alv_grid, вы пытаетесь обновить ячейки без передергивания экрана.
И мне кажется, что если не получается у Вас, то не понимаете Вы :)


Что такое передергивание экрана?
Это, что, нервный тик? :) Может, я действительно, что-то не понимаю, потому и задаю вопросы.

Объясните, плиз. очень хочется разобраться с этой дурацкой ошибкой. Потому как всё работало и перестало. Дейтствительно может быть связано с экраном, но вот как?

Кстати, там (в АЛВ и протоколе в частности) , куча всяких внутрених таблиц. Просто даже непонятно, про какую идёт речь в вашем вопросе.
Ответ получили соответствующий.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:20 
Гость
ROKO написал:
Lars написал:
Возможно...
Я дуамю, что в событие data_changed для cl_gui_alv_grid, вы пытаетесь обновить ячейки без передергивания экрана.
И мне кажется, что если не получается у Вас, то не понимаете Вы :)

Ребята давайте жить дружно :D
Не знаю я делаю так и у меня все обновляется:
Code:
LOOP AT er_data_changed->mt_good_cells INTO ls_modify_row  .


    READ TABLE gt_os INTO wa_os  INDEX ls_modify_row-row_id.

    IF sy-subrc = 0.

      IF wa_os-anlue(1) <> '$'.

        CALL METHOD er_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_modify_row-row_id
            i_fieldname = 'UPDKZ'
            i_value     = 'V'.
      ENDIF.

    ENDIF.
  ENDLOOP.


Вы делаете цикл по 'хорошим ' ячейкам (mt_good_cells ).
А у меня изначально попадает в 'плохие'. Вот я и пытаюсь их сделать 'хорошими'. Как обновить протокол после занесения значения в ячейку?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:27 
Гость
Lars написал:
Погорячился .. Был не прав .. Искуплю..
А кстати, какие значения может принимать STATUS? Может ему пробел не нравится ?


нет, пробела там нет.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Любаша написал(а):
Кстати, там (в АЛВ и протоколе в частности) , куча всяких внутрених таблиц. Просто даже непонятно, про какую идёт речь в вашем вопросе.
Ответ получили соответствующий.


Вообще, Lars прав, нужно проверить проставляется ли для введенной строки параметр с_status во внутренней табличке :D А проставится он тока када вы обновите (передерните) экран. :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:40 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Любаша написал(а):
Вы делаете цикл по 'хорошим ' ячейкам (mt_good_cells ).
А у меня изначально попадает в 'плохие'. Вот я и пытаюсь их сделать 'хорошими'. Как обновить протокол после занесения значения в ячейку?


Вот теперь я точно уверенн, что я не понимаю :)

mt_good_cells - у Вас пустой ?
mt_protocol - не пустой ?

Это вы protocol заполняли, или сиситема его заполнила ? Какая там ошибка ?


Последний раз редактировалось Lars Пт, май 11 2007, 11:42, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 11 2007, 11:42 
Гость
ROKO написал:
Любаша написал(а):
Кстати, там (в АЛВ и протоколе в частности) , куча всяких внутрених таблиц. Просто даже непонятно, про какую идёт речь в вашем вопросе.
Ответ получили соответствующий.


Вообще, Lars прав, нужно проверить проставляется ли для введенной строки параметр с_status во внутренней табличке :D А проставится он тока када вы обновите (передерните) экран. :D


Я заношу значения в НОВУЮ строку. Если вы имеете в иду внутреннюю таблицу для грида, то этой строки там ещё нет.
Code:
    data_changed         FOR EVENT data_changed
                         OF cl_gui_alv_grid
                         IMPORTING er_data_changed
                                   e_onf4
                                   e_onf4_before
                                   e_onf4_after,            "#EC CALLED


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.

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


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

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


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

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