*功能如下:
*1.界面定时刷新,无需手动刷新,这个可以指定时间。
*2.涨跌着色,一目了然,参照其它股票行情软件,不同区域使用不同的着色。
*3.可以增加,删除行项目。
*4.抬头增加刷新时间显示。
*5.分时信息,盘口信息单独显示。
*6.增加行情数据来源,新的行情信息来自腾讯,信息更完整。REPORT zstock_003.
*TYPE-POOLS: abap,slis.
TABLES: zstock_list.*INCLUDE zstock_json_util.DATA:f_picture TYPE REF TO cl_gui_picture,r_picture TYPE REF TO cl_gui_picture,z_picture TYPE REF TO cl_gui_picture,y_picture TYPE REF TO cl_gui_picture.DATA: f_container TYPE REF TO cl_gui_custom_container,r_container TYPE REF TO cl_gui_custom_container,y_container TYPE REF TO cl_gui_custom_container,z_container TYPE REF TO cl_gui_custom_container.
DATA:f_url TYPE cndp_url,r_url TYPE cndp_url,z_url TYPE cndp_url,y_url TYPE cndp_url.DATA:stock_url(20) TYPE c.
DATA:ok_code LIKE sy-ucomm.DATA: gv_snum(6) TYPE c.
TYPES: BEGIN OF ty_snum,num(6) TYPE c,END OF ty_snum.TYPES: BEGIN OF ty_sl_snum,sign TYPE char1,option TYPE char2,low TYPE char6,high TYPE char6,END OF ty_sl_snum.DATA: gs_range_snum TYPE ty_sl_snum.*  清单代码清单
DATA: gt_snum TYPE TABLE OF ty_snum WITH HEADER LINE.DATA: gv_status TYPE char20 .*----------------TYPE DEFINITION--------------------------
TYPES: BEGIN OF ty_list,name TYPE char6, "股票名字code TYPE char10, "股票代码curr TYPE dmbtr, "当前价格;yclos TYPE dmbtr, "昨日收盘价;open TYPE dmbtr, "今日开盘价total TYPE dmbtr, "成交的股票数buyf TYPE dmbtr, "外盘salef TYPE dmbtr, "内盘buy12 TYPE dmbtr, "买一,报价buy11 TYPE dec10, "买一,数量buy22 TYPE dmbtr, "买二,报价buy21 TYPE dec10, "买二,数量buy32 TYPE dmbtr, "买三,报价buy31 TYPE dec10, "买三,数量buy42 TYPE dmbtr, "买四,报价buy41 TYPE dec10, "买四,数量buy52 TYPE dmbtr, "买五,报价buy51 TYPE dec10, "买五,数量sale12 TYPE dmbtr, "卖一,报价sale11 TYPE dec10, "卖一,数量sale22 TYPE dmbtr, "卖二,报价sale21 TYPE dec10, "卖二,数量sale32 TYPE dmbtr, "卖三,报价sale31 TYPE dec10, "卖三,数量sale42 TYPE dmbtr, "卖四,报价sale41 TYPE dec10, "卖四,数量sale52 TYPE dmbtr, "卖五,报价sale51 TYPE dec10, "卖五,数量deal TYPE string, "最近逐笔成交date TYPE sy-datum, "时间time TYPE sy-uzeit,updwn TYPE dmbtr, "涨跌updwnp TYPE dmbtr, "涨跌%high TYPE dmbtr, "当日最高价low TYPE dmbtr, "今日最低价prcamt TYPE string, "价格/成交量(手)/成交额number TYPE dmbtr, "总手amount TYPE dmbtr, "成交额(万)chrn TYPE dmbtr, "换手率peratio TYPE dmbtr, "市盈率top TYPE dmbtr, "最高lowest TYPE dmbtr, "最低swing TYPE dmbtr, "振幅marketv TYPE dmbtr, "流通市值totalv TYPE dmbtr, "总市值pb TYPE dmbtr, "市净率hlimit TYPE dmbtr, "涨停价stopp TYPE dmbtr, "跌停价
END OF ty_list.TYPES: BEGIN OF ty_internal,_number TYPE i ,"序列号_excp TYPE c,"需要在LAYOUT-EXCP_FNAME中指定,绿灯3,红灯1,黄灯2"_check TYPE c ,"复选框,还需要在FCAT中设置成CHECKBOX,记录用户的选择_box TYPE c ,"需要在LAYOUT-BOX_NAME中指定,记录用户的选择,跟_BOX不同,记录的是ALV控件的标准选择框,_delete TYPE c , "记录删除标识X"_action TYPE c ,"用户操作,插入I,更新U,删除D"_row_id TYPE sytabix,"行项目ID"_tabix  TYPE sytabix,"引用的表行标识"_line_color(4) TYPE c, "行项目的颜色"_field_style  TYPE lvc_t_styl,"行项目的样式"_cell_colors TYPE lvc_t_scol ,"颜色控制_mess_type TYPE c,"消息类型,用于数据检查"_message TYPE char255,"行项目的消息内容"
END OF ty_internal.
TYPES: BEGIN OF ty_type.INCLUDE TYPE ty_internal.INCLUDE TYPE ty_list.
TYPES END OF ty_type.DATA: gt_table TYPE TABLE OF ty_type WITH HEADER LINE.
DATA: gv_code TYPE ty_type-code.TYPES: BEGIN OF ty_charlist,name TYPE char10, "股票名字code TYPE char10, "股票代码curr TYPE char10, "当前价格;yclos TYPE char10, "昨日收盘价;open TYPE char10, "今日开盘价total TYPE char10, "成交的股票数buyf TYPE char10, "外盘salef TYPE char10, "内盘buy12 TYPE char8, "买一,报价buy11 TYPE char10, "买一,数量buy22 TYPE char8, "买二,报价buy21 TYPE char10, "买二,数量buy32 TYPE char8, "买三,报价buy31 TYPE char10, "买三,数量buy42 TYPE char8, "买四,报价buy41 TYPE char10, "买四,数量buy52 TYPE char8, "买五,报价buy51 TYPE char10, "买五,数量sale12 TYPE char8, "卖一,报价sale11 TYPE char10, "卖一,数量sale22 TYPE char8, "卖二,报价sale21 TYPE char10, "卖二,数量sale32 TYPE char8, "卖三,报价sale31 TYPE char10, "卖三,数量sale42 TYPE char8, "卖四,报价sale41 TYPE char10, "卖四,数量sale52 TYPE char8, "卖五,报价sale51 TYPE char10, "卖五,数量deal TYPE string, "最近逐笔成交date TYPE sy-datum, "时间time TYPE sy-uzeit,updwn TYPE char10, "涨跌updwnp TYPE char10, "涨跌%high TYPE char10, "当日最高价low TYPE char10, "今日最低价prcamt TYPE string, "价格/成交量(手)/成交额number TYPE char10, "总手amount TYPE char10, "成交额(万)chrn TYPE char10, "换手率peratio TYPE char10, "市盈率top TYPE char10, "最高lowest TYPE char10, "最低swing TYPE char10, "振幅marketv TYPE char10, "流通市值totalv TYPE char10, "总市值pb TYPE char10, "市净率hlimit TYPE char10, "涨停价stopp TYPE char10, "跌停价
END OF ty_charlist.DATA: gs_table TYPE ty_charlist.
DATA: gv_tabidx TYPE sy-tabix.
*ALV类变量定义DATA: gs_layout         TYPE lvc_s_layo.
DATA: gt_fieldcat       TYPE lvc_t_fcat.
DATA: gt_alv_sort       TYPE lvc_t_sort.DATA: x_save            TYPE c,gs_variant        TYPE disvariant,g_title           TYPE lvc_title.
DATA: g_grid            TYPE REF TO cl_gui_alv_grid.*----------------------------------------------------------------------*
* CLASS lcl_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_receiver DEFINITION.PUBLIC SECTION.METHODS:handle_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS. "lcl_receiver DEFINITION*----------------------------------------------------------------------*
* CLASS lcl_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_receiver IMPLEMENTATION.METHOD handle_finished.CALL METHOD cl_gui_cfw=>set_new_ok_codeEXPORTINGnew_code = '&NTE'.ENDMETHOD. "handle_finished
ENDCLASS. "lcl_receiver IMPLEMENTATIONDATA: receiver TYPE REF TO lcl_receiver,timer    TYPE REF TO cl_gui_timer.**屏幕
SELECTION-SCREEN BEGIN OF SCREEN 101.
SELECT-OPTIONS: op1_snum  FOR zstock_list-code MATCHCODE OBJECT zstock_help1."gv_snum.
SELECTION-SCREEN END OF SCREEN 101.SELECT-OPTIONS:op_snum FOR zstock_list-code MATCHCODE OBJECT zstock_help1."gv_snum.
PARAMETERS: p_time TYPE int4 DEFAULT 5.
PARAMETERS: p_col TYPE char1 AS CHECKBOX DEFAULT ' '."颜色控制。
**屏幕INITIALIZATION.
*默认自己设的变式U+登录用户名PERFORM init_variant.CREATE OBJECT timer.CREATE OBJECT receiver.SET HANDLER receiver->handle_finished FOR timer.timer->interval = p_time.gv_status = sy-uzeit.START-OF-SELECTION .PERFORM set_number TABLES op_snum[] USING ''.PERFORM read_data.PERFORM dis_prepare_layout CHANGING gs_layout.PERFORM dis_prepare_sort CHANGING gt_alv_sort.PERFORM dis_prepare_field_catalog CHANGING gt_fieldcat.PERFORM dis_show_data_alv.*  PERFORM write_grid_output.*&---------------------------------------------------------------------*
*& Form READ_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM read_data.DATA: l_tmp         TYPE string,l_str         TYPE string,l_url         TYPE string.IF gt_snum[] IS INITIAL.RETURN.ENDIF.CLEAR: gt_table,gt_table[].
*  PERFORM read_data_from_sina.PERFORM read_data_from_tencent.PERFORM modify_before_dis.
*  PERFORM build_filedcat1.
*  PERFORM process_data.PERFORM move_to_screen.ENDFORM. "READ_DATA*&---------------------------------------------------------------------*
*&      Form  move_to_screen
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM move_to_screen.IF gv_code IS NOT INITIAL.READ TABLE gt_table  WITH KEY code = gv_code.IF sy-subrc = 0.MOVE-CORRESPONDING gt_table TO gs_table.ELSE.CLEAR gs_table.ENDIF.ENDIF.CALL METHOD timer->run.
ENDFORM.                    "move_to_screen*&---------------------------------------------------------------------*
*&      Form  read_data_from_sina
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM read_data_from_sina.DATA: l_res TYPE string.DATA: result_tab TYPE TABLE OF string WITH HEADER LINE.DATA: l_tmp TYPE string,l_str TYPE string,l_url TYPE string.DATA: lt_feld TYPE TABLE OF string WITH HEADER LINE.DATA: idx TYPE sy-tabix.FIELD-SYMBOLS: <dyn_field>.*  REFRESH result_tab .LOOP AT gt_snum.CLEAR l_tmp.IF gt_snum-num(1) < 6.CONCATENATE 'sz' gt_snum-num INTO l_tmp.ENDIF.IF gt_snum-num(1) = '6'.CONCATENATE 'sh' gt_snum-num INTO l_tmp.ENDIF.CONCATENATE l_str l_tmp INTO l_str SEPARATED BY ','.ENDLOOP.IF l_str(1) = ','.SHIFT l_str LEFT DELETING LEADING ','.ENDIF.CONCATENATE 'http://58.63.237.216/list=' l_str INTO l_url .PERFORM send_http USING l_url CHANGING l_res.SPLIT l_res AT cl_abap_char_utilities=>newline INTO TABLE result_tab ."新浪下载实时数据,类型与下载的数据一致。TYPES: BEGIN OF ty_sina_live,code TYPE string,"股票代码name TYPE string,"股票名字open TYPE string,"今日开盘价yclos TYPE string,"昨日收盘价;curr TYPE string,"当前价格;high TYPE string,"当日最高价low TYPE string,"今日最低价buy1 TYPE string,"竞买价,即“买一”报价;sale1 TYPE string,"竞卖价,即“卖一”报价;total TYPE string,"成交的股票数amount TYPE string,"成交的金额buy11 TYPE string,"买一,数量buy12 TYPE string,"买一,报价buy21 TYPE string,"买二,数量buy22 TYPE string,"买二,报价buy31 TYPE string,"买三,数量buy32 TYPE string,"买三,报价buy41 TYPE string,"买四,数量buy42 TYPE string,"买四,报价buy51 TYPE string,"买五,数量buy52 TYPE string,"买五,报价sale11 TYPE string,"卖一,数量sale12 TYPE string,"卖一,报价sale21 TYPE string,"卖二,数量sale22 TYPE string,"卖二,报价sale31 TYPE string,"卖三,数量sale32 TYPE string,"卖三,报价sale41 TYPE string,"卖四,数量sale42 TYPE string,"卖四,报价sale51 TYPE string,"卖五,数量sale52 TYPE string,"卖五,报价date TYPE string,"日期time TYPE string,"时间END OF ty_sina_live.DATA : lt_sina_live TYPE TABLE OF ty_sina_live WITH HEADER LINE.LOOP AT result_tab.CLEAR: lt_feld,lt_feld[].SPLIT result_tab AT ',' INTO TABLE lt_feld.READ TABLE lt_feld INDEX 1.IF sy-subrc = 0.lt_sina_live-code = lt_feld+13(6).lt_sina_live-name = lt_feld+21.ELSE.MESSAGE e001(00) WITH '下载数据出错。'.ENDIF.idx = 2.WHILE idx < 33.READ TABLE lt_feld INDEX idx.idx = idx + 1.ASSIGN COMPONENT idxOF STRUCTURE lt_sina_live TO <dyn_field>.<dyn_field> = lt_feld.ENDWHILE.APPEND lt_sina_live.ENDLOOP.LOOP AT lt_sina_live.MOVE-CORRESPONDING lt_sina_live TO gt_table.gt_table-date = lt_sina_live-date.gt_table-time = lt_sina_live-time.APPEND gt_table.ENDLOOP.
ENDFORM.                    "read_data_from_sina*&---------------------------------------------------------------------*
*&      Form  read_data_from_tensent
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM read_data_from_tencent.DATA: l_res TYPE string.DATA: result_tab TYPE TABLE OF string WITH HEADER LINE.DATA: l_tmp TYPE string,l_str TYPE string,l_url TYPE string.DATA: lt_feld TYPE TABLE OF string WITH HEADER LINE.DATA: idx TYPE sy-tabix.FIELD-SYMBOLS: <dyn_field>.*  REFRESH result_tab .SORT gt_snum.delete ADJACENT DUPLICATES FROM gt_snum.LOOP AT gt_snum.CLEAR l_tmp.IF gt_snum-num(1) < 6.CONCATENATE 'sz' gt_snum-num INTO l_tmp.ENDIF.IF gt_snum-num(1) = '6'.CONCATENATE 'sh' gt_snum-num INTO l_tmp.ENDIF.CONCATENATE l_str l_tmp INTO l_str SEPARATED BY ','.ENDLOOP.IF l_str(1) = ','.SHIFT l_str LEFT DELETING LEADING ','.ENDIF.
*  CONCATENATE 'http://qt.gtimg.cn/q=' l_str INTO l_url .CONCATENATE 'http://14.17.52.161/q=' l_str INTO l_url .PERFORM send_http USING l_url CHANGING l_res.SPLIT l_res AT cl_abap_char_utilities=>newline INTO TABLE result_tab ."新浪下载实时数据,类型与下载的数据一致。TYPES: BEGIN OF ty_struct,unkn TYPE char20,"未知name TYPE string,"股票名字code TYPE string,"股票代码curr TYPE string,"当前价格;yclos TYPE string,"昨日收盘价;open TYPE string,"今日开盘价total TYPE string,"成交的股票数buyf TYPE string,"外盘salef TYPE string,"内盘buy12 TYPE string,"买一,报价buy11 TYPE string,"买一,数量buy22 TYPE string,"买二,报价buy21 TYPE string,"买二,数量buy32 TYPE string,"买三,报价buy31 TYPE string,"买三,数量buy42 TYPE string,"买四,报价buy41 TYPE string,"买四,数量buy52 TYPE string,"买五,报价buy51 TYPE string,"买五,数量sale12 TYPE string,"卖一,报价sale11 TYPE string,"卖一,数量sale22 TYPE string,"卖二,报价sale21 TYPE string,"卖二,数量sale32 TYPE string,"卖三,报价sale31 TYPE string,"卖三,数量sale42 TYPE string,"卖四,报价sale41 TYPE string,"卖四,数量sale52 TYPE string,"卖五,报价sale51 TYPE string,"卖五,数量deal TYPE string,"最近逐笔成交datetime TYPE string,"时间updwn TYPE string,"涨跌updwnp TYPE string,"涨跌%high TYPE string,"当日最高价low TYPE string,"今日最低价prcamt TYPE string,"价格/成交量(手)/成交额number TYPE string,"成交量(手)amount TYPE string,"成交额(万)chrn TYPE string,"换手率peratio TYPE string,"市盈率unkn1 TYPE string,"top TYPE string,"最高lowest TYPE string,"最低swing TYPE string,"振幅marketv TYPE string,"流通市值totalv TYPE string,"总市值pb TYPE string,"市净率hlimit TYPE string,"涨停价stopp TYPE string,"跌停价END OF ty_struct.DATA : lt_struct TYPE TABLE OF ty_struct WITH HEADER LINE.LOOP AT result_tab.CLEAR: lt_feld,lt_feld[].SPLIT result_tab AT '~' INTO TABLE lt_feld.idx = 1.WHILE idx < 50.READ TABLE lt_feld INDEX idx.ASSIGN COMPONENT idxOF STRUCTURE lt_struct TO <dyn_field>.<dyn_field> = lt_feld.idx = idx + 1.ENDWHILE.APPEND lt_struct.ENDLOOP.LOOP AT lt_struct.MOVE-CORRESPONDING lt_struct TO gt_table.gt_table-date = lt_struct-datetime(8).gt_table-time = lt_struct-datetime+8(6).APPEND gt_table.ENDLOOP.
ENDFORM.                    "read_data_from_tensent*&---------------------------------------------------------------------*
*&      Form  modify_before_dis
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM modify_before_dis."颜色 ,5是绿色,6是红色。DATA ls_cellcolor TYPE lvc_s_scol ."颜色控制DEFINE change_field_color.clear ls_cellcolor.ls_cellcolor-fname = &1 .ls_cellcolor-color-col = &2 .ls_cellcolor-color-int = '1' .ls_cellcolor-color-inv = '0' .append ls_cellcolor to gt_table-_cell_colors .END-OF-DEFINITION.DATA : c_red TYPE lvc_s_scol-color-col VALUE 5.DATA : c_gre TYPE lvc_s_scol-color-col VALUE 7.LOOP AT gt_table.IF p_col IS NOT INITIAL."外盘总是红色IF gt_table-buyf IS NOT INITIAL.change_field_color 'BUYF' c_red.ENDIF."内秀总是绿色。IF gt_table-salef IS NOT INITIAL.change_field_color 'SALEF' c_gre.ENDIF.IF gt_table-updwn < 0.gt_table-_excp = 3.change_field_color 'CURR' c_red.change_field_color 'UPDWN' c_red.change_field_color 'UPDWNP' c_red.ELSEIF gt_table-updwn = 0.gt_table-_excp = 2.ELSE.gt_table-_excp = 1.change_field_color 'CURR' c_gre.change_field_color 'UPDWN' c_gre.change_field_color 'UPDWNP' c_gre.ENDIF.IF gt_table-open IS NOT INITIAL.IF gt_table-open > gt_table-yclos.change_field_color 'OPEN' c_gre.ELSEIF gt_table-open < gt_table-yclos.change_field_color 'OPEN' c_red.ENDIF.ENDIF.IF gt_table-high IS NOT INITIAL.IF gt_table-high > gt_table-yclos.change_field_color 'HIGH' c_gre.ELSEIF gt_table-high < gt_table-yclos.change_field_color 'HIGH' c_red.ENDIF.ENDIF.IF gt_table-low IS NOT INITIAL.IF gt_table-low > gt_table-yclos.change_field_color 'LOW' c_gre.ELSEIF gt_table-low < gt_table-yclos.change_field_color 'LOW' c_red.ENDIF.ENDIF.ENDIF.IF gt_table-total IS NOT INITIAL.gt_table-total = gt_table-total / 10000.ENDIF.IF gt_table-salef IS NOT INITIAL.gt_table-salef = gt_table-salef / 10000.ENDIF.IF gt_table-buyf IS NOT INITIAL.gt_table-buyf = gt_table-buyf / 10000.ENDIF.IF gt_table-number IS NOT INITIAL.gt_table-number = gt_table-number / 10000.ENDIF.IF gt_table-updwnp = '0.00' .CLEAR gt_table-updwnp.ENDIF.MODIFY gt_table.ENDLOOP.
ENDFORM.                    "modify_before_dis*&---------------------------------------------------------------------*
*& Form send_http
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_NUM text
* -->RT_TAB text
*----------------------------------------------------------------------*
FORM send_http USING p_url TYPE string CHANGING p_res TYPE string.DATA: loc_conv      TYPE REF TO cl_abap_conv_in_ce,http_client   TYPE REF TO if_http_client,abap_encoding TYPE abap_encoding,l_xstr         TYPE xstring,l_str         TYPE string,l_result      TYPE string,r_str         TYPE string.CALL METHOD cl_http_client=>create_by_urlEXPORTINGurl                = p_urlIMPORTINGclient             = http_clientEXCEPTIONSargument_not_found = 1plugin_not_active  = 2internal_error     = 3OTHERS             = 4.CALL METHOD http_client->request->set_header_fieldEXPORTINGname  = 'Content-Type'value = 'text/html;charset=utf-8'."发送字符串时只能用utf-8编码CALL METHOD http_client->sendEXCEPTIONShttp_communication_failure = 1http_invalid_state         = 2.CALL METHOD http_client->receiveEXCEPTIONShttp_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3.CLEAR l_result .l_xstr = http_client->response->get_data( ).IF sy-subrc = 0 .http_client->close( ).ENDIF.CALL METHOD cl_abap_conv_in_ce=>createEXPORTINGinput       = l_xstrencoding    = '8400'replacement = '?'ignore_cerr = abap_trueRECEIVINGconv        = loc_conv."二进制转文本。TRY.CALL METHOD loc_conv->readIMPORTINGdata = l_str.CATCH cx_sy_conversion_codepage.CATCH cx_sy_codepage_converter_init.CATCH cx_parameter_invalid_type.CATCH cx_parameter_invalid_range.ENDTRY.IF l_str(6) = '<html>' or l_str = 'pv_none_match=1;'.MESSAGE e001(00) WITH '股票代码不正确'.ENDIF.p_res = l_str.ENDFORM. "send_http*&---------------------------------------------------------------------*
*&      Form  DIS_PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PS_LAYOUT  text
*----------------------------------------------------------------------*
FORM dis_prepare_layout CHANGING ps_layout TYPE lvc_s_layo.g_title = sy-title.ps_layout-cwidth_opt = 'X'.ps_layout-zebra      = 'X'.ps_layout-box_fname  = '_BOX'.ps_layout-sel_mode   = 'A'.ps_layout-excp_fname = '_EXCP'.ps_layout-excp_led = 'X'.ps_layout-info_fname = '_LINE_COLOR'.ps_layout-grid_title = g_title.ps_layout-stylefname = '_FIELD_STYLE'.ps_layout-detailinit = 'X' . " 是否可以弹出细节屏幕ps_layout-detailtitl = g_title. " 细节屏幕标题ps_layout-ctab_fname = '_CELL_COLORS'.ENDFORM. " prepare_layout*&---------------------------------------------------------------------*
*&      Form  DIS_PREPARE_SORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PT_SORT    text
*----------------------------------------------------------------------*
FORM dis_prepare_sort CHANGING pt_sort TYPE lvc_t_sort.DATA: ls_sort TYPE lvc_s_sort.CLEAR ls_sort.ls_sort-fieldname = 'CODE'.ls_sort-up = 'X'.APPEND ls_sort TO pt_sort.ENDFORM.                    "dis_preparc_sort*&---------------------------------------------------------------------*
*&      Form  DIS_PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PT_FIELDCAT  text
*----------------------------------------------------------------------*
FORM dis_prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat .CLEAR pt_fieldcat[].DATA ls_fcat TYPE lvc_s_fcat .CLEAR ls_fcat .ls_fcat-coltext     = '状态'.ls_fcat-fieldname   = '_EXCP'.ls_fcat-outputlen = 1.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '代码'.ls_fcat-fieldname   = 'CODE'.ls_fcat-hotspot   = 'X'.ls_fcat-fix_column  = 'X'.
*  ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '名称'.ls_fcat-fieldname   = 'NAME'.ls_fcat-no_zero     = 'X'.ls_fcat-f4availabl  = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '涨幅%'.ls_fcat-fieldname   = 'UPDWNP'.ls_fcat-no_zero     = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '现价'.ls_fcat-fieldname   = 'CURR'.ls_fcat-no_zero     = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '涨跌'.ls_fcat-fieldname   = 'UPDWN'.ls_fcat-no_zero     = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '总手(万)'.ls_fcat-fieldname   = 'TOTAL'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '外盘(万)'.ls_fcat-fieldname   = 'SALEF'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '内盘(万)'.ls_fcat-fieldname   = 'BUYF'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买一价'.
*  ls_fcat-fieldname   = 'BUY12'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买一量'.
*  ls_fcat-fieldname   = 'BUY11'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买二价'.
*  ls_fcat-fieldname   = 'BUY22'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买二量'.
*  ls_fcat-fieldname   = 'BUY21'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买三价'.
*  ls_fcat-fieldname   = 'BUY32'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买三量'.
*  ls_fcat-fieldname   = 'BUY31'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买四价'.
*  ls_fcat-fieldname   = 'BUY42'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买四量'.
*  ls_fcat-fieldname   = 'BUY41'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买五价'.
*  ls_fcat-fieldname   = 'BUY52'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '买五量'.
*  ls_fcat-fieldname   = 'BUY51'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖一价'.
*  ls_fcat-fieldname   = 'SALE12'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖一量'.
*  ls_fcat-fieldname   = 'SALE11'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖二价'.
*  ls_fcat-fieldname   = 'SALE22'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖二量'.
*  ls_fcat-fieldname   = 'SALE21'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖三价'.
*  ls_fcat-fieldname   = 'SALE32'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖三量'.
*  ls_fcat-fieldname   = 'SALE31'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖四价'.
*  ls_fcat-fieldname   = 'SALE42'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖四量'.
*  ls_fcat-fieldname   = 'SALE41'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖五价'.
*  ls_fcat-fieldname   = 'SALE52'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '卖五量'.
*  ls_fcat-fieldname   = 'SALE51'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '最近逐笔成交'.
*  ls_fcat-fieldname   = 'DEAL'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '最高价'.ls_fcat-fieldname   = 'HIGH'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '最低价'.ls_fcat-fieldname   = 'LOW'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '开盘'.ls_fcat-fieldname   = 'OPEN'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '昨收'.ls_fcat-fieldname   = 'YCLOS'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.*  ls_fcat-coltext     = '价格/成交量(手)/成交额'.
*  ls_fcat-fieldname   = 'PRCAMT'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '成交量(万手)'.ls_fcat-fieldname   = 'NUMBER'.ls_fcat-no_zero     = 'X'.ls_fcat-col_opt     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '成交额(万)'.ls_fcat-fieldname   = 'AMOUNT'.ls_fcat-no_zero     = 'X'.ls_fcat-col_opt     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '换手率'.ls_fcat-fieldname   = 'CHRN'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '市盈率'.ls_fcat-fieldname   = 'PERATIO'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '最高'.
*  ls_fcat-fieldname   = 'TOP'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
*  ls_fcat-coltext     = '最低'.
*  ls_fcat-fieldname   = 'LOWEST'.
*  ls_fcat-no_zero     = 'X'.
*  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '振幅'.ls_fcat-fieldname   = 'SWING'.ls_fcat-no_zero     = 'X'.ls_fcat-f4availabl  = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '流通市值'.ls_fcat-fieldname   = 'MARKETV'.ls_fcat-no_zero     = 'X'.ls_fcat-f4availabl  = 'X'.ls_fcat-fix_column  = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '总市值'.ls_fcat-fieldname   = 'TOTALV'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '市净率'.ls_fcat-fieldname   = 'PB'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '涨停价'.ls_fcat-fieldname   = 'HLIMIT'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '跌停价'.ls_fcat-fieldname   = 'STOPP'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '时间'.ls_fcat-fieldname   = 'TIME'.
*  ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.ls_fcat-coltext     = '日期'.ls_fcat-fieldname   = 'DATE'.ls_fcat-no_zero     = 'X'.APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
ENDFORM .                    "DIS_PREPARE_LAYOUT*显示ALV------------------------------------------------------------------------
FORM dis_show_data_alv.DATA: i_grid_title TYPE lvc_title .i_grid_title =  g_title . "'ALV标题' ." 定义隐藏标准按钮的变量DATA: wa_excluding TYPE slis_extab ,it_excluding TYPE slis_t_extab ." 设置要隐藏的按钮的“FCODE”wa_excluding-fcode = '&ABC' .APPEND wa_excluding TO it_excluding .CLEAR wa_excluding.DATA:lt_events TYPE TABLE OF slis_alv_event WITH HEADER LINE.lt_events-name = 'CALLER_EXIT'.lt_events-form = 'ALV_EVENT_CALLER_EXIT'.APPEND lt_events.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program       = sy-repid " 当前程序is_layout_lvc            = gs_layout " 属性内表it_fieldcat_lvc          = gt_fieldcat[] " 列明内表it_excluding             = it_excluding[]i_save                   = 'X' " 是否保存布局i_callback_pf_status_set = 'ALV_PF_STATUS_SET'i_callback_user_command  = 'ALV_USER_COMMAND'"i_callback_html_top_of_page  = 'ALV_TOP_OF_PAGE1'"I_GRID_TITLE                 = I_GRID_TITLEit_sort_lvc              = gt_alv_sort[]TABLESt_outtab                 = gt_table[] " 数据内表EXCEPTIONSprogram_error            = 1OTHERS                   = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.                    "DIS_SHOW_DATA_ALV*设置状态
FORM alv_pf_status_set USING rt_extab TYPE slis_t_extab.
*copy the status from SAPLKKBL,and renamed it as ZSTANDARD.SET PF-STATUS 'ZSTANDARD'.
ENDFORM.                    "ALV_PF_STATUS_SET
*&---------------------------------------------------------------------*
*&      Form  REFRESH_ALV_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM refresh_alv_display.DATA: ls_refresh  TYPE lvc_s_stbl.ls_refresh-row = 'X'.ls_refresh-col = 'X'.CALL METHOD g_grid->refresh_table_display( EXPORTING is_stable = ls_refresh ).CALL METHOD cl_gui_cfw=>flush.
ENDFORM.                    " REFRESH_ALV_DISPLAY*&---------------------------------------------------------------------*
*& Form ALV_USER_COMMAND
*&---------------------------------------------------------------------*
* 捕捉用户的动作
*----------------------------------------------------------------------*
FORM alv_user_command USING p_ucomm TYPE sy-ucommrs_selfield TYPE slis_selfield .CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = g_grid.CALL METHOD g_grid->check_changed_data.gv_tabidx = rs_selfield-tabindex.READ TABLE gt_table INDEX gv_tabidx.IF sy-subrc = 0.gv_code = gt_table-code.ENDIF.CASE p_ucomm.WHEN '&IC1' . " 判断用户的动作CLEAR: f_url,z_url,r_url,y_url.f_url = 'http://image.sinajs.cn/newchart/min/n/'.z_url = 'http://image.sinajs.cn/newchart/weekly/n/'.r_url = 'http://image.sinajs.cn/newchart/daily/n/'.y_url = 'http://image.sinajs.cn/newchart/monthly/n/'.IF rs_selfield-fieldname =  'CODE'.IF rs_selfield-value+0(1) = 0.CONCATENATE 'sz' rs_selfield-value '.gif' INTO stock_url.ELSE.CONCATENATE 'sh' rs_selfield-value '.gif' INTO stock_url.ENDIF.CHECK stock_url IS NOT INITIAL.CONCATENATE f_url stock_url INTO f_url.CONCATENATE z_url stock_url INTO z_url.CONCATENATE y_url stock_url INTO y_url.CONCATENATE r_url stock_url INTO r_url.CALL SCREEN 0100.ELSE.CALL SCREEN 201.ENDIF.WHEN '&NTE'.PERFORM auto_refresh.rs_selfield-refresh = 'X'.WHEN 'DEL_CODE'.READ TABLE gt_table INDEX rs_selfield-tabindex.IF sy-subrc = 0.READ TABLE gt_snum WITH KEY num = gt_table-code.IF sy-subrc = 0.DELETE gt_snum INDEX sy-tabix.ENDIF.DELETE gt_table INDEX rs_selfield-tabindex.rs_selfield-refresh = 'X' .ENDIF.WHEN 'ADD_CODE'.CALL SELECTION-SCREEN 101 STARTING AT 5 10 .IF op1_snum[] IS NOT INITIAL.PERFORM set_number TABLES op1_snum[] USING 'A'.PERFORM read_data.rs_selfield-refresh = 'X' .ENDIF.*当用户在显式界面上对数据进行修改时,同时内表中的数据也随之刷新
*      rs_selfield-refresh = 'X' .ENDCASE.
ENDFORM. " ALV_USER_COMMAND*&---------------------------------------------------------------------*
*& Form set_number
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM set_number TABLES op_snum STRUCTURE gs_range_snum USING op_type type char1.DATA tmp_num TYPE char6.IF op_type = 'A'.SELECT code AS num APPENDING TABLE gt_snum FROM zstock_list WHERE code IN op_snum.ELSE.SELECT code AS num INTO TABLE gt_snum FROM zstock_list WHERE code IN op_snum.ENDIF.RETURN.LOOP AT op_snum.CLEAR gt_snum.IF op_snum-option = 'EQ' .IF op_snum-low <> '' .CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput  = op_snum-lowIMPORTINGoutput = op_snum-low.gt_snum-num = op_snum-low.APPEND gt_snum.ENDIF.IF op_snum-high <> '' .CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput       = op_snum-highIMPORTINGoutput      = op_snum-highgt_snum-num = op_snum-high.APPEND gt_snum.ENDIF.ENDIF.IF op_snum-option = 'BT'.tmp_num = op_snum-low.WHILE tmp_num <= op_snum-high.CLEAR gt_snum.gt_snum-num = tmp_num.APPEND gt_snum.tmp_num = tmp_num + 1.ENDWHILE.ENDIF.ENDLOOP.
ENDFORM. " set_number
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.SET PF-STATUS 'STATUS'.
*分时图IF f_picture IS INITIAL.CREATE OBJECT f_containerEXPORTINGcontainer_name = 'F_CONTROL'.CREATE OBJECT f_pictureEXPORTINGparent = f_container.CALL METHOD f_picture->set_3d_borderEXPORTINGborder = 1.CALL METHOD f_picture->load_picture_from_url_asyncEXPORTINGurl = f_url.ELSE.CALL METHOD f_picture->load_picture_from_url_asyncEXPORTINGurl = f_url.ENDIF.
*日K线图IF r_picture IS INITIAL.CREATE OBJECT r_containerEXPORTINGcontainer_name = 'R_CONTROL'.CREATE OBJECT r_pictureEXPORTINGparent = r_container.CALL METHOD r_picture->set_3d_borderEXPORTINGborder = 1.CALL METHOD r_picture->load_picture_from_url_asyncEXPORTINGurl = r_url.ELSE.CALL METHOD r_picture->load_picture_from_url_asyncEXPORTINGurl = r_url.ENDIF.*周K线图IF z_picture IS INITIAL.CREATE OBJECT z_containerEXPORTINGcontainer_name = 'Z_CONTROL'.CREATE OBJECT z_pictureEXPORTINGparent = z_container.CALL METHOD z_picture->set_3d_borderEXPORTINGborder = 1.CALL METHOD z_picture->load_picture_from_url_asyncEXPORTINGurl = z_url.ELSE.CALL METHOD z_picture->load_picture_from_url_asyncEXPORTINGurl = z_url.ENDIF.*月K线图IF y_picture IS INITIAL.CREATE OBJECT y_containerEXPORTINGcontainer_name = 'Y_CONTROL'.CREATE OBJECT y_pictureEXPORTINGparent = y_container.CALL METHOD y_picture->set_3d_borderEXPORTINGborder = 1.CALL METHOD y_picture->load_picture_from_url_asyncEXPORTINGurl = y_url.ELSE.CALL METHOD y_picture->load_picture_from_url_asyncEXPORTINGurl = y_url.ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------*
*& Module USER_COMMAND_EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_exit INPUT.CASE ok_code.WHEN 'EXIT' OR 'BACK' OR 'CANC'.LEAVE TO SCREEN 0.ENDCASE.
ENDMODULE. " USER_COMMAND_EXIT INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.CASE ok_code.WHEN '&NTE'.PERFORM auto_refresh.WHEN 'EXIT' OR 'BACK' OR 'CANC'.LEAVE TO SCREEN 0.ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------*
*&      Form  auto_refresh
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM auto_refresh.IF sy-uzeit < '090000'.CONCATENATE '未开市:' sy-uzeit INTO gv_status.ELSEIF sy-uzeit > '113000' AND sy-uzeit < '130000'.CONCATENATE '休市:' sy-uzeit INTO gv_status.ELSEIF sy-uzeit > '150000'.CONCATENATE '交易结束:' sy-uzeit INTO gv_status.ELSE.CONCATENATE '交易中:' sy-uzeit INTO gv_status.ENDIF.IF sy-uzeit >= '090000' AND sy-uzeit <= '113000'.PERFORM read_data.ENDIF.IF sy-uzeit >= '130000' AND sy-uzeit <= '150000'.PERFORM read_data.ENDIF.ENDFORM.                    "auto_refresh*&---------------------------------------------------------------------*
*& Form INIT_VARIANT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_variant .DATA: h_variant LIKE rsvar-variant.DATA: h_subrc LIKE sy-subrc.CLEAR: h_variant,h_subrc .CHECK sy-tcode <> 'SE38' AND sy-tcode <> 'SA38' .h_variant = 'U_'.WRITE sy-uname TO h_variant+2.CALL FUNCTION 'RS_VARIANT_EXISTS'EXPORTINGreport  = sy-repidvariant = h_variantIMPORTINGr_c     = h_subrc.IF h_subrc = 0.
* g_feldlist-g_var_flag = 'X'.CALL FUNCTION 'RS_SUPPORT_SELECTIONS'EXPORTINGreport               = sy-repidvariant              = h_variantEXCEPTIONSvariant_not_existent = 01variant_obsolete     = 02.ENDIF.ENDFORM. " INIT_VARIANT
*&---------------------------------------------------------------------*
*&      Module  UPDATE_DATA  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE update_data OUTPUT.PERFORM move_to_screen.
ENDMODULE.                 " UPDATE_DATA  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0105  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0105 OUTPUT.SET PF-STATUS 'ZSTATUS01'.
*  SET TITLEBAR 'xxx'.PERFORM move_to_screen.
ENDMODULE.                 " STATUS_0105  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0105  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0105 INPUT.CASE ok_code.WHEN '&NTE'.PERFORM auto_refresh.WHEN 'EXIT' OR 'BACK' OR 'CANC' OR 'CONFIRM'.LEAVE TO SCREEN 0.ENDCASE.
ENDMODULE.                 " USER_COMMAND_0105  INPUT

SAP 如何在SAP系统中查看股票信息相关推荐

  1. Gem5模拟器,如何在linux系统中查看内存、CPU、硬盘、进程、网络等信息(十二)

    虽然说,这个记录的是与Linux相关的操作,每次查每次忘,必须写一个来归总一下,以免我漫山遍野找命令.但是不想新开一一个主题,再加上确实是在运行模拟器时会关注这方面的信息,就把这一节搁这儿啦. 常见的 ...

  2. linux7系统怎么启动ftp,教你如何在CentOS7系统中配置ftp服务

    本文教你如何在CentOS7系统中配置ftp服务. 1.下载vsftpd yum install -y vsftpd 2.设置开机自启动 systemctl enable vsftpd.service ...

  3. 在linux中 如何创建磁盘配额,如何在Linux系统中配置磁盘配额?

    今天我们看看如何在Linux系统中配置磁盘配额,限制用户滥用空间.使用磁盘配额是相当简单的,对于限制那些过多占用磁盘空间的家伙很有用.而且,你还可以设置软配额和硬配额,软配额可以在某个用户接近其容量空 ...

  4. 如何在linux系统中安装虚拟机?

    在初学linux系统时,实验中使用虚拟机可以避免操作不当误删文件时,快速恢复. 在企业中,使用虚拟机可以降低占用空间并能节省资源. 下面我们将介绍如何在linux系统中安装虚拟机, 1.图形界面安装虚 ...

  5. 如何在linux系统中设置定时任务?

    1. 引入 1.1 在日常开发中,我们经常需要设置一些定时任务. 举个栗子:在进行Java Web开发时,通常我们采用Springboot 框架,我们可以通过 注解+ cron表达式,设置定时任务. ...

  6. win12服务器文件设置只读,如何在Win10系统中更改文件夹的只读或系统属性

    正常情况下通过右键属性只能更改文件的只读属性,系统win10属性则连相应选项都没有.那么如何在Win10系统中更改文件夹的只读或系统属性呢?下面跟着学习啦小编来一起了解下吧. 在Win10系统中更改文 ...

  7. 案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接

    如何在 Linux 系统中安装和使用 7zip 李俊才(jcLee95) 的个人博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28 ...

  8. PPA 完全指南,如何在 Ubuntu 系统中使用 PPA

    如果你在使用 Ubuntu 系统,或其它衍生版本,如 Linux Mint.Linux Lite 或者 Zorin OS 等,可能会遇到添加使用 PPA 的情况.那什么是 PPA?为什么要使用 PPA ...

  9. window如何使用Linux命令,如何在windows系统中使用linux的命令

    在windows上可以运行或使用linux下面的命令吗?可以,学习啦学习啦小编今天就来分享怎么样让Windows支持Linux命令,做这些安装和设置后,就可以非常方便的在windows系统中使用lin ...

最新文章

  1. 图像相似度计算之哈希值方法OpenCV实现
  2. 安装.Net Framework 4.6.2时出现“无法建立到信任根颁发机构的证书链”解决方法
  3. 初学Python(一)——数据类型
  4. spring-data-jpa 二、多对一结构、Repository
  5. HDU 6340 Problem I. Delightful Formulas(伯努利数 + 积性函数反演)
  6. python创建文本、判断该文件共有多少行_python如何判断文件有多少行
  7. Zedgraph 总结
  8. 芯片和计算机专业的关系,cpu是芯片吗?芯片和cpu是什么关系?
  9. 应用概率统计(陈魁)第十一章(回归分析)部分课后答案
  10. 线路规划实现用java_北京地铁出行线路规划系统项目总结(Java+Flask+Vue实现)
  11. 电信物联卡稳定的apn接入点_0月租的电信纯流量卡怎么样?
  12. MATLAB将xyz数据转换成STL文件
  13. 数据如何变成知识(2):数据湖和数据沼泽
  14. ADC 模数转换实验
  15. 小程序 function(res)与(res) =的区别
  16. word2019输入文字时很卡解决方法。
  17. 两位数码管秒表c语言,单片机C语言编程实现双数码管可调秒表
  18. (附源码)ssm产品裂变管理系统 毕业设计 100953
  19. Python中随机数的生成
  20. 文献阅读 | Deep learning enables reference-free isotropic super-resolution for v fluorescence microscopy

热门文章

  1. 大胆预测NBA2011-2012季后赛形势
  2. 基因编辑技术在基因治疗中应用技术进展
  3. python DataFrame常用描述性统计分析方法
  4. python tensorflow 交通标志识别
  5. 处理人际关系的技巧(转)
  6. 从 0 到 1000+ 台服务器监控的构建之路。
  7. ENGLISH资料收集(10)-加油打气
  8. 腾讯云运维TCA题库(实时更新)
  9. STM32学习笔记之Bootloader升级Ymodem协议简介
  10. ifeq makefile 或语句_makefile ifeq 语句