cancel
Showing results for 
Search instead for 
Did you mean: 

why when i press execute button, my program report it close ?

former_member635273
Participant

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member635273
Participant

Sorry All. I make mistake when i create Tcode. I choose dialog transaction when making tcode.it shoud be report transaction.

thanks.

FredericGirod
Active Contributor
0 Kudos

Nice to put the raison for futur people, don't forget to close your thread

former_member1716
Active Contributor
0 Kudos

saddam.id,

Your Code designing is not right. Below are few corrections from the code you have pasted:

1) INCLUDES Must be declared before Start of Selection.

2) Events Declaration must be handled properly.

3) What you have written inside your perform defines the program functionality.

From what i see, the program has to cover a lot of basics before it is implemented. Request you to go through the forum and other tutorials that could help build your knowledge.

Below Code and Links could help you with basics:

REPORT zteszt.

*- TOP Include - for Data Declarations/Initialization etc
INCLUDE ztest_top.

*- Selection Screen
INCLUDE ztest_f01.

*- Sub-routines
INCLUDE ztest_f02.

*-Initialization
INITIALIZATION.
  PERFORM Initial.
  
AT SELECTION-SCREEN ON VALUE-REQUEST FOR field.
* To Display the Section Values.
  PERFORM f_Test_display.
  
* To Modify Screen output
AT SELECTION-SCREEN OUTPUT.
  PERFORM Validation.

AT SELECTION-SCREEN.
* Check Section Value
  PERFORM check_section.

*-Start of Selection
START-OF-SELECTION.

*-Read Data from DB
  PERFORM f_read_data.

*-Display the ALV
  PERFORM f_display_alv.

LINK

Regards!

former_member635273
Participant
0 Kudos

i hve change my code like below.

TYPE-POOLS: slis.
TYPES: BEGIN OF  ty_main,
         vbeln      TYPE vbap-vbeln,
         posnr      TYPE vbap-posnr,
         matnr      TYPE vbap-matnr,
         arktx      TYPE vbap-arktx,
         posex      TYPE vbap-posex,
         kwmeng     TYPE vbap-kwmeng,
         vrkme      TYPE vbap-vrkme,

         audat      TYPE vbak-audat,
         auart      TYPE vbak-auart,
         waerk      TYPE vbak-waerk,
         vkorg      TYPE vbak-vkorg,
         bstnk      TYPE vbak-bstnk,

         name1      TYPE kna1-name1,
         stras      TYPE kna1-stras,
         ort01      TYPE kna1-ort01,
         land1      TYPE kna1-land1,

         vbeln_od   TYPE lips-vbeln,
         posnr_od   TYPE lips-posnr,
         lfimg      TYPE lips-lfimg,
         vrkme_od   TYPE lips-vrkme,

         bldat      TYPE likp-bldat,
         wadat      TYPE likp-wadat,
         lfart      TYPE likp-lfart,
         wadat_ist  TYPE likp-wadat,

         fkdat      TYPE vbrk-fkdat,
         fkart      TYPE vbrk-fkart,
         fksta      TYPE vbup-fksta,
         wbsta      TYPE vbup-wbsta,

         p_kunnr_se TYPE vbrk-kunrg,
         p_kunnr_sp TYPE vbak-kunnr,
       END OF ty_main.
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      gd_repid     TYPE sy-repid,
      gd_layout    TYPE slis_layout_alv,
      g_save       TYPE c VALUE 'X',
      g_variant    TYPE disvariant,
      gx_variant   TYPE disvariant.
DATA : it_main TYPE STANDARD TABLE OF ty_main WITH HEADER LINE,
       wa_main TYPE ty_main.
SELECT-OPTIONS: p_vkorg FOR it_main-vkorg,
                p_kunnr1 FOR it_main-p_kunnr_se,
                p_kunnr2 FOR it_main-p_kunnr_sp.

**GETTING DEFAULT VARIANT
INITIALIZATION.
  gx_variant-report = sy-repid.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = g_save
    CHANGING
      cs_variant = gx_variant
    EXCEPTIONS
      not_found  = 2.
