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

Sample code on ALV using OOPS

vinod_vemuru2
Active Contributor
0 Likes
1,327

Hi All,

Can any one provide me sample codes/transaction for ALV programs using OOPS concepts.

Thanks,

Vinod.

5 REPLIES 5
Read only

Former Member
0 Likes
670

BC_ALV_GRID_CONTROL

BC_ALVHIERGRID1_D100

BC_ALVHIERGRID1_D210

BC_ALVHIERGRID1_HIER

BC_ALV_DEMO_HTML_D0100

BC_ALV_GRID_CONTROL

BC_ALVEXCEL

BC_ALVEXCEL_D100

BC_ALVEXCEL_D210

BC_ALVEXCEL_HIER

BC_ALVEXCEL_SAP_TEMPL

BC_ALVEXCEL_SAP_TEMPL_F01

BC_ALVEXCEL_SAP_TEMPL_TOP

BC_ALVEXCELTOP

BC_ALVHIERGRID1_D100

BC_ALVHIERGRID1_D210

BC_ALVHIERGRID1_HIER

BC_ALVHIERTOP

Read only

aris_hidalgo
Contributor
0 Likes
670

Hi,

Please take a look at the report I made using OO ALV:

[code]

&----


*& Report ZFI_VENDOR_PYMT_INQUIRY

*&

*& PROGRAM TYPE : Report

*& RICEF ID : 536

*& TITLE : ZFI_VENDOR_PYMT_INQUIRY

*& SAP Module : FI - AP

*& CREATION DATE : 08/09/2007

*& AUTHOR : Aris Hidalgo

*& DESIGNER : Aris Hidalgo

&----


*& DESCRIPTION :

&----


$*********************************************************************

*$ CHANGE HISTORY

*$----


*$ DATE | T-Num | Description | Reference

    • | | |

$*********************************************************************

REPORT zfi_vendor_pymt_inquiry

NO STANDARD PAGE HEADING

MESSAGE-ID zfi.

----


  • Data Dictionary Table/s *

----


TABLES: lfa1,

bkpf,

bsak,

payr,

zcheck_monitor.

CLASS lcl_event_receiver DEFINITION DEFERRED.

----


  • Global Data/s *

----


DATA: gt_fieldcat TYPE lvc_t_fcat,

ok_code TYPE syst-ucomm,

save_ok TYPE syst-ucomm,

g_repid TYPE syst-repid,

gs_layout TYPE lvc_s_layo,

gv_container TYPE scrfname VALUE 'CUSTOM_CONTROL',

grid1 TYPE REF TO cl_gui_alv_grid,

custom_container TYPE REF TO cl_gui_custom_container,

event_receiver TYPE REF TO lcl_event_receiver,

gs_disvariant TYPE disvariant.

----


  • Global Structure/s *

----


TYPES: BEGIN OF t_output,

bukrs TYPE bsak-bukrs,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

lnrza TYPE lfa1-name1, "Name of alternate payee

augbl TYPE bsak-augbl,

belnr TYPE bsak-belnr,

buzei TYPE bsak-buzei,

budat TYPE bsak-budat,

bldat TYPE bsak-bldat,

dmbtr TYPE bsak-dmbtr,

wrbtr TYPE bsak-wrbtr,

waers TYPE bsak-waers,

zchect TYPE zcheck_monitor-zchect,

zaldt TYPE payr-zaldt,

xblnr TYPE bsak-xblnr,

sgtxt TYPE bsak-sgtxt,

zuonr TYPE bsak-zuonr,

blart TYPE bsak-blart,

zrcdap TYPE zcheck_monitor-zrcdap,

zrlsvd TYPE zcheck_monitor-zrlsvd,

zbancd TYPE zcheck_monitor-zbancd,

usnam TYPE bkpf-usnam,

gjahr TYPE bsak-gjahr,

END OF t_output.

----


  • Global Internal Table/s *

----


DATA: gt_output TYPE STANDARD TABLE OF t_output.

----


  • Global Work Area/s *

----


DATA: wa_output LIKE LINE OF gt_output.

----


  • SELECTION-SCREEN *

----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS: s_bukrs FOR bsak-bukrs OBLIGATORY,

s_lifnr FOR bsak-lifnr,

s_ktokk FOR lfa1-ktokk,

s_sortl FOR lfa1-sortl.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

SELECT-OPTIONS: s_belnr FOR bkpf-belnr,

s_bldat FOR bsak-bldat,

s_budat FOR bkpf-budat,

s_blart FOR bsak-blart,

s_umskz FOR bsak-umskz,

s_xblnr FOR bsak-xblnr,

s_usnam FOR bkpf-usnam,

s_gjahr FOR bsak-gjahr NO INTERVALS NO-DISPLAY.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-026.

SELECT-OPTIONS: s_zchect FOR zcheck_monitor-zchect,

s_zaldt FOR payr-zaldt.

SELECTION-SCREEN END OF BLOCK b4.

SELECTION-SCREEN END OF BLOCK b1.

*/ CLASS DEFINITION/S

----


  • CLASS lcl_data_def DEFINITION

----


*

----


CLASS lcl_data_def DEFINITION ABSTRACT.

PROTECTED SECTION.

TYPES: BEGIN OF t_vendor_details,

bukrs TYPE bsik-bukrs,

umskz TYPE bsik-umskz,

augdt TYPE bsik-augdt,

augbl TYPE bsik-augbl,

belnr TYPE bsik-belnr,

buzei TYPE bsik-buzei,

budat TYPE bsik-budat,

bldat TYPE bsik-bldat,

xblnr TYPE bsik-xblnr,

blart TYPE bsik-blart,

dmbtr TYPE bsik-dmbtr,

wrbtr TYPE bsik-wrbtr,

waers TYPE bsik-waers,

sgtxt TYPE bsik-sgtxt,

zuonr TYPE bsik-zuonr,

shkzg TYPE bsik-shkzg,

gjahr TYPE bsik-gjahr,

empfb TYPE bsik-empfb,

ktokk TYPE lfa1-ktokk,

sortl TYPE lfa1-sortl,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

lnrza TYPE lfa1-lnrza,

usnam TYPE bkpf-usnam,

END OF t_vendor_details.

TYPES: BEGIN OF t_bkpf,

bukrs TYPE bkpf-bukrs,

belnr TYPE bkpf-belnr,

gjahr TYPE bkpf-gjahr,

usnam TYPE bkpf-usnam,

END OF t_bkpf.

TYPES: BEGIN OF t_alt_payee,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

END OF t_alt_payee.

TYPES: BEGIN OF t_payment_details,

zzbukr TYPE zcheck_monitor-zzbukr,

zvblnr TYPE zcheck_monitor-zvblnr,

zchect TYPE zcheck_monitor-zchect,

zrcdap TYPE zcheck_monitor-zrcdap,

zrlsvd TYPE zcheck_monitor-zrlsvd,

zbancd TYPE zcheck_monitor-zbancd,

END OF t_payment_details.

TYPES: BEGIN OF t_payr,

zbukr TYPE payr-zbukr,

chect TYPE payr-chect,

vblnr TYPE payr-vblnr,

zaldt TYPE payr-zaldt,

END OF t_payr.

CLASS-DATA: gt_vendor_details TYPE STANDARD TABLE OF t_vendor_details,

gt_bkpf TYPE HASHED TABLE OF t_bkpf

WITH UNIQUE KEY bukrs belnr gjahr,

gt_alt_payee TYPE HASHED TABLE OF t_alt_payee

WITH UNIQUE KEY lifnr,

gt_payment_details TYPE STANDARD TABLE OF t_payment_details,

gt_payr TYPE STANDARD TABLE OF t_payr,

gr_zvblnr TYPE RANGE OF zcheck_monitor-zvblnr,

wa_zvblnr LIKE LINE OF gr_zvblnr.

ENDCLASS. "lcl_data_def DEFINITION

----


  • CLASS lcl_get_data DEFINITION

----


*

----


CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.

PUBLIC SECTION.

METHODS: get_records,

get_altpayee_name,

get_payment_details_1,

get_payment_details_2,

process_data,

get_check_num.

PRIVATE SECTION.

TYPES: BEGIN OF t_bsas,

bukrs TYPE bsas-bukrs,

belnr TYPE bsas-belnr,

gjahr TYPE bsas-gjahr,

buzei TYPE bsas-buzei,

augbl TYPE bsas-augbl,

END OF t_bsas.

TYPES: BEGIN OF t_bsak,

bukrs TYPE bsak-bukrs,

belnr TYPE bsak-belnr,

gjahr TYPE bsak-gjahr,

buzei TYPE bsak-buzei,

augbl TYPE bsak-augbl,

lifnr TYPE bsak-lifnr,

empfb TYPE bsak-empfb,

END OF t_bsak.

TYPES: BEGIN OF t_payr_dum,

zbukr TYPE payr-zbukr,

vblnr TYPE payr-vblnr,

gjahr TYPE payr-gjahr,

chect TYPE payr-chect,

zaldt TYPE payr-zaldt,

END OF t_payr_dum.

TYPES: BEGIN OF t_alt_payee2,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

lnrza TYPE lfa1-lnrza,

END OF t_alt_payee2.

DATA: lt_vendor_details_dum TYPE STANDARD TABLE OF t_vendor_details,

lt_bsas TYPE SORTED TABLE OF t_bsas

WITH NON-UNIQUE KEY bukrs belnr gjahr,

