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

ALV-report problem

Former Member
0 Likes
1,252

Hi freinds if you could solve my this problem I will be highly grateful to you all as its very important and I have missed the deadline already but in vain.

I got this report which shows the non-schedeuled line items and group schedule line items on check of a checkbox. With the existing functionality I have to add a third option of checkbox which when clicked shows a diffrent result screen froma different selection. I tried but its not happeneing. Pls help.

The result screen for this third checkbox which I naed it as p_rental(rental contract list) when checked should have the following fields.

selections for result screen when p_rental checked.

fksaf LIKE fplt-fksaf,

afdat LIKE fplt-afdat,

fakwr LIKE fplt-fakwr,

fkdat LIKE fplt-fkdat,

fpart LIKE fpla-fpart,

bedat LIKE fpla-bedat,

endat LIKE fpla-endat,

horiz LIKE fpla-horiz,

bezei LIKE tvlvt-bezei,

aufnr LIKE vbpa-aufnr,

vkaus LIKE vbpa-vkaus,

route LIKE vbpa-route,

vbeln LIKE vbak-vbeln,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

ernam LIKE vbak-ernam,

guebg LIKE vbak-guebg,

gueen LIKE vbak-gueen,

auart LIKE vbak-auart,

kunnr LIKE vbak-kunnr,

pstyv LIKE vbap-pstyv,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks.

nfdat LIKE fplt-nfdat

name1 LIKE kna1-name1,

oid_ship LIKE vbap-oid_ship,

kpein LIKE vbap-kpein,

kmein LIKE vbap-kmein,

netpr LIKE vbap-netpr,

kdmat LIKE vbap-kdmat,

posnr LIKE vbap-posnr,

matkl LIKE vbap-matkl,

kvgr4 LIKE vbak-kvgr4,

vkbur LIKE vbak-vkbur,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

vbtyp LIKE vbak-vbtyp.

The existing report is as follows with the include program.Please help.

----


***INCLUDE ZSD_CONTRACT_LIST_T01 .

----


TABLES: vbak, vbap, wbrk, zsdsched.

TYPE-POOLS: slis.

types: BEGIN OF ty_gt_report ,

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item

ernam LIKE vbak-ernam, "Created by

erdat LIKE vbak-erdat, "Created on

audat LIKE vbak-audat, "Document Date

vbtyp LIKE vbak-vbtyp, "SD document category

auart LIKE vbak-auart, "Sales Document type

vkorg LIKE vbak-vkorg, "Sales Org

vtweg LIKE vbak-vtweg, "Distribution Channel

spart LIKE vbak-spart, "Division

vkbur LIKE vbak-vkbur, "Sales Office

guebg LIKE vbak-guebg, "Valid from date

gueen LIKE vbak-gueen, "Valid to date

kunnr LIKE vbak-kunnr, "Sold-to party

kunnrt LIKE kna1-name1, "Sold-to Name

kvgr4 LIKE vbak-kvgr4, "Territory

matnr LIKE vbap-matnr, "Material

arktx LIKE vbap-arktx, "Material Short Text

charg LIKE vbap-charg, "Batch

matkl LIKE vbap-matkl, "Material Group

pstyv LIKE vbap-pstyv, "Item Category

zmeng LIKE vbap-zmeng, "Target Quantity

zieme LIKE vbap-zieme, "Target Unit

kdmat LIKE vbap-kdmat, "Customer Material Number

werks LIKE vbap-werks, "Plant

lgort LIKE vbap-lgort, "Storage Location

vstel LIKE vbap-vstel, "Shipping Point

route LIKE vbap-route, "Route

netpr LIKE vbap-netpr, "Net Price

kpein LIKE vbap-kpein, "Condition Price Unit

kmein LIKE vbap-kmein, "Condition Unit

shkzg LIKE vbap-shkzg, "Returns Item

oidrc LIKE vbap-oidrc, "DRC Code

kunwe LIKE vbap-oid_ship, "Ship-to

aufnr LIKE vbap-aufnr, "Order Number

vkaus LIKE vbap-vkaus, "Usage

kunwet LIKE kna1-name1, "Ship-to Name

zzwprofid LIKE vbap-zzwprofid, "Waste Profile ID

kunre LIKE wbrk-kunre, "Bill-to

kunret LIKE kna1-name1, "Bill-to Name

addl_schd LIKE icon-id, "Push Button For addl line

datab LIKE zsdsched-datab, "Valid-From Date

datbi LIKE zsdsched-datbi, "Valid To Date

zschdfreq LIKE zsdsched-zschdfreq, "Contract schedule frequency

frequency LIKE zsdsched-frequency, "Frequency

monday LIKE zsdsched-monday, "Mondays

tuesday LIKE zsdsched-tuesday, "Tuesdays

wednesday LIKE zsdsched-wednesday, "Wednesdays

thursday LIKE zsdsched-thursday, "Thursdays

friday LIKE zsdsched-friday, "Fridays

saturday LIKE zsdsched-saturday, "Saturdays

sunday LIKE zsdsched-sunday, "Sundays

dzieme LIKE zsdsched-dzieme, "Target quantity UoM

comments LIKE zsdsched-comments, "Comments

  • fksaf LIKE fplt-fksaf, "Billing status for the billing plan/invoice plan date

  • afdat LIKE fplt-afdat, "Billing date for billing index and printout

  • fplnr LIKE fplt-fplnr, "Billing plan number / invoicing plan number

END OF ty_gt_report,

g_t_report type standard table of g_ty_report.

data: gt_report type g_t_report,

gs_report LIKE LINE OF gt_report,

gt_sched TYPE TABLE OF zsdsched,

gt_sched_tmp TYPE TABLE OF zsdsched,

gs_sched TYPE zsdsched,

  • gt_sel LIKE gt_report OCCURS 0,

gt_vbpa TYPE TABLE OF vbpa,

gs_vbpa TYPE vbpa,

gv_auart TYPE auart,

gv_counter TYPE i.

**-- ALV variables

DATA: ls_fieldcat TYPE slis_fieldcat_alv, "Field Catalog list

gt_fieldcat TYPE slis_t_fieldcat_alv, "Field Catalog

ls_sort TYPE slis_sortinfo_alv, "Sorting list

gt_sort TYPE slis_t_sortinfo_alv, "Sort

gs_layout TYPE slis_layout_alv, "List Layout

gs_variant TYPE disvariant, "Display Variant

gv_repid LIKE sy-repid,

gv_save(1) TYPE c,

gv_exit(1) TYPE c.

CONSTANTS: gc_a TYPE c VALUE 'A',

gc_g TYPE c VALUE 'G',

gc_re(2) TYPE c VALUE 'RE'.

  • Screen-control Variables

CONTROLS:

tctrl_sched TYPE TABLEVIEW USING SCREEN 1010. " Schedule lines.

&----


*& Report ZSD_CONTRACT_LIST

*&

&----


*& 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_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_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'.

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 .

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

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

Please help

Thanks

12 REPLIES 12
Read only

valter_oliveira
Active Contributor
0 Likes
1,218

Hello Aarav.

If I understood you right, diferent selections are originating diferent rows in your report, but the same columns.

If so, I thin the problem is that you call FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' always with the same structure, and this way the fieldcatalog is always the same.

If i'm right, you have 2 solution,

- after using the FM, choose the fields you want and change l_fieldcat structure

- create a g_t_report2 type standard table of g_ty_report, and use it in the FM, and in the selection part of program

Best regards.

Valter Oliveira.

Read only

0 Likes
1,218

Hi Valier!

Thanks . Actually yes what you say is right but when this new checkbox(p_rental ) is checked yes it will show a different selection of fileds (lesser than the two existing ones), but not necessarily show diffrent result all togethere. I mean its just that the fileds in the output for this particular checkbox will be a different selection.It shall have only following fields:-

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item

