Quantcast
Channel: SCN : Document List - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 189

Dynamic Title descriptions in Assignment Blocks

$
0
0

2015-10-29_17h22_27.png

 

 

 

The requirement is to adopt the Title text with the number of entries in the table as shown above

 

Techincal Developments:

 

In the Overview page add the below code:



 

 

Method "Update Title" has no parameters

Method "Update_View" :

untitled1.png

 

Code :

Method : "UPDATE_TITLE"

   DATA:
      lr_view_area       TYPE REF TO bsp_dlc_ovw_assgnm,
      lv_text_element_id TYPE char70,
      lv_title           TYPE string,
      lv_hit_count       TYPE string,
      lv_ui_object_type  TYPE string,
      ui_object_type     TYPE bsp_dlc_object_type,
      lv_tmp             TYPE string,
      ls_view_area_orig  TYPE ls_view_area_orig.

   DATA: lv_viewarea TYPE string.
   DATA: lv_binding_error TYPE abap_bool.

   DATA: lr_view       TYPE REF TO cl_bsp_wd_view_controller.
   DATA: lr_sub_view   TYPE REF TO cl_bsp_wd_view_controller.
* Get component controller
*  DATA: component_controller TYPE REF TO cl_crm_es_u_bspwdcomponen_impl.
*  component_controller ?= me->comp_controller.

   FIELD-SYMBOLS: <gv_hit_count> TYPE string.
   DATA: lv_string TYPE string.

   LOOP AT me->view_area REFERENCE INTO lr_view_area.

*    IF lr_view_area->traymode = space.

     TRY.
         lr_view ?= me->get_subcontroller_by_viewname( iv_viewname = lr_view_area->appl_viewname  ).
       CATCH cx_root.
     ENDTRY.

     IF lr_view IS NOT BOUND.
       lv_viewarea = lr_view_area->sequence.


      lv_binding_error = me->update_view( iv_viewid   = lr_view_area->appl_viewname
                                            iv_viewarea = lv_viewarea
                                            iv_viewname = lr_view_area->viewname ).
       IF lv_binding_error IS INITIAL.
         TRY.
             lr_view ?= me->get_subcontroller_by_viewname( iv_viewname = lr_view_area->appl_viewname  ).
           CATCH cx_root.
         ENDTRY.
       ENDIF.
     ENDIF.

     IF lr_view IS BOUND.

       lv_string = 'lr_sub_view->GV_HITCOUNT'.


       FIELD-SYMBOLS: <current_viewarea> TYPE ltype_va_content.

       LOOP AT lr_view->viewarea_cont ASSIGNING <current_viewarea>.

         lr_sub_view ?= <current_viewarea>-current-controller.
         IF lr_sub_view IS BOUND.
           ASSIGN (lv_string) TO <gv_hit_count>.
           IF <gv_hit_count> IS ASSIGNED.
             EXIT.
           ENDIF.
         ENDIF.

       ENDLOOP.


     ENDIF.

     IF <gv_hit_count> IS ASSIGNED.
       lv_text_element_id = lr_view_area->title_ref.

       lv_title = configuration_descr->get_custom_text( lv_text_element_id ).
       IF lv_title IS INITIAL.
         lv_title = lr_view_area->title_ref.
       ENDIF.
       IF lv_title CA '()'.
         SPLIT lv_title AT ' (' INTO lv_title lr_view_area->title_ref .
       ENDIF.

       CONCATENATE  lv_title ' ( ' <gv_hit_count>  text-003 ')' INTO lr_view_area->title_ref.
       UNASSIGN <gv_hit_count>.
     ENDIF.
*    ELSEIF  lr_view_area->traymode = abap_true.
*
*      IF lr_view_area->title_ref CA '()'.
*
*
*        lv_text_element_id = lr_view_area->title_ref.
*
*        lv_title = configuration_descr->get_custom_text( lv_text_element_id ).
*        IF lv_title IS INITIAL.
*          lv_title = lr_view_area->title_ref .
*        ENDIF.
*        SPLIT lv_title AT '(' INTO lr_view_area->title_ref  lv_title.
*      ENDIF.
*    ENDIF.

     CLEAR lv_title.
   ENDLOOP.

 

 

Method UPDATE_VIEW:

 

    DATA lr_rep_view TYPE REF TO cl_bsp_wd_rep_view_ovw.
   DATA lr_rep TYPE REF TO cl_bsp_wd_repository.
   DATA lr_addview_rep_view TYPE REF TO cl_bsp_wd_rep_view.
   DATA lv_viewarea TYPE string.
   DATA lv_usg_descr TYPE bsp_wd_cmp_usage_descr.
   DATA lr_exception TYPE REF TO cx_bsp_wd_incorrect_implement.
   DATA lv_usage TYPE string.
   DATA lv_dummy TYPE string.
   DATA lv_error TYPE string.
   DATA lr_exc TYPE REF TO cx_bsp_wd_incorrect_implement.
   DATA lv_viewname TYPE string.

   lr_rep_view ?= me->get_repository_view( ).
   lr_rep = lr_rep_view->get_repository( ).
   lv_viewname = iv_viewname.

* check for component usage and view: If switched off, ignore this assignment block.
* Improve this: Don't even return switched off assignment blocks from configuration
   TRY.
       IF iv_viewid CS '.'.
         SPLIT iv_viewid AT '.' INTO lv_usage lv_dummy.
         TRY.
             lv_usg_descr = lr_rep->get_cmp_usage_def( lv_usage ).
           CATCH cx_bsp_wd_incorrect_implement INTO lr_exc.
             IF lr_exc->textid <> cx_bsp_wd_incorrect_implement=>access_2_inactive_element.
               RAISE EXCEPTION lr_exc.
             ELSE.
               rv_error = abap_true.
               RETURN.
             ENDIF.
         ENDTRY.
       ELSE.
         CASE lr_rep->check_va_assignment_defined(
          iv_rep_view      = rep_view
          iv_viewarea      = cl_bsp_dlc_config_list_based=>c_overviewarea_id
          iv_assigned_view = iv_viewid ).

           WHEN abap_false.
             RAISE EXCEPTION TYPE cx_bsp_wd_incorrect_implement
               EXPORTING
                 textid     = cx_bsp_wd_incorrect_implement=>undefined_controller
                 controller = lv_viewname
                 name       = me->view_id.
           WHEN cl_webcuif_switch=>co_reaction_hide.
             rv_error = abap_true.
             RETURN.
         ENDCASE.
       ENDIF.

     CATCH cx_bsp_wd_incorrect_implement INTO lr_exception.

       rv_error = abap_true.
       RETURN.
   ENDTRY.
   TRY.
       lr_addview_rep_view = lr_rep->get_view( iv_viewid ).
       IF  lr_addview_rep_view IS INITIAL.
         lr_addview_rep_view = lr_rep->create_by_name( iv_viewid ).
       ENDIF.
       bind_view( rep_view = lr_addview_rep_view
                   viewarea = iv_viewarea ).
       rv_error = abap_false.
     CATCH cx_bsp_wd_incorrect_implement INTO lr_exception.

       rv_error = abap_true.
       RETURN.
   ENDTRY.

 

Call update_title method in Do_prepare_output Method of overview page.

Create a instance attribute "GV_HITCOUNT" and fill in the on_new_focus of the resulting context node in the which Title has to be updated with the Counts.


Viewing all articles
Browse latest Browse all 189

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>