lt_bsak TYPE SORTED TABLE OF t_bsak

WITH NON-UNIQUE KEY bukrs belnr gjahr,

lt_payr TYPE SORTED TABLE OF t_payr_dum

WITH NON-UNIQUE KEY zbukr vblnr gjahr,

lt_alt_payee2 TYPE HASHED TABLE OF t_alt_payee2

WITH UNIQUE KEY lifnr,

lt_alt_payee_dum LIKE lt_alt_payee2,

lt_payment_details TYPE SORTED TABLE OF t_payment_details

WITH NON-UNIQUE KEY zzbukr zvblnr zchect.

ENDCLASS. "lcl_get_data DEFINITION

----


  • CLASS lcl_alv_routines DEFINITION

----


*

----


CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_data_def.

PUBLIC SECTION.

METHODS: build_fieldcat FINAL.

CLASS-DATA: wa_fieldcat LIKE LINE OF gt_fieldcat.

ENDCLASS. "lcl_alv_routines DEFINITION

----


  • CLASS lcl_event_receiver DEFINITION

----


*

----


CLASS lcl_event_receiver DEFINITION INHERITING FROM lcl_alv_routines FINAL.

PUBLIC SECTION.

METHODS: handle_hotspot_click

FOR EVENT hotspot_click OF cl_gui_alv_grid

IMPORTING

e_row_id

e_column_id

es_row_no.

ENDCLASS. "lcl_event_receiver DEFINITION

*/ CLASS IMPLEMENTATIONS

----


  • CLASS lcl_get_data IMPLEMENTATION

----


*

----


CLASS lcl_get_data IMPLEMENTATION.

  • METHOD get_records

METHOD get_records.

IF s_zchect[] IS INITIAL AND s_zaldt[] IS INITIAL.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

  • PERCENTAGE = 0

text = text-031.

  • Get records from BSIK(Open Items)

SELECT bsik~bukrs bsik~umskz bsik~augdt bsik~augbl bsik~belnr

bsik~buzei bsik~budat bsik~bldat bsik~xblnr bsik~blart

bsik~dmbtr bsik~wrbtr bsik~waers bsik~sgtxt bsik~zuonr

bsik~shkzg bsik~gjahr bsik~empfb lfa1~ktokk lfa1~sortl

lfa1~lifnr lfa1~name1 lfa1~lnrza

FROM bsik

INNER JOIN lfa1

ON lfa1~lifnr = bsik~lifnr

INTO TABLE gt_vendor_details

WHERE bsik~mandt = sy-mandt

AND bsik~lifnr IN s_lifnr

AND bsik~bukrs IN s_bukrs

AND bsik~gjahr IN s_gjahr

AND bsik~belnr IN s_belnr

AND bsik~budat IN s_budat

AND bsik~bldat IN s_bldat

AND bsik~blart IN s_blart

AND bsik~umskz IN s_umskz

AND bsik~xblnr IN s_xblnr

AND lfa1~ktokk IN s_ktokk

AND lfa1~sortl IN s_sortl.

  • Get records from BSAK(Cleared Items)

SELECT bsak~bukrs bsak~umskz bsak~augdt bsak~augbl bsak~belnr

bsak~buzei bsak~budat bsak~bldat bsak~xblnr bsak~blart

bsak~dmbtr bsak~wrbtr bsak~waers bsak~sgtxt bsak~zuonr

bsak~shkzg bsak~gjahr bsak~empfb lfa1~ktokk lfa1~sortl

lfa1~lifnr lfa1~name1 lfa1~lnrza

FROM bsak

INNER JOIN lfa1

ON lfa1~lifnr = bsak~lifnr

APPENDING table gt_vendor_details

WHERE bsak~mandt = sy-mandt

AND bsak~lifnr IN s_lifnr

AND bsak~bukrs IN s_bukrs

AND bsak~gjahr IN s_gjahr

AND bsak~belnr IN s_belnr

AND bsak~budat IN s_budat

AND bsak~bldat IN s_bldat

AND bsak~blart IN s_blart

AND bsak~umskz IN s_umskz

AND bsak~xblnr IN s_xblnr

AND lfa1~ktokk IN s_ktokk

AND lfa1~sortl IN s_sortl.

ELSE.

CALL METHOD me->get_payment_details_2.

  • Get records from BSAK(Cleared Items)

SELECT bsak~bukrs bsak~umskz bsak~augdt bsak~augbl bsak~belnr

bsak~buzei bsak~budat bsak~bldat bsak~xblnr bsak~blart

bsak~dmbtr bsak~wrbtr bsak~waers bsak~sgtxt bsak~zuonr

bsak~shkzg bsak~gjahr bsak~empfb lfa1~ktokk lfa1~sortl

lfa1~lifnr lfa1~name1 lfa1~lnrza

