NOW I m Click on CHECK Box & Executing the Executing System will perform all four actions below. 1. Deposit Slip No: Given in the input screen 2. Update in BSEG Table Field ZUONR 3. Update on FB02 on Assignment Field 4. calling the smart forms
PRINT PREVIEW OPTION SCREEN
SMARTFORMS OUTPUT..
*TABLES Declaration TABLES: bkpf,bseg,kna1.
TYPE-POOLS: slis. *structure Declaration TYPES : BEGIN OF gty_bkpf, belnr TYPE bkpf-belnr, " Document Number gjahr TYPE bkpf-gjahr, " Fiscal Year blart TYPE bkpf-blart, " Document Type xblnr TYPE bkpf-xblnr, " Reference Document Number budat TYPE bkpf-budat, " Posting Date in the Document END OF gty_bkpf,
gty_t_bkpf TYPE STANDARD TABLE OF gty_bkpf.
TYPES : BEGIN OF gty_bseg, belnr TYPE bseg-belnr, " Document Number gjahr TYPE bseg-gjahr, " Fiscal Year bschl TYPE bseg-bschl, " Posting Key zuonr TYPE bseg-zuonr, " Assignment Number dmbtr TYPE bseg-dmbtr, " Amount in Local Currency prctr TYPE bseg-prctr, " Profit Center sgtxt TYPE bseg-sgtxt, " Item Text valut TYPE bseg-valut, " Value Date kunnr TYPE bseg-kunnr, "Customer Number END OF gty_bseg,
gty_t_bseg TYPE STANDARD TABLE OF gty_bseg.
TYPES:BEGIN OF gty_cepct, kunnr TYPE bseg-kunnr, "Customer Number belnr TYPE bseg-belnr, END OF gty_cepct, gty_t_cepct TYPE STANDARD TABLE OF gty_cepct.
TYPES: BEGIN OF gty_kna1, kunnr TYPE kna1-kunnr, name1 TYPE kna1-name1, END OF gty_kna1, gty_t_kna1 TYPE STANDARD TABLE OF gty_kna1.
TYPES : BEGIN OF gty_final, check, belnr(10) TYPE c, " Clearing Doc Number zuonr TYPE bseg-zuonr," Assignment Number dmbtr TYPE bseg-dmbtr,"Amount in Local Currency xblnr TYPE bkpf-xblnr," Reference Document Number prctr TYPE bseg-prctr, " Profit Center sgtxt TYPE bseg-sgtxt, " Item Text valut TYPE bseg-valut, " Value Date ktext TYPE cepct-ktext, " Profit Center Text name1 TYPE kna1-name1, kunnr TYPE bseg-kunnr, END OF gty_final,
gty_t_final TYPE STANDARD TABLE OF gty_final.
*Global Variables DATA: text(20) TYPE c, gv_assign(40) TYPE c, gv_date TYPE dats, gv_client(40), gv_text(40), gv_name(40), *Global Variables ok_code LIKE sy-ucomm,
* Internal Table & Work Area Declaration gt_bkpf TYPE gty_t_bkpf, gw_bkpf TYPE gty_bkpf,
gt_bseg TYPE gty_t_bseg, gw_bseg TYPE gty_bseg,
gt_cepct TYPE gty_t_cepct, gw_cepct TYPE gty_cepct,
gt_kna1 TYPE gty_t_kna1, gw_kna1 TYPE gty_kna1,
gt_final TYPE gty_t_final, gw_final TYPE gty_final,
gv_count(20) TYPE c, * lv_check(20) TYPE c,
* Field catalog table gt_fcat TYPE slis_t_fieldcat_alv, gw_fcat TYPE slis_fieldcat_alv, * Field catalog table gs_bseg TYPE bseg, gv_flagx, gv_flagy, gv_qty TYPE dmbtr, gt_pay TYPE STANDARD TABLE OF zpay_ss INITIAL SIZE 0, gw_pay TYPE zpay_ss.
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-001. SELECT-OPTIONS: s_budat FOR bkpf-budat. PARAMETERS : s_date TYPE sy-datum OBLIGATORY , s_client TYPE text OBLIGATORY, p_prctr type bseg-prctr OBLIGATORY. PARAMETERS : p_slip TYPE bseg-zuonr OBLIGATORY.
IF gt_final[] IS NOT INITIAL. PERFORM output_display1. PERFORM f_display_alv . ELSE. MESSAGE 'List Contains no data' TYPE 'I'. ENDIF. *&---------------------------------------------------------------------* *& Form FETCH_DATA_RETRIEVAL *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM fetch_data_retrieval .
SELECT belnr " Document Number gjahr " Fiscal Year blart " Document Type xblnr " Reference Document Number
FROM bkpf INTO TABLE gt_bkpf WHERE budat in s_budat and blart = 'DZ'.
IF gt_bkpf IS NOT INITIAL.
SELECT belnr " Document Number gjahr " Fiscal Year bschl " Posting Key zuonr " Assignment Number dmbtr " Amount in Local Currency prctr " Profit Center sgtxt " Item Text valut " Value Date kunnr "Customer Number
FROM bseg INTO TABLE gt_bseg FOR ALL ENTRIES IN gt_bkpf WHERE prctr = p_prctr AND belnr = gt_bkpf-belnr AND gjahr = gt_bkpf-gjahr AND bschl = '40' AND zuonr = ''.
ENDIF.
ENDFORM. " FETCH_DATA_RETRIEVAL *&---------------------------------------------------------------------* *& Form FILL_FINAL *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM fill_final . CLEAR : gv_qty . REFRESH gt_final. LOOP AT gt_bseg INTO gw_bseg.
MOVE : gw_bseg-belnr TO gw_final-belnr, gw_bseg-valut TO gw_final-valut, gw_bseg-dmbtr TO gw_final-dmbtr, gw_bseg-sgtxt TO gw_final-sgtxt.
READ TABLE gt_bkpf INTO gw_bkpf WITH KEY belnr = gw_bseg-belnr gjahr = gw_bseg-gjahr.
MOVE : gw_bkpf-xblnr TO gw_final-xblnr. * To Get The Name1 Description SELECT * FROM bseg INTO bseg WHERE belnr = gw_final-belnr AND bschl = '15'.
gw_final-kunnr = bseg-kunnr.
ENDSELECT. SELECT * FROM kna1 INTO kna1 WHERE kunnr = bseg-kunnr. gw_final-name1 = kna1-name1. ENDSELECT.
APPEND gw_final TO gt_final. CLEAR : gw_final,bseg,kna1.
ENDLOOP. ENDFORM. " FILL_FINAL
*&---------------------------------------------------------------------* *& Form f_display_alv *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM f_display_alv .
DATA:lv_repid TYPE sy-repid. lv_repid = sy-cprog. DATA: w_layout TYPE slis_layout_alv. w_layout-colwidth_optimize = 'X'. w_layout-zebra = 'X'.
*&---------------------------------------------------------------------* *& Form set_pf_status *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->RT_EXTAB text *----------------------------------------------------------------------* FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'Z_FORMFREPORTPF2'.
SET PF-STATUS 'Z_FORMFREPORTPF'.
ENDFORM. "set_pf_status
*&---------------------------------------------------------------------* *& Form user_command *&---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
CLEAR:gv_count. * Variable To Get Profit Center description DATA:lv_pctxt TYPE cepct-ktext.
*CALL Smartforms DATA: zpay_slip TYPE rs38l_fnam.
*CALL Smartforms DATA: lt_bseg TYPE STANDARD TABLE OF bseg, ls_bseg TYPE bseg, ls_bseg_tmp TYPE bseg.
CASE r_ucomm.
WHEN 'BCK'. LEAVE TO SCREEN 'ZPAY_SLIP'.
WHEN 'OKAY'.
DATA:ref_grid TYPE REF TO cl_gui_alv_grid.
IF ref_grid IS INITIAL. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = ref_grid. ENDIF.
IF ref_grid IS NOT INITIAL. CALL METHOD ref_grid->check_changed_data. ENDIF. IF gt_final IS NOT INITIAL. READ TABLE gt_final INTO gw_final WITH KEY check = 'X'. IF sy-subrc NE 0. MESSAGE 'Select at least single record' TYPE 'I'. RETURN. ENDIF.
ENDIF. * Length character adjusment CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' EXPORTING input = gv_assign IMPORTING output = gv_assign EXCEPTIONS length_error = 1 OTHERS = 2. * Length character adjusment
*To Get Profit Center description SELECT SINGLE ktext FROM cepct INTO lv_pctxt WHERE prctr = p_prctr .
IF gs_bseg-zuonr IS INITIAL . LOOP AT gt_final INTO gw_final WHERE check = 'X'. * Count the No.of lines checked in alv output ADD 1 TO gv_count. * Count the No.of lines checked in alv output
* To update the assignment field using these select query & Looping SELECT * FROM bseg INTO TABLE lt_bseg WHERE belnr = gw_final-belnr AND bschl = '40' AND zuonr = ''.
IF lt_bseg IS NOT INITIAL. LOOP AT lt_bseg INTO ls_bseg. MOVE ls_bseg TO ls_bseg_tmp. ls_bseg_tmp-zuonr = gv_assign. MODIFY bseg FROM ls_bseg_tmp. CLEAR: gw_bseg. ENDLOOP. ENDIF.
* * To update the assignment field using these select query & Loopi ng
* To Get The Name1 Description gv_qty = gv_qty + gw_final-dmbtr. * To Get The Name1 Description
CALL FUNCTION zpay_slip EXPORTING p_client = gv_client p_date = gv_date p_assign = gv_assign p_text = lv_pctxt p_dmbtr = gv_qty gv_count = gv_count TABLES gt_slips = gt_pay EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF.
SUBMIT zfi_customer_payment VIA SELECTION-SCREEN AND RETURN WITH s_budat = s_budat WITH s_date = s_date WITH s_client = s_client WITH p_prctr = p_prctr WITH p_slip = p_slip.
* VIA SELECTION-SCREEN AND RETURN. LEAVE TO SCREEN 'ZPAY_SLIP'. IF sy-ucomm = 'BACK' OR sy-ucomm = 'EXIT' OR sy-ucomm = 'CANCEL'. LEAVE PROGRAM. ENDIF. REFRESH gt_final. CLEAR gw_final.
gw_fcat-col_pos = 6. gw_fcat-fieldname = 'SGTXT'. gw_fcat-tabname = 'GT_FINAL'. gw_fcat-seltext_m = 'Bank and Branch'. APPEND gw_fcat TO gt_fcat. CLEAR gw_fcat. ENDFORM. " OUTPUT_DISPLAY1 *&---------------------------------------------------------------------* *& Form F_PROFIT_VALIDATION *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f_profit_validation . DATA : lv_pc TYPE bseg-prctr.
SELECT SINGLE prctr FROM bseg INTO lv_pc WHERE prctr = p_prctr. IF sy-subrc NE 0. MESSAGE 'Enter a Valid Profit center' TYPE 'E'. RETURN. ENDIF. ENDFORM. " F_PROFIT_VALIDATION