Problema con CheckBox dentro de un GRID

676 views
Skip to first unread message

integral

unread,
Aug 4, 2014, 5:27:08 PM8/4/14
to publice...@googlegroups.com
Estimados amigos
 
Estoy trabajando con un formulario que tiene insertado un GRID con 10 campos y le agregado un CheckBox para seleccionar algunos registros...
 
Pero la Grilla no me permite marcar los registros con el CheckBox, En la parte inferior en la barra de status dice :
"Control de solo Lectura"
 
Como puedo hacer para desactivar esta modalidad y poner marcar los registros mediante el CheckBox...
 
Aqui el codigo que estoy utilizando.
 
IF !USED("cur_PCP")
 SELECT cur_XXX
 =AFIELDS(mField)
 CREATE CURSOR cur_PCP FROM ARRAY mField
 RELEASE mField
 INDEX ON numfilepo  TAG numfilepo
 WITH Thisform.grdDatos
  .RecordSource = "cur_PCP"
  .column1.controlsource = "cur_PCP.po_aplica"
  .column2.controlsource = "cur_PCP.po_ocompra"
  .column7.controlsource = "cur_PCP.ve_country"
  .column11.controlsource = "cur_PCP.Seleccion"
 ENDWITH
 Thisform.txtPo_aplica.ControlSource  = "cur_PCP.po_aplica"
 Thisform.txtPo_ocompra.ControlSource = "cur_PCP.po_ocompra"
ENDIF
 
SELECT cur_PCP
ZAP
APPEND FROM DBF("cur_XXX")
USE IN cur_XXX
SELECT cur_PCP
Agradezco sus comentarios y sugerencias.
 
Saludos,
 
INTEGRAL
 
 

francisco prieto

unread,
Aug 4, 2014, 5:33:25 PM8/4/14
to publice...@googlegroups.com
Proba con DynamicCurrentControl o solo quedate en esa columna con un control (el check en este caso)

Saludos,

Pancho
Cordoba
Argentina

Ultraton500

unread,
Aug 4, 2014, 5:43:47 PM8/4/14
to publice...@googlegroups.com
Hola Integral,
el cursor es de lectura y escritura (READWRITE) ?

Saludos,
Javier.

Víctor Hugo Espínola Domínguez

unread,
Aug 4, 2014, 6:25:06 PM8/4/14
to publice...@googlegroups.com
Hola Integral

El grid permite cargar datos?

AllowCellSelection = .?.


Saludos,
Víctor.
Lambaré - Paraguay.

integral

unread,
Aug 4, 2014, 6:52:10 PM8/4/14
to publice...@googlegroups.com
Amigo Victor Hugo :
 
Adjunto imagen de la Grid con datos Cargados
 
Amigo Ultraton en el codigo expuesto podras notar que estoy utilizando el CREATE CURSOR y por lo que he leido es de lectura/Escritura...para el caso del SELECT SQL se agrega el READWRITE para dicho proposito..
 
atte.,
 
INTEGRAL
Error.jpg

Víctor Hugo Espínola Domínguez

unread,
Aug 4, 2014, 6:55:30 PM8/4/14
to publice...@googlegroups.com
Hola Integral

Lo que necesitamos saber es qué valor tiene la propiedad AllowCellSelection, .T. o .F.
 
Saludos,
Víctor.
Lambaré - Paraguay.

integral

unread,
Aug 4, 2014, 7:02:07 PM8/4/14
to publice...@googlegroups.com
 
Rpta : AllowCellSelection = .T.
 

El lunes, 4 de agosto de 2014 16:27:08 UTC-5, integral escribió:

Hector Colman

unread,
Aug 4, 2014, 7:45:55 PM8/4/14
to publice...@googlegroups.com
podes probar esto

xv=SQLExec(v_conexion,"Select * From articulo,marca,grupo where articulo.marcodigo=marca.marcodigo and articulo.grucodigo=grupo.grucodigo and articulo.artdeshabilitar=0","cur_artic")
If xv < 1
=Aerror(elError)
Messagebox("Error de conexión. al consultar carticulo en detalle"+Chr(13)+;
"Descripcion:"+elError[2],0+16+256,"Error")
Return
Endif


* filtrar por grupo
If Thisform.tgrucodigo.Value > 0
x1 = Thisform.tgrucodigo.Value
Select * From cur_artic Where grucodigo=x1 Order By artdescrip Asc Into Cursor cur_artic
Endif


p  = Alltrim(This.text2.Value)
Select * From cur_artic Where  Like('*'+Alltrim(Lower(p))+'*',Alltrim(Lower(artdescrip))) Or Like('*'+Alltrim(Lower(p))+'*',Alltrim(Lower(Str(artcodigo)))) Order By artdescrip Asc Into Cursor cur_artic Readwrite

