Текущее время: Пн, июл 28 2025, 18:45

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Вт, янв 27 2009, 12:50 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:15
Сообщения: 4
Пол: Мужской
Заранее прошу прощения за уровень вопросов и подробность изложения, я с языком ABAP только знакомлюсь.

Есть транзакция, которая формирует отчет через ALV Grid (выборка из таблицы).
По двойному щелчку на строчке отчета открывается окно А, в котором можно редактировать атрибуты указанной строчки.

Задача к этому отчет прикрутить кнопки управления -
к панели приложения кнопку аля "добавить строку в таблицу" - открывающее то же окно А, но пустое
к окну А - кнопки "сохранить" и "отменить"

Сделал следующее -
В окне А в PROCESS BEFORE OUTPUT добавил MODULE STATUS_2000 OUTPUT.

Сам модуль
MODULE STATUS_2005 OUTPUT.
SET PF-STATUS 'MAIN'.

В SET PF-STATUS 'MAIN'. Созадал диалоговое окно, в форме уже есть нужные кнопки.
К ним нужно привязать функции? Предалагается выбрать между статистическим текстом и динамическим, при выборе статистического - ввести код и текст функции.
Где эти функции нужно создать, как с их помощью передавать в тело программы управление и информацию, какая нажата?

Дальше обрабатывать сообщенее в теле программы должен модуль вроде подобного?
MODULE USER_COMMAND_2000 input.
CASE g_saveok.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
WHEN 'SAVE'.
PERFORM
LEAVE TO SCREEN 0.

И каким образом можно добавить кнопку к панели приложения?
Это же не screen, модуль добавлять некуда.

Подскажите, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Вт, янв 27 2009, 12:55 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
если я правильно понял то у Вас не получается добавить кнопку к самому гриду. Если грид строится с помощью ФМ то там тоже есть статус, Вы можете туда добавить кнопки, если объектный то смотрите BCALV_GRID_05 и еще на счет добавления строк правельнее будет так BCALV_EDIT_04


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Вт, янв 27 2009, 13:03 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:15
Сообщения: 4
Пол: Мужской
Грид строится так

FORM DISPLAY_DATA.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'Z_table_alv'
I_CALLBACK_PROGRAM = sy-cprog
I_CALLBACK_USER_COMMAND = 'ON_ALV_UCOMM'
I_CALLBACK_PF_STATUS_SET = 'CREATE_GROUP'
TABLES
T_OUTTAB = gt_data.
ENDFORM.

Нужно какой то параметр в EXPORTING передавать дополнительно?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Вт, янв 27 2009, 13:09 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Space_diver написал:
Грид строится так

FORM DISPLAY_DATA.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'Z_table_alv'
I_CALLBACK_PROGRAM = sy-cprog
I_CALLBACK_USER_COMMAND = 'ON_ALV_UCOMM'
I_CALLBACK_PF_STATUS_SET = 'CREATE_GROUP'
TABLES
T_OUTTAB = gt_data.
ENDFORM.

Нужно какой то параметр в EXPORTING передавать дополнительно?

судя по этому куску я могу сказать что у вас есть статус вашего грида и есть подпрограмма которая обрабатывает нажатие тех или иных кнопок. Теперь в этом статусе создайте свою кнопку и в этой подпрограмме напишите обработку, скорее все она называется ON_ALV_UCOMM. Посмотрите внимательно, я предполагаю что у Вас уже есть доп кнопки в статусе, сделайте по аналогии. Блин не магу просто найти пример стандартный там все понят, попробуйте сами пакет SLIS посмотреть или по сайту поискать, уверен что эта проблема обсуждалась.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Вт, янв 27 2009, 13:24 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Space_diver написал:
Грид строится так

FORM DISPLAY_DATA.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'Z_table_alv'
I_CALLBACK_PROGRAM = sy-cprog
I_CALLBACK_USER_COMMAND = 'ON_ALV_UCOMM'
I_CALLBACK_PF_STATUS_SET = 'CREATE_GROUP'
TABLES
T_OUTTAB = gt_data.
ENDFORM.

Нужно какой то параметр в EXPORTING передавать дополнительно?


Статус устанавливается в подпрограмме 'CREATE_GROUP'. Если ее нет - нужно создать( интерфейс подпрограммы, пример применения можно посмотреть в документации к ФМ). Странное название,кстати, для процедурки.
Обработка кнопок - в подпрограмме ON_ALV_UCOMM.

Обратите внимание, эти подпрограммы должны быть в программе sy-cprog - значение этой переменной может отличаться от текущей программы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Ср, янв 28 2009, 00:38 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:15
Сообщения: 4
Пол: Мужской
Спасибо большое всем ответившим, с кнопками разобрался.

Следующие грабли -
не получается сохранить в таблице базы данных измененую в форме строку.

Читаю из внутренней таблицы строку в грид, редактирую параметры
read table gt_data index rsselfield-tabindex.
CHECK sy-subrc = 0.
MOVE-CORRESPONDING gt_data TO Z_dbtable_ALV.
call SCREEN 2000.

в логике экрана делаю
WHEN 'SAVE'.
PERFORM save_entry.

пытаюсь сохранить
FORM save_entry.
MODIFY Z_dbtable from Z_dbtable_ALV.

Ошибки нет, в базе данных ничего не сохраняется. Что поправить нужно?

Варианты update table set .... / insert into table values . commit. с ABAPом не подходят, верно?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Ср, янв 28 2009, 03:06 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
"Варианты update table set .... / insert into table values . commit. с ABAPом не подходят, верно?" - не верно пользуйтесь хелпом там всё написано.

commit work. надо поставить

проверьте одинаковая ли структура у Z_dbtable и Z_dbtable_ALV, проверьте правильно ли заполнены ключевуе поля таблицы у Z_dbtable.

P.S. То что вы новичок всё же не оправдывает ваше не умение/ не желание пользоваться хелпом в SAP и поиском в интернете.

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Команды логики экрана - вопрос от новичка.
СообщениеДобавлено: Ср, янв 28 2009, 11:23 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:15
Сообщения: 4
Пол: Мужской
Спасибо еще раз, все сделал.

ЗЫ.
Практически теми же словами про документацию новичкам-ораклистам отвечал не раз. :)


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

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


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

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


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

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