01-10-2008 9:38 AM
Hi all,
can any one help me to include the following code in the program BCALV_TREE_SIMPLE_DEMO???
REPORT Z_MANFIELD.
DATA: d_screen TYPE REF TO cl_dynpro_info.
for field list of screen
DATA: ftab TYPE TABLE OF d021s,
wa_ftab TYPE d021s,
pltab TYPE TABLE OF d022s.
name of modulpool
DATA: mpool TYPE repid,
mpool2 type repid.
for screen attributes of field
DATA: es_screen TYPE screen.
DATA: back TYPE t588m-varky.
DATA: status.
DATA: pos TYPE i.
DATA: p_infty TYPE infty.
DATA: dynnr type dynnr value '2000'.
FIELD-SYMBOLS: <scf>.
TABLES: t588m, pme04,t588d.
constants: calc_molga type molga value '07'.
for collection of mandatory fields
DATA: BEGIN OF mf_tab OCCURS 0,
fnam TYPE d021s-fnam,
added for distinction of default and T588M
group TYPE char4,
END OF mf_tab.
DATA : BEGIN OF wa,
infty TYPE infty,
END OF wa.
DATA itab LIKE wa OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(12) text-001.
PARAMETER action TYPE t588d-itygr.
SELECTION-SCREEN END OF LINE.
for field attributes
START-OF-SELECTION.
SELECT infty INTO CORRESPONDING FIELDS OF TABLE itab FROM t588d WHERE itygr = action.
IF sy-subrc EQ 0.
WRITE : / 'INFOTYPES FOR THIS ACTION TYPE ARE : '.
SORT itab BY infty.
DELETE ADJACENT DUPLICATES FROM itab COMPARING infty.
LOOP AT itab.
WRITE : / itab-infty HOTSPOT COLOR 6 INVERSE ON.
ENDLOOP.
WRITE /.
WRITE : / ' CLICK AN INFOTYPE FOR GETTING ITS MANDATORY FIELDS'.
ELSE.
WRITE : / 'SORRY,NO INFOTYPE FOR THIS ACTION TYPE'.
ENDIF.
AT LINE-SELECTION.
MOVE sy-lisel(6) TO p_infty.
WRITE: / 'INFOTYPE - '.
WRITE : p_infty.
WRITE : /'MANDATORY FIELDS ARE :'.
WRITE : / .
build modulpool-name
CREATE OBJECT d_screen.
CONCATENATE 'MP' p_infty '00' INTO mpool2.
CONCATENATE mpool2 '_CE' into mpool.
maybe, you have to determin the screen-no first
perform determin_scrno CHANGING dynnr.
SELECT SINGLE * FROM t588m WHERE repna = mpool
AND dynnr = dynnr
AND varky = calc_molga.
IF sy-subrc NE 0. "not found -> switch to default MOLGA
SELECT SINGLE * FROM t588m WHERE repna LIKE mpool
AND dynnr = dynnr
AND varky = space.
IF sy-subrc NE 0. "still not there -> fall back to dflt modulpool with MOLGA
mpool = mpool2.
SELECT SINGLE * FROM t588m WHERE repna = mpool
AND dynnr = dynnr
AND varky = calc_molga.
IF sy-subrc ne 0. "Last try -> dflt modulpool + empty MOLGA
SELECT SINGLE * FROM t588m WHERE repna LIKE mpool
AND dynnr = dynnr
AND varky = space.
IF sy-subrc ne 0. "obviously, there isn't ana entry at all
clear t588m.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
only to ensure that these fields are filled
IF t588m IS INITIAL.
t588m-repna = mpool.
t588m-dynnr = dynnr.
ENDIF.
get fieldlist for screen
CALL FUNCTION 'RS_IMPORT_DYNPRO'
EXPORTING
dylang = sy-langu
dyname = t588m-repna
dynumb = t588m-dynnr
request = ' '
suppress_checks = ' '
IMPORTING
HEADER =
TABLES
ftab = ftab
pltab = pltab
EXCEPTIONS
button_error = 1
dylanguage_invalid = 2
dylanguage_not_inst = 3
dyname_invalid = 4
dynproload_not_found = 5
dynpro_old = 6
dynumb_invalid = 7
ftab_invalid = 8
gen_error = 9
gen_ok = 10
header_invalid = 11
internal_error = 12
no_dynpro = 13
no_ftab_row = 14
no_memory = 15
no_processlogic = 16
pltab_invalid = 17
request_invalid = 18
OTHERS = 19
.
IF sy-subrc EQ 0.
error handling
ENDIF.
get rid of comments, frames and the like
DELETE ftab WHERE aglt IS INITIAL.
LOOP AT ftab INTO wa_ftab.
Screen-Grp3 is the key to T588M-DBILD
IF wa_ftab-grp3 NE space.
pos = wa_ftab-grp3 - 1.
ASSIGN t588m-dbild+pos(1) TO <scf>.
mandatory fields are marked '+'
IF <scf> EQ '+'.
MOVE wa_ftab-fnam TO mf_tab-fnam.
MOVE wa_ftab-grp3 TO mf_tab-group.
APPEND mf_tab.
CONTINUE.
ENDIF.
ENDIF.
maybe the field is mandatory by default
CALL METHOD d_screen->get_screen_field_attr
EXPORTING
iv_repid = t588m-repna
iv_dynnr = t588m-dynnr
iv_field = wa_ftab-fnam
IMPORTING
es_screen = es_screen
EXCEPTIONS
exc_insufficient_parameters = 1
exc_no_attributes = 2
OTHERS = 3.
IF sy-subrc EQ 0.
error handling
ENDIF.
IF es_screen-required NE space.
MOVE wa_ftab-fnam TO mf_tab-fnam.
MOVE 'Dflt' TO mf_tab-group.
APPEND mf_tab.
ENDIF.
ENDLOOP.
simple output
LOOP AT mf_tab.
WRITE: / mf_tab-fnam,
mf_tab-group.
ENDLOOP.
CLEAR: mf_tab, mf_tab[].
END-OF-SELECTION.
**********************************************************************************
i want the output in the format(in the order)
action(t588m-itygr),infotype(itab-infty),field name(mf_tab-fnam),group(mf_tab-group)
01-10-2008 10:03 AM
Hi,
Check the sample program SAPSIMPLE_TREE_CONTROL_DEMO .
Regards,
Renjith Michael.
01-10-2008 9:41 AM
&----
*& Report ZDEMO_ALVTREE *
*& *
&----
*& *
*& Example of a simple ALV Grid Report *
*& ................................... *
*& *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKPO and EKKO table in a tree structure. *
*& *
&----
Amendment History *
-
REPORT zdemo_alvgrid .
*Data Declaration
*----
TABLES: ekko.
TYPE-POOLS: slis. "ALV Declarations
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
it_ekpo TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
it_emptytab TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko,
wa_ekpo TYPE t_ekko.
DATA: ok_code like sy-ucomm, "OK-Code
save_ok like sy-ucomm.
*ALV data declarations
DATA: fieldcatalog TYPE lvc_t_fcat WITH HEADER LINE.
DATA: gd_fieldcat TYPE lvc_t_fcat,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv.
*ALVtree data declarations
CLASS cl_gui_column_tree DEFINITION LOAD.
CLASS cl_gui_cfw DEFINITION LOAD.
DATA: gd_tree TYPE REF TO cl_gui_alv_tree,
gd_hierarchy_header TYPE treev_hhdr,
gd_report_title TYPE slis_t_listheader,
gd_logo TYPE sdydo_value,
gd_variant TYPE disvariant.
*Create container for alv-tree
DATA: l_tree_container_name(30) TYPE c,
l_custom_container TYPE REF TO cl_gui_custom_container.
************************************************************************
*Includes
*INCLUDE ZDEMO_ALVTREEO01. "Screen PBO Modules
*INCLUDE ZDEMO_ALVTREEI01. "Screen PAI Modules
*INCLUDE ZDEMO_ALVTREEF01. "ABAP Subroutines(FORMS)
************************************************************************
*Start-of-selection.
START-OF-SELECTION.
ALVtree setup data
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.
PERFORM build_report_title USING gd_report_title gd_logo.
PERFORM build_variant.
Display ALVtree report
call screen 100.
&----
*& Form DATA_RETRIEVAL
&----
Retrieve data into Internal tables
-
FORM data_retrieval.
SELECT ebeln
UP TO 10 ROWS
FROM ekko
INTO corresponding fields of TABLE it_ekko.
loop at it_ekko into wa_ekko.
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
FROM ekpo
appending TABLE it_ekpo
where ebeln eq wa_ekko-ebeln.
endloop.
ENDFORM. " DATA_RETRIEVAL
&----
*& Form BUILD_FIELDCATALOG
&----
Build Fieldcatalog for ALV Report
-
FORM build_fieldcatalog.
Please not there are a number of differences between the structure of
ALVtree fieldcatalogs and ALVgrid fieldcatalogs.
For example the field seltext_m is replace by scrtext_m in ALVtree.
fieldcatalog-fieldname = 'EBELN'. "Field name in itab
fieldcatalog-scrtext_m = 'Purchase Order'. "Column text
fieldcatalog-col_pos = 0. "Column position
fieldcatalog-outputlen = 15. "Column width
fieldcatalog-emphasize = 'X'. "Emphasize (X or SPACE)
fieldcatalog-key = 'X'. "Key Field? (X or SPACE)
fieldcatalog-do_sum = 'X'. "Sum Column?
fieldcatalog-no_zero = 'X'. "Don't display if zero
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-scrtext_m = 'PO Iten'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-scrtext_m = 'Status'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-scrtext_m = 'Item change date'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-scrtext_m = 'Material Number'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-scrtext_m = 'PO quantity'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 5.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-scrtext_m = 'Order Unit'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 6.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-scrtext_m = 'Net Price'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 7.
fieldcatalog-datatype = 'CURR'.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-scrtext_m = 'Price Unit'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 8.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
&----
*& Form BUILD_LAYOUT
&----
Build layout for ALV grid report
-
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
&----
*& Form build_hierarchy_header
&----
build hierarchy-header-information
-
-->P_L_HIERARCHY_HEADER structure for hierarchy-header
-
FORM build_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'(013).
p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
ENDFORM. " build_hierarchy_header
&----
*& Form BUILD_REPORT_TITLE
&----
Build table for ALVtree header
-
<-> p1 Header details
<-> p2 Logo value
-
FORM build_report_title CHANGING
pt_report_title TYPE slis_t_listheader
pa_logo TYPE sdydo_value.
DATA: ls_line TYPE slis_listheader,
ld_date(10) TYPE c.
List Heading Line(TYPE H)
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-key "Not Used For This Type(H)
ls_line-info = 'PO ALVTree Display'.
APPEND ls_line TO pt_report_title.
Status Line(TYPE S)
ld_date(2) = sy-datum+6(2).
ld_date+2(1) = '/'.
ld_date3(2) = sy-datum4(2).
ld_date+5(1) = '/'.
ld_date+6(4) = sy-datum(4).
ls_line-typ = 'S'.
ls_line-key = 'Date'.
ls_line-info = ld_date.
APPEND ls_line TO pt_report_title.
Action Line(TYPE A)
CLEAR ls_line.
ls_line-typ = 'A'.
CONCATENATE 'Report: ' sy-repid INTO ls_line-info SEPARATED BY space.
APPEND ls_line TO pt_report_title.
ENDFORM.
&----
*& Form BUILD_VARIANT
&----
Build variant
-
form build_variant.
Set repid for storing variants
gd_variant-report = sy-repid.
endform. " BUILD_VARIANT
Regards.
01-10-2008 10:03 AM
Hi,
Check the sample program SAPSIMPLE_TREE_CONTROL_DEMO .
Regards,
Renjith Michael.