Modificar un campo


([N4] jnobleespejo) #1

Estoy usando un formulario para hacer el recibo de pago, donde pongo en un campo la cantidad en numero de lo recibido con un evento que al perder foco el campo me ponga en otro campo la cantidad en letra que la tome del componente numero en letra a la mexicana.
El asunto es que cuando quiero poner la variable que almacena el numero en letra (cadena) no puedo modificar el campo. He leido en el foro que esta instrucción no realiza transacción y debo usar las instrucciones modificar ficha seleccionada o recorrer lista lectura/escritura etc.. lo he hecho pero no logro el resultado.
Si alguien puede enviarme un ejemplo del proceso para orientarme mejor.
Agradezco de antemano la ayuda, estoy comenzando a usar el v7 y me confundo porque con v6 lo resolvía todo mas fácil.
t


([N1] Giuseppe::Komenco) #2

A mi es que no me queda claro tu problema.
.

El asunto es que cuando quiero poner la variable que almacena el numero en letra (cadena) no puedo modificar el campo.

Donde quieres poner esa variable, y donde no te deja modificar el campo? Una captuira de pantalla quizás pueda ayudar.


([N4] jnobleespejo) #3

Estimado Giuseppe
Gracias por la ayuda.
Voy a ser mas explicito,
tengo un formulario de recibo de pago, con un campo cantidad y otro numero en letras.
Bien hice una coneccion de evento y un evento para cuando el campo cantidad pierde el foco, realice una funcion para convertir el numero a letra. Hasta aqui todo va bien.
El evento tiene las siguientes lineas
Set (COD,#ID)
Set (CADENA,fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD))
Modificar variable global(NUM_LETRA@asonapil,CADENA,bOK)
Cargar lista(PAGOS@asonapil,ID,COD)
Modificar ficha seleccionada
Modificar campo(NUM_LETRAS,CADENA)
libre


([N1] Giuseppe::Komenco) #4

Y cual es el problema entonces?
.
Si ya estás en el formulario de pagos, por qué quieres cargar lista con la ficha en cuestión? Es lo que me tiene un poco descolocado. Por eso te pedí una captura del formulario con la asignación de variables y demás.
.
Por cierto, bajo el cargar list, antes del modificar ficha seleccionada, te faltaría un Seleccionar Ficha por posición (1), que no sé si te habrás olvidado por error, o realmente te falta.


([N1] Nacho) #5

En el evento, ya está en la ficha, así que no tienes por que cargar la ficha otra vez.
El evento es así:

Set (CADENA,fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD))
Modificar campo(NUM_LETRAS,CADENA)

o sencillamente:

Modificar campo(NUM_LETRAS, fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD) )

Aunque yo lo que haría sería poner un campo FORMULA en la tabla con el valor por defecto

fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD)

(Bueno la función tendría que estar en un proyecto de datos ;)


([N1] Nacho) #6

En el evento, ya está en la ficha, así que no tienes por que cargar la ficha otra vez.
El evento es así:

Set (CADENA,fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD))
Modificar campo(NUM_LETRAS,CADENA)

o sencillamente:

Modificar campo(NUM_LETRAS, fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD) )

Aunque yo lo que haría sería poner un campo FORMULA en la tabla con el valor por defecto

fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD)

(Bueno la función tendría que estar en un proyecto de datos ;)


([N4] jnobleespejo) #7

Estimado Nacho
Use tu recomendacion y me funciono bien
Gracias

JOSE E NOBLE ESPEJO


([N1] Pepeto) #8

Y porque no lo haces directamente sobre el contenido inicial del campo NUM_LETRAS, llamas a la función:
fun:NUMERO_A_TEXTO@Asonapil.app(#CANTIDAD)
y te olvidas.

Pero claro, la funcion, que ahora la tienes en el proyecto de aplicacion, tendrias que cambiarla tambien al proyecto de datos, para poder usarla, pero solo tienes que moverla de proyecto,

un saludo
José Luis.
http://www.ascsl.com