Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

STUDENT HELP: SAMPLE INSERT DATA PROGRAM (DYNPRO)

Former Member
0 Likes
871

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

1 REPLY 1
Read only

Former Member
0 Likes
715

Michael, you can adopt your needs using different technologies. If you tried it using a table-control (with wizard), that is something, I do not recommend. Try searching for "editable ALV grid", which will show your editable data that you can always just take from your internal table and pass it to the INSERT / UPDATE / MODIFY statement. You will find it much easier to use during your progress.

If you have more specific questions, go ahead and ask. But do not expect people will give you the whole code once you do not have the idea (that is the place where it comes to the learning part of it).