SAP Grid control( ALV Grid 列表 自定义 按钮)
ALV 列表和按钮
效果

源代码
PROGRAM bcalvc_tb_menu_with_def_but.
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
* Purpose:
* ~~~~~~~~
* Append a menu with default button to the standard toolbar.
* It is exactly the same as BCALVC_TB_WITH_MENU except for
* methods HANDLE_MENU_BUTTON and HANDLE_TOOLBAR.
*-----------------------------------------------------------------
* To check program behavior
* ~~~~~~~~~~~~~~~~~~~~~~~~~
* Select a line and click on the rightmost menu button of the
* toolbar. Select 'Flights' to switch to the 'Flights'-Table.
* You may switch back by using the same menu.
* Remark:
* Although the report uses one ALV instance per table, the menu
* button is generated by the same event handler. This is
* possible by defining it as a CLASS-METHOD.
*-----------------------------------------------------------------
* Essential steps
* ~~~~~~~~~~~~~~~
* 1.Apply steps for event handling for events TOOLBAR, MENU_BUTTON
* and USER_COMMAND (see example with print events).
* 2.At event TOOLBAR define a toolbar element of type 1 by using
* event paramenter E_OBJECT. Remember its function code.
* 3.At event MENU_BUTTON query your function code and define a
* menu in the same way as a context menu.
* 3a.) choose a default function and define the same function code
* as used for the menu.
* 4.At event USER_COMMAND query the function code of each function
* defined in step 3.
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *********
* Predefine a local class for event handling to allow the
* declaration of a reference variable before the class is defined.
CLASS lcl_event_receiver DEFINITION DEFERRED.
*
*********
INCLUDE <icon>. DATA: ok_code LIKE sy-ucomm,
gt_spfli TYPE TABLE OF spfli,
gt_sflight TYPE TABLE OF sflight,
g_repid LIKE sy-repid,
g_max type i value 100,
gs_layout TYPE lvc_s_layo,
gs_toolbar TYPE stb_button,
cont_on_100 TYPE scrfname VALUE 'BCALVC_TOOLBAR_D100_C1',
cont_on_200 TYPE scrfname VALUE 'BCALVC_TOOLBAR_D200_C1',
grid1 TYPE REF TO cl_gui_alv_grid,
grid2 TYPE REF TO cl_gui_alv_grid,
custom_container1 TYPE REF TO cl_gui_custom_container,
custom_container2 TYPE REF TO cl_gui_custom_container. * Set initial dynpro
SET SCREEN 100. ****************************************************************
* LOCAL CLASSES: Definition
****************************************************************
*===============================================================
* class lcl_event_receiver: local class to
* define and handle own functions.
*
* Definition:
* ~~~~~~~~~~~
CLASS lcl_event_receiver DEFINITION. PUBLIC SECTION. CLASS-METHODS:
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive, handle_menu_button
FOR EVENT menu_button OF cl_gui_alv_grid
IMPORTING e_object e_ucomm, handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm. PRIVATE SECTION. ENDCLASS.
*
* lcl_event_receiver (Definition)
*=============================================================== ****************************************************************
* LOCAL CLASSES: Implementation
****************************************************************
*===============================================================
* class lcl_event_receiver (Implementation)
*
*
CLASS lcl_event_receiver IMPLEMENTATION. METHOD handle_toolbar.
* § 2.At event TOOLBAR define a toolbar element of type 1 by using
* event paramenter E_OBJECT. Remember its function code.
*.......
* Part I: Define a menu button including a function code that
* is evaluated in 'handle_MENU_BUTTON
*....... * append a separator to normal toolbar
CLEAR gs_toolbar.
MOVE 3 TO gs_toolbar-butn_type.
APPEND gs_toolbar TO e_object->mt_toolbar. *...................
* append a menu with default button (Type 1)
* The function code of the default button is the same as
* the one for the menu.
* If the user klicks on the default button ALV raises
* directly event BEFORE_USER_COMMAND
* (then USER_COMMAND, AFTER_USER_COMMAND).
* If the user klicks on the menu button ALV raises event MENU_BUTTON. CLEAR gs_toolbar.
MOVE 'TO_SFLIGHT' TO gs_toolbar-function.
* --> This function code is evaluated in 'handle_menu_button'
MOVE icon_detail TO gs_toolbar-icon.
MOVE 'Flights'(200) TO gs_toolbar-quickinfo.
MOVE 1 TO gs_toolbar-butn_type.
MOVE space TO gs_toolbar-disabled.
APPEND gs_toolbar TO e_object->mt_toolbar. ENDMETHOD.
*--------------------------------------------------------------------
METHOD handle_menu_button.
* § 3.At event MENU_BUTTON query your function code and define a
* menu in the same way as a context menu.
*..........
* Part II: Evaluate 'e_ucomm' to see which menu button of the toolbar
* has been clicked on.
* Define then the corresponding menu.
* The menu contains function codes that are evaluated
* in 'handle_user_command'.
*........... * query e_ucomm to find out which menu button has been clicked on
IF e_ucomm = 'TO_SFLIGHT'.
CALL METHOD e_object->add_function
EXPORTING fcode = 'TO_SPFLI'
text = text-100. "Overview
* § 3a.) choose a default function and define the same function code
* as used for the menu.
CALL METHOD e_object->add_function
EXPORTING fcode = 'TO_SFLIGHT'
text = text-200. "Flights ENDIF.
ENDMETHOD.
*---------------------------------------------------------------------
METHOD handle_user_command.
* § 4.At event USER_COMMAND query the function code of each function
* defined in step 3.
*.........
* Part III : Evaluate user command to invoke the corresponding
* function.
*......... DATA: lt_rows TYPE lvc_t_row. * get selected row
CALL METHOD grid1->get_selected_rows
IMPORTING et_index_rows = lt_rows.
CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc ne 0.
* add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in Flush'(500).
ENDIF. * go to other table
CASE e_ucomm.
WHEN 'TO_SPFLI'.
LEAVE TO SCREEN 100.
WHEN 'TO_SFLIGHT'.
PERFORM load_sflight_table TABLES lt_rows.
CALL SCREEN 200. ENDCASE.
ENDMETHOD. "handle_user_command
ENDCLASS.
*
* lcl_event_receiver (Implementation)
*=================================================================== *---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
FORM exit_program.
* The instance custom_container2 is freed not until the program
* exits from the main screen.
* (It is created only once during the first selection of SFLIGHT,
* no matter how many times the second window is called).
*
CALL METHOD custom_container1->free.
IF not custom_container2 is initial.
CALL METHOD custom_container2->free.
ENDIF. CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc ne 0.
* add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in Flush'(500).
ENDIF.
LEAVE PROGRAM.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module PBO_100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pbo_100 OUTPUT. SET PF-STATUS 'MAIN100'.
set titlebar 'MAIN100'.
g_repid = sy-repid.
IF custom_container1 is initial.
* select data from table SPFLI
PERFORM select_table_spfli CHANGING gt_spfli.
* select data from table SFLIGHT
* PERFORM SELECT_TABLE_SFLIGHT CHANGING GT_SFLIGHT. * create a custom container control for our ALV Control
CREATE OBJECT custom_container1
EXPORTING
container_name = cont_on_100. * create an instance of alv control
CREATE OBJECT grid1
EXPORTING i_parent = custom_container1. *
* Set a titlebar for the grid control
*
gs_layout-grid_title = text-100.
CALL METHOD grid1->set_table_for_first_display
EXPORTING i_structure_name = 'SPFLI'
is_layout = gs_layout
CHANGING it_outtab = gt_spfli. ********
* ->Create Object to receive events and link them to handler methods.
* When the ALV Control raises the event
* the corresponding method is automatically called FOR ALL INSTANCES.
* (Complies to their definition as CLASS-METHODS).
*
SET HANDLER lcl_event_receiver=>handle_user_command
lcl_event_receiver=>handle_menu_button
lcl_event_receiver=>handle_toolbar FOR ALL INSTANCES.
*
******** * raise event TOOLBAR:
CALL METHOD grid1->set_toolbar_interactive.
ENDIF.
CALL METHOD cl_gui_control=>set_focus EXPORTING control = grid1. ENDMODULE. " PBO_100 OUTPUT
*&---------------------------------------------------------------------*
*& Module PAI_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pai_100 INPUT. CASE ok_code.
WHEN 'EXIT'.
PERFORM exit_program. ENDCASE.
CLEAR ok_code.
ENDMODULE. " PAI_100 INPUT
*&---------------------------------------------------------------------*
*& Module PBO_200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pbo_200 OUTPUT. SET PF-STATUS 'MAIN100'.
g_repid = sy-repid.
IF custom_container2 is initial.
* data of sflight is already selected! * create a custom container control for our ALV Control
CREATE OBJECT custom_container2
EXPORTING
container_name = cont_on_200. * create an instance of alv control
CREATE OBJECT grid2
EXPORTING i_parent = custom_container2. *
* Set a titlebar for the grid control
*
gs_layout-grid_title = text-200.
CALL METHOD grid2->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING it_outtab = gt_sflight. CALL METHOD grid2->set_toolbar_interactive. ELSE.
* Since new data has been selected, 'grid2' must be refreshed!
CALL METHOD grid2->refresh_table_display.
ENDIF.
CALL METHOD cl_gui_control=>set_focus EXPORTING control = grid2. ENDMODULE. " PBO_200 OUTPUT
*&---------------------------------------------------------------------*
*& Module PAI_200 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pai_200 INPUT. CASE ok_code.
WHEN 'EXIT'.
PERFORM exit_program. ENDCASE.
CLEAR ok_code.
ENDMODULE. " PAI_200 INPUT
*&---------------------------------------------------------------------*
*& Form SELECT_TABLE_SFLIGHT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_SFLIGHT text
*----------------------------------------------------------------------*
FORM select_table_sflight USING p_ls_spfli LIKE LINE OF gt_spfli
CHANGING p_gt_sflight LIKE gt_sflight[].
SELECT * FROM sflight INTO TABLE p_gt_sflight up to g_max rows
WHERE carrid = p_ls_spfli-carrid
AND connid = p_ls_spfli-connid. ENDFORM. " SELECT_TABLE_SFLIGHT *&---------------------------------------------------------------------*
*& Form SELECT_TABLE_SPFLI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_SPFLI text
*----------------------------------------------------------------------*
FORM select_table_spfli CHANGING p_gt_spfli LIKE gt_spfli[].
SELECT * FROM spfli INTO TABLE p_gt_spfli.
ENDFORM. " SELECT_TABLE_SPFLI
*&---------------------------------------------------------------------*
*& Form load_sflight_table
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LT_ROWS text
*----------------------------------------------------------------------* FORM load_sflight_table TABLES p_et_index_rows STRUCTURE lvc_s_row. DATA: ls_selected_line LIKE lvc_s_row,
lf_row_index TYPE lvc_index,
ls_spfli LIKE LINE OF gt_spfli. CLEAR gt_sflight[].
READ TABLE p_et_index_rows INDEX 1 INTO ls_selected_line.
IF sy-subrc eq 0.
lf_row_index = ls_selected_line-index.
* read selected row from internal table gt_sflight
READ TABLE gt_spfli INDEX lf_row_index INTO ls_spfli. * select corresponding lines of table sflight PERFORM select_table_sflight USING ls_spfli
CHANGING gt_sflight.
ENDIF. ENDFORM. " load_sflight_table
打印

