Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668294
  • 博文数量: 194
  • 博客积分: 7067
  • 博客等级: 少将
  • 技术积分: 2008
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-09 14:48
个人简介

我很好

文章分类

全部博文(194)

文章存档

2019年(1)

2018年(1)

2017年(3)

2015年(2)

2012年(2)

2011年(1)

2010年(27)

2009年(15)

2008年(142)

分类: WINDOWS

2008-07-01 14:59:44

*&---------------------------------------------------------------------*
*& Report  Z_BARRY_CLUSTER_PIC                                         *
*&                                                                     *
*&---------------------------------------------------------------------*
*&  把图片放到簇表,然后取出显示                                       *
*&                                                                     *
*&---------------------------------------------------------------------*
 
REPORT  z_barry_cluster_pic                     .
DATA container TYPE REF TO cl_gui_custom_container.
DATA picture TYPE REF TO cl_gui_picture.
DATA ok_code TYPE sy-ucomm.
DATA subrc TYPE i.
SET SCREEN 100.
 
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS'.
  PERFORM fill_pic.
ENDMODULE.                             " STATUS_0100  OUTPUT
 
*&---------------------------------------------------------------------*
*&      Module  exit  INPUT
*&---------------------------------------------------------------------*
MODULE exit INPUT.
  CALL METHOD picture->free.
  CALL METHOD container->free.
  LEAVE PROGRAM.
ENDMODULE.                 " exit  INPUT
 
*&---------------------------------------------------------------------*
*&      Form  fill_pic
*&---------------------------------------------------------------------*
FORM fill_pic .
  DATA: url(255) .
  IF container IS INITIAL.
    CREATE OBJECT container
       EXPORTING container_name = 'CUSTOM_CONTAINER'.
    CREATE OBJECT picture
       EXPORTING  parent = container.
    CLEAR url.
    PERFORM load_pic_from_db CHANGING url.
    CALL METHOD picture->load_picture_from_url
      EXPORTING
        url    = url
      IMPORTING
        RESULT = subrc
      EXCEPTIONS
        error  = 1
        OTHERS = 2.
  ENDIF.
ENDFORM.                    " fill_pic
 
*&---------------------------------------------------------------------*
*&      Form  LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
FORM load_pic_from_db CHANGING url.
  TYPES pict_line(256) TYPE x.
  DATA  itab_pic TYPE TABLE OF pict_line WITH HEADER LINE .
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = 'C:\20.jpg'
      filetype = 'BIN'
    TABLES
      data_tab = itab_pic[].
  EXPORT itab_pic TO DATABASE indx(zz) ID 'Pic' .

  REFRESH itab_pic.
  IMPORT itab_pic FROM DATABASE indx(zz) ID 'Pic' .
  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      type    = 'IMAGE'
      subtype = 'GIF'
    TABLES
      data    = itab_pic[]
    CHANGING
      url     = url.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ENDIF.
ENDFORM.                    "load_pic_from_db
UNICODE系统要定义成:TYPES pict_line(256) TYPE X .
如果是非UNICODE系统,也可以定义成:TYPES pict_line(256) TYPE C .
因为UNICODE系统的C类型在内部是用两个直接来表示一个字符的,所以总的大小是X类型的两倍,多出来很多'00',图片内容被破坏所以不能显示。
阅读(326) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~