Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201169
  • 博文数量: 49
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 520
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 09:35
文章分类

全部博文(49)

文章存档

2008年(49)

我的朋友

分类:

2008-03-26 11:12:38

先通过 SE78 将图片导入到服务器.
 
 
本程序在SCREEN 9000中加入名为ZCONTAINER的 customer container.
 
 
DATA: container TYPE REF TO cl_gui_custom_container,
      ok_code LIKE sy-ucomm,
      save_ok LIKE ok_code.
DATA pic TYPE REF TO  cl_gui_picture .
DATA result TYPE i.
DATA url(255).
DATA g_xstr TYPE xstring.
DATA g_size TYPE i.
DATA g_pos TYPE i.
DATA last_size TYPE i.
DATA loop_time TYPE i.
DATA: BEGIN OF g_tab OCCURS 0,
        data(500) TYPE x,
      END OF g_tab.
 
 
START-OF-SELECTION.

  CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
    EXPORTING
      p_object = 'GRAPHICS'
      p_name   = 'ZTEST'
      p_id     = 'BMAP'
      p_btype  = 'BCOL'
    RECEIVING
      p_bmp    = g_xstr.
  g_size = XSTRLEN( g_xstr ).
  g_pos = 0.
  loop_time = g_size DIV 500.
  DO loop_time TIMES.
    g_tab-data = g_xstr+g_pos(500).
    APPEND g_tab.
    g_pos = g_pos + 500.
  ENDDO.
  last_size = g_size - g_pos .
  g_tab-data = g_xstr+g_pos(last_size).
  APPEND g_tab.
 
  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      type                       = 'IMAGE'
      subtype                    = cndp_sap_tab_unknown
*     SIZE                       = g_size
*     DATE                       =
*     TIME                       =
*     description                =
     LIFETIME                   = cndp_lifetime_transaction
*     CACHEABLE                  =
*     SEND_DATA_AS_STRING        =
*     FIELDS_FROM_APP            =
    TABLES
      data                       = g_tab
    CHANGING
      url                        = url
            .
 

  CREATE OBJECT container
    EXPORTING
      container_name              = 'ZCONTAINER'
      .
  CREATE OBJECT pic
    EXPORTING
      parent = container
      .
  CALL METHOD pic->load_picture_from_url
    EXPORTING
      url    = url
    IMPORTING
      RESULT = RESULT.
  .
 
**** 设置显示模式.  
**** mode 可取值: 
**** 0:原始大小显示   1:图片自动调整大小显示   2:纵向拉伸,局左显示   3: 原始大小,居中显示  
**** 4:纵向拉伸,居中显示
**** load的时候默认的是原始大小.
 
  CALL METHOD pic->set_display_mode
    EXPORTING
      display_mode = 0
          .
 
 
  CALL SCREEN 9000.
 
阅读(10398) | 评论(8) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-03-31 16:52:16

DATASET里的也要转换成hex类型的才行,参考这段代码 IMPORT pict_tab = pict_tab FROM DATABASE abtree(pi) ID 'FLIGHTS' IN CHAR-TO-HEX MODE. 其中pict_tab是X型的

remand-liu2008-09-18 17:54:56

您好 ,我在46C中测试这段代码,提示 Class "CL_SSF_XSF_UTILITIES" is unknown. 可以看一下为什么吗?谢谢

v41dugu2008-03-27 10:46:43

不知道SAP里的DataSet是什么 . 不过你 说到dataset. 我想到不知道可不可以直接通过 open dataset语句 . 直接用文件的路径来将图片用二进制的方式读出来. 不过要用cl_gui_picture 来显示图片的话, 要求的数据表是十六进制的, 不知道有没有方法可以把二进制的string 转换成 十六进制...

chinaunix网友2008-03-27 09:40:44

是Dataset,不是Database

v41dugu2008-03-26 17:37:29

不过不管是哪种形式, 我觉得都应该要想办法把图片的数据读到 16进制的table 里 然后通过 DP_CREATE_URL 来得到url. 不过我不清楚你所说的图片存在database中是什么意思. 是有字段可以存放图片吗? 是什么类型呢?