为TABLE的单元格设置颜色

新增单据时,与系统数据比对,不存在相关数据给出提示,存在则将系统中数据显示,并将匹配的数据着色显示有TABLE中.

1.在CONTEXT中新建一节点S_LIVE,保存新增单据.

2.在CONTEXT中新建一节点PLAY_LIVE,供LAYOUT中的TABLE绑定用.

   在PLAY_LIVE下新建一属性cell_design,类型为WDUI_TABLE_CELL_DESIGN.

3.在CONTEXT中新建一属性MSG,类型为STRING,供页面显示提示信息用.

4.在LAYOUT中新建TABLE,与CONTEXT 中的PLAY_LIVE绑定,将欲着色的COLUMN的CELLDESIGN与PLAY_LIST节点下的CELL_DESIGN属性进行绑定.

5.在wddomodifyview中添加如下代码.

 
METHOD wddomodifyview .
  IF first_time NE abap_true.
    EXIT.
  ENDIF.
*   页面提示信息
  DATA lo_el_context TYPE REF TO if_wd_context_element.
  DATA ls_context TYPE wd_this->element_context.
  DATA lv_msg LIKE ls_context-msg.

*   新增单据

  DATA lo_nd_s_live TYPE REF TO if_wd_context_node.
  DATA lo_el_s_live TYPE REF TO if_wd_context_element.
  DATA ls_s_live TYPE wd_this->element_s_live.
*   navigate from <CONTEXT> to <S_LIVE> via lead selection
  lo_nd_s_live = wd_context->get_child_node( name = wd_this->wdctx_s_live ).

*   get element via lead selection
  lo_el_s_live = lo_nd_s_live->get_element(  ).

*   get all declared attributes
  lo_el_s_live->get_static_attributes( IMPORTING  static_attributes = ls_s_live ).

*   从数据库中取出相关数据

  DATA: lt_tab  TYPE TABLE OF zcdm_s_play_plan.
*  DATA: l_tab  TYPE REF TO zcdm_s_play_plan.
  DATA: ls_tab  TYPE zcdm_s_play_plan.
  zcl_wdr_live=>get_play_by_procd(
    EXPORTING
     pro_cd = ls_s_live-z_pro_cd
     play_date = ls_s_live-z_live_date
    RECEIVING
      itab = lt_tab
  ).

* 与TABLE绑定的CONTEXT列表设置

  DATA lo_nd_play_list TYPE REF TO if_wd_context_node.
  DATA lo_el_play_list TYPE REF TO if_wd_context_element.
  DATA ls_play_list TYPE wd_this->element_play_list.
  DATA lt_play_list TYPE wd_this->elements_play_list.
  lo_nd_play_list = wd_context->get_child_node( name = wd_this->wdctx_play_list ).

  APPEND LINES OF lt_tab TO lt_play_list.

*  
  LOOP AT lt_play_list INTO ls_play_list WHERE z_pro_cd = ls_s_live-z_pro_cd
                                          AND  z_pro_length = ls_s_live-z_pro_length
                                          AND  z_play_date = ls_s_live-z_live_date
                                          AND  z_play_time = ls_s_live-z_live_time
                                          AND  z_chanl_cd = ls_s_live-z_chanl_cd
                                          AND  z_subj_cd = ls_s_live-z_subj_cd .
    ls_play_list-cell_design = '11'.     "根据内表中行项目,对CELL_DESIGN做设置.
    MODIFY  lt_play_list FROM ls_play_list.
  ENDLOOP.

 

  IF sy-subrc NE 0.
    lv_msg = '没有查到匹配项'.
  ELSE.
    lv_msg = '对应数据已标出,请查看'.
  ENDIF.

* 显示提示信息
  lo_el_context = wd_context->get_element(  ).
  lo_el_context->set_attribute( name =  `MSG` value = lv_msg ).

*  显示数据,匹配数据着色显示

  lo_nd_play_list->bind_table( new_items = lt_play_list ).
  lo_nd_play_list->clear_selection( )..

ENDMETHOD.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值