MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 16/03/10, 13:58:35
Avatar de Alfredosite
Alfredosite Alfredosite is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Localización: Lima-Perú
Mensajes: 135
Question Campo obligatorio dympro deshabilita matchcode(f4) Z

Hola amigos, tal vez me puedan ayudar. Tengo un matchcode Z el cual lo arme con la función HELP_VALUES_GET_WITH_TABLE leyendo una tabla.
Al proceder a realizar a deplegar el matchcode efecitvamente se muestran los posibles valores y logro seleccionar sin ningún problema, el problema ocurre cuando pongo este campo(afecto a F4) como OBLIGATORIO ahi no se despliega el matchcode. Cabe señalar que lo volvi obligatorio desde el screen painter activando el atributo de de campo de entrada como INPUT REQUIRED.

Alguna idea de como poder solucinar este impase? Alguna experiencia similar de alguien alguna vez? O que estoy realizando mal..

En resumen necesito un campo que muestre matchcode de posibles valores y que a la vez dicho campo deba ser obligatorio.

Aqui les dejo mi código.

Muy agradecido por sus comentarios

PROCESS AFTER INPUT.
...........
.........
....
PROCESS ON VALUE-REQUEST.
FIELD: gwa_dat_prestamo-periodicidad MODULE get_descripciones.

*&---------------------------------------------------------------------*
*& Module get_descripciones INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE get_descripciones INPUT.
PERFORM f4_for_tipo_perio USING gwa_dat_prestamo-periodicidad.
ENDMODULE. " get_descripciones INPUT

*&---------------------------------------------------------------------*
*& Form f4_for_tipo_perio
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GWA_DAT_PRESTAMO_PERIODICIDAD text
*----------------------------------------------------------------------*
FORM f4_for_tipo_perio USING pi_perio.
TYPES:BEGIN OF lty_values,
value(60) TYPE c.
TYPES:END OF lty_values.

TYPES:BEGIN OF lty_fields.
INCLUDE STRUCTURE help_value.
TYPES:END OF lty_fields.

DATA: ltd_values TYPE STANDARD TABLE OF lty_values,
ltd_fields TYPE STANDARD TABLE OF lty_fields,
* ltd_match TYPE STANDARD TABLE OF lty_match,
ltd_periodi TYPE STANDARD TABLE OF zphr_periodicida.

DATA:
ls_value TYPE ze_cod_embarca,
lwa_fields TYPE lty_fields,
lwa_values TYPE lty_values,
lwa_periodi TYPE zphr_periodicida,
ls_cursor_fld TYPE char20.

lwa_fields-fieldname = 'ZPERIOD'.
lwa_fields-tabname = 'ZPHR_PERIODICIDA'.
lwa_fields-selectflag = 'X'.
APPEND lwa_fields TO ltd_fields.
CLEAR lwa_fields.

lwa_fields-fieldname = 'ZDESC_PERIOD'.
lwa_fields-tabname = 'ZPHR_PERIODICIDA'.
lwa_fields-selectflag = ''.
APPEND lwa_fields TO ltd_fields.
CLEAR lwa_fields.
DATA: ls_zperiod TYPE zphr_periodicida-zperiod,
ls_abkrs TYPE abkrs.

* Obtenemos el area de nómina al momento del inicio del prestamo
SELECT SINGLE abkrs
INTO ls_abkrs
FROM pa0001
WHERE pernr eq p9960-pernr and
begda LE p9960-begda AND
endda GE p9960-begda.

* Llenamos variable zperiod
CASE ls_abkrs.
WHEN '1P'.
ls_zperiod = 1.
WHEN '2P'.
ls_zperiod = 2.
WHEN '3P'.
ls_zperiod = 3.
ENDCASE.

* Obtenemos solo las periodicidades de acuerdo a Area de Nómina del empleado(A nivel sup)
SELECT *
INTO CORRESPONDING FIELDS OF TABLE ltd_periodi
FROM zphr_periodicida
WHERE zperiod GE ls_zperiod.


LOOP AT ltd_periodi INTO lwa_periodi.
lwa_values-value = lwa_periodi-zperiod.
APPEND lwa_values TO ltd_values.
lwa_values-value = lwa_periodi-zdesc_period.
APPEND lwa_values TO ltd_values.
ENDLOOP.

CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
* cucol = 40
* curow = 8
tabname = 'ZPHR_PERIODICIDA'
fieldname = 'ZPERIOD'
IMPORTING
select_value = ls_value
TABLES
fields = ltd_fields
valuetab = ltd_values.

*Obtener el valor seleccionado del matchcode
IF ls_value <> space.
pi_perio = ls_value.
READ TABLE ltd_periodi INTO lwa_periodi WITH KEY zperiod = ls_value.
IF sy-subrc EQ 0.
gwa_dat_prestamo-desc_perio = lwa_periodi-zdesc_period.
ENDIF.
ENDIF.
__________________
Saludos Cordiales,
Alfredo Pastor Avendaño
SAP - Consultant HCM
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 08:19:12.


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