Create Cursor cur_detalle(marcar N(10), artcodigo N(10), artdescrip c(150), artprecio N(10), grudescrip c(50))
Select cur_artic

_totalregis = Reccount()
Xtabla = "Artículo"
l = 0
Scan
l = l + 1
xpor = (100/_totalregis)*l
Wait Window "copiando datos de la TABLA: "+Alltrim(Xtabla)+" "+Alltrim(Str(xpor))+"% "+Alltrim(Str(l))+" de "+Alltrim(Str(_totalregis))  Nowait

*sentencia a ejecutar
Select cur_detalle
Append Blank
IF thisform.marCAR.Value = 1
Replace cur_detalle.marcar With 1
ELSE
Replace cur_detalle.marcar With 0
ENDIF  
Replace cur_detalle.artcodigo With cur_artic.artcodigo
Replace cur_detalle.artdescrip With Alltrim(cur_artic.artdescrip)
Replace cur_detalle.grudescrip With Alltrim(cur_artic.grudescrip)

If Thisform.tprecio.Value = 1
Replace cur_detalle.artprecio With 0 && cur_artic.artcodigo
Endif

If Thisform.tprecio.Value = 2
Replace cur_detalle.artprecio With cur_artic.Artprecompra
Endif

If Thisform.tprecio.Value = 3
Replace cur_detalle.artprecio With cur_artic.artpreciomino
Endif

If Thisform.tprecio.Value = 4
Replace cur_detalle.artprecio With cur_artic.Artprecio1
Endif

If Thisform.tprecio.Value = 5
Replace cur_detalle.artprecio With cur_artic.Artprecio2
Endif

If Thisform.tprecio.Value = 6
Replace cur_detalle.artprecio With cur_artic.Artprecio3
Endif

If Thisform.tprecio.Value = 7
Replace cur_detalle.artprecio With cur_artic.Artprecio4
ENDIF

Endscan




Select cur_detalle
Go Top
With Thisform.grid1
***-------------------------------Para modificar ...................................
.RecordSource ="cur_detalle" && Tabla
.ColumnCount = 5 && Cantidad de columna

***------------------no tocar---------------------------------------------------****
.AllowCellSelection = .t. && Para seleccionar todo
.GridLines = 3 && Linea deshabilitada
.DeleteMark = .F. && Marca p/ borrar deshabilitada
.FontName = "Tahoma" && Tipo de letra
.RowHeight = 20 && Tamaño entre registro
.AllowHeaderSizing = .T. && Tamaño de la cabecera
.GridLineColor = _COLORgrilla &&Rgb(223,223,255)
.FontSize = 8
***Detalle de la Columna 1
* .Column1.Width = 15
* .Column1.header1.Caption = ""
* .Column1.AddObject("im", "image")
* .Column1.CurrentControl =  "im"
* .Column1.im.Visible = .T.
* .Column1.im.Picture = "iconos\Hacer.bmp"
* *.Column1.im.BorderStyle= .T.
* .Column1.Sparse = .F.


.Column1.Width = 40
.Column1.Header1.Caption = "Insertar"
.Column1.ControlSource ="marcar"
.Column1.AddObject("ex", "checkbox")
.Column1.CurrentControl =  "ex"
.Column1.ex.Visible = .t.
.Column1.ex.Caption = "sí"
.Column1.ex.BackStyle = 0
.Column1.Sparse = .F.



***----------------PARA LAS COLUMNA DE LA GRILLA................................****
.Column2.Width = 50 && Tamaño
.Column2.ControlSource ="artcodigo" && Campo
.Column2.Header1.Caption = "Código" && Título
.Column2.Header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column2.header1.FontBold = .T. && Título en negrita
.Column2.Header1.Alignment = 2 && Alineamiento del título
.Column2.Alignment = 1
.Column2.enabled = .f.


.Column3.Width = 80 && Tamaño
.Column3.ControlSource ="artdescrip" && Campo
.Column3.Header1.Caption = "Artículo" && Título
.Column3.Header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column3.header1.FontBold = .T. && Título en negrita
.Column3.Header1.Alignment = 2 && Alineamiento del título
.Column3.Alignment = 2
.Column2.enabled = .f.

.Column4.Width = 50 && Tamaño
.Column4.ControlSource ="artprecio" && Campo
.Column4.Header1.Caption = "Precio" && Título
.Column4.Header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column4.header1.FontBold = .T. && Título en negrita
.Column4.Header1.Alignment = 2 && Alineamiento del título
.Column4.Alignment = 1
.Column4.InputMask="999,999,999,999"