FROM bsak

INNER JOIN lfa1

ON lfa1~lifnr = bsak~lifnr

INTO TABLE gt_vendor_details

FOR ALL ENTRIES IN gt_payment_details

WHERE bsak~mandt = sy-mandt

AND bsak~lifnr IN s_lifnr

AND bsak~bukrs = gt_payment_details-zzbukr

AND bsak~gjahr IN s_gjahr

AND bsak~belnr IN s_belnr

AND bsak~budat IN s_budat

AND bsak~bldat IN s_bldat

AND bsak~blart IN s_blart

AND bsak~umskz IN s_umskz

AND bsak~xblnr IN s_xblnr

AND lfa1~ktokk IN s_ktokk

AND lfa1~sortl IN s_sortl

AND bsak~augbl = gt_payment_details-zvblnr.

ENDIF.

IF NOT gt_vendor_details[] IS INITIAL.

CALL METHOD me->get_altpayee_name.

CALL METHOD me->get_payment_details_1.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

  • PERCENTAGE = 0

text = text-032.

  • Process data

CALL METHOD me->process_data.

ENDIF.

ENDMETHOD. "get_records

  • METHOD get_altpayee_name

METHOD get_altpayee_name.

SELECT lifnr name1

FROM lfa1

INTO TABLE gt_alt_payee

FOR ALL ENTRIES IN gt_vendor_details

WHERE lifnr = gt_vendor_details-lnrza.

ENDMETHOD. "get_altpayee_name

  • METHOD get_payment_details_1

METHOD get_payment_details_1.

IF s_zchect[] IS INITIAL AND s_zaldt[] IS INITIAL.

SELECT zzbukr zvblnr zchect zrcdap zrlsvd zbancd

FROM zcheck_monitor

INTO TABLE gt_payment_details

FOR ALL ENTRIES IN gt_vendor_details

WHERE zzbukr = gt_vendor_details-bukrs

AND zvblnr = gt_vendor_details-augbl.

DELETE gt_payment_details WHERE zvblnr IS INITIAL.

IF NOT gt_payment_details[] IS INITIAL.

SELECT zbukr chect vblnr zaldt

FROM payr

INTO TABLE gt_payr

FOR ALL ENTRIES IN gt_payment_details

WHERE zbukr = gt_payment_details-zzbukr

AND vblnr = gt_payment_details-zvblnr

AND chect = gt_payment_details-zchect

AND zaldt IN s_zaldt.

DELETE gt_payr WHERE vblnr IS INITIAL.

ENDIF.

ENDIF.

ENDMETHOD. "get_payment_details_1

  • METHOD get_payment_details_2

METHOD get_payment_details_2.

SELECT zzbukr zvblnr zchect

zrcdap zrlsvd zbancd

FROM zcheck_monitor

INTO TABLE gt_payment_details

WHERE zzbukr IN s_bukrs

AND zchect IN s_zchect.

IF NOT gt_payment_details[] IS INITIAL.

SELECT zbukr chect vblnr zaldt

FROM payr

INTO TABLE gt_payr

FOR ALL ENTRIES IN gt_payment_details

WHERE zbukr = gt_payment_details-zzbukr

AND vblnr = gt_payment_details-zvblnr

AND chect = gt_payment_details-zchect

AND zaldt IN s_zaldt.

ENDIF.

ENDMETHOD. "get_payment_details_2

  • METHOD process_data

METHOD process_data.

FIELD-SYMBOLS: <fs_vendor_details> LIKE LINE OF gt_vendor_details,

<fs_bkpf> LIKE LINE OF gt_bkpf,

<fs_alt_payee> LIKE LINE OF gt_alt_payee,

<fs_payment_details> LIKE LINE OF gt_payment_details,

<fs_payr> LIKE LINE OF gt_payr.

FIELD-SYMBOLS: <fs_vendor_details_dum> LIKE LINE OF lt_vendor_details_dum,

<fs_bsas> LIKE LINE OF lt_bsas,

<fs_bsak> LIKE LINE OF lt_bsak,

<fs_payr2> LIKE LINE OF lt_payr,

<fs_alt_payee_dum> LIKE LINE OF lt_alt_payee_dum,

<fs_alt_payee2> LIKE LINE OF lt_alt_payee2,

<fs_payment_details2> LIKE LINE OF lt_payment_details.

  • Limit records to check number specified

IF NOT s_zchect[] IS INITIAL.

LOOP AT gt_payment_details ASSIGNING <fs_payment_details>.

wa_zvblnr-sign = 'I'.

wa_zvblnr-option = 'EQ'.

MOVE <fs_payment_details>-zvblnr TO wa_zvblnr-low.

APPEND wa_zvblnr TO gr_zvblnr.

CLEAR wa_zvblnr.

ENDLOOP.

