ABAP ALV自定义F4搜索帮助

2023-11-05


前言

我们ALV选择自定义值的方法有下拉列表,搜索帮助等。

ALV单元格下拉列表:(历史博文)https://blog.csdn.net/JZYDDFZJ/article/details/129492159?spm=1001.2014.3001.5502

接下来本文是自定义ALV单元格F4搜索帮助,为了使文章更加清晰,参考了寒武青锋_ABAP-CSDN博客寒武青锋老师的博客,希望能帮助到大家

一、介绍

具体方法如下:

1.FIELDCAT--F4AVAILABL = ABAP_TRUE;

2.触发F4搜索帮助事件:CL_GUI_ALV_GRID的ONF4事件;
3.响应事件

DATA: gr_event_handler TYPE REF TO lcl_event_handler .
  CREATE OBJECT gr_event_handler.

  DATA:lt_f4 TYPE lvc_t_f4,
       ls_f4 TYPE lvc_s_f4.

  ls_f4-fieldname = 'F4HELP'.   "需要定义F4帮助的字段
  ls_f4-register   = 'X'.
  ls_f4-getbefore  = 'X'.
  ls_f4-chngeafter = 'X'.
  INSERT ls_f4 INTO TABLE lt_f4.

  SET HANDLER gr_event_handler->handle_onf4 FOR go_grid.
  CALL METHOD go_grid->register_f4_for_fields
    EXPORTING
      it_f4 = lt_f4.

4.最后F4的PERFORM调用函数 F4IF_INT_TABLE_VALUE_REQUEST 生成搜索帮助,最后代码是ALV的写入与刷新。

二、实现步骤

1.代码展示

代码如下(示例):

*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP ALV自定义F4搜索帮助
*& 创 建 者:爱吃鱼香肉丝的abaper
*& 创建日期:2023/08/09
*&---------------------------------------------------------------------*
*& 版本     修改者(公司)     日期         修改描述
*& 1.0.0    XXXX           YYYYMMDD      创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.

*&---------------------------------------------------------------------*
* TYPES
*&---------------------------------------------------------------------*
TABLES:sflight.
TYPES:
  BEGIN OF ty_alv,
    carrid     TYPE sflight-carrid,     " 航线代码
    fldate     TYPE sflight-fldate,     " 航班日期
    price      TYPE sflight-price,      " 航空运费
    planetype  TYPE sflight-planetype,  " 飞机类型
    paymentsum TYPE sflight-paymentsum, " 当前预定总数
    f4help     TYPE auart,              " 搜索帮助(销售凭证类型)
  END OF ty_alv,
  tt_alv TYPE STANDARD TABLE OF ty_alv.
*&---------------------------------------------------------------------*
* CONSTANTS
*&---------------------------------------------------------------------*
CONSTANTS:
  BEGIN OF c_ucomm,
    action01 TYPE sy-ucomm VALUE '&ZALL',text01 TYPE text VALUE '全选    ',
    action02 TYPE sy-ucomm VALUE '&ZSAL',text02 TYPE text VALUE '取消全选',
  END OF c_ucomm,
  BEGIN OF c_fcat,
    name01 TYPE fieldname VALUE 'CARRID     ',text01 TYPE fieldtext VALUE '航线代码',
    name02 TYPE fieldname VALUE 'FLDATE     ',text02 TYPE fieldtext VALUE '航班日期',
    name03 TYPE fieldname VALUE 'PRICE      ',text03 TYPE fieldtext VALUE '航空运费',
    name04 TYPE fieldname VALUE 'PLANETYPE  ',text04 TYPE fieldtext VALUE '飞机类型',
    name05 TYPE fieldname VALUE 'PAYMENTSUM ',text05 TYPE fieldtext VALUE '当前预定总数',
    name06 TYPE fieldname VALUE 'F4HELP     ',text06 TYPE fieldtext VALUE '搜索帮助(销售凭证类型)',
  END OF c_fcat.
