TDolphin y Filtros.
Posted: Thu Feb 28, 2013 9:19 pm
Amigos del foro, tengo el siguiente problema, en un módulo de sistema, tengo un xbrowse con los clientes de una empresa, cuando quiero aplicar un filtro ¿Cómo lo debo hacer?
Tengo el siguiente código:
xBrowse:
Éste es el Código de las funciones que deben filtrar:
Mis preguntas son las siguientes:
¿Debo reemplazar el qry?
Si es así, ¿como refresco los datos del xBrowse?
¿Qué estoy haciendo mal?
Agradeceré toda la ayuda que me puedan brindar.
Tengo el siguiente código:
xBrowse:
Code: Select all
*------------------------------------------------------------------------------------------
Function Browse_Cliente()
Local oDbf[100],oDlg,oWndChild,archivo:='',oBrushes,oQry,aSizes:={250,550,550},;
cCuenta:=0,iOma:=0,iOma2:=0,oBrw,oBrwAnexo,MDIWindow:=.F.,o110,oImg,oBar,oPopUp,oPopUp0,oPopUp1,oBtn[3]
Public aGiros:={},aBancos:={},aVendedor:={},aDcto:={"%","$"}
oQry = oConected:Query( "SELECT Sucursal_Banco,Nombre_Sucursal,Direccion FROM Equivalencia ORDER BY Nombre_Sucursal" )
Define brush oBrushes File "FondoBlanco.PNG" Transparent Adjust
DEFINE DIALOG oDlg RESOURCE "Browse_Prod_T" Font oFont TRANSPARENT Color CLR_BTNFACE ,CLR_BTNFACE
Redefine IMAGE oImage Id 4001 File "ClientTittle.Png" OF oDlg Transparent //Adjust //
REDEFINE XBROWSE oBrw ID 110 OF oDlg ;
LINES CELL Font oFont Update
oBrw:nColDividerStyle := LINESTYLE_DARKGRAY
oBrw:nRowDividerStyle := LINESTYLE_DARKGRAY
oBrw:lColDividerComplete := .T.
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw:bClrSelFocus := {|| {CLR_BLACK, CLR_GREEN }}
oBrw:bClrStd := {|| {CLR_NBLUE, CLR_NBLUE }}
oBrw:bClrSel := {|| {CLR_NBLUE, CLR_NBLUE }}
oBrw:lHScroll:=.F.
oBrw:l3D:=.T.
oBrw:l3DLook:=.T.
oBrw:nHeaderLines := 2
oBrw:nDataLines := 1
SetDolphin( oBrw, oQry,.T.,aSizes )
oBrw:SetBackGround( "Browses.Png",BCK_STRETCH )
oBrw:aCols[1]:nWidth:=120
oBrw:aCols[1]:cHeader := "Código de"+CRLF+"Cliente"
oBrw:aCols[1]:nHeadStrAlign := AL_CENTER
oBrw:aCols[1]:nDataStrAlign := AL_RIGHT
oBrw:aCols[1]:oHeaderFont := oFont
oBrw:aCols[2]:cHeader := "Descripción"
oBrw:aCols[2]:nWidth:=450
oBrw:aCols[2]:nHeadStrAlign := AL_CENTER
oBrw:aCols[2]:nDataStrAlign := AL_LEFT
oBrw:aCols[2]:oHeaderFont := oFont
oBrw:aCols[3]:cHeader := "Dirección"
oBrw:aCols[3]:nWidth:=450
oBrw:aCols[3]:nHeadStrAlign := AL_CENTER
oBrw:aCols[3]:nDataStrAlign := AL_LEFT
oBrw:aCols[3]:oHeaderFont := oFont
*oBrw:bLDblClick := { || (Consulta_OF(::oQry:Folio_OrdenFL)) }
/*oBrw:bKeyDown:={|nKey| IIF( nKey==VK_RETURN,(Client32(.F.,oDbf,oWnd,oDlg,oBrw,Quita),oDlg:Update(), oBrw:SetFocus(),oBrw:Refresh(),oBrw:SetFocus()) , ),;
IIF( nKey==VK_F1,(Client32(.T.,oDbf,oWnd,oDlg,oBrw,Quita),oDlg:Update(), oBrw:SetFocus(),oBrw:Refresh(),oBrw:SetFocus()) , ),;
IIF( nKey==VK_F2,(Client32(.F.,oDbf,oWnd,oDlg,oBrw,Quita),oDlg:Update(), oBrw:SetFocus(),oBrw:Refresh(),oBrw:SetFocus()) , ),;
IIF( nKey==VK_DELETE .AND. MsgSiNo("Desea Eliminar El Registro "+Alltrim((oDbf[1]:cAlias)->MST_Apelli),"Por Favor Seleccione..."),;
(oDbf[1]:Delete(), oBrw:Refresh()), ),;
IIF( nKey==VK_F4,(oBrw:ToExcel(),oBrw:Refresh()) , )}*/
ACTIVATE DIALOG oDlg Centered On Init (BtnBar( oDlg,oBrw,oQry ))
Return Nil
*-------------------------------------------------------------------------------------------------------
Static Function BtnBar( oParent,oBrw,oQry )
Local oBar,oPopUp0,PopUp1,Paramet
DEFINE Buttonbar oBar Of oParent size 160,65 2007 Top Transparent
Define Button Of oBar File "AddClient.Bmp" Adjust Action (Add_Modify_Client(oParent,.T.," ",oBrw))
Define Button Of oBar File "EditUser.Bmp" Adjust Group Action (Add_Modify_Client(oParent,.F.,oBrw:aCols[1]:Value,oBrw))
Define Button Of oBar File "RemoveClient.BMP" Adjust Group Action If(MsgYesNo("Sr. Usuario, ¿Desea eliminar el Cliente "+Alltrim(oQry:Nombre_Sucursal)+"?","Advertencia..."), (oQry:Delete(.F.),oBrw:Refresh()),)
MENU oPopup0 POPUP _2007
MENUITEM "Código de Cliente" Action (Busca_CodCli(oBrw,oParent,oQry),oQry:Refresh(),oBrw:Refresh(),oBrw:SetFocus() )
Separator
MENUITEM "Descripción" ACTION (Busca_DesCli(oBrw,oParent,oQry),oBrw:Refresh(),oBrw:SetFocus())
Separator
MENUITEM "Dirección" ACTION (Busca_DirCli(oBrw,oParent,oQry),oBrw:Refresh(),oBrw:SetFocus() )
ENDMENU
Define Button Of oBar File "Buscar_Por.BMP" MENU oPopup0 TOOLTIP "Buscar Por..." Adjust Group
MENU oPopup1 POPUP _2007
MENUITEM "Código de Cliente" ACTION (Filtra_Cod(oQry,oBrw),oQry:Refresh(),oBrw:Refresh(),oBrw:SetFocus() )
Separator
MENUITEM "Descripción" ACTION (Filtra_Des(oQry,oBrw),oQry:Refresh(),oBrw:Refresh(),oBrw:SetFocus() )
Separator
MENUITEM "Dirección" ACTION (Filtra_Dir(oQry,oBrw),oQry:Refresh(),oBrw:Refresh(),oBrw:SetFocus() )
ENDMENU
Define Button Of oBar File "Filtrar_por.BMP" MENU oPopup1 TOOLTIP "Filtrar Por..." Adjust Group
Define Button Of oBar File "Volver.BMP" action ( oParent:end() ) Adjust Group
oBar:nTop:=55
oBar:nLeft:=8
Return Nil
*-------------------------------------------------------------------------------------------------------
Code: Select all
*-------------------------------------------------------------------------------------------------------
Function Filtra_Cod(oBrw,oParent,oQry)
Local oDlg,o4001,Buscado:=Space(5)
DEFINE DIALOG oDlg RESOURCE "Busca_Numeros" Font oFont TRANSPARENT Color CLR_BTNFACE ,CLR_BTNFACE
Redefine Get o4001 Var Buscado Id 4002 Of oDlg Picture "@#####" Valid (Filtra(oBrw,oParent,oQry,Buscado,0),oBrw:Refresh(),.T.,oDlg:End())
ACTIVATE DIALOG oDlg Centered
Return Nil
*-------------------------------------------------------------------------------------------------------
Function Filtra_Des(oBrw,oParent,oQry)
Local oDlg,o4001,Buscado:=Space(40)
DEFINE DIALOG oDlg RESOURCE "Busqueda" Font oFont TRANSPARENT Color CLR_BTNFACE ,CLR_BTNFACE
Redefine Get o4001 Var Buscado Id 4002 Of oDlg Picture "@!" Valid (Filtra(oBrw,oParent,oQry,Buscado,1),oBrw:Refresh(),.T.,oDlg:End())
ACTIVATE DIALOG oDlg Centered
Return Nil
*-------------------------------------------------------------------------------------------------------
Function Filtra_Dir(oBrw,oParent,oQry)
Local oDlg,o4001,Buscado:=Space(40)
DEFINE DIALOG oDlg RESOURCE "Busqueda" Font oFont TRANSPARENT Color CLR_BTNFACE ,CLR_BTNFACE
Redefine Get o4001 Var Buscado Id 4002 Of oDlg Picture "@!" Valid (Filtra(oBrw,oParent,oQry,Buscado,2),oBrw:Refresh(),oBrw:SetFocus(),.T.,oDlg:End())
ACTIVATE DIALOG oDlg Centered
Return Nil
*-------------------------------------------------------------------------------------------------------
Function Filtra(oBrw,oParent,oQry,Buscado,Code)
Local Qrys
IF Code=0
oQry = oConected:Query( "SELECT Sucursal_Banco,Nombre_Sucursal,Direccion FROM Equivalencia WHERE Sucursal_Banco LIKE '%"+Buscado+"%' ORDER BY Nombre_Sucursal" )
oQry:LoadQuery()
oQry:Refresh()
oBrw:Destroy()
SetDolphin( oBrw, oQry,.T. )
oBrw:Refresh()
ElseIf Code=1
oQry = oConected:Query( "SELECT Sucursal_Banco,Nombre_Sucursal,Direccion FROM Equivalencia WHERE Nombre_Sucursal LIKE '%"+Alltrim(Buscado)+"%' ORDER BY Nombre_Sucursal" )
oQry:Refresh()
oBrw:Refresh()
ElseIf Code=2
oQry = oConected:Query( "SELECT Sucursal_Banco,Nombre_Sucursal,Direccion FROM Equivalencia WHERE DIRECCION LIKE '%"+Alltrim(Buscado)+"%' ORDER BY Nombre_Sucursal" )
oQry:Refresh()
oBrw:Refresh()
ENDIF
Return Nil
*-------------------------------------------------------------------------------------------------------
¿Debo reemplazar el qry?
Si es así, ¿como refresco los datos del xBrowse?
¿Qué estoy haciendo mal?
Agradeceré toda la ayuda que me puedan brindar.