FoxPro/Visual FoxPro - Consulta SQL, DBF y Grid con colores

 
Vista:

Consulta SQL, DBF y Grid con colores

Publicado por Pedro Canizales A. (70 intervenciones) el 02/11/2009 21:50:26
Hola buenas tardes,

tengo un problema que no he podido resolver por el cual acudo a ustedes,
tengo el siguiente codigo en el init de mi form.
ESPERO ME PUEDA EXPLICAR..ESTOYYA DESESPERADO POR ESTE PROBLEMA
*hago la conexion con la BD de SQL

PUBLIC gnConnHandle
STORE SQLCONNECT("Mina","sa","rimsamty") TO gnConnHandle
IF gnConnHandle <=0
IF AERROR(laError) > 0
MESSAGEBOX('No fue posible establecer conexión:'+laError[2], 16, 'SQL Connect Error')
ENDIF
ELSE
= SQLEXEC(gnConnHandle,"SELECT * FROM embarque","consembarquefox")

SELECT CEF.control, CEF.generador,CEF.nca, CEF.transporte, CEF.embarque, CEF.contenedor, CEF.unico, CEF.operador, CEF.estatus,;
CEF.destinada, SUBSTR(DTOC(CEF.recepcion),1,10), CEF.hora_re, CEF.tratamient, CEF.hora_op, CEF.fechaet;
FROM consembarquefox CEF;
WHERE CEF.con_peso = 'N';
AND CEF.generador NOT LIKE '%SE REGRESO%';
ORDER BY CEF.recepcion, CEF.hora_re;
INTO CURSOR DETCONS

THISFORM.Grid1.Recordsource = "DETCONS"
THISFORM.Grid1.column1.Header1.Caption = 'CONTROL'
THISFORM.Grid1.column1.Width = 80
THISFORM.Grid1.column2.Header1.Caption = 'GENERADOR'
THISFORM.Grid1.column2.Width = 350
THISFORM.Grid1.column3.Header1.Caption = 'NCA'
THISFORM.Grid1.column3.Width = 110
.
.
.
12 columnas mas.
hasta aqui no hay problema...
lo que quiero hacer es:
1.- tengo aparte en mi servidor una tabla llamada datpeso.DBF que es donde vienen los numeros de control y su respectivo peso que requiero, como hacer una consulta entre mi tabla temporal DETCONS y mi tabla DBF datpeso para que coincidad los num. de control entre estas tablas?
R. la idea es hacer una relacion con un select ...where dateso.control = DATCONS.control and datpeso>0 o algo asi

2.- estos numeros que coinciden entre estas 2 tablas los quiero ver en mi grid(arriba mencionado) pero identificados con color en todo el registro
he utilizado el SETALL o el Dynamicbackcolor (ambos inclusive) y utilizo esta linea
THISFORM.Grid1.SETALL("DynamicBackColor", "IIF(CEF.control = datpeso.control, RGB(255,255,255), RGB(0,255,0))", "Column")

pero me manda el mensaje de error : "LA EXPRESION NO ES VALIDA. USE UNA EXPRESION VALIDA PARA LA PROPIEDAD DYNAMICBACKCOLOR"
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:Consulta SQL, DBF y Grid con colores

Publicado por Pablo (Argentina) (433 intervenciones) el 02/11/2009 23:46:31
Hola Amigo, mira ahi estuve viendo la instruccion que escribis con el IIF y esta bien, yo creo que el error esta en CEF.control = datpeso.control, tendrias que revisar la ayuda del comando IIF a ver si hay algun tema con eso, porque el resto esta todo bien.

Suerte

Pablo - Argentina
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:Consulta SQL, DBF y Grid con colores

Publicado por Cesar  (65 intervenciones) el 03/11/2009 00:29:05
Hola Pedro,
Aqui te mando el codigo que utilizo para identificar con el color rojo a los clientes con saldo deudor y el blanco para los clientes con saldo cero.

SET TALK ON
SELECT Ctactecltes.cod_clte, Clientes.cliente,;
SUM(Ctactecltes.importe) as saldo;
FROM asepsis!Ctactecltes INNER JOIN asepsis!Clientes ;
ON Ctactecltes.cod_clte = Clientes.cod_clte;
GROUP BY Ctactecltes.cod_clte;
ORDER BY Clientes.cliente;
INTO CURSOR RES_CTACTECLTES
Clear
SET TALK OFF

SELE RES_CTACTECLTES

oGrd = THISFORM.grid1

* Clear the current grid dynamic fore and back colors
*----------------------------------------------------
oGrd.SetAll("dynamicbackcolor", "", "Column")
oGrd.SetAll("dynamicforecolor", "", "Column")

oGrd.SetAll("dynamicforecolor", ;
"IIF(saldo > 0, RGB(255,255,255), RGB(0,0,0))", "Column")
oGrd.SetAll("dynamicbackcolor", ;
"IIF(saldo > 0, RGB(255,0,0), RGB(255,255,255))", "Column")

oGrd.refresh

go top
ThisForm.Grid1.SETFOCUS

Saludos desde Peru,
Cesar
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