DELETE gt_vendor_details WHERE NOT augbl IN gr_zvblnr.

ENDIF.

  • Limit records to check date specified

IF NOT s_zaldt[] IS INITIAL.

REFRESH gr_zvblnr.

LOOP AT gt_payr ASSIGNING <fs_payr>.

wa_zvblnr-sign = 'I'.

wa_zvblnr-option = 'EQ'.

MOVE <fs_payr>-vblnr TO wa_zvblnr-low.

APPEND wa_zvblnr TO gr_zvblnr.

CLEAR wa_zvblnr.

ENDLOOP.

IF gr_zvblnr[] IS INITIAL.

REFRESH gt_vendor_details.

ELSE.

DELETE gt_vendor_details WHERE NOT augbl IN gr_zvblnr.

ENDIF.

ENDIF.

IF NOT gt_vendor_details[] IS INITIAL.

SELECT bukrs belnr gjahr usnam

FROM bkpf

INTO TABLE gt_bkpf

FOR ALL ENTRIES IN gt_vendor_details

WHERE bukrs = gt_vendor_details-bukrs

AND belnr = gt_vendor_details-belnr

AND gjahr = gt_vendor_details-gjahr

AND usnam IN s_usnam.

IF NOT gt_bkpf[] IS INITIAL.

lt_vendor_details_dum[] = gt_vendor_details[].

DELETE lt_vendor_details_dum WHERE blart <> 'ZP'

AND blart <> 'KZ'.

  • Get check number(For check cutting)

IF NOT lt_vendor_details_dum[] IS INITIAL.

CALL METHOD me->get_check_num.

ENDIF.

DELETE gt_vendor_details WHERE blart = 'KZ'

OR blart = 'ZP'.

SORT gt_payment_details BY zzbukr zvblnr.

SORT gt_vendor_details BY bukrs augbl.

LOOP AT gt_vendor_details ASSIGNING <fs_vendor_details>.

  • Limit records to be passed according to username(If applicable)

READ TABLE gt_bkpf ASSIGNING <fs_bkpf> WITH TABLE KEY bukrs = <fs_vendor_details>-bukrs

belnr = <fs_vendor_details>-belnr

gjahr = <fs_vendor_details>-gjahr.

IF sy-subrc = 0.

MOVE <fs_bkpf>-usnam TO wa_output-usnam.

IF <fs_vendor_details>-shkzg = 'H'. "Credit

<fs_vendor_details>-dmbtr = <fs_vendor_details>-dmbtr * -1.

<fs_vendor_details>-wrbtr = <fs_vendor_details>-wrbtr * -1.

ENDIF.

  • Pass records to output table

MOVE: <fs_vendor_details>-bukrs TO wa_output-bukrs,

<fs_vendor_details>-lifnr TO wa_output-lifnr,

<fs_vendor_details>-name1 TO wa_output-name1,

<fs_vendor_details>-augbl TO wa_output-augbl,

<fs_vendor_details>-belnr TO wa_output-belnr,

<fs_vendor_details>-buzei TO wa_output-buzei,

<fs_vendor_details>-budat TO wa_output-budat,

<fs_vendor_details>-bldat TO wa_output-bldat,

<fs_vendor_details>-dmbtr TO wa_output-dmbtr,

<fs_vendor_details>-wrbtr TO wa_output-wrbtr,

<fs_vendor_details>-waers TO wa_output-waers,

<fs_vendor_details>-xblnr TO wa_output-xblnr,

<fs_vendor_details>-sgtxt TO wa_output-sgtxt,

<fs_vendor_details>-zuonr TO wa_output-zuonr,

<fs_vendor_details>-blart TO wa_output-blart,

<fs_vendor_details>-gjahr TO wa_output-gjahr.

  • Pass name of alternate payee

IF NOT <fs_vendor_details>-lnrza IS INITIAL.

READ TABLE gt_alt_payee ASSIGNING <fs_alt_payee>

WITH TABLE KEY lifnr = <fs_vendor_details>-lnrza.

IF sy-subrc = 0.

MOVE <fs_alt_payee>-name1 TO wa_output-lnrza.

ENDIF.

ELSE.

MOVE <fs_vendor_details>-empfb TO wa_output-lnrza.

ENDIF.

  • Pass payment details

IF NOT <fs_vendor_details>-augbl IS INITIAL.

READ TABLE gt_payment_details ASSIGNING <fs_payment_details>

WITH KEY zzbukr = <fs_vendor_details>-bukrs

zvblnr = <fs_vendor_details>-augbl

BINARY SEARCH.

IF sy-subrc = 0.

MOVE: <fs_payment_details>-zchect TO wa_output-zchect,

<fs_payment_details>-zrcdap TO wa_output-zrcdap,

<fs_payment_details>-zrlsvd TO wa_output-zrlsvd,

