MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   F4if_int_table_value_request (foro/showthread.php?t=44372)

XJerickX 19/07/11 21:37:06

F4if_int_table_value_request
 
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



Husos Horarios son GMT. La hora en este momento es 21:55:24.

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