Otra forma......
Sino puedes hacer lo siguiente: (es una ayuda de busqueda originada con una tabla interna tuya, por lo que le puedes poner matchcode a cualquier campo)
*primero debes declarar esto
DATA: BEGIN OF it_ihelp_fields OCCURS 0.
INCLUDE STRUCTURE help_value.
DATA: END OF it_ihelp_fields.
DATA: BEGIN OF it_helptab OCCURS 0,
feld(50),
END OF it_helptab.
* Variables para Tablas de Información para ayuda de Usuario.
DATA:
g_tnam LIKE help_info-tabname,
g_fnam LIKE help_info-fieldname .
*luego en el at selection-screen
*---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks.
*---------------------------------------------------------------------*
*p_werks es el campo al k kieres ponerle una ayuda.
g_fnam = 'WERKS'. " campo al k kieres mostrar ayuda
g_tnam = 'T001W'. "tabla de referencia del campo
FREE it_ihelp_fields.
CLEAR it_ihelp_fields.
it_ihelp_fields-tabname = 'T001W'. "tabla de referencia del campo
it_ihelp_fields-fieldname = 'WERKS'. " campo al k kieres mostrar ayuda
it_ihelp_fields-selectflag = 'X'. "este flag indica k este campo es el k retorna
APPEND it_ihelp_fields.
*si kieres mostrar un codigo(werks) con su descripcion
it_ihelp_fields-tabname = 'T001W'. "tabla de referencia del campo
it_ihelp_fields-fieldname = 'NAME1'. "descripcion
it_ihelp_fields-selectflag = ''. "flag en blanco porque este valor no se retorna
APPEND it_ihelp_fields.
FREE :it_helptab
CLEAR :it_helptab,it_centro
SELECT werks name1
INTO CORRESPONDING FIELDS OF TABLE it_centro
FROM t001w
WHERE werks LIKE 'T%' OR
werks LIKE 'M%'.
* ordenamos la tabla interna
SORT it_centro BY werks .
LOOP AT it_centro.
it_helptab-feld = it_centro-werks. "aki asignamos la data de centro a las tablas de ayuda
APPEND it_helptab.
it_helptab-feld = it_centro-name1. "aki asignamos la data de descrip.centro a las tablas de ayuda
APPEND it_helptab.
ENDLOOP.
PERFORM call_help_dynpro USING p_werks
text-CEN. "aki envias el titulo que mostarra tu ayuda
***************************************************************
este form lo declaras aparte para utilizarlo en todas tus ayudas
****************************************************************
*&---------------------------------------------------------------------*
*& Form call_help_dynpro
*&---------------------------------------------------------------------*
FORM call_help_dynpro USING p_chd_value
p_Title .
CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
TITEL = p_Title
fieldname = g_fnam
tabname = g_tnam
IMPORTING
SELECT_VALUE = p_chd_value
TABLES
FIELDS = it_ihelp_fields
VALUETAB = it_helptab
EXCEPTIONS
FIELD_NOT_IN_DDIC = 1
MORE_THEN_ONE_SELECTFIELD = 2
NO_SELECTFIELD = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " call_help_dynpro
espero te sirva...
Saludos.
|