función para hacer filtros en una DBF

función para hacer filtros en una DBF

Postby lucasdebeltran » Sun Jan 04, 2015 11:45 am

Hola amigos,

Estoy buscando una función para hacer filtros en una dbf, que permita hacer varias condiciones and or, diversos operadores, etc, para que el usuario pueda ir dinámicamente construyendo el filtro.

¿Existe algo?. Muchas gracias y feliz 2015.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: función para hacer filtros en una DBF

Postby José Vicente Beltrán » Sun Jan 04, 2015 2:16 pm

Lucas,

Yo lo hago (con muy buenos resultados) utilizando indices temporales del tipo

INDEX ON (campo/campos) TO iTemp FOR (aqui_la_cadena_de_condicion) TEMPORARY ADDITIVE

es un proceso casi instantaneo, probado con condiciones de filtro complejas, con DBF,s de mas de 200 MB
Saludos :shock:
User avatar
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: función para hacer filtros en una DBF

Postby lucasdebeltran » Sun Jan 04, 2015 2:33 pm

Hola,

Lo que busco es el dialogo para añadir el primer campo, el operador, el valor, el and u or para la siguiente condición, la función que hace el filtro, v verifica operador con tipo de campo..., incluso si es de pago.

Muchas gracias.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: función para hacer filtros en una DBF

Postby D.Fernandez » Sun Jan 04, 2015 5:13 pm

Hola Lucas, podrias verificar fivedbu.prg tiene algo parecido.

Saludos.
Dario Fernandez
FWH 22.12, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 455
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: función para hacer filtros en una DBF

Postby lucasdebeltran » Sun Jan 04, 2015 5:24 pm

Hola

El problema es que no esta acabada, no hace comprobaciones, étc.

Gracias
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: función para hacer filtros en una DBF

Postby elvira » Mon Jan 05, 2015 11:26 am

Yo también estoy interesada :D
elvira
 
Posts: 516
Joined: Fri Jun 29, 2012 12:49 pm

Re: función para hacer filtros en una DBF

Postby karinha » Wed Jan 07, 2015 5:03 pm

Code: Select all  Expand view

FUNCTION RELATORIO_STATUS_NFE( cTipoImpr )

   LOCAL oPen1, oPen2, oFont1, oFont2, oFont3, oReport, cAlias, cTitleImp

   PUBLIC wNomeEmpresa

   SELECT CADNFE

   // CRIACAO DOS FITROS/INDICES
   DO CASE
   CASE cTipoImpr = "APROVADAS"  // "APR"

      cTitleImp := OemToAnsi( "APROVADA(s) E NÇO IMPRESSA(s)." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "APR" MEMORY //TEMPORARY

   CASE cTipoImpr = "CANCELADAS"  // "CAN"

      cTitleImp := OemToAnsi( "CANCELADA(s) NA SEFAZ." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "CAN" MEMORY //TEMPORARY

   CASE cTipoImpr = "DENEGADAS"  // "DEN"

      cTitleImp := OemToAnsi( "NFE COM USO DENEGADO NA SEFAZ." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "DEN" MEMORY //TEMPORARY

   CASE cTipoImpr = "ENVIADAS"   // "ENV"

      cTitleImp := OemToAnsi( "TRANSMITIDA(s) E NÇO CONSULTADA(s)." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "ENV" MEMORY //TEMPORARY

   CASE cTipoImpr = "GERADAS"   // "GER"

      cTitleImp := OemToAnsi( "GERADA(s) E NÇO TRANSMITIDA(s)." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "GER" MEMORY //TEMPORARY

   CASE cTipoImpr = "IMPRESSAS" // "IMP"

      cTitleImp := OemToAnsi( "IMPRESSA(s) - FINALIZADA(s)-OK." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "IMP" MEMORY //TEMPORARY

   CASE cTipoImpr = "INUTILIZADAS"  // "INU"

      cTitleImp := OemToAnsi( "INUTILIZADA(s) NA SEFAZ." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "INU" MEMORY //TEMPORARY

   CASE cTipoImpr = "PENDENTES" // "   "

      cTitleImp := OemToAnsi( "PENDENTE(s) DE GERA€ÇO." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) .AND. CADNFE->STATUS = "   " MEMORY //TEMPORARY

   CASE cTipoImpr = "GERAL"

      cTitleImp := OemToAnsi( "GERAL - TODAS AS NOTAS EXISTENTES." )

      INDEX ON FATURCOD                   TAG 05 TO INFETEMP   ;
            FOR ( .NOT. EOF() ) MEMORY //TEMPORARY

   ENDCASE

   cAlias := ALIAS()

   GO TOP

   ...

RETURN NIL
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7345
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 31 guests