Hello,
I am a current student working on a project for school, so assume I am a beginner.
I am asking for an example of a simple ABAP Dynpro (Not WebDynpro, we don't have access to that) program that will allow user to input, modify, and delete multiple records at once to a DB table.
The DB tables are set up like this:
Z_HBK
MANDT
HBK_ID
S_PLANT
R_PLANT
HBK_DATE
Z_HBK_DATA
MANDT
HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
R2S_QTY
DAM_QTY
DEST_QTY
I need to be able to enter multiple records into the Z_HBK_DATA table, with the same HBK_ID. I have set the tables composite key to so the table can accept multiple HBK_ID entries:
MANDT
HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
I have tried countless times to use table wizard, but have not been successful.
Please help my to create simple program that will enter multiple records at 1 time into the Z_HBK_DATA table.
Also, If anyone can help me to add a button onto the following program to allow user to email report from individual report output screen, that would be very helpful as well.
Thank you,
Mike
*&---------------------------------------------------------------------*
*& Report Z03_HBK_REPORT_ALL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z03_HBK_REPORTS.
TYPES: BEGIN OF TY_HBK_DATA,
HBK_ID type Z03_HBK_DOC_NUM,
DRIVER type PERSNO,
CHECKER TYPE PERSNO,
CUSTOMER TYPE KUNNR,
PRODUCT TYPE MATNR,
R2S_QTY TYPE INT2,
DAM_QTY TYPE INT2,
DEST_QTY TYPE INT2,
END OF TY_HBK_DATA,
BEGIN OF TY_HBK_DATA_R2S,
HBK_ID type Z03_HBK_DOC_NUM,
DRIVER type PERSNO,
CHECKER TYPE PERSNO,
CUSTOMER TYPE KUNNR,
PRODUCT TYPE MATNR,
R2S_QTY TYPE INT2,
END OF TY_HBK_DATA_R2S,
BEGIN OF TY_HBK_DATA_DAM,
HBK_ID type Z03_HBK_DOC_NUM,
DRIVER type PERSNO,
CHECKER TYPE PERSNO,
CUSTOMER TYPE KUNNR,
PRODUCT TYPE MATNR,
DAM_QTY TYPE INT2,
END OF TY_HBK_DATA_DAM,
BEGIN OF TY_HBK_DATA_DEST,
HBK_ID type Z03_HBK_DOC_NUM,
DRIVER type PERSNO,
CHECKER TYPE PERSNO,
CUSTOMER TYPE KUNNR,
PRODUCT TYPE MATNR,
DEST_QTY TYPE INT2,
END OF TY_HBK_DATA_DEST.
DATA: IT_HBK_DATA TYPE TABLE OF TY_HBK_DATA,
WA_HBK_DATA TYPE TY_HBK_DATA,
IT_HBK_DATA_R2S TYPE TABLE OF TY_HBK_DATA_R2S,
WA_HBK_DATA_R2S TYPE TY_HBK_DATA_R2S,
IT_HBK_DATA_DAM TYPE TABLE OF TY_HBK_DATA_DAM,
WA_HBK_DATA_DAM TYPE TY_HBK_DATA_DAM,
IT_HBK_DATA_DEST TYPE TABLE OF TY_HBK_DATA_DEST,
WA_HBK_DATA_DEST TYPE TY_HBK_DATA_DEST.
SELECTION-SCREEN BEGIN OF SCREEN 100.
SELECT-OPTIONS: S_DATA FOR WA_HBK_DATA-HBK_ID.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 101.
SELECT-OPTIONS: S_R2S FOR WA_HBK_DATA_R2S-HBK_ID.
SELECTION-SCREEN END OF SCREEN 101.
SELECTION-SCREEN BEGIN OF SCREEN 102.
SELECT-OPTIONS: S_DAM FOR WA_HBK_DATA_DAM-HBK_ID.
SELECTION-SCREEN END OF SCREEN 102.
SELECTION-SCREEN BEGIN OF SCREEN 103.
SELECT-OPTIONS: S_DEST FOR WA_HBK_DATA_DEST-HBK_ID.
SELECTION-SCREEN END OF SCREEN 103.
PARAMETERS: HBK_DATA RADIOBUTTON GROUP ONE,
HBK_R2S RADIOBUTTON GROUP ONE,
HBK_DAM RADIOBUTTON GROUP ONE,
HBK_DEST RADIOBUTTON GROUP ONE.
IF HBK_DATA = 'X'.
CALL SELECTION-SCREEN 100 STARTING AT 10 10 ENDING AT 100 10.
PERFORM GET_HBK_DATA.
PERFORM DISP_HBK_DATA.
ELSEIF HBK_R2S = 'X'.
CALL SELECTION-SCREEN 101 STARTING AT 10 10 ENDING AT 100 10.
PERFORM GET_HBK_DATA_R2S.
PERFORM DISP_HBK_DATA_R2S.
ELSEIF HBK_DAM = 'X'.
CALL SELECTION-SCREEN 102 STARTING AT 10 10 ENDING AT 100 10.
PERFORM GET_HBK_DATA_DAM.
PERFORM DISP_HBK_DATA_DAM.
ELSEIF HBK_DEST = 'X'.
CALL SELECTION-SCREEN 103 STARTING AT 10 10 ENDING AT 100 10.
PERFORM GET_HBK_DATA_DEST.
PERFORM DISP_HBK_DATA_DEST.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GET_HBK_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HBK_DATA .
SELECT HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
R2S_QTY
DAM_QTY
DEST_QTY FROM Z03_HBK_DATA INTO TABLE IT_HBK_DATA
WHERE HBK_ID IN S_DATA.
ENDFORM. " GET_HBK_DATA
*&---------------------------------------------------------------------*
*& Form DISP_HBK_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_HBK_DATA .
LOOP AT IT_HBK_DATA INTO WA_HBK_DATA.
AT FIRST.
WRITE: /10'HAULBACK NUMBER',
30 'DRIVER ID',
50 'CHECKER ID',
70 'CUSTOMER ID',
90 'PRODUCT',
110 'R2S QTY',
130 'DAMAGED QTY',
150 ' DESTROY QTY'.
WRITE: /10 SY-ULINE.
ENDAT.
WRITE: /10 WA_hbk_data-HBK_ID,
30 WA_HBK_DATA-DRIVER,
50 WA_HBK_DATA-CHECKER,
70 WA_HBK_DATA-CUSTOMER,
90 WA_HBK_DATA-PRODUCT,
110 WA_HBK_DATA-R2S_QTY,
130 WA_HBK_DATA-dAM_QTY,
150 WA_HBK_DATA-DEST_QTY.
ENDLOOP.
ENDFORM. " DISP_HBK_DATA
*&---------------------------------------------------------------------*
*& Form GET_HBK_DATA_R2S
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HBK_DATA_R2S .
SELECT HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
R2S_QTY FROM Z03_HBK_DATA INTO TABLE IT_HBK_DATA_R2S
WHERE HBK_ID IN S_R2S.
ENDFORM. " GET_HBK_DATA_R2S
*&---------------------------------------------------------------------*
*& Form DISP_HBK_DATA_R2S
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_HBK_DATA_R2S .
LOOP AT IT_HBK_DATA_R2S INTO WA_HBK_DATA_R2S.
AT FIRST.
WRITE: /10'HAULBACK NUMBER',
30 'DRIVER ID',
50 'CHECKER ID',
70 'CUSTOMER ID',
90 'PRODUCT',
110 'R2S QTY'.
WRITE: /10 SY-ULINE.
ENDAT.
WRITE: /10 WA_hbk_data_R2S-HBK_ID,
30 WA_HBK_DATA_R2S-DRIVER,
50 WA_HBK_DATA_R2S-CHECKER,
70 WA_HBK_DATA_R2S-CUSTOMER,
90 WA_HBK_DATA_R2S-PRODUCT,
110 WA_HBK_DATA_R2S-R2S_QTY.
ENDLOOP.
ENDFORM. " DISP_HBK_DATA_R2S
*&---------------------------------------------------------------------*
*& Form GET_HBK_DATA_DAM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HBK_DATA_DAM .
SELECT HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
DAM_QTY FROM Z03_HBK_DATA INTO TABLE IT_HBK_DATA_DAM
WHERE HBK_ID IN S_DAM.
ENDFORM. " GET_HBK_DATA_DAM
*&---------------------------------------------------------------------*
*& Form DISP_HBK_DATA_DAM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_HBK_DATA_DAM .
LOOP AT IT_HBK_DATA_DAM INTO WA_HBK_DATA_DAM.
AT FIRST.
WRITE: /10'HAULBACK NUMBER',
30 'DRIVER ID',
50 'CHECKER ID',
70 'CUSTOMER ID',
90 'PRODUCT',
130 'DAMAGED QTY'.
WRITE: /10 SY-ULINE.
ENDAT.
WRITE: /10 WA_hbk_data_DAM-HBK_ID,
30 WA_HBK_DATA_DAM-DRIVER,
50 WA_HBK_DATA_DAM-CHECKER,
70 WA_HBK_DATA_DAM-CUSTOMER,
90 WA_HBK_DATA_DAM-PRODUCT,
130 WA_HBK_DATA_DAM-dAM_QTY.
ENDLOOP.
ENDFORM. " DISP_HBK_DATA_DAM
*&---------------------------------------------------------------------*
*& Form GET_HBK_DATA_DEST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HBK_DATA_DEST .
SELECT HBK_ID
DRIVER
CHECKER
CUSTOMER
PRODUCT
DEST_QTY FROM Z03_HBK_DATA INTO TABLE IT_HBK_DATA_DEST
WHERE HBK_ID IN S_DEST.
ENDFORM. " GET_HBK_DATA_DEST
*&---------------------------------------------------------------------*
*& Form DISP_HBK_DATA_DEST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISP_HBK_DATA_DEST .
LOOP AT IT_HBK_DATA_DEST INTO WA_HBK_DATA_DEST.
AT FIRST.
WRITE: /10'HAULBACK NUMBER',
30 'DRIVER ID',
50 'CHECKER ID',
70 'CUSTOMER ID',
90 'PRODUCT',
150 ' DESTROY QTY'.
WRITE: /10 SY-ULINE.
ENDAT.
WRITE: /10 WA_hbk_data_DEST-HBK_ID,
30 WA_HBK_DATA_DEST-DRIVER,
50 WA_HBK_DATA_DEST-CHECKER,
70 WA_HBK_DATA_DEST-CUSTOMER,
90 WA_HBK_DATA_DEST-PRODUCT,
150 WA_HBK_DATA_DEST-DEST_QTY.
ENDLOOP.
ENDFORM. " DISP_HBK_DATA_DEST
Thank you,
Mike