MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Activar barra de tareas y ocultar "textarea" (foro/showthread.php?t=7892)

Cobac 24/09/07 15:56:05

Activar barra de tareas y ocultar "textarea"
 
Buenas!!

Tengo un par de dudas, os cuento, hago un screen (0001) y quiero activarle los botones de la barra de herramientas de SAP (atrás -f3- y los demás botones). Sabeís como se hace por código?? :confused:

Esque he estado buscando y no encuentro nada...

Y, otra pregunta, en el anterior screen tengo un campo del tipo "input/output" y me gustaría poderlo ocultar si el valor es 0 (u otro valor por defecto), pero nose si se puede cambiar la propiedad de un elemento de la screen y luego "refrescarla" o tendría que crean otra screen...

Sabeís si esto último se puede hacer o, por el contrario, es imposible?

Gracias por vuestra ayuda!! ;)

Salu2!

cazurrin 25/09/07 08:37:21

Vamos por parte:
Para poner un menu de entorno en una transaccion propia diferente a la standard lo que yo hago es:
Me defino la botonera que deseo ( nombre de cada boton , funcion que va a efectuar, icono asociado ) esto se efectua por se41 .Despues desde el pbo de la transaccion llamo al status que me ha definido

PROCESS BEFORE OUTPUT.

MODULE STATUS_0500.
CALL SUBSCREEN: .......................
en mi caso era un screnn con subscreen incrustado

El codigo de module status puede ser algo similar a esto

DATA: extab TYPE slis_t_extab WITH HEADER LINE.

MODULE status_0500 OUTPUT.

CLEAR: extab, extab[].

extab-fcode = 'ASC_'.
APPEND extab.
extab-fcode = 'DESC_'.
APPEND extab.
:
:
:
SET TITLEBAR '0500'.
SET PF-STATUS 'SCREEN_500' EXCLUDING extab.
:
:
ENDMODULE.

Donde : extab es un objeto con una definicion standard de sap para excluir determinados botones segun criterio

SET TITLEBAR '0500'. el titulo que deseamos y que aparece en la parte superior.
SET PF-STATUS 'SCREEN_500' EXCLUDING extab. Llamada al objeto que hemos creado

Para le ajecucion de las acciones a realizar en cada boton se le asocia u Function a realizar

En el PAI definimos

PROCESS AFTER INPUT.
:
:
MODULE user_command_0500.
:
:



y para la ejecucion del module


MODULE user_command_0500 INPUT.

save_ok = sy-ucomm.
CLEAR w_data.

CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.

WHEN 'OK'.
PERFORM aceptar.

WHEN 'CANCEL' OR 'EXIT'.
SET SCREEN 0.

WHEN 'ASC_'.
WHEN 'DES_'.

WHEN OTHERS.
ENDCASE.
ENDMODULE.

Son varios pasos, y lo ha resumido lo mejor que he podido espero que te ayude y no te lie mas. ;)


2º)

Para modificar los atributos de un campo de una dynpro

LOOP AT SCREEN.
IF screen-group1 = '1'.
screen-input = ''.
MODIFY SCREEN.
ENDIF.
*
IF screen-group1 = '8'.
screen-value_help = '0'.
MODIFY SCREEN.
ENDIF.

ENDLOOP.

puedes utilizar tambien screen-name para un campo determinado y los screen-group para una asociacion de campos.
En las ayudas de SAP tienes los distintos campos que tiene el objeto SCREEN-

Cobac 25/09/07 16:01:29

Muchas gracias!! la verdad que me ha servido...

Aunque me estoy peleando intentando ocultar un campo input/output y lo máximo que he logrado ha sido que salgan asteriscos...

Sabes si se puede ocultar sin que se llene todo de asteriscos??

He probado con el screen-input y lo que hace es habilitarlo o deshabilitarlo, pero se sigue viendo. También he probado con el screen-invisible y me lo oculta... pero esta lleno de asteriscos :eek:

Gracias por todo ;)

Un Saludo!!

ballan 25/09/07 17:27:04

tienes que poner los campos asi:

screen-output = 0.
screen-input = 0.
screen-invisible = 1.

Cobac 26/09/07 07:13:36

Gracias!! me ha ido perfectamente ;)

Salu2!


Husos Horarios son GMT. La hora en este momento es 02:19:00.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web