PDA

Ver la Versión Completa : logo empresa


tgonza0801
29/04/14, 13:45:02
buenos dias

Colegas si me puden dar una mano seria de gran ayuda. tengo un formulario Smartforms de pedidos de compra, el cual lo comparten dos sociedades, queremos incluirle el logo de cada empresa, pero no he podido encontrar la forma de decirle al formulario que para una sociedad tomo la imagen correspondiente y para lo otra sociedad la otra imagen, si me pueden colaborar se les agradece.

Saludos

jsdiaz
29/04/14, 16:34:47
Creo que yo te puedo ayudar con eso,
Empezemos (aclaro que lo haré mediante la ejecución del smartform ya que supongo que tu tienes un reporte que llama el smartform con todas sus salidas de impresion previamente configuradas)

1. iremos a el smartform y crearemos un elemento GRAPHIC (imagen)
luego llenaremos los campos como se muestra a continuación

Name &LOGO& - Referencia a un campo
Object GRAPHICS
ID BMAP

Y tenes seleccionado la parte que esta (BCOL) (esto puede variar si tu imagen es blanco y negro o a color en este caso a color)


2. En iterface de formulario en la pestaña Import debes de definir esta variable
LOGO TYPE TDOBNAME


3. en la parte de definiciones globales debes en la pestaña Datos Globales defines esta variable( GV_XSTRING TYPE XSTRING )

Luego en la pestaña de inicializacion debes poner

en el input ( LOGO )
en el output ( GV_XSTRING )

y en el codigo de inicializacion pegas este metodo

call method cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
exporting
p_object = 'GRAPHICS' - tipo del objero
p_name = LOGO - 'nombre del campo' (nombre de la imagen(se sube por la SE78) mas adelante te explico como usar esta variable)
p_id = 'BMAP'
p_btype = 'BCOL' - cuidado varia si es B/N o a color en este caso Color
receiving
p_bmp = GV_XSTRING.
Listo.

Ahora en el reporte que llama al smartform quedaría algo así

*Se declara el campo Logo para ser usado*
DATA: logo TYPE tdobname.




*Este Data es la función que se va exportar desde el smartform
DATA: logo_smt TYPE rs38l_fnam.

"Obtenemos el nombre de la funcion para nuestro formulario
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZFORM_LOGO' - Nombre del smartform
IMPORTING
fm_name = logo_smt - funcion
EXCEPTIONS
no_form = 1
no_function_module = 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.
*
*

"Aquí intente recrear tu problema dependiendo si la sociedad es 1 o 2 cree un case en el cual le paso los parámetros que van a ser impresos en este caso el logo.


CASE sociedad. - "Nombre de tu sociedad"

WHEN 1. "-sociedad 1

Logo = 'el Nombre del logo de la sociedad 1' (aquí es donde cambiamos la variable logo y le asignamos el valor en esta caso (nombre de la imagen))

CALL FUNCTION logo_smt
EXPORTING

logo = logo

* TABLES

EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.


WHEN 2. "-sociedad 2

Logo = ' el Nombre del logo de la sociedad 2'
CALL FUNCTION logo_smt
EXPORTING

logo = logo

* TABLES

EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

ENDCASE.

Espero haberte ayudado, Un saludo :D

tgonza0801
29/04/14, 21:07:50
gracias por tu ayuda lo estoy haciendo paso a paso,

1. iremos a el smartform y crearemos un elemento GRAPHIC (imagen)
luego llenaremos los campos como se muestra a continuación

Name &LOGO& - Referencia a un campo
Object GRAPHICS
ID BMAP

Y tenes seleccionado la parte que esta (BCOL) (esto puede variar si tu imagen es blanco y negro o a color en este caso a color)


2. En iterface de formulario en la pestaña Import debes de definir esta variable
LOGO TYPE TDOBNAME


3. en la parte de definiciones globales debes en la pestaña Datos Globales defines esta variable( GV_XSTRING TYPE XSTRING )

Luego en la pestaña de inicializacion debes poner

en el input ( LOGO )
en el output ( GV_XSTRING )

y en el codigo de inicializacion pegas este metodo

call method cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
exporting
p_object = 'GRAPHICS' - tipo del objero
p_name = LOGO - 'nombre del campo' (nombre de la imagen(se sube por la SE78) mas adelante te explico como usar esta variable)
p_id = 'BMAP'
p_btype = 'BCOL' - cuidado varia si es B/N o a color en este caso Color
receiving
p_bmp = GV_XSTRING.

Listo.


hasta aca voy bien pero ya me enrede un poco, me podrias ayudar teniendo en cuenta que:

la sociedad es 1100 y nombre de la imagen es FIRMA_1100.
la sociedad es 1000 y nombre de la imagen es FIRMA_TG.

Gracias

jsdiaz
30/04/14, 03:44:13
Listo entonces el código que te voy a mostrar lo deberías poner en el Programa (Reporte) que llama a el smartform. (supongo que debes de tener un programa donde este la rutina que llama al smartform )

*Se declara el campo Logo para ser usado*
DATA: logo TYPE tdobname. "Este logo es el que se declaro en el código de inicializacion del smartform


*Este Data es la función que se va exportar desde el smartform
DATA: logo_smt TYPE rs38l_fnam.

*aquí se hace el llamado al smartform (busca esta función en tu reporte)
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZFORM_LOGO' - Nombre del smartform
IMPORTING
fm_name = logo_smt - función que se declara en el DATA
EXCEPTIONS
no_form = 1
no_function_module = 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.


*creer un case para las dos opciones de sociedad

CASE sociedad. - "Nombre de tu sociedad" (Generalmente creo que el campo o la variable es BUKRS)

WHEN 1100. "-sociedad 1 (1100)

Logo = 'FIRMA_1100'.

*En esta función es donde se pasan los parámetros al smartforms que vas a imprimir (en este caso es solo el campo logo) (supongo que en tu reporte estará esta misma función en esta es solo agregar el campo logo).

CALL FUNCTION logo_smt
EXPORTING

logo = logo

* TABLES

EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.


WHEN 1000. "-sociedad 2 (1000)

Logo = ' FIRMA_TG'

*En esta función es donde se pasan los parámetros al smartforms que vas a imprimir (en este caso es solo el campo logo) (supongo que en tu reporte estará esta misma función en esta es solo agregar el campo logo).


CALL FUNCTION logo_smt
EXPORTING

logo = logo

* TABLES

EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

ENDCASE.

tgonza0801
30/04/14, 20:00:07
JSDIAZ gracias por tu ayuda, fue muy útil tu manual y esta bien detallado.. ya por fin lo conseguí.


Saludos.