Skip to Content
0
Former Member
Apr 15, 2014 at 11:46 AM

STUDENT HELP: SAMPLE INSERT DATA PROGRAM (DYNPRO)

163 Views

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