<fs_payment_details>-zbancd TO wa_output-zbancd.

  • Pass payment date

READ TABLE gt_payr ASSIGNING <fs_payr> WITH KEY zbukr = <fs_vendor_details>-bukrs

chect = wa_output-zchect

vblnr = <fs_vendor_details>-augbl.

IF sy-subrc = 0.

MOVE <fs_payr>-zaldt TO wa_output-zaldt.

ELSE.

CONTINUE.

ENDIF.

ENDIF.

  • Routine for moving check number if transaction is check-cutting

IF wa_output-zchect IS INITIAL.

READ TABLE lt_bsas ASSIGNING <fs_bsas> WITH TABLE KEY bukrs = <fs_vendor_details>-bukrs

belnr = <fs_vendor_details>-augbl

gjahr = <fs_vendor_details>-gjahr.

IF sy-subrc = 0.

READ TABLE lt_bsak ASSIGNING <fs_bsak> WITH TABLE KEY bukrs = <fs_bsas>-bukrs

belnr = <fs_bsas>-augbl

gjahr = <fs_bsas>-gjahr.

IF sy-subrc = 0.

IF wa_output-lnrza IS INITIAL.

READ TABLE lt_alt_payee_dum ASSIGNING <fs_alt_payee_dum> WITH TABLE KEY lifnr = <fs_bsak>-lifnr.

IF sy-subrc = 0.

READ TABLE lt_alt_payee2 ASSIGNING <fs_alt_payee2> WITH TABLE KEY lifnr = <fs_alt_payee_dum>-lnrza.

IF sy-subrc = 0.

wa_output-lnrza = <fs_alt_payee2>-name1.

ELSE.

wa_output-lnrza = <fs_bsak>-empfb.

ENDIF.

ENDIF.

ENDIF.

READ TABLE lt_payr ASSIGNING <fs_payr2> WITH TABLE KEY zbukr = <fs_bsak>-bukrs

vblnr = <fs_bsak>-augbl

gjahr = <fs_bsak>-gjahr.

IF sy-subrc = 0.

wa_output-zchect = <fs_payr2>-chect.

wa_output-zaldt = <fs_payr2>-zaldt.

READ TABLE lt_payment_details ASSIGNING <fs_payment_details2> WITH TABLE KEY zzbukr = <fs_payr2>-zbukr

zvblnr = <fs_payr2>-vblnr

zchect = <fs_payr2>-chect.

IF sy-subrc = 0.

MOVE: <fs_payment_details2>-zrcdap TO wa_output-zrcdap,

<fs_payment_details2>-zrlsvd TO wa_output-zrlsvd,

<fs_payment_details2>-zbancd TO wa_output-zbancd.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

APPEND wa_output TO gt_output.

CLEAR wa_output.

ELSE.

CONTINUE.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDMETHOD. "process_data

  • METHOD get_check_num

METHOD get_check_num.

SELECT bukrs belnr gjahr

buzei augbl

FROM bsas

INTO TABLE lt_bsas

FOR ALL ENTRIES IN lt_vendor_details_dum

WHERE bukrs = lt_vendor_details_dum-bukrs

AND belnr = lt_vendor_details_dum-augbl

AND gjahr = lt_vendor_details_dum-gjahr

AND buzei BETWEEN '001' AND '999'.

IF NOT lt_bsas[] IS INITIAL.

SELECT bukrs belnr gjahr

buzei augbl lifnr

empfb

FROM bsak

INTO TABLE lt_bsak

FOR ALL ENTRIES IN lt_bsas

WHERE bukrs = lt_bsas-bukrs

AND belnr = lt_bsas-augbl

AND gjahr = lt_bsas-gjahr

AND buzei BETWEEN '001' AND '999'.

IF NOT lt_bsak[] IS INITIAL.

  • Get check number and check date

SELECT zbukr vblnr gjahr chect zaldt

FROM payr

INTO TABLE lt_payr

FOR ALL ENTRIES IN lt_bsak

WHERE zbukr = lt_bsak-bukrs

AND vblnr = lt_bsak-augbl

AND gjahr = lt_bsak-gjahr.

IF NOT lt_payr[] IS INITIAL.

  • Get check details

SELECT zzbukr zvblnr zchect

zrcdap zrlsvd zbancd

FROM zcheck_monitor

INTO TABLE lt_payment_details

FOR ALL ENTRIES IN lt_payr

WHERE zzbukr = lt_payr-zbukr

AND zvblnr = lt_payr-vblnr

AND zchect = lt_payr-chect.

ENDIF.

SELECT lifnr name1 lnrza

FROM lfa1

INTO TABLE lt_alt_payee_dum

FOR ALL ENTRIES IN lt_bsak

WHERE lifnr = lt_bsak-lifnr.

  • Get alternate payee

SELECT lifnr name1 lnrza

FROM lfa1

INTO TABLE lt_alt_payee2

FOR ALL ENTRIES IN lt_alt_payee_dum

WHERE lifnr = lt_alt_payee_dum-lnrza.

ENDIF.

ENDIF.

ENDMETHOD. "get_check_num

ENDCLASS. "lcl_get_data IMPLEMENTATION

----


  • CLASS lcl_alv_routines IMPLEMENTATION

----


*

----


CLASS lcl_alv_routines IMPLEMENTATION.

  • METHOD build_fieldcat

METHOD build_fieldcat.

DEFINE m_fieldcat.

add 1 to wa_fieldcat-col_pos.

wa_fieldcat-fieldname = &1.

wa_fieldcat-tabname = &2.

wa_fieldcat-coltext = &3.

wa_fieldcat-outputlen = &4.

wa_fieldcat-fix_column = &5.

wa_fieldcat-just = &6.

wa_fieldcat-do_sum = &7.

wa_fieldcat-emphasize = &8.

wa_fieldcat-hotspot = &9.

append wa_fieldcat to gt_fieldcat.

clear wa_fieldcat.

END-OF-DEFINITION.

m_fieldcat 'BUKRS' 'gt_output' text-006 '' '' '' '' '' ''.

m_fieldcat 'LIFNR' 'gt_output' text-007 '' '' '' '' '' ''.

m_fieldcat 'NAME1' 'gt_output' text-008 '' '' '' '' '' ''.

m_fieldcat 'LNRZA' 'gt_output' text-009 '' '' '' '' '' ''.

m_fieldcat 'ZCHECT' 'gt_output' text-015 '' '' '' '' '' ''.

m_fieldcat 'ZALDT' 'gt_output' text-016 '' '' '' '' '' ''.

m_fieldcat 'DMBTR' 'gt_output' text-013 '' '' 'R' 'X' '' ''.

m_fieldcat 'WRBTR' 'gt_output' text-014 '' '' 'R' 'X' '' ''.

m_fieldcat 'AUGBL' 'gt_output' text-010 '' '' '' '' '' ''.

m_fieldcat 'BELNR' 'gt_output' text-011 '' '' '' '' 'C410' 'X'.

m_fieldcat 'BUZEI' 'gt_output' text-029 '' '' '' '' '' ''.

m_fieldcat 'BUDAT' 'gt_output' text-012 '' '' '' '' '' ''.

m_fieldcat 'BLDAT' 'gt_output' text-028 '' '' '' '' '' ''.

m_fieldcat 'WAERS' 'gt_output' text-030 '' '' '' '' '' ''.

m_fieldcat 'XBLNR' 'gt_output' text-017 '' '' '' '' '' ''.

m_fieldcat 'SGTXT' 'gt_output' text-018 '' '' '' '' '' ''.

m_fieldcat 'ZUONR' 'gt_output' text-019 '' '' '' '' '' ''.

m_fieldcat 'BLART' 'gt_output' text-020 '' '' '' '' '' ''.

m_fieldcat 'ZRCDAP' 'gt_output' text-021 '' '' '' '' '' ''.

m_fieldcat 'ZRLSVD' 'gt_output' text-022 '' '' '' '' '' ''.

m_fieldcat 'ZBANCD' 'gt_output' text-023 '' '' '' '' '' ''.

m_fieldcat 'USNAM' 'gt_output' text-024 '' '' '' '' '' ''.

ENDMETHOD. "build_fieldcat

ENDCLASS. "lcl_alv_routines IMPLEMENTATION

----


  • CLASS lcl_event_receiver IMPLEMENTATION

----


*

----


CLASS lcl_event_receiver IMPLEMENTATION.

METHOD handle_hotspot_click.

CLEAR wa_output.

READ TABLE gt_output INDEX e_row_id INTO wa_output.

IF NOT wa_output-belnr IS INITIAL

AND e_column_id = 'BELNR'.

SET PARAMETER ID 'BLN' FIELD wa_output-belnr.

SET PARAMETER ID 'BUK' FIELD wa_output-bukrs.

SET PARAMETER ID 'GJR' FIELD wa_output-gjahr.

  • Display accounting document

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

ENDMETHOD. "handle_hotspot_click

ENDCLASS. "lcl_event_receiver IMPLEMENTATION

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

DATA: o_lcl_get_data TYPE REF TO lcl_get_data.

CREATE OBJECT o_lcl_get_data.

CALL METHOD o_lcl_get_data->get_records.

----


  • END-OF-SELECTION *

----


END-OF-SELECTION.

IF NOT gt_output[] IS INITIAL.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

  • PERCENTAGE = 0

text = text-033.

CALL SCREEN 100.

ELSE.

