Strange problem sorting a dbf file
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Strange problem sorting a dbf file
Hi,
I have a really strange problem when I try to sort a dbf file using the command SORT ON .
In this self-contained sample
www.softwarexp.co.uk/beta/browse.zip
I create a new dbf (date ordered) form a source dbf but the order is incorrect (see www.softwarexp.co.uk/beta/browse.gif)
Any ideas ? Thanks in advance.
I have a really strange problem when I try to sort a dbf file using the command SORT ON .
In this self-contained sample
www.softwarexp.co.uk/beta/browse.zip
I create a new dbf (date ordered) form a source dbf but the order is incorrect (see www.softwarexp.co.uk/beta/browse.gif)
Any ideas ? Thanks in advance.
Best Regards,
Marco Turco
SOFTWARE XP LLP
Marco Turco
SOFTWARE XP LLP
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
I'm using my own EMAG Software DBU:Marco Turco wrote:Hi Enrico,
How did you check the dates ?
I checked them using the Norton Commander dbview and the Open Office "Calc" and all displayed well.
http://www.emagsoftware.it/gratis.htm
EMG
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
- E. Bartzokas
- Posts: 114
- Joined: Tue Feb 14, 2006 8:13 am
- Location: Corinth, Greece
Marco hi,Marco Turco wrote:Yes, it was a date issue.
I was unable to detect it due the fact that my (very very old) Norton Commander dbView displayed those dates exactly.
Thanks to all for the support.
It's one of the best practices to use CENTURY ON, in other words, to
use the format dd/mm/yyyy, thus, you will avoid problems with some
centuries that don't exist any more (or are not usable), such as 0007
vice 2007 !
You can use in your main program at the entry point along with the
SET DATE .... (e.g. ITALIAN), SET EPOCH TO ...
here's an example of what I use...
SET DATE BRITISH
SET EPOCH TO 1980
SET CENTURY ON
When users are lazy and type only the two last digits of a year, e.g.
"31/12/07", the program automatically converts it to "31/12/2007"
and not into "31/12/0007".
Another problem fixed below, is for displaying date fields in the browser
(e.g. TWBROWSE, or XBROWSE), with this method...
Code: Select all
REDEFINE LISTBOX oLbx1 FIELDS ;
PADC(History->STATUS,3) ,; // STATUS "S" or blank
Right(History->HISTNUMB,5) , ; // Autom.number
Right(History->FILENUMB,6) , ; // File number
SCTOC(DTOC(StoD(History->HISTDATE))) , ; // Date (dd-mm-yy)
.....
HEADERS "St." ,;
"Hist" ,;
"File" ,;
"Off.Date" ,;
some width in the browser. Here's the function.
Code: Select all
Function SCTOC(x)
*---------------- Returns a date (Char type) from 10 chars to 8 chars (Sort)
* SCTOC(DTOC(StoD(History->HISTDATE))),; // Date (dd-mm-yy)
Local z := ""
if len(x) == 8
Return (x)
endif
z := left(x, 6) +; // 18-01-2003
right(x,2)
Return (z)
Evans
ps. I hope it helps you a little...