filtrar mysql .. xbrowse... tdolphin.. no refresca
Posted: Wed Jul 04, 2018 5:55 pm
Estimados, tengo el siguiente problema con un programa, hago una consulta, de inicio, que se refleja en un xbrowse, tal como esta.
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar ORDER BY cod_art ")
y me muestra bien mis datos.., pero cuando hago la siguiente consultas con estos filtros, ya sea por familia, sin marca.... con marca.. sin familia... o escogiendo uno y otro.. le doy la nueva consulta.. lo que me retorna en el browse es un mismo item repetido en todo el xbrowse... alguien me puede indicar en que estoy fallando...
oBrw es el objeto del xbrowse
cCod_Fam.. traigo campo familia en 3 caracteres..
cCod_Mar.. traigo campo marca en 4 caracteres
cTab_Art.. es el objeto que se hace la consulta
FUNCTION Filtrar_Producto1(oBrw,cCod_Fam,cCod_Mar,cTab_Art)
Do Case
case cCod_Fam="000" .and. cCod_Mar="0000"
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam#"000" .and. cCod_Mar="0000"
msgInfo(cCod_Fam)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.fam_art='"+cCod_Fam+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam="000" .and. cCod_Mar#"0000"
msgInfo(cCod_Mar)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.mar_art='"+cCod_Mar+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam#"000" .and. cCod_Mar#"0000"
msgInfo(cCod_Fam+" "+cCod_Mar)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.fam_art='"+cCod_Fam+"' and a.mar_art='"+cCod_Mar+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
EndCase
RETURN .t.
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar ORDER BY cod_art ")
y me muestra bien mis datos.., pero cuando hago la siguiente consultas con estos filtros, ya sea por familia, sin marca.... con marca.. sin familia... o escogiendo uno y otro.. le doy la nueva consulta.. lo que me retorna en el browse es un mismo item repetido en todo el xbrowse... alguien me puede indicar en que estoy fallando...
oBrw es el objeto del xbrowse
cCod_Fam.. traigo campo familia en 3 caracteres..
cCod_Mar.. traigo campo marca en 4 caracteres
cTab_Art.. es el objeto que se hace la consulta
FUNCTION Filtrar_Producto1(oBrw,cCod_Fam,cCod_Mar,cTab_Art)
Do Case
case cCod_Fam="000" .and. cCod_Mar="0000"
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam#"000" .and. cCod_Mar="0000"
msgInfo(cCod_Fam)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.fam_art='"+cCod_Fam+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam="000" .and. cCod_Mar#"0000"
msgInfo(cCod_Mar)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.mar_art='"+cCod_Mar+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
case cCod_Fam#"000" .and. cCod_Mar#"0000"
msgInfo(cCod_Fam+" "+cCod_Mar)
cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar WHERE a.fam_art='"+cCod_Fam+"' and a.mar_art='"+cCod_Mar+"' ORDER BY cod_art ")
SetDolphin( oBrw, cTab_Art,.f. )
cTab_Art:Refresh()
oBrw:SetFocus()
oBrw:Refresh()
EndCase
RETURN .t.