ernam LIKE vbak-ernam, "Created by

erdat LIKE vbak-erdat, "Created on

audat LIKE vbak-audat, "Document Date

vbtyp LIKE vbak-vbtyp, "SD document category

auart LIKE vbak-auart, "Sales Document type

vkorg LIKE vbak-vkorg, "Sales Org

vtweg LIKE vbak-vtweg, "Distribution Channel

spart LIKE vbak-spart, "Division

vkbur LIKE vbak-vkbur, "Sales Office

guebg LIKE vbak-guebg, "Valid from date

gueen LIKE vbak-gueen, "Valid to date

kunnr LIKE vbak-kunnr, "Sold-to party

kunnrt LIKE kna1-name1, "Sold-to Name

kvgr4 LIKE vbak-kvgr4, "Territory

matnr LIKE vbap-matnr, "Material

fksaf LIKE fplt-fksaf,

afdat LIKE fplt-afdat,

fakwr LIKE fplt-fakwr,

fkdat LIKE fplt-fkdat,

fpart LIKE fpla-fpart,

nfdat LIKE fplt-nfdat,

bedat LIKE fpla-bedat,

endat LIKE fpla-endat,

horiz LIKE fpla-horiz,

abrvw LIKE tvlvt-abrvw,

Hence when this p_rental is checked it will give me output in form of fields as mentioned above and not as the previos gt_result type.

For this what I did was made another internal table to store this data. Added anotehr perform get_data and re-called the re-use alv function. But unfrotunately I am doing something wrong .Could you please help me out as the deadline is already crossed and I am in a fix.

Thanks

Read only

0 Likes
1,218

Hi,

Just use a condition while filling the catalog. I mean, if the checkbox you are talking about is checked, then fill the catalogue with those columns, if not, dont fill anything.

You dont need to create another internal table.

For example:

if checkbox ne 'X' .

create column1.

append column1 to catalogue.

create column2.

append column2 to catalogue.

endif.

This way, columns 1 and 2 will only display if your checkbox is not checked.

Regards,

Roberto.

Read only

0 Likes
1,218

I am sorry my friend but I didnt get as to what you siad , as I mentioned that this will be a different set of selection all togethere , if you check at the question I posted , I have mentioned the fileds taht I want which is fiffrent from what already exists for the first two checkboxes. So I am not sure and didnt get what you said .I just wnat to diplay the fields as mentioned above when my this checkbox is checked.

Thanks in anticipation.

Aarav

Read only

0 Likes
1,218

Do you just want not to display some columns when that checkbox is checked or do you want to display a whole set of different columns with different data in them? I mean, the data of those columns will be different when you check your new checkbox?

Regards,

Roberto.

Read only

0 Likes
1,218

Yes , It will be a diffrenet set of data alltogether but teher may be few fields which will be same a sthe first two check boxes when clicked . The new fields will be as follows

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item

ernam LIKE vbak-ernam, "Created by

erdat LIKE vbak-erdat, "Created on

audat LIKE vbak-audat, "Document Date

vbtyp LIKE vbak-vbtyp, "SD document category

auart LIKE vbak-auart, "Sales Document type

vkorg LIKE vbak-vkorg, "Sales Org

vtweg LIKE vbak-vtweg, "Distribution Channel

spart LIKE vbak-spart, "Division

vkbur LIKE vbak-vkbur, "Sales Office

guebg LIKE vbak-guebg, "Valid from date

gueen LIKE vbak-gueen, "Valid to date

kunnr LIKE vbak-kunnr, "Sold-to party

kunnrt LIKE kna1-name1, "Sold-to Name

kvgr4 LIKE vbak-kvgr4, "Territory

matnr LIKE vbap-matnr, "Material

fksaf LIKE fplt-fksaf,

afdat LIKE fplt-afdat,

fakwr LIKE fplt-fakwr,

