Hola a todos.
Hace meses hice por aca mismo la consulta de como hacer una busqueda incremental con xBrowse. En aquella oportunidad logre hacerlo pero con el detalle que estaba trabajando con arreglos de memoria.
Esta vez, el datasource quiero manejarlo con el resultado de una consulta (oQuery) pero no se como hacerlo. Me imagino que es algo sencillo pero el que no sabe es como el que no puede ver.
El xBrowse lo hago desde recursos con Pelles C, y uso MariaDB, Harbour y FW 17.01
Alguien me da una mano?
este es el codigo que estoy manejando.
聽
Hace meses hice por aca mismo la consulta de como hacer una busqueda incremental con xBrowse. En aquella oportunidad logre hacerlo pero con el detalle que estaba trabajando con arreglos de memoria.
Esta vez, el datasource quiero manejarlo con el resultado de una consulta (oQuery) pero no se como hacerlo. Me imagino que es algo sencillo pero el que no sabe es como el que no puede ver.
El xBrowse lo hago desde recursos con Pelles C, y uso MariaDB, Harbour y FW 17.01
Alguien me da una mano?
este es el codigo que estoy manejando.
聽
#include "fivewin"
Static oBrwUsuarios
Function Fnct_Usuarios()
聽 聽 Local oGetSeek , oBtnBuscar , oFHeadBrw
聽 聽 Local cQuery 聽 , cTabla 聽 聽 , cSeek
聽 聽 Local cNombre, cNick, cTelf, cStatus
聽 聽 local nKey
聽 聽 Local lFound := .f.
聽 聽 Local lSalir := .f.
聽 聽 if Fnct_CheckActive()
聽 聽 聽聽 聽fGetOut('Porque Iniciaste en Otro Equipo')
聽 聽 endif
聽 聽 nKey 聽 聽 聽:= 1
聽 聽 cSeek 聽 聽 := Spac(35)
聽 聽 cTabla 聽 聽:= _cPrefijo+"_usuarios"
聽 聽 cQuery 聽 聽:= "Select * from "+cTabla+" ORDER BY nombre;"
聽 聽 TRY
聽 聽 oUsuarios:=_oSqlConex:Query( cQuery )
聽 聽 CATCH
聽 聽 聽聽 聽Fnct_MsgErrorBD("NoMySql" 聽, .f. , "No hay conexi贸n a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
聽 聽 聽 聽 _oSqlConex:End()
聽 聽 聽聽 聽return .f.
聽 聽 END TRY
聽聽 聽_oSqlConex:End()
聽 聽 cNombre:= 1
聽 聽 cNick 聽:= 2 聽// posiciones de los campos dentro del xBrowse
聽 聽 cTelf 聽:= 3
聽 聽 cStatus:= 4
聽 *****************************************************************************************************************************************
聽 Define cursor oCursorBar 聽 聽 聽 resource 'manito'
聽 Define cursor oCursorIndicador resource 'Indicador'
聽 Define Font oFHeadBrw Name "Segoe UI SemiBold" Size 0, -14
聽 Define Dialog oDlg_Usuarios resource "oDlg_Usuarios" title 'Actualizaci贸n de Datos de Usuarios'
聽 聽 聽 聽oDlg_Usuarios:lHelpIcon:=.f.
聽 聽 聽 聽Redefine get oGetSeek Var cSeek Id 11 聽of oDlg_Usuarios on change ;
聽 聽 聽 ((cSeek:=oGetSeek:GetText(),nkey :=oGetSeek:bKeyDown, Fnct_Seek(cSeek, oGetSeek, nKey ))
聽 聽 聽 聽Redefine xBrowse oBrwUsuarios Id 10 聽DATASOURCE oUsuarios AUTOCOLS AUTOSORT COLUMNS 聽2, 5, 3, 8 聽;
聽 聽 聽 聽聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽HEADERS 聽 聽"Nombre" 聽聽,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽"Nick" 聽 聽 聽 聽,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽"Tel茅fono" 聽,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽 聽 聽 聽 聽 聽聽 聽 聽"Status" 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽FIELDSIZES 聽245, 98, 186,85 聽 ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽PICTURE 聽 聽 nil, nil, nil, nil 聽;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽JUSTIFY 聽 聽 AL_LEFT,聽 聽AL_LEFT, AL_LEFT, AL_LEFT ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽CELL LINES FASTEDIT FOOTERS of oDlg_Usuarios
聽 聽 聽WITH object oBrwUsuarios
聽聽 聽聽 聽 聽 聽 oBrwUsuarios:aCols[cNombre] :oHeaderFont:=oFHeadBrw
聽 聽 聽 聽 聽 聽 oBrwUsuarios:aCols[cNick] 聽 :oHeaderFont:=oFHeadBrw
聽 聽 聽 聽 聽 聽 oBrwUsuarios:aCols[cTelf] 聽 :oHeaderFont:=oFHeadBrw
聽 聽 聽 聽 聽 聽 oBrwUsuarios:aCols[cStatus] :oHeaderFont:=oFHeadBrw
聽 聽 聽 聽 聽 聽 oBrwUsuarios:nMarqueeStyle 聽:= MARQSTYLE_HIGHLROW 聽 // para que el apuntador ilumine la fila completa
聽 聽 聽 聽 聽 聽 oBrwUsuarios:l2007 聽 聽 聽 聽 聽:= .f.
聽 聽 聽 聽 聽 聽 oBrwUsuarios:lFooter 聽 聽 聽 聽:= .t.
聽 聽 聽 聽 聽 聽 :aCols[cNombre] :bFooter := { || 'Total Usuarios-> '+transform(oUsuarios:Reccount(),"@E 99") }
聽 聽 聽 聽 聽 聽 :lIncrFilter := .T.
聽 聽 聽 聽 聽 聽 :cFilterFld:='nombre'
聽 聽 聽聽 聽聽 聽 :lSeekWild 聽 := .T.
聽 聽 聽聽 聽 聽聽 :oSeek 聽 聽 聽 := oGetSeek
聽 聽 聽聽 聽 聽 聽 FOR nI := 1 TO 4
聽 聽 聽聽 聽 聽 聽 聽 聽WITH OBJECT oBrwUsuarios:oCol(nI)
聽 聽 聽聽 聽 聽 聽 聽 聽 聽 :cSortOrder 聽 聽 := nil
聽 聽 聽聽 聽 聽 聽 聽 聽 聽 :cOrder 聽 聽 聽 聽 := nil
聽 聽 聽聽 聽 聽 聽 聽 聽END
聽 聽 聽 聽 聽 聽 NEXT
聽 聽 聽 聽 聽 聽oBrwUsuarios:gotop()
聽 聽 聽 聽 聽 聽oBrwUsuarios:Refresh()
聽 聽 聽 聽 聽END
聽 Activate dialog oDlg_Usuarios center
聽 聽 oUsuarios:End()
聽 聽 _oSqlConex:end()
return .t.
********************************************************************************************************************
Static Function Fnct_Seek(cSeek, oGetSeek, nKey )
聽 聽 local cTabla, cWhere
聽 聽 cTabla 聽 聽:= _cPrefijo+"_usuarios"
聽 聽 cWhere 聽 聽:= "Select * from "+cTabla+" WHERE nombre LIKE '%"+alltrim(cSeek)+"%' ;"
聽 聽 _oSqlConex:=tDolphinSrv():New( _cHost, _cUser, _cPasswordUser, val(_cPuertoMysql),, _cDataBase, 聽{ | oConex, nError | 聽SQL_ConnetError( oConex, nError ) })
聽 聽 if _oSqlConex:lError
聽聽 聽 聽return .f.
聽 endif
聽聽 聽TRY
聽 聽 oUsuarios:=_oSqlConex:Query( cWhere )
聽 聽 CATCH
聽 聽 聽聽 聽Fnct_MsgErrorBD("NoMySql" 聽, .f. , "No hay conexi贸n a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
聽 聽 聽 聽 _oSqlConex:End()
聽 聽 聽聽 聽return .f.
聽 聽 END TRY
聽 oBrwUsers:SetData(oUsuarios)
聽 oBrwUsers:Refresh()
return .t."Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.