PDA

Ver la Versión Completa : Cómo poner un LOGO en la parte de cabecera que se quiera???


fence
14/05/08, 10:09:11
Hola!

estoy con un ALV y en la cabecera quieren que salga, entre otras cosas, el logotipo de la empresa a la izquierda de la pantalla, alguien sabe cómo ponerlo ahí? Estoy utilizando un ALV GRID de los de toda la vida, nada de objetos y no sé cómo indicarle la tabulación :(

Gracias de antemano

fanekas22
14/05/08, 10:43:41
hola, yo he hecho lo siguiente:

cuando llamas al alv, te creas un párrafo de cabecera:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_top_of_page = 'TOP_OF_PAGE'
i_structure_name = 'I_INFORME'
i_grid_title =
'Facturas Acreedores Contabilizadas'
is_layout = layout
it_fieldcat = fieldtab
i_default = 'X'
i_save = g_save
it_events = events[]
TABLES
t_outtab = i_informe
EXCEPTIONS
program_error = 1
OTHERS = 2.


Y en este párrafo utilizas la función:

**---------------------------------------------------------------------*
** FORM TOP_OF_PAGE *
**---------------------------------------------------------------------*
FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = logo

ENDFORM.

fence
14/05/08, 10:50:08
Hola Fanekas22, he utilizado esas 2 funciones entre otras cosas porque el resto de datos que van en la cabecera sólo sé sacarlos así pero mi problema es que el logo me lo pone siempre donde le viene en gana y lo que yo quiero es ordenarle que el logo salga donde yo le diga, en mi caso a la izquierda, por defecto lo saca a la derecha de la cabecera y yo necesito moverlo de ahí.

azua14
14/05/08, 14:10:01
No has pensado en hacer una imagen lo bastante larga hacia el lado donde el logo esté a la izquierda? en una de esas no hay porque complicarse tanto..

DavidXD_XD
14/05/08, 16:52:26
Hola, tu puedes jugar como quieras con el logo en el ALV, lo unico malo es q se programaria en OO, para mi es muy util, en la parte estructurada con funciones el logo siempre sale en la parte superior derecha de tu pantalla :( , dale una checkeada a este programa DD_ADD_PICTURE

Attilio Travascio
15/05/08, 19:04:16
Hola Buenas tardes, te dejo un molde que me ha sido muy util para utilzar OO, de verdad que no es nada complicado y cuando le agarras la vuelta, no lo dejaras de usar.

Lo primero que se debe de hacer es crear la imagen dentro de SAP, pero no por la transaccion que comunmente se hace SE78, si no por la SMW0. Aqui crear el nombre del objeto y lo subes.
Despues copia este mismo codigo.
Debes crear una dympro en donde vas a colocar dos container en principio, uno en el lugar en donde quieres la imagen y el otro el contenido de la informacion, le colocas sus nombres respectivo por ejemplo Container_1 y Logo.
Estos mismo nombre lo vas a poner como valor por defectos en las variables q estan declaradas en este codigo que te estoy dando (Se llaman Cuadro, y cuadro_logo).

Espero que te sirva

Anexo Codigo:

PROGRAM ZMOLDE_ALV_CONTAINER.

DATA:
* Datos del Contenido del Primer Cuadro
GT_SFLIGHT LIKE MARA OCCURS 0 WITH HEADER LINE,
CUADRO TYPE SCRFNAME VALUE 'CUADRO',
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

* Datos del Contenido del Segundo Cuadro
GT_SFLIGHT2 TYPE TABLE OF MARC,
CUADRO2 TYPE SCRFNAME VALUE 'CUADRO2',
GRID2 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

* Datos para el Logotipo en otro CUadro Aparte
CUADRO_LOGO TYPE SCRFNAME VALUE 'CUADRO_LOGO',
LOGO1 TYPE REF TO CL_GUI_PICTURE,
OBJECT_ID LIKE WWWDATAID-OBJID,
URL(256) TYPE C,
MIME LIKE W3MIME OCCURS 0 WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& Tabla de Salida
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*
DATA : BEGIN OF SALIDA OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF SALIDA.

DATA: GT_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE.



* Llamada a la Pantalla
CALL SCREEN 1000.
*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_1000 OUTPUT.
* El estatus de la pantalla (Los Botones)
SET PF-STATUS 'STA'.
* El Titulo del Reporte cuando Salga en La barra del Menu
SET TITLEBAR 'WWW'.

* Llenar Catalago
PERFORM TEXTO_REP.

* Llenar el Primer cuadro
SELECT * FROM MARA INTO TABLE GT_SFLIGHT.
* Llenar el Segundo Cuadro
* SELECT * FROM MARC INTO TABLE GT_SFLIGHT2.

TABLES MAKT.
LOOP AT GT_SFLIGHT.
SELECT SINGLE * FROM MAKT WHERE MATNR EQ GT_SFLIGHT-MATNR
AND SPRAS EQ 'S'.
MOVE-CORRESPONDING MAKT TO SALIDA.
APPEND SALIDA.
CLEAR SALIDA.
ENDLOOP.

* Este es el metodo para el Primer Cuadro en la Pantalla
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = CUADRO. "Nombre del Container
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'MARA' "Nombre de la Tabla
CHANGING
IT_OUTTAB = GT_SFLIGHT[].



* Este es el metodo para el Segundo Cuadro en la Pantalla

CREATE OBJECT G_CUSTOM_CONTAINER2
EXPORTING CONTAINER_NAME = CUADRO2. "Nombre del Container
CREATE OBJECT GRID2
EXPORTING I_PARENT = G_CUSTOM_CONTAINER2.
CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
* EXPORTING I_STRUCTURE_NAME = 'MARC' "Nombre de la Tabla
CHANGING IT_FIELDCATALOG = GT_FIELDCAT[]
IT_OUTTAB = SALIDA[].


* Este es el Metodo para Colocar el Logo en el Container especificado.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = CUADRO_LOGO. "Nombre del Container
CREATE OBJECT LOGO1
EXPORTING PARENT = G_CUSTOM_CONTAINER.
* Este logotipo debe de estar subido a sap, por medio de la transaccion
* SMW0 que permite la subida de imagenes y hojas extencion de HTML
OBJECT_ID = 'ZBEIBOL'. "Nombre del logo tipo a subir
IMPORT MIME FROM DATABASE WWWDATA(MI) ID OBJECT_ID.

CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
TYPE = 'IMAGE'
SUBTYPE = 'GIF'
TABLES
DATA = MIME
CHANGING
URL = URL.

CALL METHOD LOGO1->SET_ADJUST_DESIGN
EXPORTING
ADJUST_DESIGN = 1.
CALL METHOD LOGO1->LOAD_PICTURE_FROM_URL
EXPORTING
URL = URL
EXCEPTIONS
OTHERS = 4.
ENDIF.
ENDMODULE. " STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1000 INPUT.
IF SY-UCOMM EQ 'EXIT' OR SY-UCOMM EQ 'BACK'.
LEAVE PROGRAM.
ENDIF.
ENDMODULE. " USER_COMMAND_1000 INPUT

*&---------------------------------------------------------------------*
*& Form TEXTO_REP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM TEXTO_REP.
CLEAR GT_FIELDCAT.
GT_FIELDCAT-FIELDNAME = 'MATNR'.
GT_FIELDCAT-REPTEXT = 'Material'.
APPEND GT_FIELDCAT.
CLEAR GT_FIELDCAT.

CLEAR GT_FIELDCAT.
GT_FIELDCAT-FIELDNAME = 'MAKTX'.
GT_FIELDCAT-REPTEXT = 'Descripción'.
APPEND GT_FIELDCAT.
CLEAR GT_FIELDCAT.
ENDFORM. " TEXTO_REP