2007 Jul 04 3:37 PM
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
2007 Jul 04 3:41 PM
2007 Jul 04 4:03 PM
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