TBSC  -   The Blue Software Company
 Home Page   Order Information   Partners / Employmt. 
 Products / Services   Freeware / Shareware   More ... 
 Download Products   Resources / Links 
 
Practical software, services and solutions for the small business
and the individual computer user - world wide !


 "Exporting" Files

This item is about the re(use) of existing data with other applications - eg for label printing, mail merge operations etc. and is related to ODBC (Open Data Base Connectivity).


In our applications there are often one or more database files (tables) containing data useful for further processing to get new insights into existing information. It is an old subject still deserving attention - esp. because of the many stories about what DOES NOT work after exporting.

This item considers the needs of our target group - the individual computer user and the small / medium sized business.

It seems to many people nowadays that ODBC is the only way to go - but you need the so-called ODBC drivers which are expensive. The costs are justified if you have to deal with comprehensive weekly or monthly queries of your data - but not for the occasional selection of some hundred "Address Book" records which you want to use in a label printing application for mailing out the annual batch of Christmas cards.

Take our Address Book file for example. It can be exported from the File Menu in our application:  "MyAddress & Contact Data !"  [ menu item:   Export Addressbook to .CSV file (addrexp.csv) ]

We will go through this step by step and explain what  is happening and how to (re)use the exported data.

[ We make it EASY to understand. ]

When you click on the "Export Addressbook to File:  item a file "addrexp.csv" is created in c:\tbsc which you can process further with all kinds of other applications. This file is based on the actual data contained in the file:  "addrbook.tps" where you store all your address related data.

Let's have a closer look at how data is represented after exporting  ...

Open NOTEPAD or your favourite text editor and open the file:   addrexp.csv

The data is listed similar to the sample below.

"BLUESOFT","The Blue Software Company","Business - Computing",     ......   etc.

.CSV stands for comma-separated values and the actual field contents are listed in quotation marks.

You can open this file in a spreadsheet application to view the records in "rows" and the fields in "colums".

[ works with MS EXCEL, LOTUS 1-2-3, 602Tabs and many others ]


This works fine in principle - but there some considerations which have nothing to do with the quality of the spreadsheet application(s)  ...

What works and what doesn't work with this approach ?

Let's start with what usually DOES NOT work :

[ At the end of this item is a field list for our file: addrbook.tps - the equivalents are listed exactly in this sequence in the exported .csv file. ]

The file:  people.tps  is structured the same way.

- ALL fields having the MEMO attribute (mainly fields containing larger texts etc.) are NOT exported !

  These are the following fields:

     EMAIL                                         Spreadsheet Column:   AJ
     NETADDR_ID                                                                  BE
    OTHER_PHONE_NO                                                        BJ
    NOTE                                                                                 BK
    PARTNER_INFO                                                               BL
    CHILD01_INFO                                                                 BM
    CHILD_02_INFO                                                               BN

The contents of these fields is NOT listed at all in the exported file or in the spreadsheet columns!

The reason is:  because of the variable lengths of the entries and how these things are organized internally it is not possible to export them this way.

DATE fields are usually misrepresented when we convert the columns in a spreadsheet application from a numeric value into the date format

It has to do with how DATE fields are stored internally in different applications and concerns the fields:

    DATEOFBIRTH                              Spreadsheet Column:     L
    USERDEF05                                                                         Y
    USERDEF06                                                                         Z
    PARTNER_DATEOFBIRTH                                               AO
    CHILD01_ DATEOFBIRTH                                                AR
    CHILD02_DATEOFBIRTH                                                 AU
    DATE_ENTERED                                                                AX
    DATE_UPDATED                                                                AY
    FOLLOW_UP_DATE                                                          BB

How dates are represented and calculated depends on the underlying development system. In our applications the dates are calculated according to the following definition:

A "standard date" is the number of days that have elapsed since December 28, 1800. The range of accessible dates is from January 1, 1801 (standard date 4) to December 31, 2099 (standard date 109,211). Date functions will not return correct values outside the limits of this range. The standard date calendar also adjusts for each leap year within the range of accessible dates.

