当前位置: 首页 > news >正文

做网站好找工作吗西安网站建设推广专家

做网站好找工作吗,西安网站建设推广专家,wordpress自定义结构后空白页,帝国cms响应式网站模板问题场景 需要弹出一个ALV并获取选择的数据 实现思路 跳转屏幕弹出ALV(通过SALV)弹出ALV(通过REUSE_ALV_POPUP_TO_SELECT) 实现效果 因为这里需要的是单选,所以没有多选列 实现代码 MODULE sel_zfretype INPUT.…

问题场景

需要弹出一个ALV并获取选择的数据

实现思路

  1. 跳转屏幕
  2. 弹出ALV(通过SALV
  3. 弹出ALV(通过REUSE_ALV_POPUP_TO_SELECT

实现效果

因为这里需要的是单选,所以没有多选列
在这里插入图片描述

实现代码

 MODULE sel_zfretype INPUT.DATA:lt_zmmt041 LIKE TABLE OF zmmt041,lt_twlad   LIKE TABLE OF twlad,lt_twlad01 LIKE TABLE OF twlad.DATA:lfdnr TYPE lfdnr_twlad.DATA: lt_msg TYPE rs_t_msg,ls_msg TYPE bal_s_msg.DATA: lf_one_msg_as_sys_msg TYPE flag.DATA go_alv TYPE REF TO cl_salv_table.DATA: go_functions  TYPE REF TO cl_salv_functions_list,go_selections TYPE REF TO cl_salv_selections,go_layout     TYPE REF TO cl_salv_layout,go_display    TYPE REF TO cl_salv_display_settings.DATA: gr_columns TYPE REF TO cl_salv_columns_table.DATA: gr_column TYPE REF TO cl_salv_column_table.DATA lt_rows TYPE salv_t_row.DATA:ls_row TYPE LINE OF salv_t_row.DATA:lv_wlzs LIKE zmmtydand-menge.DATA:BEGIN OF lt_sel OCCURS 1,zbjh       LIKE zmmt041-zbjh,zxmh       LIKE zmmt041-zxmh,zfylx      LIKE zmmt041-zfylx,zfylx_t    LIKE zmmt041-zfylx_t,zvendor    LIKE zmmt041-zvendor,name2      LIKE zmmt041-name2,zkunnr     LIKE zmmt041-zkunnr,name1      LIKE zmmt041-name1,zarea      LIKE zmmt041-zarea,zcity      LIKE zmmt041-zcity,zcountry   LIKE zmmt041-zcountry,zarea_t    LIKE zsdt010-zarea_t,zcity_t    LIKE zsdt010-zcity_t,zcountry_t LIKE zsdt010-zcounty_t,zdj        LIKE zmmt041-zdj,zdtszl     LIKE zmmt041-zdtszl,zsl        LIKE zmmt041-zsl,zbz        LIKE zmmt041-zbz.DATA:END OF lt_sel.DATA:lt_lfa1     LIKE TABLE OF lfa1 WITH HEADER LINE,lt_zsdt0101 TYPE TABLE OF zsdt010 WITH HEADER LINE.REFRESH:lt_zmmt041,lt_twlad,lt_twlad01."校验供应商IF g_wa_data-lifnr IS INITIAL.REFRESH lt_msg.CLEAR ls_msg.ls_msg-msgty = 'E'.ls_msg-msgid = 'ZMM01'.ls_msg-msgno = '113'.APPEND ls_msg TO lt_msg.IF lt_msg IS NOT INITIAL.cl_epic_ui_services=>show_messages_with_alog(it_messages       = lt_msgiv_one_msg_direct = lf_one_msg_as_sys_msg ).CLEAR:g_wa_item_fre-zfretype.RETURN.ENDIF.ENDIF."处理费用类型描述CHECK g_wa_item_fre-zfrename <> '运输费用'.IF g_wa_item_fre-zfrename EQ '运输费用'.RETURN.ELSE.SELECT SINGLE zfrename INTO g_wa_item_fre-zfrenameFROM zmmt037WHERE zfretype  = g_wa_item_fre-zfretype.ENDIF.CLEAR:g_wa_item_fre-zfredj,g_wa_item_fre-zfresl,g_wa_item_fre-zfretax,g_wa_item_fre-zfrecefy,g_wa_item_fre-zfreje."处理单价和税率SELECT * FROM zmmt041 INTO CORRESPONDING FIELDS OF TABLE lt_zmmt041WHERE zvendor =  g_wa_data-lifnr AND vstel = g_wa_data-vstelAND zwxp = g_wa_data-zwxp AND zfylx = g_wa_item_fre-zfretypeAND zstatus = '3' AND zyxqc < sy-datum AND zyxqd > sy-datumAND zwzc = g_wa_data-zwzc."modify by wangk at 20230214 其他费用选择逻辑变更"处理最小桶数/重量,过滤高于最小桶数/重量的lv_wlzs = 0.LOOP AT g_it_item.lv_wlzs = lv_wlzs + g_it_item-menge.ENDLOOP.DELETE lt_zmmt041[] WHERE zdtszl >= lv_wlzs.IF lt_zmmt041[] IS INITIAL.g_wa_item_fre-zfrejhw = 'X'.RETURN.ENDIF."选择报价REFRESH:lt_sel,lt_lfa1,lt_zsdt0101.MOVE-CORRESPONDING lt_zmmt041[] TO lt_sel[].SELECT * FROM lfa1 INTO CORRESPONDING FIELDS OF TABLE lt_lfa1FOR ALL ENTRIES IN lt_selWHERE lifnr = lt_sel-zvendor.SELECT * FROM zsdt010 INTO CORRESPONDING FIELDS OF TABLE lt_zsdt0101.LOOP AT lt_sel INTO DATA(ls_sel)."供应商READ TABLE lt_lfa1 WITH KEY lifnr = ls_sel-zvendor.IF sy-subrc = 0.ls_sel-name2 = lt_lfa1-sortl.ENDIF."三级地址IF ls_sel-zarea IS NOT INITIAL.READ TABLE lt_zsdt0101 WITH KEY zarea = ls_sel-zarea.IF sy-subrc = 0.ls_sel-zarea_t = lt_zsdt0101-zarea_t.ENDIF.ENDIF.IF ls_sel-zcity IS NOT INITIAL.READ TABLE lt_zsdt0101 WITH KEY zcity = ls_sel-zcity zarea = ls_sel-zarea.IF sy-subrc = 0.ls_sel-zcity_t = lt_zsdt0101-zcity_t.ENDIF.ENDIF.IF ls_sel-zcountry IS NOT INITIAL.READ TABLE lt_zsdt0101 WITH KEY zcounty = ls_sel-zcountry  zcity = ls_sel-zcity zarea = ls_sel-zarea.IF sy-subrc = 0.ls_sel-zcountry_t = lt_zsdt0101-zcounty_t.ENDIF.ENDIF.MODIFY lt_sel FROM ls_sel.CLEAR:ls_sel.ENDLOOP.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = go_alv"方法生成的ALV容器对象CHANGINGt_table      = lt_sel[] )."alv展示的数据CATCH cx_salv_msg.ENDTRY.go_functions = go_alv->get_functions( ).go_functions->set_all( 'X' )."设置默认按键go_selections = go_alv->get_selections( ).go_selections->set_selection_mode( if_salv_c_selection_mode=>single )."设置选择模式go_display = go_alv->get_display_settings( ).go_display->set_fit_column_to_table_size( 'X' )."列自适应gr_columns = go_alv->get_columns( ).gr_columns->set_optimize( 'X' ).gr_column ?= gr_columns->get_column( 'ZBZ' )."需处理的列gr_column->set_long_text( '备注' ).gr_column->set_medium_text( '备注' ).gr_column->set_short_text( '备注' ).
*gr_column->set_output_length( 15 ).gr_column ?= gr_columns->get_column( 'NAME2' )."需处理的列gr_column->set_long_text( '分包方' ).gr_column->set_medium_text( '分包方' ).gr_column->set_short_text( '分包方' ).gr_column ?= gr_columns->get_column( 'NAME1' )."需处理的列gr_column->set_long_text( '送达方' ).gr_column->set_medium_text( '送达方' ).gr_column->set_short_text( '送达方' ).gr_column ?= gr_columns->get_column( 'ZAREA_T' )."需处理的列gr_column->set_long_text( '目的城市(省)' ).gr_column->set_medium_text( '目的城市(省)' ).gr_column->set_short_text( '省' ).gr_column ?= gr_columns->get_column( 'ZCITY_T' )."需处理的列gr_column->set_long_text( '目的城市(市)' ).gr_column->set_medium_text( '目的城市(市)' ).gr_column->set_short_text( '市' ).gr_column ?= gr_columns->get_column( 'ZCOUNTRY_T' )."需处理的列gr_column->set_long_text( '目的城市(县//镇)' ).gr_column->set_medium_text( '目的城市(县//镇)' ).gr_column->set_short_text( '县/区/镇' ).gr_column ?= gr_columns->get_column( 'ZDTSZL' )."需处理的列gr_column->set_long_text( '最低桶数/重量' ).gr_column->set_medium_text( '最低桶数/重量' ).gr_column->set_short_text( '最低桶数/重量' ).gr_column ?= gr_columns->get_column( 'ZDJ' )."需处理的列gr_column->set_long_text( '单价' ).gr_column->set_medium_text( '单价' ).gr_column->set_short_text( '单价' ).gr_column ?= gr_columns->get_column( 'ZAREA' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZCITY' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZCOUNTRY' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZFYLX' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZBJH' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZXMH' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZVENDOR' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZKUNNR' ).gr_column->set_visible( cl_salv_column_table=>false ).gr_column ?= gr_columns->get_column( 'ZSL' ).gr_column->set_visible( cl_salv_column_table=>false ).IF go_alv IS BOUND.go_alv->set_screen_popup(start_column = 10end_column  = 110start_line  = 5end_line    = 15 ).go_alv->display( ). "调用显示方法ENDIF.REFRESH:lt_rows.lt_rows = go_selections->get_selected_rows( ).IF lt_rows[] IS INITIAL.g_wa_item_fre-zfrejhw = 'X'.RETURN.ENDIF.LOOP AT lt_rows INTO ls_row.READ TABLE lt_sel INTO DATA(ls_zmmt041) INDEX ls_row.g_wa_item_fre-zfredj = ls_zmmt041-zdj.g_wa_item_fre-zfretax = ls_zmmt041-zsl.g_wa_item_fre-zfrejhw = ''.CLEAR:ls_row.ENDLOOP.
ENDMODULE.     

实现过程思路

  1. 因为屏幕这块做的比较多了,所以这次就想通过ALV实现,一开始使用的函数:REUSE_ALV_POPUP_TO_SELECT。使用这个函数遇到了1个问题:无法实现单选。一直没有找到解决方案,就放弃了。
  2. 采用SALV实现,系统提供了一个示例程序可以参考:SALV_TEST_TABLE_SELECTIONS
    使用这个方案也是需要解决几个问题:a.列的宽度自适应 b.隐藏列 c.实现单单选效果 d.修改列对应的描述 e.获取返回的数据
    问题a: 想通过下面这个方法实现
go_display = go_alv->get_display_settings( ).
go_display->set_fit_column_to_table_size( 'X' )."列自适应

但是调试一直不生效,没找到问题出在哪里。
后面通过另外一种方案实现:

gr_columns = go_alv->get_columns( ).
gr_columns->set_optimize( 'X' ).

成功达到了想要的效果。
问题b:
这里我想到了fieldcat,但是SALV的fieldcat是通过以下实现的

gr_column ?= gr_columns->get_column( 'ZAREA' ).
gr_column->set_visible( cl_salv_column_table=>false ).

问题c:

go_selections = go_alv->get_selections( ).
go_selections->set_selection_mode( if_salv_c_selection_mode=>single )."设置选择模式

这里有几种选择模式
在这里插入图片描述
问题d:

gr_columns = go_alv->get_columns( ).
gr_column ?= gr_columns->get_column( 'ZBZ' )."需处理的列
gr_column->set_long_text( '备注' ).
gr_column->set_medium_text( '备注' ).
gr_column->set_short_text( '备注' ).
*gr_column->set_output_length( 15 ).

gr_column下面有很多方法
在这里插入图片描述
这里面也有几个关于前导0的函数,我也是多次调试没有生效,截止到现在没有找到问题的原因,因为最近需求比较急,我就没花时间去深究。
问题e:
在display( )方法后面可以通过函数获取选择的行。

IF go_alv IS BOUND.go_alv->set_screen_popup(start_column = 10end_column  = 110start_line  = 5end_line    = 15 ).go_alv->display( ). "调用显示方法
ENDIF.REFRESH:lt_rows.
lt_rows = go_selections->get_selected_rows( ).LOOP AT lt_rows INTO ls_row.READ TABLE lt_sel INTO DATA(ls_zmmt041) INDEX ls_row.
ENDLOOP.

附加收获

下面是一段逻辑流,遇到的问题及解决方案:

  1. 编辑后保存不了——没有写FIELD
  2. 写了MODULE没有生效——需要计算的数据一定顺序一定在被计算的后面,比如下面的zfreje和zfrecefy是由zfredj和zfresl计算出来的,那么顺序上zfreje和zfrecefy要在上面
  3. 改了zfretype其他字段没有更新——因为zfretype的优先级最高,所以要放在最后,这样zfretype对应的MODULE才会覆盖前面的字段。
  LOOP AT g_it_item_fre.CHAIN.FIELD g_wa_item_fre-zno.FIELD g_wa_item_fre-zfreje.FIELD g_wa_item_fre-zfrecefy.FIELD g_wa_item_fre-zfredj MODULE js_zfreje ON REQUEST.FIELD g_wa_item_fre-zfresl MODULE js_zfreje ON REQUEST.FIELD g_wa_item_fre-zfretax.FIELD g_wa_item_fre-zfrejhw.FIELD g_wa_item_fre-zfretype MODULE sel_zfretype ON REQUEST.MODULE tab_item_fre_modify ON CHAIN-REQUEST.ENDCHAIN.FIELD g_wa_item_fre-boxMODULE tab_item_fre_mark ON REQUEST.ENDLOOP.
http://www.hkea.cn/news/902059/

相关文章:

  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐
  • 没有货源可以开网店吗网站更新seo
  • 淄博有做网站的吗百度搜索排名怎么收费
  • wordpress页面添加自定义字段木卢seo教程
  • 长寿网站制作保定seo排名外包
  • 域名和网站一样吗电商运营推广怎么做
  • css个人简介网站怎么做b2b网站免费推广平台
  • 网站建设中企动力上海百度广告投诉电话客服24小时
  • 深圳靠谱的电商公司正版搜索引擎优化
  • 自己如何做团购网站腾讯云建站
  • 怀化招标网站磁力狗bt
  • 佛山网站建设服务公司培训机构查询网
  • 海尔集团电商网站建设考证培训机构
  • 动漫制作专业的高职实训室福州整站优化
  • 织梦商城网站模板免费下载怎么在网上做推广
  • asp做网站用什么写脚本温岭网络推广
  • 怎么建设外贸网站免费发seo外链平台
  • 郴州是几线城市武汉网站seo推广公司
  • 网站开发工程师求职信焊工培训内容
  • 铜陵公司做网站中国网站排名100
  • 我要建一个网站泰州百度公司代理商
  • php响应式网站模板vi设计公司
  • 随身wifi网站设置广告投放是做什么的
  • 中企动力做网站的优势网络销售平台有哪些软件
  • 网站建设的费用如何查看百度搜索指数