Текущее время: Вс, авг 03 2025, 15:45

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: селекционный экран
СообщениеДобавлено: Пн, авг 13 2007, 08:46 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
Господа!
есть такая задача!
нужно сделать ФМ для редактирования таблиц с заданием на селекционном экране ограничений. Экран должен быть как в se16 только без задания количества записей и ширины.
В ФМ должно передаться только имя таблицы. Как сгенерировать селекционный экран для нее?

Я делал так:
1) из таблицы dd03l узнавал поля таблицы
2) генерировал код программы, в котором делал селекционный экран, выборку и экспорт внутренней таблицы в память
код типа такого получается
report rep_bla_bla.
tables: tab_name.
data: i_tab like tab_name occurs 0.
SELECT-OPTIONS: field1 for tab_name-field1.
...

select * from tab_name into table i_tab
where
field1 in field1 and
...
.

export i_tab to memory id 'MEM_TAB'.
leave program.

3) потом делал сабмит для этого отчета
4) создавал внутреннюю таблицу через CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
5) импортировал данные из таблицы
6) выводил в АЛВ.

Мне этот вариант в принципе подходит, только как узнать при выполнении (3) была произведена выборка или нажат ESC не знаю.


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
В INITIALIZATION секции обнулить, а в START-OF-SELECTION сгенерированной программы Вы можете сделать export to memory некого признака, что выборка была сделана?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 13 2007, 10:46 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
Теперь возникла другая проблема.
Я сгенерировал таблицу.

...
loop at it_dd03l into wa_fcat.
ls_fieldcat-FIELDNAME = wa_fcat-fieldname.
ls_fieldcat-inttype = wa_fcat-inttype.
ls_fieldcat-DECIMALS = wa_fcat-DECIMALS.
ls_fieldcat-INTLEN = wa_fcat-intlen.
append ls_fieldcat to gt_fieldcat.
endloop.

ls_fieldcat-FIELDNAME = 'MARK'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-DECIMALS = '0'.
ls_fieldcat-INTLEN = '1'.
append ls_fieldcat to gt_fieldcat.

call method CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
exporting IT_FIELDCATALOG = gt_fieldcat
importing ep_table = gp_table.

assign gp_table->* to <GT_TABLE>.
refresh <gt_table>.
...
CLEAR wa_layout.
wa_layout-box_fieldname = 'MARK'.
wa_layout-colwidth_optimize = 'X'.
...
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BUFFER_ACTIVE = ' '
i_callback_program = SY_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fieldcat[]
i_save = 'A'
TABLES
t_outtab = <gt_table>
EXCEPTIONS
program_error = 1
others = 2.

и когда я выделяю несколько записей и нажимаю какую нить кнопку
вызывающую USER_COMMAND, то в <gt_table> нет ни одной записи с MARK = 'X'.

В чем может быть проблема?


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
_gary_ написал(а):
Code:
...
  CLEAR wa_layout.
  wa_layout-box_fieldname = 'MARK'.
  wa_layout-colwidth_optimize = 'X'.
...
  call function 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_BUFFER_ACTIVE          = ' '
            i_callback_program       = SY_REPID
            I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
            i_callback_user_command  = 'USER_COMMAND'
            it_fieldcat              = fieldcat[]
            i_save                   = 'A'
       TABLES
            t_outtab                 = <gt_table>
       EXCEPTIONS
            program_error            = 1
            others                   = 2.

wa_layout заполнен, но что-то не видно что-бы он передавался в REUSE_...

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


Последний раз редактировалось sy-uname Пн, авг 13 2007, 12:29, всего редактировалось 1 раз.

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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
А может проще использовать ф.м. FREE_SELECTIONS_INIT и FREE_SELECTIONS_DIALOG ?


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

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


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

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


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

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