Page 1 of 2
Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 3:15 pm
by AIDA
Hola
Tengo un programita para visualizar datos en un xbrowse en red
este programa consulta datos por claves pero se pone super lento que puede ser
me podrían orientar
Gracias!
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 4:45 pm
by acuellar
AIDA
Si tiene FILTER hay que evitarlos, Es aconsejable usar SCOPE o INDICES para filtrar.
Saludos,
Adhemar
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 6:25 pm
by AIDA
UPS SI TENGO FILTERS
Como se usan esos SCOPE ?
Gracias
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 6:34 pm
by acuellar
Aida
Colocalo tu FILTER para verlo.
Saludos,
Adhemar
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 6:42 pm
by davidObarrio
Yo lo hago asi....
el archivo está indexado asi....
str(CODIINT,10)+str(EM_PARE,2)
#Include 'xbrowse.ch'
#define TOPSCOPE 0
#define BOTTOMSCOPE 1
@ 0.875,1 XBROWSE oBrwGRU ;
FIELDS (EMPLEGRU)->EM_NOMB , ;
HEADERS 'Nombre' ;
SIZES 200 ;
SIZE 200 ;
ALIAS EMPLEGRU OF oFol:aDialogs[3]
oBrwGRU:nRowDividerStyle = LINESTYLE_NOLINES
oBrwGRU:nColDividerStyle = LINESTYLE_BLACK
oBrwGRU:nMarqueeStyle = MARQSTYLE_HIGHLROW
oBrwGRU:CreateFromCode()
oBrwGRU:Seek( str(mCODIINT,10) )
eFiltro1 := {|| DBSELECTAREA(EMPLEGRU) ,;
(EMPLEGRU)->( OrdScope(BOTTOMSCOPE, str(mCODIINT,10) )) ,;
(EMPLEGRU)->( OrdScope(TOPSCOPE, str(mCODIINT,10) )) ,;
(EMPLEGRU)->(dbgotop()) }
EVAL(eFiltro1)
saludos
david
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 6:59 pm
by AIDA
a si tengo el filter
Set filter to ( cAlias )->poliza= irNueva1 .and. ( cAlias )->agente=IrNueva2
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 7:57 pm
by karinha
Hola Aida, use INDICE TEMPORARY es mejor y mas rapido:
Code: Select all | Expand
SELECT CADNFE
INDEX ON CADNFE->NFECOD TAG 07 TO INFETEMP ;
WHILE CADNFE->PEDIDCOD == PEDIDCOD2 .AND. ;
CADNFE->TPFAT_OP == "P" .AND. ;
CADNFE->STATUS == "IMP" .OR. ;
CADNFE->STATUS == "CAN" .OR. ;
CADNFE->STATUS == "APR" TEMPORARY
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 12:04 am
by AIDA
Hola!
Muchas gracias revisare sus ejemplos son de mil amores
yo les comento como me quedo el cambio de codigo
Gracias!!
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 4:39 pm
by jrestojeda
Aida...
Yo lo que uso sin problemas son los SCOPES, funcionan muy bien y rápido, pero hay que tener unas cositas en cuenta a la hora de usarlos.
Sólo se puede hacer un SCOPE sobre un tag de tu CDX, y si por algún motivo cambias el SetOrder en algún momento, el Scope se pierde.
Conceptualmente son muy rápidos, ya que con dos "SoftSeeks" internos te filtra y se queda sólo con lo que le interesa, es decir, el Scope, hace un SoftSeek al TOPSCOPE y otro SoftSeek al BOTTOMSCOPE y como la tabla está ordenada lo que hace es quedarse con lo que queda entre esos dos "SoftSeeks" y el resto lo descarta.
El set filter to, recorre toda la tabla verificando si se cumple con la condición de filtro.
Si no tienes un TAG como para poder hacer un SCOPE y tampoco puedes crearlo, podrías probar con un DBSETFILTER que en principio debería ser levemente más rápito que el SET FILTER TO.
Espero te sirva la idea...
Saludos,
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 7:17 pm
by AIDA
No capto como pasar mis filtros a esos scope
como quedaria este filtro
Set filter to ( cAlias )->poliza= irNueva1 .and. ( cAlias )->agente=IrNueva2
en un scope
toy emburrada
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 7:41 pm
by jrestojeda
Aida...
Para poder ayudarte necesitamos saber que tipo de campo es POLIZA y AGENTE.
Y debes tener un Tag dentro de tu CDX con esos dos campos.
Saludos,
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 9:01 pm
by AIDA
Hola
POLIZA y AGENTE son alfa numéricos
Saluditos

Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 11:09 pm
by sysctrl2
debes de tener, un índice POLIZA+AGENTE
saludos desde el D.Fectuoso.
Code: Select all | Expand
#define TOPSCOPE 1
#define BOTTOMSCOPE 2
FUNCTION Main()
local cLimInf := "001" + "002"
local cLimSup := "100" + "200"
dbselectarea( cTabla )
ordsetfocus( 1 )
(cTabla)->( SetScope( cLimInf, cLimSup ) )
xbrowse()
ClearScope( cTabla )
RETURN NIL
function SetScope( xValorIni, xValorFin )
DEFAULT xValorFin := xValorIni
OrdScope( TOPSCOPE, xValorIni )
OrdScope( BOTTOMSCOPE, xValorFin )
DBGoTop()
RETURN nil
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 11:15 pm
by sysctrl2
Perdon, aquí esta la función ClearScope()
es como hacer un SET FILTER TO
saludos.
Code: Select all | Expand
function ClearScope()
OrdScope( TOPSCOPE , NIL )
OrdScope( BOTTOMSCOPE , NIL )
DBGoTop()
RETURN nil
los scopes son rapidos, en tu caso creo que encajaria perfecto.
yo solo los uso en lugares específicos, por ejemplo:
nFolioInicial
nFolioFinal
==========================
fecha inicial, fecha final
=========================
etc.
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Wed Jun 19, 2013 1:03 am
by AIDA
Hola
ya aplique sus recomendaciones de scopes y indices temporales y si se noto una super mejoría
pero que creen que me cambie de red temporalmente y ahora funciona super bien a un sin las modificaciones
pero como debe ser en la red anterior deberé ver que es lo que me esta alentando todo ya revise las compus de las dos redes usan el mismo antivirus con la misma configuración
que creen que pueda ser lo que me esta afectando la rapidez de conexión de mi programa
Saluditos

y un millón de kikos de mi parte
