lunes, 23 de junio de 2014

Imágenes o logos dinámicos en un SapScript

Programación:
  TYPESBEGIN OF ty_logo,
*        tdobject TYPE tdobject,
        tdname TYPE  tdobname, "tdname,
*        tdid TYPE tdid,
        tdbtype TYPE tdbtype,
        tdresolut TYPE tdresolut,
  END OF ty_logo.

PERFORM zlogo_get '0300'.

  FORM zlogo_get USING p_bukrs TYPE bukrs.
*
    CASE p_bukrs.
      WHEN '0300'.
        gl_logo-tdname 'LOGO_0300'.
        gl_logo-tdbtype 'BCOL'.
        gl_logo-tdresolut 300.
      WHEN '0200'.
        gl_logo-tdname 'LG_0200'.
        gl_logo-tdbtype 'BCOL'.
        gl_logo-tdresolut 200.
      WHEN '0400'.
        gl_logo-tdname 'LOG4EX'.
        gl_logo-tdbtype 'BCOL'.
        gl_logo-tdresolut 200.
      WHEN '0500'.
        gl_logo-tdname 'LOGONEW'.
        gl_logo-tdbtype 'BCOL'.
        gl_logo-tdresolut 200.
      WHEN OTHERS.
    ENDCASE.
*
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        window 'LOGO_SOC'.
*
  ENDFORM.  

En la ventana LOGO_SOC comando /:
BITMAP &GL_LOGO-TDNAME& OBJECT GRAPHICS ID BMAP TYPE &GL_LOGO-TDBTYPE& DPI &GL_LOGO-TDRESOLUT&

viernes, 6 de junio de 2014

Depurar (debugging) un smartform.

Este es un truco personal que también le parece útil a Dani, no sé si otra gente lo hacer o si hay alternativas. Como no deja poner break-points no explícitos en el código de los smartforms.

Lo que hago es en la parte alta de la edición del smartform, voy Entorno->Nombre del módulo de funciones. Copio el nombre del módulo de funciones, que además en este caso también es el nombre del grupo de funciones. Voy  a la SE80 y lo copia allí en grupos de funciones. Busco un trozo de código en todo el programa que corresponda al sitio donde quieres debuggar.


A veces no encuentras tu trozo de código... la solución es ponerse encima del grupo de funciones botón derecho, Otras funciones-> Reestructurar lista de objetos.

miércoles, 4 de junio de 2014