REPORT y_r_eitan_test_31_08 . TYPE-POOLS: abap . TABLES: ssfscreen . DATA: text255 TYPE text255 . *----------------------------------------------------------------------* TYPES: BEGIN OF tp_tech_1 . TYPES: it_styl TYPE salv_t_int4_column . TYPES: END OF tp_tech_1 . *----------------------------------------------------------------------* TYPES: BEGIN OF tp_stxf_1 . TYPES: formname TYPE stxfadm-formname . TYPES: END OF tp_stxf_1 . *----------------------------------------------------------------------* TYPES: BEGIN OF tp_node_1 . TYPES: name TYPE ssfscreen-iname , value TYPE text255 . TYPES: ob_ixml_node TYPE REF TO if_ixml_node . TYPES: END OF tp_node_1 . *----------------------------------------------------------------------* TYPES: BEGIN OF tp_alv_data_1 . INCLUDE TYPE tp_tech_1 AS tech_1 RENAMING WITH SUFFIX _tech_1 . INCLUDE TYPE tp_stxf_1 AS stxf_1 RENAMING WITH SUFFIX _stxf_1 . INCLUDE TYPE tp_node_1 AS node_1 RENAMING WITH SUFFIX _node_1 . TYPES: END OF tp_alv_data_1 . TYPES: tp_alv_data_1_tab TYPE TABLE OF tp_alv_data_1 . DATA: it_alv_data_1 TYPE tp_alv_data_1_tab . *----------------------------------------------------------------------* TYPES: BEGIN OF tp_alv_data_2 . INCLUDE TYPE tp_node_1 AS node_1 RENAMING WITH SUFFIX _node_1 . TYPES: END OF tp_alv_data_2 . TYPES: tp_alv_data_2_tab TYPE TABLE OF tp_alv_data_2 . *----------------------------------------------------------------------* *----------------------------------------------------------------------* CLASS cl_event_receiver DEFINITION . PUBLIC SECTION. METHODS: link_click FOR EVENT link_click OF cl_salv_events_table IMPORTING row column. PRIVATE SECTION. METHODS: show_parents IMPORTING ob_ixml_node_1 TYPE REF TO if_ixml_node . METHODS: popup IMPORTING start_line TYPE i end_line TYPE i start_column TYPE i end_column TYPE i value(t_table) TYPE
DEFAULT DEFAULT DEFAULT DEFAULT table .
2 15 25 150
ENDCLASS . "cl_event_receiver DEFINITION *----------------------------------------------------------------------* *----------------------------------------------------------------------* CLASS cl_event_receiver IMPLEMENTATION. *----------------------------------------------------------------------* METHOD: link_click . FIELD-SYMBOLS: TYPE tp_alv_data_1 . FIELD-SYMBOLS: TYPE ANY . READ TABLE it_alv_data_1 INDEX row ASSIGNING . ASSIGN COMPONENT column OF STRUCTURE TO . CASE column . WHEN 'NAME_NODE_1' . me->show_parents( -node_1-ob_ixml_node ) . ENDCASE . ENDMETHOD . "on_link_click *----------------------------------------------------------------------* METHOD: show_parents . DATA: ob_ixml_node_t TYPE REF TO if_ixml_node . ob_ixml_node_t = ob_ixml_node_1->get_parent( ) . DATA: it_alv_data_2 TYPE tp_alv_data_2_tab . DATA: st_alv_data_2 LIKE LINE OF it_alv_data_2 . WHILE ob_ixml_node_t IS NOT INITIAL . st_alv_data_2-node_1-name = ob_ixml_node_t->get_name( ) . st_alv_data_2-node_1-value = ob_ixml_node_t->get_value( ) . APPEND st_alv_data_2 TO it_alv_data_2 . ob_ixml_node_t = ob_ixml_node_t->get_parent( ) . ENDWHILE . me->popup( EXPORTING t_table = it_alv_data_2 ) . ENDMETHOD . "show_parents *----------------------------------------------------------------------* METHOD: popup . IF t_table IS INITIAL . MESSAGE s801(dh). RETURN . ENDIF . DATA: ob_salv_table TYPE REF TO cl_salv_table. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = ob_salv_table CHANGING
t_table
= t_table ).
CATCH cx_salv_msg. ENDTRY. CHECK ob_salv_table IS BOUND. ob_salv_table->set_screen_popup( start_column = start_column end_column = end_column start_line = start_line end_line = end_line ). ob_salv_table->display( ) . ENDMETHOD . "popup *----------------------------------------------------------------------* ENDCLASS . "cl_event_receiver IMPLEMENTATION *----------------------------------------------------------------------* *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK block04 WITH FRAME. SELECT-OPTIONS: s_fname FOR ssfscreen-fname NO INTERVALS OBLIGATORY . SELECT-OPTIONS: s_devcl FOR ssfscreen-devclass NO INTERVALS . SELECTION-SCREEN SKIP . SELECT-OPTIONS: s_name FOR ssfscreen-iname . SELECT-OPTIONS: s_value FOR text255 NO INTERVALS. SELECTION-SCREEN END OF BLOCK block04. *----------------------------------------------------------------------* *----------------------------------------------------------------------* INITIALIZATION . PERFORM at_initialization . START-OF-SELECTION. PERFORM at_start_of_selection . *----------------------------------------------------------------------* *----------------------------------------------------------------------* FORM at_initialization . * APPEND 'IEQSF_EXAMPLE_01' TO s_fname . * APPEND 'IEQSF_EXAMPLE_02' TO s_fname . APPEND 'IEQSF_EXAMPLE_03' TO s_fname . APPEND 'IEQTDLINE ' TO s_name . APPEND 'ICP*madam*' TO s_value . DATA: it_seltexts TYPE TABLE OF rsseltexts . DATA: st_seltexts LIKE LINE OF it_seltexts . st_seltexts-name = st_seltexts-kind = st_seltexts-text = APPEND st_seltexts
CALL FUNCTION 'SELECTION_TEXTS_MODIFY' EXPORTING program = sy-cprog TABLES seltexts = it_seltexts EXCEPTIONS program_not_found = 1 program_cannot_be_generated = 2 OTHERS = 3. ENDFORM . "at_initialization *----------------------------------------------------------------------* FORM at_start_of_selection . CLEAR it_alv_data_1 . DATA: it_stxfadm TYPE TABLE OF stxfadm . SELECT * INTO TABLE it_stxfadm FROM stxfadm WHERE formname IN s_fname AND devclass IN s_devcl. FIELD-SYMBOLS: LIKE LINE OF it_stxfadm . LOOP AT it_stxfadm ASSIGNING . PERFORM scan_form USING CHANGING it_alv_data_1 . ENDLOOP. PERFORM display_results CHANGING it_alv_data_1 . ENDFORM . "at_start_of_selection *----------------------------------------------------------------------* FORM scan_form USING st_stxfadm TYPE stxfadm CHANGING it_alv_data_1 TYPE tp_alv_data_1_tab . DATA: ob_smart_form TYPE REF TO cl_ssf_fb_smart_form . CREATE OBJECT ob_smart_form . CALL METHOD ob_smart_form->load EXPORTING im_active = space
im_formname = st_stxfadm-formname im_language = 'E'. DATA: ob_ixml TYPE REF TO if_ixml . DATA: ob_ixml_document TYPE REF TO if_ixml_document . ob_ixml = cl_ixml=>create( ). ob_ixml_document = ob_ixml->create_document( ) . ob_smart_form->xml_init( ) . CALL METHOD ob_smart_form->xml_download EXPORTING parent = ob_ixml_document CHANGING document = ob_ixml_document. * DATA: ob_ixml_stream_factory TYPE REF TO if_ixml_stream_factory. * DATA: ob_ostream TYPE REF TO if_ixml_ostream . * * * * *
DATA: debug TYPE string. ob_ixml_stream_factory = ob_ixml->create_stream_factory( ). ob_ostream = ob_ixml_stream_factory->create_ostream_cstring( debug ). ob_ixml_document->render( ostream = ob_ostream ) . DATA: ob_ixml_node TYPE REF TO if_ixml_node . ob_ixml_node = ob_ixml_document . DATA: ob_ixml_node_iterator TYPE REF TO if_ixml_node_iterator . ob_ixml_node_iterator = ob_ixml_node->create_iterator( ) . DATA: st_alv_data_1 LIKE LINE OF it_alv_data_1 . DATA: st_styl LIKE LINE OF st_alv_data_1-tech_1-it_styl . WHILE NOT ob_ixml_node IS INITIAL . CLEAR st_alv_data_1 . st_alv_data_1-stxf_1-formname = st_stxfadm-formname . st_alv_data_1-node_1-ob_ixml_node = ob_ixml_node . st_alv_data_1-node_1-name = ob_ixml_node->get_name( ) . IF st_alv_data_1-node_1-name NOT IN s_name . ob_ixml_node = ob_ixml_node_iterator->get_next( ). CONTINUE . ENDIF . st_alv_data_1-node_1-value = ob_ixml_node->get_value( ) . IF st_alv_data_1-node_1-value NOT IN s_value . ob_ixml_node = ob_ixml_node_iterator->get_next( ). CONTINUE . ENDIF . APPEND st_alv_data_1 TO it_alv_data_1 .
ob_ixml_node = ob_ixml_node_iterator->get_next( ). ENDWHILE . ENDFORM. "scan_form *----------------------------------------------------------------------* FORM display_results CHANGING t_table TYPE table . DATA: ob_salv_table TYPE REF TO cl_salv_table . TRY. cl_salv_table=>factory( IMPORTING r_salv_table = ob_salv_table CHANGING t_table = t_table ). CATCH cx_salv_msg. ENDTRY. DATA: ob_salv_functions_list TYPE REF TO cl_salv_functions_list. ob_salv_functions_list = ob_salv_table->get_functions( ). ob_salv_functions_list->set_default( ) . DATA: st_fcat TYPE lvc_s_fcat . DATA: ob_salv_columns TYPE REF TO cl_salv_columns_table . ob_salv_columns = ob_salv_table->get_columns( ) . ob_salv_columns->set_cell_type_column( 'IT_STYL_TECH_1' ) . DATA: it_column_ref TYPE salv_t_column_ref . FIELD-SYMBOLS: LIKE LINE OF it_column_ref . it_column_ref = ob_salv_columns->get( ) . DATA: ob_salv_column TYPE REF TO cl_salv_column_table . LOOP AT it_column_ref ASSIGNING . CASE -columnname . WHEN 'NAME_NODE_1' . st_fcat-scrtext_s = st_fcat-scrtext_m = st_fcat-scrtext_l = 'Node Name'( 011) . -r_column->set_short_text( value = st_fcat-scrtext_s ) . -r_column->set_medium_text( value = st_fcat-scrtext_m ) . -r_column->set_long_text( value = st_fcat-scrtext_l ) . ob_salv_column ?= ob_salv_columns->get_column( -columnnam e ) . ob_salv_column->set_cell_type( if_salv_c_cell_type=>hotspot ). WHEN 'VALUE_NODE_1' . st_fcat-scrtext_s = st_fcat-scrtext_m = st_fcat-scrtext_l = 'Node Value' (012) . -r_column->set_short_text( value = st_fcat-scrtext_s ) .
-r_column->set_medium_text( value = st_fcat-scrtext_m ) . -r_column->set_long_text( value = st_fcat-scrtext_l ) . ENDCASE. ENDLOOP . DATA: ob_salv_events TYPE REF TO cl_salv_events_table. DATA: ob_event_receiver TYPE REF TO cl_event_receiver . ob_salv_events = ob_salv_table->get_event( ). CREATE OBJECT ob_event_receiver . SET HANDLER ob_event_receiver->link_click FOR ob_salv_events . ob_salv_table->display( ). ENDFORM.
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.