Inicio > ABAP/4, Exits > Grisar campo de pantalla en MIGO (Lote, Clasificación)

Grisar campo de pantalla en MIGO (Lote, Clasificación)

Caso: se busca que en la MIGO, para cuando se realiza una salida de mercancías (A07) y para unos materiales en particular, que se grise el campo LOTE y el botón CLASIFICACIÓN, así el usuario no puede modificar el dato que viene por defecto (ya que estaba configurado que si había varios lotes para el mismo material, que realice la salida de material desde el lote más antiguo).

El botón “Clasificación” se oculta porque al presionarlo asigna un nuevo número de lote.

Solución: Tenemos que ir al programa LMIGOSMC, crear una ampliación en ENHANCEMENT-SECTION LMIGOSMC_02 SPOTS ES_SAPLMIGO agregando el siguiente código:

* INI Lote grisado para materiales ZMEV
if screen-name = ‘GOITEM-CHARG’ or screen-name = ‘GODYNPRO-CHARG’
or screen-name = ‘GOITEM-BWTAR’ or screen-name = ‘GODYNPRO-BWTAR’
or screen-name = ‘OK_BATCH_CLASS’. ” Oculto además el Botón Clasificación

check GODYNPRO-ACTION = ‘A07′ and goitem is not initial and GOITEM-MATNR(2) = ‘EV’.
ls_fs-work = c_visible.

ENDIF.
* FIN Lote grisado para materiales ZMEV

Es decir, debería quedar así:

—-

ENHANCEMENT-SECTION LMIGOSMC_02 SPOTS ES_SAPLMIGO.
IF ls_fs-type = ‘C’ AND
( sy-dynnr = ‘0200’ OR sy-dynnr = ‘1000’ ).
* Read the COLS table of the table control to check
* whether this element is a column or not (remember: there
* are buttons in screen 0200, too).
CASE sy-dynnr.
WHEN ‘0200’.
READ TABLE tv_goitem-cols INTO ls_column
WITH KEY screen-name = screen-name
TRANSPORTING invisible
index.
WHEN ‘1000’.
READ TABLE tv_gosplit-cols INTO ls_column
WITH KEY screen-name = screen-name
TRANSPORTING invisible
index.
ENDCASE.
* GLC = 0 : Disabling columns
IF i_global_counter IS INITIAL.
* Check for SY-SUBRC is necessary as there are data in field-
* selections which are possibly columns in the TC, but not
* currently implemented (accounting fields). For these, the
* MIGO fieldselection is used as a transporter for FS-information.
IF sy-subrc = 0.
* Columns disabled by administrator: INVISIBLE = X. Do not touch!
* Columns disabled by us: INVISIBLE = 1. Jupedidu!
CHECK ls_column-invisible <> x.
ls_column-invisible = c_mod_off.
IF ls_fs-work = c_invisible.
ls_column-invisible = c_mod_on.
ENDIF.
CASE sy-dynnr.
WHEN ‘0200’.
MODIFY tv_goitem-cols FROM ls_column
INDEX sy-tabix
TRANSPORTING invisible.
WHEN ‘1000’.
MODIFY tv_gosplit-cols FROM ls_column
INDEX sy-tabix
TRANSPORTING invisible.
ENDCASE.
* Do not execute normal screen modification!!!
CONTINUE.
ENDIF.
ELSE.
* GLC > 0: Item modification in TV. Check that column
* is visible. Necessary to prevent the field itself to
* be set INVISIBLE (No fields transport. Deadly!)
CHECK ls_column-invisible = c_mod_off.
ENDIF.
ENDIF.
END-ENHANCEMENT-SECTION.

ENHANCEMENT 1 ZMM_LMIGOSMC_02. “active version
IF ls_fs-type = ‘C’ AND
( sy-dynnr = ‘0200’ OR sy-dynnr = ‘1000’ ).
* Read the COLS table of the table control to check
* whether this element is a column or not (remember: there
* are buttons in screen 0200, too).
CASE sy-dynnr.
WHEN ‘0200’.
READ TABLE tv_goitem-cols INTO ls_column
WITH KEY screen-name = screen-name
TRANSPORTING invisible
index.
WHEN ‘1000’.
READ TABLE tv_gosplit-cols INTO ls_column
WITH KEY screen-name = screen-name
TRANSPORTING invisible
index.
ENDCASE.
* GLC = 0 : Disabling columns
IF i_global_counter IS INITIAL.
* Check for SY-SUBRC is necessary as there are data in field-
* selections which are possibly columns in the TC, but not
* currently implemented (accounting fields). For these, the
* MIGO fieldselection is used as a transporter for FS-information.
IF sy-subrc = 0.
* Columns disabled by administrator: INVISIBLE = X. Do not touch!
* Columns disabled by us: INVISIBLE = 1. Jupedidu!
CHECK ls_column-invisible <> x.
ls_column-invisible = c_mod_off.
IF ls_fs-work = c_invisible.
ls_column-invisible = c_mod_on.
ENDIF.
CASE sy-dynnr.
WHEN ‘0200’.
MODIFY tv_goitem-cols FROM ls_column
INDEX sy-tabix
TRANSPORTING invisible.
WHEN ‘1000’.
MODIFY tv_gosplit-cols FROM ls_column
INDEX sy-tabix
TRANSPORTING invisible.
ENDCASE.
* Do not execute normal screen modification!!!
CONTINUE.
ENDIF.
ELSE.
* GLC > 0: Item modification in TV. Check that column
* is visible. Necessary to prevent the field itself to
* be set INVISIBLE (No fields transport. Deadly!)
CHECK ls_column-invisible = c_mod_off.
ENDIF.
ENDIF.

* INI Lote grisado para materiales ZMEV
if screen-name = ‘GOITEM-CHARG’ or screen-name = ‘GODYNPRO-CHARG’
or screen-name = ‘GOITEM-BWTAR’ or screen-name = ‘GODYNPRO-BWTAR’
or screen-name = ‘OK_BATCH_CLASS’. ” Oculto además el Botón Clasificación

check GODYNPRO-ACTION = ‘A07′ and goitem is not initial and GOITEM-MATNR(2) = ‘EV’.
ls_fs-work = c_visible.

ENDIF.
* FIN Lote grisado para materiales ZMEV
ENDENHANCEMENT.
*$*$-End: LMIGOSMC_02

About these ads
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: