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 grid

Former Member
0 Likes
463

i have a problem with my alv grid report. i am extracting data from one table but on displaying the report its not displaying all the column titles on the report. what may be causing the problem.

below is the code

REPORT zasm_alv_objects

MESSAGE-ID z_isu.

*Tables----


TABLES: zrmmast,zrmchgobj, disvariant.

$$INCLUDE----


$$

INCLUDE <icon>.

TYPE-POOLS slis.

$$INTERNAL TABLES----


$$

$$VARIABLES----


$$

FIELD-SYMBOLS: <in_table> TYPE table.

TYPES: t_mast TYPE STANDARD TABLE OF zrmmast.

DATA: it_mast TYPE t_mast,

lc_wa_mast TYPE zrmmast.

RANGES: r_comms FOR zrmmast-comms,

r_cfr FOR zrmmast-cf_requirement,

r_sfr FOR zrmmast-sf_requirement,

r_train FOR zrmmast-training.

CLASS lcl_event_receiver DEFINITION DEFERRED.

DATA: ls_layout TYPE lvc_s_layo.

DATA: wa_fieldcat TYPE lvc_s_fcat.

DATA: gt_fieldcat TYPE lvc_t_fcat.

DATA: ld_dataref TYPE REF TO data.

DATA: user_logged_on LIKE adrp-name_text.

DATA: long_name_func LIKE adrp-name_text.

DATA: long_name_tech LIKE adrp-name_text.

DATA: long_name_ftmem LIKE adrp-name_text.

DATA: long_name_logby LIKE adrp-name_text.

DATA: long_name_cr_status LIKE adrp-name_text.

DATA: wa_mast TYPE zrmmast.

DATA: za_mast TYPE zrmmast.

*----


  • g l o b a l d a t a

*----


DATA: ok_code LIKE sy-ucomm,

  • work area for internal table

g_wa_sflight TYPE t_mast,

  • alv control: layout structure

gs_layout TYPE lvc_s_layo.

  • declare reference variables to the alv grid and the container

DATA:

go_grid TYPE REF TO cl_gui_alv_grid,

go_custom_container TYPE REF TO cl_gui_custom_container,

o_event_receiver TYPE REF TO lcl_event_receiver.

DATA:

  • work area for screen 200

g_screen200 LIKE sflight.

  • data for storing information about selected rows in the grid

DATA:

  • internal table

gi_index_rows TYPE lvc_t_row,

  • information about 1 row

g_selected_row LIKE lvc_s_row.

DATA: e_row TYPE lvc_s_row, "Line ID,

e_column TYPE lvc_s_col, "Column Name,

es_row_no TYPE lvc_s_roid. "Numeric Row ID

DATA: linec TYPE i.

DATA: ans TYPE n.

DATA: ld_color(1) TYPE c.

INCLUDE zrmsralv01i1.

*include zasm_alv_receivers.

*include zcr_status_text.

*selection-screen end of block b1.

$$SELECTION-SCREEN----


$$

*selection-screen begin of block b1 with frame title text-001.

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

SELECT-OPTIONS i_crnr FOR zrmmast-cr_number

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_trntyp FOR zrmmast-transport_type

MODIF ID mod NO INTERVALS.

SELECTION-SCREEN END OF BLOCK general.

*Functional

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

SELECT-OPTIONS i_dstm FOR zrmmast-dstream

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_smod FOR zrmmast-smodule

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_bukrs FOR zrmmast-bukrs

MODIF ID mod.

SELECT-OPTIONS i_tcode FOR zrmchgobj-name

MODIF ID mod.

SELECT-OPTIONS i_prg FOR zrmchgobj-name

MODIF ID mod.

SELECT-OPTIONS i_ftmb FOR zrmmast-ft_member

MODIF ID mod.

SELECT-OPTIONS i_fown FOR zrmmast-fowner

MODIF ID mod.

SELECTION-SCREEN END OF BLOCK general1.

*Dates

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

SELECT-OPTIONS i_ldat FOR zrmmast-ldate

MODIF ID mod.

SELECT-OPTIONS i_logb FOR zrmmast-logby

MODIF ID mod.

SELECT-OPTIONS i_prel FOR zrmmast-prealeased

MODIF ID mod.

SELECT-OPTIONS i_srel FOR zrmmast-sreleased

MODIF ID mod.

SELECTION-SCREEN END OF BLOCK general2.

*Technical

SELECTION-SCREEN BEGIN OF BLOCK general3 WITH FRAME TITLE text-004.

SELECT-OPTIONS i_sfre FOR zrmmast-sf_resource

MODIF ID mod.

SELECT-OPTIONS i_stst FOR zrmmast-sf_status

MODIF ID mod.

SELECT-OPTIONS i_crst FOR zrmmast-cr_status

MODIF ID mod.

*select-options i_ovpr for zrmmast-ov_progress

  • modif id mod.

SELECTION-SCREEN END OF BLOCK general3.

*Technical

SELECTION-SCREEN BEGIN OF BLOCK general4 WITH FRAME TITLE text-004.

PARAMETER pa_cf LIKE zrmmast-cf_requirement AS CHECKBOX.

PARAMETER pa_comms LIKE zrmmast-comms AS CHECKBOX.

PARAMETER pa_sfreq LIKE zrmmast-sf_requirement AS CHECKBOX.

PARAMETER pa_train LIKE zrmmast-training AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK general4.

SELECTION-SCREEN BEGIN OF BLOCK general5 WITH FRAME TITLE text-005.

PARAMETER p_vari LIKE disvariant-variant DEFAULT '/STANDARD'.

SELECTION-SCREEN END OF BLOCK general5.

*$$---at selection-screen

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.

PERFORM f01_f4_variant CHANGING p_vari.

$$START-OF-SELECTION----


$$

START-OF-SELECTION.

PERFORM get_data1.

PERFORM get_data.

&----


*& Form get_data1

&----


  • text

----


FORM get_data1.

CLEAR it_mast.

REFRESH it_mast.

IF

i_crnr IS INITIAL AND

i_dstm IS INITIAL AND

i_smod IS INITIAL AND

i_ldat IS INITIAL AND

i_logb IS INITIAL AND

i_ftmb IS INITIAL AND

i_fown IS INITIAL AND

i_prel IS INITIAL AND

i_srel IS INITIAL AND

i_sfre IS INITIAL AND

i_stst IS INITIAL AND

i_crst IS INITIAL AND

i_prg IS INITIAL AND

i_tcode IS INITIAL AND

i_bukrs IS INITIAL AND

  • Check boxes

pa_cf IS INITIAL AND

pa_comms IS INITIAL AND

pa_sfreq IS INITIAL AND

pa_train IS INITIAL.

SELECT * FROM zrmmast

INTO TABLE it_mast.

ELSE.

IF pa_cf = 'X'.

r_cfr-sign = 'I'.

r_cfr-option = 'EQ'.

r_cfr-low = 'X'.

APPEND r_cfr.

ENDIF.

IF pa_sfreq = 'X'.

r_sfr-sign = 'I'.

r_sfr-option = 'EQ'.

r_sfr-low = 'X'.

APPEND r_sfr.

ENDIF.

IF pa_comms = 'X'.

r_comms-sign = 'I'.

r_comms-option = 'EQ'.

r_comms-low = 'X'.

APPEND r_comms.

ENDIF.

IF pa_train = 'X'.

r_train-sign = 'I'.

r_train-option = 'EQ'.

r_train-low = 'X'.

APPEND r_train.

ENDIF.

IF NOT i_prg IS INITIAL.

i_crnr-sign = 'I'.

i_crnr-option = 'EQ'.

SELECT cr_number

INTO i_crnr-low

FROM zrmchgobj

WHERE name IN i_prg AND

type = '1'.

APPEND i_crnr.

ENDSELECT.

ENDIF.

IF NOT i_tcode IS INITIAL.

i_crnr-sign = 'I'.

i_crnr-option = 'EQ'.

SELECT cr_number

INTO i_crnr-low

FROM zrmchgobj

WHERE name IN i_tcode AND

type = '2'.

APPEND i_crnr.

ENDSELECT.

ENDIF.

SELECT * FROM zrmmast

INTO TABLE it_mast

WHERE cr_number IN i_crnr

AND dstream IN i_dstm

AND smodule IN i_smod

AND bukrs IN i_bukrs

AND ldate IN i_ldat

AND logby IN i_logb

AND ft_member IN i_ftmb

AND fowner IN i_fown

AND prealeased IN i_prel

AND sreleased IN i_srel

AND sf_resource IN i_sfre

AND sf_status IN i_stst

AND cr_status IN i_crst

*Check boxes

AND cf_requirement IN r_cfr

AND comms IN r_comms

AND sf_requirement IN r_sfr

