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.
filtrar mysql .. xbrowse... tdolphin.. no refresca
Re: filtrar mysql .. xbrowse... tdolphin.. no refresca
Prueba solo cambiando el where con el metodo SetNewFilter de Tdolphin...
Code: Select all
Do Case
case cCod_Fam="000" .and. cCod_Mar="0000"
cWhere:= " TRUE "
case cCod_Fam#"000" .and. cCod_Mar="0000"
cWhere := " a.fam_art='"+cCod_Fam
case cCod_Fam="000" .and. cCod_Mar#"0000"
cWhere := " a.mar_art='"+cCod_Mar
case cCod_Fam#"000" .and. cCod_Mar#"0000"
cWhere :="a.fam_art='"+cCod_Fam+"' and a.mar_art='"+cCod_Mar+"' ORDER BY cod_art ")
EndCase
cTab_Art:SetNewFilter(SET_WHERE,cWhere,.t.)
oBrw:Refresh()
Re: filtrar mysql .. xbrowse... tdolphin.. no refresca
Estimado, te agradezco el apoyo, ingrese tu código y me arroja esto..
Time from start: 0 hours 0 mins 25 secs
Error occurred at: 05/07/2018, 15:53:11
Error description: Error MYSQL/1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY a.cod_art' at line 1
no importa como lo escriba.. igual me arroja error.
Consulta... leí por ahí información de Mr. Rao., de su trabajo... alguien tiene por algún lado un manual o referencia rápida.. de todos los alcances que uno puede encontrar con xbrowse... hay tanto que quisiera saber y probar..
tal como.. super header.., bloquear que se haga click sobre una columna, con lo que impido que pasen eventos o se orden y quizas cuanta otra cosa mas hay para ver y aprender.
Atte
Time from start: 0 hours 0 mins 25 secs
Error occurred at: 05/07/2018, 15:53:11
Error description: Error MYSQL/1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY a.cod_art' at line 1
no importa como lo escriba.. igual me arroja error.
Consulta... leí por ahí información de Mr. Rao., de su trabajo... alguien tiene por algún lado un manual o referencia rápida.. de todos los alcances que uno puede encontrar con xbrowse... hay tanto que quisiera saber y probar..
tal como.. super header.., bloquear que se haga click sobre una columna, con lo que impido que pasen eventos o se orden y quizas cuanta otra cosa mas hay para ver y aprender.
Atte
Re: filtrar mysql .. xbrowse... tdolphin.. no refresca
Si, perdon, quita el ORDER BY de la ultima opcion y prueba si te lo filtra
Como manual de consulta no hay nada mejor que buscar en el codigo fuente del programa
fivewin\source\classes\xbrowse.prg
Code: Select all
Do Case
case cCod_Fam="000" .and. cCod_Mar="0000"
cWhere:= " TRUE "
case cCod_Fam#"000" .and. cCod_Mar="0000"
cWhere := " a.fam_art='"+cCod_Fam
case cCod_Fam="000" .and. cCod_Mar#"0000"
cWhere := " a.mar_art='"+cCod_Mar
case cCod_Fam#"000" .and. cCod_Mar#"0000"
cWhere :="a.fam_art='"+cCod_Fam+"' and a.mar_art='"+cCod_Mar)
EndCase
cTab_Art:SetNewFilter(SET_WHERE,cWhere,.t.)
if cCod_Fam#"000" .and. cCod_Mar#"0000"
cTab_Art:SetOrder("cod_art",.T.)
endif
oBrw:Refresh()
fivewin\source\classes\xbrowse.prg