fkdat LIKE fplt-fkdat,

fpart LIKE fpla-fpart,

nfdat LIKE fplt-nfdat,

bedat LIKE fpla-bedat,

endat LIKE fpla-endat,

horiz LIKE fpla-horiz,

abrvw LIKE tvlvt-abrvw,

where you see theer are few fields which was alreday tehre in my earlier set of output fields for other two checkboxes.Thats teh reason I was asking like if I have to create a new alv for it .

Kindly suggest please. and the original report is alos tehre with teh include program in my question asked.

Thanks

Read only

0 Likes
1,218

Hello again.

So,

if p_rental is unchecked, use a gt_result1 type structure and a fieldcat1, and fill gt_result1 with lets say selection1.

if p_rental is checked, use a gt_result2 type structure and a fieldcat2, and fill gt_result2 with selection2.

There is other options, but this one will work for sure.

Something like

IF p_rental = space.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZSD_CONTRACT_LIST'

i_internal_tabname = 'GT_REPORT1'

i_inclname = 'ZSD_CONTRACT_LIST_T01'

CHANGING

ct_fieldcat = l_fieldcat1

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

...

ELSE.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZSD_CONTRACT_LIST'

i_internal_tabname = 'GT_REPORT2'

i_inclname = 'ZSD_CONTRACT_LIST_T01'

CHANGING

ct_fieldcat = l_fieldcat2

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

...

ENDIF.

And the same in REUSE_ALV_GRID_DISPLAY.

Best regards.

Valter Oliveira.

Read only

0 Likes
1,218

Hi!

Thanks a lot Valter. I think what you send is right and I used it as well , but you know what I am running into a runtime error now. I think everything is alright except that I havent put it right in my report what you asked me to do . I am placing the new internal table in my call function and doing it the same way but in vain. Kindly suggest me as I am very very new to ALV and I have to submit it today. I am unable to get through. Still ill reward all the points to you for your kind help . Kindly help me out please.

Please help me out .

Thanks

Aarav.

Read only

0 Likes
1,218

Hi there.

What's the error? In which part?

Remeber that in both function modules, you must make a condition regarding the parameter of the report. The second table must be included in both function modules.

Valter.

Read only

0 Likes
1,218

The error is in initialize fieldcat and that too for the initialize fieldcat which was alreday existing.

I am not able to proceed further , I think I need to copy back the original report again and start doing it from begining. The one I put up in the forum question , I need to copy that again to my report so that I am at teh start again . I may have messed up the report so I need to start again.

Thanks

Read only

0 Likes
1,218

THIS IS THE ORIGINAL REPORT.

The result screen for this third checkbox which I naed it as p_rental(rental contract list) when checked should have the following fields.

selections for result screen when p_rental checked.

fksaf LIKE fplt-fksaf,

afdat LIKE fplt-afdat,

fakwr LIKE fplt-fakwr,

fkdat LIKE fplt-fkdat,

fpart LIKE fpla-fpart,

bedat LIKE fpla-bedat,

endat LIKE fpla-endat,

horiz LIKE fpla-horiz,

bezei LIKE tvlvt-bezei,

aufnr LIKE vbpa-aufnr,

vkaus LIKE vbpa-vkaus,

route LIKE vbpa-route,

vbeln LIKE vbak-vbeln,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

ernam LIKE vbak-ernam,

guebg LIKE vbak-guebg,

gueen LIKE vbak-gueen,

auart LIKE vbak-auart,

kunnr LIKE vbak-kunnr,

pstyv LIKE vbap-pstyv,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks.

nfdat LIKE fplt-nfdat

name1 LIKE kna1-name1,

oid_ship LIKE vbap-oid_ship,

kpein LIKE vbap-kpein,

kmein LIKE vbap-kmein,

netpr LIKE vbap-netpr,

kdmat LIKE vbap-kdmat,

posnr LIKE vbap-posnr,

matkl LIKE vbap-matkl,

