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

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


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

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


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

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