on ā2024 Mar 14 7:54 PM
Hii,
I have written program to display barcode based on material number
1. The report will execute and user click on the checkbox and click on the barcode icon, then that particular record should be printed but the logic, I have written because of that my program is going to DUMP give me the suggestion.
PF Code.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_MBLNR FOR MSEG-MBLNR,
S_BUDAT FOR MSEG-BUDAT_MKPF.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM fetch.
PERFORM loop.
PERFORM fcat1.
PERFORM call.
*&---------------------------------------------------------------------*
*& Form FETCH
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FETCH .
SELECT MBLNR
BUDAT_MKPF
MJAHR
ZEILE
MATNR
MENGE FROM MSEG INTO TABLE IT_MSEG WHERE MBLNR IN S_MBLNR AND BUDAT_MKPF IN S_BUDAT AND BWART IN ( '101' , '561' ) AND WERKS = '1130' AND LGORT = '1092'.
IF IT_MSEG IS NOT INITIAL.
SELECT MATNR
MAKTG FROM MAKT INTO TABLE IT_MAKT FOR ALL ENTRIES IN IT_MARA WHERE MATNR = IT_MARA-MATNR.
SELECT MATNR
* MAKTG
FROM MARA INTO TABLE IT_MARA FOR ALL ENTRIES IN IT_MSEG WHERE MATNR = IT_MSEG-MATNR.
ELSE.
MESSAGE : 'No process allowed' TYPE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form LOOP
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM LOOP .
LOOP AT IT_MSEG INTO WA_MSEG.
WA_FINAL-MBLNR = WA_MSEG-MBLNR.
WA_FINAL-BUDAT = WA_MSEG-BUDAT.
WA_FINAL-MJAHR = WA_MSEG-MJAHR.
WA_FINAL-ZEILE = WA_MSEG-ZEILE.
wa_final-matnr = WA_MSEG-MATNR.
wa_final-MENGE = WA_MSEG-MENGE.
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR.
wa_final-matnr = WA_MAKT-MATNR.
WA_FINAL-MAKTG = WA_MAKT-MAKTG.
READ TABLE IT_MARA INTO WA_MARA WITH KEY MATNR = WA_FINAL-MATNR.
* IF SY-SUBRC = 0.
WA_FINAL-MATNR = WA_MARA-MATNR.
* ENDIF.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDLOOP.
MOVE-CORRESPONDING it_final to it_fin.
ENDFORM.
DATA : fm_name TYPE rs38l_fnam.
DATA : it_control_p TYPE ssfctrlop.
DATA : it_output_op TYPE ssfcompop.
DATA : wa_joi TYPE SSFCRESCL.
*&---------------------------------------------------------------------*
*& Form FCAT1
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FCAT1 .
PERFORM fcat USING 'MATNR' '1' 'IT_FINAL' 'MATERIAL NUMBER' ' '.
PERFORM fcat USING 'MAKTG' '2' 'IT_FINAL' 'MATERIAL DESCRIPTION' ''.
PERFORM fcat USING 'BUDAT' '5' 'IT_FINAL' 'Date of the GRN number' ''.
PERFORM fcat USING 'MBLNR' '4' 'IT_FINAL' 'Grn number' ''.
PERFORM fcat USING 'SEL' '3' 'IT_FINAL' 'CHECKBOX' 'X' . " 'X'.
ENDFORM.
FORM fcat USING VALUE(P_FIELD)
VALUE(P_POS)
VALUE(P_TAB)
VALUE(P_TEXT)
VALUE(P_EDIT).
WA_FCAT-FIELDNAME = P_FIELD.
WA_FCAT-COL_POS = P_POS.
WA_FCAT-TABNAME = P_TAB.
WA_FCAT-SELTEXT_M = P_TEXT.
WA_FCAT-EDIT = P_EDIT.
WA_FCAT-no_zero = 'X'.
IF P_FIELD = 'SEL'.
WA_FCAT-CHECKBOX = 'X'.
WA_FCAT-INPUT = 'X'.
WA_FCAT-edit = abap_true.
ENDIF.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM CALL .
gt_layout-zebra = 'X'.
gt_layout-detail_popup = 'X'.
gt_layout-detail_initial_lines = 'X'.
gt_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZMIGO_BARCODE_CR'
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USE_COMM'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = gt_layout
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* O_PREVIOUS_SRAL_HANDLER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'BARCODE'.
ENDFORM.
FORM USE_COMM USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
if r_ucomm = 'BARCODE'.
*
*CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
* EXPORTING
* FORMNAME = 'ZMIGO_BAR_CR'
* VARIANT = ' '
* DIRECT_CALL = ' '
* IMPORTING
* FM_NAME = FM_NAME
* EXCEPTIONS
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
* OTHERS = 3
* .
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
*ENDIF.
*
*CALL FUNCTION FM_NAME
* EXPORTING
** ARCHIVE_INDEX =
** ARCHIVE_INDEX_TAB =
** ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS = control_parameters
** MAIL_APPL_OBJ =
** MAIL_RECIPIENT =
** MAIL_SENDER =
* OUTPUT_OPTIONS = output_options
* USER_SETTINGS = 'X'
** BARCODE =
* S_MATNR = s_MATNR
** IMPORTING
** DOCUMENT_OUTPUT_INFO =
** JOB_OUTPUT_INFO =
** JOB_OUTPUT_OPTIONS =
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
* .
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
**ENDIF.
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF ref_grid IS BOUND.
CALL METHOD ref_grid->CHECK_CHANGED_DATA.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZMIGO_BAR_CR'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = fm_name
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
** DATA: job_output_info TYPE ssfcrescl,
** otf TYPE TABLE OF itcoo,
** lv_otf TYPE xstring,
** lv_filesize TYPE i,
** lt_lines TYPE tlinetab.
*CALL FUNCTION fm_name "'/1BCDWB/SF00000397'
* EXPORTING
** ARCHIVE_INDEX =
** ARCHIVE_INDEX_TAB =
** ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS = control_parameters
** MAIL_APPL_OBJ =
** MAIL_RECIPIENT =
** MAIL_SENDER =
* OUTPUT_OPTIONS = output_options
*
* barcode_num = ls_serial-sernr
* matnr = ls_serial-matnr
** USER_SETTINGS = 'X'
** S_MATNR1 = MSEG-MATNR
* IMPORTING
* job_output_info = job_output_info
** DOCUMENT_OUTPUT_INFO =
** JOB_OUTPUT_INFO =
** JOB_OUTPUT_OPTIONS =
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
* .
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
*ENDIF.
L_CONTROL-NO_OPEN = 'X'.
L_CONTROL-NO_CLOSE = 'X'.
L_CONTROL-NO_DIALOG = 'X'.
L_CONTROL-PREVIEW = 'X'.
L_CONTROL-GETOTF = 'X'.
L_OUTPUT-TDDEST = 'LP01'.
L_OUTPUT-TDNOPRINT = ' '.
L_OUTPUT-TDIMMED = 'X'.
L_OUTPUT-TDGROUP = 'X'.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
USER_SETTINGS = ' '
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJ =
OUTPUT_OPTIONS = L_OUTPUT
CONTROL_PARAMETERS = L_CONTROL
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
READ TABLE it_fin INTO WA_FIN INDEX 1.
DATA LV_QTY TYPE MSEG-MENGE.
DATA LV_QTY1(2) TYPE N.
LV_QTY = WA_FIN-MENGE.
DO LV_QTY TIMES.
L_CONTROL-NO_OPEN = 'X'.
L_CONTROL-NO_CLOSE = 'X'.
L_CONTROL-NO_DIALOG = 'X'.
L_CONTROL-PREVIEW = 'X'.
L_CONTROL-GETOTF = 'X'.
L_OUTPUT-TDDEST = 'LP01'.
L_OUTPUT-TDNOPRINT = ' '.
L_OUTPUT-TDIMMED = 'X'.
L_OUTPUT-TDGROUP = 'X'.
*LV_QTY1 = LV_QTY1 + 1.
CALL FUNCTION '/1BCDWB/SF00000397'
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = L_CONTROL
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = L_OUTPUT
USER_SETTINGS = 'X'
* LV_QTY1 = LV_QTY1
IMPORTING
* DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = wa_joi
* JOB_OUTPUT_OPTIONS =
TABLES
IT_FINAL = it_fin
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDDO.
Request clarification before answering.
| User | Count |
|---|---|
| 8 | |
| 5 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.