START-OF-SELECTION
не запускается в моей программе. Я пытаюсь получить информацию о книге на основе имени книги и автора книги, используя несколько экранов выбора в ABAP. Существуют две кнопки и на основе этих экранов выбора. Когда я нажимаю любую из кнопок, открывается экран выбора. Но после того, как я выберу записи из раскрывающегося списка и нажмите кнопку «Выполнить», транзакция переходит к начальному экрану с помощью кнопок. Сведения о книге не отображаются вообще. START-OF-SELECTION
не запускается. Пожалуйста, помогите, я новичок в ABAP. Вот моя программаПроблемы с несколькими экранами выбора
REPORT y_multiple_screen.
TABLES: sscrfields.
TYPE-POOLS: vrm.
DATA: param TYPE vrm_id,
values TYPE vrm_values,
wa_value LIKE LINE OF values.
DATA: it_ybook TYPE TABLE OF ybook,
wa_ybook TYPE ybook.
FIELD-SYMBOLS: <fs_book> TYPE ybook.
SELECTION-SCREEN BEGIN OF BLOCK blocker WITH FRAME TITLE text-001 NO INTERVALS.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (30) w_butn1 USER-COMMAND but1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (30) w_butn2 USER-COMMAND but2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blocker.
SELECTION-SCREEN BEGIN OF SCREEN 1100.
PARAMETERS: p_author TYPE char255 AS LISTBOX VISIBLE LENGTH 20.
SELECTION-SCREEN END OF SCREEN 1100.
SELECTION-SCREEN BEGIN OF SCREEN 1200.
PARAMETERS: p_bname TYPE char255 AS LISTBOX VISIBLE LENGTH 20.
SELECTION-SCREEN END OF SCREEN 1200.
INITIALIZATION.
w_butn1 = 'Search by author name'.
w_butn2 = 'Search by book name'.
"At selection-screen output.
AT SELECTION-SCREEN.
IF sscrfields-ucomm EQ 'BUT1'.
CALL SELECTION-SCREEN 1100.
ELSEIF sscrfields-ucomm EQ 'BUT2'.
CALL SELECTION-SCREEN 1200.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
CLEAR it_ybook.
SELECT *
FROM ybook
INTO TABLE it_ybook.
CLEAR values.
CLEAR wa_ybook.
CLEAR wa_value.
LOOP AT it_ybook INTO wa_ybook.
wa_value-key = wa_ybook-book_author.
wa_value-text = wa_ybook-book_author.
APPEND wa_value TO values.
CLEAR wa_ybook.
CLEAR wa_value.
ENDLOOP.
CLEAR it_ybook.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_AUTHOR'
values = values
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
CLEAR it_ybook.
SELECT *
FROM ybook
INTO TABLE it_ybook.
"CLEAR values.
CLEAR wa_ybook.
CLEAR wa_value.
LOOP AT it_ybook INTO wa_ybook.
wa_value-key = wa_ybook-book_name.
wa_value-text = wa_ybook-book_name.
APPEND wa_value TO values.
CLEAR wa_ybook.
CLEAR wa_value.
ENDLOOP.
CLEAR it_ybook.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_BNAME'
values = values
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
START-OF-SELECTION.
WRITE:/10 'Book ID',40 'Book Name',70 'Book Author',100 'Book Price'.
CLEAR it_ybook.
CLEAR wa_ybook.
SELECT *
FROM ybook
INTO TABLE it_ybook
WHERE book_name = p_bname.
LOOP AT it_ybook INTO wa_ybook.
WRITE:/10 wa_ybook-book_id,40 wa_ybook-book_name,70 wa_ybook-book_author,100 wa_ybook-book_price.
CLEAR wa_ybook.
ENDLOOP.
WRITE:/10 'Book ID',40 'Book Name',70 'Book Author',100 'Book Price'.
CLEAR it_ybook.
CLEAR wa_ybook.
SELECT *
FROM ybook
INTO TABLE it_ybook
WHERE book_author = p_author.
LOOP AT it_ybook INTO wa_ybook.
WRITE:/10 wa_ybook-book_id,40 wa_ybook-book_name,70 wa_ybook-book_author,100 wa_ybook-book_price.
CLEAR wa_ybook.
ENDLOOP.
Я хочу сделать эту программу, используя только экраны выбора. Я думаю, что этот сценарий можно решить, используя другие методы. Но, пожалуйста, помогите мне в выполнении этой программы с использованием экранов выбора. – user3621835
Что происходит, когда вы нажимаете начало после возвращения на первый экран выбора? – knut