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

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


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

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


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

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