kvgr4 LIKE vbak-kvgr4,

vkbur LIKE vbak-vkbur,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

vbtyp LIKE vbak-vbtyp.

The existing report is as follows with the include program.Please help.

-


***INCLUDE ZSD_CONTRACT_LIST_T01 .

-


TABLES: vbak, vbap, wbrk, zsdsched.

TYPE-POOLS: slis.

types: BEGIN OF ty_gt_report ,

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item

ernam LIKE vbak-ernam, "Created by

erdat LIKE vbak-erdat, "Created on

audat LIKE vbak-audat, "Document Date

vbtyp LIKE vbak-vbtyp, "SD document category

auart LIKE vbak-auart, "Sales Document type

vkorg LIKE vbak-vkorg, "Sales Org

vtweg LIKE vbak-vtweg, "Distribution Channel

spart LIKE vbak-spart, "Division

vkbur LIKE vbak-vkbur, "Sales Office

guebg LIKE vbak-guebg, "Valid from date

gueen LIKE vbak-gueen, "Valid to date

kunnr LIKE vbak-kunnr, "Sold-to party

kunnrt LIKE kna1-name1, "Sold-to Name

kvgr4 LIKE vbak-kvgr4, "Territory

matnr LIKE vbap-matnr, "Material

arktx LIKE vbap-arktx, "Material Short Text

charg LIKE vbap-charg, "Batch

matkl LIKE vbap-matkl, "Material Group

pstyv LIKE vbap-pstyv, "Item Category

zmeng LIKE vbap-zmeng, "Target Quantity

zieme LIKE vbap-zieme, "Target Unit

kdmat LIKE vbap-kdmat, "Customer Material Number

werks LIKE vbap-werks, "Plant

lgort LIKE vbap-lgort, "Storage Location

vstel LIKE vbap-vstel, "Shipping Point

route LIKE vbap-route, "Route

netpr LIKE vbap-netpr, "Net Price

kpein LIKE vbap-kpein, "Condition Price Unit

kmein LIKE vbap-kmein, "Condition Unit

shkzg LIKE vbap-shkzg, "Returns Item

oidrc LIKE vbap-oidrc, "DRC Code

kunwe LIKE vbap-oid_ship, "Ship-to

aufnr LIKE vbap-aufnr, "Order Number

vkaus LIKE vbap-vkaus, "Usage

kunwet LIKE kna1-name1, "Ship-to Name

zzwprofid LIKE vbap-zzwprofid, "Waste Profile ID

kunre LIKE wbrk-kunre, "Bill-to

kunret LIKE kna1-name1, "Bill-to Name

addl_schd LIKE icon-id, "Push Button For addl line

datab LIKE zsdsched-datab, "Valid-From Date

datbi LIKE zsdsched-datbi, "Valid To Date

zschdfreq LIKE zsdsched-zschdfreq, "Contract schedule frequency

frequency LIKE zsdsched-frequency, "Frequency

monday LIKE zsdsched-monday, "Mondays

tuesday LIKE zsdsched-tuesday, "Tuesdays

wednesday LIKE zsdsched-wednesday, "Wednesdays

thursday LIKE zsdsched-thursday, "Thursdays

friday LIKE zsdsched-friday, "Fridays

saturday LIKE zsdsched-saturday, "Saturdays

sunday LIKE zsdsched-sunday, "Sundays

dzieme LIKE zsdsched-dzieme, "Target quantity UoM

comments LIKE zsdsched-comments, "Comments

fksaf LIKE fplt-fksaf, "Billing status for the billing plan/invoice plan date

afdat LIKE fplt-afdat, "Billing date for billing index and printout

fplnr LIKE fplt-fplnr, "Billing plan number / invoicing plan number

END OF ty_gt_report,

g_t_report type standard table of g_ty_report.

data: gt_report type g_t_report,

gs_report LIKE LINE OF gt_report,

gt_sched TYPE TABLE OF zsdsched,