AND training IN r_train.

  • and ov_progress in i_ovpr.

ENDIF.

*Extract CR_STATUS description from table

PERFORM find_cr_status_desc.

SORT it_mast BY cr_number tasknr.

ENDFORM. "get_data1

$$----


$$

  • FORM get_data *

$$----


$$

  • ........ *

$$----


$$

FORM get_data.

DESCRIBE TABLE it_mast LINES linec.

IF linec > 0.

  • sort it_mast descending.

  • Color

  • loop at it_mast into wa_mast.

  • IF sy-datum > wa_mast-sf_endda AND wa_mast-sf_endda IS NOT INITIAL.

  • wa_mast-line_color = 'C610'.

  • ENDIF.

  • PERFORM get_longname USING wa_mast-fowner

  • CHANGING long_name_func.

  • PERFORM get_longname USING wa_mast-sf_resource

  • CHANGING long_name_tech.

  • PERFORM get_longname USING wa_mast-ft_member

  • CHANGING long_name_ftmem.

  • PERFORM get_longname USING wa_mast-logby

  • CHANGING long_name_logby.

  • perform get_cr_status using wa_mast-cr_status

  • changing long_name_cr_status.

  • wa_mast-fowner = long_name_func.

  • wa_mast-sf_resource = long_name_tech.

  • wa_mast-ft_member = long_name_ftmem.

  • wa_mast-logby = long_name_logby.

  • wa_mast-cr_status = long_name_cr_status.

  • translate wa_mast-fowner to upper case.

  • translate wa_mast-sf_resource to upper case.

  • translate wa_mast-ft_member to upper case.

  • translate wa_mast-logby to upper case.

  • translate wa_mast-sdesc to upper case.

  • translate wa_mast-fowner to lower case.

  • translate wa_mast-sf_resource to lower case.

  • translate wa_mast-ft_member to lower case.

  • translate wa_mast-logby to lower case.

  • translate wa_mast-sdesc to upper case.

  • modify it_mast from wa_mast.

  • endloop.

  • sort it_mast by cr_number tasknr.

CALL SCREEN 100.

ELSE.

IF NOT i_crnr[] IS INITIAL.

DATA wa_tasknr TYPE zrmmast-tasknr.

MOVE 1 TO wa_tasknr.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

titlebar = 'CR does not exist'

text_question = 'Do you want to create a new CR?'

IMPORTING

answer = ans

EXCEPTIONS

text_not_found = 1

OTHERS = 2.

CASE ans.

WHEN 1.

SET PARAMETER ID 'ZCR' FIELD i_crnr-low.

SET PARAMETER ID 'ZTR' FIELD wa_tasknr.

CALL TRANSACTION 'ZRM01'.

ENDCASE.

ENDIF.

ENDIF.

ENDFORM. " DATA_RETRIEVAL

&----


*& Form get_longname

&----


  • text

----


  • -->ZFOWNER text

  • -->LONG_NAME text

----


FORM get_longname USING zfowner

CHANGING long_name.

DATA: owner_persnumber LIKE usr21-persnumber,

dname_text LIKE adrp-name_text.

SELECT SINGLE persnumber

FROM usr21

INTO owner_persnumber

WHERE bname = zfowner.

IF sy-subrc = 0.

SELECT SINGLE name_text

FROM adrp

INTO dname_text

WHERE persnumber = owner_persnumber.

long_name = dname_text.

ELSEIF zfowner IS INITIAL.

long_name = 'n/a'.

ELSE.

long_name = zfowner. "'Invalid User!'.

ENDIF.

ENDFORM. " get_longname

$$SCREEN MODULES----


$$

$$----


$$

  • Module STATUS_0100 OUTPUT

----


  • text

$$----


$$

MODULE status_0100 OUTPUT.

SET PF-STATUS '0100'.

SET TITLEBAR '100'.

DATA:

  • for parameter is_variant that is sued to set up options forstoring

  • the grid layout as a variant in methodset_table_for_first_display

l_layout TYPE disvariant,

  • utility field

l_lines TYPE i.

DESCRIBE TABLE gi_index_rows LINES l_lines.

IF l_lines > 0.

CALL METHOD go_grid->set_selected_rows

EXPORTING

it_index_rows = gi_index_rows.

CALL METHOD cl_gui_cfw=>flush.

REFRESH gi_index_rows.

ENDIF.

  • read data and create objects

IF go_custom_container IS INITIAL.

  • read data from datbase table

  • create objects for container and alv grid

CREATE OBJECT go_custom_container

EXPORTING container_name = 'ALV_CONTAINER'.

CREATE OBJECT go_grid

EXPORTING

i_parent = go_custom_container.

  • create object for event_receiver class

  • and set handlers

CREATE OBJECT o_event_receiver.

SET HANDLER o_event_receiver->handle_user_command FOR go_grid.

SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.

SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.

SET HANDLER o_event_receiver->handle_double_click FOR go_grid.

  • layout (variant) for alv grid

l_layout-report = sy-repid. "Layout fo report

l_layout-variant = p_vari.

gs_layout-cwidth_opt = 'X'.

  • ls_layout-col_opt = 'X'.

*----


  • setup the grid layout using a variable of structure lvc_s_layo

*----


  • set grid title

gs_layout-zebra = 'X'.

gs_layout-grid_title = 'Change Requests'.

  • selection mode - single row without buttons

  • (this is the default mode

gs_layout-sel_mode = 'B'.

  • grid setup for first display

CALL METHOD go_grid->set_table_for_first_display

EXPORTING

i_structure_name = 'ZRMMAST'

is_variant = l_layout

i_save = 'X'

is_layout = gs_layout

CHANGING

  • it_fieldcatalog = gt_fieldcat

it_outtab = it_mast.

*-- end of grid setup -


  • raise event toolbar to show the modified toolbar

  • call method go_grid->set_toolbar_interactive.

  • set focus to the grid. this is not necessary in this

  • example as there is only one control on the screen

CALL METHOD cl_gui_control=>set_focus

EXPORTING

control = go_grid.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

$$----


$$

  • Module USER_COMMAND_0100 INPUT

----


  • text

$$----


$$

MODULE user_command_0100 INPUT.

CASE ok_code.

WHEN 'EXIT'.

SET SCREEN 0.

LEAVE SCREEN.

WHEN 'CANC'.

LEAVE SCREEN.

ENDCASE.

ENDMODULE. "user_command_0100 INPUT

&----


*& Form f01_f4_variant

&----


  • text

----


  • -->C_VARIANT text

----


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 get_cr_status

&----


  • text

----


  • -->P_WA_MAST_CR_STATUS text

  • <--P_LONG_NAME_CR_STATUS text

----


FORM get_cr_status USING p_wa_mast_cr_status

CHANGING p_long_name_cr_status.

DATA: owner_persnumber LIKE usr21-persnumber,

dname_text LIKE adrp-name_text.

SELECT SINGLE persnumber

FROM usr21

INTO owner_persnumber

WHERE bname = p_wa_mast_cr_status.

IF sy-subrc = 0.

SELECT SINGLE name_text

FROM adrp

INTO dname_text

WHERE persnumber = owner_persnumber.

p_long_name_cr_status = dname_text.

ELSEIF p_wa_mast_cr_status IS INITIAL.

p_long_name_cr_status = 'n/a'.

ELSE.

p_long_name_cr_status = p_wa_mast_cr_status. "'Invalid User!'.

ENDIF.

ENDFORM. " get_cr_status

&----


*& Form find_cr_status_desc

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM find_cr_status_desc .

LOOP AT it_mast INTO lc_wa_mast .

*Get CR_STATUS description

SELECT sdesc INTO lc_wa_mast-cr_status

FROM zcrstat

WHERE cr_status = lc_wa_mast-cr_status.

ENDSELECT.

*Replace the CR_STATUS Number with CR_STATUS description

MODIFY it_mast FROM lc_wa_mast TRANSPORTING cr_status.

ENDLOOP.

ENDFORM. " find_cr_status_desc

i have a problem with my alv grid report. i am extracting data from one table but on displaying the report its not displaying all the column titles on the report. what may be causing the problem.

below is the code

REPORT zasm_alv_objects

MESSAGE-ID z_isu.

*Tables----


TABLES: zrmmast,zrmchgobj, disvariant.

$$INCLUDE----


$$

INCLUDE <icon>.

TYPE-POOLS slis.

$$INTERNAL TABLES----


$$

$$VARIABLES----


$$

FIELD-SYMBOLS: <in_table> TYPE table.

TYPES: t_mast TYPE STANDARD TABLE OF zrmmast.

DATA: it_mast TYPE t_mast,

lc_wa_mast TYPE zrmmast.

RANGES: r_comms FOR zrmmast-comms,

r_cfr FOR zrmmast-cf_requirement,

r_sfr FOR zrmmast-sf_requirement,

r_train FOR zrmmast-training.

CLASS lcl_event_receiver DEFINITION DEFERRED.

DATA: ls_layout TYPE lvc_s_layo.

DATA: wa_fieldcat TYPE lvc_s_fcat.

DATA: gt_fieldcat TYPE lvc_t_fcat.

DATA: ld_dataref TYPE REF TO data.

DATA: user_logged_on LIKE adrp-name_text.

DATA: long_name_func LIKE adrp-name_text.

DATA: long_name_tech LIKE adrp-name_text.

DATA: long_name_ftmem LIKE adrp-name_text.

DATA: long_name_logby LIKE adrp-name_text.

DATA: long_name_cr_status LIKE adrp-name_text.

DATA: wa_mast TYPE zrmmast.

DATA: za_mast TYPE zrmmast.

*----


  • g l o b a l d a t a

*----


DATA: ok_code LIKE sy-ucomm,

  • work area for internal table

g_wa_sflight TYPE t_mast,

  • alv control: layout structure

gs_layout TYPE lvc_s_layo.

  • declare reference variables to the alv grid and the container

DATA:

go_grid TYPE REF TO cl_gui_alv_grid,

go_custom_container TYPE REF TO cl_gui_custom_container,

o_event_receiver TYPE REF TO lcl_event_receiver.

DATA:

  • work area for screen 200

g_screen200 LIKE sflight.

  • data for storing information about selected rows in the grid

DATA:

  • internal table

gi_index_rows TYPE lvc_t_row,

  • information about 1 row

g_selected_row LIKE lvc_s_row.

DATA: e_row TYPE lvc_s_row, "Line ID,

e_column TYPE lvc_s_col, "Column Name,

es_row_no TYPE lvc_s_roid. "Numeric Row ID

DATA: linec TYPE i.

DATA: ans TYPE n.

DATA: ld_color(1) TYPE c.

INCLUDE zrmsralv01i1.

*include zasm_alv_receivers.

*include zcr_status_text.

*selection-screen end of block b1.

$$SELECTION-SCREEN----


$$

*selection-screen begin of block b1 with frame title text-001.

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

SELECT-OPTIONS i_crnr FOR zrmmast-cr_number

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_trntyp FOR zrmmast-transport_type

MODIF ID mod NO INTERVALS.

SELECTION-SCREEN END OF BLOCK general.

*Functional

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

SELECT-OPTIONS i_dstm FOR zrmmast-dstream

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_smod FOR zrmmast-smodule

MODIF ID mod NO INTERVALS.

SELECT-OPTIONS i_bukrs FOR zrmmast-bukrs

MODIF ID mod.

SELECT-OPTIONS i_tcode FOR zrmchgobj-name

MODIF ID mod.

SELECT-OPTIONS i_prg FOR zrmchgobj-name

MODIF ID mod.

SELECT-OPTIONS i_ftmb FOR zrmmast-ft_member

MODIF ID mod.

SELECT-OPTIONS i_fown FOR zrmmast-fowner

MODIF ID mod.

SELECTION-SCREEN END OF BLOCK general1.

*Dates

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

SELECT-OPTIONS i_ldat FOR zrmmast-ldate

MODIF ID mod.

SELECT-OPTIONS i_logb FOR zrmmast-logby

MODIF ID mod.

SELECT-OPTIONS i_prel FOR zrmmast-prealeased

MODIF ID mod.

SELECT-OPTIONS i_srel FOR zrmmast-sreleased

MODIF ID mod.

SELECTION-SCREEN END OF BLOCK general2.

*Technical

SELECTION-SCREEN BEGIN OF BLOCK general3 WITH FRAME TITLE text-004.

SELECT-OPTIONS i_sfre FOR zrmmast-sf_resource

MODIF ID mod.

SELECT-OPTIONS i_stst FOR zrmmast-sf_status

MODIF ID mod.

SELECT-OPTIONS i_crst FOR zrmmast-cr_status

MODIF ID mod.

*select-options i_ovpr for zrmmast-ov_progress

  • modif id mod.

SELECTION-SCREEN END OF BLOCK general3.

*Technical

SELECTION-SCREEN BEGIN OF BLOCK general4 WITH FRAME TITLE text-004.

PARAMETER pa_cf LIKE zrmmast-cf_requirement AS CHECKBOX.

PARAMETER pa_comms LIKE zrmmast-comms AS CHECKBOX.

PARAMETER pa_sfreq LIKE zrmmast-sf_requirement AS CHECKBOX.

PARAMETER pa_train LIKE zrmmast-training AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK general4.

SELECTION-SCREEN BEGIN OF BLOCK general5 WITH FRAME TITLE text-005.

PARAMETER p_vari LIKE disvariant-variant DEFAULT '/STANDARD'.

SELECTION-SCREEN END OF BLOCK general5.

*$$---at selection-screen

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.

PERFORM f01_f4_variant CHANGING p_vari.

$$START-OF-SELECTION----


$$

START-OF-SELECTION.

PERFORM get_data1.

PERFORM get_data.

&----


*& Form get_data1

&----


  • text

----


FORM get_data1.

CLEAR it_mast.

REFRESH it_mast.

IF

i_crnr IS INITIAL AND

i_dstm IS INITIAL AND

i_smod IS INITIAL AND

i_ldat IS INITIAL AND

i_logb IS INITIAL AND

i_ftmb IS INITIAL AND

i_fown IS INITIAL AND

i_prel IS INITIAL AND

i_srel IS INITIAL AND

i_sfre IS INITIAL AND

i_stst IS INITIAL AND

i_crst IS INITIAL AND

i_prg IS INITIAL AND

i_tcode IS INITIAL AND

i_bukrs IS INITIAL AND

  • Check boxes

pa_cf IS INITIAL AND

pa_comms IS INITIAL AND

pa_sfreq IS INITIAL AND

pa_train IS INITIAL.

SELECT * FROM zrmmast

INTO TABLE it_mast.

ELSE.

IF pa_cf = 'X'.

r_cfr-sign = 'I'.

r_cfr-option = 'EQ'.

r_cfr-low = 'X'.

APPEND r_cfr.

ENDIF.

IF pa_sfreq = 'X'.

r_sfr-sign = 'I'.

r_sfr-option = 'EQ'.

r_sfr-low = 'X'.

APPEND r_sfr.

ENDIF.

IF pa_comms = 'X'.

r_comms-sign = 'I'.

r_comms-option = 'EQ'.

r_comms-low = 'X'.

APPEND r_comms.

ENDIF.

IF pa_train = 'X'.

r_train-sign = 'I'.

r_train-option = 'EQ'.

r_train-low = 'X'.

APPEND r_train.

ENDIF.

IF NOT i_prg IS INITIAL.

i_crnr-sign = 'I'.

i_crnr-option = 'EQ'.

SELECT cr_number

INTO i_crnr-low

FROM zrmchgobj

WHERE name IN i_prg AND

type = '1'.

APPEND i_crnr.

ENDSELECT.

ENDIF.

IF NOT i_tcode IS INITIAL.

i_crnr-sign = 'I'.

i_crnr-option = 'EQ'.

SELECT cr_number

INTO i_crnr-low

FROM zrmchgobj

WHERE name IN i_tcode AND

type = '2'.

APPEND i_crnr.

ENDSELECT.

ENDIF.

SELECT * FROM zrmmast

INTO TABLE it_mast

WHERE cr_number IN i_crnr

AND dstream IN i_dstm

AND smodule IN i_smod

AND bukrs IN i_bukrs

AND ldate IN i_ldat

AND logby IN i_logb

AND ft_member IN i_ftmb

AND fowner IN i_fown

AND prealeased IN i_prel

AND sreleased IN i_srel

AND sf_resource IN i_sfre

AND sf_status IN i_stst

AND cr_status IN i_crst

*Check boxes

AND cf_requirement IN r_cfr

AND comms IN r_comms

AND sf_requirement IN r_sfr

AND training IN r_train.

  • and ov_progress in i_ovpr.

ENDIF.

*Extract CR_STATUS description from table

PERFORM find_cr_status_desc.

SORT it_mast BY cr_number tasknr.

ENDFORM. "get_data1

$$----


$$

  • FORM get_data *

$$----


$$

  • ........ *

$$----


$$

FORM get_data.

DESCRIBE TABLE it_mast LINES linec.

IF linec > 0.

  • sort it_mast descending.

  • Color

  • loop at it_mast into wa_mast.

  • IF sy-datum > wa_mast-sf_endda AND wa_mast-sf_endda IS NOT INITIAL.

  • wa_mast-line_color = 'C610'.

  • ENDIF.

  • PERFORM get_longname USING wa_mast-fowner

  • CHANGING long_name_func.

  • PERFORM get_longname USING wa_mast-sf_resource

  • CHANGING long_name_tech.

  • PERFORM get_longname USING wa_mast-ft_member

  • CHANGING long_name_ftmem.

  • PERFORM get_longname USING wa_mast-logby

  • CHANGING long_name_logby.

  • perform get_cr_status using wa_mast-cr_status

  • changing long_name_cr_status.

  • wa_mast-fowner = long_name_func.

  • wa_mast-sf_resource = long_name_tech.

  • wa_mast-ft_member = long_name_ftmem.

  • wa_mast-logby = long_name_logby.

  • wa_mast-cr_status = long_name_cr_status.

  • translate wa_mast-fowner to upper case.

  • translate wa_mast-sf_resource to upper case.

  • translate wa_mast-ft_member to upper case.

  • translate wa_mast-logby to upper case.

  • translate wa_mast-sdesc to upper case.

  • translate wa_mast-fowner to lower case.

  • translate wa_mast-sf_resource to lower case.

  • translate wa_mast-ft_member to lower case.

  • translate wa_mast-logby to lower case.

  • translate wa_mast-sdesc to upper case.

  • modify it_mast from wa_mast.

  • endloop.

  • sort it_mast by cr_number tasknr.

CALL SCREEN 100.

ELSE.

IF NOT i_crnr[] IS INITIAL.

DATA wa_tasknr TYPE zrmmast-tasknr.

MOVE 1 TO wa_tasknr.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

titlebar = 'CR does not exist'

text_question = 'Do you want to create a new CR?'

IMPORTING

answer = ans

EXCEPTIONS

text_not_found = 1

OTHERS = 2.

CASE ans.

WHEN 1.

SET PARAMETER ID 'ZCR' FIELD i_crnr-low.

SET PARAMETER ID 'ZTR' FIELD wa_tasknr.

CALL TRANSACTION 'ZRM01'.

ENDCASE.

ENDIF.

ENDIF.

ENDFORM. " DATA_RETRIEVAL

&----


*& Form get_longname

&----


  • text

----


  • -->ZFOWNER text

  • -->LONG_NAME text

----


FORM get_longname USING zfowner

CHANGING long_name.

DATA: owner_persnumber LIKE usr21-persnumber,

dname_text LIKE adrp-name_text.

SELECT SINGLE persnumber

FROM usr21

INTO owner_persnumber

WHERE bname = zfowner.

IF sy-subrc = 0.

SELECT SINGLE name_text

FROM adrp

INTO dname_text

WHERE persnumber = owner_persnumber.

long_name = dname_text.

ELSEIF zfowner IS INITIAL.

long_name = 'n/a'.

ELSE.

long_name = zfowner. "'Invalid User!'.

ENDIF.

ENDFORM. " get_longname

$$SCREEN MODULES----


$$

$$----


$$

  • Module STATUS_0100 OUTPUT

----


  • text

$$----


$$

MODULE status_0100 OUTPUT.

SET PF-STATUS '0100'.

SET TITLEBAR '100'.

DATA:

  • for parameter is_variant that is sued to set up options forstoring

  • the grid layout as a variant in methodset_table_for_first_display

l_layout TYPE disvariant,

  • utility field

l_lines TYPE i.

DESCRIBE TABLE gi_index_rows LINES l_lines.

IF l_lines > 0.

CALL METHOD go_grid->set_selected_rows

EXPORTING

it_index_rows = gi_index_rows.

CALL METHOD cl_gui_cfw=>flush.

REFRESH gi_index_rows.

ENDIF.

  • read data and create objects

IF go_custom_container IS INITIAL.

  • read data from datbase table

  • create objects for container and alv grid

CREATE OBJECT go_custom_container

EXPORTING container_name = 'ALV_CONTAINER'.

CREATE OBJECT go_grid

EXPORTING

i_parent = go_custom_container.

  • create object for event_receiver class

  • and set handlers

CREATE OBJECT o_event_receiver.

SET HANDLER o_event_receiver->handle_user_command FOR go_grid.

SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.

SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.

SET HANDLER o_event_receiver->handle_double_click FOR go_grid.

  • layout (variant) for alv grid

l_layout-report = sy-repid. "Layout fo report

l_layout-variant = p_vari.

gs_layout-cwidth_opt = 'X'.

  • ls_layout-col_opt = 'X'.

*----


  • setup the grid layout using a variable of structure lvc_s_layo

*----


  • set grid title

gs_layout-zebra = 'X'.

gs_layout-grid_title = 'Change Requests'.

  • selection mode - single row without buttons

  • (this is the default mode

gs_layout-sel_mode = 'B'.

  • grid setup for first display

CALL METHOD go_grid->set_table_for_first_display

EXPORTING

i_structure_name = 'ZRMMAST'

is_variant = l_layout

i_save = 'X'

is_layout = gs_layout

CHANGING

  • it_fieldcatalog = gt_fieldcat

it_outtab = it_mast.

*-- end of grid setup -


  • raise event toolbar to show the modified toolbar

  • call method go_grid->set_toolbar_interactive.

  • set focus to the grid. this is not necessary in this

  • example as there is only one control on the screen

CALL METHOD cl_gui_control=>set_focus

EXPORTING

control = go_grid.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

$$----


$$

  • Module USER_COMMAND_0100 INPUT

----


  • text

$$----


$$

MODULE user_command_0100 INPUT.

CASE ok_code.

WHEN 'EXIT'.

SET SCREEN 0.

LEAVE SCREEN.

WHEN 'CANC'.

LEAVE SCREEN.

ENDCASE.

ENDMODULE. "user_command_0100 INPUT

&----


*& Form f01_f4_variant

&----


  • text

----


  • -->C_VARIANT text

----


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 get_cr_status

&----


  • text

----


  • -->P_WA_MAST_CR_STATUS text

  • <--P_LONG_NAME_CR_STATUS text

----


FORM get_cr_status USING p_wa_mast_cr_status

CHANGING p_long_name_cr_status.

DATA: owner_persnumber LIKE usr21-persnumber,

dname_text LIKE adrp-name_text.

SELECT SINGLE persnumber

FROM usr21

INTO owner_persnumber

WHERE bname = p_wa_mast_cr_status.

IF sy-subrc = 0.

SELECT SINGLE name_text

FROM adrp

INTO dname_text

WHERE persnumber = owner_persnumber.

p_long_name_cr_status = dname_text.

ELSEIF p_wa_mast_cr_status IS INITIAL.

p_long_name_cr_status = 'n/a'.

ELSE.

p_long_name_cr_status = p_wa_mast_cr_status. "'Invalid User!'.

ENDIF.

ENDFORM. " get_cr_status

&----


*& Form find_cr_status_desc

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM find_cr_status_desc .

LOOP AT it_mast INTO lc_wa_mast .

*Get CR_STATUS description

SELECT sdesc INTO lc_wa_mast-cr_status

FROM zcrstat

WHERE cr_status = lc_wa_mast-cr_status.

ENDSELECT.

*Replace the CR_STATUS Number with CR_STATUS description

MODIFY it_mast FROM lc_wa_mast TRANSPORTING cr_status.

ENDLOOP.

ENDFORM. " find_cr_status_desc

2 REPLIES 2
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
419

You might consider using the field catalog to define your columns, then you can specify the column names directly.

Regards,

RIch Heilman

Read only

uwe_schieferstein
Active Contributor
0 Likes
419

Hello Timothy

First check if all data elements used in structure ZRMMAST have <i>field descriptions</i>. If not, add the description for customer data elements. For remaining SAP standard data elements without descriptions you can modify the fieldcatalog.

DATA:
  ls_fcat    TYPE lvc_s_fcat,
  lt_fcat    TYPE lvc_t_fcat.


CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'ZRMMAST'
is_variant = l_layout
i_save = 'X'
is_layout = gs_layout
CHANGING
* it_fieldcatalog = gt_fieldcat
it_outtab = it_mast.

" Get fieldcatalog
  CALL METHOD go_grid->get_frontend_fieldcatalog
    IMPORTING
      ET_FIELDCATALOG = lt_fcat.

  LOOP AT lt_fcat INTO ls_fcat
                           WHERE ( scrtext_s IS INITIAL ).  " for example
    CASE ls_fcat-fieldname.
      WHEN '...'.
         ...
      WHEN others.
      ENDCASE.

    MODIFY lt_fcat FROM ls_fcat INDEX syst-tabix.
  ENDLOOP.

" Set modified fieldcatalog and refresh(!)
  go_grid->set_frontend_fieldcatalog( lt_fcat ).
  go_grid->refresh_table_display( ).

Regards

Uwe