FoxPro/Visual FoxPro - ayuda con grid

   
Vista:

ayuda con grid

Publicado por Marco Salazar sauriodont@gmail.com (2 intervenciones) el 07/05/2017 02:32:38
hola gracias por las ayudas recibidas, aqui tengo una nueva pregunta
tengo una tabla con 5 campos apto, nombre, telefono, correo, solvente
el campo solvente me dice cuantos recibos tiene pendiente
en el combo tengo
general (muestra todos los aptos)
solventes (muestra los que no tengan recibos pendientes)
morosos (muestra los que tienen recibos pendientes osea mayor o igual a 1)
en el evento interactive change del combo cuando seleccione por ejemplo solventes muestre los que no tienen recibos por pagar

el codigo hasta el momento lo llevo asi pero no me funciona
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CLOSE tables all
USE aptos
IF thisform.combo1.Value="General" then
select aptos
thisform.grid1.recordSource="aptos"
thisform.grid1.ReadOnly = .T.
With Thisform.grid1
    .FontSize = 12
    .RowHeight = 20
    .ColumnCount = 4
endwith
thisform.grid1.refresh
ENDIF
*!*	*!*	cargar lista de solventes
IF thisform.combo1.Value="Solventes" then
	DO WHILE !EOF()
	sol=aptos.solvente
		IF sol=0 then
	 	thisform.grid1.column1(aptos.apto)
	  	thisform.grid1.column2(aptos.nombre)
	   	thisform.grid1.column3(aptos.telefono)
	  	thisform.grid1.column4(aptos.correo)
	  	eNDIF
	SKIP 1
	LOOP
	ENDDO
thisform.grid1.refresh
thisform.grid1.setfocus
endif
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

ayuda con grid

Publicado por Fidel José (540 intervenciones) el 07/05/2017 16:36:42
No estás teniendo en claro que es un control grid.
Un control grid es un browse algo sofisticado.Básicamente no es más que eso, una forma de mostrar un cursor.
Lo que tienes que hacer es construir el cursor que muestra el control grid.
Por ejemplo, estás escribiendo .grid1.Column4(aptos.telefono) cuando Column4 es solamente el nombre de un objeto llamado Column4 (objeto Column) y no es ninguna función. Tampoco debes confundir la colection Columns() con una función. Eso es un array.

Como no entiendo lo que quieres hacer, no opino demasiado, aunque supongo que tienes un error de diseño en la tabla.
De todos modos, lo básico sería
1
2
3
SELECT * FROM APTOS WHERE EMPTY(SOLVENTE) INTO CURSOR curMuestra
Thisform.Grid1.RecordSource = "curMuestra"
Thisform.grid1.Refresh

Probablemente te convenga generar un cursor vacío en el LOAD del formulario y asociar ese cursor al grid. Luego se actualiza por Append from;
1
2
3
4
5
6
7
8
9
10
11
12
13
* Load del form
USE APTOS IN 0 SHARED
SELECT * FROM APTOS WHERE 0=1 INTO CURSOR curGrilla
 
* Init del form
Thisform.Grid1.RecordSource = "curGrilla"
 
* Lugar de búsqueda
SELECT * FROM APTOS WHERE EMPTY(SOLVENTE) INTO CURSOR curMuestra
select curGrilla
APPEND FROM DBF("curMuestra")
USE IN curMuestra
thisform.grid1.REfresh
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
Revisar política de publicidad