*&---------------------------------------------------------------------*
* DEFIEN ALV
*&---------------------------------------------------------------------*
DATA:go_container TYPE REF TO cl_gui_docking_container,
     go_grid      TYPE REF TO cl_gui_alv_grid,
     gt_exclude   TYPE ui_functions,
     gt_fieldcat  TYPE lvc_t_fcat,
     gs_layout    TYPE lvc_s_layo,
     gs_variant   TYPE disvariant,
     gv_save,
     ok_code      TYPE sy-ucomm,
     save_code    TYPE sy-ucomm.
*&---------------------------------------------------------------------*
* GLOBAL INTERNAL TABLES
*&---------------------------------------------------------------------*
DATA:
  gt_out TYPE tt_alv.
*&---------------------------------------------------------------------*
* GLOBAL MACROS
*&---------------------------------------------------------------------*
DEFINE macro_fcat.
  ls_fieldcat-fieldname  = &1.
  ls_fieldcat-reptext    = &2.
  APPEND ls_fieldcat TO ct_fieldcat.
  CLEAR ls_fieldcat.
END-OF-DEFINITION.
*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS:
*-----F4
      handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid
        IMPORTING e_fieldname es_row_no er_event_data.
ENDCLASS.
*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_HANDLER IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
*--F4
  METHOD handle_onf4.
    PERFORM frm_onf4_help USING e_fieldname es_row_no er_event_data .
  ENDMETHOD.
ENDCLASS.
*&---------------------------------------------------------------------*
* SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
  s_carrid FOR sflight-carrid.
SELECTION-SCREEN END OF BLOCK b01.
*&----------------------------------------------------------------------
*& INITIALIZATION.
*&----------------------------------------------------------------------
INITIALIZATION.
* 初始化
  PERFORM frm_initial_data.
*&----------------------------------------------------------------------
*& AT SELECTION-SCREEN OUTPUT
*&----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.
*&----------------------------------------------------------------------
*& AT SELECTION-SCREEN
*&----------------------------------------------------------------------
AT SELECTION-SCREEN.
*&----------------------------------------------------------------------
*& START-OF-SELECTION
*&----------------------------------------------------------------------
START-OF-SELECTION.
* 数据处理
  PERFORM frm_get_data.
  PERFORM frm_show_alv.
*&---------------------------------------------------------------------*
*& Form FRM_INITIAL_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_initial_data .
  CLEAR gt_out.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .

  SELECT
    carrid,
    fldate,
    price,
    planetype,
    paymentsum
    FROM sflight
    WHERE carrid IN @s_carrid
    INTO CORRESPONDING FIELDS OF TABLE @gt_out
    UP TO 20 ROWS.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SHOW_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_show_alv .

  CALL SCREEN 9000.

ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9000 OUTPUT.

  DATA:lv_title TYPE string.
  CLEAR lv_title.

  lv_title = 'ABAP ALV自定义F4搜索帮助'.

  SET PF-STATUS '9000'.               " 定义gui状态
  SET TITLEBAR '9000'  WITH lv_title. " 定义gui标题

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module ALV_DES OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE alv_des OUTPUT.

  DATA:lt_sort TYPE lvc_t_sort.

  IF go_grid IS INITIAL .
    CREATE OBJECT go_container
      EXPORTING
        repid     = sy-repid
        dynnr     = '9000'
        extension = 2050
        side      = cl_gui_docking_container=>property_floating.
    CREATE OBJECT go_grid
      EXPORTING
        i_parent = go_container.

*   获取字段目录
    PERFORM prepare_field_catalog CHANGING gt_fieldcat .

*   获取样式
    PERFORM prepare_layout CHANGING gs_layout .

*   取消没用的按钮
    PERFORM exclude_tb_functions CHANGING gt_exclude.

*   响应事件
    PERFORM eventload.

*   锚定ALV变式标记
    CLEAR gs_variant.
    gs_variant = sy-repid.
    gv_save = 'A'.
    gs_variant-report = |{ sy-repid }{ sy-dynnr }|.

*-----显示ALV-------------------------------------------
    PERFORM frm_alv_display USING gt_out.
  ELSE .
*----------------------------刷新ALV----------------------
    " 刷新ALV
    PERFORM frm_refresh_alv.
  ENDIF .
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Form  PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PS_LAYOUT  text
*----------------------------------------------------------------------*
FORM prepare_layout
  CHANGING ps_layout TYPE lvc_s_layo.
  ps_layout-cwidth_opt      = 'X'.               " 优化行宽度
  ps_layout-zebra           = 'X'.               " 斑马纹
  ps_layout-sel_mode        = 'D'.               " 选择方式
  ps_layout-box_fname       = 'SEL'.             " 指定行选择字段

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_ALV_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GT_OUT
*&---------------------------------------------------------------------*
FORM frm_alv_display
  USING pt_table.

  CALL METHOD go_grid->set_table_for_first_display
    EXPORTING
      is_layout            = gs_layout
      it_toolbar_excluding = gt_exclude
      is_variant           = gs_variant
      i_save               = gv_save
    CHANGING
      it_outtab            = pt_table
      it_fieldcatalog      = gt_fieldcat.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_REFRESH_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_refresh_alv .

  DATA:ls_stable TYPE lvc_s_stbl.
  "刷新ALV
  ls_stable-row = 'X'.
  ls_stable-col = 'X'.
  CALL METHOD go_grid->refresh_table_display
    EXPORTING
      is_stable = ls_stable.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
  save_code = ok_code.
  CLEAR ok_code.
  CASE save_code.
*   定义返回按钮
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT' OR 'EXIT2'.
      LEAVE PROGRAM.
    WHEN 'SAVE'.
    WHEN OTHERS.
      CALL METHOD go_grid->set_function_code
        CHANGING
          c_ucomm = save_code.
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      <-- GT_FIELDCAT
*&---------------------------------------------------------------------*
FORM prepare_field_catalog
  CHANGING ct_fieldcat TYPE lvc_t_fcat.
  DATA:
    ls_fieldcat TYPE lvc_s_fcat.
  macro_fcat:
    c_fcat-name01 c_fcat-text01,
    c_fcat-name02 c_fcat-text02,
    c_fcat-name03 c_fcat-text03,
    c_fcat-name04 c_fcat-text04,
    c_fcat-name05 c_fcat-text05,
    c_fcat-name06 c_fcat-text06.

  LOOP AT ct_fieldcat ASSIGNING FIELD-SYMBOL(<fs_fieldcat>)
                                       WHERE fieldname = 'F4HELP'.
    <fs_fieldcat>-f4availabl = abap_true." F4 help
    <fs_fieldcat>-edit       = abap_true." 可编辑
  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_BUTTEN_CLICK
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> ES_COL_ID
*&      --> ES_ROW_NO
*&---------------------------------------------------------------------*
FORM frm_onf4_help
  USING pv_fieldname                                  " ALV列字段名称
        ps_row_no     TYPE lvc_s_roid                 " 行号
        pr_event_data TYPE REF TO cl_alv_event_data .
  DATA:lt_ddshretval TYPE TABLE OF ddshretval.

  SELECT
    auart AS f4help, " 字段一定要和ALV展示数据的字段一致 否则会错乱
    bezei
    FROM tvakt
    WHERE spras = '1'
    INTO TABLE @DATA(lt_auart).

  CASE pv_fieldname.
    WHEN 'F4HELP'.

      READ TABLE gt_out INTO DATA(ls_out) INDEX ps_row_no-row_id.

      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield         = 'F4HELP'           " ALV-F4字段
          dynpprog         = sy-repid           " 当前程序
          dynpnr           = sy-dynnr           " 当前屏幕
          value_org        = 'S'                " 默认为C但是此处不用S不行
          callback_program = sy-repid
        TABLES
          value_tab        = lt_auart           " F4帮助值的表
          return_tab       = lt_ddshretval
        EXCEPTIONS
          parameter_error  = 1
          no_values_found  = 2
          OTHERS           = 3.
      IF sy-subrc = 0.
*       将选的值填入ALV字段中
        READ TABLE gt_out INTO ls_out INDEX ps_row_no-row_id.
        IF sy-subrc = 0.
          READ TABLE lt_ddshretval INTO DATA(ls_ddshretval) INDEX 1.
          IF ls_ddshretval-fieldval IS NOT INITIAL.
            ls_out-f4help = ls_ddshretval-fieldval.
          ENDIF.
          MODIFY gt_out FROM ls_out INDEX ps_row_no-row_id TRANSPORTING f4help.
        ENDIF.
      ENDIF.

    WHEN OTHERS.
  ENDCASE.
* "X表示事件已经处理,不会去调取系统标准搜索帮助,(不填写参考字段参考表,也可以忽略这个标识)
  pr_event_data->m_event_handled = 'X'.
* ALV刷新
  PERFORM frm_refresh_alv.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form EVENTLOAD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM eventload .

* 事件响应
  DATA: gr_event_handler TYPE REF TO lcl_event_handler .
  CREATE OBJECT gr_event_handler.

  DATA:lt_f4 TYPE lvc_t_f4,
       ls_f4 TYPE lvc_s_f4.

* 设置事件-回车
  CALL METHOD go_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.

  " 单元格失去焦点触发
  CALL METHOD go_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_modified
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.

  ls_f4-fieldname = 'F4HELP'.   "需要定义F4帮助按钮的字段
  ls_f4-register   = 'X'.
  ls_f4-getbefore  = 'X'.
  ls_f4-chngeafter = 'X'.
  INSERT ls_f4 INTO TABLE lt_f4.

  SET HANDLER gr_event_handler->handle_onf4 FOR go_grid.
  CALL METHOD go_grid->register_f4_for_fields
    EXPORTING
      it_f4 = lt_f4.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      <-- GT_EXCLUDE
*&---------------------------------------------------------------------*
FORM exclude_tb_functions
  CHANGING pt_exclude TYPE ui_functions .

  DATA ls_exclude TYPE ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row .
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo .
  APPEND ls_exclude TO pt_exclude.

ENDFORM.

2.效果如下

效果展示:


 双击,数据填充,刷新ALV

总结

希望能帮助需要的人!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABAP ALV自定义F4搜索帮助 的相关文章

