Power Builder - ItemChanged

 
Vista:

ItemChanged

Publicado por Lady79 (27 intervenciones) el 26/06/2004 01:15:43
Hola, tengo un problemita, tengo un campo en una DW y necesito q al terminar de capturarlo, se llene con ceros a la izquierda. Intente el siguiente codigo en el evento ItemChanged de la datawindow y tambien en el itemfocuschanged, pero no hace lo q necesito

CASE \"cdp_gral_id_ganado\"
str_registro=GetItemString (ll_row,\"cdp_gral_id_ganado\")
ll_len=len( trim(str_registro) )
str_reg2= fill(\'0\', (10 - ll_len) ) + str_registro
Object.cdp_gral_id_ganado[ll_row] = str_reg2
dw_detail.accepttext( )

Me pueden ayudar ???
Gracias
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:ItemChanged

Publicado por Pedro López (68 intervenciones) el 28/06/2004 14:00:10
Si la columna de la datawindow es de tipo string, debes asignar el valor con un setitem, pero para que funcione tienes que llamarlo con "post".

Por ejemplo, puedes probar a poner en el evento itemchanged el siguiente código:

string ls_con_ceros
long ll_nceros

// Comprobamos la columna que ha cambiado
choose case dwo.name
case "cdp_gral_id_ganado"
// Calculamos el nº de ceros que debemos añadir
ll_nceros = 10 - len(data)
// Añadimos los ceros en una variable auxiliar
ls_con_ceros = fill('0', ll_nceros) + data
// Hacemos el setitem con post para que funcione
this.post setitem(row, "cdp_gral_id_ganado", ls_con_ceros)
end choose

Si la columna es de tipo numérico, tienes que modificar en la datawindow las propiedades de la columna.
Tienes dos opciones:

1. En Format poner 0000000000. En este caso, los ceros de la izquierda aparecen al salir del campo, pero no cuando tiene el foco.

2. En Edit, cambiar el estilo de la columna a EditMask, y poner 0000000000 como máscara. En este caso siempre aparecen los ceros de la izquierda.

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