control browse para tmysql de harbour - ayuda
Publicado: Mar Jul 18, 2023 3:12 am
Hola, he intentado crear un control TQryBrowse, para poder visualizar un query que tengo con la clase tmysql de harbour, que es la que uso, me interesa mostrar el query en un browse, pero no he podido hacerlo, todavia me falta en xailer, si alquien que quere echar una mano, estaria agradecido: 
Esta es una prueba con un ejemplo de xailer con un archivo de texto, adecuado para query pero no he podido avanzar.

Esta es una prueba con un ejemplo de xailer con un archivo de texto, adecuado para query pero no he podido avanzar.
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD Button1Click( oSender ) CLASS TForm1
LOCAL oBrw
LOCAL oQry
oQry := ::oServer:Query( "select * from municipios" )
IF ::oServer:NetErr()
MsgStop( ::oServer:ErrorTxt(), "Saliendo" )
return nil
ENDIF
MsgInfo("RecCount:" + hb_ntos( oQry:RecCount() ) )
WITH OBJECT ( oBrw := TQryBrowse():New( ::oBevel1 ) )
:nAlign := alCLIENT
:Create()
:oQry := oQry
END WITH
/* ESTO NO: queria usar el control dbfbrowse, pero tampoco pude. se me nota el nivel. :-)
WITH OBJECT ( oBrw := TDbfBrowse():New( ::oBevel1 ) )
:Cargo := oQry
:OnBof := {|o| oQry:Bof() }
:OnEof := {|o| oQry:Eof() }
:OnGoTop := {|o, n| oQry:GoTop() }
:OnGoBottom := {|o, n| oQry:GoBottom() }
:OnKeyNo := {|o, n| iif(n== nil, oQry:RecNo(), oQry:GoTo(n) )}
:OnKeyCount := {|o, n| oQry:RecCount() }
:OnSkip := {|o, n| oQry:Skip(n) }
END WITH
*/
RETURN Nil
//------------------------------------------------------------------------------
CLASS TQryBrowse FROM TBrowse
PUBLISHED:
PROPERTY oQry INIT NIL WRITE SetQry
PROPERTY nMarqueeStyle INIT bmHIGHLROW
PROPERTY cVersion INIT "TQryBrowse: version 1.0a"
PUBLIC:
METHOD Create( oParent ) CONSTRUCTOR
METHOD Free()
METHOD IsEof()
METHOD IsBof()
METHOD BookMark( nPos )
METHOD KeyNo( nPos )
METHOD KeyCount( nPos )
METHOD Refresh( lComplete )
METHOD Goto( nPos )
RESERVED:
METHOD GoTop()
METHOD GoBottom()
METHOD Skip( nSkip )
METHOD SetQry( oQry )
ENDCLASS
//------------------------------------------------------------------------------
METHOD Create( oParent ) CLASS TQryBrowse
::lRecordSelector := .T.
::oFont := TFont():Create( "Courier New", 8, 0, 400 )
::Super:Create( oParent )
RETURN Self
//------------------------------------------------------------------------------
METHOD Free() CLASS TQryBrowse
RETURN ::Super:Free()
//------------------------------------------------------------------------------
METHOD SetQry( oQry ) CLASS TQryBrowse
IF hb_isObject( oQry )
::oQry := oQry
ENDIF
::Reset()
//BrwColumn():New( Self ):Create()
::GetDisplayCols()
RETURN NIL
//------------------------------------------------------------------------------
METHOD IsEof() CLASS TQryBrowse
LOCAL xRet := ::OnEof()
IF xRet == Nil
RETURN ::oQry:Eof()
ENDIF
RETURN xRet
//------------------------------------------------------------------------------
METHOD IsBof() CLASS TQryBrowse
LOCAL xRet := ::OnBof()
IF xRet == Nil
RETURN ::oQry:Bof()
ENDIF
RETURN xRet
//------------------------------------------------------------------------------
METHOD BookMark( nPos ) CLASS TQryBrowse
LOCAL xRet := ::OnBookMark( nPos )
IF xRet == Nil
xRet := ::oQry:RecNo()
IF nPos != Nil
::oQry:GoTo( nPos )
ENDIF
ENDIF
RETURN xRet
//------------------------------------------------------------------------------
METHOD KeyNo( nPos ) CLASS TQryBrowse
LOCAL xRet := ::OnKeyNo( nPos )
IF xRet == Nil
IF nPos != Nil
::oQry:Goto( nPos )
ELSE
xRet := ::oQry:RecNo()
ENDIF
ENDIF
RETURN xRet
//------------------------------------------------------------------------------
METHOD KeyCount() CLASS TQryBrowse
LOCAL xRet := ::OnKeyCount()
IF xRet == Nil
xRet := IIF( HB_IsNIL( ::oQry ), 0, ::oQry:RecCount() )
ENDIF
::nLen := xRet
RETURN xRet
//------------------------------------------------------------------------------
METHOD GoTop() CLASS TQryBrowse
LOCAL xRet := ::OnGoTop()
IF xRet == Nil
::oQry:GoTop()
ENDIF
RETURN Nil
//------------------------------------------------------------------------------
METHOD GoBottom() CLASS TQryBrowse
LOCAL xRet := ::OnGoBottom()
IF xRet == Nil
::oQry:GoBottom()
ENDIF
RETURN Nil
//------------------------------------------------------------------------------
METHOD GoTo( nPos ) CLASS TQryBrowse
IF ::nLen < 1
RETURN Nil
ENDIF
::DrawLine()
::KeyNo( nPos )
::OnChange( .T. )
::SetVPos( ::RecNo() )
::Refresh( .F. )
RETURN Nil
//------------------------------------------------------------------------------
METHOD Skip( nSkip ) CLASS TQryBrowse
LOCAL xRet
DEFAULT nSkip TO 1
xRet := ::OnSkip( nSkip )
MsgInfo( ProcName() + " / "+ HB_NToS( nSkip ) )
IF xRet == Nil
RETURN ::oQry:Skip( nSkip )
ENDIF
RETURN xRet
//------------------------------------------------------------------------------
METHOD Refresh( lComplete ) CLASS TQryBrowse
DEFAULT lComplete TO .F.
IF lComplete
::GoTop()
ENDIF
RETURN ::Super:Refresh( lComplete )
//------------------------------------------------------------------------------
//CLASS TQryBrwColumn FROM TBrwColumn STATIC
//RESERVED:
// METHOD GetData() VIRTUAL
// METHOD SetData( Value, nLine ) VIRTUAL
//ENDCLASS