随机推荐

  • C++中GB2312字符串和UTF-8之间的转换

    在编程过程中需要对字符串进行不同的转换 特别是Gb2312和Utf 8直接的转换 在几个开源的魔兽私服中 很多都是老外开发的 而暴雪为了能 够兼容世界上的各个字符集也使用了UTF 8 在中国使用VS VS2005以上版本 开发基本都是使用G
  • MyBatis 配置多数据源

  • 解决FTP client 上传文件失败

    遇到的问题 在测试环境可以正常上传pdf 到了预发布环境虽然登陆成功了 但是上传的文件都是0KB 后来发现原来是运维添加了安全策略 需要在代码里添加以下方法 FTPClient enterLocalPassiveMode 调用FTPClie
  • 更换数据集

    以yolov5 deepsort的行人检测项目说一下怎么更换数据集 最终目标是要生成四个文件夹 一开始只有两个文件夹 1 标注文件 在终端输入lableme即可打开 尝试一下多分类 又是人 又是女人 如果win的lable导出的文件是xml
  • 安装SAPTrex

    1 下载安装包2 安装过程3 启动Admin工具C usr sap T02 TRX02TREXAdmin bat4 保存后 SM59会有一个新的T连接生成5 进去tcode SRMO 转载于 https blog 51cto com jen
  • android adb install apk的安装流程

    目录 一 PackageManagerService启动流程 二 apk adb安装流程 一 简介 1 Android上应用安装可以分为以下几种方式 通过adb命令安装 adb 命令包括adb push install 用户下载的Apk 通
  • 后端代码审计——PHP函数及PHP危险函数

    文章目录 PHP函数 1 自定义函数 1 1 函数语言结构 1 2 函数传参 1 3 函数调用 1 3 1 函数调用过程 1 4 变量范围 1 4 1 局部变量 1 4 2 全局变量 1 5 参数传递 1 5 1 按值传参 1 5 2 默认
  • 【程序员的财富自由之路】停更说明...

    停更原因 一个月前我发表了 程序员的财富自由之路 开篇序这篇文章 承蒙CSDN博客编辑的厚爱 将该专栏推荐到了专栏首页显示 因此带来了很多网友的关注 写那篇文章的时候 我信心满满 但惭愧的是 一个多月过去了 我仍然没有更新过专栏文章 让很多
  • 央行数字货币开始崛起:DC/EP正在领跑全球

    2020年8月24日 国际清算银行 以下简称BIS 发表题为 央行数字货币崛起 驱动因素 方法和技术 的工作报告 报告认为 央行数字货币 以下简称CBDC 将极大改变人类未来的支付以及生活方式 在全球诸多经济体中 中国人民银行的数字货币DC
  • golang exec 标准错误输出有 error 但是 err 是 nil

    golang 的 exec 模块 有可能标准错误输出会有类似 ERROR Incorrect date and time argument 2021 11 16 13 52 10 0000 UTC 但是 err 确是 nil package
  • \r \n 和strcat 笔记

    r 回车 ASCII码13 r gt return n 换行 ASCII码10 n gt newline 在Windows中 r 回车 回到当前行的行首 而不会换到下一行 n 换行 换到当前位置的下一行 而不会回到行首 描述 C 库函数 c
  • 详解如何使用AWS完善架构框架改造云上架构

    对于大部分项目来说 上云后的重构才刚开始 因为很多企业在上云之初 只是简单的把从前在物理服务器上的业务放到云上 并没有针对云环境做优化 没有充分到利用云服务的优势 上云之后 你需要重构业务架构 以提升企业的IT能力 比如通过架构优化让你的业
  • python爬虫学习(十二)xpath解析爬取58二手房

    xpath解析 最常用且便捷高效的解析方式 通用性 1 实例化一个etree的对象 且需要将被解析的页面源码数据加载到该对象中 2 调用etree对象中的xpath方法结合这xpath表示式实现标签的定位和内容的捕获 环境的安装 1 pip
  • 计算机网络常见题目

    题目地址 https www nowcoder com exam interview TCP和UDP的区别 回答要有条理 记起来好记 是什么 TCP是传输控制协议 UDP是用户数据报协议 它们都是属于传输层的协议 为应用层提供服务 而且他们
  • SSM - Springboot - MyBatis-Plus 全栈体系(八)

    第二章 SpringFramework 四 SpringIoC 实践和应用 4 基于 配置类 方式管理 Bean 4 4 实验三 高级特性 Bean 注解细节 4 4 1 Bean 生成 BeanName 问题 Bean 注解源码 publ
  • vue脚手架项目搭建以及常见命令

    1 安装vue2脚手架 1 在cmd命令行中输入脚手架安装命令 2 全局安装vue脚手架 npm install g vue cli 或者指定版本 npm i vue cli 5 0 4 g 3 安装以后 输入 vue V 出现相应的版本号
  • 7-2 两个有序链表序列的交集(编程题)

    已知两个非降序链表序列S1与S2 设计函数构造出S1与S2的交集新链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔 输出格式 在一行中输出两个输入序列的交集
  • Python很好,但招聘不需要?

    前言 可能主要原因在于 人人都认为python简单 所以很少人专注于Python所实现的业务场景 多数人仅仅停留在会用的层面 再加上对于很多大公司而言 是不会轻易改变公司使用多年的编程语言的 这会涉及到很大的成本 多年积累的代码和培养的人才
  • ubuntu系统安装hadoop

    Hadoop 分布式计算平台 核心是分布式文件系统HDFS ubantu下 安装jdk wget https repo huaweicloud com openjdk 18 0 1 1 openjdk 18 0 1 1 linux aarc
  • ABAP ALV自定义F4搜索帮助

    文章目录 前言 一 介绍 二 实现步骤 1 代码展示 2 效果如下 总结 前言 我们ALV选择自定义值的方法有下拉列表 搜索帮助等 ALV单元格下拉列表 历史博文 https blog csdn net JZYDDFZJ article d