ABAP 实时查看股票 - 摘自 《SAP ABAP面向对象程序设计:原则、模式及实践》

ABAP 查看股票 SALV版本:

 

执行界面:

 

 

 

代码:

  1 REPORT zrep_ooalv_stock.
  2 
  3 *********************************************************************
  4 *使用方法:
  5 *输入股票号码,获得新浪财经API实时沪深两市股票数据,双击可显示个股K线
  6 *代码移植:
  7 *在SAP SE38中创建报表ZREP_OOALV_STOCK,粘贴代码
  8 *需要双击屏幕号码 Screen 100并激活
  9 *双击状态 SET PF-STATUS 'ALV1'的 'ALV1',设置'BACK'按钮,激活
 10 *声明:
 11 *程序仅供参考,不能作为投资依据. Aaron Hao - 2017/11/11
 12 *********************************************************************
 13 
 14 
 15 "定义股票信息结构体
 16 TYPES: BEGIN OF ty_stock_live,
 17          sid    TYPE char10,  sname  TYPE char10,
 18          topen  TYPE char10,  yclose TYPE char10,
 19          cprice TYPE char10,  thigh  TYPE char10,
 20          tlow   TYPE char10,  buy    TYPE char10,
 21          sale   TYPE char10,  number TYPE char20,
 22          amount TYPE char20,  buy11  TYPE char10,
 23          buy12  TYPE char10,  buy21  TYPE char10,
 24          buy22  TYPE char10,  buy31  TYPE char10,
 25          buy32  TYPE char10,  buy41  TYPE char10,
 26          buy42  TYPE char10,  buy51  TYPE char10,
 27          buy52  TYPE char10,  sale11 TYPE char10,
 28          sale12 TYPE char10,  sale21 TYPE char10,
 29          sale22 TYPE char10,  sale31 TYPE char10,
 30          sale32 TYPE char10,  sale41 TYPE char10,
 31          sale42 TYPE char10,  sale51 TYPE char10,
 32          sale52 TYPE char10,  date   TYPE char15,
 33          time   TYPE char15,  color  TYPE lvc_t_scol, "Color.
 34        END OF ty_stock_live.
 35 
 36 TYPES: BEGIN OF ty_stock_id,
 37          stock_id TYPE char6,
 38        END OF ty_stock_id.
 39 
 40 TYPES ty_tab_stock_id TYPE STANDARD TABLE OF ty_stock_id.
 41 
 42 TYPES ty_tab_stock_live TYPE STANDARD TABLE OF ty_stock_live.
 43 
 44 DATA: gv_stock_id(6) TYPE c.
 45 DATA: tmp_num(6) TYPE n,
 46       idx        TYPE i,
 47       idx_tmp    TYPE i.
 48 
 49 "定义内表,定义SALV 的类CL_GUI_SALV_TABLE的对象变量
 50 DATA gt_stock_id TYPE ty_tab_stock_id.
 51 DATA gs_stock_id TYPE ty_stock_id.
 52 
 53 "定义股票信息内表
 54 DATA gt_stock TYPE ty_tab_stock_live .
 55 DATA gs_stock TYPE  ty_stock_live.
 56 DATA: gt_stock_pub_list TYPE TABLE OF string.
 57 
 58 "定义股票信息OOALV相关类
 59 DATA go_table TYPE REF TO cl_salv_table.
 60 DATA go_functions TYPE REF TO cl_salv_functions_list.
 61 DATA: go_columns TYPE REF TO cl_salv_columns_table.
 62 DATA: go_column TYPE REF TO cl_salv_column_table.
 63 DATA: go_column_list TYPE REF TO cl_salv_column_list.
 64 DATA:go_container TYPE REF TO cl_gui_custom_container.
 65 DATA: go_dock TYPE REF TO cl_gui_docking_container,
 66       go_picture   TYPE REF TO cl_gui_picture.
 67 DATA: gv_url        TYPE char256,
 68       gt_data           TYPE STANDARD TABLE OF x255.
 69 
 70 "本地类用于获得股票信息
 71 CLASS lcl_stock DEFINITION DEFERRED.
 72 "本地类用于处理双击事件
 73 CLASS lcl_event_handler DEFINITION DEFERRED.
 74 
 75 DATA go_stock TYPE REF TO lcl_stock.
 76 DATA: go_timer TYPE REF TO cl_gui_timer,
 77       go_evt_hndl TYPE REF TO lcl_event_handler.
 78 
 79 "定义本地类
 80 CLASS lcl_stock DEFINITION.
 81   PUBLIC SECTION.
 82     TYPES:
 83       BEGIN OF ty_stock_live,
 84              sid    TYPE char10, "股票ID
 85              sname  TYPE char10, "股票名字
 86              topen  TYPE char10, "今日开盘价
 87              yclose TYPE char10, "昨日收盘价;
 88              cprice TYPE char10, "当前价格;
 89              thigh  TYPE char10, "当日最高价
 90              tlow   TYPE char10, "今日最低价
 91              buy    TYPE char10, "竞买价,即“买一”报价;
 92              sale   TYPE char10, "竞卖价,即“卖一”报价;
 93              number TYPE char20, "成交的股票数
 94              amount TYPE char20, "成交金额
 95              buy11  TYPE char10, "买一,数量
 96              buy12  TYPE char10, "买一,报价
 97              buy21  TYPE char10, "买二,数量
 98              buy22  TYPE char10, "买二,报价
 99              buy31  TYPE char10, "买三,数量
100              buy32  TYPE char10, "买三,报价
101              buy41  TYPE char10, "买四,数量
102              buy42  TYPE char10, "买四,报价
103              buy51  TYPE char10, "买五,数量
104              buy52  TYPE char10, "买五,报价
105              sale11 TYPE char10, "卖一,数量
106              sale12 TYPE char10, "卖一,报价
107              sale21 TYPE char10, "卖二,数量
108              sale22 TYPE char10, "卖二,报价
109              sale31 TYPE char10, "卖三,数量
110              sale32 TYPE char10, "卖三,报价
111              sale41 TYPE char10, "卖四,数量
112              sale42 TYPE char10, "卖四,报价
113              sale51 TYPE char10, "卖五,数量
114              sale52 TYPE char10, "卖五,报价
115              date   TYPE char15, "日期
116              time   TYPE char15, "时间
117              color  TYPE lvc_t_scol, "Color.
118            END OF ty_stock_live .
119     TYPES:
120       ty_tab_stock_live TYPE STANDARD TABLE OF ty_stock_live .
121     TYPES:
122       BEGIN OF ty_stock_id,
123              stock_id TYPE char6,
124            END OF ty_stock_id .
125     TYPES:
126       ty_tab_stock_id TYPE STANDARD TABLE OF ty_stock_id .
127 
128     DATA gv_stock_id TYPE char6 .
129     DATA mt_stock TYPE ty_tab_stock_live .
130     DATA ms_stock TYPE ty_stock_live .
131     DATA mt_stock_id TYPE ty_tab_stock_id .
132     DATA ms_stock_id TYPE ty_stock_id .
133     DATA:
134       mt_stock_pub_list TYPE TABLE OF string .
135 
136     METHODS get_live_stock_info
137       IMPORTING
138         !it_stock_id TYPE ty_tab_stock_id .
139     METHODS fill_alv
140       CHANGING
141         VALUE(ct_stock) TYPE ty_tab_stock_live .
142   PROTECTED SECTION.
143   PRIVATE SECTION.
144 ENDCLASS.
145 
146 
147 
148 CLASS lcl_stock IMPLEMENTATION.
149   "定义本地类方法用于获得新浪财经实时股票信息
150   METHOD get_live_stock_info.
151     DATA: lo_abap_conv     TYPE REF TO cl_abap_conv_in_ce,
152           li_http_client   TYPE REF TO if_http_client,
153          lv_stock_pub_url TYPE string VALUE 'http://hq.sinajs.cn/list=',
154           abap_encoding    TYPE abap_encoding,
155           l_str            TYPE string,
156           l_xstr           TYPE xstring,
157           l_tmp            TYPE string,
158           l_url            TYPE string.
159     DATA: BEGIN OF wa_num,
160             num(6) TYPE c,
161           END OF wa_num.
162     DATA: BEGIN OF wa_lin,
163             str TYPE string,
164           END OF wa_lin.
165     DATA: it_num    LIKE TABLE OF wa_num,
166           it_restab LIKE TABLE OF wa_num,
167           it_res    LIKE TABLE OF wa_lin.
168     IF it_stock_id[] IS INITIAL.
169       RETURN.
170     ENDIF.
171     CLEAR:it_res.
172     REFRESH:it_res.
173     LOOP AT it_stock_id INTO ms_stock_id.
174       CLEAR l_tmp.
175       IF ms_stock_id-stock_id(1) < 6.
176         CONCATENATE 'sz' ms_stock_id-stock_id INTO l_tmp.
177       ENDIF.
178       IF ms_stock_id-stock_id(1) = '6'.
179         CONCATENATE 'sh' ms_stock_id-stock_id INTO l_tmp.
180       ENDIF.
181       CONCATENATE l_str l_tmp INTO l_str SEPARATED BY ','.
182     ENDLOOP.
183     IF l_str(1) = ','.
184       SHIFT l_str LEFT DELETING LEADING ','.
185     ENDIF.
186     CONCATENATE lv_stock_pub_url l_str INTO l_url.
187     CALL METHOD cl_http_client=>create_by_url
188       EXPORTING
189         url                = l_url
190       IMPORTING
191         client             = li_http_client
192       EXCEPTIONS
193         argument_not_found = 1
194         plugin_not_active  = 2
195         internal_error     = 3
196         OTHERS             = 4.
197     CALL METHOD li_http_client->request->set_header_field
198       EXPORTING
199         name  = 'Content-Type'
200         value = 'text/html;charset=utf-8'. " utf-8
201     CALL METHOD li_http_client->send
202       EXCEPTIONS
203         http_communication_failure = 1
204         http_invalid_state         = 2.
205     CALL METHOD li_http_client->receive
206       EXCEPTIONS
207         http_communication_failure = 1
208         http_invalid_state         = 2
209         http_processing_failed     = 3.
210     l_xstr = li_http_client->response->get_data( ).
211     IF sy-subrc = 0 .
212       li_http_client->close( ).
213     ENDIF.
214     CALL METHOD cl_abap_conv_in_ce=>create
215       EXPORTING
216         input       = l_xstr
217         encoding    = '8400'
218         replacement = '?'
219         ignore_cerr = abap_true
220       RECEIVING
221         conv        = lo_abap_conv.
222     TRY.
223         CALL METHOD lo_abap_conv->read
224           IMPORTING
225             data = l_str.
226       CATCH cx_sy_conversion_codepage.
227       CATCH cx_sy_codepage_converter_init.
228       CATCH cx_parameter_invalid_type.
229       CATCH cx_parameter_invalid_range.
230     ENDTRY.
231     REFRESH mt_stock_pub_list.
232     SPLIT l_str AT cl_abap_char_utilities=>newline
233     INTO TABLE mt_stock_pub_list.
234 
235   ENDMETHOD.
236   "定义本地类方法用于填充股票信息内表
237   METHOD fill_alv.
238     DATA lt_res TYPE TABLE OF string.
239     DATA l_str TYPE string.
240     DATA l_str_field TYPE string.
241     FIELD-SYMBOLS: <fs_value> TYPE any.
242 
243     FIELD-SYMBOLS: <fs_stock> TYPE ty_stock_live.
244     DATA: ls_color               TYPE lvc_s_scol.
245     DATA: tmp_num(6) TYPE n,
246           idx        TYPE i,
247           idx_tmp    TYPE i.
248 
249     REFRESH lt_res.
250     REFRESH mt_stock.
251     LOOP AT mt_stock_pub_list INTO l_str.
252       IF strlen( l_str ) < 30.
253         CONTINUE.
254       ENDIF.
255       SPLIT l_str AT ',' INTO TABLE lt_res.
256       READ TABLE lt_res INDEX 1 INTO l_str_field.
257       ms_stock-sid = l_str_field+13(6).
258       ms_stock-sname = l_str_field+21.
259 
260       idx = 2.
261       WHILE idx < 33.
262         READ TABLE lt_res INDEX idx INTO l_str_field.
263         idx = idx + 1.
264         ASSIGN COMPONENT idx OF STRUCTURE ms_stock TO <fs_value>.
265         <fs_value> = l_str_field.
266       ENDWHILE.
267 
268       INSERT ms_stock INTO TABLE mt_stock.
269     ENDLOOP.
270 
271     "填充股票信息内表的颜色列
272     LOOP AT mt_stock ASSIGNING <fs_stock>.
273       REFRESH <fs_stock>-color.
274       IF <fs_stock>-cprice > <fs_stock>-topen.
275         ls_color-color-col = 6. "上涨,红色
276         ls_color-color-int = 1.
277         ls_color-color-inv = 0.
278         APPEND ls_color TO <fs_stock>-color.
279       ELSE.
280         IF <fs_stock>-cprice < <fs_stock>-topen.
281           ls_color-color-col = 5." 下跌,绿色
282           ls_color-color-int = 0.
283           ls_color-color-inv = 0.
284           APPEND ls_color TO <fs_stock>-color.
285         ENDIF.
286       ENDIF.
287     ENDLOOP.
288 
289     ct_stock = mt_stock.
290 
291   ENDMETHOD.
292 
293 
294 ENDCLASS.
295 
296 
297 
298 "定义ALV双击事件类
299 CLASS lcl_handle_events DEFINITION.
300   PUBLIC SECTION.
301     METHODS: on_double_click FOR EVENT double_click OF
302 cl_salv_events_table
303       IMPORTING
304           row "事件触发所在的行号
305           column."事件触发所在的列名
306     METHODS: on_user_command FOR EVENT added_function OF
307 cl_salv_events_table
308       IMPORTING e_salv_function.
309 ENDCLASS.
310 
311 CLASS lcl_handle_events IMPLEMENTATION.
312   METHOD on_double_click.
313     PERFORM show_stock_details
314     USING row column.
315   ENDMETHOD.
316   METHOD on_user_command.
317     PERFORM handle_user_command USING e_salv_function.
318   ENDMETHOD.
319 ENDCLASS.
320 
321 "程序开始
322 
323 START-OF-SELECTION.
324   SELECT-OPTIONS:
325   s_sid FOR gv_stock_id.
326   PERFORM init_timer.
327   PERFORM show_grid.
328 
329   "获得输入的股票号码
330 FORM get_input_stock_id.
331   LOOP AT s_sid.
332     CLEAR gs_stock_id.
333     IF s_sid-option = 'EQ' .
334       IF s_sid-low <> '' .
335         gs_stock_id-stock_id = s_sid-low.
336         INSERT gs_stock_id INTO TABLE gt_stock_id.
337       ENDIF.
338       IF s_sid-high <> '' .
339         gs_stock_id-stock_id = s_sid-high.
340         INSERT gs_stock_id INTO TABLE gt_stock_id.
341       ENDIF.
342     ENDIF.
343     IF s_sid-option = 'BT'.
344       tmp_num = s_sid-low.
345       WHILE tmp_num <= s_sid-high.
346         gs_stock_id-stock_id = tmp_num.
347         INSERT gs_stock_id INTO TABLE gt_stock_id.
348         tmp_num = tmp_num + 1.
349       ENDWHILE.
350     ENDIF.
351   ENDLOOP.
352 ENDFORM.
353 
354 
355 "创建OOALV表格表头等信息
356 FORM build_alv.
357   DEFINE init_alv.
358     go_column->set_long_text( &1 ).
359     go_column->set_medium_text( &1 ).
360     go_column->set_short_text( &1 ).
361   END-OF-DEFINITION.
362 
363 
364   TRY.
365       "调用类方法创建类对象
366       CALL METHOD cl_salv_table=>factory
367         IMPORTING
368           r_salv_table = go_table
369         CHANGING
370           t_table      = gt_stock.
371     CATCH cx_salv_msg.
372   ENDTRY.
373 
374 
375   TRY.
376       go_columns = go_table->get_columns( ).
377       go_column ?= go_columns->get_column('SID').
378       init_alv '股票号码'.
379       go_column ?= go_columns->get_column('SNAME').
380       init_alv '股票名称'.
381       go_column ?= go_columns->get_column('TOPEN').
382       init_alv '开盘价'.
383       go_column ?= go_columns->get_column('YCLOSE').
384       init_alv '昨收价'.
385       go_column ?= go_columns->get_column('CPRICE').
386       init_alv '现价'.
387       go_column ?= go_columns->get_column('THIGH').
388       init_alv '最高价'  .
389       go_column ?= go_columns->get_column('TLOW').
390       init_alv '最低价'   .
391       go_column ?= go_columns->get_column('BUY').
392       init_alv '买一价'.
393       go_column ?= go_columns->get_column('SALE').
394       init_alv '卖一价'.
395       go_column ?= go_columns->get_column('NUMBER').
396       init_alv '成交数量'.
397       go_column ?= go_columns->get_column('AMOUNT').
398       init_alv '成交金额'.
399       go_column ?= go_columns->get_column('BUY11').
400       init_alv '买一数量'.
401       go_column ?= go_columns->get_column('BUY12').
402       init_alv '买一金额'.
403       go_column ?= go_columns->get_column('BUY21').
404       init_alv '买二数量'.
405       go_column ?= go_columns->get_column('BUY22').
406       init_alv '买二金额'.
407       go_column ?= go_columns->get_column('BUY31').
408       init_alv '买三数量'.
409       go_column ?= go_columns->get_column('BUY32').
410       init_alv '买三金额'.
411       go_column ?= go_columns->get_column('BUY41').
412       init_alv '买四数量'.
413       go_column ?= go_columns->get_column('BUY42').
414       init_alv '买四金额'.
415       go_column ?= go_columns->get_column('BUY51').
416       init_alv '买五数量'.
417       go_column ?= go_columns->get_column('BUY52').
418       init_alv '买五金额'.
419       go_column ?= go_columns->get_column('SALE11').
420       init_alv '卖一数量'.
421       go_column ?= go_columns->get_column('SALE12').
422       init_alv '卖一金额'.
423       go_column ?= go_columns->get_column('SALE21').
424       init_alv '卖二数量'.
425       go_column ?= go_columns->get_column('SALE22').
426       init_alv '卖二金额'.
427       go_column ?= go_columns->get_column('SALE31').
428       init_alv '卖三数量'.
429       go_column ?= go_columns->get_column('SALE32').
430       init_alv '卖三金额'.
431       go_column ?= go_columns->get_column('SALE41').
432       init_alv '卖四数量'.
433       go_column ?= go_columns->get_column('SALE42').
434       init_alv '卖四金额'.
435       go_column ?= go_columns->get_column('SALE51').
436       init_alv '卖五数量'.
437       go_column ?= go_columns->get_column('SALE52').
438       init_alv '卖五金额'.
439       go_column ?= go_columns->get_column('DATE').
440       init_alv   '日期'  .
441       go_column ?= go_columns->get_column('TIME').
442       init_alv   '时间'.
443 
444     CATCH cx_salv_not_found.                            "#EC NO_HANDLER
445   ENDTRY.
446 
447 
448   "为内表设置一个特殊的列, COLOR,然后为该列赋值即可控制每一行的颜色
449   TRY.
450       CALL METHOD go_columns->set_color_column
451         EXPORTING
452           value = 'COLOR'.
453     CATCH cx_salv_data_error.
454   ENDTRY.
455 
456   "调用类方法显示SALV
457   go_functions = go_table->get_functions( ).
458   go_functions->set_all( abap_true ).
459 
460   TRY.
461       "设置热点列
462       "go_columns = go_table->get_columns( ).
463       "go_column ?= go_columns->get_column( 'SID').
464       "go_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
465 
466       "=====获取事件对象
467       DATA: lr_event TYPE REF TO cl_salv_events_table.
468       lr_event = go_table->get_event( ).
469 
470       "=====事件注册
471       DATA: mo_handle_event TYPE REF TO lcl_handle_events.
472       CREATE OBJECT mo_handle_event.
473       SET HANDLER mo_handle_event->on_double_click FOR lr_event.
474     CATCH cx_salv_not_found.
475   ENDTRY.
476 ENDFORM .
477 
478 
479 "显示股票详细信息K线图
480 FORM show_stock_details USING p_row TYPE i
481                           p_column TYPE lvc_fname.
482 
483   DATA: l_row TYPE char10.
484   WRITE p_row TO l_row LEFT-JUSTIFIED.
485 
486   READ TABLE gt_stock INDEX l_row INTO gs_stock.
487   IF sy-subrc = 0.
488     gv_stock_id = gs_stock-sid.
489     "调用屏幕,显示图片
490     CALL SCREEN 100.
491   ENDIF.
492 
493 ENDFORM.
494 
495 "刷新,暂时不用
496 FORM handle_user_command USING p_function TYPE salv_de_function.
497   CASE p_function.
498     WHEN 'REFRESH'.
499       go_table->refresh( ).
500   ENDCASE.
501 ENDFORM.
502 
503 "调用上述方法,显示ALV结果
504 FORM show_grid.
505 
506   "获取输入的股票号码列表
507   PERFORM get_input_stock_id.
508 
509   "创建本地类实例,获取实时股票信息,转化为内表格式
510   CREATE OBJECT go_stock.
511   go_stock->get_live_stock_info( gt_stock_id ).
512   CALL METHOD go_stock->fill_alv
513   CHANGING ct_stock = gt_stock.
514 
515   "创建OOALV,因为有SCREEN ,只能采用面向对象与面向过程的ABAP混编
516   PERFORM build_alv.
517   "显示OOALV
518   go_table->display( ).
519 
520 ENDFORM.
521 
522 "获得新浪财经API的个股K线图
523 FORM show_picture USING i_stock_id.
524 
525   DATA: l_tmp TYPE string.
526 
527   CLEAR l_tmp.
528   IF i_stock_id(1) < 6.
529     CONCATENATE 'http://image.sinajs.cn/newchart/daily/n/'
530     'sz' i_stock_id  '.gif' INTO l_tmp.
531   ENDIF.
532   IF i_stock_id(1) = '6'.
533     CONCATENATE 'http://image.sinajs.cn/newchart/daily/n/'
534     'sh' i_stock_id '.gif' INTO l_tmp.
535   ENDIF.
536   gv_url = l_tmp.
537 
538   "创建容器
539   CREATE OBJECT go_dock
540     EXPORTING
541       repid     = sy-repid
542       dynnr     = sy-dynnr
543       side      = go_dock->dock_at_left
544       extension = 620.
545   IF sy-subrc NE 0 .
546     "Instantiate container Error!
547   ENDIF.
548 
549   "创建图片
550   IF go_dock IS NOT INITIAL.
551     CREATE OBJECT go_picture
552       EXPORTING
553         parent =  go_dock
554       EXCEPTIONS
555         OTHERS = 1.
556     IF sy-subrc NE 0 .
557       "Instantiate Picture Error!
558     ENDIF.
559   ENDIF.
560 
561   "获取URL
562   CALL FUNCTION 'DP_CREATE_URL'
563     EXPORTING
564       type                       = 'JPG/GIF'
565       subtype                    = cndp_sap_tab_unknown
566     TABLES
567       data                       = gt_data
568     CHANGING
569       url                        = gv_url
570    EXCEPTIONS
571      dp_invalid_parameter       = 1
572      dp_error_put_table         = 2
573      dp_error_general           = 3
574      OTHERS                     = 4.
575   IF sy-subrc <> 0.
576     "Get URL Error!
577   ENDIF.
578 
579   "显示图片
580   CALL METHOD go_picture->load_picture_from_url
581     EXPORTING
582       url = gv_url.
583 
584 *  CALL METHOD go_picture->set_display_mode
585 *    EXPORTING
586 *      display_mode = 3.
587 
588 
589 ENDFORM.
590 
591 
592 
593 "定时器设定
594 CLASS lcl_event_handler DEFINITION.
595   PUBLIC SECTION.
596     METHODS:
597       handle_timer FOR EVENT finished OF cl_gui_timer.
598 ENDCLASS.
599 
600 CLASS lcl_event_handler IMPLEMENTATION.
601   METHOD handle_timer.
602     "重新连接API,获取最新数据
603     go_stock->get_live_stock_info( gt_stock_id ).
604     "填充内表
605     CALL METHOD go_stock->fill_alv
606 CHANGING ct_stock = gt_stock.
607     "刷新ALV组件
608     go_table->refresh( ).
609 
610     CALL METHOD go_timer->run
611       EXCEPTIONS
612         OTHERS = 9.
613   ENDMETHOD.
614 ENDCLASS.
615 
616 
617 FORM init_timer.
618   IF go_timer IS NOT BOUND.
619     CREATE OBJECT go_timer
620       EXCEPTIONS
621         OTHERS = 9.
622     CREATE OBJECT go_evt_hndl.
623   ENDIF.
624   SET HANDLER go_evt_hndl->handle_timer FOR go_timer.
625   "10秒钟刷新一次
626   go_timer->interval = 10.
627   CALL METHOD go_timer->run
628     EXCEPTIONS
629       OTHERS = 9.
630 ENDFORM.
631 
632 "屏幕100是为K线图片专用的
633 MODULE status_0100 OUTPUT.
634   SET PF-STATUS 'ALV1'.
635   "屏幕显示后,调用图片显示
636   PERFORM show_picture USING gv_stock_id.
637 ENDMODULE.
638 
639 "屏幕100是为K线图片专用的
640 MODULE user_command_0100 INPUT.
641   CASE sy-ucomm.
642     WHEN 'BACK'.
643       "返回前一个界面,先删除容器组件,再删除图片组件
644       CALL METHOD go_picture->free( ).
645       CALL METHOD go_dock->free( ).
646       "返回ALV屏幕
647       LEAVE TO SCREEN 0.
648     WHEN OTHERS.
649   ENDCASE.
650 ENDMODULE.                 " USER_COMMAND_0100  INPUT

 

posted @ 2017-11-12 01:35  techtalk  阅读(1368)  评论(0编辑  收藏  举报