gt_sched_tmp TYPE TABLE OF zsdsched,

gs_sched TYPE zsdsched,

gt_sel LIKE gt_report OCCURS 0,

gt_vbpa TYPE TABLE OF vbpa,

gs_vbpa TYPE vbpa,

gv_auart TYPE auart,

gv_counter TYPE i.

ALV variables

DATA: ls_fieldcat TYPE slis_fieldcat_alv, "Field Catalog list

gt_fieldcat TYPE slis_t_fieldcat_alv, "Field Catalog

ls_sort TYPE slis_sortinfo_alv, "Sorting list

gt_sort TYPE slis_t_sortinfo_alv, "Sort

gs_layout TYPE slis_layout_alv, "List Layout

gs_variant TYPE disvariant, "Display Variant

gv_repid LIKE sy-repid,

gv_save(1) TYPE c,

gv_exit(1) TYPE c.

CONSTANTS: gc_a TYPE c VALUE 'A',

gc_g TYPE c VALUE 'G',

gc_re(2) TYPE c VALUE 'RE'.

Screen-control Variables

CONTROLS:

tctrl_sched TYPE TABLEVIEW USING SCREEN 1010. " Schedule lines.

&----


*& Report ZSD_CONTRACT_LIST

*&

&----


*& 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_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_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'.

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 .

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.

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

Please help

Thanks

Read only

0 Likes
1,218

Hi Valter!

I created this report with your suggestion which seems ok yet it lands me up again in the run-time error. Is it possible that you please have a look at my report which I am sending and kindly suggest and guide me as to what the eroor could be due to.

----


***INCLUDE ZSD_CONTRACT_LIST_T01_RENTAL1 .

----


TABLES: vbak, vbap, wbrk, zsdsched,vbkd, fplt, fpla, tvlvt.

TYPE-POOLS: slis.

data: BEGIN OF gt_report occurs 0,

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item

ernam LIKE vbak-ernam, "Created by

erdat LIKE vbak-erdat, "Created on

audat LIKE vbak-audat, "Document Date

vbtyp LIKE vbak-vbtyp, "SD document category

auart LIKE vbak-auart, "Sales Document type

vkorg LIKE vbak-vkorg, "Sales Org

vtweg LIKE vbak-vtweg, "Distribution Channel

spart LIKE vbak-spart, "Division

vkbur LIKE vbak-vkbur, "Sales Office

guebg LIKE vbak-guebg, "Valid from date

gueen LIKE vbak-gueen, "Valid to date

kunnr LIKE vbak-kunnr, "Sold-to party

kunnrt LIKE kna1-name1, "Sold-to Name

kvgr4 LIKE vbak-kvgr4, "Territory

matnr LIKE vbap-matnr, "Material

arktx LIKE vbap-arktx, "Material Short Text

charg LIKE vbap-charg, "Batch

matkl LIKE vbap-matkl, "Material Group

pstyv LIKE vbap-pstyv, "Item Category

zmeng LIKE vbap-zmeng, "Target Quantity

zieme LIKE vbap-zieme, "Target Unit

kdmat LIKE vbap-kdmat, "Customer Material Number

werks LIKE vbap-werks, "Plant

lgort LIKE vbap-lgort, "Storage Location

vstel LIKE vbap-vstel, "Shipping Point

route LIKE vbap-route, "Route

netpr LIKE vbap-netpr, "Net Price

kpein LIKE vbap-kpein, "Condition Price Unit

kmein LIKE vbap-kmein, "Condition Unit

shkzg LIKE vbap-shkzg, "Returns Item

oidrc LIKE vbap-oidrc, "DRC Code

kunwe LIKE vbap-oid_ship, "Ship-to

aufnr LIKE vbap-aufnr, "Order Number

vkaus LIKE vbap-vkaus, "Usage

kunwet LIKE kna1-name1, "Ship-to Name

zzwprofid LIKE vbap-zzwprofid, "Waste Profile ID

