Urgent in alv's
hi everyone
if i wann to give colour to a paticular cell depending on conditions can any one help me inthis matter
Hi,
Check this code, Reward the points if this code is helpful.
TABLES: bsad,
kna1,
knvv.
*& External Table Declaration *
*& Class *
CLASS lcl_event_receiver DEFINITION DEFERRED.
*& Internal Table Declaration *
DATA: BEGIN OF gt_bsid OCCURS 0,
bukrs LIKE bsid-bukrs,
kunnr LIKE bsid-kunnr,
umsks LIKE bsid-umsks,
umskz LIKE bsid-umskz,
gjahr LIKE bsid-gjahr,
belnr LIKE bsid-belnr,
budat LIKE bsid-budat,
blart LIKE bsid-blart,
shkzg LIKE bsid-shkzg,
dmbtr LIKE bsid-dmbtr,
prctr LIKE bsid-prctr,
END OF gt_bsid,
gt_bsad LIKE gt_bsid OCCURS 0 WITH HEADER LINE,
BEGIN OF gt_kunnr OCCURS 0,
kunnr TYPE kunnr,
END OF gt_kunnr,
BEGIN OF gt_kna1 OCCURS 0,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
ktokd TYPE kna1-ktokd,
END OF gt_kna1,
BEGIN OF gt_knvv OCCURS 0,
kunnr TYPE knvv-kunnr,
vkorg TYPE knvv-vkorg,
vtweg TYPE knvv-vtweg,
spart TYPE knvv-spart,
bzirk TYPE knvv-bzirk,
vwerk TYPE knvv-vwerk,
vkgrp TYPE knvv-vkgrp,
vkbur TYPE knvv-vkbur,
END OF gt_knvv,
BEGIN OF gt_output OCCURS 0,
ktokd LIKE kna1-ktokd, " Customer Group
kunnr LIKE kna1-kunnr, " Customer Number
name1 LIKE kna1-name1, " Customer Name
sign_o(3) TYPE c, " +/-
open_bal TYPE p DECIMALS 2," Open Balance
addi_due LIKE bsid-dmbtr, " Addition Due to collection & CN
addi_coll LIKE bsid-dmbtr, " Addition Due to collection
cred_note LIKE bsid-dmbtr, " Credit Note
dedu_adju LIKE bsid-dmbtr, " Deduction due to adjustment
repay LIKE bsid-dmbtr, " Repay
dedu_due LIKE bsid-dmbtr, " Deduction due to adjustment & Repay
sign_c(3) TYPE c, " +/-
clear_bal TYPE p DECIMALS 2," Clear Balance
prctr LIKE bsid-prctr, " Plant/Profic Center
vkbur LIKE knvv-vkbur, " Sales Office
vkgrp LIKE knvv-vkgrp, " Sales Group
vwerk LIKE knvv-vwerk, " Delivering Plant
rowcolor(4) TYPE c,
bzirk LIKE knvv-bzirk, " Sales district
cellcolors1 TYPE lvc_t_scol,
END OF gt_output,
BEGIN OF gt_amt_prctr OCCURS 0,
kunnr LIKE kna1-kunnr, " Customer Number
addi_coll LIKE bsid-dmbtr, " Addition Due to collection
cred_note LIKE bsid-dmbtr, " Credit Note
dedu_adju LIKE bsid-dmbtr, " Deduction due to adjustment
repay LIKE bsid-dmbtr, " Repay
prctr LIKE bsid-prctr, " Profit Center
END OF gt_amt_prctr.
DATA: BEGIN OF gt_zmm_prctr_check OCCURS 0,
werks TYPE werks_d,
prctr TYPE prctr,
END OF gt_zmm_prctr_check.
*& Variables Declaration *
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo.
DATA: gcl_custom_container TYPE REF TO cl_gui_custom_container,
gcl_alv_grid TYPE REF TO cl_gui_alv_grid.
DATA: gs_cellcolor TYPE lvc_s_scol.
DATA: event_receiver TYPE REF TO lcl_event_receiver.
DATA: lv_budat_high(10) TYPE c,
lv_budat_low(10) TYPE c.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: gf_first TYPE c VALUE 'X',
gv_budat_low TYPE bsad-budat,
gv_budat_high TYPE bsad-budat.
DATA: gv_lines(40) TYPE c.
DATA: gf_enter TYPE c.
DATA: gs_disvariant TYPE disvariant.
*& Selection-screen *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_bukrs LIKE bsad-bukrs
DEFAULT '1000' OBLIGATORY, " Company Code
p_umskz LIKE bsid-umskz
DEFAULT 'H' OBLIGATORY. " Special G/L Transaction Type
SELECT-OPTIONS:
s_prctr FOR bsad-prctr OBLIGATORY, " Profit Center
s_budat FOR bsad-budat
DEFAULT sy-datum
NO-EXTENSION
OBLIGATORY, " Posting Date
s_kunnr FOR bsad-kunnr, " Customer Number
s_ktokd FOR kna1-ktokd, " Costomer Group
s_vkbur FOR knvv-vkbur, " Sales Office
s_vkgrp FOR knvv-vkgrp. " Sales Group
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b2.
*& At Selection Screen Event *
IF NOT s_budat-high IS INITIAL.
WRITE: s_budat-high TO lv_budat_high.
ELSE.
WRITE: 'Empty' TO lv_budat_high.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_alv_variant.
CLASS lcl_event_receiver DEVINITION
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS: handle_top_of_event FOR EVENT print_top_of_page
OF cl_gui_alv_grid
IMPORTING table_index.
ENDCLASS. "lcl_event_receiver DEFINITION
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_top_of_event.
break abap_dev.
PERFORM write_text USING table_index.
ENDMETHOD. "HANDLE_TOP_OF_EVENT
ENDCLASS. "lcl_event_receiver DEFINITION
*& INITIALIZATION *
INITIALIZATION.
gs_disvariant-report = sy-repid.
gs_disvariant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = gs_disvariant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 0.
MOVE gs_disvariant-variant TO p_vari.
ELSE.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*& Start of Selection Event *
START-OF-SELECTION.
Initilize the variable.
PERFORM initilize_variables.
Get the customers for the profit center.
PERFORM get_customers_for_prctr.
Get open items.
PERFORM get_open_items.
Get Closed items.
PERFORM get_closed_items.
IF NOT gt_kna1[] IS INITIAL.
PERFORM fill_output_table.
ENDIF.
*& End of Selection Event *
END-OF-SELECTION.
IF NOT gt_output[] IS INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE i000(38) WITH 'No data found for the given selection criteria.'.
ENDIF.
*& Sub Routines *
*& Form GET_OPEN_ITEMS
Get Open Items
FORM get_open_items .
REFRESH: gt_bsid,
gt_output.
CLEAR: gt_bsid,
gt_output.
Progress Indicator.
CALL FUNCTION 'FERC_PROGRESS_INDICATOR'
EXPORTING
percentage = 45
text = 'Processing..........'.
Check Exestence of customers.
IF gt_kna1[] IS INITIAL.
EXIT.
ENDIF.
Get open items.
SELECT bukrs
kunnr
umsks
umskz
gjahr
belnr
budat
blart
shkzg
dmbtr
prctr
FROM bsid
INTO TABLE gt_bsid
FOR ALL ENTRIES IN gt_kna1
WHERE bukrs EQ p_bukrs
AND kunnr EQ gt_kna1-kunnr
AND umskz EQ p_umskz
AND budat IN s_budat
AND ( blart EQ 'DZ'
OR blart EQ 'DA'
OR blart EQ 'AB' ).
IF sy-subrc EQ 0.
SORT gt_bsid BY kunnr.
ENDIF.
ENDFORM. " GET_OPEN_ITEMS
*& Form GET_CLOSED_ITEMS
Get closed items
FORM get_closed_items .
DATA: lt_bseg TYPE fagl_t_bseg,
ls_bseg LIKE bseg.
REFRESH: gt_bsad,
gt_amt_prctr.
CLEAR gt_bsad.
IF gt_kna1[] IS INITIAL.
EXIT.
ENDIF.
SELECT bukrs
kunnr
umsks
umskz
gjahr
belnr
budat
blart
shkzg
dmbtr
prctr
FROM bsad
INTO TABLE gt_bsad
FOR ALL ENTRIES IN gt_kna1
WHERE bukrs EQ p_bukrs
AND kunnr EQ gt_kna1-kunnr
AND umskz EQ p_umskz
AND budat IN s_budat
AND ( blart EQ 'DZ'
OR blart EQ 'DA'
OR blart EQ 'AB' ).
IF sy-subrc EQ 0.
SORT gt_bsad BY kunnr.
ENDIF.
Take the cleared and closed items to the single table.
APPEND LINES OF gt_bsid TO gt_bsad.
SORT gt_bsad BY kunnr belnr budat.
DELETE ADJACENT DUPLICATES FROM gt_bsad COMPARING kunnr belnr.
Get the amounts and profit center.
LOOP AT gt_kna1.
CLEAR gt_amt_prctr.
MOVE gt_kna1-kunnr TO gt_amt_prctr-kunnr.
LOOP AT gt_bsad WHERE kunnr EQ gt_kna1-kunnr.
REFRESH lt_bseg.
Call function module for bseg.
CALL FUNCTION 'FAGL_GET_BSEG'
EXPORTING
i_bukrs = p_bukrs
i_belnr = gt_bsad-belnr
i_gjahr = gt_bsad-gjahr
IMPORTING
et_bseg = lt_bseg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
Get Profit Cener
LOOP AT lt_bseg INTO ls_bseg WHERE prctr IN s_prctr.
IF gt_amt_prctr-prctr EQ space AND
ls_bseg-prctr NE space.
MOVE ls_bseg-prctr TO gt_amt_prctr-prctr.
EXIT.
ENDIF.
ENDLOOP.
LOOP AT lt_bseg INTO ls_bseg WHERE umskz EQ 'H'
AND kunnr EQ gt_kna1-kunnr.
IF gt_bsad-blart EQ 'DZ'.
Get Addition due to collection (DZ, 19, -ve).
IF ls_bseg-shkzg = 'H'.
gt_amt_prctr-addi_coll = gt_amt_prctr-addi_coll + ls_bseg-dmbtr.
ENDIF.
Repayment(DZ, 50, +ve).
IF ls_bseg-shkzg = 'S'.
gt_amt_prctr-repay = gt_amt_prctr-repay + ls_bseg-dmbtr.
ENDIF.
ELSEIF gt_bsad-blart EQ 'DA'.
Credit Note(DA, 19, -ve).
IF ls_bseg-shkzg = 'H'.
gt_amt_prctr-cred_note = gt_amt_prctr-cred_note + ls_bseg-dmbtr.
ENDIF.
ELSEIF gt_bsad-blart EQ 'AB'.
Deduction due to adjustment(AB, 17, +ve, -ve).
IF ls_bseg-shkzg = 'S'.
gt_amt_prctr-dedu_adju = gt_amt_prctr-dedu_adju + ls_bseg-dmbtr.
ELSEIF ls_bseg-shkzg = 'H'.
gt_amt_prctr-dedu_adju = gt_amt_prctr-dedu_adju - ls_bseg-dmbtr.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP. " LOOP AT gt_bsad
APPEND gt_amt_prctr.
ENDLOOP.
ENDFORM. " GET_CLOSED_ITEMS
*& Form FILL_OUTPUT_TABLE
Fill final table.
FORM fill_output_table.
DATA: lv_date_open LIKE sy-datum,
lv_date_clear LIKE sy-datum,
lt_keybalance TYPE TABLE OF bapi3007_3 WITH HEADER LINE.
DATA: lt_bseg TYPE fagl_t_bseg,
ls_bseg LIKE bseg.
DATA: lv_lines(15) TYPE c.
REFRESH gt_output.
CLEAR gt_output.
IF s_budat-low IS INITIAL.
MOVE sy-datum TO lv_date_open.
ELSE.
MOVE s_budat-low TO lv_date_open.
ENDIF.
lv_date_open = lv_date_open - 1.
IF s_budat-high IS INITIAL.
MOVE s_budat-low TO lv_date_clear.
ELSE.
MOVE s_budat-high TO lv_date_clear .
ENDIF.
lv_date_clear = lv_date_clear + 1.
lv_date_clear = lv_date_clear.
CLEAR gt_kna1.
LOOP AT gt_kna1.
CLEAR: lt_keybalance,
gt_output.
Get Customer Details.
CLEAR gt_knvv.
READ TABLE gt_knvv WITH KEY kunnr = gt_kna1-kunnr.
IF sy-subrc EQ 0.
MOVE: gt_knvv-bzirk TO gt_output-bzirk,
gt_knvv-vkgrp TO gt_output-vkgrp,
gt_knvv-vkbur TO gt_output-vkbur,
gt_knvv-vwerk TO gt_output-vwerk.
Get the profit center for the customer.
CLEAR gt_zmm_prctr_check.
READ TABLE gt_zmm_prctr_check WITH KEY werks = gt_knvv-vwerk.
IF sy-subrc EQ 0.
MOVE gt_zmm_prctr_check-prctr TO gt_output-prctr.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
REFRESH lt_keybalance.
Get Open Balance.
CALL FUNCTION 'BAPI_AR_ACC_GETKEYDATEBALANCE'
EXPORTING
companycode = p_bukrs
customer = gt_kna1-kunnr
keydate = lv_date_open
balancespgli = p_umskz
TABLES
keybalance = lt_keybalance.
IF sy-subrc EQ 0.
CLEAR lt_keybalance.
LOOP AT lt_keybalance WHERE sp_gl_ind = p_umskz.
gt_output-open_bal = gt_output-open_bal + lt_keybalance-lc_bal.
ENDLOOP.
ENDIF.
Get Close Balance.
CALL FUNCTION 'BAPI_AR_ACC_GETKEYDATEBALANCE'
EXPORTING
companycode = p_bukrs
customer = gt_kna1-kunnr
keydate = lv_date_clear
balancespgli = p_umskz
TABLES
keybalance = lt_keybalance.
IF sy-subrc EQ 0.
CLEAR lt_keybalance.
LOOP AT lt_keybalance WHERE sp_gl_ind = p_umskz.
gt_output-clear_bal = gt_output-clear_bal + lt_keybalance-lc_bal.
ENDLOOP.
ENDIF.
Get Addition due to collection & CN and Deduction due to adjustment
CLEAR: gt_bsad,
gt_output-addi_due,
gt_output-dedu_due,
gt_output-addi_coll,
gt_output-cred_note,
gt_output-dedu_adju,
gt_output-repay.
CLEAR gt_amt_prctr.
READ TABLE gt_amt_prctr WITH KEY gt_kna1-kunnr.
IF sy-subrc EQ 0.
MOVE: gt_amt_prctr-addi_coll TO gt_output-addi_coll, " Addition Due to collection
gt_amt_prctr-cred_note TO gt_output-cred_note, " Credit Note
gt_amt_prctr-dedu_adju TO gt_output-dedu_adju, " Deduction due to adjustment
gt_amt_prctr-repay TO gt_output-repay. " Repay
gt_amt_prctr-prctr TO gt_output-prctr, " Profit Center
ENDIF.
MOVE: gt_kna1-kunnr TO gt_output-kunnr,
gt_kna1-name1 TO gt_output-name1,
gt_kna1-ktokd TO gt_output-ktokd.
Check the null amounts.
IF gt_output-open_bal IS INITIAL AND gt_output-clear_bal IS INITIAL AND
gt_output-addi_coll IS INITIAL AND gt_output-cred_note IS INITIAL AND
gt_output-dedu_adju IS INITIAL AND gt_output-repay IS INITIAL.
CONTINUE.
ENDIF.
Color Open Balance
IF gt_output-open_bal = 0.
CLEAR gs_cellcolor.
gs_cellcolor-fname = 'OPEN_BAL' .
gs_cellcolor-color-col = '3' .
APPEND gs_cellcolor TO gt_output-cellcolors1.
ENDIF.
IF gt_output-open_bal > 0.
CLEAR gs_cellcolor.
gs_cellcolor-fname = 'OPEN_BAL' .
gs_cellcolor-color-col = '7' .
APPEND gs_cellcolor TO gt_output-cellcolors1.
gt_output-sign_o = '+'.
ENDIF.
IF gt_output-open_bal < 0.
gt_output-sign_o = '-'.
ENDIF.
Color Clearing Balance.
IF gt_output-clear_bal = 0.
CLEAR gs_cellcolor.
gs_cellcolor-fname = 'CLEAR_BAL' .
gs_cellcolor-color-col = '3' .
APPEND gs_cellcolor TO gt_output-cellcolors1.
ENDIF.
IF gt_output-clear_bal > 0.
CLEAR gs_cellcolor.
gs_cellcolor-fname = 'CLEAR_BAL' .
gs_cellcolor-color-col = '7' .
APPEND gs_cellcolor TO gt_output-cellcolors1.
gt_output-sign_c = '+'.
ENDIF.
IF gt_output-clear_bal < 0.
gt_output-sign_c = '-'.
ENDIF.
APPEND gt_output.
ENDLOOP.
Sort the output table.
SORT gt_output BY ktokd kunnr name1.
CLEAR: lv_lines,
gv_lines.
DESCRIBE TABLE gt_output LINES lv_lines.
CONDENSE lv_lines.
CONCATENATE 'No. of records fetched:'
lv_lines
INTO gv_lines
SEPARATED BY space.
CONDENSE gv_lines.
ENDFORM. " FILL_OUTPUT_TABLE
*& Module status_0100 OUTPUT
text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'MENU2'.
SET TITLEBAR 'TITLE'.
IF gf_first EQ 'X'.
CLEAR gf_first.
PERFORM build_fieldcatalog.
PERFORM prepare_layout.
ENDIF.
PERFORM display_alv_output.
ENDMODULE. " status_0100 OUTPUT
*& Module status_0101 OUTPUT
text
MODULE status_0101 OUTPUT.
SET PF-STATUS 'MENU'.
SET TITLEBAR 'TITLE'.
IF gf_first EQ 'X'.
CLEAR gf_first.
PERFORM build_fieldcatalog.
PERFORM prepare_layout.
ENDIF.
PERFORM display_alv_output.
ENDMODULE. " status_0101 OUTPUT
*& Module user_command_0100 INPUT
text
MODULE user_command_0100 INPUT.
IF sy-ucomm EQ 'EXIT' OR
sy-ucomm EQ 'CANC' OR
sy-ucomm EQ 'BACK'.
LEAVE TO SCREEN 0.
ELSEIF sy-ucomm EQ 'DATE'.
CALL SCREEN 101 STARTING AT 62 2.
ENDIF.
ENDMODULE. " user_command_0100 INPUT
*& Module user_command_0101 INPUT
text
MODULE user_command_0101 INPUT.
CASE sy-ucomm.
WHEN 'CANC' OR 'EXIT' OR 'BACK'.
MOVE: gv_budat_low TO s_budat-low,
gv_budat_high TO s_budat-high.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " user_command_0101 INPUT
MODULE press_enter_101
MODULE press_enter_101.
MOVE: s_budat-low TO gv_budat_low,
s_budat-high TO gv_budat_high.
REFRESH s_budat.
CLEAR s_budat.
MOVE: gv_budat_low TO s_budat-low,
gv_budat_high TO s_budat-high,
'I' TO s_budat-sign.
IF gv_budat_high IS INITIAL.
MOVE 'EQ' TO s_budat-option.
ELSE.
MOVE 'BT' TO s_budat-option.
ENDIF.
APPEND s_budat.
Get open items.
PERFORM get_open_items.
Get Closed items.
PERFORM get_closed_items.
IF NOT gt_kna1[] IS INITIAL.
PERFORM fill_output_table.
ENDIF.
IF NOT gt_output[] IS INITIAL.
LEAVE TO SCREEN 0.
ELSE.
MESSAGE i000(38) WITH 'No data found for the given selection criteria.'.
ENDIF.
ENDMODULE. "press_enter_101
*& Form prepare_layout
Prepare Layout
FORM prepare_layout .
gs_layout-zebra = 'X'.
gs_layout-cwidth_opt = 'X'.
gs_layout-grid_title = 'SDS Movement'.
gs_layout-smalltitle = 'X'.
gs_layout-ctab_fname = 'CELLCOLORS1'.
ENDFORM. " prepare_layout
*& Form build_fieldcatalog
Build fieldcatalog.
FORM build_fieldcatalog .
REFRESH gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'KTOKD'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Customer Group'.
gs_fieldcat-seltext = 'Customer Group'.
gs_fieldcat-tooltip = 'Customer Group'.
gs_fieldcat-key = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'KUNNR'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Customer'.
gs_fieldcat-seltext = 'Customer'.
gs_fieldcat-tooltip = 'Customer Number'.
gs_fieldcat-key = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'NAME1'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Customer Name'.
gs_fieldcat-seltext = 'Customer Name'.
gs_fieldcat-tooltip = 'Customer Name'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'PRCTR'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Profit Center'.
gs_fieldcat-seltext = 'Profit Center'.
gs_fieldcat-tooltip = 'Profit Center'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'VWERK'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Delivering Plant'.
gs_fieldcat-seltext = 'Delivering Plant'.
gs_fieldcat-tooltip = 'Delivering Plant'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'VKBUR'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Sales Office'.
gs_fieldcat-seltext = 'Sales Office'.
gs_fieldcat-tooltip = 'Sales Office'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'VKGRP'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Sales Group'.
gs_fieldcat-seltext = 'Sales Group'.
gs_fieldcat-tooltip = 'Sales Group'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'BZIRK'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Sales District'.
gs_fieldcat-seltext = 'Sales District'.
gs_fieldcat-tooltip = 'Sales District'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'OPEN_BAL'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Opening Balance'.
gs_fieldcat-seltext = 'Opening Balance'.
gs_fieldcat-tooltip = 'Opening Balance'.
gs_fieldcat-no_sign = 'X'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'ADDI_COLL'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Addition due to collection'.
gs_fieldcat-seltext = 'Addition due to collection'.
gs_fieldcat-tooltip = 'Addition due to collection (DZ-)'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'CRED_NOTE'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Addition due to credit Note'.
gs_fieldcat-seltext = 'Addition due to credit Note'.
gs_fieldcat-tooltip = 'Addition due to credit Note (DA-)'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'DEDU_ADJU'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Deduction due to adj'.
gs_fieldcat-seltext = 'Deduction due to adj'.
gs_fieldcat-tooltip = 'Deduction due to adj (AB)'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'REPAY'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Deduction due to repayment'.
gs_fieldcat-seltext = 'Deduction due to repayment'.
gs_fieldcat-tooltip = 'Deduction due to repayment (DZ+)'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'CLEAR_BAL'.
gs_fieldcat-tabname = 'GT_OUTPUT'.
gs_fieldcat-coltext = 'Closing Balance'.
gs_fieldcat-seltext = 'Closing Balance'.
gs_fieldcat-tooltip = 'Closing Balance'.
gs_fieldcat-no_sign = 'X'.
gs_fieldcat-do_sum = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
ENDFORM. " build_fieldcatalog
*& Form display_alv_output
Display output
FORM display_alv_output .
DATA: ls_vari TYPE disvariant.
Check execution mode (foreground/background)
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
IF gcl_custom_container IS INITIAL.
Create Object for Container
CREATE OBJECT gcl_custom_container
EXPORTING
container_name = 'CONTAINER1'.
Create Object for ALV Grid.
CREATE OBJECT gcl_alv_grid
EXPORTING
i_parent = gcl_custom_container.
ENDIF. " IF gcl_custom_container...
ls_vari-report = sy-repid.
ls_vari-username = sy-uname.
ls_vari-variant = p_vari.
ls_vari-username = sy-uname.
ls_vari-text = 'SDS Movement'.
Create the object for top of list event.
CREATE OBJECT event_receiver.
SET HANDLER: event_receiver->handle_top_of_event FOR gcl_alv_grid.
Call for first display.
CALL METHOD gcl_alv_grid->set_table_for_first_display
EXPORTING
is_variant = ls_vari
i_save = 'A'
i_default = 'X'
is_layout = gs_layout
CHANGING
it_outtab = gt_output[]
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF. " IF cl_gui_alv_grid=>offl..
ENDFORM. " display_alv_output
*& Form write_text
text
FORM write_text USING par1 TYPE syindex.
DATA : list TYPE slis_t_listheader.
DATA : w_list TYPE LINE OF slis_t_listheader.
DATA : lv_lines TYPE i.
break abap_dev.
IF sy-tabix NE 0.
EXIT.
ENDIF.
WRITE: 'SDS Movement'.
REFRESH list.
Company Code
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
w_list-info = 'Company Code:'.
w_list-info+25 = p_bukrs.
APPEND w_list TO list.
Company Code
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
w_list-info = 'GL Indicator:'.
w_list-info+25 = p_umskz.
APPEND w_list TO list.
Profit Center
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
DESCRIBE TABLE s_prctr LINES lv_lines.
IF lv_lines EQ 1.
w_list-info = 'Profit Center:'.
w_list-info+25 = s_prctr-low.
w_list-info+37 = '-'.
w_list-info+40 = s_prctr-high.
ELSE.
w_list-info = 'Profit Center:'.
w_list-info+25 = '*'.
ENDIF.
APPEND w_list TO list.
Posting Date
CLEAR w_list.
w_list-typ = 'H'.
w_list-info = 'Posting Date:'.
w_list-info+25 = s_budat-low.
w_list-info+37 = '-'.
w_list-info+40 = s_budat-high.
APPEND w_list TO list.
Customer Number
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
DESCRIBE TABLE s_kunnr LINES lv_lines.
IF lv_lines EQ 1.
w_list-info = 'Customer No:'.
w_list-info+25 = s_kunnr-low.
w_list-info+37 = '-'.
w_list-info+40 = s_kunnr-high.
ELSE.
w_list-info = 'Customer No:'.
w_list-info+25 = '*'.
ENDIF.
APPEND w_list TO list.
Customer Group
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
DESCRIBE TABLE s_ktokd LINES lv_lines.
IF lv_lines EQ 1.
w_list-info(25) = 'Customer Group:'.
w_list-info+25(12) = s_ktokd-low.
w_list-info+37(3) = '-'.
w_list-info+40(12) = s_ktokd-high.
ELSE.
w_list-info = 'Customer Group:'.
w_list-info+25 = '*'.
ENDIF.
APPEND w_list TO list.
Sales Office
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
DESCRIBE TABLE s_vkbur LINES lv_lines.
IF lv_lines EQ 1.
w_list-info(25) = 'Sales Office:'.
w_list-info+25(12) = s_vkbur-low.
w_list-info+37(3) = '-'.
w_list-info+40(12) = s_vkbur-high.
ELSE.
w_list-info = 'Sales Office:'.
w_list-info+25 = '*'.
ENDIF.
APPEND w_list TO list.
Sales Group
CLEAR lv_lines.
CLEAR w_list.
w_list-typ = 'H'.
DESCRIBE TABLE s_vkgrp LINES lv_lines.
IF lv_lines EQ 1.
w_list-info = 'Sales Group:'.
w_list-info+25 = s_vkgrp-low.
w_list-info+37 = '-'.
w_list-info+40 = s_vkgrp-high.
ELSE.
w_list-info = 'Sales Group:'.
w_list-info+25 = '*'.
ENDIF.
APPEND w_list TO list.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = list
i_logo = 'BACKGROUND'.
ENDFORM. " write_text
*& Form initilize_variables
text
FORM initilize_variables .
MOVE: s_budat-low TO gv_budat_low,
s_budat-high TO gv_budat_high.
ENDFORM. " initilize_variables
*& Form GET_CUSTOMERS_FOR_PRCTR
Get the customers for the porfit center
FORM get_customers_for_prctr .
REFRESH: gt_zmm_prctr_check,
gt_knvv,
gt_kna1.
Get the plant for the profit center.
SELECT werks
prctr
FROM zmm_prctr_check
INTO TABLE gt_zmm_prctr_check
WHERE prctr IN s_prctr.
IF sy-subrc EQ 0.
SORT gt_zmm_prctr_check BY werks.
Get the customers for the delivering plant.
SELECT kunnr
vkorg
vtweg
spart
bzirk
vwerk
vkgrp
vkbur
FROM knvv
INTO TABLE gt_knvv
FOR ALL ENTRIES IN gt_zmm_prctr_check
WHERE kunnr IN s_kunnr
AND vwerk EQ gt_zmm_prctr_check-werks.
IF sy-subrc EQ 0.
Get the customers
SELECT kunnr
name1
ktokd
FROM kna1
INTO TABLE gt_kna1
FOR ALL ENTRIES IN gt_knvv
WHERE kunnr EQ gt_knvv-kunnr
AND ktokd IN s_ktokd.
IF sy-subrc EQ 0.
SORT gt_kna1 BY kunnr.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " GET_CUSTOMERS_FOR_PRCTR
*& Form f4_for_alv_variant
text
FORM f4_for_alv_variant .
DATA: ls_variant TYPE disvariant,
ls_es_var TYPE disvariant,
lv_exit(1) TYPE c.
ls_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = ls_variant
i_save = 'A'
IMPORTING
e_exit = lv_exit
es_variant = ls_es_var
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF lv_exit = space.
p_vari = ls_es_var-variant.
ENDIF.
ENDIF.
ENDFORM. " f4_for_alv_variant
Similar Messages
-
Urgent: regarding ALV report display problem
hi,
There are 3 problems:-
1.) I had made a ALV report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ on alv report ..
2.)the 2nd problem is dat when i use the ' wa_fieldcat-no_zero = 'X'. It eliminates all the leading zeros which are present which is okay when i it displays material no.. but the problem is dat it also deletes the other fields where the values are to be zeros.
i had used this FM:-
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
so that only matnr field are to be 0's.
3.) I want to delete the rows which use to contain the values 0's as there are no calculations are performing as these are displayed .
ANYbody having solution of this problem ,plzzzz provide the soluion of it as it is most urgent to me and dat person will definately rewarded.
regards,
ric.shi kiran,
thanks for ur response. here is d code which i am using it and plzz help me to figure out where i have to make changes:-
REPORT ZTEST03.
TABLES: ISEG,MARA.
TYPE-POOLS : SLIS.
INTERNAL TABLE FOR INVENTORY STOCK *****************
DATA: BEGIN OF ITS1 OCCURS 0,
MATNR LIKE ISEG-MATNR,
MEINS LIKE ISEG-MEINS,
MENGE LIKE ISEG-MENGE,
WRTZL LIKE ISEG-WRTZL,
BUCHM LIKE ISEG-BUCHM,
WRTBM LIKE ISEG-WRTBM,
WERKS LIKE ISEG-WERKS,
BUDAT LIKE ISEG-BUDAT,
MTART LIKE MARA-MTART,
ITEMDESC LIKE MAKT-MAKTX,
DIFFQTY LIKE ISEG-BUCHM,
DIFFVALUE LIKE ISEG-WRTBM,
END OF ITS1.
data: t_heading type slis_t_listheader.
SELECTION-SCREEN BEGIN OF BLOCK PAR1 WITH FRAME TITLE TEXT-001.
*********PARAMETERS*********
PARAMETERS : PLANT LIKE ISEG-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : R_DATE FOR ISEG-BUDAT,
M_TYPE FOR MARA-MTART,
IT_M FOR MARA-MATNR.
*********DEFINING VARIABLES*********
SELECTION-SCREEN END OF BLOCK par1.
TOP-OF-PAGE.
PERFORM PG_HEADER.
START-OF-SELECTION.
SELECT DISTINCT A~MATNR A~MEINS A~MENGE A~WRTZL A~BUCHM A~WRTBM A~WERKS A~BUDAT B~MTART
FROM ISEG AS A INNER JOIN MARA AS B ON B~MATNR = A~MATNR
INTO CORRESPONDING FIELDS OF TABLE ITS1 WHERE B~MATNR = A~MATNR AND B~MEINS = A~MEINS AND A~WERKS = PLANT AND A~BUDAT IN R_DATE AND B~MTART IN M_TYPE AND B~MATNR IN IT_M.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
SORT ITS1 BY MATNR.
DELETE ADJACENT DUPLICATES FROM ITS1 WHERE MENGE = 0 AND BUCHM = 0.
LOOP AT ITS1.
ITS1-DIFFQTY = ITS1-MENGE - ITS1-BUCHM.
ITS1-DIFFVALUE = ITS1-WRTZL - ITS1-WRTBM.
SELECT SINGLE MAKTX FROM MAKT INTO ITS1-ITEMDESC WHERE MATNR = ITS1-MATNR.
MODIFY ITS1.
ENDLOOP.
PERFORM PRN_SMSTOCK_ALV.
WRITING DATA FROM D TABLES**********
FORM PG_HEADER.
WRITE : 'PHYSICAL INVENTORY AUDIT REPORT PLANT : ', PLANT.
ENDFORM.
*& Form PRN_SMSTOCK_ALV
text
--> p1 text
<-- p2 text
form PRN_SMSTOCK_ALV .
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
perform set_fieldcat2 using:
1 'MTART' 'MTART' 'MARA' '15' space 'MATERIAL TYPE' space space space space space space space space SPACE t_fieldcat 'L' 'C',
2 'MATNR' 'MATNR' 'MARA' '13' space 'MATERIAL NO. ' space space space space space space space space SPACE t_fieldcat 'R' 'C',
3 'ITEMDESC' 'MAKTX' 'MAKT' '25' space 'MATERIAL DESCRIPTION' space space space space space space space space SPACE t_fieldcat 'L' 'C',
4 'MEINS' 'MEINS' 'MARA' '5' space 'UOM' space space space space space space space space SPACE t_fieldcat 'C' 'C',
5 'MENGE' 'MENGE' 'ISEG' '13' space 'ORG.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
6 'WRTZL' 'WRTZL' 'ISEG' '13' space 'ORG.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
7 'BUCHM' 'BUCHM' 'ISEG' '13' space 'PHY.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
8 'WRTBM' 'WRTBM' 'ISEG' '13' space 'PHY.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
9 'DIFFQTY' 'MENGE' 'ISEG' '13' space 'DIFF.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
10 'DIFFVALUE' 'WRTZL' 'ISEG' '13' space 'DIFF.INV.VALUE' space space space space space space space space SPACE t_fieldcat SPACE 'P'.
x_layout-zebra = 'X'.
perform set_top_page_heading using t_heading t_event.
perform set_events using t_event.
w_status = ''.
w_repid = sy-repid.
w_comm = 'USER_COMMAND'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
i_Callback_top_of_page = 'Top-of-page'
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = ITS1
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ENDFORM.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv
P_JUST
P_FTYPE.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
IF NOT P_JUST IS INITIAL.
WA_FIELDCAT-JUST = P_JUST.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_heading.
ENDFORM.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = 'PHYSICAL INVENTORY AUDIT REPORT'.
append x_heading to t_heading.
Plant Name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'PLANT: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Posting Date
*clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'POSTING DATE: '.
x_heading-info = ITS1-BUDAT.
append x_heading to t_heading.
Control Date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL No: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Control date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL DATE: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
endform.
plzzz help me out as it is most urgent to me.
regards,
ric.s -
Hi all,
I have displayed data in alv.and the error condition is that if for a material if it has more than one S as ok_status records then it should throw an error. This logic is working fine.
Now suppose at first time user had entered S through keyboard which fails the condition so it throws an error first time.
Now user can change the ok status back to I or O from S (through keyboard although f4 help is available) which satisfies the conditon so that record should be saved. but when user presses save button then in the ALV display the changed status I or O for that record again converted back to status S automatically. and again gives an error.
if we try third time then it allows to save with record other than s ok status i.e. I or O.
this problem is comming only when we change the value through keyboard. If we select value using f4 help then whole logic is working fine, no problem at all.
Can you please help me out in this regard
Its very urgent.
Thanks & Regards
Ashutosh.Hi,
to exclude toolbar buttons..
DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
DATA LS_EXCLUDE TYPE UI_FUNC.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.
APPEND LS_EXCLUDE TO LT_EXCLUDE.
CALL METHOD G_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
<b> IT_TOOLBAR_EXCLUDING = LT_EXCLUDE</b>
IS_LAYOUT = GS_LAYOUT
CHANGING
IT_FIELDCATALOG = IT_FIELDCAT
IT_OUTTAB = IT_FINAL[].
and you told you are using REUSE_ALV_GRID_DISPLAY_LVC
then in the user_command do this....
then your problem will be solved.
in the top you declare this..
DATA: REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
*then insert the following code in your USER_COMMAND routine...
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA
ENDIF.
ENDFORM.
Regards
vijay -
Really urgent: reagrding alv format for like (internal tables)
Hi,
I making a report in which i am using the concept of 2 internal tables and i am usnig the concept of likes in a internal table .
for instance,
DATA : BEGIN OF ITAB OCCURS 0,
ITEMID LIKE CHVW-MATNR,
WERKS LIKE CHVW-WERKS,
CHARG LIKE CHVW-CHARG,
SHKZG LIKE CHVW-SHKZG,
MENGE LIKE CHVW-MENGE,
MEINS LIKE CHVW-MEINS,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0,
MATNR TYPE BSEG-MATNR,
LIFNR TYPE BSEG-LIFNR,
AUGDT TYPE BSEG-AUGDT,
WRBTR TYPE BSEG-WRBTR,
END OF IT_BSEG.
and i am able to create ALV for 1 itab only as i had declared all fields in a 1 itab ,but now i have to declare 1 more itab and i dont know how to perform ALV with 2 itabs..
Plzz help me out as it is really urgent to me.
Edited by: ric .s on Apr 22, 2008 11:45 AM
Edited by: ric .s on Apr 23, 2008 7:21 AM
Edited by: ric .s on Apr 23, 2008 7:55 AMHi Ric,
Yes, You can .
Check the sample ALV program which helps u in displaying output using ALV . Comments have been made everywhere .
report zvenkat_alv_2_grid_description.
types:
begin of t_mard,
werks type mard-werks,
lgort type mard-lgort,
matnr type mard-matnr,
insme type mard-insme,
einme type mard-einme,
speme type mard-speme,
end of t_mard.
data:
w_mard type t_mard.
data:
i_mard type standard table of t_mard.
" ALV Declarations
" ALV internal tables and Structures
" To refer ALV tables(slis tables) and structures.SLIS must be
" declared under TYPE-POOLS(see below).SLIS is a Type group which is
" defined in Dictionary.Internal tables and structures and constants
" are defined under type group.(Double click on SLIS).
* Types Pools
type-pools:
slis.
* Types
types:
t_fieldcat type slis_fieldcat_alv,
t_events type slis_alv_event,
t_layout type slis_layout_alv.
* Workareas
data:
w_fieldcat type t_fieldcat,
w_events type t_events,
w_layout type t_layout.
* Internal Tables
data:
i_fieldcat type standard table of t_fieldcat,
i_fieldcat1 type standard table of t_fieldcat,
i_events type standard table of t_events.
*& START-OF-SELECTION
start-of-selection.
perform get_data_from_database .
" END-OF-SELECTION
" Steps to create simple ALV program
" 1. Pass an internal table with the set of output information
" 2. Pass a field catalog as an internal table
" 3. Pass a structure with general list layout details
end-of-selection.
perform build_fieldcatalog.
perform build_events.
perform build_layout.
perform display_data.
" Form build_fieldcatalog
" Fieldcatalog Internal table
" 1. It contains descriptions of the list output fields
" (usually a subset of the internal output table fields).
" 2. A field catalog is required for every ALV list output.
form build_fieldcatalog .
clear :
w_fieldcat,
i_fieldcat[].
perform build_fcat using:
"Field Int.Table Column headings
'WERKS' 'I_MARD' 'WERKS',
'LGORT' 'I_MARD' 'LGORT',
'MATNR' 'I_MARD' 'MATNR',
'INSME' 'I_MARD' 'INSME',
'EINME' 'I_MARD' 'EINME',
'SPEME' 'I_MARD' 'SPEME'.
endform. " build_fieldcatalog
*& Form display_data
form display_data .
data :program like sy-repid value sy-repid.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = program
is_layout = w_layout
it_fieldcat = i_fieldcat
it_events = i_events
tables
t_outtab = i_mard.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " display_data
*& Form get_data_from_database
* text
form get_data_from_database .
clear :i_mard,
i_mard[].
select werks lgort matnr insme einme speme
from mard
into corresponding fields of table i_mard
up to 100 rows.
endform. " get_data_from_database
*& Form top_of_page
* text
form top_of_page.
data :
i_header type slis_t_listheader,
w_header like line of i_header.
data:l_date1 type datum,
l_date2 type datum.
w_header-typ = 'S'.
w_header-info = sy-title.
append w_header to i_header.
clear w_header.
w_header-typ = 'H'.
w_header-info = sy-repid.
append w_header to i_header.
clear w_header.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_header
i_logo = 'ENJOYSAP_LOGO'.
endform. "top_of_page
*& Form BUILD_FCAT
form build_fcat using l_field l_tab l_text.
w_fieldcat-fieldname = l_field.
w_fieldcat-tabname = l_tab.
w_fieldcat-seltext_m = l_text.
append w_fieldcat to i_fieldcat.
clear w_fieldcat.
endform. " BUILD_FCAT
" Form build_events
" Events
" 1. When we use ALV,certain events TOP-OF-PAGE ,END-OF-PAGE,
" AT LINE-SELECTION,AT USER-COMMANDs are not triggered.
" 2. To perform those Functions ,we have to build Events table and
" pass this table through REUSE_ALV_LIST_DISPALY Function.
form build_events .
clear :
w_events,i_events[].
w_events-name = 'TOP_OF_PAGE'.
w_events-form = 'TOP_OF_PAGE'.
append w_events to i_events.
clear w_events.
endform. " build_events
"& Form build_layout
" Layouts
" Use :We change the display of our list using layouts.
" ===
" Features
" ========
" The layouts that you can use vary according to the type of list:
" 1-->In all lists, you can do the following:
" (a).Choose one of the std layouts supplied with the std system.
" (b).Change the current layout of the list .
" 2-->In lists that use only the standard layouts in the std system
" you cannot save your changes to the current layout.When you
" choose the layouts, only the standard layouts will be proposed.
" 3-->In some lists, you can also save the layouts that you have
" defined as our own layouts.
" User-defined layouts are generally saved for all users. They can
" then be used by all users. All users will be able to choose from
" the user-defined layouts as well as the standard layouts.
" 4-->In some lists, you can also save user-specific layouts that you
" have defined . When you choose the current layout,only these
" layouts are available to you.
" 5-->You can delete or transport layouts, or define them as initial
" layouts
" 6-->STRUCTURE :SLIS_LAYOUT_ALV.
form build_layout .
clear:
w_layout.
w_layout-colwidth_optimize = 'X'.
endform. " build_layout
Regards,
Venkat.O -
URGENT: - REGARDING ALV REPORT
hi,
i had made dis report in ALV and i want to display d heading format as follows:-
NAME:- TEST PROGRAM
date: - 21.05.2007
time:- 1:30:23 am
moreover i want to see the print perview of it but it is giving runtime error.
plz help me in solving dis problem and he or she will be definately rewarded..
*& Report ZMFTEST5
REPORT ZMFTEST5 no standard page heading LINE-SIZE 310.
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
DATA : T_HEADING TYPE slis_t_listheader.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
BALQTY LIKE VBAP-KLMENG,
SOGWT LIKE MARA-BRGEW,
SONWT LIKE MARA-BRGEW,
SINWT LIKE MARA-BRGEW,
BALGWT LIKE MARA-BRGEW,
BALNWT LIKE MARA-BRGEW,
DISPNWT LIKE MARA-BRGEW,
PARTYNAME LIKE KNA1-NAME1,
ITEMDESC LIKE MAKT-MAKTX,
STATUS TYPE C,
END OF ITSO.
DATA:B_QTY TYPE P LENGTH 7 DECIMALS 3.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU.
START-OF-SELECTION.
SELECT DISTINCT A~VBELN A~ERDAT A~BSTNK A~KUNNR B~SPART B~MATNR B~POSNR B~WERKS B~KWMENG B~KBMENG C~NTGEW C~BRGEW C~GEWEI D~WMENG D~BMENG D~EDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON B~VBELN = A~VBELN
INNER JOIN MARA AS C ON C~MATNR = B~MATNR
INNER JOIN VBEP AS D ON D~WMENG > 0 AND D~VBELN = A~VBELN AND D~POSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE A~VBELN IN SO_ORD AND A~KUNNR IN SO_PARTY AND B~SPART IN DIV AND A~ERDAT IN SO_DATE AND D~EDATU IN S_DATE AND B~MATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
DATA : V_NETWT LIKE MARA-NTGEW,
V_GRWT LIKE MARA-NTGEW,
V_SOSTAT TYPE C.
LOOP AT ITSO.
if ITSO-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF ITSO-WMENG <> ITSO-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
IF ITSO-GEWEI = 'G'.
V_NETWT = ITSO-NTGEW / 1000.
V_GRWT = ITSO-BRGEW / 1000.
ELSEIF ITSO-GEWEI = 'KG'.
V_NETWT = ITSO-NTGEW.
V_GRWT = ITSO-BRGEW.
ELSEIF ITSO-GEWEI = 'TO'.
V_NETWT = ITSO-NTGEW * 1000.
V_GRWT = ITSO-BRGEW * 1000.
ENDIF.
ITSO-STATUS = V_SOSTAT.
ITSO-SOGWT = V_GRWT * ITSO-WMENG / 1000.
ITSO-SONWT = V_NETWT * ITSO-WMENG / 1000.
ITSO-SINWT = V_GRWT * ITSO-BMENG / 1000.
ITSO-BALGWT = V_GRWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-BALNWT = V_NETWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-DISPNWT = V_NETWT * ITSO-BMENG / 1000.
ITSO-BALQTY = ITSO-WMENG - ITSO-BMENG.
SELECT SINGLE NAME1 FROM KNA1 INTO ITSO-PARTYNAME WHERE KUNNR = ITSO-KUNNR.
SELECT SINGLE MAKTX FROM MAKT INTO ITSO-ITEMDESC WHERE MATNR = ITSO-MATNR.
MODIFY ITSO.
ENDLOOP.
perform f_build_eventcat.
PERFORM LAYOUT using t_heading.
END-OF-SELECTION.
FORM LAYOUT using t_heading type slis_t_listheader.
data : t_event type slis_t_event.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'SO NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O.' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'PARTYNAME' 'ITSO' '' 'PARTY DESCRIPTION' 'PARTYNAME' '' ''.
PERFORM FCAT USING 'ITEMDESC' 'ITSO' '' 'MATERIAL DESCRIPTION' 'ITEMDESC' '' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO. ' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'POSNR' 'ITSO' '' 'LINE.ITEM' 'POSNR' 'VBAP' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' '' .
PERFORM FCAT USING 'EDATU' 'ITSO' '' 'SCH.DATE' 'EDATU' 'VBEP' ''.
PERFORM FCAT USING 'SONWT' 'ITSO' '' 'S.O.NWT ' 'P' '' ''.
PERFORM FCAT USING 'SOGWT' 'ITSO' '' 'S.O.GWT ' 'P' '' ''.
PERFORM FCAT USING 'SPART' 'ITSO' '' 'DIV ' 'SPART' 'VBAP' ''.
PERFORM FCAT USING 'BMENG' 'ITSO' '' 'DISP.QTY' 'BMENG' 'VBEP' ''.
PERFORM FCAT USING 'DISPNWT' 'ITSO' '' 'DISP.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALQTY' 'ITSO' '' 'BAL.QTY.' 'P' '' ''.
PERFORM FCAT USING 'BALNWT' 'ITSO' '' 'BAL.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALGWT' 'ITSO' '' 'BAL.GR.WT ' 'P' '' ''.
PERFORM FCAT USING 'STATUS' 'ITSO' '' 'STATUS' 'STATUS' '' ''.
refresh t_event.
*perform set_top_page_heading using t_heading t_event.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK
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 =
IT_FIELDCAT = F1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITSO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " LAYOUT
*& Form FCAT
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM.
*FORM F_REPORT_HEADER_ALV.
*CALL FUNCTION 'Z_HEAD_PRINT'
EXPORTING
WRITE: / TITLE1 = 'XYZ Limited'
TITLE2 = 'Sales Order Report'
TITLE3 = 'Created on '
COLOR = 'X'.
*ENDFORM.
FORM F_WRITE_SUMMARY .
write:/ 'Welcome to XYZ Limited'.
write:/ 'This is a test program to display Report in ALV Format'.
ENDFORM.
*& Form set_top_page_heading
text
-->P_T_HEADING text
*form set_top_page_heading using t_heading
t_events type slis_t_event.
*data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = ''(001).
append x_heading to t_heading.
t_heading-info = 'TEST'.
t_heading-typ = 'H'.
Program name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Program: '.
x_heading-info = sy-repid.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
*endform. " set_top_page_headingHi,
i had change ur code just copy this and try,i hope it will work.
REPORT ZMFTEST5 no standard page heading LINE-SIZE 310.
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
****************CHANGES**************
DATA : FDATE TYPE STRING,
FTIME TYPE STRING,
FNAME TYPE STRING.
****************CHANGES**************
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
DATA : T_HEADING TYPE slis_t_listheader.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
BALQTY LIKE VBAP-KLMENG,
SOGWT LIKE MARA-BRGEW,
SONWT LIKE MARA-BRGEW,
SINWT LIKE MARA-BRGEW,
BALGWT LIKE MARA-BRGEW,
BALNWT LIKE MARA-BRGEW,
DISPNWT LIKE MARA-BRGEW,
PARTYNAME LIKE KNA1-NAME1,
ITEMDESC LIKE MAKT-MAKTX,
STATUS TYPE C,
END OF ITSO.
DATA:B_QTY TYPE P LENGTH 7 DECIMALS 3.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU.
START-OF-SELECTION.
SELECT DISTINCT A~VBELN A~ERDAT A~BSTNK A~KUNNR B~SPART B~MATNR B~POSNR B~WERKS B~KWMENG B~KBMENG C~NTGEW C~BRGEW C~GEWEI D~WMENG D~BMENG D~EDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON B~VBELN = A~VBELN
INNER JOIN MARA AS C ON C~MATNR = B~MATNR
INNER JOIN VBEP AS D ON D~WMENG > 0 AND D~VBELN = A~VBELN AND D~POSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE A~VBELN IN SO_ORD AND A~KUNNR IN SO_PARTY AND B~SPART IN DIV AND A~ERDAT IN SO_DATE AND D~EDATU IN S_DATE AND B~MATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
DATA : V_NETWT LIKE MARA-NTGEW,
V_GRWT LIKE MARA-NTGEW,
V_SOSTAT TYPE C.
LOOP AT ITSO.
if ITSO-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF ITSO-WMENG <> ITSO-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
IF ITSO-GEWEI = 'G'.
V_NETWT = ITSO-NTGEW / 1000.
V_GRWT = ITSO-BRGEW / 1000.
ELSEIF ITSO-GEWEI = 'KG'.
V_NETWT = ITSO-NTGEW.
V_GRWT = ITSO-BRGEW.
ELSEIF ITSO-GEWEI = 'TO'.
V_NETWT = ITSO-NTGEW * 1000.
V_GRWT = ITSO-BRGEW * 1000.
ENDIF.
ITSO-STATUS = V_SOSTAT.
ITSO-SOGWT = V_GRWT * ITSO-WMENG / 1000.
ITSO-SONWT = V_NETWT * ITSO-WMENG / 1000.
ITSO-SINWT = V_GRWT * ITSO-BMENG / 1000.
ITSO-BALGWT = V_GRWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-BALNWT = V_NETWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-DISPNWT = V_NETWT * ITSO-BMENG / 1000.
ITSO-BALQTY = ITSO-WMENG - ITSO-BMENG.
SELECT SINGLE NAME1 FROM KNA1 INTO ITSO-PARTYNAME WHERE KUNNR = ITSO-KUNNR.
SELECT SINGLE MAKTX FROM MAKT INTO ITSO-ITEMDESC WHERE MATNR = ITSO-MATNR.
MODIFY ITSO.
ENDLOOP.
perform f_build_eventcat.
PERFORM LAYOUT using t_heading.
END-OF-SELECTION.
FORM LAYOUT using t_heading type slis_t_listheader.
data : t_event type slis_t_event.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'SO NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O.' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'PARTYNAME' 'ITSO' '' 'PARTY DESCRIPTION' 'PARTYNAME' '' ''.
PERFORM FCAT USING 'ITEMDESC' 'ITSO' '' 'MATERIAL DESCRIPTION' 'ITEMDESC' '' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO. ' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'POSNR' 'ITSO' '' 'LINE.ITEM' 'POSNR' 'VBAP' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' '' .
PERFORM FCAT USING 'EDATU' 'ITSO' '' 'SCH.DATE' 'EDATU' 'VBEP' ''.
PERFORM FCAT USING 'SONWT' 'ITSO' '' 'S.O.NWT ' 'P' '' ''.
PERFORM FCAT USING 'SOGWT' 'ITSO' '' 'S.O.GWT ' 'P' '' ''.
PERFORM FCAT USING 'SPART' 'ITSO' '' 'DIV ' 'SPART' 'VBAP' ''.
PERFORM FCAT USING 'BMENG' 'ITSO' '' 'DISP.QTY' 'BMENG' 'VBEP' ''.
PERFORM FCAT USING 'DISPNWT' 'ITSO' '' 'DISP.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALQTY' 'ITSO' '' 'BAL.QTY.' 'P' '' ''.
PERFORM FCAT USING 'BALNWT' 'ITSO' '' 'BAL.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALGWT' 'ITSO' '' 'BAL.GR.WT ' 'P' '' ''.
PERFORM FCAT USING 'STATUS' 'ITSO' '' 'STATUS' 'STATUS' '' ''.
refresh t_event.
*perform set_top_page_heading using t_heading t_event.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP'
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = F1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITSO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " LAYOUT
*& Form FCAT
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM.
*FORM F_REPORT_HEADER_ALV.
*CALL FUNCTION 'Z_HEAD_PRINT'
EXPORTING
WRITE: / TITLE1 = 'XYZ Limited'
TITLE2 = 'Sales Order Report'
TITLE3 = 'Created on '
COLOR = 'X'.
*ENDFORM.
FORM F_WRITE_SUMMARY .
write:/ 'Welcome to XYZ Limited'.
write:/ 'This is a test program to display Report in ALV Format'.
ENDFORM.
FORM TOP.
DATA: WT_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.
CONCATENATE 'DATE:-' SY-DATUM INTO FDATE.
CONCATENATE 'TIME:-' SY-UZEIT INTO FTIME.
FNAME = 'NAME:- TEST'.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = FNAME.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = FDATE.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = FTIME.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
ENDFORM.
*& Form set_top_page_heading
text
-->P_T_HEADING text
*form set_top_page_heading using t_heading
t_events type slis_t_event.
*data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = ''(001).
append x_heading to t_heading.
t_heading-info = 'TEST'.
t_heading-typ = 'H'.
Program name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Program: '.
x_heading-info = sy-repid.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
*endform. " set_top_page_heading
*please do reward points if helpful
Thanks and Regards,
S.N.Venkatesh -
VERY URGENT:REGARDING ALV REPORT
HI,
I am making Interactive alv report in which i have to display 3 views in a single report i.e.
1.) I have to display :-
RAW MATERIAL DAYS
BOP DAYS
Here days are the difference b/w the Material Doc. Date and Requsition Approval date.
(which i have already calculated.)
2.) When i double click the raw material or bop option then material no and days are to be dislplayed.
3.) After double clicking the material then the its migo status and requsition status to be dislplayed .(this thing i had performed )
My main problem is dat i have to write it all in a single ALV but its little confusing to me as i am doing this kind of report for first time.
If anybody provide me useful or solved awnser ,he or she will be definately rewarded.
Message was edited by:
ric .shi ric.s
check this prog
*& Report ZSAMP_INTERCTIVE *
REPORT zsamp_interctive .
TABLES: mara,vbap.
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
ernam LIKE mara-ernam,
END OF itab.
DATA : BEGIN OF itab1 OCCURS 0,
matnr LIKE vbap-matnr,
vbeln LIKE vbap-vbeln,
END OF itab1.
DATA: fld(20) TYPE c,val LIKE mara-matnr .
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: m FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
*AT SELECTION-SCREEN ON m.
SELECT SINGLE matnr FROM mara INTO mara-matnr WHERE matnr = m.
IF sy-subrc NE 0.
MESSAGE e000(zz) WITH 'invalid ' mara-matnr 'in your ' 'selection'.
ENDIF.
START-OF-SELECTION.
SELECT matnr ernam INTO TABLE itab FROM mara WHERE matnr IN m.
SELECT matnr vbeln INTO TABLE itab1 FROM vbap FOR ALL ENTRIES IN itab
WHERE matnr = itab-matnr.
END-OF-SELECTION.
LOOP AT itab.
WRITE:/20 itab-matnr,40 itab-ernam.
hide itab-matnr.
CLEAR itab-matnr.
ENDLOOP.
AT LINE-SELECTION.
GET CURSOR FIELD fld VALUE val.
CASE fld.
WHEN 'ITAB-MATNR'.
WRITE:/ val.
ENDCASE.
CASE sy-lsind.
WHEN '1'.
SET PF-STATUS 'XX2'.
SET TITLEBAR 'XX2'.
IF itab1[] IS INITIAL.
WRITE:/ 'no data found for itab1 in first secondary list'.
ENDIF.
LOOP AT itab1.
WRITE:/30 itab1-matnr,60 itab1-vbeln.
hide itab1-matnr.
ENDLOOP.
WHEN '2'.
SET PF-STATUS 'XX2'.
SET TITLEBAR 'XX2'.
LOOP AT itab.
WRITE:/30 itab-matnr,60 itab-ernam.
ENDLOOP.
ENDCASE.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SET'.
IF sy-lsind = 1.
WINDOW STARTING AT 5 3 ENDING AT 40 10.
WRITE 'Select line for a second window'.
ELSEIF sy-lsind = 2.
WINDOW STARTING AT 45 10 ENDING AT 60 12.
WRITE 'Last window'.
ENDIF.
WHEN 'BACK'.
sy-lsind = sy-lsind - 1.
WHEN 'ABC'.
WRITE:/ 'iam great'.
WHEN 'DOWNLOAD'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
filename = 'c:\temp.txt'
filetype = 'DAT'
TABLES
data_tab = itab
FIELDNAMES =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-lsind.
WHEN '1'.
WRITE:/ 'this is secondary list'.
ENDCASE. -
Re: URGENT: REGARDING ALV REPORT OUTLOOK
HI,
I am making alv report in which d simple format is used and its output is used to be appear to be simple and now i want to make its output more gud,can anybody tell me d solution of dis problem,reply useful will be definately rewarded....
REPORT ZMFTEST5 no standard page heading LINE-SIZE 310.
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
**DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
END OF ITSO.
Heading of the report.
data: t_heading type slis_t_listheader.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU. .
START-OF-SELECTION.
SELECT DISTINCT AVBELN AERDAT ABSTNK AKUNNR BSPART BMATNR BPOSNR BWERKS BKWMENG BKBMENG CNTGEW CBRGEW CGEWEI DWMENG DBMENG DEDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON BVBELN = AVBELN
INNER JOIN MARA AS C ON CMATNR = BMATNR
INNER JOIN VBEP AS D ON DWMENG > 0 AND DVBELN = AVBELN AND DPOSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE AVBELN IN SO_ORD AND AKUNNR IN SO_PARTY AND BSPART IN DIV AND AERDAT IN SO_DATE AND DEDATU IN S_DATE AND BMATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
perform f_build_eventcat.
PERFORM LAYOUT.
END-OF-SELECTION.
FORM LAYOUT.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'S.O.NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O.' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO. ' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' ''.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = F1
IT_SORT = GT_SORT
I_SAVE = 'X'
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = ITSO.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Top of page heading
perform set_top_page_heading using t_heading t_event.
Events
perform set_events using t_event.
GUI Status
w_status = ''.
w_repid = sy-repid.
Title
w_title = <<If you want to set a title for
the ALV, please, uncomment and edit this line>>.
User commands
w_comm = 'USER_COMMAND'.
ENDFORM. " LAYOUT
*& Form FCAT
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM. " F_BUILD_EVENTCAT
*& Form F_WRITE_SUMMARY
Write summary before exit
FORM F_WRITE_SUMMARY .
write:/ 'Welcome to XYZ Limited'.
write:/ 'This is a test program to display Report in ALV Format'.
ENDFORM.Just check the program :
REPORT ZMFTEST5 no standard page heading LINE-SIZE 310.
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
**DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
END OF ITSO.
Heading of the report.
data: t_heading type slis_t_listheader.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU. .
START-OF-SELECTION.
SELECT DISTINCT AVBELN AERDAT ABSTNK AKUNNR BSPART BMATNR B~POSNR
BWERKS BKWMENG BKBMENG CNTGEW CBRGEW CGEWEI DWMENG DBMENG
DEDATU DVBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON BVBELN = AVBELN
INNER JOIN MARA AS C ON CMATNR = BMATNR
INNER JOIN VBEP AS D ON DWMENG > 0 AND DVBELN = AVBELN AND DPOSNR =
B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE AVBELN IN SO_ORD AND AKUNNR IN SO_PARTY AND B~SPART IN DIV AND
AERDAT IN SO_DATE AND DEDATU IN S_DATE AND BMATNR IN IT_M AND BWERKS
= PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
perform f_build_eventcat.
PERFORM LAYOUT.
END-OF-SELECTION.
FORM LAYOUT.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'S.O.NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O.' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO. ' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' ''.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
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 =
IT_FIELDCAT = F1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITSO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Top of page heading
perform set_top_page_heading using t_heading t_event.
Events
perform set_events using t_event.
GUI Status
w_status = ''.
w_repid = sy-repid.
Title
w_title = <<If you want to set a title for
the ALV, please, uncomment and edit this line>>.
User commands
w_comm = 'USER_COMMAND'.
ENDFORM. " LAYOUT
*& Form FCAT
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM. " F_BUILD_EVENTCAT
*& Form F_WRITE_SUMMARY
Write summary before exit
FORM F_WRITE_SUMMARY .
write:/ 'Welcome to XYZ Limited'.
write:/ 'This is a test program to display Report in ALV Format'.
ENDFORM.
Thanks
Seshu -
HI,
report zhr2.
tables:pernr.
type-POOLs:slis.
INFOTYPES:0001,0004,0041.
data: begin of itab,
pernr type pernr-pernr,
MASSN type p0000-MASSN,
STAT2 type p0000-STAT2,
STAT3 type p0000-STAT3,
PLANS type p0001-plans,
WERKS type p0001-werks,
PERSG type p0001-PERSG,
PERSK type p0001-PERSK,
end of itab.
data:it_itab type STANDARD TABLE OF itab,
wa_itab like itab.
DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
alv_layout TYPE slis_layout_alv.
DATA: filled_lines LIKE sy-index,
stru_disvar TYPE disvariant.
select-options:s_pernr for pernr-pernr.
start-of-SELECTION.
get pernr.
describe table p0001 lines filled_lines.
if filled_lines gt 0.
rp_provide_from_last p0001 space pn-begda pn-endda.
clear wa_itab.
move-CORRESPONDING p0001 to wa_itab.
append wa_itab to it_itab.
if pnp-sw-found eq 0.
reject.
endif.
endif.
end-of-SELECTION.
PERFORM fieldcat_init USING alv_fieldcat.
alv_layout-colwidth_optimize = 'X'.
alv_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZHR2'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'ITAB'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Date Specifications'
I_GRID_SETTINGS =
is_layout = alv_layout
it_fieldcat = alv_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = stru_disvar
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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: 'Program error'(002).
ENDIF.
FORM fieldcat_init USING p_fieldcat
TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-ref_tabname = 'PERNR'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MASSN'.
ls_fieldcat-ref_fieldname = 'MASSN'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT2'.
ls_fieldcat-ref_fieldname = 'STAT2'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT3'.
ls_fieldcat-ref_tabname = 'STAT3'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLANS'.
ls_fieldcat-ref_fieldname = 'PLANS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSG'.
ls_fieldcat-ref_fieldname = 'PERSG'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSK'.
ls_fieldcat-ref_fieldname = 'PERSK'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
ENDFORM.
IT is going dump plz can any one help in this .
Thanks and regards,
VamshiHI,
report zhr2.
tables:pernr.
type-POOLs:slis.
INFOTYPES:0001,0004,0041.
data: begin of itab,
pernr type pernr-pernr,
MASSN type p0000-MASSN,
STAT2 type p0000-STAT2,
STAT3 type p0000-STAT3,
PLANS type p0001-plans,
WERKS type p0001-werks,
PERSG type p0001-PERSG,
PERSK type p0001-PERSK,
end of itab.
data:it_itab type STANDARD TABLE OF itab,
wa_itab like itab.
DATA: alv_fieldcat TYPE slis_t_fieldcat_alv,
alv_layout TYPE slis_layout_alv.
DATA: filled_lines LIKE sy-index,
stru_disvar TYPE disvariant.
select-options:s_pernr for pernr-pernr.
start-of-SELECTION.
get pernr.
describe table p0001 lines filled_lines.
if filled_lines gt 0.
rp_provide_from_last p0001 space pn-begda pn-endda.
clear wa_itab.
move-CORRESPONDING p0001 to wa_itab.
append wa_itab to it_itab.
if pnp-sw-found eq 0.
reject.
endif.
endif.
end-of-SELECTION.
PERFORM fieldcat_init USING alv_fieldcat.
alv_layout-colwidth_optimize = 'X'.
alv_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZHR2'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'ITAB'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Date Specifications'
I_GRID_SETTINGS =
is_layout = alv_layout
it_fieldcat = alv_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = stru_disvar
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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: 'Program error'(002).
ENDIF.
FORM fieldcat_init USING p_fieldcat
TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-ref_tabname = 'PERNR'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MASSN'.
ls_fieldcat-ref_fieldname = 'MASSN'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT2'.
ls_fieldcat-ref_fieldname = 'STAT2'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STAT3'.
ls_fieldcat-ref_tabname = 'STAT3'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLANS'.
ls_fieldcat-ref_fieldname = 'PLANS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSG'.
ls_fieldcat-ref_fieldname = 'PERSG'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSK'.
ls_fieldcat-ref_fieldname = 'PERSK'.
ls_fieldcat-ref_tabname = 'P0001'.
APPEND ls_fieldcat TO p_fieldcat.
ENDFORM.
IT is going dump plz can any one help in this .
Thanks and regards,
Vamshi -
Re: URGENT: REGARDING ALV REPORT
hi,
i am making dis report :-
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
**DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
END OF ITSO.
Heading of the report.
data: t_heading type slis_t_listheader.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU. .
START-OF-SELECTION.
SELECT DISTINCT AVBELN AERDAT ABSTNK AKUNNR BSPART BMATNR BPOSNR BWERKS BKWMENG BKBMENG CNTGEW CBRGEW CGEWEI DWMENG DBMENG DEDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON BVBELN = AVBELN
INNER JOIN MARA AS C ON CMATNR = BMATNR
INNER JOIN VBEP AS D ON DWMENG > 0 AND DVBELN = AVBELN AND DPOSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE AVBELN IN SO_ORD AND AKUNNR IN SO_PARTY AND BSPART IN DIV AND AERDAT IN SO_DATE AND DEDATU IN S_DATE AND BMATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
perform f_build_eventcat.
PERFORM LAYOUT.
END-OF-SELECTION.
FORM LAYOUT.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'S.O.NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO.' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' ''.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
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 =
IT_FIELDCAT = F1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_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
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITSO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " LAYOUT
*& Form FCAT
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM. " F_BUILD_EVENTCAT
and i want to add dis code: -
DATA: B_QTY TYPE P LENGTH 7 DECIMALS 3,
B_GR_W TYPE P LENGTH 5 DECIMALS 3,
B_NT_W TYPE P LENGTH 5 DECIMALS 3,
ITEM_NTW TYPE P LENGTH 5 DECIMALS 3,
ITEM_GRW TYPE P LENGTH 5 DECIMALS 3,
ITEM_DISP TYPE P LENGTH 5 DECIMALS 3,
CNT(5) TYPE N.
CNT = 0.
DATA : V_SOSTAT TYPE C,
V_NETWT LIKE MARA-NTGEW,
V_GRWT LIKE MARA-BRGEW,
V_DESPQTY TYPE P LENGTH 5 DECIMALS 3,
V_TSONWT TYPE P LENGTH 5 DECIMALS 3,
V_TSOGWT TYPE P LENGTH 5 DECIMALS 3,
V_TSINWT TYPE P LENGTH 5 DECIMALS 3,
V_TBALNWT TYPE P LENGTH 5 DECIMALS 3,
V_TBALGWT TYPE P LENGTH 5 DECIMALS 3.
V_TSONWT = 0.
V_TSOGWT = 0.
V_TSINWT = 0.
V_TBALNWT = 0.
V_TBALGWT = 0.
*LOOP AT ITSO.
loop at t_data.
if t_data-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF t_data-WMENG <> t_data-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
if ( PEND = 'X' AND ( V_SOSTAT = 'A' OR V_SOSTAT = 'B' ) ) OR ( UNTC = 'X' AND V_SOSTAT = 'A' ) OR ( COMP = 'X' AND V_SOSTAT = 'C' ) OR ALL_E = 'X'.
CNT = CNT + 1.
IF ITSO-BMENG = 0.
if wa_data-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF ITSO-WMENG <> ITSO-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
if ( PEND = 'X' AND ( V_SOSTAT = 'A' OR V_SOSTAT = 'B' ) ) OR ( UNTC = 'X' AND V_SOSTAT = 'A' ) OR ( COMP = 'X' AND V_SOSTAT = 'C' ) OR ALL_E = 'X'.
CNT = CNT + 1.
SELECT SINGLE MAKTX FROM MAKT INTO V_ITEM WHERE MATNR = ITSO-MATNR.
SELECT SINGLE NAME1 FROM KNA1 INTO V_ADDR WHERE KUNNR = ITSO-KUNNR.*
IF ITSO-GEWEI = 'G'.
V_NETWT = ITSO-NTGEW / 1000.
V_GRWT = ITSO-BRGEW / 1000.
ELSEIF ITSO-GEWEI = 'KG'.
V_NETWT = ITSO-NTGEW.
V_GRWT = ITSO-BRGEW.
ELSEIF ITSO-GEWEI = 'TO'.
V_NETWT = ITSO-NTGEW * 1000.
V_GRWT = ITSO-BRGEW * 1000.
ENDIF.
V_DESPQTY = ITSO-BMENG.
ITEM_NTW = V_NETWT * ITSO-WMENG / 1000.
ITEM_GRW = V_GRWT * ITSO-WMENG / 1000.
ITEM_DISP = V_NETWT * V_DESPQTY / 1000.
B_QTY = ITSO-WMENG - V_DESPQTY.
B_NT_W = V_NETWT * B_QTY / 1000.
B_GR_W = V_GRWT * B_QTY / 1000.
HOW CAN I DISPLAY IT is a calculation stored in d variable.
providing dis solution to dis problem will b rewarded....take a marker and write calculation....!!!!
waiting for reward point......... -
Urgent regarding Display fields in ALV End of Page
Hi,
I am displaying the output using ALV List Display. Output of the report is displayed in different pages based on a particular delivery address. I have to display some of the fields (Delivery address) of the final internal table in the end of page. I need to trigger this end of page in alv based on the selection of radio buttons also.
Its very urgent. Respond immediately.
Thanks
GeetaRefer the follwoing code:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
i_callback_html_end_of_list = 'END_OF_LIST_HTML'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
*& Form end_of_list_html
* output at the end of the list - not in printed output *
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT'.
ls_text = 'Footer title'.
* adds and icon (red triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'ICON_MESSAGE_ERROR_SMALL'.
* adds test (via variable)
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Bold text'
sap_emphasis = 'strong'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'Normal text'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Yellow triangle'
sap_emphasis = 'strong'.
* adds and icon (yellow triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'ICON_LED_YELLOW'.
* display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'More text'.
*set height of this section
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->parent->parent->(f)
EXPORTING
id = 3
height = 14.
ENDFORM. "end_of_list_html. -
Urgent... need help in alv.
hai all,
in an alv report i want a pushbutton in the application tool bar .
how can i get it.
and also i want to select multiple rows from the list and the first column as a button to select the rows.
please.. help me. its very urgent.
thanks in advance.
regards, selvi.Hi,
Following steps to copy standard status to zstatus
Goto T.Code SE41 & give program name SAPLSLVC then select
status as STANDARD then copy this status to zstatus in your program
open zstatus in T.Code SE41 and add push button and save & activate it.
then Call FM PF_STATUS.
see below,
I_CALLBACK_PF_STATUS_SET- 'PF_STATUS'
In module PF_STATUS
set pf-status 'ZSTATUS'
reward if useful. -
URGENT: REGARDING POSTING DATE AND DELETION OF ZEROS IN ALV REPORT
Hi,
I had made a report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ .
2nd problem is i had displayed the material no. ,but there are zeros which are displaying in dere ,i want to remove dem ... example, if the mat.no. is 2321 ,it is displaying 000002321. i want to remove these zeros.
Its request to all of u dat plz help me as fast as possible as it is most urgent to me and if any body provide me help he or sh e will be definately rewarded..
Regards,
ric.sHere i am giving you one of the ALV reports i have generated. Check this program. I hope it will be helpful to you.
REPORT ZFI_ASSIGNED_FUNDS_FINAL.
TABLES: FMIT,FMCIT,FPOS,IFMEISA1,FMFCTRT,BSEG,ZREV_BUDGET.
TYPE-POOLS: SLIS.
*ALV data declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.
*For ALV top of page
DATA : IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*For ALV Events
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
*For ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
*For top of page heading
DATA: IT_LINE TYPE SLIS_LISTHEADER.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : RADIO RADIOBUTTON GROUP R1.
IF RADIO EQ 'X'.
SELECT-OPTIONS: FIPEX FOR FPOS-FIPEX, " SELECTION FOR FUNDS CENTER & COMMITMENT ITEM
RFISTL FOR FMIT-RFISTL.
ENDIF.
PARAMETER: RADIO1 RADIOBUTTON GROUP R1.
IF RADIO1 EQ 'X'.
SELECT-OPTIONS : HKONT FOR BSEG-HKONT, " SELECTION FOR COST CENTER & G/L ACCOUNT
KOSTL FOR ZREV_BUDGET-KOSTL.
ENDIF.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: PERDE FOR IFMEISA1-PERDE DEFAULT '01' TO '12' OBLIGATORY.
PARAMETER : RYEAR LIKE FMIT-RYEAR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
DATA: BEGIN OF IT_TAB OCCURS 0,
FIKRS LIKE FMFCTR-FIKRS,
FICTR LIKE CSKS-KOSTL,
CTR_OBJNR LIKE FMFCTR-CTR_OBJNR,
RFISTL LIKE FMIT-RFISTL,
OBJNR LIKE BPPE-OBJNR,
END OF IT_TAB.
DATA: BEGIN OF IT_TAB1 OCCURS 0,
CO_OBJNR LIKE BPIJ-CO_OBJNR,
POSIT LIKE BPPE-POSIT,
FIPEX LIKE FMPOSIT-FIPEX,
FICTR LIKE FMFCTR-FICTR,
KSTAR LIKE COSP-KSTAR,
RFISTL LIKE FMIT-RFISTL,
OBJNR1 LIKE BPPE-OBJNR,
END OF IT_TAB1.
DATA: BEGIN OF IT_FMIT OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE ZREV_BUDGET-KSTAR,
HSL01 LIKE FMIT-HSL01,
HSL02 LIKE FMIT-HSL02,
HSL03 LIKE FMIT-HSL03,
HSL04 LIKE FMIT-HSL04,
HSL05 LIKE FMIT-HSL05,
HSL06 LIKE FMIT-HSL06,
HSL07 LIKE FMIT-HSL07,
HSL08 LIKE FMIT-HSL08,
HSL09 LIKE FMIT-HSL09,
HSL10 LIKE FMIT-HSL10,
HSL11 LIKE FMIT-HSL11,
HSL12 LIKE FMIT-HSL12,
HSL13 LIKE FMIT-HSL13,
HSL14 LIKE FMIT-HSL14,
HSL15 LIKE FMIT-HSL15,
HSL16 LIKE FMIT-HSL16,
END OF IT_FMIT.
DATA: BEGIN OF IT_FMIT1 OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE FMPG-FIPEX,
TOTAL LIKE FMIT-TSL01,
TOTAL1 LIKE FMIT-TSL01,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_FMIT1.
DATA: BEGIN OF IT_BPPE OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
WLP01 LIKE BPPE-WLP01,
WLP02 LIKE BPPE-WLP02,
WLP03 LIKE BPPE-WLP03,
WLP04 LIKE BPPE-WLP04,
WLP05 LIKE BPPE-WLP05,
WLP06 LIKE BPPE-WLP06,
WLP07 LIKE BPPE-WLP07,
WLP08 LIKE BPPE-WLP08,
WLP09 LIKE BPPE-WLP09,
WLP10 LIKE BPPE-WLP10,
WLP11 LIKE BPPE-WLP11,
WLP12 LIKE BPPE-WLP12,
END OF IT_BPPE.
DATA: BEGIN OF IT_BPPE1 OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
RFISTL LIKE FMIT-RFISTL,
FIPEX LIKE FPOS-FIPEX,
TOTAL2 LIKE BPPE-WLP01,
END OF IT_BPPE1.
DATA: BEGIN OF IT_CSKS OCCURS 0,
KOKRS LIKE CSKS-KOKRS,
KOSTL LIKE CSKS-KOSTL,
BUKRS LIKE CSKS-BUKRS,
OBJNR LIKE CSKS-OBJNR,
END OF IT_CSKS.
DATA: BEGIN OF IT_COSP OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
BEKNZ LIKE COSP-BEKNZ,
WKG001 LIKE COSP-WKG001,
WKG002 LIKE COSP-WKG002,
WKG003 LIKE COSP-WKG003,
WKG004 LIKE COSP-WKG004,
WKG005 LIKE COSP-WKG005,
WKG006 LIKE COSP-WKG006,
WKG007 LIKE COSP-WKG007,
WKG008 LIKE COSP-WKG008,
WKG009 LIKE COSP-WKG009,
WKG010 LIKE COSP-WKG010,
WKG011 LIKE COSP-WKG011,
WKG012 LIKE COSP-WKG012,
END OF IT_COSP.
DATA: BEGIN OF IT_COSP2 OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
FIPEX LIKE FMPG-FIPEX,
TOTAL LIKE COSP-WKG001,
TOTAL1 LIKE COSP-WKG001,
OBJNR1 LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_COSP2.
IF RADIO EQ 'X'.
DATA: BEGIN OF IT_FINAL OCCURS 0,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE FMIT-RFISTL,
RFIPEX LIKE FMIT-RFIPEX,
TEXT LIKE FMCIT-TEXT1,
ALLOC LIKE FMIT-TSL16,
USED LIKE FMIT-TSL16,
REMAIN LIKE FMIT-TSL16,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL.
ENDIF.
IF RADIO1 EQ 'X'.
DATA: BEGIN OF IT_FINAL1 OCCURS 0,
GJAHR LIKE ZREV_BUDGET-GJAHR,
KOSTL LIKE ZREV_BUDGET-KOSTL,
KSTAR LIKE ZREV_BUDGET-KSTAR,
TOTAL1 LIKE COSP-WKG001,
TOTAL3 LIKE COSP-WKG001,
TEXT LIKE CSKU-KTEXT,
VARIANCE LIKE COSP-WKG001,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL1.
ENDIF.
DATA: BEGIN OF IT_FISTL OCCURS 0,
RFISTL LIKE FMIT-RFISTL,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FISTL.
DATA: BEGIN OF IT_HKONT OCCURS 0,
KSTAR LIKE CSKU-KSTAR,
KTEXT LIKE CSKU-KTEXT,
END OF IT_HKONT.
DATA: PERIOD1 TYPE I,
PERIOD2 TYPE I,
PERIOD3 TYPE I,
PERIO TYPE I.
DATA: BEZEICH LIKE FMFCTRT-BEZEICH.
CONSTANTS: C_00 TYPE MONAT VALUE '00',
C_13 TYPE MONAT VALUE '13'.
DATA : IT_RETURN LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: FIPEX1 LIKE COSP-KSTAR.
A T - S E L E C T I O N S C R E E N
AT SELECTION-SCREEN.
LOOP AT PERDE.
IF PERDE-LOW >= C_13 OR PERDE-HIGH >= C_13 .
MESSAGE E022(ZA) WITH 'Enter Period values from 1 to 12'.
EXIT.
ENDIF.
ENDLOOP.
IF NOT PERDE-LOW IS INITIAL.
PERIOD1 = PERDE-LOW.
ENDIF.
IF NOT PERDE-HIGH IS INITIAL.
PERIOD2 = PERDE-HIGH.
PERIOD3 = PERIOD2 - PERIOD1.
PERIOD3 = PERIOD3 + 1.
ELSE.
PERIOD3 = 1.
ENDIF.
PERIO = PERIOD1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-LOW.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-HIGH.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-HIGH.
ENDIF.
*START-OF-SELECTION
START-OF-SELECTION.
IF RADIO EQ 'X'. " FOR FUNDS CENTER AND COMMITMENT ITEM
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
ENDIF.
IF RADIO1 EQ 'X'. " FOR COST CENTER AND G/L ACCOUNT
PERFORM GET_DATA1.
PERFORM PROCESS_DATA1.
ENDIF.
*END OF SELECTION
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
IF RADIO EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_SORT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
IF RADIO1 EQ 'X'.
PERFORM BUILD_FIELDCATALOG1.
PERFORM BUILD_SORT1.
PERFORM DISPLAY_ALV_REPORT1.
ENDIF.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
SELECT FIKRS FICTR CTR_OBJNR INTO TABLE IT_TAB FROM FMFCTR
WHERE FIKRS EQ 'NFFM'
AND FICTR IN RFISTL.
SELECT CO_OBJNR POSIT INTO TABLE IT_TAB1 FROM BPIJ
FOR ALL ENTRIES IN IT_TAB
WHERE CO_OBJNR EQ IT_TAB-CTR_OBJNR.
LOOP AT IT_TAB1.
SELECT SINGLE FIPEX INTO IT_TAB1-FIPEX FROM FMPOSIT WHERE FIKRS EQ 'NFFM'
AND POSIT EQ IT_TAB1-POSIT
AND FIPEX IN FIPEX.
IF SY-SUBRC EQ '0'.
MODIFY IT_TAB1.
ELSE.
DELETE IT_TAB1.
ENDIF.
ENDLOOP.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_TAB1
WHERE OBJNR EQ IT_TAB1-CO_OBJNR
AND POSIT EQ IT_TAB1-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
IT_BPPE1-RFISTL = IT_BPPE1-OBJNR+6(4).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_BPPE1-RFISTL
IMPORTING
OUTPUT = IT_BPPE1-RFISTL.
CALL FUNCTION 'FM_FIPEX_GET_FROM_POSIT'
EXPORTING
I_FIKRS = 'NFFM'
I_POSIT = IT_BPPE1-POSIT
IMPORTING
E_FIPEX = IT_BPPE1-FIPEX.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
SELECT RYEAR
FIKRS
RFISTL
RFIPEX
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO TABLE IT_FMIT FROM FMIT
FOR ALL ENTRIES IN IT_BPPE1
WHERE RYEAR EQ RYEAR
AND FIKRS EQ 'NFFM'
AND RFIPEX EQ IT_BPPE1-FIPEX
AND RFIPEX IN FIPEX
AND RFISTL EQ IT_BPPE1-RFISTL.
LOOP AT IT_FMIT.
MOVE-CORRESPONDING IT_FMIT TO IT_FMIT1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL01.
WHEN 2.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL02.
WHEN 3.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL03.
WHEN 4.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL04.
WHEN 5.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL05.
WHEN 6.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL06.
WHEN 7.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL07.
WHEN 8.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL08.
WHEN 9.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL09.
WHEN 10.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL10.
WHEN 11.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL11.
WHEN 12.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_FMIT1-TOTAL1 = IT_FMIT1-TOTAL * -1 .
COLLECT IT_FMIT1.
CLEAR PERIOD1.
CLEAR IT_FMIT1.
ENDLOOP.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA .
SORT IT_FMIT1 BY FIKRS RFISTL RFIPEX.
SORT IT_BPPE1 BY RFISTL FIPEX.
LOOP AT IT_BPPE1.
IT_FINAL-RFISTL = IT_BPPE1-RFISTL.
IT_FINAL-RFIPEX = IT_BPPE1-FIPEX.
IT_FINAL-ALLOC = IT_BPPE1-TOTAL2.
READ TABLE IT_FMIT1 WITH KEY RFISTL = IT_BPPE1-RFISTL RFIPEX = IT_BPPE1-FIPEX.
IF SY-SUBRC EQ 0.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
Changes made on 13/11/2007 *******************************
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_BPPE1-FIPEX.
Changes made on 13/11/2007 *******************************
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL-RFIPEX
IMPORTING
OUTPUT = IT_FINAL-RFIPEX.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
LOOP AT IT_FMIT1.
READ TABLE IT_FINAL WITH KEY RFISTL = IT_FMIT1-RFISTL RFIPEX = IT_FMIT1-RFIPEX.
IF SY-SUBRC NE 0.
IT_FINAL-RFISTL = IT_FMIT1-RFISTL.
IT_FINAL-RFIPEX = IT_FMIT1-RFIPEX.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
IT_FINAL-ALLOC = '0'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ELSE.
DELETE IT_FMIT1.
ENDIF.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
ENDFORM. " PROCESS_DATA
*& Form GET_DATA1
text
--> p1 text
<-- p2 text
FORM GET_DATA1 .
SELECT KOKRS KOSTL BUKRS OBJNR INTO TABLE IT_CSKS
FROM CSKS
WHERE KOKRS EQ '1000'
AND KOSTL IN KOSTL
AND BUKRS EQ 'NFCL'.
SELECT OBJNR
GJAHR
KSTAR
BEKNZ
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
FROM COSP
INTO TABLE IT_COSP
FOR ALL ENTRIES IN IT_CSKS
WHERE OBJNR EQ IT_CSKS-OBJNR
AND GJAHR EQ RYEAR
AND KSTAR IN HKONT.
LOOP AT IT_COSP.
MOVE-CORRESPONDING IT_COSP TO IT_COSP2.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG001.
WHEN 2.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG002.
WHEN 3.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG003.
WHEN 4.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG004.
WHEN 5.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG005.
WHEN 6.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG006.
WHEN 7.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG007.
WHEN 8.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG008.
WHEN 9.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG009.
WHEN 10.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG010.
WHEN 11.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG011.
WHEN 12.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG012.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_COSP2-OBJNR1 = IT_COSP2-OBJNR+10(6).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-OBJNR1
IMPORTING
OUTPUT = IT_COSP2-OBJNR1.
CONCATENATE 'FSNFFM' IT_COSP2-OBJNR1 INTO IT_COSP2-OBJNR1.
IT_COSP2-FIPEX = IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-FIPEX
IMPORTING
OUTPUT = IT_COSP2-FIPEX.
CALL FUNCTION 'FM_POSIT_GET_FROM_FIPEX'
EXPORTING
I_FIKRS = 'NFFM'
I_FIPEX = IT_COSP2-FIPEX
I_FLG_BUFFER_ALL =
IMPORTING
E_POSIT = IT_COSP2-POSIT
TABLES
T_FMPOSIT =
EXCEPTIONS
INPUT_ERROR = 1
DATA_NOT_FOUND = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CONDENSE IT_COSP2-OBJNR1.
CONDENSE IT_COSP2-POSIT.
COLLECT IT_COSP2.
CLEAR PERIOD1.
CLEAR IT_COSP2.
ENDLOOP.
SORT IT_COSP2 BY OBJNR KSTAR.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_COSP2
WHERE OBJNR EQ IT_COSP2-OBJNR1
AND POSIT EQ IT_COSP2-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
ENDFORM. " GET_DATA1
*& Form PROCESS_DATA1
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA1 .
LOOP AT IT_COSP2.
IT_FINAL1-GJAHR = IT_COSP2-GJAHR.
IT_FINAL1-KSTAR = IT_COSP2-KSTAR.
IT_FINAL1-TOTAL1 = IT_COSP2-TOTAL.
SELECT SINGLE KOSTL FROM CSKS INTO IT_FINAL1-KOSTL WHERE KOKRS = '1000'
AND BUKRS EQ 'NFCL'
AND OBJNR = IT_COSP2-OBJNR.
READ TABLE IT_BPPE1 WITH KEY OBJNR = IT_COSP2-OBJNR1 POSIT = IT_COSP2-POSIT.
IF SY-SUBRC EQ 0.
IT_FINAL1-TOTAL3 = IT_BPPE1-TOTAL2.
ENDIF.
SELECT SINGLE KTEXT INTO IT_FINAL1-TEXT FROM CSKU WHERE SPRAS EQ 'EN'
AND KSTAR EQ IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KOSTL
IMPORTING
OUTPUT = IT_FINAL1-KOSTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KSTAR
IMPORTING
OUTPUT = IT_FINAL1-KSTAR.
SELECT SINGLE BEZEICH INTO IT_FINAL1-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FINAL1-KOSTL.
IT_FINAL1-VARIANCE = IT_FINAL1-TOTAL3 - IT_FINAL1-TOTAL1.
APPEND IT_FINAL1.
CLEAR IT_FINAL1.
ENDLOOP.
SORT IT_FINAL1 BY KOSTL KSTAR.
DELETE IT_FINAL1 WHERE KOSTL IS INITIAL.
ENDFORM. " PROCESS_DATA1
*& Form BUILD_FIELDCATALOG
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'RFISTL'.
FIELDCATALOG-SELTEXT_M = 'Funds Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Fund Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RFIPEX'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ALLOC'.
FIELDCATALOG-SELTEXT_M = 'Allocated Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USED'.
FIELDCATALOG-SELTEXT_M = 'Used Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'REMAIN'.
FIELDCATALOG-SELTEXT_M = 'Remaining Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_FIELDCATALOG1
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG1 .
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'Cost Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Cost Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KSTAR'.
FIELDCATALOG-SELTEXT_M = 'G/L Account'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL3'.
FIELDCATALOG-SELTEXT_M = 'Planned amount'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL1'.
FIELDCATALOG-SELTEXT_M = 'Actuals'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VARIANCE'.
FIELDCATALOG-SELTEXT_M = 'Variance'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG1
*& Form BUILD_LAYOUT
text
--> p1 text
<-- p2 text
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*& Form BUILD_SORT
text
--> p1 text
<-- p2 text
FORM BUILD_SORT .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'RFISTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT
*& Form BUILD_SORT1
text
--> p1 text
<-- p2 text
FORM BUILD_SORT1 .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'KOSTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT1
*& Form BUILD_EVENTS
text
--> p1 text
<-- p2 text
FORM BUILD_EVENTS .
IT_EVENT-NAME = 'TOP_OF_PAGE'.
IT_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND IT_EVENT TO IT_EVENT1.
CLEAR IT_EVENT.
ENDFORM. " BUILD_EVENTS
*& Form TOP_OF_PAGE
ALV TOP-OF-PAGE
FORM TOP_OF_PAGE. "#EC CALLED
REFRESH : IT_LIST_TOP_OF_PAGE.
CLEAR : IT_LINE.
IT_LINE-TYP = 'H'.
IT_LINE-INFO = TEXT-001.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE.
IF RADIO EQ 'X'.
IT_LINE-TYP = 'S'.
IT_LINE-INFO = TEXT-101.
IF NOT FIPEX-LOW IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT FIPEX-HIGH IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW 'to' FIPEX-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-102.
IF NOT RFISTL-LOW IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT RFISTL-HIGH IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW 'to' RFISTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
IF RADIO1 EQ 'X'.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-105.
IF NOT KOSTL-LOW IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT KOSTL-HIGH IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW 'to' KOSTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-106.
IF NOT HKONT-LOW IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT HKONT-HIGH IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW 'to' HKONT-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-103.
IF NOT PERDE-LOW IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT PERDE-HIGH IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW 'to' PERDE-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-104.
IF NOT RYEAR IS INITIAL.
CONCATENATE TEXT-104 '-' RYEAR INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*& Form DISPLAY_ALV_REPORT
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "DISPLAY_ALV_REPORT
*& Form DISPLAY_ALV_REPORT1
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT1 .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSG -
How to change the layout of alv-urgent
hi friends,
my requirement is User should be able to sort the data on fields in different order, should be able to select the fields to sort the data
for example iam displaying the sales order,sales group,kunnr,amount in ALV List Display now when iam selecting the fields sales group,kunnr,amount,sales order then program has to display output in this way only. for this i used sort table thae way iwrote logic for displaying output is as follows ...
w_sort-spos = 3.
w_sort-fieldname = 'FINQTR'.
W_FIELD-just = 'C'.
W_SORT-UP = 'X'.
W_SORT-group = 'UL'.
W_SORT-SUBTOT = 'X'.
APPEND W_SORT TO I_SORT.
CLEAR W_SORT.
for subtotals it is working fine and now what shall i do for this requirement plz send me the sample code its really urgent to me.use slis_t_sortinfo_alv.
w_sort-fieldname = 'XYZ'.
w_sort-up = p_userinput1.(for XYZ)
w_sort-down = p_userinput2.(for XYZ) preferabbly radio buttons.
append w_sort to t_sort.
w_sort-fieldname = 'YZX'.
w_sort-up = p_userinput1.(for YZX)
w_sort-down = p_userinput2.(for YZX) preferabbly radio buttons.
append w_sort to t_sort.
thats the best I am able to think for you.
let me know if that is helpful.
cheers
santhosh -
Urgent: dates calculation in alv
hi,
i am making ALV report in alv in whihc i ahve to dispaly the difference between two days i.e. DIFFERRENCE = 7 DAYS.
CAN anybody provide me the example of it as it is urgent for me.
points will be definately rewarded for correct awnser.use function module
HR_HK_DIFF_BT_2_DATES
give output format = 03 and get the value in days.
code is as below :
data : DATE1 type P0001-BEGDA,
DATE2 type P0001-BEGDA,
YEARS type P0347-SCRYY,
MONTHS type P0347-SCRMM,
DAYS type P0347-SCRDD.
date1 = '20070331'.
date2 = '20070101'.
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
DATE1 = date1
DATE2 = date2
OUTPUT_FORMAT = '03'
IMPORTING
YEARS = years
MONTHS = months
DAYS = days
EXCEPTIONS
INVALID_DATES_SPECIFIED = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write : days.
regards,
sandeep Kaushik -
Hai Gurus ,
What is the short key to run a program in background .. ?
I want to run a program (ALV report)in background to get a spool number .after this I want to send this report in email as PDF format ..
very urgent .. can any one help ...Hi,
BackGround : "CTRL" + "F9".
For Spool to PDF and Email, check the following ABAP code : RSTXPDFT4.
( For spool 2 PDF : FM : <b>'CONVERT_ABAPSPOOLJOB_2_PDF'</b>
For email with PDF attached : FM : <b>'SO_DOCUMENT_SEND_API1'</b> )
Hope this helps,
Erwan
Maybe you are looking for
-
USER Cancelled message while navigating report.
Post Author: sreeraj_vinod CA Forum: General One of our clients are facing a peculiar problem. We have a VB 6 application with crystal report 9 reports assocaited to it. When the user generates a report which has a large amount of data, and he tries
-
Can i keep itunes on an external drive
i am out of hard drive space and dont use itunes that much can i keep it on an external drive
-
Administrator API: Login to specific instance with username, password
1) How do I login to a specific instance of ColdFusion administrator with a username and password. The example I see everywhere is variations of: adminObj = createObject("component","cfide.adminapi.administrator"); adminObj.login("password"); which
-
Export command throws error?
Hi All, Greeting to all, As i try to extract whole repository by export command,it throws error las below and doesn't export all xml files under repository.Although it exports many of files but not all. So,can anyone give some suggestion why it comes
-
10.6.4 Update Broke Wireless Scanning to my HP C4700 Photosmart all in one
I get an error "Trying to open scanner session..." when trying to scan wirelessly. Worked in 10.6.3.