cnavarro wrote:Joao, es estable, y no hay ningun problema
Ha salido más tarde para incluir en esta versión FwMysql y realizar pruebas
Antonio te lo confirmará
1) oRcs:Clone(),oRcs:Open() y oRcs:Close()
uso directamente oRcs := oConexion:Query("") trabaja perfecto
2) oRcs:Update()
uso oRcs:Save() trabaja bien, sin embargo cada tabla debe tener un indice principal
3) DefinedSize logitud campo, ...........
4) Sort
oRcs:Sort:= cCampo + " ASC"
oRcs:Sort:= cCampo + " DESC"
oRcs:SetOrder( c, u, lDescend )
no sirvió
NOTA PARA 64
#include "fivewin.ch"
#include "xbrowse.ch"
function Main()
local oWnd
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", "3306" } )
If oConexion == nil
msginfo("error base de datos")
return(.f.)
EndIf
oRcs := oConexion:Query("Select CodCli,NomCli From Clientes Limit 5")
If oRcs==Nil
msginfo("error tabla")
Return(.f.)
EndIf
define window ownd
oBrw := brow(oWnd,oRcs)
activate window oWnd
return nil
Procedure brow(oWnd,oRcs)
oBrw := TXBrowse():New( oWnd )
oBrw:lFlatStyle := .t.
oBrw:l2007 := .f.
oBrw:lKinetic := .f.
oBrw:lExcelCellWise := .t.
oBrw:nTop := 0
oBrw:nLeft := 0
oBrw:nBottom := 500
oBrw:nRight := 400
oBrw:lAllowRowSizing := .f.
oBrw:lAllowColHiding := .f.
oBrw:lColDividerComplete := .t.
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t. //completa pintado sobre el footer cuando lineas no llenan todo el browse
oBrw:nRowSel := 1
oBrw:nRowHeight := 35 //altura entre lineas
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL //solo ilumina la celda actual
oBrw:lHeader := .t. //Que tendrá cabecera
oBrw:nHeaderHeight := 60 //Altura cabeceras de col
oBrw:nHeaderLines := 2
oBrw:lFooter := .t. //Que tendrá footer
oBrw:nFooterLines := 2 //Lineas del footer
oBrw:nFooterHeight := 35 //Altura del Footer
oBrw:lRecordSelector := .t. //poner o no, COL de la flechita de la izq
oBrw:AddCol():bEditValue := { || oRcs:Fields("codcli"):value }
oBrw:aCols[ 1 ]:cHeader := "Código"
oBrw:aCols[ 1 ]:nHeadStrAlign := AL_CENTER
oBrw:aCols[ 1 ]:AddBmpFile( "up.bmp" )
oBrw:aCols[ 1 ]:AddBmpFile( "down.bmp" )
oBrw:aCols[ 1 ]:nHeadBmpAlign := AL_RIGHT
oBrw:aCols[ 1 ]:nWidth := 150
oBrw:aCols[ 1 ]:bLClickHeader := {|r,c,f,o| FunSort(oBrw,oRcs)}
oBrw:AddCol():bEditValue := { || oRcs:Fields("nomcli"):value }
oBrw:aCols[ 2 ]:cHeader := "Nombre"
oBrw:aCols[ 2 ]:nHeadStrAlign := AL_CENTER
oBrw:aCols[ 2 ]:AddBmpFile( "up.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "down.bmp" )
oBrw:aCols[ 2 ]:nHeadBmpAlign := AL_RIGHT
oBrw:aCols[ 2 ]:nWidth := 150
oBrw:aCols[ 2 ]:bLClickHeader := {|r,c,f,o| FunSort(oBrw,oRcs)}
oBrw:SetMySql(oRcs)
oBrw:CreateFromCode()
Return(oBrw)
//
Function FunSort(oBrw,oRcs)
oRcs:Sort:= "nomcli ASC"
//Verifico si me está ordenando y si lo ordena
oRcs:movefirst()
while !oRcs:Eof()
msginfo(oRcs:Fields("nomcli"):Value)
oRcs:MoveNext()
EndDo
oRcs:movefirst()
//oRcs:Requery()
//No me refresca con .t. y sin .t.
oBrw:Refresh(.t.)
Return nil
function brow( oWnd, oRcs )
local oBrw
@ 0,0 XBROWSE oBrw SIZE 400,500 PIXEL OF oWnd ;
DATASOURCE oRcs ;
COLUMNS "codcli", "nomcli" ;
HEADERS "Código", "Nombre" ;
COLSIZES 150,150 ;
AUTOSORT FOOTERS CELL LINES NOBORDER
WITH OBJECT oBrw
:nHeadStrAligns := AL_CENTER
:nHeaderHeight := 60
:nFooterHeight := 30
:nRowHeight := 35
//
:CreateFromCode()
END
return oBrw
#include "fivewin.ch"
#include "xbrowse.ch"
function Main()
local oWnd
cbuscar=space(20)
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", "3306" } )
If oConexion == nil
msginfo("error base de datos")
return(.f.)
EndIf
oRcs := oConexion:Query("Select CodCli,NomCli From Clientes Limit 20")
If oRcs==Nil
msginfo("error tabla")
Return(.f.)
EndIf
DEFINE DIALOG oDlg SIZE 600, 600
oBrw := brow(oWnd,oRcs)
@20,0 get obuscar var cbuscar valid filtrar()
ACTIVATE DIALOG oDlg CENTER
return nil
Procedure brow(oWnd,oRcs)
local oBrw
@ 0,0 XBROWSE oBrw SIZE 200,200 PIXEL OF oWnd ;
DATASOURCE oRcs ;
COLUMNS "codcli", "nomcli" ;
HEADERS "Código", "Nombre" ;
COLSIZES 150,150 ;
AUTOSORT FOOTERS CELL LINES NOBORDER
WITH OBJECT oBrw
:nHeadStrAligns := AL_CENTER
:nHeaderHeight := 60
:nFooterHeight := 30
:nRowHeight := 35
//
:CreateFromCode()
END
return oBrw
//
Function FunSort(oBrw,oRcs)
oRcs:Sort:= "nomcli ASC"
//oRcs:Requery()
//No me refresca con .t. y sin .t.
oBrw:Refresh(.t.)
Return nil
//
Function filtrar
If !Empty(cbuscar)
oRcs := oConexion:Query("Select CodCli,NomCli From Clientes where nomcli like '%&cbuscar%' Limit 20")
EndIf
oBrw:Refresh()
return(.t.)
#include "fivewin.ch"
#include "xbrowse.ch"
function Main()
local oWnd
cbuscar=space(20)
oConexion := mysql_Connect( { "localhost", "rovigo", "root", "1223", "3306" } )
If oConexion == nil
msginfo("error base de datos")
return(.f.)
EndIf
oRcs := oConexion:Query("Select CodCli,NomCli From Clientes Limit 20")
If oRcs==Nil
msginfo("error tabla")
Return(.f.)
EndIf
DEFINE DIALOG oDlg SIZE 600, 600
oBrw := brow(oWnd,oRcs)
@20,0 get obuscar var cbuscar valid filtrar()
ACTIVATE DIALOG oDlg CENTER
return nil
Procedure brow(oWnd,oRcs)
local oBrw
@ 0,0 XBROWSE oBrw SIZE 200,200 PIXEL OF oWnd ;
DATASOURCE oRcs ;
COLUMNS "codcli", "nomcli" ;
HEADERS "Código", "Nombre" ;
COLSIZES 150,150 ;
AUTOSORT FOOTERS CELL LINES NOBORDER
WITH OBJECT oBrw
:nHeadStrAligns := AL_CENTER
:nHeaderHeight := 60
:nFooterHeight := 30
:nRowHeight := 35
//
:CreateFromCode()
END
return oBrw
//
Function FunSort(oBrw,oRcs)
oRcs:Sort:= "nomcli ASC"
//oRcs:Requery()
//No me refresca con .t. y sin .t.
oBrw:Refresh(.t.)
Return nil
//
Function filtrar
If !Empty(cbuscar)
oRcs := oConexion:Query("Select CodCli,NomCli From Clientes where nomcli like '%&cbuscar%' Limit 20")
EndIf
oBrw:Refresh()
return(.t.)
Function filtrar
If !Empty(cbuscar)
cbuscar := AllTrim( cbuscar )
oBrw:oDbf := oConexion:Query("Select CodCli,NomCli From Clientes where nomcli like '%&cbuscar%' Limit 20")
EndIf
oBrw:Refresh()
return(.t.)
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 24 guests