Crear un logo en un dynpro.

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • rubendiego
    Junior Member
    • sep
    • 9

    #1

    Crear un logo en un dynpro.

    Necesito en una dynpro de un modulpool, meter un logo.
    Me creo un container donde ira la función grafica, pero no se como ni donde se ha de subir la foto para obtener la url para poder mostrar la foto.

    Muchas gracias.

    Rubén
  • stormshadow
    Senior Member
    • jun
    • 117

    #2
    Bueno, hasta donde yo sé, creo que las imagenes las subes en una transacción, bueno al menos en los libros que e leído decía eso porque allí se mencionaba como subir la imagén que ponías en el menú principal de sap, ahorita checo el libro y si hallo la transacción te digo vaaa es que ahorita no lo tengo a la mano y no recuerdo que transacción era, igual puedo estar equivocado pero si alguién más puede ayudar mejor.
    "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

    Comentario

    • rubendiego
      Junior Member
      • sep
      • 9

      #3
      Muchas gracias!!!
      he investigado y he encontrado lo siguiente que me ha funcionado:

      you mean to say you want to add your company logo , you can upload image using tcode SMW0

      follow the steps, .GIF file supported as logo

      Transaction code - SMW0
      check Binary data for WebRFC application
      press Enter
      Click Execute
      Click Settings -> Maintain MIME types
      Click the Create button
      Fill in :- TYPE : image/gif EXTENSION : .GIF
      Click Save

      Click Back to the Binary data for WebRFC
      Click Create
      Fill in :- Obj. name : zlogo.gif
      Description : Company Logo
      Click Import and specify the filename where your
      GIF file is located.File type is BIN. Finish press the
      Transfer button.
      If successful, your logo will be shown in the Binary data for WebRFC.

      Un saludo Ruben

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        La transaccion para subir imagenes es la SE78 aqui te dejo un codigo de ejemplo que crea el container y le pone una foto, realmente es un form pero con que lo toques un poco crearas un report, de todas formas si te parece mas comodo puedes echar un vistazo el report standar RSDEMO_PICTURE_CONTROL

        FORM crear_boton USING p_nombre_boton
        p_container TYPE REF TO cl_gui_custom_container
        p_picture TYPE REF TO cl_gui_picture
        p_imagen
        CHANGING p_subrc.

        DATA: lt_grafico TYPE TABLE OF ty_grafico,
        lt_eventos TYPE cntl_simple_events.

        DATA: ls_grafico TYPE ty_grafico,
        ls_evento TYPE cntl_simple_event,
        ls_stream TYPE xstring.

        DATA: lv_object TYPE tdobjectgr VALUE 'GRAPHICS',
        lv_name TYPE tdobname,
        lv_id TYPE tdidgr VALUE 'BMAP',
        lv_btype TYPE tdbtype VALUE 'BCOL',
        lv_type(10) VALUE 'IMAGE',
        lv_subtype(10) VALUE 'X-UNKNOWN',
        lv_size TYPE i,
        lv_lifetime TYPE c VALUE 'T',
        lv_url(255),
        lv_rc TYPE i,
        lv_longitud TYPE i,
        lv_offset TYPE i.

        CLEAR p_subrc.

        IF p_imagen IS INITIAL.

        p_subrc = 4.
        EXIT.

        ELSE.

        lv_name = p_imagen.

        ENDIF.

        *creo el container
        IF p_container IS INITIAL.

        CREATE OBJECT p_container
        EXPORTING
        container_name = p_nombre_boton
        EXCEPTIONS
        cntl_error = 1
        cntl_system_error = 2
        create_error = 3
        lifetime_error = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS = 6.

        IF sy-subrc <> 0.

        p_subrc = 1.
        EXIT.

        ENDIF.

        ENDIF.

        IF p_picture IS INITIAL.

        *Creamos la imagen y se la asignamos al container
        CREATE OBJECT p_picture
        EXPORTING
        parent = p_container
        EXCEPTIONS
        error = 1
        OTHERS = 2.

        IF sy-subrc <> 0.

        p_subrc = 2.

        *como ya habiamos creado el container lo eliminamos y hacemos un flush
        *que se borre inmediatamente
        p_container->free( ).
        cl_gui_cfw=>flush( ).

        EXIT.

        ENDIF.

        ENDIF.

        *pasamos la imagen subida por la transaccion SE78 a un stream
        CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
        EXPORTING
        p_object = lv_object
        p_name = lv_name
        p_id = lv_id
        p_btype = lv_btype
        RECEIVING
        p_bmp = ls_stream.

        *este stream lo tenemos que poner en forma de tabla
        lv_longitud = XSTRLEN( ls_stream ).

        DO.

        CLEAR ls_grafico.

        ls_grafico-linea = ls_stream+lv_offset(gc_255).

        APPEND ls_grafico TO lt_grafico.

        ADD gc_255 TO lv_offset.

        SUBTRACT gc_255 FROM lv_longitud.

        IF lv_longitud <= gc_255.

        ls_grafico-linea = ls_stream+lv_offset(lv_longitud).

        APPEND ls_grafico TO lt_grafico.

        EXIT.

        ENDIF.

        ENDDO.

        * creamos la url para esta imagen
        CALL FUNCTION 'DP_CREATE_URL'
        EXPORTING
        type = lv_type
        subtype = lv_subtype
        size = lv_size
        lifetime = lv_lifetime
        TABLES
        data = lt_grafico
        CHANGING
        url = lv_url.

        ** Al objeto imagen le indicamos cual será su imagen
        CALL METHOD p_picture->load_picture_from_url
        EXPORTING
        url = lv_url
        EXCEPTIONS
        error = 1
        OTHERS = 2.

        IF sy-subrc <> 0.

        p_subrc = 3.

        *Al liberar el container tambien se liberan todos los hijos que tenga
        *en este caso su hijo seria el control picture
        p_container->free( ).
        cl_gui_cfw=>flush( ).

        EXIT.

        ENDIF.

        * Indicamos el modo de disposición de la imagen dentro del container
        CALL METHOD p_picture->set_display_mode
        EXPORTING
        display_mode = p_picture->display_mode_fit_center.

        *registramos el evento click
        ls_evento-eventid = p_picture->eventid_picture_click.

        APPEND ls_evento TO lt_eventos.

        CALL METHOD p_picture->set_registered_events
        EXPORTING
        events = lt_eventos
        EXCEPTIONS
        cntl_error = 1
        cntl_system_error = 2
        illegal_event_combination = 3
        OTHERS = 4.

        IF sy-subrc <> 0.

        p_subrc = 5.
        *Al liberar el container tambien se liberan todos los hijos que tenga
        *en este caso su hijo seria el control picture
        p_container->free( ).
        cl_gui_cfw=>flush( ).

        EXIT.

        ENDIF.

        SET HANDLER go_receptor->handle_click FOR p_picture.

        ENDFORM. " CREAR_BOTON

        Comentario

        • DavidXD_XD
          Moderator
          • ago
          • 1255

          #5
          Hola ... create un CUSTOM_CONTAINER y levanta un grafico que previo debes registrarlo dentro de la OAER .... ahi un buen programa de ejemplo ^^ DD_ADD_PICTURES, espero te pueda servir
          David Carballido Córdova

          Comentario

          Trabajando...