Power Builder - X editmask

 
Vista:

X editmask

Publicado por xfanatico (30 intervenciones) el 24/10/2002 04:56:41
tengo varios editmask en una ventana.
todos tienen el nombre de esta forma : em_1, em_2, em_3, em_4, ........

necesito enviar todos a una funcion de forma automatica,
he intentado hacer esto, pero no se como hacer que "em_" varie.

do until Fin=1 //con esto termina
i++
valor[i]=tipo_de_dato(em_(i)) //aqui no se que poner en : em_?
loop
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:X editmask

Publicado por Miguel Angel (64 intervenciones) el 24/10/2002 08:57:07
Creo que lo mejor es que uses el objeto CONTROL, que contiene todos los objetos de la ventana, y verifiques si se trata de un editmask, cojas su valor... bueno, un ejemplo servirá:

long cont
editmask ed_mask

for cont = 1 to upperbound(w_nombre_ventana.control[])
if typeof(w_nombre_ventana.control[cont]) = editmask! then
ed_mask= w_nombre_ventana.control[cont]
valor[cont] = ed_mask.text
end if
next

Si ademas solo quieres ALGUNOS editmask, puedes comprobarlo por el nombre, con la funcion CLASSNAME, de esta forma:

choose case ed_mask.classname()
case "em_1", "em_3", "em_5", "em_7"
valor[cont] = ed_mask.text
end choose

Venga, espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:X editmask

Publicado por xfanatico (30 intervenciones) el 25/10/2002 04:29:20
lo he probado pero al ejecutar aparece el sgte error :
Error: Null object reference at line 9 :

for cont = 1 to upperbound(w_reporte.control[]) //Linea 9 !!!!
if typeof(w_reporte.control[cont]) = editmask! then
ed_mask= w_reporte.control[cont]
valor[cont] = ed_mask.text
end if
next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:X editmask

Publicado por xfanatico (30 intervenciones) el 25/10/2002 09:30:05
utilizando "this en lugar de el nombre de la ventana" el error lo soluciono

...pero..

cuando almacena en ed_mask=this.contro[cont] ...almacena un editmask del tipo correcto pero "vacio", sin los valores que escribi en el editmask de la ventana.

Necesito que los valores sean los que escribi en el editmask de la ventana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:X editmask

Publicado por Miguel Angel (64 intervenciones) el 25/10/2002 09:51:55
Pues... acabo de comprobarlo, y si pongo dentro del bucle

messagebox(ed_mask.classname(), ed_mask.text)

me va saliendo el nombre del edit mask y su contenido. Modifico en ejecucion los contenidos, vuelvo a hacer el bucle y sale bien. No se lo que te pasa.

¿Por que no mandas el script, y lo vemos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:X editmask

Publicado por xfanatico (30 intervenciones) el 25/10/2002 10:37:59
Este es el script

int i,cantidad_editmask=0
Long licant_filas
dw_datos.Accepttext()
any valor[4]
for i = 1 to upperbound(this.control[])
if this.control[i].typeof() = Editmask! then
cantidad_editmask++
valor[i]=funcion_tipo_de_valor_editmask(this.control[i])
end if
next
licant_filas=dw_datos.Retrieve(valor[1],valor[2],valor[3],valor[4])
if licant_filas <=0 then
messagebox("Atencion","No existen datos para el rango")
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Funciona !

Publicado por xfanatico (30 intervenciones) el 25/10/2002 10:58:27
ya funciona....

encontre un pequeño error en la funcion: funcion_tipo_de_valor_editmask

dentro de la funcion utilizaba otros valores, en lugas del editmask q le enviaba...muchas gracias

una ultima consulta : ¿ por que siempre encuentra primero em_2 y luego em_1 ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funciona !

Publicado por Miguel Angel (64 intervenciones) el 25/10/2002 12:03:46
Los designios de Sybase son inescrotables, digo... inescrutables :)

En teoría, estan en el orden en el que se crean.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar