[代码]如何在选择画面中创建动态的select-options
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
&lt;img class="alignnone size-full wp-image-4771" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-33-25.png" alt="" width="879" height="611" srcset="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-33-25.png 879w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-33-25-740x514.png 740w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-33-25-768x534.png 768w" sizes="(max-width: 879px) 100vw, 879px" /&gt;
2,13317
&lt;img class="alignnone size-full wp-image-4772" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-34-43.png" alt="" width="809" height="606" srcset="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-34-43.png 809w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-34-43-740x554.png 740w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-34-43-768x575.png 768w" sizes="(max-width: 809px) 100vw, 809px" /&gt;
另外还要创建两个屏幕,200和300,
1,screen 0200
&lt;img class="alignnone size-full wp-image-4773" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-35-46.png" alt="" width="406" height="223" /&gt;
代码:
PROCESS BEFORE OUTPUT. **--Set PF-STATUS MODULE STATUS_0200. PROCESS AFTER INPUT.
2,Screen 0300
&lt;img class="alignnone size-full wp-image-4774" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-36-30.png" alt="" width="438" height="239" /&gt;
代码:
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用到的字段,
&lt;img class="alignnone size-full wp-image-4775" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-37-57.png" alt="" width="550" height="223" /&gt;
&lt;img class="alignnone size-full wp-image-4776" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-39-11.png" alt="" width="522" height="539" /&gt;
然后进入下一屏,可以填入select-options的条件,也可以点击上面New field selection按钮添加或删除select-opions的字段。
&lt;img class="alignnone size-full wp-image-4777" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-40-19.png" alt="" width="719" height="266" /&gt;
&lt;img class="alignnone size-full wp-image-4778" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-42-21.png" alt="" width="935" height="596" srcset="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-42-21.png 935w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-42-21-740x472.png 740w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-42-21-768x490.png 768w" sizes="(max-width: 935px) 100vw, 935px" /&gt;
最后,返回到初始选择画面,运行出结果,
&lt;img class="alignnone size-full wp-image-4781" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-44-30.png" alt="" width="478" height="169" /&gt;
&lt;img class="alignnone size-full wp-image-4780" src="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-43-31.png" alt="" width="1000" height="368" srcset="http://www.baidusap.com/wp-content/uploads/2017-06-27_10-43-31.png 1000w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-43-31-740x272.png 740w, http://www.baidusap.com/wp-content/uploads/2017-06-27_10-43-31-768x283.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /&gt;
以上。
转载于:https://www.cnblogs.com/datie/p/11433965.html
[代码]如何在选择画面中创建动态的select-options相关推荐
- SAP 如何在选择画面中创建动态的select-options <转载>
原文链接:http://www.baidusap.com/abap/report/4770 1, 用到的函数,类方法 下面介绍一个能根据所选表字段自动创建动态select-options的例子代码,代 ...
- 如何使用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 ...
- python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))...
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据.StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对象 ...
- VS2003创建动态库的一点笔记
背景:与工作有关的,具体的细节就不说了(这跟某些人说"由于工作性质,我的单位名称不方便透露"等是一样的).大意是写一个基于socket的程序,可运行于Windows,也要运行于Li ...
- 在Angular 8中使用自定义MultiSelect下拉菜单创建动态行
目录 介绍 如何工作? 先决条件 使用代码 第1步 第2步 第3步 第4步 第5步 第6步 第7步 第8步 第9步 第10步 第11步 结论 介绍 在本文中,我们将学习如何使用Angular 8创建动 ...
- python动态创建字典_如何在Python中创建动态命名字典?
与其尝试动态生成一个动态数量的变量名,不如选择另一个更高级别的数据结构来存储对象,例如字典或列表.在import pandas as pd REFERENCE_CODE = ["ladder ...
- 从零开始--系统深入学习android(实践-让我们开始写代码-新手指南-6.使用Fragments构建动态UI)...
第6章 使用Fragments构建动态UI 为了在Android创建一个动态的多面的用户界面,你需要封装UI组件和activity的行为到一种可以相互交换的act的模块中.我们能使用 Fragment ...
- 使用Visual Studio来创建动态库/静态库,并加载
使用Visual Studio来创建动态库 第一步新建一个控制台程序 第二步去掉SDL安全开发周期,以及选中创建DLL空项目 在资源管理器中添加.h和.cpp文件 在.h文件里可以写上函数的声明: # ...
- 【高级PDF库】上海道宁为您提供先进的.Net库,完全控制您的PDF创建工作流程,在WEB或任何服务器系统上创建动态PDF
Pdfium.Net SDK是 先进的.Net library 用于生成.操作和查看 可移植文档格式的文件 道宁专注于软件工具经销 为您带来高级PDF库 可完全控制您的PDF创建工作流程 提供高级c# ...
最新文章
- 美国韩国科学家纷纷开发出电子机器人“皮肤”,据称具有比人类更好的触觉...
- leach协议matlab仿真代码
- .net core 使用 codegenerator 创建默认CRUD代码
- SQLServer无法打开用户默认数据库,登录失败,错误4064的解决办法
- 正确获取硬盘序列号源码
- 根因分析初探:一种报警聚类算法在业务系统的落地实施 1
- 怎么让打印出来表格的纸下面显示页数_4个使用频率较高的Excel打印技巧,办公室打印文件时常常会用到!...
- html语言漂移属性,设置层的漂移_html/css_WEB-ITnose
- 离线语音控制并不等于本地语音识别
- matlab帕累托分布函数,matlab 进行广义的帕累托参数估计
- linux下封装命令,linux系统怎么封装
- webpackjsonp 还原_冰点还原标准版v8.56.020.5542——墨涩网
- 平行四边形的定义以及判定和性质
- A*算法中二叉堆的使用
- 37种土豆的制作方法
- canvas将彩色图片变为灰度图片理解问题
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法
- Django中filer和get的区别
- 关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
- 实现一个CAN通讯上位机
热门文章
- 毛哥的快乐生活(24) 庐中论天下 酒里定乾坤
- 基于SSM框架的人事管理系统设计
- flashback功能全解析
- ArcGIS Engine开发学习(2)控件的使用案例
- #10025 「一本通 1.3 练习 4」靶形数独P1074 [NOIP2009 提高组]
- 音频常用协议说明 IIS TDM PDM PCM SPDIF协议解析
- 多重整合的KDJ操盘副图公式/多维共振指标源码分享-标签云集_延进公式网-股票金钻指标公式大全
- JavaScript的经典高频面试题解析
- ubuntu一键更换内核 安装锐速 - 16.04 14.04可用
- riki小车应用记录(1)