The LONG data type with a date format (@D) display picture is normally used for a standard date. Data entry into any date format picture with a two-digit year defaults to the century of the next 20 or previous 80 years. For example, entering 01/01/01 results in 01/01/2001 if the current year (per the system clock) is greater than 1980, and 01/01/1901 if the current year is 1980 or earlier.

This is the way how dates are handled in our applications. After exporting a file to .CSV format, open it in a spreadsheet application like MS-EXCEL and converting the dates from their numeric values to date format most people are in for a surprise because it DOES NOT work as expected - MS-EXCEL for example handles dates different ...

Microsoft Excel stores dates in a similar fashion as sequential numbers (also known as serial values) and stores times as decimal fractions because time is considered a portion of a day. Dates and times are values and therefore can be added, subtracted, and included in other calculations. For example, to determine the difference between two dates, you can subtract one date from the other. You can view a date or time as a serial number or a decimal fraction by changing the format of the cell that contains the date or time to General format.

Microsoft Excel 97 supports two date systems: the 1900 and 1904 date systems. The default date system for Microsoft Excel 97 for Windows is 1900. To change to the 1904 date system, click Options on the Tools menu, click the Calculation tab, and then select the 1904 date system check box.

The following table shows the first date and the last date for each date system and the serial value associated with each date.

1900 January 1, 1900 (serial value 1) -  December 31, 9999 (serial value 2958525)
1904 January 2, 1904 (serial value 1) -  December 31, 9999 (serial value 2957063)

Note:   When you enter a date in Microsoft Excel 97 and you enter only two digits for the year, Microsoft Excel enters the year as follows:

· The years 2000 through 2029 if you type 00 through 29 for the year. For example, if you type 5/28/19, Microsoft Excel assumes the date is May 28, 2019.

· The years 1930 through 1999 if you type 30 through 99 for the year. For example, if you type 5/28/91, Microsoft Excel assumes the date is May 28, 1991.

Because the calculation basis for the serial values is different we get wrong results:

Example:

A date entered correctly in our application:   16/01/1969  (16th of January 1969)  has the serial value of  61380  (counting the days incl. leap years from the 1st of January, 1801 (which has the serial value of 4).

How is the serial value of 61380 calculated ?

168 years have passed since the 1st of January 1801:

168 * 365 days =         61320
                            +              4  (serial value of the 1st of January 1801 - start value)
                            -               1  (we have to subtract one day in 1801)
                                     ------
                                     61323
                            +             42 (because there were 42 leap years between)
                                     ------
                                     61365
                            +             15 (full days in 1969 up to the 16th of January 1969)
                                      ------
                                      61380

This wasn't too difficult !

Based on 61380  ...

if we now convert the serial number in our spreadsheet with the pre-defined starting date on the 1st of January 1900 we get the date: 18th of January 2068 ! This is NOT what we wanted.

If there were NO leap years we could easily develop a small formula and apply it in general to the column of our spreadsheet to get the conversion right . For example by subtracting a serial value expressing the difference between the 1st of January 1900 and the 1st of January 1801 based on the starting values and considering the leap years occurred during that century).

The task is not impossible to achieve - but it is a little bit impractical for the average user !

We have therefore done the HARD work for you:

After exporting your file to .CSV format and locating the date fields in your Microsoft EXCEL or LOTUS Spreadsheet just do the following:

- insert a NEW column on the right from existing date fields

- put a formula in the first cell of the newly created column to subtract from the existing serial values on the left the  number "36161" and use the "fill" function to copy the formula down to all other cells in this  column in EXCEL enter:     =sum(m2-36161)    in Column M, Row 2     then use the "Fill" function (down) from the EDIT menu

- the dates are represented correctly !

- DELETE the "old" date column

How did we come to the value of  36161 ?

Between the 1st of January 1801 and the 1st of January 1900   99 years have passed:

99 * 365 =      36135
                     +        4  (the starting value on the 1st of January 1801)
                     -         1  (for the 1st day in 1801)
                     +       24 (for the 24 leap years during this period)
                     -          1 (for the wrong leap year assumption in 1900 - see explanations below)
                     ---------
                        36161   !

