原文链接:http://www.baidusap.com/abap/report/4770
1, 用到的函数,类方法

下面介绍一个能根据所选表字段自动创建动态select-options的例子代码,代码中用到了以下函数和类方法:

1, FREE_SELECTIONS_INIT:初始化动态选择画面

2, FREE_SELECTIONS_DIALOG:弹出生成动态select-options的字段选择窗口

3, FREE_SELECTIONS_WHERE_2_EX:转换数据格式,RSDS_TWHERE ==> RSDS_TEXPR

4, cl_alv_table_create=>create_dynamic_table :创建动态内表

2, 例子代码
完整代码如下:感兴趣可以自己debug看看。

REPORT ztest_dynamic_selection.
*----------------------------------------------------------------------
*Tables *
*----------------------------------------------------------------------
TABLES : sscrfields, "Fields on selection screensdd03l. "Table Fields
*----------------------------------------------------------------------
*Type Pools *
*----------------------------------------------------------------------
TYPE-POOLS:rsds.
*----------------------------------------------------------------------
*Selection Screen *
*----------------------------------------------------------------------
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001,
SKIP,
BEGIN OF LINE,
COMMENT 1(5) text-002.
PARAMETERS : p_tab LIKE dd03l-tabname OBLIGATORY. "Table name
SELECTION-SCREEN : PUSHBUTTON 45(8) p_btn USER-COMMAND clk, "Select-options
END OF LINE,
END OF BLOCK b1.
*----------------------------------------------------------------------
*Types *
*----------------------------------------------------------------------
TYPES: BEGIN OF t_dd03l,tabname    LIKE dd03l-tabname, "Table Namefieldname  LIKE dd03l-fieldname, "Field Namekeyflag    LIKE dd03l-keyflag, "Key Flagrollname   LIKE dd03l-rollname, "Roll Nameposition   LIKE dd03l-position, "Positionddtext(30), "DescriptionEND OF t_dd03l,BEGIN OF t_fields.INCLUDE STRUCTURE dd03l.
TYPES: END OF t_fields.
TYPES : BEGIN OF t_tabs. "To hold the table namesINCLUDE STRUCTURE rsdstabs.
TYPES : END OF t_tabs.
TYPES : BEGIN OF t_flds. "To hold the field namesINCLUDE STRUCTURE rsdsfields.
TYPES : END OF t_flds.
TYPES : BEGIN OF t_fname, "To hold the field namesfld LIKE dd03l-fieldname,END OF t_fname.
*----------------------------------------------------------------------
*Internal Tables *
*----------------------------------------------------------------------
DATA : it_dd03l  TYPE TABLE OF t_dd03l, "To hold the field namesit_tabs   TYPE TABLE OF t_tabs, "To hold the table namesit_flds   TYPE TABLE OF t_flds, "To hold the field namesit_temp   TYPE TABLE OF t_flds, "Temp. table to hold field namesit_fields TYPE TABLE OF t_fields, "To hold the field namesit_cat    TYPE TABLE OF lvc_s_fcat, "To hold Field Catalogit_fname  TYPE TABLE OF t_fname.
*----------------------------------------------------------------------
*Work areas *
*----------------------------------------------------------------------
DATA: d_ref     TYPE REF TO data , "Data referencewa_dd03l  LIKE LINE OF it_dd03l, "Workarea for IT_DD03Lwa_tabs   LIKE LINE OF it_tabs, "Workarea for IT_TABSwa_flds   LIKE LINE OF it_flds, "Workarea for IT_FLDSwa_temp   LIKE LINE OF it_temp, "Workarea for IT_TEMPwa_fields LIKE LINE OF it_fields, "Workarea for IT_FIELDSwa_cat    LIKE LINE OF it_cat , "Workarea for IT_CATwa_fname  LIKE LINE OF it_fname. "Workarea for IT_FNAME
*----------------------------------------------------------------------
*Field Symbols *
*----------------------------------------------------------------------
FIELD-SYMBOLS : <f_fs> TYPE table. "FieldSymbol for holding fields
*----------------------------------------------------------------------
*Variables *
*----------------------------------------------------------------------
DATA: gx_texpr         TYPE rsds_texpr, "Variable to hold Expressiongx_twhere        TYPE rsds_twhere, "Variable to hold Where Clausegv_selid         LIKE rsdynsel-selid, "Variable to hold Selidgv_actnum        LIKE sy-tfill, "Variable to hold no of fieldsgv_title         LIKE sy-title, "Variable to hold Titlegv_where_cl(100) TYPE c, "Variable to hold Where clausegv_tbname        LIKE dd03l-tabname,gv_temp.
SELECT-OPTIONS:
s_fld   FOR dd03l-fieldname NO-DISPLAY, "To hold fields selected
s_selop FOR dd03l-fieldname NO-DISPLAY, "To hold fields for creating dyn. select-options
s_where FOR gv_where_cl NO-DISPLAY. "To hold where condition
PARAMETERS: gv_t_old LIKE dd03l-tabname NO-DISPLAY. "Earlier Table name
DATA : gt_grid TYPE REF TO cl_gui_alv_grid,gt_cust TYPE REF TO cl_gui_custom_container, "Custom Containercust    TYPE scrfname VALUE 'CC_OUTPUT'. "Custom controller
*----------------------------------------------------------------------
*Constants *
*----------------------------------------------------------------------
CONSTANTS: gc_i     TYPE c VALUE 'I',gc_eq(2) TYPE c VALUE 'EQ'.
*----------------------------------------------------------------------
*Initialization *
*----------------------------------------------------------------------
INITIALIZATION.
**--Initialize valuesPERFORM initialize.
*----------------------------------------------------------------------
*At Selection Screen *
*----------------------------------------------------------------------
AT SELECTION-SCREEN.
*--Select the fields of the input tablePERFORM select_flds.
*----------------------------------------------------------------------
*Start Of Selection *
*----------------------------------------------------------------------
START-OF-SELECTION.
*--Fetch data to display outputPERFORM fetch_data.
*----------------------------------------------------------------------
*End Of Selection *
*----------------------------------------------------------------------
END-OF-SELECTION.CALL SCREEN '0300'.
*----------------------------------------------------------------------
*At User Command *
*----------------------------------------------------------------------
AT USER-COMMAND.CASE sy-ucomm.WHEN 'OK'.REFRESH it_temp.CLEAR it_temp.MOVE 'S' TO wa_temp-type.MOVE gv_tbname TO wa_temp-tablename.DO.READ LINE sy-index FIELD VALUE gv_temp INTO gv_temp.IF sy-subrc NE 0.EXIT.ENDIF.IF gv_temp EQ 'X'.sy-index = sy-index - 1.READ TABLE it_dd03l INTO wa_dd03l INDEX sy-index.IF sy-subrc = 0.MOVE wa_dd03l-fieldname TO wa_temp-fieldname.APPEND wa_temp TO it_temp.CLEAR gv_temp.ENDIF.ENDIF.ENDDO.DESCRIBE TABLE it_temp.IF sy-tfill GT 70.
**--More than 70 fields can not be selectedMESSAGE 'Cannot select more than 70 Parameters' TYPE 'I'.REFRESH it_temp[].CLEAR it_temp.ELSE.LEAVE LIST-PROCESSING.ENDIF.WHEN 'CANCEL'.LEAVE LIST-PROCESSING.WHEN 'SELALL'.
**--Select all fieldsCLEAR wa_dd03l-fieldname.DO.READ LINE sy-index.IF sy-subrc EQ 0 ANDwa_dd03l-fieldname NE space.gv_temp = 'X'.MODIFY LINE sy-index INDEX 0 FIELD VALUE gv_temp.HIDE gv_temp.CLEAR wa_dd03l-fieldname.ELSEIF sy-subrc NE 0.EXIT.ENDIF.ENDDO.WHEN 'DSELALL'.
**--Deselect all fieldsCLEAR gv_temp.DO.READ LINE sy-index.IF sy-subrc EQ 0.CLEAR gv_temp.MODIFY LINE sy-index INDEX 0 FIELD VALUE gv_temp FROM gv_temp.HIDE gv_temp.ELSEIF sy-subrc NE 0.EXIT.ENDIF.ENDDO.ENDCASE.sy-lsind = 0.
*&---------------------------------------------------------------------
*& Form INITIALIZE
*&---------------------------------------------------------------------
* Initialize values on selection-screen
*----------------------------------------------------------------------
FORM initialize .p_btn = 'Options'(003).
ENDFORM. " INITIALIZE
*&---------------------------------------------------------------------
*& Form SELECT_FLDS
*&---------------------------------------------------------------------
* Select fields from the table
*----------------------------------------------------------------------
FORM select_flds .CASE sscrfields-ucomm.WHEN 'CLK'.
**--Display Screen with the list of fieldsPERFORM genr_scr.ENDCASE.
ENDFORM. " SELECT_FLDS
*&---------------------------------------------------------------------
*& Form genr_scr
*&---------------------------------------------------------------------
* Display a screen with list of fields
*----------------------------------------------------------------------
FORM genr_scr.
**--If table in the parameter is not the same as the old table and
**--old table is not blank, then initialise all the variables associatedIF p_tab NE gv_t_old AND gv_t_old IS NOT INITIAL.REFRESH: it_tabs, it_flds,gx_texpr, gx_twhere,s_where, s_selop.CLEAR: gv_selid.
**--Pass current table parameter value to Old table parametergv_t_old = p_tab.ENDIF.
**--Pass the current table name to old table variableIF gv_t_old EQ space.gv_t_old = p_tab.ENDIF.
**--Check if table name is given before clicking the buttonIF p_tab IS INITIAL.MESSAGE 'Enter the Table name' TYPE 'E'.ENDIF.
**--Get the list of fields of a given tablePERFORM get_selections.
**--If none of the fields, provide the list of fields for selectingIF it_flds[] IS INITIAL.CLEAR gv_selid.PERFORM select_fieldlist.ENDIF.
**--Show message if none of the fields are selectedIF it_flds[] IS INITIAL.MESSAGE 'No parameters selected' TYPE 'S'.EXIT.ENDIF.
**--Generate dynamic select-optionsREFRESH it_tabs.CLEAR : it_tabs, wa_tabs.wa_tabs-prim_tab = p_tab.APPEND wa_tabs TO it_tabs.PERFORM set_values.
**--Generate Expression from Where clauseCALL FUNCTION 'FREE_SELECTIONS_WHERE_2_EX'EXPORTINGwhere_clauses        = gx_twhereIMPORTINGexpressions          = gx_texprEXCEPTIONSincorrect_expression = 1OTHERS               = 2.IF sy-subrc NE 0.MESSAGE 'Error in Dynamic screen generation' TYPE 'I'.EXIT.ENDIF.IF gx_texpr IS NOT INITIAL.
**--Populate values to select-options from expressionPERFORM set_values.ENDIF.
**--Display screen with the fields listedIF gv_selid IS NOT INITIAL.PERFORM call_screen.ENDIF.
ENDFORM. " genr_scr
*&---------------------------------------------------------------------
*& Form GET_SELECTIONS
*&---------------------------------------------------------------------
* Fetch the fields in the table given
*----------------------------------------------------------------------
FORM get_selections.DATA : wa_where LIKE LINE OF gx_twhere.REFRESH: it_flds, gx_twhere.CLEAR : wa_flds.wa_flds-tablename = p_tab.wa_flds-type = 'S'.LOOP AT s_selop.
**--Populate all the fields selected that are previously selectedwa_flds-fieldname = s_selop-low.APPEND wa_flds TO it_flds.ENDLOOP.IF s_where[] IS NOT INITIAL.
**--Populate values to where condition if any data is previously given
**--to the dynamic select-optionswa_where-tablename = p_tab.LOOP AT s_where.APPEND s_where-low TO wa_where-where_tab.ENDLOOP.APPEND wa_where TO gx_twhere.ENDIF.
ENDFORM. " GET_SELECTIONS
*&---------------------------------------------------------------------
*& Form SELECT_FIELDLIST
*&---------------------------------------------------------------------
* Display the list of fields
*----------------------------------------------------------------------
FORM select_fieldlist.CLEAR: it_dd03l[], it_dd03l,gv_tbname.
**--Get field names for given tableSELECT tabnamefieldnamekeyflagrollnamepositionFROM dd03lINTO TABLE it_dd03lWHERE tabname EQ p_tabAND fieldname NE 'MANDT'.IF sy-subrc = 0.SORT it_dd03l BY position.DELETE it_dd03l WHERE fieldname CP '.INCLU*'.ENDIF.
**--Get the description of the fieldsLOOP AT it_dd03l INTO wa_dd03l.IF NOT wa_dd03l-rollname IS INITIAL.SELECT SINGLE ddtextFROM dd04tINTO wa_dd03l-ddtextWHERE rollname EQ wa_dd03l-rollnameAND ddlanguage = sy-languAND as4local = 'A'.MODIFY it_dd03l FROM wa_dd03l.ELSE.SELECT SINGLE ddtextFROM dd03tINTO wa_dd03l-ddtextWHERE tabname EQ wa_dd03l-tabnameAND ddlanguage = sy-languAND as4local = 'A'AND fieldname = wa_dd03l-fieldname.MODIFY it_dd03l FROM wa_dd03l.ENDIF.ENDLOOP.gv_tbname = p_tab.
**--Display screen with the fields listed for the given tableCALL SCREEN 200 STARTING AT 10 2ENDING AT 70 22.
**--Clear all the fields selectedCLEAR : it_flds, it_flds[], gv_tbname.
**--Populate the newly selected fieldsit_flds[] = it_temp[].
**--Clear temporary table with the fields selectedCLEAR : it_temp, it_temp[].
ENDFORM. " SELECT_FIELDLIST
*&---------------------------------------------------------------------
*& Form INITIALIZE_SCREEN
*&---------------------------------------------------------------------
FORM initialize_screen.CALL FUNCTION 'FREE_SELECTIONS_INIT'EXPORTINGkind                     = 'T'expressions              = gx_texprIMPORTINGselection_id             = gv_selidnumber_of_active_fields  = gv_actnumTABLEStables_tab               = it_tabsfields_tab               = it_fldsEXCEPTIONSfields_incomplete        = 01fields_no_join           = 02field_not_found          = 03no_tables                = 04table_not_found          = 05expression_not_supported = 06incorrect_expression     = 07illegal_kind             = 08area_not_found           = 09inconsistent_area        = 10kind_f_no_fields_left    = 11kind_f_no_fields         = 12too_many_fields          = 13.
ENDFORM. " INITIALIZE_SCREEN
*&---------------------------------------------------------------------
*& Form SET_VALUES
*&---------------------------------------------------------------------
* Set the values to the select-options
*----------------------------------------------------------------------
FORM set_values.CALL FUNCTION 'FREE_SELECTIONS_INIT'EXPORTINGkind                     = 'T'expressions              = gx_texprIMPORTINGselection_id             = gv_selidnumber_of_active_fields  = gv_actnumTABLEStables_tab               = it_tabsfields_tab               = it_fldsEXCEPTIONSfields_incomplete        = 01fields_no_join           = 02field_not_found          = 03no_tables                = 04table_not_found          = 05expression_not_supported = 06incorrect_expression     = 07illegal_kind             = 08area_not_found           = 09inconsistent_area        = 10kind_f_no_fields_left    = 11kind_f_no_fields         = 12too_many_fields          = 13.
ENDFORM. " SET_VALUES
*&---------------------------------------------------------------------
*& Form CALL_SCREEN
*&---------------------------------------------------------------------
* Call the screen to display the fields
*----------------------------------------------------------------------
FORM call_screen.DATA : wa_where LIKE LINE OF gx_twhere,lv_txt   TYPE string.lv_txt = 'Dynamic Selections Parameters for'(007).CONCATENATE lv_txt p_tabINTO gv_title SEPARATED BY space.CALL FUNCTION 'FREE_SELECTIONS_DIALOG'EXPORTINGselection_id            = gv_selidtitle                   = gv_titletree_visible            = ' 'IMPORTINGwhere_clauses           = gx_twhereexpressions             = gx_texprnumber_of_active_fields = gv_actnumTABLESfields_tab              = it_fldsEXCEPTIONSinternal_error          = 01no_action               = 02no_fields_selected      = 03no_tables_selected      = 04selid_not_found         = 05.IF sy-subrc EQ 0.REFRESH: s_where, s_selop.
**--Populate the Where clause with selected valuess_where-sign = gc_i.s_where-option = gc_eq.CLEAR wa_where.READ TABLE gx_twhere INDEX 1 INTO wa_where.LOOP AT wa_where-where_tab INTO s_where-low.APPEND s_where.ENDLOOP.
**--Populate all the fieldss_selop-sign = gc_i.s_selop-option = gc_eq.CLEAR : wa_flds.LOOP AT it_flds INTO wa_flds.s_selop-low = wa_flds-fieldname.APPEND s_selop.ENDLOOP.ENDIF.
ENDFORM. " CALL_SCREEN
*&---------------------------------------------------------------------
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------
* Display screen with select-options
*----------------------------------------------------------------------
MODULE status_0200 OUTPUT.DATA: lv_txt TYPE string.lv_txt = 'Selection Paramters List'(008).SET PF-STATUS 'DIALOG'.LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.SUPPRESS DIALOG.MOVE lv_txt TO sy-title.
**--display list of fields that can be selected for creating dynamic select-optionsLOOP AT it_dd03l INTO wa_dd03l.AT FIRST.WRITE: (60) sy-uline.ENDAT.READ TABLE it_flds INTO wa_flds WITH KEY fieldname = wa_dd03l-fieldname.IF sy-subrc NE 0.CLEAR gv_temp.ELSE.gv_temp = 'X'.ENDIF.WRITE:/ '|' ,gv_temp AS CHECKBOX.WRITE: (20) wa_dd03l-fieldname,'|', wa_dd03l-ddtext, AT 60 '|'.HIDE: gv_temp, wa_dd03l-fieldname, wa_dd03l-keyflag.AT LAST.WRITE: (60) sy-uline.ENDAT.ENDLOOP.
ENDMODULE. " STATUS_0200 OUTPUT
*&---------------------------------------------------------------------
*& Form FETCH_DATA
*&---------------------------------------------------------------------
* Fetch data from table
*----------------------------------------------------------------------
FORM fetch_data .DATA: lv_where TYPE string,lv_cnt   TYPE i.
**--Check for the existance of the tableSELECT *FROM dd03lINTO TABLE it_fieldsWHERE tabname = p_tab.SORT it_fields BY position.
**--Delete the fields starting with .INCLUDELETE it_fields WHERE fieldname CP '.INCLU*'.
**--Display the first 150 fields of the tableLOOP AT it_fields INTO wa_fields TO 150.lv_cnt = lv_cnt + 1.wa_cat-tabname = p_tab.wa_cat-fieldname = wa_fields-fieldname.wa_cat-col_pos = lv_cnt.wa_cat-inttype = wa_fields-inttype.wa_cat-datatype = wa_fields-datatype.wa_cat-intlen = wa_fields-intlen.wa_cat-seltext = wa_fields-fieldname.wa_cat-decimals = wa_fields-decimals.wa_cat-ref_field = wa_fields-fieldname.wa_cat-ref_table = p_tab.APPEND wa_cat TO it_cat.CLEAR wa_cat.wa_fname-fld = wa_fields-fieldname.APPEND wa_fname TO it_fname.CLEAR wa_fname.ENDLOOP.
**--Create a dynamic internal table with the 150 fieldsCALL METHOD cl_alv_table_create=>create_dynamic_tableEXPORTINGit_fieldcatalog = it_catIMPORTINGep_table        = d_ref.ASSIGN d_ref->* TO <f_fs>.
**--Populate the Where clause as a stringLOOP AT s_where.CONCATENATE lv_where s_where-low INTO lv_where SEPARATED BY space.ENDLOOP.
**--Select the data from the table given as input and populate
**--it into the dynamic internal table created based on the where conditionSELECT (it_fname)FROM (p_tab)INTO CORRESPONDING FIELDS OF TABLE <f_fs>WHERE (lv_where).
**--If no entries are found that satisfies the selection criteriaIF sy-subrc <> 0.MESSAGE 'No data found' TYPE 'I'.ENDIF.
ENDFORM. " FETCH_DATA
*&---------------------------------------------------------------------
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------
* Display data in the grid control
*----------------------------------------------------------------------
FORM display_data .IF gt_cust IS INITIAL.CREATE OBJECT gt_custEXPORTINGcontainer_name = cust.CREATE OBJECT gt_gridEXPORTINGi_parent = gt_cust.
**--Display the data in the grid controlCALL METHOD gt_grid->set_table_for_first_displayEXPORTINGi_buffer_active               = 'X'i_bypassing_buffer            = ' 'CHANGINGit_outtab                     = <f_fs>it_fieldcatalog               = it_catEXCEPTIONSinvalid_parameter_combination = 1program_error                 = 2too_many_lines                = 3OTHERS                        = 4.IF sy-subrc <> 0.ENDIF.ENDIF.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------
*& Module DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------
* Dispaly data in the output
*----------------------------------------------------------------------
MODULE display_data OUTPUT.PERFORM display_data.
ENDMODULE. " DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------
*& Module STATUS_0300 OUTPUT
*&---------------------------------------------------------------------
* Pf-status for the screen
*----------------------------------------------------------------------
MODULE status_0300 OUTPUT.SET PF-STATUS '13317'.
ENDMODULE. " STATUS_0300 OUTPUT
*&---------------------------------------------------------------------
*& Module USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------
* Handling the button clicks
*----------------------------------------------------------------------
MODULE user_command_0300 INPUT.CASE sy-ucomm.
**--Go to the previous screenWHEN 'BACK'.LEAVE TO SCREEN 0.
**--Come out of the programWHEN 'EXIT'.LEAVE PROGRAM.ENDCASE.
ENDMODULE. " USER_COMMAND_0300 INPUT

代码中用到了两个status:

1,DIALOG

2,13317

另外还要创建两个屏幕,200和300,

1,screen 0200

代码:

PROCESS BEFORE OUTPUT.
**--Set PF-STATUS
MODULE STATUS_0200.
PROCESS AFTER INPUT.

2,Screen 0300

代码:

PROCESS BEFORE OUTPUT.
**--Set PF-STATUS
MODULE STATUS_0300.
**--Display data using custom controller
MODULE DISPLAY_DATA.
PROCESS AFTER INPUT.
**--Handle button clicks
MODULE USER_COMMAND_0300.

3, 运行方法
运行如下:

输入表名后,点击options按钮选择动态select-options用到的字段,


然后进入下一屏,可以填入select-options的条件,也可以点击上面New field selection按钮添加或删除select-opions的字段。


最后,返回到初始选择画面,运行出结果,

SAP 如何在选择画面中创建动态的select-options <转载>相关推荐

  1. [代码]如何在选择画面中创建动态的select-options

    1, 用到的函数,类方法 下面介绍一个能根据所选表字段自动创建动态select-options的例子代码,代码中用到了以下函数和类方法: 1, FREE_SELECTIONS_INIT:初始化动态选择 ...

  2. SAP 如何在选择画面中显示图片 <转载> cl_gui_docking_container

    原文链接:http://www.baidusap.com/abap/5022 1, SMW0上载图片 Tcode:SMW0,选择Binary的选项 由于是测试,选择$TMP本地package,然后运行 ...

  3. SAP QM Dynamic Modification Rule (动态修改规则)

    SAP QM Dynamic Modification Rule (动态修改规则) 我们讲到决定样本大小的方式具体有三种: ⭐手动输入 ⭐比例大小 ⭐采样过程 然后采样过程的创建通常也是有两种方式: ...

  4. 如何使用Next.js创建动态的Rick and Morty Wiki Web App

    Building web apps with dynamic APIs and server side rendering are a way to give people a great exper ...

  5. SAP RETAIL初阶MM41创建商品主数据BASIC DATA里的Valuation Class

    SAP RETAIL初阶MM41创建商品主数据BASIC DATA里的Valuation Class 执行事务代码MM41,创建一个Single Material的物料. 物料类型 FOOD 物料组: ...

  6. SAP SD基础知识之创建并处理外向交货单

    SAP SD基础知识之创建并处理外向交货单 一,创建外向交货单的选项Options for Creating Outbound Deliveries 我们可以手动地创建outbound deliver ...

  7. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))...

    昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据.StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对象 ...

  8. 研一寒假02-指针_new分配内存_使用new来创建动态数组_使用动态数组_使用delete来释放new分配的内存...

    #---------------------------------指针-----------------------------------# #include <iostream> i ...

  9. VS2003创建动态库的一点笔记

    背景:与工作有关的,具体的细节就不说了(这跟某些人说"由于工作性质,我的单位名称不方便透露"等是一样的).大意是写一个基于socket的程序,可运行于Windows,也要运行于Li ...

最新文章

  1. ubuntu系统安装mysql二进制压缩包(tar.gz)以及navicat远程连接服务器(linux系统)
  2. 在路由器上设置虚拟ftp服务器,怎么在路由器上开启ftp服务器配置
  3. CMAKE_C_COMPILER not set
  4. Java输入两个正整数m和n,求其最大公约数和最小公倍数。
  5. JZOJ 5931. 【NOIP2018模拟10.27】冒泡排序
  6. 小议同步IO :fsync与fdatasync
  7. maven生成javadoc【原创】
  8. 火狐浏览器使用copper插件无反应问题
  9. SharePoint Server 2016 部署安装(七)—— 配置SharePoint Server
  10. [HNOI2011]数学作业 题解
  11. 阿里实人认证android,Android客户端接入
  12. Android项目开发实战——简单备忘录
  13. 王道操作系统课代表 - 考研计算机 第一章 计算机概述 究极精华总结笔记
  14. 关于vscode中出现gopls was not able to find modules in your workspace报错的解决方案
  15. 用库卡机器人编程写字_KUKA机器人的操作与基本运动编程(学员必备)
  16. PHP快速入门-基础语法及面向对象
  17. 51单片机控制小舵机
  18. ABAP 计量单位转换
  19. Linux效劳器装机安全疾速进阶指南(2)
  20. android dex 加固,Dex文件加固

热门文章

  1. kotlin中EditText赋值Type mismatch
  2. C#自定义用户控件之分页
  3. Python爬虫入门教程02:小说爬取
  4. WIFI天气闹钟+无线夜灯控制(一)
  5. 基于socket.io的web聊天室
  6. chrono 库的用途
  7. 透彻感知 数字孪生智慧隧道Web3D可视化监控系统
  8. 最新出炉!《看漫画学Python 2》电子版火爆来袭,300页全新版PDF开放下载,零基础小白入门首选!
  9. 图灵停机问题的史上最详细描述
  10. linux查看程序recvfrom,linux udp 客户端recvfrom,一直没有数据接收,谁能帮看看这代码哪里出了问题了????...