Buena tarde, el método oRecSet:setOrder, permite usar má de columna ...?
La idea es no gastar mas consultas a base de datos para traerla ordenado , tratando de simular al v Dbsetorder de los dbf. Gracias...
Fw maria-/mysql
-
- Posts: 262
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: Fw maria-/mysql
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
-
- Posts: 262
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: Fw maria-/mysql
Armando buena tarde..
Ya me funciona el método setOrder. Trataba de ordenar con los criterios del ordNname() de los CDX, tuve que quitar : upper, str, (), etc...
Ya esta funcionando.
Ahora requiero hacer búsquedas optimizada sobre el recordSet : existe un método o tengo que hace búsqueda secuencial.
Gracias
JONSSSON RUSSI
Nota: existe una documentación completa , diferente a esta que esta en el foro :
MYSQL_TinyIntAsLogical( lOnOff ) --> lPrevSetting // Default False
By default, BIT fields are used for Logical values.
When set ON, TinyInt is used for Logical values instead.
This setting is used at the time of Creation and Opening of a Table. This setting can be toggled suitably while reading tables created with different settings. There can be different tables opened simultaneously with different settings.
Other methods:
Ya me funciona el método setOrder. Trataba de ordenar con los criterios del ordNname() de los CDX, tuve que quitar : upper, str, (), etc...
Ya esta funcionando.
Ahora requiero hacer búsquedas optimizada sobre el recordSet : existe un método o tengo que hace búsqueda secuencial.
Gracias
JONSSSON RUSSI
Nota: existe una documentación completa , diferente a esta que esta en el foro :
MYSQL_TinyIntAsLogical( lOnOff ) --> lPrevSetting // Default False
By default, BIT fields are used for Logical values.
When set ON, TinyInt is used for Logical values instead.
This setting is used at the time of Creation and Opening of a Table. This setting can be toggled suitably while reading tables created with different settings. There can be different tables opened simultaneously with different settings.
Other methods:
-
- Posts: 262
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: Fw maria-/mysql
Ya encontré el método :seek
Gracias
Gracias
-
- Posts: 262
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: Fw maria-/mysql
Buena tarde
Requiero construir un txbrowse con recordset ( fwmaria ),
Anexo ejemplo de como lo hago con tablas DBF
Jonsson Russi
Bucaramanga , Colombia
Requiero construir un txbrowse con recordset ( fwmaria ),
Anexo ejemplo de como lo hago con tablas DBF
Jonsson Russi
Bucaramanga , Colombia
Code: Select all | Expand
AADD( vConBrw,{ "HIS->cCodigoCon", "Cpto" , "XX" , .F. , 6 } )
AADD( vConBrw,{ "HIS->cDocumeTra", "Documento" , REPL("X",8) , .F. , 10 } )
AADD( vConBrw,{ "cFecCor(HIS->dFecTraTra)", "Fecha" , "@D" , .F., 12 } )
AADD( vConBrw,{ "cFecCor(HIS->dFecIniTra)", "Fecha Inicial" , "@D" , .F., 12 } )
AADD( vConBrw,{ "cFecCor(HIS->dFecFinTra)", "Fecha Final" , "@D" , .F., 12 } )
oBrwMovCem := BrowseConsulta( vConBrw, oGrpHis, "HIS",;
fFunMod,;
fFunMod,;
NIL,;
NIL,1,fFunMod,"COLOR MARRON","FONDO" )
FUNCTION BrowseConsulta( vConBrw, oPanBrw, cAliTab, fFunDCl,fFunEnt,fFunDel,;
fFunIns,nColPos,fFunMod,cTipCol,cVerFon,nFonBro)
LOCAL oCajDia, cCol, aItem , oBrwFW2 , K := 1, campo, nPosGui := 0
LOCAL A := "IMAGEN", nRecSel := 0, oBrush, oCol , oFont, J:= 0, oErr
LOCAL aRowGrad
LOCAL aSelGrad
LOCAL XaSelGrad
IF SELECT(cAliTab) == 0
RETURN NIL
ENDIF
XaSelGrad := { { .5, RGB( 255, 238, 185 ), RGB( 255, 237, 178 ) }, ;
{ .5, RGB( 255, 200,34 ), RGB( 255, 233, 162 ) } }
aSelGrad := { { .5, RGB( 191,205,219 ), RGB( 191,205,219 ) }, ;
{ .5, RGB( 191,205,219 ), RGB( 191,205,219 ) } }
IF nFonBro == NIL
DEFINE FONT oFont NAME "Arial Narrow" SIZE 5, 18
ELSEIF nFonBro == 1
DEFINE FONT oFont NAME "Arial" SIZE 8, 10
ELSEIF nFonBro == 2
DEFINE FONT oFont NAME "Times New Roman" SIZE 10, 16
ELSEIF nFonBro == 3
DEFINE FONT oFont NAME "Arial Black" SIZE 12, 10
ELSEIF nFonBro == 4
DEFINE FONT oFont NAME "Courier New" SIZE 14, 10 BOLD
ELSEIF nFonBro == 5
//DEFINE FONT oFonBro NAME "Tahoma" SIZE 0, -16
DEFINE FONT oFont NAME "Arial Narrow" SIZE 8, 20
ELSE
// oFont := M->oFonAc11
oFont:SetFont( M->oFonAc11 )
ENDIF
XbrNumFormat( 'E', .t. )
SYSREFRESH()
INKEY(0.2)
DEFAULT nColPos := 1
DEFAULT fFunMod := NIL
TRY
SELECT (cAliTab)
nRecSel := (cAliTab)->( RecNo() )
IF cVerFon <> nil
IF EMP->cTipConCon == "N"
DEFINE BRUSH oBrush FILE "IMAGENES\FIVEBACK.JPG"
ELSE
DEFINE BRUSH oBrush FILE "IMAGENES\fondo.jpg"
ENDIF
ENDIF
@ 0,0 XBROWSE oBrwFW2 OF oPanBrw;
AUTOSORT FOOTERS FASTEDIT LINES CELL
WITH OBJECT ( oBrwFW2 )
IF M->SW_FONDO
:l2007 := .F.
:bClrHeader := {|| { CLR_WHITE, nRGB( 80, 80, 80 ) } } //87,129,187
:bClrFooter := {|| { CLR_WHITE, nRGB( 80, 80, 80 ) } }
ELSE
:l2007 := .T.
ENDIF
:nStretchCol := 1
:nMarqueeStyle := 4
:bClrSelFocus := { || { CLR_HBLUE, XaSelGrad } }
:bClrRowFocus := { || { CLR_BLACK, aSelGrad } } // NARANJA, CELESTE
//:lKinetic := .F.
:bChange := { || nRecSel := oBrwFW2:BookMark }
//:nMarqueeStyle := MARQSTYLE_HIGHLCELL
:nColDividerStyle := LINESTYLE_BLACK
:nRowDividerStyle := LINESTYLE_BLACK
//:nRowDividerStyle := LINESTYLE_NOLINES
//:nColDividerStyle := LINESTYLE_NOLINES
:lColDividerComplete := .f.
:lColDividerComplete := .F.
:nHeaderLines := 1
:nFooterLines := 1
:nDataLines := 1
:lFooter := .T.
:lFastEdit := .T.
:nFreeze := 1
:cAlias := cAliTab
// &fFunDCl
IF fFunDCl <> NIL
:bLDblClick:= { || &(fFunDCl), oBrwFW2:Refresh() }
ENDIF
IF ALIAS(cAliTab) == "LEC" .OR. ALIAS(cAliTab) == "CAJ" .OR. ;
ALIAS(cAliTab) == "IMP" .OR. ALIAS(cAliTab) == "HIS" .OR. ;
ALIAS(cAliTab) == "CTB" .OR. ALIAS(cAliTab) == "LEA" .OR. ;
ALIAS(cAliTab) == "CAX" .OR. ALIAS(cAliTab) == "HI2" .OR. ;
ALIAS(cAliTab) == "FTM" .OR. ALIAS(cAliTab) == "TCA" .OR. ;
ALIAS(cAliTab) == "DRI"
//
ELSE
IF (cAliTab)->( IndexOrd() ) > 0
:bSeek := {|c| (cAliTab)->( DBSEEK( UPPER(C) ) ) }
ENDIF
ENDIF
:bkeydown := { | nKey,nFlags | EvaluaTecla(cAliTab,oBrwFW2,@nKey,fFunDCl,fFunEnt,fFunDel,fFunIns,fFunMod,nFlags ) }
//:keydown := { |nkey ,nFlags| func1(nkey,nFlags)}
FOR EACH aItem IN vConBrw
WITH OBJECT (oCol := oBrwFW2:AddCol())
// :oDataFont := {|| oFonBro }
:bStrData := MakeValueBlock(@aItem,1, 3 )
:cHeader := HB_OEMTOANSI(aItem[ 2 ])
:nHeadStrAlign := AL_CENTER
IF LEN(aItem)> 8
IF aItem[ 9 ] <> NIL
IF aItem[ 9 ] == "D" .OR. aItem[ 9 ] == "N"
:nDataStrAlign := AL_RIGHT
ELSEIF aItem[ 9 ] == "I"
:nDataStrAlign := AL_LEFT
ELSEIF aItem[ 9 ] == "C"
:nDataStrAlign := AL_CENTER
ENDIF
ENDIF
ENDIF
IF aItem[ 3 ] <> NIL
:cEditPicture := aItem[ 3 ]
ENDIF
IF aItem[ 5 ] <> NIL
:nWidth := aItem[ 5 ] * 8
ELSE
:nWidth := 240
// :nWidth := aItem[ 5 ] * 8 GETTEXTWIDTH(0,REPLICATE("x",vVecAnc[J]),oFonAct:hFont)*nFacFon
ENDIF
IF aItem [ 4 ] // SI ES VERDADERO HABILITA CAPTURA CON GET
:nEditType := 1
:lAutoSave := .F.
//:bOnPostEdit := {|o, v, n| IIF ( n != VK_ESCAPE, ;
// ModificaColumna(oBrwFW2, cAliTab, SUBS(ALLTRIM(aItem[1]), ATNUM('>',aItem[1],1)+1), v, "VALID LOCAL" ), ) }
:bOnPostEdit := {|o, v, n| IIF ( n != VK_ESCAPE, ModificaColumna(oBrwFW2,cAliTab ,;
SUBS(ALLTRIM(aItem[1]),ATNUM('>',aItem[1],1)+1),v,;
"VALID LOCAL",IF( LEN(aItem)>5,aItem[6],NIL),IF(LEN(aItem)>6,aItem[7],NIL),IF(LEN(aItem)>7,aItem[8],NIL) ), NIL ) }
ENDIF
:oDataFont := oFont
:oHeaderFont := oFont
END
:aCols[ :nFreeze ]:bClrStd := {|| { RGB(0,0,0) ,RGB(234,234,234) } } // CLR_WHITE, CLR_BLUE
NEXT nFor
FOR J := 1 TO LEN(:aCols)
//:aCols[J]:bLClickHeader := {|| oBrwFW2:GoTop(), oBrwFW2:Refresh()}
NEXT J
:SetRDD()
IF M->SW_FONDO
IF cTipCol <> NIL
:SetZebra(.T.,{ { CLR_WHITE, RGB( 234,234,234 ) }, { RGB(0,0,0) , RGB( 255,255,242 ) } } )
ELSE //
:SetZebra(.T.,{ { RGB(0,0,0) , RGB( 213,198,187 ) }, { RGB(0,0,0) , RGB( 255,255,242 ) } } )
ENDIF
ELSE
IF cTipCol <> NIL
:SetZebra(.T.,{ { CLR_WHITE, RGB( 234,234,234 ) }, { RGB(0,0,0) , RGB( 255,255,242 ) } } )
ELSE //
:SetZebra(.T.,{ { RGB(0,0,0) , RGB( 234,234,234 ) }, { RGB(0,0,0) , RGB( 255,255,242 ) } } )
ENDIF
ENDIF
//:nStretchCol := STRETCHCOL_LAST
:SetChecks()
//:Married:SetCheck( { "GREEN", "RED" }, EDIT_GET )
:CreateFromCode()
:SetFocus()
:oClient := oBrwFW2
:AdjClient()
:SelectCol(nColPos)
:nMoveType = MOVE_NONE
IF cVerFon <> nil
:SetBackGround( oBrush )
ENDIF
IF ALLTRIM(M->cTipSer) == "DBFCDX"
:refresh()
ENDIF
:HasBorder(.F.)
END
CATCH oErr
alerta("Error. Construyendo browse de consulta")
MyErrorZerus( oErr, "NO SALE DE RUSSOFT" )
RETURN NIL
END
RETURN BrowseConsulta := oBrwFW2