源代码
program bcalvc_print.
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
* Purpose:
* ~~~~~~~~
* This program illustrates how the events for print processing
* - PRINT_TOP_OF_PAGE
* - PRINT_END_OF_PAGE
* - PRINT_TOP_OF_LIST
* - PRINT_END_OF_LIST
*
* are handled. The corresponding handler methods control the
* appearance of the list printed.
*-----------------------------------------------------------------
* To check program behavior
* ~~~~~~~~~~~~~~~~~~~~~~~~~
* Print the list shown (It has got only three pages).
* Remark: If you choose "Druckansicht" (preview?!) before printing,
* the output for event PRINT_END_OF_PAGE is left out due
* to scrolling.
* Create a spool entry and preview your printout by calling
* TA sp01 to reduce paper output please.
*-----------------------------------------------------------------
* Essential steps (Search for '§')
* ~~~~~~~~~~~~~~~
* 1. Define a (local) class for event handling
* 2. Define a method for each print event you need.
* 3. Implement your event handler methods. Use WRITE to provide output.
* 4. Link used print events and event handler methods.
* 5. In case of PRINT_END_OF_PAGE, you must set 'reservelns' to
* the number of reserved lines at the end of a page.
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *********
* Predefine a local class for event handling to allow the
* declaration of a reference variable.
class lcl_event_receiver definition deferred.
*
********* data: ok_code like sy-ucomm,
g_max type i value 100,
gt_sflight type table of sflight,
g_repid like sy-repid,
gs_print type lvc_s_prnt,
gs_layout type lvc_s_layo,
mycontainer type scrfname value 'BCALVC_EVENT1_CONT1',
* reference to custom container: neccessary to bind ALV Control
custom_container type ref to cl_gui_custom_container,
grid1 type ref to cl_gui_alv_grid,
event_receiver type ref to lcl_event_receiver. * § Step 1. Define a (local) class for event handling
****************************************************************
* LOCAL CLASSES: Definition
****************************************************************
*===============================================================
* class c_event_receiver: local class to handle print events...
* - PRINT_TOP_OF_PAGE (page header)
* - PRINT_END_OF_PAGE (page footer)
* - PRINT_TOP_OF_LIST (list header)
* - PRINT_END_OF_LIST (list footer)
*
* Definition:
* ~~~~~~~~~~~
class lcl_event_receiver definition. public section.
* § 2. Define a method for each print event you need.
methods:
handle_top_of_page
for event print_top_of_page of cl_gui_alv_grid, handle_end_of_page
for event print_end_of_page of cl_gui_alv_grid, handle_top_of_list
for event print_top_of_list of cl_gui_alv_grid, handle_end_of_list
for event print_end_of_list of cl_gui_alv_grid. private section.
data: pagenum type i. endclass.
*
* c_event_receiver (Definition)
*=============================================================== ****************************************************************
* LOCAL CLASSES: Implementation
****************************************************************
*===============================================================
* class c_event_receiver (Implementation)
*
class lcl_event_receiver implementation.
*§ 3. Implement your event handler methods. Use WRITE to provide output.
method handle_top_of_page.
data: tablename(30) type c.
perform get_tablename changing tablename.
write: /,'Event: PRINT_TOP_OF_PAGE'(001),
'Table: '(002),tablename. endmethod. "handle_top_of_page
*-------------------------------------------
method handle_end_of_page.
data: tablename(30) type c. perform get_tablename changing tablename.
add 1 to pagenum.
write: /,'Event: PRINT_END_OF_PAGE'(003),
text-002,tablename,
'Number of pages so far: '(004), pagenum. endmethod. "handle_end_of_page
*-------------------------------------------
method handle_top_of_list.
data: tablename(30) type c.
clear pagenum.
perform get_tablename changing tablename.
write: /,'Event: PRINT_TOP_OF_LIST'(005),
text-002,tablename. endmethod. "handle_top_of_list
*-------------------------------------------
method handle_end_of_list.
data: tablename(30) type c.
perform get_tablename changing tablename.
write: /,'Event: PRINT_END_OF_LIST'(006),
text-002,tablename. endmethod. "handle_end_of_list
*-------------------------------------------
endclass.
*
* c_event_receiver (Implementation)
*=================================================================== start-of-selection.
select * from sflight into table gt_sflight up to g_max rows.
*
end-of-selection.
g_repid = sy-repid.
call screen 100. *---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*
module pbo output.
set pf-status 'MAIN100'.
set titlebar 'MAIN100'.
if custom_container is initial.
* create a custom container control for our ALV Control
create object custom_container
exporting
container_name = mycontainer
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc ne 0.
* add your handling, for example
call function 'POPUP_TO_INFORM'
exporting
titel = g_repid
txt2 = sy-subrc
txt1 = 'The control could not be created'(010).
endif.
* create an instance of alv control
create object grid1
exporting i_parent = custom_container.
*
* Set a titlebar for the grid control
*
gs_layout-grid_title = 'Flights'(100). * § 5. In case of PRINT_END_OF_PAGE, you must set 'reservelns' to
* the number of reserved lines at the end of a page.
*
* reserve two lines for the PRINT_END_OF_PAGE event
*
gs_print-reservelns = 2. ********
* ->Create Object to receive events and link them to handler methods.
* When the ALV Control raises the event for the specified instance
* the corresponding method is automatically called.
* ******** * § 4. Link used print events and event handler methods.
create object event_receiver.
set handler event_receiver->handle_top_of_list for grid1.
set handler event_receiver->handle_top_of_page for grid1.
set handler event_receiver->handle_end_of_list for grid1.
set handler event_receiver->handle_end_of_page for grid1.
*
call method grid1->set_table_for_first_display
exporting i_structure_name = 'SFLIGHT'
is_print = gs_print
is_layout = gs_layout
changing it_outtab = gt_sflight. endif.
* Controls are not integrated into the TAB-Order
* Call "set_focus" if you want to make sure that 'the cursor'
* is active in your control.
call method cl_gui_control=>set_focus exporting control = grid1. * Control Framework flushes at the end of PBO automatically!
endmodule.
*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*
module pai input.
case ok_code.
when 'EXIT'.
perform exit_program.
endcase.
clear ok_code.
endmodule.
*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
form exit_program.
call method custom_container->free.
call method cl_gui_cfw=>flush.
if sy-subrc ne 0.
* add your handling, for example
call function 'POPUP_TO_INFORM'
exporting
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in Flush'(009).
endif.
leave program.
endform.
*&---------------------------------------------------------------------*
*& Form GET_TABLENAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_TABLENAME text
*----------------------------------------------------------------------*
form get_tablename changing p_tablename.
data: lt_fieldcat type standard table of lvc_s_fcat,
ls_fieldcat type lvc_s_fcat. call method grid1->get_frontend_fieldcatalog
importing et_fieldcatalog = lt_fieldcat. call method cl_gui_cfw=>flush.
if sy-subrc <> 0.
p_tablename = 'No tablename in fieldcatalog!'(008).
call function 'POPUP_TO_INFORM'
exporting
titel = g_repid
txt2 = p_tablename
txt1 = 'Error in Flush'(011).
else.
read table lt_fieldcat index 1 into ls_fieldcat.
p_tablename = ls_fieldcat-ref_table.
endif. endform. " GET_TABLENAME
SAP Grid control( ALV Grid 列表 自定义 按钮)的更多相关文章
- em grid control网格控制
网格控制 必须管理许多的数据库.应用服务器.web服务器和其他构件的企业可以采用em grid control Em grid control是一个基于web的用户界面,它与oracle企业内所有构件 ...
- 实例:ABAP Tree Control 使用与ALV Grid对象关联
Tree Control 是最常用的Windows控件之一,在其他语言中成为"Tree View"等,ABAP的 Tree Contiol 能实现类似的功能. 本文主要介绍一下内容 ...
- Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
相关类手册: http://www.yiichina.com/api/CButtonColumn buttons 属性 public array $buttons; the configurati ...
- 一百、SAP中ALV事件之十三,给ALV的自定义按钮添加事件
一.我们查看定义的按钮,有一个名字是ZADD的自定义按钮 二.代码如下,用于判断点击了哪个按钮 三.点击测试按钮之后,会弹出一个弹窗 完美
- OO方式下,ALV TREE和ALV GRID的不同之处
作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...
- Access Grid Control Properties 访问网格控件属性
In this lesson, you will learn how to access the properties of a list form's Grid Control in WinForm ...
- GRID方式ALV导出数据到本地丢掉最后一位的问题
这是SAP的一个Bug,FM方式ALV Grid和Class ALV Grid都会出现,但是ALV List好像没有这个BUG. 在以下几个条件满足的时候就会出现这个问题: 1.字段对应的域Con ...
- ME5xN(x:1-2): custom column is editable in Subscreen Item but not in ALV grid
FM MEMFS_BUILD_MAPPING_PO_VIEWS->LMEMFSF0Z enhancement 14 zenhance_alvg_rid_editable. "activ ...
- Oracle Grid control 11g及Active DataGuard 11g安装部署
Oracle Grid control 11g及Active DataGuard 11g安装部署(一) 原贴 http://blog.csdn.net/lichangzai/article/detai ...
随机推荐
- 【Example】C++ STL 常用容器概述
前排提醒: 由于 Microsoft Docs 全是机翻.所以本文表格是我人脑补翻+审校. 如果有纰漏.模糊及时评论反馈. 序列式容器 序列容器是指在逻辑上以线性排列方式存储给定类型元素的容器. 这些 ...
- MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序
最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...
- Apache Flink系列-④有状态函数
有状态函数:独立于平台的有状态无服务器堆栈 这是一种在现代基础设施上创建高效.可扩展且一致的应用程序的简单方法,无论规模大小. 有状态函数是一种API,它通过为无服务器架构构建的运行时简化了分 ...
- XCTF练习题---MISC---Test-flag-please-ignore
XCTF练习题---MISC---Test-flag-please-ignore flag:flag{hello_world} 解题步骤: 1.观察题目,下载附件 2.打开文件,发现又是一个没有名字的 ...
- python常见漏洞总结
总结一下python里面常见安全问题,文章大部分内容来自MisakiKata师傅的python_code_audit项目,对原文进行了一些修改,后续会使用编写了规则对代码里面是否用到这些危险函数进行相 ...
- 在Ubuntu安装eclipse环境
下载准备 1安装jdk,笔者安装的是jdk-8u121-linux-x64 2安装eclipse,下载地址:http://www.eclipse.org/downloads/packages/ecli ...
- Linux服务器配置DNS解析
概述 DNS(Domain Name System,域名系统) DNS的作用,简单的说:就是把我们输入的网站域名翻译成IP地址的系统. 本文建立在已搭建好DNS服务器,这里讨论为linux机器配置DN ...
- Open Harmony移植:build lite配置目录全梳理
摘要:本文主要介绍build lite 轻量级编译构建系统涉及的配置目录的用途,分析相关的源代码. 本文分享自华为云社区<移植案例与原理 - build lite配置目录全梳理>,作者:z ...
- 6.Docker网络
什么是 Docker网络 docker 不启动,默认网络情况 ens33 lo virbr0 在 CentOS7 的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的 ...
- mybatis 查询返回的类型中字段类型为 List<xx>
基本类型数组 mapper.xml <resultMap id="xxDtoResultMap" type="com.xx.xxDto"> < ...