GRID DynamicInputMask

Hola quisiera que me ayudes tengo un problema con el grid, le agregue objetos textbox para poderlos modificar en este caso los colores, pero mi problema es que no se aplica ni el format para la columna, ni el DynamicInputMask y lo que yo quiero es a la columna2 ponerle un formato predeterminado.
create cursor cur1 (f1 c(5), f2 i,f3 n(20,2),f4 n(20,2))
insert into cur1 values ('xxx',1,1,2999.90123)
insert into cur1 values ('yyy',2,2,0)
insert into cur1 values ('zzz',3,3,23.234)
go top
public oform1
oform1=createobject("form1x")
oform1.show
return
define class form1x as form
autocenter = .t.
caption = "form1"
name = "form1"
add object gridpr as grid with ;
columncount = 2, ;
left = 12, ;
recordsource = "cur1", ;
recordsourcetype = 1, ;
top = 12, ;
name = "gridpr", ;
column1.controlsource = "cur1.f3", ;
column2.controlsource = "cur1.f4"
proc init
thisform.gridpr.column2.removeobject('text1')
thisform.gridpr.column2.addobject('text2','textboxx')
thisform.gridpr.column2.text2.visible = .t.
thisform.gridpr.column2.addobject('text3','textboxy')
thisform.gridpr.column2.text3.visible = .t.
thisform.gridpr.column2.sparse = .f.
thisform.gridpr.column2.bound = .t.
thisform.gridpr.column2.enabled = .t.
thisform.gridpr.column2.readonly = .f.
* thisform.gridpr.column2.format='@ 9,999.99'
thisform.gridpr.column2.dynamiccurrentcontrol = "iif(cur1.f3=2, 'text3', 'text2')"
thisform.gridpr.column2.dynamicinputmask = "@r$ ###,###,###.##" &&Problema
endproc
procedure destroy
use in cur1
endproc
enddefine
define class textboxx as textbox
borderstyle = 0
enddefine
define class textboxy as textbox
borderstyle = 0
forecolor = rgb(255,255,255)
selectedforecolor = rgb(255,255,255)
selectedbackcolor = rgb(255,255,255)
enddefine

1 Respuesta

Respuesta
1
Para que las propiedades se actualicen por completo a todas las columnas y no solo a la que esta seleccionado debes poner la propiedad SPARSE del objeto column en .F., pero no he visto la opcion currentcontrol en que lugar cambiaste, ahora, no entiendo por que removes el objeto por default y pones otro basado en una clase tuya, pero esa clase debe estar publicada, ¿o sea textboxx y xy de donde provienen?, el addobject probablemente no este funcionando.
Si lo unico que quieres hacer es modificar el color de los textbox no es el mejor camino, el grid es especial y para ello posee las propiedades dinamicforecolor, o dinamicbackcolor, si pones en google GRID MULTICOLOR te mostrara un articulo en portalfox muy bueno de Luis Maria G, creo, es el camino que debes seguir para ello.
Gracias por la ayuda, me preocupé tanto del DynamicInputMask que me olvide del InputMask ver el textboxx, gracias por la respuesta.
CREATE CURSOR cur1 (f1 C(5), f2 i,f3 n(20,2),f4 n(20,2))
INSERT INTO cur1 VALUES ('xxx',1,1,2999.90123)
INSERT INTO cur1 VALUES ('yyy',2,2,0)
INSERT INTO cur1 VALUES ('ZZZ',3,3,23.234)
GO TOP
PUBLIC oform1
oform1=CREATEOBJECT("form1x")
oform1.SHOW
RETURN
DEFINE CLASS form1x AS FORM
AUTOCENTER = .T.
CAPTION = "Form1"
NAME = "Form1"
ADD OBJECT gridpr AS GRID WITH ;
COLUMNCOUNT = 2, ;
LEFT = 12, ;
RECORDSOURCE = "cur1", ;
RECORDSOURCETYPE = 1, ;
TOP = 12, ;
NAME = "gridpr", ;
Column1.CONTROLSOURCE = "cur1.f3", ;
Column2.CONTROLSOURCE = "cur1.f4"
PROC INIT
THISFORM.gridpr.Column2.REMOVEOBJECT('text1')
THISFORM.gridpr.Column2.ADDOBJECT('text2','textboxx')
THISFORM.gridpr.Column2.text2.VISIBLE = .T.
THISFORM.gridpr.Column2.ADDOBJECT('text3','textboxy')
THISFORM.gridpr.Column2.text3.VISIBLE = .T.
THISFORM.gridpr.column2.Sparse = .F.
THISFORM.gridpr.column2.Bound = .T.
THISFORM.gridpr.column2.Enabled = .T.
THISFORM.gridpr.column2.ReadOnly = .F.
ThISFORM.gridpr.Column2.DynamicCurrentControl = "IIF(cur1.f3=2, 'text3', 'text2')"
ENDPROC
PROCEDURE DESTROY
USE IN cur1
ENDPROC
ENDDEFINE
DEFINE CLASS textboxx AS TEXTBOX
BORDERSTYLE = 0
INPUTMASK = "###,###,###.##" &&REPUESTA
ENDDEFINE
DEFINE CLASS textboxy AS TEXTBOX
BORDERSTYLE = 0
forecolor = rgb(255,255,255)
selectedforecolor = rgb(255,255,255)
selectedbackcolor = rgb(255,255,255)
ENDDEFINE

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas