Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Report layout

Former Member
0 Likes
1,258

I have a report which gives output of non-schedule lines items , group schedule line items and billing plan items when either is checked in the checkbox provided.

Is it possible to output the result in three diffrent layouts , ie if i check the cehckbox for billing plan items it shows me only colums related to billing pna and if group schedule line items checbox is checked only columns related to it appear and so forth.

I dont want to create differnet layouts for each , instead when teh report is run its should automatically only display those columns. Right now I am getting all the columns realted to all of them in the output though I am not getting teh values in it which are not required which is ok , but can I remove those columns all together when teh report is run based on teh particuklar selection without making layouts for each.

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,217

Hi Aarav,

Yes you can very easily do this.

Is this a classical report or an ALV?

Regards,

Atish

13 REPLIES 13
Read only

Former Member
0 Likes
1,218

Hi Aarav,

Yes you can very easily do this.

Is this a classical report or an ALV?

Regards,

Atish

Read only

0 Likes
1,217

Hi!

This is ALV report and if you can kindly tell me how to go about doing it , would really appreciate it.

Thanks

Read only

0 Likes
1,217

Hi Aarav,

You can use check this condition in while preparing the field catalog and can hide the columns at run time.

for example in your field catalog.

if <param1> = 'X'.

fieldcat-no_out = X.

else.

fieldcat-no_out = '0'.

endif.

Hope this helps you.

Thanks,

Arun

Read only

0 Likes
1,217

Hi Aarav,

Is it a OO ALV or you are using the FM. Can you paste your code of fieldcatlog creation and let me know which column you want to hide.

Regards,

Atish

Read only

0 Likes
1,217

first set of selection is this so when this checbox is checked it should show only these fields.

IF p_rental IS NOT INITIAL. " DEVK907849

  • Select the appropriate rental data.

refresh gt_sel.

refresh gt_report.

SELECT avbeln aerdat aernam aaudat avbtyp aauart a~vkorg

avtweg aspart avkbur aguebg agueen akunnr a~kvgr4

bposnr bmatnr bcharg bmatkl barktx bpstyv b~zmeng

bzieme bkdmat bwerks blgort bvstel bnetpr b~kpein

bvkaus baufnr bkmein bshkzg boid_extbol boid_miscdl

boidrc boid_ship AS kunwe bzzwprofid cdatbi cdatab broute

efkdat enfdat efakwr efksaf eafdat efkarv

ffpart fbedat fendat fhoriz g~bezei

Now when we check the other checkbox this set of selection is taken and I want only these fields to show when executed.

ELSE.

  • Select the appropriate contract data

SELECT avbeln aerdat aernam aaudat avbtyp aauart a~vkorg

avtweg aspart avkbur aguebg agueen akunnr a~kvgr4

bposnr bmatnr bcharg bmatkl barktx bpstyv b~zmeng

bzieme bkdmat bwerks blgort bvstel bnetpr b~kpein

bkmein bshkzg boid_extbol boid_miscdl boidrc boid_ship AS kunwe

bzzwprofid cdatbi cdatab broute

INTO CORRESPONDING FIELDS OF TABLE gt_sel

FROM vbak AS a

INNER JOIN vbap AS b ON avbeln = bvbeln

LEFT OUTER JOIN zsdsched AS c ON bvbeln = cvbeln AND

bposnr = cposnr

These are th e two selections and shld be showing only fields in them and now the columns of both combined.

The field catalogue is as follows:-

FORM initialize_fieldcat USING l_fieldcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZSD_CONTRACT_LIST'

i_internal_tabname = 'GT_REPORT'

i_inclname = 'ZSD_CONTRACT_LIST_T01'

CHANGING

ct_fieldcat = l_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'VBELN'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Contract'.

ls_fieldcat-hotspot = 'X'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNNRT'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sold-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNWET'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Ship-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNRET'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Bill-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'ADDL_SCHD'.

IF NOT p_group IS INITIAL.

ls_fieldcat-seltext_s = 'Schd'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Additional Scheduling Lines'.

ls_fieldcat-icon = 'X'.

CLEAR: ls_fieldcat-key,

ls_fieldcat-ref_fieldname,

ls_fieldcat-ref_tabname,

ls_fieldcat-reptext_ddic,

ls_fieldcat-ddic_outputlen.

ls_fieldcat-hotspot = 'X'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

ELSE.

DELETE l_fieldcat INDEX sy-tabix.

ENDIF.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'DATAB'.

ls_fieldcat-seltext_s = 'Schd From'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sched. From Date'.

CLEAR: ls_fieldcat-key.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'DATBI'.

ls_fieldcat-seltext_s = 'Schd To'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sched. To Date'.

CLEAR: ls_fieldcat-key.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

ENDFORM. " initialize_fieldcat

&----


*& Form populate_layout

&----


  • text

----


  • <--GS_LAYOUT

  • <--GS_VARIANT

----


FORM populate_layout CHANGING gs_layout TYPE slis_layout_alv

gs_variant TYPE disvariant.

gs_layout-colwidth_optimize = 'X'.

gs_layout-allow_switch_to_list = 'X'.

gs_layout-zebra = 'X'.

gs_variant-report = sy-repid.

ENDFORM. " populate_layout

Thanks

Read only

0 Likes
1,217

Hi Aarav,

Just try as Arun told above and you will get the desired results.

Regards,

Atish

Read only

0 Likes
1,217

Hi!

What is the param1 here , I mean what should I be putting under the parameter statement?.

Thanks

Read only

0 Likes
1,217

Hi Arav,

param1 is the CHECKBOX selections.

Thanks.

Read only

0 Likes
1,217

Sorry , but I am not able to remove the columns that is not required. If you can please tell me specifically where to put the code it shall be very helpfull. DO I have to mention each of the columns name here and remove sepeartely of can just give code as , if I am going through 1st selction show only columns thats selected for thats electionor show columns for the other selection.

Help will be highly appreciated.

Thanks

Read only

0 Likes
1,217

Hi Aarav,

You use the if condition just before the code you have hide or display.

For example, if you need to hide the field KUNWET

do this way.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNWET'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Ship-to Name'.

if chkbox = 'X'.

ls_fieldcat-no_out = 'X'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

Hope this helps you.

Thanks,

Arun

Read only

0 Likes
1,217

BECAUSE THERE ARE NOT JUST 1 OR 2 COLUMNS THAT I NEED TO HIDE , ITS 10 COLUMNS THAT i NEED TO HIDE , ALL RELATED TO BILLING PLAN SHOULD BE HIDDEN WHEN FIRST 2 CHECKBOEX ARE CHECKED AND BILLING PLAN CHECKBOX IS NOT CHECKED.

tHANKS

Read only

Former Member
0 Likes
1,217

clear wa_fieldcatalog.

wa_fieldcatalog-col_pos = 1.

wa_fieldcatalog-fieldname = 'BLD'.

wa_fieldcatalog-tabname = 'IT_BLD'.

wa_fieldcatalog-outputlen = 8.

wa_fieldcatalog-hotspot = 'X'.

wa_fieldcatalog-fix_column = 'X'.

wa_fieldcatalog-seltext_m = 'BLD'.

if (specify your condition)

wa_fieldcatalog-no_out = 'X'.

endif.

append wa_fieldcatalog to it_fieldcatalog.

Read only

0 Likes
1,217

Sorry to say this but I am still not getting the result. If anyone would be kind enough to see my report and tell me how to go about.

when I click the checkboxes 1 and 2 and run report it should show me only the fields selected for the particulr selection i.e the second set of selections in my report and when I check teh checkbox number 3 only it should show me the result and columns only for those selection i.e firsts et of selection in my report. Please help.I dont want those columns to show up that dont correspond to a particular selection crietria.

&----


*& Report ZSD_CONTRACT_LIST

*&

&----


*& Created by: Kyle Hougen

*& Created on: January 21, 2007

*& Description: List of Contracts - ALV

&----


REPORT zsd_contract_list.

INCLUDE zsd_contract_list_t01.

----


  • Selection Screen

----


SELECTION-SCREEN BEGIN OF BLOCK m1 WITH FRAME TITLE text-t01.

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

SELECT-OPTIONS: s_vkorg FOR vbak-vkorg MEMORY ID vko,

s_vtweg FOR vbak-vtweg MEMORY ID vtw,

s_spart FOR vbak-spart MEMORY ID spa,

s_vkbur FOR vbak-vkbur MEMORY ID vkb.

SELECTION-SCREEN SKIP 1.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln,

s_erdat FOR vbak-erdat,

s_ernam FOR vbak-ernam,

s_guebg FOR vbak-guebg,

s_gueen FOR vbak-gueen,

s_fksaf FOR fplt-fksaf,

s_afdat FOR fplt-afdat,

s_auart FOR gv_auart MEMORY ID vta

MATCHCODE OBJECT h_vakz.

SELECTION-SCREEN SKIP 1.

SELECT-OPTIONS:

s_kunnr FOR vbak-kunnr,