*  IF sy-subrc = 0.
*    variant = gx_variant-variant.
*  ENDIF.

START-OF-SELECTION.

  PERFORM fm_get_data.
  PERFORM fm_build_fcat.
  PERFORM fm_display_alv.

FORM fm_get_data.
  SELECT a~vbeln, a~posnr, a~posex, a~matnr, a~arktx, a~kwmeng, a~vrkme,
         b~audat, b~auart, b~bstnk, b~vkorg, b~waerk,
         c~name1, c~stras, c~ort01, c~land1,
         d~vbeln AS vbeln_od, d~posnr AS posnr_od, d~lfimg, d~vrkme AS vrkme_od,
         e~bldat, e~lfart, e~wadat_ist, e~wadat,
         g~fkart, g~fkdat,
         i~wbsta, i~fksta
         FROM vbap AS a
         JOIN vbak AS b ON a~vbeln = b~vbeln
         JOIN kna1 AS c ON b~kunnr = c~kunnr
         LEFT JOIN lips AS d ON a~vbeln = d~vgbel AND a~posnr = d~vgpos
         JOIN likp AS e ON d~vbeln  = e~vbeln
         LEFT JOIN vbrp AS f ON f~vgbel = d~vbeln AND f~vgpos = d~posnr
         JOIN vbrk AS g ON g~vbeln  = f~vbeln
         JOIN vbpa AS h ON b~vbeln = h~vbeln
        JOIN vbup AS i ON i~vbeln = h~vbeln AND i~posnr = h~posnr
        INTO CORRESPONDING FIELDS OF TABLE @it_main
        WHERE b~vkorg = @p_vkorg AND
              h~kunnr = @p_kunnr1 AND
              h~parvw = 'SE' AND
              b~kunnr = @p_kunnr2 AND
              i~fksta  <> 'C'.

ENDFORM.

FORM fm_build_fcat .
  fieldcatalog-fieldname   = 'AUDAT'.
  fieldcatalog-seltext_m   = 'SO Date'.
  fieldcatalog-col_pos     = 0.
  fieldcatalog-key     = 'X'.
  fieldcatalog-outputlen   = 12.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'AUART'.
  fieldcatalog-seltext_m   = 'SO Type'.
  fieldcatalog-col_pos     = 1.
  fieldcatalog-key     = 'X'.
  fieldcatalog-outputlen   = 12.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'VBELN'.
  fieldcatalog-seltext_m   = 'SO Number'.
  fieldcatalog-col_pos     = 2.
  fieldcatalog-key     = 'X'.
  fieldcatalog-outputlen   = 12.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'POSNr'.
  fieldcatalog-seltext_m   = 'SO Item'.
  fieldcatalog-col_pos     = 3.
  fieldcatalog-key     = 'X'.
  fieldcatalog-outputlen   = 12.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'BSTNK'.
  fieldcatalog-seltext_m   = 'PO Customer'.
  fieldcatalog-col_pos     = 4.
  fieldcatalog-key     = 'X'.
  fieldcatalog-outputlen   = 12.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.
ENDFORM.

FORM fm_display_alv .
  gd_repid = sy-repid.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM                = gd_repid
      I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
      it_fieldcat   = fieldcatalog[]
      i_default     = 'X'
      I_SAVE        = 'A'
      IS_VARIANT    = g_variant
    TABLES
      t_outtab      = it_main
    EXCEPTIONS
      program_error = 1
      OTHERS        = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.
FredericGirod
Active Contributor

I know it is for helping new developper, but this way of coding is outdated

irfanjazz1
Participant
0 Kudos

You need to move your INCLUDE zots01_fm_build_fcat to INCLUDE zots01_fm_display_alv.

after thad if didn't work then show your all source program...

FredericGirod
Active Contributor
0 Kudos

Because it does not find the ALV Grid

Why do you put the include at the end of the program ?

former_member635273
Participant
0 Kudos

i've changed like that. i put my subroutine directly in main program. but still same.