Another hurdle is to take care of entries that have no value in it (NO date at all) - here we could get invalid values that are then out of range and cannot be handled by the spreadsheet software. OK - they could be suppressed, set to 0  -  but is it really worth it to spend the time for it to get the results the way we want them ?

It might be worth to calculate the true difference - if the dates in such a column are MUST entry fields.

With our help offered here it is not too difficult (and saves you the money for the ODBC drivers) !


More things to consider - the following is from the Microsoft web site:

http://support.microsoft.com/support/kb/articles/Q181/3/70.asp

XL: Excel Incorrectly Assumes 1900 Is a Leap Year

  The information in this article applies to:

       Microsoft Excel for Windows, versions 2.0, 2.01, 2.1, 2.10c, 2.10d, 3.0, 3.0a, 4.0, 4.0a, 4.0c,
       5.0, 5.0c
       Microsoft Excel for the Macintosh, versions 2.20, 2.2a, 3.0, 3.0a, 4.0, 5.0, 5.0a
       Microsoft Excel for Windows NT, version 5.0
       Microsoft Excel for Windows 95, versions 7.0, 7.0a
       Microsoft Excel 97 for Windows
       Microsoft Excel 98 Macintosh Edition

SUMMARY

Microsoft Excel incorrectly assumes that the year 1900 is a leap year. This article explains why the year 1900 is treated as a leap year and outlines the behaviors that  may occur if this specific issue is corrected.

MORE INFORMATION

When Lotus 1-2-3 was first released, the program assumed that the year 1900 was a  leap year even though it actually was not a leap year. This made it easier for the  program to handle leap years and caused no harm to almost all date calculations in Lotus 1-2-3.

When Microsoft Multiplan and Microsoft Excel were released, they also assumed that 1900 was a leap year. This allowed Microsoft Multiplan and Microsoft Excel to use the same serial date system used by Lotus 1-2-3 and provide greater compatibility with  Lotus 1-2-3. Treating 1900 as a leap year also made it easier for users to move worksheets from one program to the other.

Although it is technically possible to correct this behavior so that current versions of  Microsoft Excel do not assume that 1900 is a leap year, the disadvantages of doing so outweigh the advantages.

If this behavior were to be corrected many problems would arise, including the following:

Almost all dates in current Microsoft Excel worksheets and other documents would be decreased by one day. Correcting this shift could take considerable time and effort, especially in formulas that use dates.

Some functions, such as the WEEKDAY function, would return different values; this might cause formulas in worksheets to work incorrectly.

Correcting this behavior would break serial date compatibility between Microsoft Excel and other programs that use dates.

If the behavior remains uncorrected, only one problem occurs:

The WEEKDAY function returns incorrect values for dates before March 1, 1900. Because most users do not use dates before March 1, 1900, this problem is rare.

NOTE: Microsoft Excel correctly handles all other leap years, including century years that are not leap years (for example, 2100). Only the year 1900 is incorrectly handled.

The date system used by Microsoft Excel is based on the Gregorian calendar, first established in 1582 by Pope Gregory XIII. The Gregorian calendar was designed to correct the errors introduced by the less accurate Julian calendar.

In the Gregorian calendar, a normal year consists of 365 days. Because the actual length of a sidereal year (the time required for the Earth to revolve once about the Sun) is actually 365.25635 days, a "leap year" of 366 days is used once every four years to eliminate the error caused by three normal (but short) years. Any year that is evenly divisible by 4 is a leap year: for example, 1988, 1992, and 1996 are leap years.

However, there is still a small error that must be accounted for. To eliminate this error, the Gregorian calendar stipulates that a year that is evenly divisible by 100 (for example, 1900) is a leap year only if it is also evenly divisible by 400.

  For this reason, the following years ARE NOT leap years

     1700, 1800, 1900, 2100, 2200, 2300, 2500, 2600

  because they are evenly divisible by 100 but NOT by 400.

  The following years ARE leap years

     1600, 2000, 2400

  because they are evenly divisible by both 100 and 400.

