FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda xbrowse con DBF y CDX lento en RED
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 03:15 PM

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 :roll:

Gracias!

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 04:45 PM

AIDA

Si tiene FILTER hay que evitarlos, Es aconsejable usar SCOPE o INDICES para filtrar.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 06:25 PM

UPS SI TENGO FILTERS :shock:

Como se usan esos SCOPE ?

Gracias

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 06:34 PM

Aida

Colocalo tu FILTER para verlo.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 72
Joined: Tue Oct 02, 2012 04:36 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 06:42 PM
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
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 06:59 PM

a si tengo el filter

Set filter to ( cAlias )->poliza= irNueva1 .and. ( cAlias )->agente=IrNueva2

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Fri Jun 14, 2013 07:57 PM
Hola Aida, use INDICE TEMPORARY es mejor y mas rapido:

Code (fw): Select all Collapse
               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


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 12:04 AM

Hola!

Muchas gracias revisare sus ejemplos son de mil amores :D

yo les comento como me quedo el cambio de codigo :)

Gracias!! :mrgreen:

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 04:39 PM

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,

Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 07:17 PM

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 :roll:

toy emburrada :oops:

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 07:41 PM

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,

Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 09:01 PM

Hola

POLIZA y AGENTE son alfa numéricos

Saluditos :wink:

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 11:09 PM
debes de tener, un índice POLIZA+AGENTE
saludos desde el D.Fectuoso.

Code (fw): Select all Collapse
#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
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Mon Jun 17, 2013 11:15 PM
Perdon, aquí esta la función ClearScope()

es como hacer un SET FILTER TO

saludos.

Code (fw): Select all Collapse
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.
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: Ayuda xbrowse con DBF y CDX lento en RED
Posted: Wed Jun 19, 2013 01:03 AM

Hola :D

ya aplique sus recomendaciones de scopes y indices temporales y si se noto una super mejoría :mrgreen:

pero que creen que me cambie de red temporalmente y ahora funciona super bien a un sin las modificaciones :shock:

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 :wink: y un millón de kikos de mi parte :D

Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