You are on page 1of 13

INPUT SCREEN

ALV OUTPUT SCREEN





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.


SELECTION-SCREEN END OF BLOCK blk.


INITIALIZATION.

START-OF-SELECTION.
gv_assign = p_slip.
gv_date = s_date.
gv_client = s_client.
CLEAR:gv_flagx,gv_flagy.



PERFORM f_profit_validation.

PERFORM fetch_data_retrieval.
PERFORM fill_final.

* DESCRIBE TABLE gt_final LINES gv_count.

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'.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
is_layout = w_layout
i_callback_user_command = 'USER_COMMAND'
* i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = gt_fcat[]
i_callback_pf_status_set = 'SET_PF_STATUS'
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = gt_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.

ENDFORM. "f_display_alv


*&---------------------------------------------------------------------*
*& 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

gw_pay-xblnr = gw_final-xblnr.
gw_pay-valut = gw_final-valut.
gw_pay-kunnr = gw_final-kunnr.
gw_pay-name1 = gw_final-name1.
gw_pay-sgtxt = gw_final-sgtxt.
gw_pay-dmbtr = gw_final-dmbtr.



APPEND gw_pay TO gt_pay.
CLEAR:gw_pay.

ENDLOOP.

ENDIF.



CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZPAYING_SLIP'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
fm_name = zpay_slip
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3
.
IF sy-subrc = 0.

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.

ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Module STATUS_2000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_2000 OUTPUT.

SET PF-STATUS 'ZUPDATEPF'.

ENDMODULE. " STATUS_2000 OUTPUT
*&---------------------------------------------------------------------*
*& Form OUTPUT_DISPLAY1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM output_display1 .
gw_fcat-col_pos = 1.
gw_fcat-checkbox = 'X'.
gw_fcat-fieldname = 'CHECK'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Check Box'.
gw_fcat-input = 'X'.
gw_fcat-edit = 'X'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.


gw_fcat-col_pos = 2.
gw_fcat-fieldname = 'BELNR'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Document Number'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.

gw_fcat-col_pos = 3.
gw_fcat-fieldname = 'XBLNR'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Cheque Number'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.

gw_fcat-col_pos = 4.
gw_fcat-fieldname = 'VALUT'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Date'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.

gw_fcat-col_pos = 5.
gw_fcat-fieldname = 'DMBTR'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Amount'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.

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

You might also like