START-OF-SELECTION
ne se déclenche pas dans mon programme. J'essaie d'extraire les détails du livre en fonction du nom du livre et de l'auteur du livre en utilisant plusieurs écrans de sélection dans ABAP. Il y a deux boutons-poussoirs et en fonction de ces écrans de sélection sont ouverts. Lorsque je clique sur l'un des boutons, les écrans de sélection sont ouverts. Mais après avoir sélectionné les entrées dans la liste déroulante et cliqué sur le bouton Exécuter, la transaction passe à l'écran initial avec les boutons. Les détails du livre ne sont pas affichés du tout. START-OF-SELECTION
n'est pas déclenché. S'il vous plaît aider, je suis un débutant dans ABAP. Voici mon programmeProblèmes avec plusieurs écrans de sélection
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.
Je veux faire ce programme en utilisant uniquement des écrans de sélection. Je pense que ce scénario peut être résolu en utilisant d'autres techniques. Mais s'il vous plaît aidez-moi à faire ce programme en utilisant des écrans de sélection. – user3621835
Que se passe-t-il lorsque vous appuyez sur démarrer après le retour au premier écran de sélection? – knut