1、需新建屏幕1001 并画container:'CONT1'
2、需新建屏幕1002 并画container:'CONT2'
3、定义屏幕1001、1002的ok_code和逻辑流
4、定义工具栏

程序代码:

  1. TABLES t001w.
  2. TYPES:BEGIN OF typ_t001w ,
  3. werks  TYPE t001w-werks,
  4. name1  TYPE t001w-name1,
  5. werks2 TYPE t001w-werks,
  6. rowcolor  TYPE char10,
  7. zcheckbox TYPE c,       "LAYOUT-CHECBOX   =  'ZCHECKBOX'.
  8. *  zflag     TYPE c,      "LAYOUT-BOX_FNAME = 'ZFLAG'.
  9. zicon     TYPE char10, "LAYOUT-ICON      = 'ZICON'  图标需要显示的
  10. END OF typ_t001w.
  11. TYPES:BEGIN OF typ_smf ,
  12. werks  TYPE t001w-werks,
  13. name1  TYPE t001w-name1,
  14. END OF typ_smf.
  15. DATA:i_t001w  TYPE TABLE OF typ_t001w,"""""第一次ALV内表
  16. i_detail TYPE TABLE OF typ_smf, """""单击ALV内表列ZICON显示的明细ALV内表
  17. i_smf    TYPE TABLE OF typ_smf.""""SF内表
  18. DATA:fieldcat TYPE lvc_t_fcat,
  19. grid TYPE REF TO cl_gui_alv_grid,  "alv控件名
  20. grid2 TYPE REF TO cl_gui_alv_grid,  "alv控件名
  21. g_container TYPE scrfname VALUE 'CONT1',"重新定义本地容器对象名
  22. g_container2 TYPE scrfname VALUE 'CONT2',"重新定义本地容器对象名
  23. is_layout TYPE lvc_s_layo,
  24. ps_layout TYPE lvc_s_layo,
  25. g_custom_container TYPE REF TO cl_gui_custom_container,
  26. g_custom_container2 TYPE REF TO cl_gui_custom_container.
  27. DATA: ui_functions TYPE ui_functions. "隐藏按钮的内表
  28. *********ALV上事件捕捉类
  29. DATA:gs_toolbar TYPE stb_button.             "按钮
  30. CLASS alv_event_receiver DEFINITION DEFERRED. "声明类对象
  31. *----------------------------------------------------------------------*
  32. *       CLASS alv_event_receiver DEFINITION
  33. *----------------------------------------------------------------------*
  34. *
  35. *----------------------------------------------------------------------*
  36. CLASS alv_event_receiver DEFINITION.                  "声明类成员可见性
  37. PUBLIC SECTION.                                      "定义相关类成员可以被程序中的所有对象调用
  38. CLASS-METHODS:                                     "静态方法
  39. handle_toolbar                                   "初始化工具栏对象事件,如增加按钮并设定其属性
  40. FOR EVENT toolbar OF cl_gui_alv_grid
  41. IMPORTING e_object e_interactive,
  42. handle_menu_button                              "用于在下拉菜单中增加选项
  43. FOR EVENT menu_button OF cl_gui_alv_grid
  44. IMPORTING e_object e_ucomm,
  45. handle_user_command                             "工具栏中的按钮的单击事件
  46. FOR EVENT user_command OF cl_gui_alv_grid
  47. IMPORTING e_ucomm,
  48. handle_hotspot_click
  49. FOR EVENT hotspot_click OF cl_gui_alv_grid    "屏幕中的单击事件,可以具体到某行某列,需要设置热点
  50. IMPORTING  e_row_id e_column_id es_row_no,
  51. handle_double_click
  52. FOR EVENT double_click OF cl_gui_alv_grid     "屏幕中的双击事件,可以具体到某行某列,即使设置热点也必须双击
  53. IMPORTING e_row e_column es_row_no.
  54. ENDCLASS.                    "alv_event_receiver DEFINITION
  55. *&---------------------------------------------------------------------*
  56. *&       Class (Implementation)  alv_event_receiver
  57. *&---------------------------------------------------------------------*
  58. *        Text
  59. *----------------------------------------------------------------------*
  60. CLASS alv_event_receiver IMPLEMENTATION.  "实现类方法
  61. METHOD handle_toolbar.
  62. gs_toolbar-function =  'B_SUM'.       "为按钮分配功能码
  63. gs_toolbar-icon     =  icon_display.  "为按钮分配图标
  64. gs_toolbar-text     =  '总行数'.      "为按钮分配文本
  65. gs_toolbar-butn_type = '0'.           "定义按钮类型,不填时默认为0
  66. APPEND gs_toolbar TO e_object->mt_toolbar. "添加按钮到工具栏
  67. gs_toolbar-function =  'B_PRINT'.       "为按钮分配功能码
  68. gs_toolbar-icon     =  icon_import.  "为按钮分配图标
  69. gs_toolbar-text     =  '转储订单打印'.      "为按钮分配文本
  70. gs_toolbar-checked  = 'X'.
  71. gs_toolbar-butn_type = '0'.           "定义按钮类型,不填时默认为0
  72. APPEND gs_toolbar TO e_object->mt_toolbar. "添加按钮到工具栏
  73. gs_toolbar-function =  'B_LIST'.      "为按钮分配功能码
  74. gs_toolbar-quickinfo = '自定义下拉菜单'.
  75. gs_toolbar-icon     =  icon_biw_report_view.  "为按钮分配图标
  76. gs_toolbar-text     =  '下拉菜单'.      "为按钮分配文本
  77. gs_toolbar-butn_type = '1'.           "定义按钮类型
  78. APPEND gs_toolbar TO e_object->mt_toolbar. "添加按钮到工具栏
  79. gs_toolbar-function =  'B_EDIT'.       "为按钮分配功能码
  80. gs_toolbar-icon     =  icon_change.  "为按钮分配图标
  81. gs_toolbar-text     =  '切换编辑状态'.      "为按钮分配文本
  82. gs_toolbar-checked  = 'X'.
  83. gs_toolbar-butn_type = '0'.           "定义按钮类型,不填时默认为0
  84. APPEND gs_toolbar TO e_object->mt_toolbar. "添加按钮到工具栏
  85. ENDMETHOD.                    "handle_toolbar
  86. METHOD handle_menu_button.
  87. IF e_ucomm = 'B_LIST'.
  88. CALL METHOD e_object->add_function
  89. EXPORTING
  90. icon  = icon_display
  91. fcode = 'B_SUM'
  92. text  = '显示ALV总数'.
  93. ENDIF.
  94. ENDMETHOD.                    "handle_menu_button
  95. METHOD handle_user_command.
  96. DATA sum TYPE i.
  97. DATA text TYPE string.
  98. DATA: lwa_t001w LIKE LINE OF i_t001w.
  99. DATA: lwa_smf   LIKE LINE OF i_smf.
  100. CASE e_ucomm.
  101. WHEN  'B_SUM'.
  102. DESCRIBE TABLE i_t001w[] LINES sum.
  103. text = sum.
  104. CONCATENATE  '当前表格中数据的总行数:' text  INTO text.
  105. MESSAGE  text  TYPE 'I'. "为何消息类型为 E 时运行时显示A类型,异常终止到初始界面
  106. WHEN 'B_PRINT'.
  107. LOOP AT i_t001w  INTO lwa_t001w WHERE  zcheckbox = 'X'.
  108. lwa_smf-werks = lwa_t001w-werks.
  109. lwa_smf-name1 = lwa_t001w-name1.
  110. APPEND  lwa_smf TO i_smf.
  111. CLEAR :lwa_t001w,lwa_smf.
  112. ENDLOOP.
  113. IF i_smf[] IS INITIAL.
  114. MESSAGE '请至少选择一行数据区打印!' TYPE 'E'. "E类型消息会转化为A类型,很蛋疼,求破!
  115. ELSE.
  116. PERFORM frm_print_data.  "这个没具体写。
  117. ENDIF.
  118. WHEN 'B_EDIT'.
  119. IF grid->is_ready_for_input( ) EQ 0.
  120. CALL METHOD grid->set_ready_for_input
  121. EXPORTING
  122. i_ready_for_input = 1.
  123. ELSE.
  124. CALL METHOD grid->set_ready_for_input
  125. EXPORTING
  126. i_ready_for_input = 0.
  127. ENDIF.
  128. WHEN OTHERS.
  129. ENDCASE.
  130. ENDMETHOD.                    "handle_user_command
  131. "ALV内表展示处单击事件捕捉,需要设置热点对单击列字段
  132. METHOD handle_hotspot_click.
  133. DATA:lwa_t001w LIKE LINE OF  i_t001w.
  134. READ TABLE i_t001w INTO lwa_t001w INDEX es_row_no-row_id. "判断行号
  135. CASE e_column_id-fieldname . "判断列名
  136. WHEN 'NAME1'.
  137. CALL TRANSACTION 'ME51N' AND SKIP FIRST SCREEN. "随便写的
  138. WHEN 'ZICON'.         "
  139. SELECT werks
  140. name1
  141. INTO TABLE i_detail
  142. FROM t001w
  143. WHERE werks = lwa_t001w-werks2.
  144. CLEAR lwa_t001w.
  145. IF sy-subrc NE 0.
  146. MESSAGE  'No result finding!' TYPE 'I'.
  147. ELSE.
  148. CALL SCREEN 1002.
  149. ENDIF.
  150. WHEN OTHERS.
  151. ENDCASE.
  152. *    MESSAGE i001(00) WITH '当前行:' es_row_no-row_id ',航线代码:' ls_lt001w-werks.
  153. ENDMETHOD.                    "handle_hotspot_click
  154. "ALV内表展示处双击击事件捕捉,如果设置热点双击不起作用
  155. METHOD handle_double_click.
  156. DATA:lwa_t001w LIKE LINE OF i_t001w.
  157. READ TABLE i_t001w INTO lwa_t001w INDEX es_row_no-row_id.
  158. IF e_column-fieldname = 'WERKS'.
  159. SET PARAMETER ID 'AUN' FIELD lwa_t001w-werks.
  160. CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
  161. ENDIF.
  162. ENDMETHOD.                    "handle_double_click
  163. ENDCLASS.               "alv_event_receiver
  164. START-OF-SELECTION.
  165. CALL SCREEN 1001.
  166. *&---------------------------------------------------------------------*
  167. *&      Module  STATUS_1001  OUTPUT
  168. *&---------------------------------------------------------------------*
  169. *       text
  170. *----------------------------------------------------------------------*
  171. MODULE status_1001 OUTPUT.
  172. SET PF-STATUS 'T001'.
  173. *  SET TITLEBAR 'xxx'.
  174. ENDMODULE.                 " STATUS_1001  OUTPUT
  175. *&---------------------------------------------------------------------*
  176. *&      Module  USER_COMMAND_1001  INPUT
  177. *&---------------------------------------------------------------------*
  178. *       text
  179. *----------------------------------------------------------------------*
  180. MODULE user_command_1001 INPUT.
  181. FIELD-SYMBOLS <field> TYPE typ_t001w .
  182. DATA: i TYPE i VALUE 0.
  183. DATA ok_code TYPE sy-ucomm.
  184. ok_code = sy-ucomm.
  185. CLEAR sy-ucomm.
  186. CASE ok_code.
  187. WHEN 'BACK'.
  188. LEAVE TO SCREEN 0.
  189. WHEN 'EDIT'.
  190. IF grid->is_ready_for_input( ) EQ 0.
  191. CALL METHOD grid->set_ready_for_input
  192. EXPORTING
  193. i_ready_for_input = 1.
  194. ELSE.
  195. CALL METHOD grid->set_ready_for_input
  196. EXPORTING
  197. i_ready_for_input = 0.
  198. ENDIF.
  199. WHEN 'EXECU'.
  200. SELECT * FROM t001w
  201. INTO CORRESPONDING FIELDS OF TABLE i_t001w.
  202. LOOP AT  i_t001w  ASSIGNING <field>  .
  203. <field>-werks2 = <field>-werks.
  204. <field>-zicon  = '@16@'.  "图标
  205. ENDLOOP.
  206. IF g_custom_container IS INITIAL.
  207. PERFORM exclude_tb_functions CHANGING ui_functions. "隐藏某些按钮
  208. PERFORM frm_layout_set.
  209. PERFORM frm_fieldcat_set.
  210. PERFORM alv_show.
  211. ELSE.
  212. CALL METHOD grid->refresh_table_display. "刷新
  213. ENDIF.
  214. WHEN OTHERS.
  215. ENDCASE.
  216. ENDMODULE.                 " USER_COMMAND_1001  INPUT
  217. *&---------------------------------------------------------------------*
  218. *&      Form  ALV_SHOW
  219. *&---------------------------------------------------------------------*
  220. *       text
  221. *----------------------------------------------------------------------*
  222. *  -->  p1        text
  223. *  <--  p2        text
  224. *----------------------------------------------------------------------*
  225. FORM alv_show .
  226. CREATE OBJECT g_custom_container                        "创建容器对象
  227. EXPORTING container_name = g_container.
  228. CREATE OBJECT grid                                      "创建ALV对象
  229. EXPORTING i_parent = g_custom_container.
  230. CALL METHOD grid->register_edit_event                   "可编辑回传方法
  231. EXPORTING
  232. i_event_id = grid->mc_evt_modified.
  233. CALL METHOD grid->set_table_for_first_display
  234. EXPORTING
  235. *     I_BUFFER_ACTIVE      =
  236. *     I_BYPASSING_BUFFER   =
  237. *     I_CONSISTENCY_CHECK  =
  238. *     I_STRUCTURE_NAME     = 'T001W'
  239. *     IS_VARIANT           =
  240. i_save               = 'X'
  241. *     I_DEFAULT            = 'X'
  242. is_layout            = is_layout
  243. *     IS_PRINT             =
  244. *     IT_SPECIAL_GROUPS    =
  245. it_toolbar_excluding = ui_functions[]
  246. *     IT_HYPERLINK         =
  247. *     IT_ALV_GRAPHICS      =
  248. *     IT_EXCEPT_QINFO      =
  249. *     IR_SALV_ADAPTER      =
  250. CHANGING
  251. it_outtab            = i_t001w[]
  252. it_fieldcatalog      = fieldcat[].
  253. *           IT_SORT                       =
  254. *           IT_FILTER                     =
  255. *         EXCEPTIONS
  256. *           INVALID_PARAMETER_COMBINATION = 1
  257. *           PROGRAM_ERROR                 = 2
  258. *           TOO_MANY_LINES                = 3
  259. *           others                        = 4
  260. .
  261. ******注册ALV中引用的事件
  262. SET HANDLER alv_event_receiver=>handle_toolbar
  263. alv_event_receiver=>handle_menu_button
  264. alv_event_receiver=>handle_user_command
  265. alv_event_receiver=>handle_hotspot_click
  266. alv_event_receiver=>handle_double_click
  267. FOR ALL INSTANCES.
  268. ****调用方法激活自定义工具对象
  269. CALL METHOD grid->set_toolbar_interactive.
  270. ENDFORM.                    " ALV_SHOW
  271. *&---------------------------------------------------------------------*
  272. *&      Form  exclude_tb_functions
  273. *&---------------------------------------------------------------------*
  274. *       text
  275. *----------------------------------------------------------------------*
  276. *      -->PT_EXCLUDE text
  277. *----------------------------------------------------------------------*
  278. FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions .
  279. DATA ls_exclude TYPE ui_func.
  280. ls_exclude = cl_gui_alv_grid=>mc_fc_filter . "过滤器
  281. APPEND ls_exclude TO pt_exclude.
  282. ls_exclude = cl_gui_alv_grid=>mc_fc_current_variant . "布局更改
  283. APPEND ls_exclude TO pt_exclude.
  284. ls_exclude = cl_gui_alv_grid=>mc_fc_average ."平均值
  285. APPEND ls_exclude TO pt_exclude.
  286. ls_exclude = cl_gui_alv_grid=>mc_mb_sum ."求和
  287. APPEND ls_exclude TO pt_exclude.
  288. ls_exclude = cl_gui_alv_grid=>mc_mb_export .   "导出
  289. APPEND ls_exclude TO pt_exclude.
  290. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut .        "剪切
  291. APPEND ls_exclude TO pt_exclude.
  292. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row . "删除行
  293. APPEND ls_exclude TO pt_exclude.
  294. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row . "插入行
  295. APPEND ls_exclude TO pt_exclude.
  296. ls_exclude = cl_gui_alv_grid=>mc_fc_refresh .  "刷新
  297. APPEND ls_exclude TO pt_exclude.
  298. ls_exclude = cl_gui_alv_grid=>mc_fc_find ."查找
  299. APPEND ls_exclude TO pt_exclude.
  300. ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc .  "升序排列
  301. APPEND ls_exclude TO pt_exclude.
  302. ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc .  "降序排列
  303. APPEND ls_exclude TO pt_exclude.
  304. ls_exclude = cl_gui_alv_grid=>mc_fc_views .   "视图
  305. APPEND ls_exclude TO pt_exclude.
  306. ls_exclude = cl_gui_alv_grid=>mc_fc_print ."打印
  307. APPEND ls_exclude TO pt_exclude.
  308. ls_exclude = cl_gui_alv_grid=>mc_fc_detail . "详细按钮
  309. APPEND ls_exclude TO pt_exclude.
  310. ls_exclude = cl_gui_alv_grid=>mc_fc_graph . "显示图形
  311. APPEND ls_exclude TO pt_exclude.
  312. ls_exclude = cl_gui_alv_grid=>mc_fc_info . "最终用户文档
  313. APPEND ls_exclude TO pt_exclude.
  314. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row . "附加行
  315. APPEND ls_exclude TO pt_exclude.
  316. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row . "复制行
  317. APPEND ls_exclude TO pt_exclude.
  318. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy . "复制文本
  319. APPEND ls_exclude TO pt_exclude.
  320. ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo . "撤消
  321. APPEND ls_exclude TO pt_exclude.
  322. ENDFORM .                    "exclude_tb_functions
  323. *&---------------------------------------------------------------------*
  324. *&      Form  FRM_LAYOUT_SET
  325. *&---------------------------------------------------------------------*
  326. *       text
  327. *----------------------------------------------------------------------*
  328. *  -->  p1        text
  329. *  <--  p2        text
  330. *----------------------------------------------------------------------*
  331. FORM frm_layout_set .
  332. is_layout-zebra = 'X' .
  333. is_layout-grid_title = '仓储转储订单跟踪及打印' .
  334. is_layout-smalltitle = 'X' .  "ALV 控制: 标题大小
  335. is_layout-cwidth_opt = 'X' . "优化列宽
  336. *   is_layout-no_toolbar = 'X' . "隐藏按钮
  337. is_layout-sel_mode = 'A' . "flag选择方式 A:行和列的选择,无法选择单元格  多行,多列  B
  338. is_layout-info_fname = 'ROWCOLOR'.
  339. ENDFORM.                    " FRM_LAYOUT_SET
  340. *&---------------------------------------------------------------------*
  341. *&      Form  FRM_FIELDCAT_SET
  342. *&---------------------------------------------------------------------*
  343. *       text
  344. *----------------------------------------------------------------------*
  345. *  -->  p1        text
  346. *  <--  p2        text
  347. *----------------------------------------------------------------------*
  348. FORM frm_fieldcat_set .
  349. DATA ls_fcat TYPE lvc_s_fcat .
  350. CLEAR ls_fcat .
  351. ls_fcat-fieldname = 'ZCHECKBOX' .
  352. ls_fcat-coltext = '选择'.
  353. *  ls_fcat-emphasize = 'C601' ."列颜色控制
  354. ls_fcat-checkbox   = 'X'.
  355. ls_fcat-edit       = 'X'.
  356. APPEND ls_fcat TO fieldcat .
  357. CLEAR ls_fcat .
  358. ls_fcat-fieldname = 'WERKS' .
  359. ls_fcat-inttype = 'C' .
  360. ls_fcat-outputlen = '4' .
  361. ls_fcat-coltext = '工厂'."Carrier ID.列标题
  362. ls_fcat-seltext = 'AAA' ."ALV 控制: 对话功能的列标识符
  363. ls_fcat-emphasize = 'C601' ."列颜色控制
  364. *  ls_fcat-hotspot   = 'X'.  “不能设置hotspot  否则double click事件无效
  365. APPEND ls_fcat TO fieldcat .
  366. CLEAR ls_fcat .
  367. ls_fcat-fieldname = 'NAME1' .
  368. ls_fcat-ref_table = 'T001W' .
  369. ls_fcat-ref_field = 'NAME1' .
  370. ls_fcat-outputlen = '30' .
  371. ls_fcat-coltext = '工厂名称' .
  372. ls_fcat-hotspot   = 'X'.
  373. APPEND ls_fcat TO fieldcat .
  374. CLEAR ls_fcat .
  375. ls_fcat-fieldname = 'WERKS2' .
  376. ls_fcat-inttype = 'C' .
  377. ls_fcat-outputlen = '4' .
  378. ls_fcat-coltext = '工厂2号'."Carrier ID.列标题
  379. ls_fcat-seltext = 'AAA' ."ALV 控制: 对话功能的列标识符
  380. ls_fcat-emphasize = 'C601' ."列颜色控制
  381. ls_fcat-edit    = 'X'.
  382. APPEND ls_fcat TO fieldcat .
  383. CLEAR ls_fcat .
  384. ls_fcat-fieldname = 'ZICON' .
  385. ls_fcat-coltext = '交货明细凭证'."Carrier ID.列标题
  386. ls_fcat-seltext = 'AAA' ."ALV 控制: 对话功能的列标识符
  387. ls_fcat-icon    = 'X'.
  388. ls_fcat-hotspot   = 'X'.
  389. APPEND ls_fcat TO fieldcat .
  390. CLEAR ls_fcat .
  391. ENDFORM.                    " FRM_FIELDCAT_SET
  392. *&---------------------------------------------------------------------*
  393. *&      Form  FRM_PRINT_DATA
  394. *&---------------------------------------------------------------------*
  395. *       text
  396. *----------------------------------------------------------------------*
  397. *  -->  p1        text
  398. *  <--  p2        text
  399. *----------------------------------------------------------------------*
  400. FORM frm_print_data .
  401. ENDFORM.                    " FRM_PRINT_DATA
  402. *&---------------------------------------------------------------------*
  403. *&      Module  STATUS_1002  OUTPUT
  404. *&---------------------------------------------------------------------*
  405. *       text
  406. *----------------------------------------------------------------------*
  407. MODULE status_1002 OUTPUT.
  408. SET PF-STATUS 'T001'.
  409. *  SET TITLEBAR 'xxx'.
  410. PERFORM  frm_alv_show_detail.
  411. ENDMODULE.                 " STATUS_1002  OUTPUT
  412. *&---------------------------------------------------------------------*
  413. *&      Form  FRM_ALV_SHOW_DETAIL
  414. *&---------------------------------------------------------------------*
  415. *       text
  416. *----------------------------------------------------------------------*
  417. *  -->  p1        text
  418. *  <--  p2        text
  419. *----------------------------------------------------------------------*
  420. FORM frm_alv_show_detail .
  421. DATA: ls_fcat  TYPE lvc_s_fcat ,
  422. fieldcat2 TYPE lvc_t_fcat.
  423. ls_fcat-fieldname = 'WERKS' .
  424. ls_fcat-coltext = '工厂'."Carrier ID.列标题
  425. APPEND ls_fcat TO fieldcat2 .
  426. CLEAR ls_fcat .
  427. ls_fcat-fieldname = 'NAME1' .
  428. ls_fcat-coltext = '工厂名称'.
  429. APPEND ls_fcat TO fieldcat2 .
  430. CLEAR ls_fcat .
  431. ps_layout-zebra = 'X' .
  432. ps_layout-grid_title = '交货明细凭证' .
  433. ps_layout-smalltitle = 'X' .  "ALV 控制: 标题大小
  434. ps_layout-cwidth_opt = 'X' . "优化列宽
  435. ps_layout-no_toolbar = 'X' . "隐藏按钮
  436. *  ps_layout-SEL_MODE = 'A' . "flag选择方式 A:行和列的选择,无法选择单元格  多行,多列  B
  437. *  ps_layout-info_fname = 'ROWCOLOR'.
  438. IF g_custom_container2 IS INITIAL.
  439. CREATE OBJECT g_custom_container2                        "创建容器对象
  440. EXPORTING container_name = g_container2.
  441. CREATE OBJECT grid2                                      "创建ALV对象
  442. EXPORTING i_parent = g_custom_container2.
  443. ELSE.
  444. CALL METHOD grid2->refresh_table_display. "刷新
  445. ENDIF.
  446. CALL METHOD grid2->set_table_for_first_display
  447. EXPORTING
  448. *     I_BUFFER_ACTIVE      =
  449. *     I_BYPASSING_BUFFER   =
  450. *     I_CONSISTENCY_CHECK  =
  451. *     I_STRUCTURE_NAME     = 'T001W'
  452. *     IS_VARIANT           =
  453. i_save               = 'X'
  454. *     I_DEFAULT            = 'X'
  455. is_layout            = ps_layout
  456. *     IS_PRINT             =
  457. *     IT_SPECIAL_GROUPS    =
  458. *     IT_TOOLBAR_EXCLUDING =
  459. *     IT_HYPERLINK         =
  460. *     IT_ALV_GRAPHICS      =
  461. *     IT_EXCEPT_QINFO      =
  462. *     IR_SALV_ADAPTER      =
  463. CHANGING
  464. it_outtab            = i_detail[]
  465. it_fieldcatalog      = fieldcat2[].
  466. *           IT_SORT                       =
  467. *           IT_FILTER                     =
  468. *         EXCEPTIONS
  469. *           INVALID_PARAMETER_COMBINATION = 1
  470. *           PROGRAM_ERROR                 = 2
  471. *           TOO_MANY_LINES                = 3
  472. *           others                        = 4
  473. .
  474. ENDFORM.                    " FRM_ALV_SHOW_DETAIL
  475. *&---------------------------------------------------------------------*
  476. *&      Module  USER_COMMAND_1002  INPUT
  477. *&---------------------------------------------------------------------*
  478. *       text
  479. *----------------------------------------------------------------------*
  480. MODULE user_command_1002 INPUT.
  481. DATA ok_code2 TYPE sy-ucomm.
  482. ok_code2 = sy-ucomm.
  483. CLEAR sy-ucomm.
  484. CASE ok_code2.
  485. WHEN 'BACK'.
  486. LEAVE TO SCREEN 0.
  487. ENDCASE.
  488. ENDMODULE.                 " USER_COMMAND_1002  INPUT

复制代码

程序执行效果:
 
点击“明细” 跳入第二屏,更多按钮响应效果自己体验

sap系统的ooalv的学习标准程序:
BCALV_EDIT_01
BCALV_EDIT_02
BCALV_EDIT_03
BCALV_EDIT_04
BCALV_EDIT_05 双击编辑单元格,更改编辑状态(ooalv 单元格控制)
BCALV_EDIT_06
BCALV_EDIT_07
BCALV_EDIT_08

ooalv自定义按钮、单击、双击、列编辑切换的事件用法相关推荐

  1. dplayer js控制 自动全屏_vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】...

    最近公司的产品上线,一些高级功能在基础版本中不对用户开发,通过视频的形式展示. 产品开发用的是 vue, 经同事介绍使用了vue-video-player视频播放插件,通过 demo案例很快实现了视频 ...

  2. GridView 模版列编辑状态Dropdownlist 事件

    最近项目中有这样的需求,当GridView 模版列编辑时,有Dropdownlist 和Textbox.TextBox  中的值需要通过 Dropdownlist  选择来动态取得.方法如下: Cod ...

  3. Javascript 富文本编辑器,单击按钮后内容可编辑区域失去焦点

    问题:单击按钮后内容可编辑区域失去焦点 解决思路:在按钮上绑定的事件从@click 改为 @mousedown 事件.因为失去焦点事件是mousedown默认触发的,所以,在点击的按钮上阻止mouse ...

  4. JS单击/双击编辑功能

    JS单击/双击编辑功能 HTML <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  5. QT应用编程: QGraphicsTextItem单击选中、双击进入编辑状态

    一.环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二.功能介绍 最近做一个播放器的项目,需要用户自定义编辑定制视频的字幕:为了方便编辑字幕,这里QGraphicsTextIte ...

  6. 使用RAD Studio 10 Seattle创建自定义按钮样式

    在RAD Studio 10 Seattle中,我们对IDE中的集成样式设计器进行了许多增强.在今天的帖子中,我想我将介绍使用RAD Studio 10 Seattle创建自己的自定义按钮样式的步骤. ...

  7. jeecg自定义按钮使用exp属性不起作用

    jeecg自定义按钮使用exp属性不起作用 为什么要写这篇文章? 之前写过一篇类似的文章 jeecg笔记之自定义显示按钮exp属性,但是有些小伙伴留言参考后不起作用,当时我的 jeecg 版本为3.7 ...

  8. java中点击按钮出现echarts图表_echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮...

    echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮 >>>>>>>>>>>>>>&g ...

  9. 传奇GOM引擎背包增加其他充值点资源或自定义按钮如何操作

    如果解决背包只显示 元宝 灵符 金刚石资源?想另外增加充值点?RMB点?该如何操作?想在背包增加自定义按钮该如何解决?详细看下面,将脚本灵活运用就可以啦.如果想实现在背包中添加其他功能按钮那就认认真真 ...

最新文章

  1. Kubernetes1.5源码分析(二) apiServer之资源注册
  2. 因子分析累计方差贡献率要在多少_R语言进阶之因子分析
  3. 报名 | 极简大数据决策,培养数据化思维讲座
  4. arcgis下的python编程-面向ArcGIS的Python脚本编程
  5. ubuntu 更新系统时间
  6. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.2. 鸟哥的Linux苦难经验全都录)
  7. vba怎么安装_VBA还要学吗?怎么入门Excel VBA?
  8. python返回json数据_python和flask中返回JSON数据的方法
  9. LA 6538 Dinner Coming Soon DP
  10. 透明计算:对当前主流计算模式的革命
  11. linux启动redis指定端口,linux redis实现自定义运行多端口、多实例 | 极安全-JiSec
  12. oracle in 文件太多,oracle 目录下文件太多,直接rm 报错,替代方法
  13. Java项目开发中实现分页的三种方式一篇包会
  14. 少儿学python 仿真秀_“在家学”仿真:使用Python进行SCDM脚本建模攻略
  15. ASCII Binary
  16. Windows小技巧 -- 命令行窗口打开指定目录的资源管理器
  17. wpa_supplicant 介绍
  18. Method findById should have no parameters
  19. cml sml区别_CML与SML有何联系和区别?
  20. LiteOS 软件定时器

热门文章

  1. 这样写交互说明,开发不会约你去爬山~
  2. 一个创业者的自我修养2019版
  3. O2O上门实战复盘:10万元如何换来937个订单?
  4. 深圳6月23号活动《产品经理三分钟》报名开始啦!
  5. Windows server 2008 r2企业版安装步骤
  6. Navisworks API 简单二次开发 (自定义工具条)
  7. Java每天10道面试题,跟我走,offer有!(七)
  8. 大数据营销的7个雷区,千万别中招
  9. EF Core Model更新迁移
  10. 治标更治本,如何从根源防护DDoS***