kunre LIKE wbrk-kunre, "Bill-to

kunret LIKE kna1-name1, "Bill-to Name

addl_schd LIKE icon-id, "Push Button For addl line

datab LIKE zsdsched-datab, "Valid-From Date

datbi LIKE zsdsched-datbi, "Valid To Date

zschdfreq LIKE zsdsched-zschdfreq, "Contract schedule frequency

frequency LIKE zsdsched-frequency, "Frequency

monday LIKE zsdsched-monday, "Mondays

tuesday LIKE zsdsched-tuesday, "Tuesdays

wednesday LIKE zsdsched-wednesday, "Wednesdays

thursday LIKE zsdsched-thursday, "Thursdays

friday LIKE zsdsched-friday, "Fridays

saturday LIKE zsdsched-saturday, "Saturdays

sunday LIKE zsdsched-sunday, "Sundays

dzieme LIKE zsdsched-dzieme, "Target quantity UoM

comments LIKE zsdsched-comments, "Comments

END OF gt_report.

data: Begin of gt_report1 occurs 0,

fksaf LIKE fplt-fksaf,

afdat LIKE fplt-afdat,

fakwr LIKE fplt-fakwr,

fkdat LIKE fplt-fkdat,

nfdat LIKE fplt-nfdat,

fpart LIKE fpla-fpart,

bedat LIKE fpla-bedat,

endat LIKE fpla-endat,

horiz LIKE fpla-horiz,

bezei LIKE tvlvt-bezei,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

ernam LIKE vbak-ernam,

guebg LIKE vbak-guebg,

gueen LIKE vbak-gueen,

auart LIKE vbak-auart,

kunnr LIKE vbak-kunnr,

kvgr4 LIKE vbak-kvgr4,

vkbur LIKE vbak-vkbur,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

vbtyp LIKE vbak-vbtyp,

name1 LIKE kna1-name1,

pstyv LIKE vbap-pstyv,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks,

oid_ship LIKE vbap-oid_ship,

kpein LIKE vbap-kpein,

kmein LIKE vbap-kmein,

netpr LIKE vbap-netpr,

kdmat LIKE vbap-kdmat,

posnr LIKE vbap-posnr,

matkl LIKE vbap-matkl,

aufnr LIKE vbap-aufnr,

vkaus LIKE vbap-vkaus,

route LIKE vbap-route,

End of gt_report1.

data: gs_report LIKE LINE OF gt_report,

gt_sched TYPE TABLE OF zsdsched,

gt_sched_tmp TYPE TABLE OF zsdsched,

gs_sched TYPE zsdsched,

gt_sel LIKE gt_report OCCURS 0,

gt_sel1 like gt_report1 occurs 0,

gt_vbpa TYPE TABLE OF vbpa,

gs_vbpa TYPE vbpa,

gv_auart TYPE auart,

gv_counter TYPE i.

**-- ALV variables

DATA: ls_fieldcat TYPE slis_fieldcat_alv, "Field Catalog list

gt_fieldcat TYPE slis_t_fieldcat_alv, "Field Catalog

ls_sort TYPE slis_sortinfo_alv, "Sorting list

gt_sort TYPE slis_t_sortinfo_alv, "Sort

gs_layout TYPE slis_layout_alv, "List Layout

gs_variant TYPE disvariant, "Display Variant

gv_repid LIKE sy-repid,

gv_save(1) TYPE c,

ls_fieldcat1 TYPE slis_fieldcat_alv, "Field Catalog list

gt_fieldcat1 TYPE slis_t_fieldcat_alv, "Field Catalog

ls_sort1 TYPE slis_sortinfo_alv, "Sorting list

gt_sort1 TYPE slis_t_sortinfo_alv, "Sort

gs_layout1 TYPE slis_layout_alv, "List Layout

gs_variant1 TYPE disvariant, "Display Variant

gv_repid1 LIKE sy-repid,

gv_exit(1) TYPE c.

