PDA

Ver la Versión Completa : F4if_int_table_value_request


XJerickX
19/07/11, 21:37:06
Tengo la siguiente duda estoy utilizando la funcion
'F4IF_INT_TABLE_VALUE_REQUEST '
Para mostrar la ayuda pero solo algunos campos, pero lo k yo kiero
es k pueda funcionar para varios campos
osea

DATA: BEGIN OF lst_werks,
werks TYPE mard-werks,
name1 TYPE t001w-name1,
END OF lst_werks.

DATA: lst_match TYPE STANDARD TABLE OF DDSHRETVAL,
cmp_ref TYPE string,
title TYPE string.

SELECT-OPTIONS: s_werks FOR mard-werks,
s_lgort FOR mard-lgort.

AT SELECTION SCREEN ON VALUE REQUEST s_werks-low.
SELECT werks name1 INTO TABLE lst_werks
FROM t001w.
cmp_ref = 'werks'.
title = 'Centro'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = cmp_ref
WINDOW_TITLE = title
VALUE_ORG = 'S'
TABLES
VALUE_TAB = lst_werks
RETURN_TAB = lst_match.

VALUE_TAB = <lst_werks> <--- no se si se puede pero quisiera que
en vez de colocar el nombre de la tabla
colocar una especie de variable o
FIELD-SYMBOL que contenga el
nombre de la tabla con los datos a
mostrar, nose si me entienden?
Pero gracias =.

jtristan
20/07/11, 07:31:38
Puedes probar a pasarlo con un field-symbol. Lo único, no puedes pasar tablas con cabeceras. Sería algo así:

FIELD-SYMBOLS: <tabla> type STANDARD TABLE.

types: begin of lst_werks_type,
werks TYPE mard-werks,
name1 TYPE t001w-name1,
END OF lst_werks_type.
data: lst_werks type table of lst_werks_type.


assign lst_werks to <tabla>.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = cmp_ref
WINDOW_TITLE = title
VALUE_ORG = 'S'
TABLES
VALUE_TAB = <tabla>
RETURN_TAB = lst_match.

Por cierto, probando tu ejemplo, veo que tienes mal declarado los campos retfield, que tiene que ser del tipo DFIES-FIELDNAME y títulos que tiene que ser de tipo c.

Espero que te valga.

Un saludo.

XJerickX
20/07/11, 15:15:40
Pues si tu ejemplo me vino como anillo al dedo me quedo bien, pues ahora si no seria mucha molestia.

Sabemos k en este ejemplo.
WERKS --> Centro.
LGORT --> Almacen.

hay varios almacenes en un solo centro como le podria pasar el dato seleccionado en el select-options: s_werks, para utilizarlo en el:

SELECT lgort lgobe INTO TABLE lst_lgort
FROM t001l
WHERE werks IN s_werks.

Seria como cuando buscas un lugar especifico:
Ejm.
Pais: |_____|_|
Departamento: |_____|_|
Provincia: |_____|_|

Pero de por si muchas gracias ya me aliviaste mucho esta carga jtristan :) .

jtristan
22/07/11, 07:07:50
Hola,

perdona pero no he entendido exactamente lo que necesitas. ¿Podrías ponerme un ejemplo con datos?

Muchas gracias.

XJerickX
22/07/11, 20:51:46
Ah no te preocupes ya consegui lo queria hacer que era:

En un:
Select-options: s_werks for mard-werks.
Me mostrara los centros(mard-werks) y sus descripciones para capturar el codigo de un centro.

Luego en el otro:
Select-options: s_lgort for mard-lgort.
Luego en este me mostrara solo los almacenes (mard-lgort) relacionados con ese centro.
Y no sabia como capturar el valor del 's_werks' pero solo la pase a una variable y normal lo acepto pero = gracias sin tu ejemplo anterior no lo hubiera podido terminar.:D :D

Hola,

perdona pero no he entendido exactamente lo que necesitas. ¿Podrías ponerme un ejemplo con datos?

Muchas gracias.