MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   AYUDA URGENTE on value-request. (foro/showthread.php?t=28526)

miguel.esteban.martin 02/03/09 14:16:31

AYUDA URGENTE on value-request.
 
Tengo un porblema con un campo en mi dynpro.
tenog hecho un modulo on value-reques a mi campo equnr que es el numero de equipo.

Lo que hago es que cuando cambie el numero de equipo me muestre su despcripcion y un par de datos mas.
Eso me fucniona perfectamente.

El problema que tengo esuqe cuando doy al enter el numero de equipo se borra de la pantalla aunqeu en la tabla donde esta aparece.

Mi programa funciona de este modo:

abro la pantalla con los campos del equipo, elijo el equipo y me muestra una serie de valores.
depues puedo añadir estos registros a mi tabla.
pues cuando cambio el equipo me pone los datos pero me borra el campo del equipo.
pero cuando grabo este registro en mi tabla si aparece el numero de equipo, es en la pantalla donde no se muestra

He intentado poner en el PBO una variable qeu me guarde el valor del equipo para mostrarlo pero aun asi no me lo muestra.

Alguien me puede echar una mano?

miguel.esteban.martin 03/03/09 08:18:46

perdon me referia a on chain-request no on value-request.

ongo 03/03/09 09:01:44

Hola,

Yo tuve que hacer algo parecido y lo hice poniendo el código en at selection-screen on value-request for 'en tu caso será el campo equipo'.
En mi caso cada vez que se cambia la clase de documento cambia su descriptivo.

clasedoc = ayuda.

* Cogemos el descriptivo de la Clase de Documento

select single ltext into texto from t003t where blart =
clasedoc and spras = 'S'.

* Necesitamos que actualice el campo Texto cada vez que se cambie la
* Clase de Documento en la pantalla
* Declaramos las siguientes variables para poder utilizar la función

data: t_dynpfields type dynpread occurs 0 with header line.

data: d_prog like d020s-prog,
d_numb like d020s-dnum.

d_prog = sy-repid.
d_numb = sy-dynnr.

t_dynpfields-fieldname = 'TEXTO'.
t_dynpfields-fieldvalue = texto.

append t_dynpfields.


call function 'DYNP_VALUES_UPDATE'
exporting
dyname = d_prog
dynumb = d_numb
tables
dynpfields = t_dynpfields
exceptions
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
others = 8.
.

Espero que esto te ayude.

Un saludo!

DavidXD_XD 03/03/09 14:02:55

Puedes poner la parte del codigo en la que realizas esto, facil q el codigo puede tener un error de consistencia ... :D

ongo 03/03/09 14:21:18

¿A que te refieres con error de consistencia?

Yo lo hice así:

at selection-screen on value-request for clasedoc.

* La siguiente función es para sacar el Matchcode del campo Clase de
* Documento. Recoje el valor que se ha elegido en el Matchocode
* Declaramos las siguientes variables para poder utilizar la función

data: t_dynpselect type dselc occurs 0 with header line,
t_dynpvaluetab type dval occurs 0 with header line.

data: t_help like help_info,
ayuda like help_info-fldvalue.

t_help-call = 'V'.
t_help-tabname = 'BSIK'.
t_help-fieldname = 'BLART'.

call function 'HELP_START'
exporting
help_infos = t_help
* PROPERTY_BAG =
importing
* SELECTION =
select_value = ayuda
* RSMDY_RET =
tables
dynpselect = t_dynpselect
dynpvaluetab = t_dynpvaluetab
.

clasedoc = ayuda.

* Cogemos el descriptivo de la Clase de Documento

select single ltext into texto from t003t where blart =
clasedoc and spras = 'S'.

* Necesitamos que actualice el campo Texto cada vez que se cambie la
* Clase de Documento en la pantalla
* Declaramos las siguientes variables para poder utilizar la función

data: t_dynpfields type dynpread occurs 0 with header line.

data: d_prog like d020s-prog,
d_numb like d020s-dnum.

d_prog = sy-repid.
d_numb = sy-dynnr.

t_dynpfields-fieldname = 'TEXTO'.
t_dynpfields-fieldvalue = texto.

append t_dynpfields.


call function 'DYNP_VALUES_UPDATE'
exporting
dyname = d_prog
dynumb = d_numb
tables
dynpfields = t_dynpfields
exceptions
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
others = 8.
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

DavidXD_XD 03/03/09 14:28:48

No, no me deje entender, en un codigo hay, creo yo, 2 tipos de errores

1. Error de Sintaxis
2. Error de COnsistencia

La primera es muy facil de entender, la segunda es cuando tu programa corre perfecto pero no te muestra lo que quieres, le decia a Miguel que seria bueno que coloque su codigo porq facil tiene un error de consistencia, ya que se le borra los campos al momento de ejecutar una accion

Supongo que el caso se trata de un programa en dialogo por la sentencia ON CHAIN-REQUEST


Husos Horarios son GMT. La hora en este momento es 03:45:23.

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