CONSTANTS: gc_a TYPE c VALUE 'A',

gc_g TYPE c VALUE 'G',

gc_re(2) TYPE c VALUE 'RE'.

  • Screen-control Variables

CONTROLS:

tctrl_sched TYPE TABLEVIEW USING SCREEN 1010. " Schedule lines.

&----


*& Report ZSD_CONTRACT_LIST_RENTAL1

*&

&----


*& Created on: March 27, 2008.

*& Description: List of Contracts - ALV

&----


REPORT zsd_contract_list_rental1.

INCLUDE zsd_contract_list_t01_rental1.

----


  • 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_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_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 .

  • select the appropriate rental data.

SELECT a~vbeln a~erdat a~ernam a~guebg a~gueen a~auart

a~kunnr a~kvgr4 a~vkbur a~vkorg a~vtweg a~vbtyp

b~pstyv b~matnr b~werks b~oid_ship b~kpein b~kmein

b~netpr b~kdmat b~posnr b~matkl b~aufnr b~vkaus b~route

d~bezei e~afdat e~fakwr e~fkdat e~nfdat f~fpart f~bedat f~endat f~horiz

INTO CORRESPONDING FIELDS OF TABLE gt_sel1

FROM vbak AS a

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

  • INNER JOIN vbpa as c ON avbeln = cvbeln

INNER JOIN vbkd AS g ON a~vbeln = g~vbeln

INNER JOIN fplt AS e ON g~fplnr = e~fplnr

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

INNER JOIN tvlvt AS d ON b~vkaus = d~abrvw

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

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

ENDFORM. " get_data

&----


*& Form create_alv

&----


  • text

----


FORM create_alv .

if p_rental is initial.

PERFORM initialize_fieldcat USING gt_fieldcat[].

PERFORM populate_layout CHANGING gs_layout

gs_variant.

PERFORM populate_sort USING gt_sort[].

PERFORM display_alv_report.

else.

PERFORM initialize_fieldcat1 USING gt_fieldcat1[].

PERFORM populate_layout1 CHANGING gs_layout1

gs_variant1.

PERFORM populate_sort1 USING gt_sort1[].

PERFORM display_alv_report1.

endif.

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

i_internal_tabname = 'GT_REPORT'

i_inclname = 'ZSD_CONTRACT_LIST_T01_rental1'

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_fieldcat1 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 initialize_fieldcat1

&----


  • Get and enhance the field catalog data for rental fields

----


  • -->L_FIELDCAT[] text

----


FORM initialize_fieldcat1 USING l_fieldcat1 TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = 'ZSD_CONTRACT_LIST_rental1'

i_internal_tabname = 'GT_SEL1'

i_inclname = 'ZSD_CONTRACT_LIST_T01_rental1'

CHANGING

ct_fieldcat = l_fieldcat1

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

ENDFORM. " initialize_fieldcat

&----


*& Form populate_layout

&----


  • text

----


  • <--GS_LAYOUT

  • <--GS_VARIANT

----


FORM populate_layout1 CHANGING gs_layout1 TYPE slis_layout_alv

gs_variant1 TYPE disvariant.

gs_layout1-colwidth_optimize = 'X'.

gs_layout1-allow_switch_to_list = 'X'.

gs_layout1-zebra = 'X'.

gs_variant1-report = sy-repid.

ENDFORM. " populate_layout

&----


*& Form populate_sort

&----


  • text

----


  • -->l_SORT[] text

----


FORM populate_sort1 USING l_sort TYPE slis_t_sortinfo_alv.

ENDFORM. " populate_sort

&----


*& Form display_alv_report

&----


*

----


FORM display_alv_report1 .

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

is_layout = gs_layout1

it_fieldcat = gt_fieldcat1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sort1

  • IT_FILTER =

  • IS_SEL_HIDE =

i_default = 'X'

i_save = gc_a

is_variant = gs_variant1

  • 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_sel1

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