Текущее время: Ср, июл 30 2025, 02:50

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


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

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


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

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