.Column5.Width = 80 && Tamaño
.Column5.ControlSource ="grudescrip" && Campo
.Column5.Header1.Caption = "Grupo" && Título
.Column5.Header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column5.header1.FontBold = .T. && Título en negrita
.Column5.Header1.Alignment = 2 && Alineamiento del título
.Column5.Alignment = 2
.Column5.enabled = .f.

.SetAll("DynamicBackColor", ;
"IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255)    , v_color)", "Column")  && Alternate white and green records
.AutoFit
Endwith


Víctor Hugo Espínola Domínguez

unread,
Aug 4, 2014, 7:50:40 PM8/4/14
to publice...@googlegroups.com
Hola Integral

Controla que la columna 1 y el check box tengan la propiedad ReadOnly = .F., si está en .T. muestra el mensaje "The control is read-only".

Saludos,
Víctor.
Lambaré - Paraguay.

Víctor Hugo Espínola Domínguez

unread,
Aug 4, 2014, 7:54:37 PM8/4/14
to publice...@googlegroups.com
También controla el ReadOnly del grid, debe estar en .F.

Ultraton500

unread,
Aug 4, 2014, 8:02:16 PM8/4/14
to publice...@googlegroups.com
Yo estaba a punto de decir lo mismo que Victor Hugo en cuanto a asegurarse de que tanto la columna como el control deben tener la propiedad ReadOnly=.F..
Hice la prueba y lo comprobé pero en mi caso el grid tiene la propiedad ReadOnly=.T. y el checkbox puede marcarse sin problemas.

Saludos,
Javier

El lunes, 4 de agosto de 2014 20:54:37 UTC-3, Víctor Hugo escribio:
También controla el ReadOnly del grid, debe estar en .F.

El 4 de agosto de 2014, 19:50, Víctor Hugo Espínola Domínguez <vich...@gmail.com> escribió:
Hola Integral

Controla que la columna 1 y el check box tengan la propiedad ReadOnly = .F., si está en .T. muestra el mensaje "The control is read-only".

Saludos,
Víctor.
Lambaré - Paraguay.

El 4 de agosto de 2014, 19:02, integral <gabriel_...@hotmail.com> escribió:

 
Rpta:. AllowCellSelection = T.
 

El lunes, 4 de agosto de 2014 16:27:08 UTC-5, escribio integral:
Estimados amigos
 
Estoy Trabajando ONU de la estafa Tiene Que Formulario insertado sin RED Con 10 campos y le AGREGADO ONU select CheckBox párr algunos Registros ...
 
Pero la Grilla no me permite Marcar una del los Registros Con el CheckBox, En La Parte inferior en la barra de estado de los dados:
"Control de Lectura en solitario"
 
Como sí puedo HACER párr Desactivar this Modalidad y PONER Marcar los Registros MEDIANTE EL CheckBox ...
 
Aqui el Que codigo utilizando Estoy.
 
IF !USED("cur_PCP")
 SELECT cur_XXX
 =AFIELDS(mField)
 CREATE CURSOR cur_PCP FROM ARRAY mField
 RELEASE mField
 INDEX ON numfilepo  TAG numfilepo
 WITH Thisform.grdDatos
  .RecordSource = "cur_PCP"
  .column1.controlsource = "cur_PCP.po_aplica"
  .column2.controlsource = "cur_PCP.po_ocompra"
  .column7.controlsource = "cur_PCP.ve_country"
  .column11.controlsource = "cur_PCP.Seleccion"
 ENDWITH
 Thisform.txtPo_aplica.ControlSource  = "cur_PCP.po_aplica"
 Thisform.txtPo_ocompra.ControlSource = "cur_PCP.po_ocompra"
ENDIF
 
SELECT cur_PCP
ZAP
APPEND FROM DBF ("cur_XXX")
USE IN cur_XXX
Cur_PCP SELECT
Agradezco comentarios sos y Sugerencias.
 
Saludos,
 
INTEGRAL
 
 


integral

unread,
Aug 5, 2014, 12:21:42 AM8/5/14
to publice...@googlegroups.com
Gracias Amigos...
 
Estaban en lo correcto...
 
Problema Resuelto...
 
Saludos,
 
INTEGRAL
 
PD : ADJUNTO MUESTRA DE LA SOLUCION ENCONTRADA
Solucionado.jpg

Víctor Hugo Espínola Domínguez

unread,
Aug 5, 2014, 1:04:16 PM8/5/14
to publice...@googlegroups.com
Hola Integral

Mira este ejemplo que permite tildar el check box de un grid de solo lectura:


Saludos,
Víctor.
Lambaré - Paraguay.

Reply all
Reply to author
Forward
0 new messages