Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Module pool Image is not changeing

former_member198275
Active Contributor
303

Hi

In my report Im calling a screen with Image. I have different images uploaded using SE78. But everytime same image is comming, not different. If I click on different ouput image the workarea is changing (WTAB-IMAGE) but the same image is comming. The code is below. I am unable to trace the bug. Please help.

REPORT  ZKD_PIC_ON_SCREEN.

TYPES : BEGIN OF TTAB,
        IMAGE TYPE CHAR70,
        END OF TTAB.
DATA : ITAB TYPE STANDARD TABLE OF TTAB,
       WTAB LIKE LINE OF ITAB.

START-OF-SELECTION.
" all image are different
WTAB-IMAGE = 'AERDE04-C'.
APPEND WTAB TO ITAB.
WTAB-IMAGE = 'AETDF07-C'.
APPEND WTAB TO ITAB.
WTAB-IMAGE = 'XPFTD01-C'.
APPEND WTAB TO ITAB.
WTAB-IMAGE = 'XPFTF02-C'.
APPEND WTAB TO ITAB.

LOOP AT ITAB INTO WTAB .

  WRITE AT : /2 WTAB-IMAGE.
  HIDE WTAB-IMAGE.
ENDLOOP.

AT LINE-SELECTION.
  IF WTAB-IMAGE IS NOT INITIAL.
    CALL SCREEN 700 STARTING AT 10 10 .
    " created a Custom control name PICTURE_CONTAINER
  ENDIF.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0700  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0700 OUTPUT.
  SET PF-STATUS '700'.
*  SET TITLEBAR 'xxx'.
  DATA: W_LINES TYPE I.
  TYPES PICT_LINE(256) TYPE C.
  DATA :
  CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
  EDITOR TYPE REF TO CL_GUI_TEXTEDIT,
  PICTURE TYPE REF TO CL_GUI_PICTURE,
  PICT_TAB TYPE TABLE OF PICT_LINE,
  URL(255) TYPE C.

  DATA: GRAPHIC_URL(255).
  DATA: BEGIN OF GRAPHIC_TABLE OCCURS 0,
          LINE(255) TYPE X,
        END OF GRAPHIC_TABLE.
  DATA: L_GRAPHIC_CONV TYPE I.
  DATA: L_GRAPHIC_OFFS TYPE I.
  DATA: GRAPHIC_SIZE TYPE I.
  DATA: L_GRAPHIC_XSTR TYPE XSTRING.
  .
  CALL METHOD CL_GUI_CFW=>FLUSH.

  CREATE OBJECT:
  CONTAINER EXPORTING CONTAINER_NAME = 'PICTURE_CONTAINER',

  PICTURE EXPORTING PARENT = CONTAINER.

  CALL METHOD CL_SSF_XSF_UTILITIES=>GET_BDS_GRAPHIC_AS_BMP
    EXPORTING
      P_OBJECT       = 'GRAPHICS'
      P_NAME         = WTAB-IMAGE " It is changeing but Image is not changing
      P_ID           = 'BMAP'
      P_BTYPE        = 'BCOL'
    RECEIVING
      P_BMP          = L_GRAPHIC_XSTR
*  EXCEPTIONS
*    NOT_FOUND      = 1
*    INTERNAL_ERROR = 2
*    others         = 3
          .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  GRAPHIC_SIZE = XSTRLEN( L_GRAPHIC_XSTR ).
  L_GRAPHIC_CONV = GRAPHIC_SIZE.
  L_GRAPHIC_OFFS = 0.
  WHILE L_GRAPHIC_CONV > 255.
    GRAPHIC_TABLE-LINE = L_GRAPHIC_XSTR+L_GRAPHIC_OFFS(255).
    APPEND GRAPHIC_TABLE.
    L_GRAPHIC_OFFS = L_GRAPHIC_OFFS + 255.
    L_GRAPHIC_CONV = L_GRAPHIC_CONV - 255.
  ENDWHILE.
  GRAPHIC_TABLE-LINE = L_GRAPHIC_XSTR+L_GRAPHIC_OFFS(L_GRAPHIC_CONV).
  APPEND GRAPHIC_TABLE.

  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      TYPE     = 'IMAGE'
      SUBTYPE  = 'X-UNKNOWN'
      SIZE     = GRAPHIC_SIZE
      LIFETIME = 'T'
    TABLES
      DATA     = GRAPHIC_TABLE
    CHANGING
      URL      = URL.
  CALL METHOD PICTURE->LOAD_PICTURE_FROM_URL
    EXPORTING
      URL = URL.

  CALL METHOD PICTURE->SET_DISPLAY_MODE
    EXPORTING
      DISPLAY_MODE = PICTURE->DISPLAY_MODE_FIT_CENTER.

  CLEAR : L_GRAPHIC_XSTR, URL, CONTAINER.
ENDMODULE.                 " STATUS_0700  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0700  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0700 INPUT.
  DATA : OK_CODE          LIKE SY-UCOMM.
  CASE OK_CODE .
    WHEN 'OK'.
      CLEAR OK_CODE .
      LEAVE TO SCREEN 0.
    WHEN 'CANC'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0700  INPUT

Edited by: KaushiK©Datta on Feb 25, 2009 11:24 AM

6 REPLIES 6

jordi_escodaruiz
Active Participant
0 Kudos
207

Try to call:

CONTAINER->INVALIDATE_CACHE

Regards.

Jordi

0 Kudos
207

Thanks Ruiz ,

I will b oblized if u explain where to call and how to call that method? Any other solution?

0 Kudos
207

Ohhh

Sorry.

I'ts a Private method.

former_member198275
Active Contributor
0 Kudos
207

Solved by myself

0 Kudos
207

Please tell how you solve it, as I'm having the same problem

M_Abdelkader
Explorer
0 Kudos
207

Solved for me by using
The problem was in GRAPHIC_TABLE & GRAPHIC_SIZE