请在oo alv显示和管理功能方面提供帮助

2020-09-18 23:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,专家们,我正在使用OO A...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,专家们,我正在使用OO ALV来显示数据并在输出之前进行一些操作。 我的问题是,当我创建一个变体时,我无法将其删除。 我认为有不同的视图,一个用于显示数据,另一个用于管理布局,但是当我单击"管理视图"按钮时,没有任何追加。 不使用容器,我的数据就可以成功显示(请参阅图像和代码)

创建对象g_grid
  出口
 " i_appl_events ='X'
  i_parent = cl_gui_container => default_screen"容器"
  例外情况
  error_cntl_create = 1
  error_cntl_init = 2
  error_cntl_link = 3
  error_dp_create = 4
  其他= 5。


但是当我添加一个容器时,显示的唯一部分是标题(请参见附件和以下代码)。

创建对象ALV_CONTAINER
  出口
  CONTAINER_NAME ='ALV_CONTAINER'。

  创建对象g_grid
  出口
  I_PARENT = ALV_CONTAINER。

要创建和选择布局,请使用Theres功能模块:

 *** --------------------------------------------  ---------------------- ***
 ***表格SUB_VARIANT_INIT ***
 *** ---------------------------------------------------  ------------------- ***
 ***显示默认变种***
 *** ---------------------------------------------------  ------------------- ***
 表格SUB_VARIANT_INIT。
 I_VARIANT1-REPORT = SY-REPID。
 *搜索报告的默认变体
  通话功能'REUSE_ALV_VARIANT_DEFAULT_GET'
  出口
  i_save ='X'
  改变
  cs_variant = i_variant1
  例外情况
  not_found = 2。
 *如果找到默认变体,则将其用作默认变体。
 *否则,使用变量LAYOUT1。
  如果sy-subrc = 0。
  p_var = i_variant1-variant。
  其他。
  p_var =''。
  万一。
 最终形式。  " SUB_VARIANT_INIT
 *** ---------------------------------------------------  ------------------- ***
 ***表格SUB_CHECK_PVAR ***
 *** ---------------------------------------------------  ------------------- ***
 ***用户输入变体后,检查其存在性***
 *** ---------------------------------------------------  ------------------- ***
 表格SUB_CHECK_PVAR。
 *如果变量名称不为空,请检查其是否存在
 如果不是p_var是初始的。
  清除i_variant。
  i_variant-report = sy-repid。
  i_variant-variant = p_var。
  通话功能" REUSE_ALV_VARIANT_EXISTENCE"
  出口
  I_SAVE ='X'
  改变
  CS_VARIANT = I_VARIANT。
 *如果未找到此类变体,则会显示错误消息
  如果sy-subrc ne 0。
  消息e398(00)带有"不存在此类变体"。
  其他。
 *如果存在变体,请使用变体名称填充结构
 * I_VARIANT1将用于导出参数:IS_VARIANT
 *在功能模块中:REUSE_ALV_GRID_DISPLAY
  清除i_variant1。
  将p_var移至i_variant1-variant。
  将sy-repid移至i_variant1-report。
  万一。
  其他。
  清除i_variant。
  万一。
 ENDFORM。  " SUB_CHECK_PVAR
 *** ---------------------------------------------------  ------------------- ***
 ***表格SUB_VARIANT_F4 ***
 *** ---------------------------------------------------  ------------------- ***
 ***当用户***显示报告的各种变体列表
 ***在变体字段中按F4键***
 *** ---------------------------------------------------  ------------------- ***
 表格SUB_VARIANT_F4。
 i_variant-report = sy-repid。
 *使用报告的名称,此功能模块将搜索变体列表并获取所选的变体
 *进入变量的参数字段
 通话功能'REUSE_ALV_VARIANT_F4'
  出口
  IS_VARIANT = I_VARIANT
  I_SAVE ='X'
  I_DISPLAY_VIA_GRID ='X'
  输入
  ES_VARIANT = I_VARIANT1
  例外情况
  NOT_FOUND = 1
  PROGRAM_ERROR = 2
  其他= 3。
  如果SY-SUBRC = 0。
  P_VAR = I_VARIANT1-VARIANT。
  万一。
 ENDFORM。  " SUB_VARIANT_F4
 FORM variant_delete。
  通话功能'REUSE_ALV_VARIANT_ALL_MAINTAIN'
  出口
  is_variant = I_VARIANT-REPORT
 * i_default = ld_i_default
 * i_user_specific = ld_i_user_specific
 * i_tabname_header = ld_i_tabname_header
 * i_tabname_item = ld_i_tabname_item
 * is_layout = ld_is_layout
 * it_default_fieldcat = ld_it_default_fieldcat
  例外情况
  FOREIGN_LOCK = 1
  PROGRAM_ERROR = 2
  。  " REUSE_ALV_VARIANT_ALL_MAINTAIN

  如果SY-SUBRC EQ 0。
  "一切都好
  ELSEIF SY-SUBRC EQ 1."异常
  "在此处添加例外代码
  ELSEIF SY-SUBRC EQ2。"异常
  "在此处添加例外代码
  万一。
 ENDFORM。
 

(5.1 kB)