PDA

Ver la Versión Completa : capturar valores tabla interna en pantalla usando input on


rafa_fonseca
14/05/12, 17:43:58
buenas, tengo el siguiente problema y quiero ver si se puede realizar , dependiendo del delivery que un usuario me ingrese al sistema, este puede tener varios materiales asociados, y cada material si las condiciones se cumplen hay que agregarles un serial number que el usuario debe digitar, tengo una tabla interna donde guardo la informacion, cuando la muestro en pantalla, puse la opcion en el campo serial number long INPUT ON, el usuario los puede digitar y cuando presiona el boton Execute deberia guardar esa informacione en la tabla interna (por favor vean la imagen que adjunte).

el problema es que no puedo hacer como guardar esa informacion que el usuario digita, como puedo capturar esa info? la tabla se llama i_serial_numb.

y pense algo asi:

loop at i_serial_numb.
read line sy-tabix field value: i_serial_numb-z_ser_long.
modify i_serial_numb index sy-tabix.
endloop.

le faltan validaciones claro, pero es solo como ejemplo, que puedo utilizar para guardar la informacion digitada por el usuario y que me quede almacenada en la tabla interna.

PS: uso una version muy vieja de sap 3.1I y no existen ALV's y no se puede usar screen painter ni table controls.


saludos y gracias.

rafa_fonseca
15/05/12, 17:02:50
buenas, he estado viendo el comando get cursor:

con la siguiente instruccion:

get cursor field fld offset off value val length len line w_lines2.

puedo obtener el nombre del campo: FLD, el valor LEN y la linea w_lines2.

por ejemplo el primer registro empieza en el 6, hay alguna manera que pueda utilizar el get cursor para moverme a la siguiente posicion? si no le pongo numero de linea el toma una "default" o predeterminada.


Estuve intentando con sy-lisel pero el me da 255 caracteres, lo cual no tengo problema por que lo configuro asi sy-lisel+71(86) y me da la linea de caracteres que ocupo, pero sy-lisel es estatico solo me da los valores de la linea donde quedo el cursor en pantalla.

lo bueno con ambos es que si me toman el valor que digite en el INPUT ON de la tabla, pero solo puedo guardar un valor ya que el siguiente que se almacena es el mismo.


saludos

rafa_fonseca
17/05/12, 05:10:37
ya lo resolvi, como sabia a partir de que linea tenia que leer hice lo siguiente:

data: w_line type i.

move 5 to w_line.

loop at i_serial_numb.

w_line = w_line + 1.

* al leer una linea predeterminada el valor de sy-lisel ira cambiando de *acuerdo a mis necesidades.

read line w_line.
if sy-subrc eq 0.
move sy-lisel+71(86) to i_serial_numb-z_ser_num_long.
modify i_serial_numb.
endif.
endloop.


aca lo dejo por si alguien ocupara hacer algo parecido y programe en versiones viejas de SAP como yo jeje.

saludos