s_kunwe FOR vbap-oid_ship,

s_kunre FOR wbrk-kunre.

SELECTION-SCREEN END OF BLOCK b1.

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

SELECT-OPTIONS: s_werks FOR vbap-werks MEMORY ID wrk,

s_lgort FOR vbap-lgort MEMORY ID lag,

s_vstel FOR vbap-vstel MEMORY ID vst,

s_route FOR vbap-route,

s_pstyv FOR vbap-pstyv,

  • s_fkarv FOR fplt-fkarv,

  • s_afdat FOR fplt-afdat,

s_matnr FOR vbap-matnr.

SELECTION-SCREEN END OF BLOCK b2.

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

PARAMETERS: p_varia TYPE disvariant-variant MEMORY ID wrk,

p_all AS CHECKBOX DEFAULT 'X',

p_group AS CHECKBOX DEFAULT 'X',

p_rental AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF BLOCK m1.

----


  • Start of Selection

----


START-OF-SELECTION.

PERFORM get_data.

----


  • Display ALV

----


END-OF-SELECTION.

IF gt_report[] IS INITIAL.

MESSAGE s419(brain).

ELSE.

PERFORM create_alv.

ENDIF.

----


  • AT SELECTION-SCREEN ON VALUE-REQUEST *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varia.

PERFORM f01_f4_variant CHANGING p_varia.

&----


*& Form get_data

&----


  • text

----


FORM get_data .

IF p_rental IS NOT INITIAL. " DEVK907849

  • Select the appropriate rental data.

refresh gt_sel.

refresh gt_report.

SELECT a~vbeln a~erdat a~ernam a~audat a~vbtyp a~auart a~vkorg

a~vtweg a~spart a~vkbur a~guebg a~gueen a~kunnr a~kvgr4

b~posnr b~matnr b~charg b~matkl b~arktx b~pstyv b~zmeng

b~zieme b~kdmat b~werks b~lgort b~vstel b~netpr b~kpein

b~vkaus b~aufnr b~kmein b~shkzg b~oid_extbol b~oid_miscdl

b~oidrc b~oid_ship AS kunwe b~zzwprofid c~datbi c~datab b~route

e~fkdat e~nfdat e~fakwr e~fksaf e~afdat e~fkarv

f~fpart f~bedat f~endat f~horiz g~bezei

INTO CORRESPONDING FIELDS OF TABLE gt_sel

FROM vbak AS a

INNER JOIN vbap AS b ON a~vbeln = b~vbeln

INNER JOIN vbkd AS d ON a~vbeln = d~vbeln " DEVK907849

INNER JOIN fplt AS e ON d~fplnr = e~fplnr " DEVK907849

INNER JOIN fpla AS f ON e~fplnr = f~fplnr " DEVK907849

LEFT OUTER JOIN tvlvt AS g ON b~vkaus = g~abrvw " DEVK907849

LEFT OUTER JOIN zsdsched AS c ON b~vbeln = c~vbeln

AND b~posnr = c~posnr

WHERE a~vbeln IN s_vbeln

AND a~erdat IN s_erdat

AND a~vbtyp = gc_g

AND a~ernam IN s_ernam

AND a~vkorg IN s_vkorg

AND a~vtweg IN s_vtweg

AND a~spart IN s_spart

AND a~vkbur IN s_vkbur

AND a~guebg IN s_guebg

AND a~gueen IN s_gueen

AND a~auart IN s_auart

AND a~kunnr IN s_kunnr

AND b~oid_ship IN s_kunwe

AND b~werks IN s_werks

AND b~lgort IN s_lgort

AND b~vstel IN s_vstel

AND b~route in s_route

AND b~matnr IN s_matnr

AND e~afdat IN s_afdat

AND e~fksaf IN s_fksaf

AND b~pstyv in s_pstyv.

SORT gt_sel.

LOOP AT gt_sel INTO gs_report.

APPEND gs_report TO gt_report.

ENDLOOP. " DEVK907849

ELSE.

  • Select the appropriate contract data

SELECT a~vbeln a~erdat a~ernam a~audat a~vbtyp a~auart a~vkorg

a~vtweg a~spart a~vkbur a~guebg a~gueen a~kunnr a~kvgr4

b~posnr b~matnr b~charg b~matkl b~arktx b~pstyv b~zmeng

b~zieme b~kdmat b~werks b~lgort b~vstel b~netpr b~kpein

b~kmein b~shkzg b~oid_extbol b~oid_miscdl b~oidrc b~oid_ship AS kunwe

b~zzwprofid c~datbi c~datab b~route

INTO CORRESPONDING FIELDS OF TABLE gt_sel

FROM vbak AS a

INNER JOIN vbap AS b ON a~vbeln = b~vbeln

LEFT OUTER JOIN zsdsched AS c ON b~vbeln = c~vbeln AND

b~posnr = c~posnr

WHERE a~vbeln IN s_vbeln

AND a~erdat IN s_erdat

AND a~vbtyp = gc_g

AND a~ernam IN s_ernam

AND a~vkorg IN s_vkorg

AND a~vtweg IN s_vtweg

AND a~spart IN s_spart

AND a~vkbur IN s_vkbur

AND a~guebg IN s_guebg

AND a~gueen IN s_gueen

AND a~auart IN s_auart

AND a~kunnr IN s_kunnr

AND b~oid_ship IN s_kunwe

AND b~werks IN s_werks

AND b~lgort IN s_lgort

AND b~vstel IN s_vstel

and b~route in s_route

AND b~matnr IN s_matnr.

SORT gt_sel.

IF NOT gt_sel[] IS INITIAL.

  • Get Bill-to Party's for Item Lines

SELECT vbeln posnr parvw kunnr INTO CORRESPONDING FIELDS OF TABLE gt_vbpa

FROM vbpa

FOR ALL ENTRIES IN gt_sel

WHERE vbeln = gt_sel-vbeln

AND parvw = gc_re.

  • Select the remaining records from the ZSDSCHED Table.

SELECT * FROM zsdsched

INTO TABLE gt_sched

FOR ALL ENTRIES IN gt_sel

WHERE vbeln = gt_sel-vbeln

AND posnr = gt_sel-posnr.

SORT gt_sched.

ENDIF.

  • Loop through captured data for additional information

LOOP AT gt_sel INTO gs_report.

  • Find the bill-to party

READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_report-vbeln

posnr = gs_report-posnr

parvw = gc_re.

IF sy-subrc <> 0.

READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_report-vbeln

parvw = gc_re.

CHECK sy-subrc = 0 AND gs_vbpa-kunnr IN s_kunre.

ELSE.

CHECK gs_vbpa-kunnr IN s_kunre.

ENDIF.

gs_report-kunre = gs_vbpa-kunnr.

  • Get the Customer's Name

gs_report-kunnrt = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunnr ).

gs_report-kunwet = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunwe ).

gs_report-kunret = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunre ).

  • Get the scheduling lines for the item line.

CLEAR gv_counter.

IF NOT p_group IS INITIAL.

  • If we are grouping the lines add the icon button.

LOOP AT gt_sched INTO gs_sched WHERE vbeln = gs_report-vbeln

AND posnr = gs_report-posnr.

IF gv_counter > 0.

gs_report-addl_schd = '@1E@'.

CONTINUE.

ENDIF.

MOVE-CORRESPONDING gs_sched TO gs_report.

ADD 1 TO gv_counter.

ENDLOOP.

ELSE.

  • Otherwise get the rest of the schedule information

READ TABLE gt_sched INTO gs_sched

WITH KEY vbeln = gs_report-vbeln

posnr = gs_report-posnr

datbi = gs_report-datbi

datab = gs_report-datab.

IF sy-subrc = 0.

MOVE-CORRESPONDING gs_sched TO gs_report.

ENDIF.

ENDIF.

APPEND gs_report TO gt_report.

ENDLOOP.

  • Remove any duplicates from the reporting table

DELETE ADJACENT DUPLICATES FROM gt_report.

  • If Show all records is initial, delete non-scheduled lines (ex. Sub-items)

IF p_all IS INITIAL .

DELETE gt_report WHERE datbi = 0

AND datab = 0.

ENDIF.

ENDIF.

ENDFORM. " get_data

&----


*& Form create_alv

&----


  • text

----


FORM create_alv .

PERFORM initialize_fieldcat USING gt_fieldcat[].

PERFORM populate_layout CHANGING gs_layout

gs_variant.

PERFORM populate_sort USING gt_sort[].

PERFORM display_alv_report.

ENDFORM. " create_alv

&----


*& Form initialize_fieldcat

&----


  • Get and enhance the field catalog data

----


  • -->L_FIELDCAT[] text

----


FORM initialize_fieldcat USING l_fieldcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZSD_CONTRACT_LIST'

i_internal_tabname = 'GT_REPORT'

i_inclname = 'ZSD_CONTRACT_LIST_T01'

CHANGING

ct_fieldcat = l_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'VBELN'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Contract'.

