FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour about filtering
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
about filtering
Posted: Wed Apr 25, 2012 11:02 AM
Hi,

I have a DBF with 2 fields, FSERIE and FNUBER

I have those records:

A 2
A 6

B 1
B 2
B 3

D 1
D 2



I need to filter from B 2 to D 1 so I will have:

B 2
B 3
D 1


But does not work:
Code (fw): Select all Collapse
 cCondicion := "(FIELD->FSERIE >= " +CHR(34)+cFSERIE1+CHR(34)+ ".AND. FIELD->FNUMBER >= " + AllTrim( Str( nNumb1 ) ) + " ) .AND. " + ;
聽 聽 聽 聽 聽 聽 聽 聽 聽"(FIELD->FSERIE <= " +CHR(34)+cFSERIE2+CHR(34)+ " .AND. FIELD->FNUMBER <= " + AllTrim( Str( nNumb2 ) )+")"



Please, any clue will be apreciated.

Thanks
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.
Posts: 663
Joined: Mon Dec 05, 2005 11:22 PM
Re: about filtering
Posted: Wed Apr 25, 2012 01:45 PM
The logic is not correct and I cannot tell if there is a space between fields. Assuming there are no spaces and 2nd field has a fixed length of 1, then try this
Code (fw): Select all Collapse
cCondicion := [FIELD->FSERIE+FIELD->FNUMBER >= "]+cFSERIE1+AllTrim( Str( nNumb1 ) ) + 
   [" .AND. FIELD->FSERIE+FIELD->FNUMBER <= "]+cFSERIE2+AllTrim( Str( nNumb2 ) )+["]
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: about filtering
Posted: Wed Apr 25, 2012 02:38 PM
Gale,

Thanks very much for reply.

It does not work fine:

Code (fw): Select all Collapse
 cFSERIE1 := "A"
 nCodigo1 := 24

 cFSERIE2 := "D"
 nCodigo2 := 1




cCondicion := [alltrim(FIELD->FSERIE) + alltrim( str(FIELD->FNUMERO) ) >= "]+cFSERIE1+AllTrim( Str( nCodigo1 ) ) +;
   [" .AND. alltrim(FIELD->FSERIE) + alltrim( str(FIELD->FNUMERO) ) <= "]+cFSERIE2+AllTrim( Str( nCodigo2 ) )+["]




I got:
A3
A4
A5
A6
A7
A8
A9

A24
A25
B1
the rest is fine.

But I don麓t know why I get A3, A4, etc that are not on the range I need.
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.
Posts: 1195
Joined: Mon Oct 17, 2005 05:41 AM
Re: about filtering
Posted: Wed Apr 25, 2012 07:32 PM
Hi,

Why you use an index + scope

Code (fw): Select all Collapse
cFSERIE1 := "A"
nCodigo1 := 24

cFSERIE2 := "D"
nCodigo2 := 1
INDEX ON UPPER(FSERIE)+STR(FNUMERO,2,0)
SET SCOPETOP TO UPPER(cFSERIE1)+STR(nCodigo1,2,0)
SET SCOPEBOTTOM TO UPPER(cFSERIE2)+STR(nCodigo2,2,0)


Regards,
Marc
Regards,

Marc



FWH32+xHarbour | FWH64+Harbour | BCC | DBF | ADO+MySQL | ADO+MariaDB | ADO+SQLite
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: about filtering
Posted: Wed Apr 25, 2012 07:39 PM

Marc,

Thank you.

I also tried Scopes at first with no luck.

But with help at the spanish forum I discovered that as my field FSERIE has tree characters long, Scope should be A 000000000000020 instead of A000000000.

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.
Posts: 1195
Joined: Mon Oct 17, 2005 05:41 AM
Re: about filtering
Posted: Wed Apr 25, 2012 07:59 PM

Indeed,

In my example I assumed that FSERIE was 1 character long and FNUMERO a nummeric-field of 2 long.

Regards,
Marc

Regards,

Marc



FWH32+xHarbour | FWH64+Harbour | BCC | DBF | ADO+MySQL | ADO+MariaDB | ADO+SQLite
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: about filtering
Posted: Wed Apr 25, 2012 08:19 PM

Yes yes, thank you.

The fault was mine

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.

Continue the discussion