Because earlier versions of Microsoft Excel handle only years from 1900 to 2078, only the year 1900 is subject to the 100/400 exclusion rule of leap years in Microsoft Excel.  However, in order to be compatible with other programs, Microsoft Excel treats the year 1900 as a leap year.

  NOTE: Microsoft Excel 97 and Microsoft Excel 98 Macintosh Edition handle years from
  1900 to 9999. Although Microsoft Excel 97 and Microsoft Excel 98 Macintosh Edition still
  treat the year 1900 as a leap year, all other non-leap years (2100, 2200, and so on)
  are handled correctly.



 

Many packages claim some kind of compatibility with others by allowing the "import" and/or "export" of data.

Please be aware:

Never "experiment" on your original data !

Some file formats can lead to unexplainable truncations after a certain number of characters in a field.

The .CSV format is a good choice for text (string) fields and numbers (and the date problem can be managed as we have shown above). To (re)use data it is recommended to prepare the table structure within your spreadsheet application to allow for painless "importing" into the receiving application (after deleting the unnecessary columns and put the rest into the required sequence/order).

Please keep in mind:  If an application offers "import" features then the fields in a table, their lengths and all their attributes should be known to you to assess the possibilities.

What we want to demonstrate here were the hurdles to overcome when dealing with DATE fields.

If you are concerned about the correct processing of DATE fields AND don't want to go through the procedures described above then we recommend to purchase the ODBC driver which allows for the correct interpretation of date fields.

