error al trabajar con Xbrowse
Posted: Mon May 08, 2017 3:27 pm
Estimados, tengo una búsqueda incremental que trabaja con xbrowse, cuando hago la búsqueda en la columna ordenada por defecto, la lee bien,
al presionar la teclas todo ok, pero si cambio a otra columna, para hacer misma búsqueda pero con otro campo, me tira error, pero si vuelvo a la columna inicial, trabaja bien de nuevo,
es decir, solo me opera con un solo index ordenado, que seria que que viene por defecto en la apertura y necesito que haga esto para cualquier columna que yo trabaje.. el erro es el siguiente
Called from: => DBSEEK( 0 )
Called from: D:\KPIDATA\PRG\rem001.prg => PSEEK( 75 )
Called from: D:\KPIDATA\PRG\tablas.prg => (b)MAIN_AREA( 7420 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SEEK( 6119 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:KEYCHAR( 2366 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1724 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11742 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
este es una funcion de lo que sucede.
Function Main_Familia(cEmpresa,cUser,cCuentas)
Local oDlg, oBrw, oFont2, oCol, oSay, oBtn2[ 9 ]
Close DataBase
Select 01
Do While .T.
If NET_USE("Tab_Fam",.F.,0)
Set Index to Tab_Fam1,Tab_Fam2
Set order to 2
exit
Else
ESTADO_DBF()
RETURN Nil
Endif
Enddo
Define Font oFont2 Name "Tahoma" Size 0,-11 Bold
DEFINE DIALOG oDlg ResName "BROW6BC" TITLE "Tabla/Archivos Familia o Linea de Productos.. " TRANSPARENT COLOR Rgb( 255, 0, 0 ), Rgb(185,220,255)
oBrw:=TxBrowse():New(oDlg)
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw:nColDividerStyle := LINESTYLE_RAISED
oBrw:nRowDividerStyle := LINESTYLE_RAISED
oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(128,255,128) } } // para barra de linea selecc cuando el control tiene el foco
oBrw:lColDividerComplete := (.t.) // (.T.) Mantiene siempre llena la pantalla
oBrw:nHeaderHeight := 35 // Altura de los encabezados
oBrw:nRowHeight := 25 // Altura del renglón
oBrw:nHeaderLines := 3 // Número de líneas de encabezados
oBrw:nDataLines := 2 // Número de líneas de detalle
oBrw:nFooterHeight := 20 // Altura del footer
oBrw:nFooterLines := 2 // Número de líneas en el footer
oBrw:lFooter := (.T.) // Sí queremos línea de footer
oBrw:lHScroll := (.T.) // Quitamos el scroll horizontal
oBrw:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw:bClrStd := { || If( oBrw:KeyNo() % 2 == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
oBrw:bClrFooter := {|| { nRGB(000,000,000), nRGB(150,200,200) } }
oBrw:bClrSel := {|| { nRGB(000,000,000), nRGB(128,255,128) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:nStretchCol := STRETCHCOL_WIDEST
oBrw:oFont := oFont2
oCol := oBrw:AddCol()
oCol:bStrData := { || Tab_Fam->Cod_Fam }
oCol:cHeader := "Codigo"
oCol:nWidth := 100
oCol:cSortOrder :="Tab_Fam1"
oCol := oBrw:AddCol()
oCol:bStrData := { || Tab_Fam->Nom_Fam }
oCol:cHeader := "Nombre"
oCol:nWidth := 300
oCol:cSortOrder :="Tab_Fam2"
oBrw:bSeek := {|c| PSeek( c ) }
oBrw:bLDblClick := {|| Add_Fam(.F.) }
oBrw:bKeyDown :={ | nKey | TeclasFam(nKey, oBrw, cEmpresa) }
oBrw:CreateFromResource(1000)
Redefine Say oBrw:oSeek Var oBrw:cSeek Id 1001 Of oDlg Picture "@!" Font oFont2 COLOR RGB(128,0,0)
ACTIVATE DIALOG oDlg CENTERED
oFont2:End()
Close DataBase
Return NIl
al presionar la teclas todo ok, pero si cambio a otra columna, para hacer misma búsqueda pero con otro campo, me tira error, pero si vuelvo a la columna inicial, trabaja bien de nuevo,
es decir, solo me opera con un solo index ordenado, que seria que que viene por defecto en la apertura y necesito que haga esto para cualquier columna que yo trabaje.. el erro es el siguiente
Called from: => DBSEEK( 0 )
Called from: D:\KPIDATA\PRG\rem001.prg => PSEEK( 75 )
Called from: D:\KPIDATA\PRG\tablas.prg => (b)MAIN_AREA( 7420 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SEEK( 6119 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:KEYCHAR( 2366 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1724 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11742 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
este es una funcion de lo que sucede.
Function Main_Familia(cEmpresa,cUser,cCuentas)
Local oDlg, oBrw, oFont2, oCol, oSay, oBtn2[ 9 ]
Close DataBase
Select 01
Do While .T.
If NET_USE("Tab_Fam",.F.,0)
Set Index to Tab_Fam1,Tab_Fam2
Set order to 2
exit
Else
ESTADO_DBF()
RETURN Nil
Endif
Enddo
Define Font oFont2 Name "Tahoma" Size 0,-11 Bold
DEFINE DIALOG oDlg ResName "BROW6BC" TITLE "Tabla/Archivos Familia o Linea de Productos.. " TRANSPARENT COLOR Rgb( 255, 0, 0 ), Rgb(185,220,255)
oBrw:=TxBrowse():New(oDlg)
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw:nColDividerStyle := LINESTYLE_RAISED
oBrw:nRowDividerStyle := LINESTYLE_RAISED
oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(128,255,128) } } // para barra de linea selecc cuando el control tiene el foco
oBrw:lColDividerComplete := (.t.) // (.T.) Mantiene siempre llena la pantalla
oBrw:nHeaderHeight := 35 // Altura de los encabezados
oBrw:nRowHeight := 25 // Altura del renglón
oBrw:nHeaderLines := 3 // Número de líneas de encabezados
oBrw:nDataLines := 2 // Número de líneas de detalle
oBrw:nFooterHeight := 20 // Altura del footer
oBrw:nFooterLines := 2 // Número de líneas en el footer
oBrw:lFooter := (.T.) // Sí queremos línea de footer
oBrw:lHScroll := (.T.) // Quitamos el scroll horizontal
oBrw:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw:bClrStd := { || If( oBrw:KeyNo() % 2 == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
oBrw:bClrFooter := {|| { nRGB(000,000,000), nRGB(150,200,200) } }
oBrw:bClrSel := {|| { nRGB(000,000,000), nRGB(128,255,128) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:nStretchCol := STRETCHCOL_WIDEST
oBrw:oFont := oFont2
oCol := oBrw:AddCol()
oCol:bStrData := { || Tab_Fam->Cod_Fam }
oCol:cHeader := "Codigo"
oCol:nWidth := 100
oCol:cSortOrder :="Tab_Fam1"
oCol := oBrw:AddCol()
oCol:bStrData := { || Tab_Fam->Nom_Fam }
oCol:cHeader := "Nombre"
oCol:nWidth := 300
oCol:cSortOrder :="Tab_Fam2"
oBrw:bSeek := {|c| PSeek( c ) }
oBrw:bLDblClick := {|| Add_Fam(.F.) }
oBrw:bKeyDown :={ | nKey | TeclasFam(nKey, oBrw, cEmpresa) }
oBrw:CreateFromResource(1000)
Redefine Say oBrw:oSeek Var oBrw:cSeek Id 1001 Of oDlg Picture "@!" Font oFont2 COLOR RGB(128,0,0)
ACTIVATE DIALOG oDlg CENTERED
oFont2:End()
Close DataBase
Return NIl