ls_fieldcat-hotspot = 'X'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNNRT'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sold-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNWET'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Ship-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'KUNRET'.

ls_fieldcat-seltext_s =

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Bill-to Name'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'ADDL_SCHD'.

IF NOT p_group IS INITIAL.

ls_fieldcat-seltext_s = 'Schd'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Additional Scheduling Lines'.

ls_fieldcat-icon = 'X'.

CLEAR: ls_fieldcat-key,

ls_fieldcat-ref_fieldname,

ls_fieldcat-ref_tabname,

ls_fieldcat-reptext_ddic,

ls_fieldcat-ddic_outputlen.

ls_fieldcat-hotspot = 'X'.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

ELSE.

DELETE l_fieldcat INDEX sy-tabix.

ENDIF.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'DATAB'.

ls_fieldcat-seltext_s = 'Schd From'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sched. From Date'.

CLEAR: ls_fieldcat-key.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

READ TABLE l_fieldcat INTO ls_fieldcat WITH KEY fieldname = 'DATBI'.

ls_fieldcat-seltext_s = 'Schd To'.

ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'Sched. To Date'.

CLEAR: ls_fieldcat-key.

MODIFY l_fieldcat FROM ls_fieldcat INDEX sy-tabix.

ENDFORM. " initialize_fieldcat

&----


*& Form populate_layout

&----


  • text

----


  • <--GS_LAYOUT

  • <--GS_VARIANT

----


FORM populate_layout CHANGING gs_layout TYPE slis_layout_alv

gs_variant TYPE disvariant.

gs_layout-colwidth_optimize = 'X'.

gs_layout-allow_switch_to_list = 'X'.

gs_layout-zebra = 'X'.

gs_variant-report = sy-repid.

ENDFORM. " populate_layout

&----


*& Form populate_sort

&----


  • text

----


  • -->l_SORT[] text

----


FORM populate_sort USING l_sort TYPE slis_t_sortinfo_alv.

ENDFORM. " populate_sort

&----


*& Form display_alv_report

&----


*

----


FORM display_alv_report .

gv_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = gv_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'gt_report'

is_layout = gs_layout

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sort

  • IT_FILTER =

  • IS_SEL_HIDE =

i_default = 'X'

i_save = gc_a

is_variant = gs_variant

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_report

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 f01_f4_variant

&----


  • Get the Layout variant for the user.

----


FORM f01_f4_variant CHANGING c_variant TYPE disvariant-variant.

DATA: ls_variant TYPE disvariant,

l_exit TYPE char1.

ls_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = ls_variant

i_save = 'A'

  • it_default_fieldcat =

IMPORTING

e_exit = l_exit

es_variant = ls_variant

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 l_exit EQ space.

c_variant = ls_variant-variant.

ENDIF.

ENDIF.

ENDFORM. " f01_f4_variant

----


  • FORM USER_COMMAND *

----


  • --> R_UCOMM *

  • --> RS_SELFIELD *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • Check function code

CASE r_ucomm.

WHEN '&IC1'.

READ TABLE gt_report INTO gs_report INDEX rs_selfield-tabindex.

CHECK sy-subrc = 0.

CASE rs_selfield-fieldname.

WHEN 'VBELN'.

  • Set parameter ID for transaction screen field

CHECK NOT gs_report-vbeln IS INITIAL.

SET PARAMETER ID 'KTN' FIELD gs_report-vbeln.

CALL TRANSACTION 'VA43' AND SKIP FIRST SCREEN.

WHEN 'ADDL_SCHD'.

CHECK NOT gs_report-addl_schd IS INITIAL.

REFRESH gt_sched_tmp.

LOOP AT gt_sched INTO gs_sched

WHERE vbeln = gs_report-vbeln

AND posnr = gs_report-posnr.

APPEND gs_sched TO gt_sched_tmp.

ENDLOOP.

CHECK sy-subrc = 0.

CALL SCREEN '1010' STARTING AT 5 5.

ENDCASE.

ENDCASE.

ENDFORM. "user_command

&----


*& Module STATUS_1010 OUTPUT

&----


  • text

----


MODULE status_1010 OUTPUT.

SET PF-STATUS 'MAIN_1010'.

SET TITLEBAR '1010' WITH gs_report-vbeln gs_report-posnr.

ENDMODULE. " STATUS_1010 OUTPUT

&----


*& Module USER_COMMAND_1010 INPUT

&----


  • text

----


MODULE user_command_1010 INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR 'CANC'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_1010 INPUT

Thanks for your help.