Create a program in SE80.
We are going to create a very simple program to display the selected row value in the output.
For that we have created a main program, there we have a select-option for customer.
After executing the program there will be another screen where the customers sales area details will be displayed.
After
selecting the particular row and pressing OK button the single selected
customer sales area data will be displayed in the screen.
This
is just a demo program; we can take leverage of the program to make
changes in the SAP tables for some particular record or we can
select the particular record and process further with the record.
*&---------------------------------------------------------------------*
*& Report Z_TEST_MODULE_POOL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST_MODULE_POOL.
INCLUDE Z_TEST_MODULE_POOL_TOP.
TABLES: kna1.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr.
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
CALL SCREEN '9000'.
CLEAR k_knvv.
READ TABLE i_knvv INTO k_knvv WITH KEY sel = 'X'.
WRITE:/ 'You have selected : ',
'Kunnr = ', k_knvv-kunnr,
'VKORG = ', k_knvv-vkorg,
'VTWEG = ', k_knvv-vtweg,
'SPART = ', k_knvv-spart.
INCLUDE Z_TEST_MODULE_POOL_STATUS_9O01.
INCLUDE Z_TEST_MODULE_POOL_USER_COMI01.
*&SPWizard: Include inserted by SP Wizard. DO NOT CHANGE THIS LINE!
INCLUDE Z_TEST_MODULE_POOL_SUB .
*& Report Z_TEST_MODULE_POOL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST_MODULE_POOL.
INCLUDE Z_TEST_MODULE_POOL_TOP.
TABLES: kna1.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr.
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
CALL SCREEN '9000'.
CLEAR k_knvv.
READ TABLE i_knvv INTO k_knvv WITH KEY sel = 'X'.
WRITE:/ 'You have selected : ',
'Kunnr = ', k_knvv-kunnr,
'VKORG = ', k_knvv-vkorg,
'VTWEG = ', k_knvv-vtweg,
'SPART = ', k_knvv-spart.
INCLUDE Z_TEST_MODULE_POOL_STATUS_9O01.
INCLUDE Z_TEST_MODULE_POOL_USER_COMI01.
*&SPWizard: Include inserted by SP Wizard. DO NOT CHANGE THIS LINE!
INCLUDE Z_TEST_MODULE_POOL_SUB .
Create a screen.
Lets create a standard table and work area in the TOP include.
Like below:
TYPES: BEGIN OF t_knvv,
sel TYPE char1,
kunnr TYPE kunnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
spart TYPE spart,
END OF t_knvv.
DATA: i_knvv TYPE STANDARD TABLE OF t_knvv INITIAL SIZE 0,
k_knvv TYPE t_knvv,
mark TYPE c.
sel TYPE char1,
kunnr TYPE kunnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
spart TYPE spart,
END OF t_knvv.
DATA: i_knvv TYPE STANDARD TABLE OF t_knvv INITIAL SIZE 0,
k_knvv TYPE t_knvv,
mark TYPE c.
The below step is important for selecting records in table control.
All the code will be generated automatically. We just need to add the highlighted code for our own purpose.
Code:
*&---------------------------------------------------------------------*
*& Module POPULATE_TABLE OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE populate_table OUTPUT.
SELECT kunnr
vkorg
vtweg
spart
FROM knvv
INTO CORRESPONDING FIELDS OF TABLE i_knvv
WHERE kunnr IN s_kunnr.
ENDMODULE. " POPULATE_TABLE OUTPUT
*& Module POPULATE_TABLE OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE populate_table OUTPUT.
SELECT kunnr
vkorg
vtweg
spart
FROM knvv
INTO CORRESPONDING FIELDS OF TABLE i_knvv
WHERE kunnr IN s_kunnr.
ENDMODULE. " POPULATE_TABLE OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS 'GUI9000'.
SET TITLEBAR 'This is Test Program'.
ENDMODULE. " STATUS_9000 OUTPUT
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS 'GUI9000'.
SET TITLEBAR 'This is Test Program'.
ENDMODULE. " STATUS_9000 OUTPUT
The below code is VERY VERY.. important for selecting record in table control and process with the record.
*&---------------------------------------------------------------------*
*& Module UPDATE_TABLE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE update_table INPUT.
READ TABLE i_knvv INTO k_knvv INDEX TABLE_CON-CURRENT_LINE.
IF NOT mark IS INITIAL.
k_knvv-sel = 'X'.
MODIFY i_knvv FROM k_knvv INDEX TABLE_CON-CURRENT_LINE.
ENDIF.
ENDMODULE. " UPDATE_TABLE INPUT
*& Module UPDATE_TABLE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE update_table INPUT.
READ TABLE i_knvv INTO k_knvv INDEX TABLE_CON-CURRENT_LINE.
IF NOT mark IS INITIAL.
k_knvv-sel = 'X'.
MODIFY i_knvv FROM k_knvv INDEX TABLE_CON-CURRENT_LINE.
ENDIF.
ENDMODULE. " UPDATE_TABLE INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'OK'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
WHEN 'OK'.
CLEAR:sy-ucomm.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
Input / Output:
Now select one record and press ‘OK’.
The values will come in the o/p screen.
Well explained. Got to learn new things from your Blog on Appium.Appium training in chennai
ReplyDelete