Текущее время: Пт, июл 18 2025, 22:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 16:10 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
Добрый день!

Столкнулся с проблемой. Есть давно написанный отчет, селекционный экран, накопление данных, вывод всего этого добра через просто WRITE. Появилась необходимость добавить промежуточный выбор табельных для фильтрации вывода. Выбор сделан в ALV выведенный через REUSE_ALV_GRID_DISPLAY. Проблема в том, что после выбора не получается вернуться на предыдущий экран. LEAVE TO SCREEN 1000 с грохотом роняет отчет в дамп с мотивацией Screen does not exist. Хотя до отработки ALV, sy-dynnr возвращал номер 1000, после отработки 0500. Что я делаю не так? Заранее спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 16:39 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, фев 15 2010, 13:14
Сообщения: 46
Откуда: Минск
Пол: Женский
Code:
LEAVE TO SCREEN 0

попробуйте написать так


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 16:44 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
Only2611 написала:
Code:
LEAVE TO SCREEN 0

попробуйте написать так

Пробовал, выпадает на селекционный экран и всё, ничего не происходит. Параллельно идет выгрузка того же массива в Excel, там всё пучком, а тут молчащий селекционник :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 16:48 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, фев 15 2010, 13:14
Сообщения: 46
Откуда: Минск
Пол: Женский
тогда опишите подробнее логику программы. ато непонятно как у вас что работает и откуда куда надо вернуться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 16:56 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
Only2611 написала:
тогда опишите подробнее логику программы. ато непонятно как у вас что работает и откуда куда надо вернуться.


Легко! )

1 этап. Рисуем самый обычный селекционный экран:

Code:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
......


2. этап. После сбора данных в разных ИТ, выводим их:

Code:
NEW-PAGE LINE-SIZE 194 NO-HEADING NO-TITLE.
" вывод основного заголовка с периодом и даты
  WRITE: /(194) gs_title-main_title CENTERED.
  WRITE: /(194) gs_title-period CENTERED.
  WRITE: /(194) gs_title-cur_time LEFT-JUSTIFIED.


Всё работало как часы. Но тут... у нас появляется этап 1,5 :)

Code:
.....
gs_layout_slis-box_fieldname     = 'CHECKBOX'.
.....
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


В гриде я вижу список табельных с предварительной выборки. Чекбоксами отмечаю с кем продолжать работу и хочу перейти к этапу 2, но не тут то было :roll:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран  Тема решена
СообщениеДобавлено: Вт, апр 03 2012, 17:12 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
LEAVE TO LIST-PROCESSING + F1

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 17:17 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июл 19 2011, 17:17
Сообщения: 19
Пол: Женский
В какой момент вы вызываете CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' и для чего вам надо вернуться на предыдущий экран, вы хотите увидеть селекционный экран или у вас должна дальше отработать программа?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 17:31 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
ghost написал:
LEAVE TO LIST-PROCESSING + F1


LEAVE TO LIST-PROCESSING - очень близко к цели! Увидел вывод, но с GUI-статусом от ALV и без возможности закрыть всё это безобразие кроме как крестиком :)

P.S. Что в данном контексте есть F1?

Limur написала:
В какой момент вы вызываете CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' и для чего вам надо вернуться на предыдущий экран, вы хотите увидеть селекционный экран или у вас должна дальше отработать программа?


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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 17:41 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июл 19 2011, 17:17
Сообщения: 19
Пол: Женский
А может данную проблему решит, просто открытие alv в дополнительном окошке? Т е задать значения параметров i_screen_start_column, i_screen_start_line, i_screen_end_column, i_screen_end_line. Конечно не универсальный метод и не лучший :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 17:42 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
Code:
leave to list-processing and return to screen 0.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 17:56 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
Limur написала:
А может данную проблему решит, просто открытие alv в дополнительном окошке? Т е задать значения параметров i_screen_start_column, i_screen_start_line, i_screen_end_column, i_screen_end_line. Конечно не универсальный метод и не лучший :)

Была такая мысль, проверит, не помогло :)

ghost написал:
Code:
leave to list-processing and return to screen 0.

Очень жаль, но всё по прежнему. Замороженный статус и выход только крестиком в углу окна. так же побывал 1000 экран. Аналогично.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 18:01 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
код в студию(имею ввиду полный). по тем кускам не понятно что после чего идет

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 18:51 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, фев 15 2010, 13:14
Сообщения: 46
Откуда: Минск
Пол: Женский
попробуйте вывод АЛВ сделать не через ФМ, а через класс cl_gui_alv_grid - создайте свой экранчик к нему статус с кнопкой выхода и область контейнера, на которую через класс выводите свою таблицу. перед выводом списка - leave to list-processing. в этом случае командами write ваш список будет отрабатывать на собственном экране, соответвтвенно на нем будут только собственные кнопки статуса (выход в вашем случае).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Вт, апр 03 2012, 19:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
morojenko, так как Вы описали, все отлично работает. Например,
Code:
TYPE-POOLS: slis.

TABLES usr02.
SELECT-OPTIONS:
  so_bname    FOR  usr02-bname.

DATA:
  gt_usr02    TYPE TABLE OF  usr02    WITH HEADER LINE,
  gs_layout   TYPE  slis_layout_alv.


START-OF-SELECTION.
  SELECT  *
    FROM  usr02
    INTO TABLE gt_usr02
    WHERE bname IN so_bname.

  gs_layout-box_fieldname = 'ZBVMASTER'.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
        i_structure_name    = 'USR02'
        is_layout           = gs_layout
    TABLES
        t_outtab            = gt_usr02
    EXCEPTIONS
        OTHERS            = 1.

  LOOP AT gt_usr02    WHERE zbvmaster EQ 'X'.
    WRITE:/ gt_usr02-bname.
  ENDLOOP.

Скорее всего Вы дополнительно определяете статус через I_CALLBACK_PF_STATUS_SET, и обработчик команд I_CALLBACK_USER_COMMAND. Так вот в подпрограмме USER_COMMAND есть переменная отвечающая за выход из ALV - slis_selfield-exit.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Возврат на экран
СообщениеДобавлено: Ср, апр 04 2012, 09:28 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 15 2012, 17:00
Сообщения: 14
ghost написал:
код в студию(имею ввиду полный). по тем кускам не понятно что после чего идет

Там 3500 строк, многовато будет )

SYS написал(а):
Скорее всего Вы дополнительно определяете статус через I_CALLBACK_PF_STATUS_SET, и обработчик команд I_CALLBACK_USER_COMMAND. Так вот в подпрограмме USER_COMMAND есть переменная отвечающая за выход из ALV - slis_selfield-exit.

Совершенно верно! Попробовал slis_selfield-exit. Просто выбрасывает на селекционный экран.

Вот полный листинг вызова:
Code:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_pf_status_set = 'SET_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      i_callback_program       = rep_id
      it_fieldcat              = your_fieldcatalog
      is_layout                = gs_layout_slis
      is_print                 = gs_print_slis
    TABLES
      t_outtab                 = auth_tab
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

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


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

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


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

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