Текущее время: Вс, июл 20 2025, 19:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Как насильно обновить таблицу из ALV грида ??
СообщениеДобавлено: Пт, июл 27 2007, 07:18 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
Здравствуйте народ !
Ситуация такая:

обновляю вн. таблицу CALL METHOD alvg_2->check_changed_data
Все работает если пользаватель внес какиенибуль изменения в ГРИД. А если ничего не менял тогда этот метод не работает.

Напишите пожалста, как же сделать чтобы обновлять вн.таблицу из грида, даже если пользак ничего не менял ???


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как насильно обновить таблицу из ALV грида ??
СообщениеДобавлено: Пт, июл 27 2007, 07:42 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
belzan написал:
Здравствуйте народ !

Напишите пожалста, как же сделать чтобы обновлять вн.таблицу из грида, даже если пользак ничего не менял ???

Читать документацию, использовать поиск или хотя-бы посмотреть имеющиеся методы класса теперь не модно?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 07:56 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
В методах смотрел, ничего того чтобы помогло не заметил.

А в поизге встречал что использую REFRESH который есть в самом гриде. Будит ли он работать если пользак ничего не изменит в ГРИДе?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 08:27 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
belzan написал:
В методах смотрел, ничего того чтобы помогло не заметил.
А документация?
Цитата:
А в поизге встречал что использую REFRESH который есть в самом гриде.

Что используют?
Цитата:
Будит ли он работать если пользак ничего не изменит в ГРИДе?

http://sapboard.ru/forum/viewtopic.php ... ht=refresh

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
спасибо, но если правильно понять то CALL METHOD alvg_2->refresh_table_display и REFRESH в стандартный кнопках ГРИДа это одно и тоже.

А можно ли с имитировать гриду то, что типа пользователь в нем чтото изменил ?? :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 09:51 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
belzan написал:
...

А можно ли с имитировать гриду то, что типа пользователь в нем чтото изменил ?? :)
Цель-то какая? Что хочется в итоге получить?

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Пт, июл 27 2007, 10:03
Сообщения: 3
Откуда: Planet Earth
Пол: Мужской
åñëè â îïðåäåëåííèé ìîìåíò õî÷åòñÿ ÀË îáíîâèòü òî ïîñòàâü åòîò ìåòîä íà êàêîå òî äåéñòâèå óçåðà... ÿ îáû÷íî íà ñâîþ êíîïêó åòî ñòàâëþ.
âñå çàâèñèò îò òîãî êàêîé ðåçóëüòàò íóæåí.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 11:32 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
В общем цель такая:
Надо при нажатии на кнопку проверить правильность ввода в ГРИД.
Если пользователь чтото ввел или исправил, то CALL METHOD alvg_2->check_changed_data нормально срабатывает и происходит проверка и все ОК.
Если в проверке есть ошибка ввода, то надо сделать так чтоб пока пользователь не исправит в ГРИДе - выполнение программы не должно идти дальше.

Вроде понятно расписал. :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 12:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
belzan написал:
В общем цель такая:
Надо при нажатии на кнопку проверить правильность ввода в ГРИД.
Если пользователь чтото ввел или исправил, то CALL METHOD alvg_2->check_changed_data нормально срабатывает и происходит проверка и все ОК.
Если в проверке есть ошибка ввода, то надо сделать так чтоб пока пользователь не исправит в ГРИДе - выполнение программы не должно идти дальше.

Вроде понятно расписал. :)

Ну так причём здесь REFRESH и прочие?
регистрируйте и обрабатывайте событие DATA_CHANGED. В обработке проверяйте содержимое таблицы и заносите ошибочные ячейки в протокол - пока есть ошибки не давайте пользователю выполнить критическое операции (сохранение, создание и пр...)

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Ср, авг 02 2006, 15:26
Сообщения: 97
Лично я предпочитаю никогда не делать грид редактируемым.

Открыть диалоговое окно. Внести изменения и на ок сохранить и просто отрефрешить грид.

Немного больше писать кода, но и гибкости на мой взгляд больше.
или привычка осталась от delphi/C#...

_________________
Теперь я программлю на ABAP/4... правда пока еще только учусь.
Но я очень скучаю по С#


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 12:17 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
sy-uname, хочу узнать, в какой конкретно момент наступает событие DATA_CHANGED, при щелке мышкой или при нажатии клавиатуры в ячейке грида ?? И что содержат параметры в этом событии ?

Hermitap, да, Делфи это круто ! :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 13:20 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
belzan написал:
sy-uname, хочу узнать, в какой конкретно момент наступает событие DATA_CHANGED, при щелке мышкой или при нажатии клавиатуры в ячейке грида ??
Как минимум любое событие, запускающие обработку PAI (например двойной щелчёк или enter), вызов метода CHECK_CHANGED_DATA.
Цитата:
И что содержат параметры в этом событии ?
Несколько флагов, показывающих что событие вызвано в рамках обработки F4, ok-code и объект с данными, которые надо проверить, и в котором можно регистрировать ошибки (в любых ячейках грида) через метод ADD_PROTOCOL_ENTRY

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 27 2007, 13:39 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 06:40
Сообщения: 60
Откуда: Белебей !
Пол: Мужской
всем спасиба !
Попробую сделать в обработке DATA_CHANGED .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июл 28 2007, 21:05 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Еще посоветую зарегистрировать события

CALL METHOD g_grid_d->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD g_grid_d->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.


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

Зарегистрирован:
Пт, июл 27 2007, 10:03
Сообщения: 3
Откуда: Planet Earth
Пол: Мужской
â ñâîå âðåìÿ íàìó÷àëñÿ ñ ïîèìêîé äåéñòâèÿ... ïîòîì íàøåë è ñòàë ïðèìåíÿòü âîò ýòî...
÷òî óãîäíî ìîæåò äåëàòü óçåð, íà ýòî âñåãäà ñðàáàòûâàåò èâåíò DATA_CHANGED

Code:
*&---------------------------------------------------------------------*
*&      Form  Register_Edit_Event
*&---------------------------------------------------------------------*
*       Registering event for ALV grid... Should react on data change
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
form register_edit_event .

     call method go_alv->register_edit_event
          exporting
             i_event_id = cl_gui_alv_grid=>MC_EVT_MODIFIED.

     IF sy-subrc NE 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ENDIF.

endform.                    " Register_Edit_Event



ýòó ñàáðóòèíó âûçûâàþ ïîñëå ÀËÂ äèñïëåé

_________________
just be...


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

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


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

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


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

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