But there are also some tasks involved too to get it right !  Please see our   ODBC Page  (and: we don't think it is less complicated). If you have very advanced requirements then you probably need the drivers anyway. They cost around US $ 50.-- and are available from the local distributors of  SoftVelocity - www.softvelocity.com - see their web site .


What other possibilities do we have to view our data and to perform an
"export" for further processing ?

You can download a zipped file from our website   ts.zip   and unzip it to:  c:\tbsc

This zipped file contains:

topscan.exe

You can use topscan.exe to view your data and also export it to a comma delimited .txt file for use with spreadsheets like MS-EXCEL for example.

Please read the help files first (and print them out) before you start working with these programs.

NEVER operate on your original data !

MEMO fields will also be exported for use in spreadsheet applications - but the "date" problems remains and needs to be addressed as described above.

To make this work all entries in a MEMO field - like NOTES etc. - should NOT contain any CRs (carriage returns); this is when you press the ENTER KEY. Just type in your text continuously etc. - it will automatically flow over to the next line in all our applications.

Example: allowed format:

The fat cat ate a fat rat and was very happy with the fat meal.

NOT allowed  ...

The fat cat ate                           then pressing    <---|       or the key labeled: Enter
a fat rat and was                       then pressing    <---|        or the key labeled: Enter
very happy with the fat meal

This messes up the spreadsheet after exporting !

In TOPSCAN you should give the file you are  exporting  to a different name (usually with the .txt extension); as delimiter select COMMA - also check the boxes  QUOTE STRING   and    CREATE TITLES

After opening the resulting text file with your spreadsheet application you still have to consider the DATE problem (which is not a problem if you follow our advice above).

After we have explained some of the implications related to "exporting" and the (re)use of data in other applications we can now go into the more practical areas   ...
 

If you want to printout labels then the following structure hints come handy.

FIELD 61 in our Address Book File  indicates the "address format" (see also the file structure at the end of this item).

You can choose to tick " B (for business)", "P (for private)"  or "O (for other)".

Depending on this selection you can print out labels in an appropriate style for your target group. We suggest for BUSINESS recipients the following structure :

Mailing Instruction              FIELD 58  [ DISPATCH_INSTRUCT ]
Name/Company                 FIELD 2    [ NAME_COMPANY ]
Salutation on Label             FIELD 60  [ SALUTAT_LABEL ]
Position held                       FIELD 48 [ POSITION ]
Postal Address                   FIELD 19  [ POSTAL_ADDRESS ]
Suburb                               FIELD 8    [ SUBURB ]
City                                    FIELD 9    [ CITY ]
Post Code / ZIP Code        FIELD 10  [ POSTCODE ]
State, District etc.               FIELD 11  [ STATE ]
Country                              FIELD 20  [ COUNTRY_NAME ]

For PRIVATE recipients :

Mailing Instruction               FIELD 58  [ DISPATCH_INSTRUCT ]
Salutation                            FIELD 56  [ SALUTATION ]
Title                                    FIELD 49  [ TITLE ]
First Name                          FIELD 5    [ FIRSTNAME ]
Middle Name Initials           FIELD 7    [ MIDDLENAME_INITIAL ]
Contact Name                    FIELD 4    [ CONTACTNAME ]
Postal Address                   FIELD 19  [ POSTAL_ADDRESS ]
Suburb                               FIELD 8    [ SUBURB ]
City                                    FIELD 9    [ CITY ]
Post code / ZIP Code         FIELD 10  [ POSTCODE ]
State, District etc.               FIELD 11  [ STATE ]
Country                              FIELD 20  [ COUNTRY_NAME ]

[ We have put in many efforts to provide you with enough well designed data entry fields. ]
 

You might want to open your Address Book File with a spreadsheet application and delete all unnecessary fields (columns) and then use the query facilities of your spreadsheet application to have only those records ready which you really want to print labels for (or perform a mail merge).

And then there is the FLAG field (field 55). You might have some special - but only temporary - selection criteria. Just set the flag to extract only those records you really want with your query tool  (your spreadsheet application in most cases) -  OR:  exclude "flagged" fields !
 

Appendix

Structure:  Address Book file  (addrbook.tps)

The number on the right of each field is the order/sequence of this field in the table, the character(s) right of the number are the equivalent columns in a spreadsheet application.
 

=File================================================================
  Label:             ADDRBOOK
  Prefix:            ADD
  Description:       Addressbook

  --Fields----------------------------------------------------------------------------
    --Field---------------------------------------------------------------------------    1        A
    Label:             ADDRESS_ID
    Description:       Field 1   -    Unique ID No.
    Type:              STRING(10)
    Display Picture:   @s10

    --Field---------------------------------------------------------------------------    2        B
    Label:             NAME_COMPANY
    Description:       Field 2   -   Last Name or Company
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    3        C
    Label:             CATEGORY_ID
    Description:       Field 3   -    (Business) Category
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    4        D
    Label:             CONTACTNAME
    Description:       Field 4   -   Contact Name (in Company)
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    5        E

    Label:             FIRSTNAME
    Description:       Field 5   -   First Name
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    6        F
    Label:             MIDDLENAME
    Description:       Field 6   -   Middle Name
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    7        G
    Label:             MIDDLENAME_INITIAL
    Description:       Field 7   -   Middle Name Initial
    Type:              STRING(2)
    Display Picture:   @s2

    --Field---------------------------------------------------------------------------    8        H
    Label:             SUBURB
    Description:       Field 8   -   Suburb (physical address)
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    9        I
    Label:             CITY
    Description:       Field 9   -   City
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    10        J
    Label:             POSTCODE
    Description:       Field 10   -   Postcode, ZIP Code
    Type:              STRING(10)
    Display Picture:   @s10

    --Field---------------------------------------------------------------------------    11        K
    Label:             STATE
    Description:       Field 11   -   State, District, Area etc
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    12        L
    Label:             DATEOFBIRTH
    Description:       Field 12   -   Date of Birth
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    13        M
    Label:             MARITALSTATUS
    Description:       Field 13   -   Marital Status
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    14        N
    Label:             GENDER
    Description:       Field 14   -   Gender
    Type:              STRING(1)
    Display Picture:   @s1

    --Field---------------------------------------------------------------------------    15        O
    Label:             PO_BOX
    Description:       Field 15   -   Post Office Box (PO Box)
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    16        P
    Label:             POB_LOCAT
    Description:       Field 16   -   PO Box Location (Suburb)
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    17        Q
    Label:             STREET
    Description:       Field 17   -   Street (physical address)
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    18        R
    Label:             STREET_NO
    Description:       Field 18   -   Street / House No.
    Type:              STRING(10)
    Display Picture:   @s10

    --Field---------------------------------------------------------------------------   19         S
    Label:             POSTAL_ADDRESS
    Description:       Field 19   -  ACTUAL Delivery Address
    Type:              STRING(80)
    Display Picture:   @s80

    --Field---------------------------------------------------------------------------    20        T
    Label:             COUNTRY_NAME
    Description:       Field 20   -   Country Name
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    21        U
    Label:             USERDEF01
    Description:       Field 21   -   User defined Text Field
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    22        V
    Label:             USERDEF02
    Description:       Field 22   -   User defined Text Field
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    23        W
    Label:             USERDEF03
    Description:       Field 23   -   User defined Text Field
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    24        X
    Label:             USERDEF04
    Description:       Field 24   -   User defined Text Field
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------   25         Y
    Label:             USERDEF05
    Description:       Field 25   -   User defined Date Field
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    26        Z
    Label:             USERDEF06
    Description:       Field 26   -   User defined Date Field
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    27        AA
    Label:             USERDEF07
    Description:       Field 27   -   User def. Numeric Field
    Type:              DECIMAL(10,4)
    Display Picture:   @n-13.4

    --Field---------------------------------------------------------------------------    28        AB
    Label:             USERDEF08
    Description:       Field 28   -   User def. Numeric Field
    Type:              DECIMAL(10,4)
    Display Picture:   @n-13.4

    --Field---------------------------------------------------------------------------    29        AC
    Label:             PHONE_BUSI
    Description:       Field 29   -   Phone No.  (Business)
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    30        AD
    Label:             PHONE_EXTENSION
    Description:       Field 30   -   Ph. Extension in Company
    Type:              STRING(10)
    Display Picture:   @s10

    --Field---------------------------------------------------------------------------    31        AE
    Label:             PHONE_HOME
    Description:       Field 31   -   Phone No. (Home)
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    32        AF
    Label:             PHONE_0800
    Description:       Field 32   -   0800 Service No.
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    33        AG
    Label:             PHONE_MOBILE
    Description:       Field 33   -   Mobile Phone No.
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------
34        AH
    Label:             FAX_BUSI
    Description:       Field 34   -   Fax No. (Business)
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    35        AI
    Label:             FAX_HOME
    Description:       Field 35   -   Fax No. (Home)
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    36        AJ
    Label:             EMAIL
    Description:       Field 36   -   E-Mail Address
    Type:              MEMO(1000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    37        AK
    Label:             EMERGENCY_CONTACT
    Description:       Field 37   -  Emergency Contact Name
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    38        AL
    Label:             EMERGENCY_PHONE
    Description:       Field 38   -   Emergency Phone No.
    Type:              STRING(15)
    Display Picture:   @s15

    --Field---------------------------------------------------------------------------    39        AM
    Label:             PARTNERNAME_LAST
    Description:       Field 39   -   Partner (Last Name)
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    40        AN
    Label:             PARTNERNAME_FIRST
    Description:       Field 40   -   Partner (First Name)
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    41        AO
    Label:             PARTNER_DATEOFBIRTH
    Description:       Field 41   -   Partner (Date of Birth)
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    42        AP
    Label:             CHILD01_LAST
    Description:       Field 42   -   Child 1 (Last Name)
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    43        AQ
    Label:             CHILD01_FIRST
    Description:       Field 43   -   Child 1 (First Name)
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    44        AR
    Label:             CHILD01_DATEOFBIRTH
    Description:       Field 1   -   Child 1 (Date of Birth)
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    45        AS
    Label:             CHILD02_LAST
    Description:       Field 45   -   Child 2 (Last Name)
    Type:              STRING(40)
    Display Picture:   @s40

    --Field---------------------------------------------------------------------------    46        AT
    Label:             CHILD02_FIRST
    Description:       Field 46   -   Child 2 (First Name)
    Type:              STRING(30)
    Display Picture:   @s30

    --Field---------------------------------------------------------------------------    47        AU
    Label:             CHILD02_DATEOFBIRTH
    Description:       Field 47   -   Child 2 (Date of Birth)
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    48        AV
    Label:             POSITION
    Description:       Field 48   -   Position held in Company
    Type:              STRING(60)
    Display Picture:   @s60

    --Field---------------------------------------------------------------------------    49        AW
    Label:             TITLE
    Description:       Field 49   -   (Professional) Title
    Type:              STRING(60)
    Display Picture:   @s60

    --Field---------------------------------------------------------------------------    50        AX
    Label:             DATE_ENTERED
    Description:       Field 50   -   Date when entered
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    51        AY
    Label:             DATE_UPDATED
    Description:       Field 51   -   Date when updated
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    52        AZ
    Label:             COMPLETE
    Description:       Field 52   -   Addr. COMPLETE indicator
    Type:              STRING(1)
    Display Picture:   @s1

    --Field---------------------------------------------------------------------------    53        BA
    Label:             FOLLOW_UP
    Description:       Field 52   -   Addr. FOLLOW-UP indicator
    Type:              STRING(1)
    Display Picture:   @s1

    --Field---------------------------------------------------------------------------    54        BB
    Label:             FOLLOW_UP_DATE
    Description:       Field 54   -   Addr. Follow-Up Date
    Type:              LONG
    Display Picture:   @d6

    --Field---------------------------------------------------------------------------    55        BC
    Label:             FLAG
    Description:       Field 55   -   Multiple Purpose Flag
    Type:              STRING(1)
    Display Picture:   @s1

    --Field---------------------------------------------------------------------------    56        BD
    Label:             SALUTATION
    Description:       Field 56   -   Salutation used
    Type:              STRING(60)
    Display Picture:   @s60

    --Field---------------------------------------------------------------------------    57        BE
    Label:             NETADDR_ID
    Description:       Field 57   -   related Internet Address
    Type:             MEMO(1000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    58        BF
    Label:            DISPATCH_INSTRUCT
    Description:       Field 58   -  Mailing/Delivery Instruct.
    Type:              STRING(60)
    Display Picture:   @s60

    --Field---------------------------------------------------------------------------    59        BG
    Label:             SALUT_LETTER
    Description:       Field 59   -  Salutation used in letters
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    60        BH
    Label:             SALUT_LABEL
    Description:       Field 60   -   Salutation used on Labels
    Type:              STRING(100)
    Display Picture:   @s100

    --Field---------------------------------------------------------------------------    61        BI
    Label:             ADDRESS_FORMAT
    Description:       Field 61   -   Addr. Format (Bus.,Priv.)
    Type:              STRING(1)
    Display Picture:   @s1

    --Field---------------------------------------------------------------------------    62        BJ
    Label:             OTHER_PHONE_NO
    Type:              MEMO(1000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    63        BK
    Label:             NOTE
    Type:              MEMO(10000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    64        BL
    Label:             PARTNER_INFO
    Type:              MEMO(10000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    65        BM
    Label:             CHILD01_INFO
    Type:              MEMO(10000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    66        BN
    Label:             CHILD02_INFO
    Type:              MEMO(10000)
    Display Picture:   @s255

    --Field---------------------------------------------------------------------------    67        BO
    Label:             EXE_PATH
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    68        BP
    Label:             MAIL_PATH
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    69        BQ
    Label:             INTERNETPHONE_PATH
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    70        BR
    Label:             PHOTO_PATH_01
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    71        BS
    Label:             PHOTO_PATH_02
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    72        BT
    Label:             MAP_PATH
    Type:              STRING(200)
    Display Picture:   @s200

    --Field---------------------------------------------------------------------------    73        BU
    Label:             VIEWER_PATH
    Type:              STRING(200)
    Display Picture:   @s200
 



 
TBSC  -   The Blue Software Company
 Home Page   Order Information   Partners / Employmt. 
 Products / Services   Freeware / Shareware   More ... 
 Download Products   Resources / Links 
 
Practical software, services and solutions for the small business
and the individual computer user - world wide !