MESSAGE i000 WITH text-025.

ENDIF.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS '100'.

SET TITLEBAR 'TITLE100'.

DATA: o_lcl_alv_routines TYPE REF TO lcl_alv_routines.

CREATE OBJECT o_lcl_alv_routines.

g_repid = sy-repid.

IF custom_container IS INITIAL.

CREATE OBJECT custom_container

EXPORTING

container_name = gv_container

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5.

IF sy-subrc NE 0.

CALL FUNCTION 'POPUP_TO_INFORM'

EXPORTING

titel = g_repid

txt2 = sy-subrc

txt1 = text-004.

ENDIF.

CREATE OBJECT grid1

EXPORTING

i_parent = custom_container.

  • Build fieldcatalog for initial display

CALL METHOD o_lcl_alv_routines->build_fieldcat.

  • Sort output table

SORT gt_output BY bukrs lifnr zchect zaldt augbl.

gs_disvariant-report = sy-repid.

  • Display initial window

CALL METHOD grid1->set_table_for_first_display

EXPORTING

  • i_structure_name = ''

is_layout = gs_layout

i_save = 'A'

is_variant = gs_disvariant

CHANGING

it_outtab = gt_output

it_fieldcatalog = gt_fieldcat.

CREATE OBJECT event_receiver.

  • Trigger event when user clicks hotspot field

SET HANDLER event_receiver->handle_hotspot_click FOR grid1.

ENDIF.

CALL METHOD cl_gui_control=>set_focus

EXPORTING

control = grid1.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

save_ok = ok_code.

CASE save_ok.

WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

CALL METHOD custom_container->free.

CALL METHOD cl_gui_cfw=>flush.

IF sy-subrc <> 0.

CALL FUNCTION 'POPUP_TO_INFORM'

EXPORTING

titel = g_repid

txt2 = sy-subrc

txt1 = text-005.

ENDIF.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

[/code]

Hope it helps...

P.S.Please award points if it helps...

Read only

messier31
Active Contributor
0 Likes
670

Hi,

Try this.

<i>REPORT ZLOGO.

CONSTANTS: cntl_true TYPE i VALUE 1,

cntl_false TYPE i VALUE 0.

DATA:h_picture TYPE REF TO cl_gui_picture,

h_pic_container TYPE REF TO cl_gui_custom_container.

DATA: graphic_url(255),

graphic_refresh(1),

g_result LIKE cntl_true.

DATA: BEGIN OF graphic_table OCCURS 0,

line(255) TYPE x,

END OF graphic_table.

DATA: graphic_size TYPE i.

CALL SCREEN 100.

&amp;----


*& Module PICTURE OUTPUT

&----


  • text

----


MODULE picture OUTPUT.

DATA: l_graphic_xstr TYPE xstring,

l_graphic_conv TYPE i,

l_graphic_offs TYPE i.

CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp

EXPORTING

p_object = 'GRAPHICS'

p_name = 'EDS'"IMAGE NAME - Image name from SE78

p_id = 'BMAP'

p_btype = 'BCOL'

RECEIVING

p_bmp = l_graphic_xstr

EXCEPTIONS

not_found = 1

OTHERS = 2.

graphic_size = XSTRLEN( l_graphic_xstr ).

CHECK graphic_size > 0.

l_graphic_conv = graphic_size.

l_graphic_offs = 0.

WHILE l_graphic_conv > 255.

graphic_table-line = l_graphic_xstr+l_graphic_offs(255).

APPEND graphic_table.

l_graphic_offs = l_graphic_offs + 255.

l_graphic_conv = l_graphic_conv - 255.

ENDWHILE.

graphic_table-line = l_graphic_xstr+l_graphic_offs(l_graphic_conv).

APPEND graphic_table.

CALL FUNCTION 'DP_CREATE_URL'

EXPORTING

type = 'image'

subtype = cndp_sap_tab_unknown " 'X-UNKNOWN'

size = graphic_size

lifetime = cndp_lifetime_transaction "'T'

TABLES

data = graphic_table

CHANGING

url = graphic_url

EXCEPTIONS

  • dp_invalid_parameter = 1

  • dp_error_put_table = 2

  • dp_error_general = 3

OTHERS = 4 .

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

EXIT.

ENDIF.

CREATE OBJECT h_pic_container

EXPORTING container_name = 'LOGO'.

CREATE OBJECT h_picture EXPORTING parent = h_pic_container.

CALL METHOD h_picture->load_picture_from_url

EXPORTING

url = graphic_url

IMPORTING

RESULT = g_result.

ENDMODULE.</i>

Enjoy SAP.

Pankaj Singh.

Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
670

HI,

Check the sample programs in SLIS package.

Regards,

Sesh

Read only

vinod_vemuru2
Active Contributor
0 Likes
670

Thanks all