PDA

Ver la Versión Completa : ¿como asociar el boton del Mach code en la entrada de un reporte con una tabla creada


Henger Abreu
28/11/08, 15:25:55
La entrada del programa es el nombre del empleado que esta guardado en el campo bseg-sgtxt. lo que quiero es crear una tabla que se vincule al mach code, ¿se podrá?.

DavidXD_XD
28/11/08, 18:21:09
Hola .. entiendo que el nombre del empleado el cual se ingresa como parametro de entrada en el programa se guarda dentro del campo BSEG-SGTXT (Descripcion del detalle del documento contable), lo demas no entiendo sobre el matchcode, puedes explicart un poco mejor :D

Henger Abreu
01/12/08, 13:04:15
Hola .. entiendo que el nombre del empleado el cual se ingresa como parametro de entrada en el programa se guarda dentro del campo BSEG-SGTXT (Descripcion del detalle del documento contable), lo demas no entiendo sobre el matchcode, puedes explicart un poco mejor :D


Buenos días.

Lo que quiero es que cuando le de al matchcode se despliege una lista con los nombres de los empleados y pueda seleccionar uno para que se coloque en el campo de entrada.

DavidXD_XD
01/12/08, 13:54:11
A ya veo ... ahi jalas todos los nombres de los empleados que colocaste en la BSEG, yo lo hice de esta forma:

*&---------------------------------------------------------------------*
*& Module VALUE_W_SAS INPUT
*&---------------------------------------------------------------------*
* Llamada de la función para desplegar ayuda (F4) dentro del
* campo w_sas y w_sas2
*----------------------------------------------------------------------*
MODULE value_w_sas INPUT.

* Lleno la tabla interna con los valores a mostrar en el match-code
SELECT * INTO CORRESPONDING FIELDS OF TABLE ti_sas
FROM dd07t WHERE domname = 'ZSASN'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'INTERNAL'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'INTERNAL'
value_org = 'S'
window_title = text-t30
TABLES
value_tab = ti_sas
return_tab = return_values
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.

ENDMODULE. " VALUE_W_SAS INPUT

Y para direccionar esa ayuda de busqueda al campo que quiero hice esto dentro de la logica de pantalla

PROCESS BEFORE OUTPUT.
MODULE STATUS.

PROCESS AFTER INPUT.
MODULE COPY_OK_CODE.
MODULE EXIT_COMMAND AT EXIT-COMMAND.
CHAIN.
FIELD: W_SAS, W_FCHINI, W_FCHFIN.
MODULE VALIDA_SAS.
MODULE VALIDA_FECHA.
MODULE USER_COMMAND.
ENDCHAIN.

PROCESS ON VALUE-REQUEST.
FIELD W_SAS MODULE VALUE_W_SAS.

Pero esto es para dynpros, si en tu caso realizas el ejercicio con parametros de seleccion, seria bueno darle una ojeada a este ejemplo Demo de SAP

demo_selection_screen_f4

Espero te pueda servir =D

Henger Abreu
03/12/08, 12:44:57
Buenos días.

Encontre una rutina con tablas internas y la función 'F4IF_INT_TABLE_VALUE_REQUEST' para crear matchcode . Lo que hice fue crear dos tablas internas y mandarla a la función para que me aparezcan los datos en el matchcode.

DATA: BEGIN OF IT_SGTXT OCCURS 0,
NAME1 LIKE KNA1-NAME1,
NAME2 LIKE KNA1-NAME2,
END OF IT_SGTXT.
DATA: BEGIN OF IT_MATCH OCCURS 0,
SHLPNAME LIKE DDSHRETVAL-SHLPNAME,
FIELDNAME LIKE DDSHRETVAL-FIELDNAME,
RECORDPOS LIKE DDSHRETVAL-RECORDPOS,
FIELDVAL LIKE DDSHRETVAL-FIELDVAL,
RETFIELD LIKE DDSHRETVAL-RETFIELD,
END OF IT_MATCH.

SELECTION-SCREEN BEGIN OF BLOCK KD_0 WITH FRAME TITLE TEXT-000.
SELECT-OPTIONS: KD_SGTXT FOR BSEG-SGTXT NO-EXTENSION.
PARAMETERS: KD_BUKRS TYPE BSEG-BUKRS.
SELECTION-SCREEN END OF BLOCK KD_0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KD_SGTXT-LOW.

SELECT NAME1 NAME2 FROM KNA1 INTO TABLE IT_SGTXT WHERE SORTL EQ 'EMPLEADO'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'NAME1'
WINDOW_TITLE = 'EMPLEADO'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_SGTXT
RETURN_TAB = IT_MATCH
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
READ TABLE IT_MATCH INDEX 1.
MOVE IT_MATCH-FIELDVAL TO KD_SGTXT-LOW.
ENDIF.