Copyright: Copyright (c) 1997 Corel Corporation
Citation: Copyright (c) 1997 Corel Corporation


Welcome to Corel Paradox 8

Welcome to Corel Paradox 8, the most powerful and easy-to-use database program on the market. You can run Corel Paradox as a standalone system or as a multi-user system on a network. Whatever your database system needs are, Corel Paradox can handle them quickly and easily.

The power and flexibility of Corel Paradox enables you to create a database that organizes and tracks any and all important information within your organization. With a few clicks of the mouse, Corel Paradox provides you with the tools to effectively control the expanding volumes of data you work with daily. By organizing data into easily accessible, linked tables, you can streamline repetitive tasks, eliminate redundancy, and increase your personal and business productivity.

The many Corel Paradox Experts guide you of the way, and enable you to get started creating your database with little to no learning required.

With its Query By Example capabilities, you can gather information from mutliple tables without writing a single line of code. Once you located the desired information, you can creae professional, up-to-the-minute charts and reports. Do it yourself, or let the Experts guide you. Or, if you want to create SQL queries, you can use the Visual Query Builder to create SQL queries without writing a single line of code.

Power users and developers will use the Application Framework to create applications in seconds. As always, you can use ObjectPAL, the object-based, event-driven language, to customize your application.

For information on what's new in Corel Paradox 8, see What's new in Corel Paradox 8.


Corel Paradox license agreement

ATTENTION: THIS IS A LICENSE, NOT A SALE.  THIS PRODUCT IS PROVIDED UNDER THE FOLLOWING LICENSE WHICH DEFINES WHAT YOU MAY DO WITH THE PRODUCT AND CONTAINS LIMITATIONS ON WARRANTIES AND/OR REMEDIES.  THIS LICENSE IS GRANTED BY COREL CORPORATION LIMITED FOR PRODUCTS PURCHASED OUTSIDE OF CANADA AND BY COREL CORPORATION FOR PRODUCTS PURCHASED IN CANADA.

LICENSE

IMPORTANT:  CAREFULLY READ THIS LICENSE BEFORE USING THIS PRODUCT.  INSTALLING, COPYING, OR OTHERWISE USING THIS PRODUCT INDICATES YOUR ACKNOWLEDGMENT THAT YOU HAVE READ THIS LICENSE  AND AGREE TO ITS TERMS.  IF YOU DO NOT AGREE, RETURN THE COMPLETE PRODUCT TO COREL CUSTOMER SERVICE, 1600 CARLING AVENUE, OTTAWA, ONTARIO, CANADA, K1Z 8R7, WITHIN 10 DAYS OF THE DATE YOU ACQUIRED IT FOR A FULL REFUND.  THIS LICENSE AGREEMENT IS YOUR PROOF OF LICENSE.  PLEASE TREAT IT AS VALUABLE PROPERTY.

A. LICENSE:  COREL ("we" or "us") provides you with storage media containing a computer program (the "Program") which may also include Aonline@ or electronic documentation,  License (the "License"), and other  printed materials (together called the "Product") and grants you a license to use the Product in accordance with the terms of this License.  The copyright and all other rights to the Product shall remain with us or our suppliers.  You must reproduce any copyright or other notice marked on the Product on all copies you make.

B. YOU MAY:

1.	install and use one copy of the Product only on a single computer or network.  This copy is to be used by only a single user at a time  If you wish to use the Product for more users, you will need an additional license for each user.

2.	make one copy of the Product for archive or backup purposes.

3.	use a copy of the Product on a home or portable computer if that copy is never loaded at the same time it is loaded on your primary computer.

4.	transfer the Product to someone else only if you assign all of your rights under this License, cease all use of the Product, erase or destroy any copy (including the hard disk copy) made in support of your use of the Product, and ensure that the other person agrees to the terms of this License.

5.	if the Product is an upgrade from another product, whether from Corel or another supplier, you may use or transfer the Product only in conjunction with that upgraded product, unless you destroy the upgraded product.  If the product is an upgrade of a Corel product, you now may use that upgraded product only in accordance with this License.

C. YOU MAY NOT:

1.	use the Product or make copies of it except as permitted in this License.

2.	translate, reverse engineer, decompile, or disassemble the Product except to the extent the foregoing restriction is expressly prohibited by applicable law.

3.	rent, lease, assign, or transfer the Product except as set out in paragraph B above.

4.	modify the Product or merge all or any part of the Product with another program.

5.	create scandalous, obscene or immoral works using the clipart and photo images (collectively referred to as the AImages@).

6.	redistribute, sell or publish the Images, sound files or fonts included with the Product as stock photography, clipart, sound files or fonts.

7.	use any of the Images related to identifiable individuals or entities in a manner which suggests their association with or endorsement of any product or service.

8.	use the Images in electronic format unless all of the following are met:

i)	the Images are embedded at no higher than a base resolution of 512 X 768;

ii)	the Images are incorporated for viewing purposes only;

iii)	a Corel credit is included in the proposed use;

iv)	the Images do not represent a significant portion of the content of the proposed use; and

v)	the proposed use is not a product which is similar to or competes with any of the features of any Corel product;

9.	use or distribute the Images on-line or in multimedia applications unless all of the following are met:

i)	 the Images are at a base resolution no higher than 512 X  768;

ii)	 a Corel credit is included in the proposed use;

iii)	 the Images do not represent a significant portion of the content of the proposed use;

iv)	 the proposed use is not a product which is similar to or competes with any of the features of any Corel product; and

v)	 a notice is included in the proposed use specifying that the Images may not be saved or downloaded and are only be used for viewing purposes.

D. TERM:  This License shall continue for as long as you use the Product.  We shall have the right to terminate your rights to use the Product without any obligation or liability to you whatsoever in the event that you fail to comply with any of the terms or conditions of this License or if you infringe our rights or the rights of any of our suppliers (whether intellectual property, confidentiality or other rights) to the Product or technology, or if you cause us to breach any of our obligations to our suppliers.   You must agree, upon termination, to destroy all copies of the Product.  The Limitations of Warranties and Liability set out below shall continue in force even after any termination.

E. WARRANTY: WE WARRANT THAT THE STORAGE MEDIA IN THIS PRODUCT WILL BE FREE FROM DEFECT IN MATERIALS AND WORKMANSHIP FOR 90 DAYS FROM THE DATE YOU ACQUIRE IT.  IF SUCH A DEFECT OCCURS, RETURN THE MEDIA TO US AT, COREL CUSTOMER SERVICE, 1600 CARLING AVENUE, OTTAWA, ONTARIO, CANADA, K1Z 8R7,  AND WE WILL REPLACE IT FREE OF CHARGE.  THIS REMEDY IS YOUR EXCLUSIVE REMEDY FOR BREACH OF THIS WARRANTY.  IT GIVES YOU CERTAIN RIGHTS AND YOU MAY HAVE OTHER LEGISLATED RIGHTS WHICH MAY VARY FROM JURISDICTION TO JURISDICTION.

F. LIMITATION OF WARRANTIES AND LIABILITY: EXCEPT FOR THE EXPRESS WARRANTY ABOVE, THE PRODUCT IS PROVIDED ON AN AAS IS@ BASIS, WITHOUT ANY OTHER WARRANTIES OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABLE QUALITY, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR THOSE ARISING BY LAW, STATUTE, USAGE OF TRADE, OR COURSE OF DEALING.  THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE PRODUCT IS ASSUMED BY YOU.  NEITHER WE NOR OUR DEALERS OR SUPPLIERS SHALL HAVE ANY LIABILITY TO YOU OR ANY OTHER PERSON OR ENTITY FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES WHATSOEVER, IRRESPECTIVE OF THE CAUSE OF ACTION FROM WHICH THEY MAY ARISE, INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUE OR PROFIT, LOST OR DAMAGED DATA OR OTHER COMMERCIAL OR ECONOMIC LOSS, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR THEY ARE FORESEEABLE.  WE ARE ALSO NOT RESPONSIBLE FOR CLAIMS BY A THIRD PARTY.  OUR MAXIMUM AGGREGATE LIABILITY TO YOU AND THAT OF OUR DEALERS AND SUPPLIERS SHALL NOT EXCEED THE AMOUNT PAID BY YOU FOR THE PRODUCT.  THE LIMITATIONS IN THIS SECTION SHALL APPLY WHETHER OR NOT THE ALLEGED BREACH OR DEFAULT IS A BREACH OF A FUNDAMENTAL CONDITION OR TERM OR A FUNDAMENTAL BREACH.  SOME STATES/COUNTRIES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

G. RESTRICTED RIGHTS:  If this Product is acquired by or for the U.S. Government, then it is provided with Restricted Rights.  Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013, or  subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, or clause 18-52.227-86(d) of the NASA Supplement to the FAR, as applicable.

The contractor/manufacturer is Corel Corporation Limited, Europa House, 3rd Floor, Harcourt Street, Dublin 2, Ireland.

H. GENERAL:  This License is the entire agreement between us, superseding any other agreement or discussions, oral or written, and may not be changed except by a signed agreement. This License shall be governed by and construed in accordance with the laws of the Province of Ontario, Canada for product purchased in Canada and by the laws of the Republic of Ireland for product purchased outside of Canada. If any provision of this License is declared by a Court of competent jurisdiction to be invalid, illegal, or unenforceable, such a provision shall be severed from the License and the other provisions shall remain in full force and effect. The parties have requested that this Agreement and all documents contemplated hereby be drawn up in English.  Les parties aux prJsentes ont exigJ que cette entente et tous autres documents envisagJs par les prJsentes soient rJdigJs en anglais.


Corel Paradox copyright information

Copyright8 1997 COREL CORPORATION and COREL CORPORATION LIMITED. All rights reserved.

Corel Paradox - Version 8.0

This Corel Paradox software is the property of COREL CORPORATION and COREL CORPORATION LIMITED and their licensors and is copyrighted.  Any reproduction in whole or in part is strictly prohibited.

Corel and Paradox are trademarks or registered trademarks of Corel Corporation or Corel Corporation Limited.

Corel Paradox is an adaptation of Borland SQL Builder from Borland International Inc.  Borland SQL Builder:8 1997 Borland International Inc. All rights reserved.

Copyright8 1985, 1996 by Borland International, Inc. Portions copyright8 1997 by Corel Corporation Limited.  ll rights reserved.  Distributed by Corel Corporation and Corel Corporation Limited under license.

Borland may have patents and/or pending patent applications covering subject matter in this document. The furnishing of this document  does not give you any license to these patents.

Envoy8 Novell, Inc. 1994.  Envoy is a trademark of Novell, Inc.

All Avery product code numbers are trademarks of the Avery Dennison Corporation.

Copyright8 1997 Frogware Inc. All rights reserved.

Paradox Experts developed for Corel by Kallista Inc.

All other brand and product names are trademarks or registered trademarks of their respective companies.

Not all of the above-referenced components are included in all versions of the software.


Year 2000 date information

About the Year 2000

Corel Paradox stores its numeric format dates as four-digit numbers. Its lower date limit is 9999 BC and its upper date limit is 9999 AD. (All BC years are treated as leap years).

Two digit year numeric format entry and storage:

Corel Paradox provides two digit shortcuts when entering the year. Prior to Corel Paradox 8, if you entered a two digit date, Corel Paradox assumed you were entering dates for the same century as the system date. If the system date was 19xx, for example, and you entered 00-99 for the year, the date was assumed to be 1900-1999. You could override the century assumption by entering 4 digits for the year, for example 4/26/2047.

Corel Paradox 8 allows you to enter both 19xx and 20xx dates using two digit shortcuts. Corel Paradox 8 will automatically append "20" to any two-digit date entered as 00-50 (ex: 4/26/47 will be stored as 4/26/2047). It will append "19" to any date entered as 51-99 (i.e., 10/24/97 is stored as 10/24/1997). You can permanently override this 2 digit century assumption by entering all four digits for the year.

Reediting two-digit numeric format entry dates:

If you have entered a date using a 2-digit numeric format and then decide to reenter the last two digits either in the same session or after exiting and reopening the table, Corel Paradox 8 will NOT keep the century designation as originally entered. It will append the century according to the numeric format entry rule above. (i.e.: 00-50 is 2000 through 2050 and  51-99 is 1951 through 1999). For example, if you enter 12/18/97 (12/18/1997) and then change the last two digits to 47, the date will now be assumed to be 12/18/2047. Entering all four digits will permanently override these assumptions.

Two digit year text format entry and storage:

·	If you have entered a two digit date into an alpha (i.e. text) field, and then restructure the table so that the alpha field is changed to a date field, Corel Paradox 8 will automatically append "19". You can permanently override this assumption by entering all four digits for the year.

·	If you copy two digit text from an application like NotePad or from an Alpha field in any version of Paradox and paste it into a date field in Corel Paradox 8, then the text will be reformatted into numeric date format and will follow the numeric format rules above. Therefore, 00-50 will be treated as 2000 to 2050, and 51-99 will be considered 1951-1999. Again, if you want to permanently override these century assumptions, you just need to enter all four digits for the year.

Setting the date default to display four digits in Corel Paradox 8:

All dates can be set to a four-digit year display by default in Corel Paradox 8. In your Windows control panel, click Settings, Control Panel, Regional Settings. On the Date tab, set the preferred Short date style to M/D/YYYY. Click the Apply button and exit Settings. All dates will display as four digits by default.

Date functions:

Any two digit dates entered and edited in date functions append the century according to the numeric format entry rule above. (i.e., 00-50 is 2000 through 2050, and 51-99 is 1951 through 1999). Entering all four digits will override these assumptions.

Exchanging date information between Corel Paradox 7 and Paradox 8:

Opening or importing files:

Any Corel Paradox 7 files which contain dates can be opened or imported into Corel Paradox 8 and the original century implied will stick. Further, Corel Paradox 8 files which contain dates remain compatible (original century implied will stick) when they are opened in Corel Paradox 7.

Copying/pasting individual dates:

If you are copy/pasting individual dates (whether originally entered as two digits or four digits) from one version of Paradox to another and you want to have the original century assumed stick to the date, you must be sure to have set the Windows default display to four digits for the application sending the data.

Otherwise, if the default Windows date display format is set to 2 digits, the two digit century assumptions are made based on the rules for the version of Paradox receiving the information. For example, in Corel Paradox 7, the assumed century would be appended based on the current system date. If the receiving application is Corel Paradox 8, the assumed century is appended based on the 00-50 and 51-99 rule.

Tips

·	Both Corel Paradox 7 and Corel Paradox 8 offer an easy way to for you to tell what century is assumed when you have chosen a two digit Windows default display format.

·	If your system date is set to 19xx, only current century (or 19xx) dates will be displayed with 2 digits. 20xx and other century dates will be displayed with 4 digits. (ie: 12/30/1988 will be displayed as 12/30/88. 12/30/2001 will be displayed as 12/30/2001.)

·	With a 20xx system date only 20xx dates will be displayed with 2 digits. 19xx dates and all other century dates will be displayed with 4 digits.

Corel's Year 2000 Web site:

Corel Corporation has a Year 2000 policy Web site. For the latest information, feel free to visit the site at http://www.corel.com/2000.htm.


Topic text is white to show up on blue window background.


Corel Paradox 8 includes many powerful features to improve productivity for database developers and power users.


Corel Paradox 8 includes Borland Database Engine 4.0, which lends improved performance and optimizes SQL queries.


The IDE, which includes the Editor window and the Debugger and its accessories,.has been enhanced by an improved Object Explorer. The new Object Explorer makes all your objects easily accessible with its two-paned design and new Appearance tab.


Corel Paradox 8 has extended support for Delphi add-in DLLs.


Creating SQL queries is easier than ever with the new Visual Query Builder, a graphical query editor that builds even the most complex queries with a few clicks of the mouse.


Connecting your data to the Internet has never been easier with Corel Paradox’s complete set of Internet tools.


Corel Paradox introduces two new HTML Publishing Experts which translate your Paradox tables and reports to HTML with a few simple steps.


Transferring data from HTML documents to Corel Paradox tables is completely automated by the HTML Import Expert.


Corel Paradox supports hyperlinks to the Internet both as data in forms and tables and as static text design objects.


Corel Paradox 8 includes two fully functional Web servers, one of which is a fully programmable ActiveX control.


Both new and advanced users will appreciate the usability and interface improvements in Corel Paradox 8.


A revolutionary new technology, the PerfectExpert comes with many task-oriented projects to help you quickly learn and use Corel Paradox.


Corel Paradox 8 includes more Experts to automate common Paradox tasks. New Experts include the Crosstab Expert, Documentation Expert, HTML Import Expert, Search and Replace Expert and Utilities Expert.


The Project Viewer has been revamped to improve usability and accomodate several exciting new features. You can take advantage of new development technology included in Corel Paradox 8 to create a complete application right from the Project Viewer.


The Corel Paradox user interface has been completely integrated with the WordPerfect Suite 8 standard, including flat-look buttons and toolbars, consistent menus, and the all-new Application Bar. The New File dialog box allows you to create and work on documents from all suite applications. Interaction with other suite applications, such as Corel WordPerfect 8 and Corel Quattro Pro 8, is seamless.


See for yourself what Corel Paradox is capable of producing. This complete application was created with new technology that combines a collection of Paradox development tools. It includes a splash screen, custom menus, and its own Help file.


Introduction to Paradox
Introduction to database systems

Corel Paradox is a full-featured relational database management system that you can use either as a standalone system on a single computer or as a multi-user system on a network. Corel Paradox lets you control the expanding volumes of data you work with daily and can manage your data at whatever level you need:

First-time database users want to be able to create a table quickly and easily, enter data in the table, retrieve data, and generate a report. These essential tasks never lose their importance, but as your needs expand, the power of your database system must expand with them.

Corel Paradox's many Experts can help you automate lots of beginning and advanced database tasks.

·	It is important to be able to break data into small, easily managed tables. It is then important to be able to link tables easily so you can query data across several tables and create multi-table forms and reports. Corel Paradox gives you the power to do this simply and quickly.

·	The more you work with a system, the more you will want to customize it. At first, you may just want to enhance a report's visual appeal, or create customized forms for ease of data entry. Later, you may want to perform some tasks automatically or tie several tasks together.

·	Corel Paradox's rich set of design features can give you the exact look you want for your forms and reports. You can draw from the data in many tables, and add summary and calculated fields to make conclusions about the data. You can include charts and crosstabs of your data to inform with visual impact. Then you can add ObjectPAL code to objects on forms to create any function you need. You can even create buttons that you click to execute commands you define.

The ultimate power Corel Paradox gives you is the ability to create your own database applications. You can use ObjectPAL to create a whole database application, define its menus, organize and structure the tables it uses, define the functions you want, and deliver the whole application. Once an application has been delivered, any ObjectPAL code is hidden from the user, so the customization of Corel Paradox is complete.

For information on these and other tasks, click the Index or Contents button of this Help window and browse or search for the subject you are interested in. For more information about relational databases, see What is a relational database?

 Related Topics


What is a relational database?

A database is an organized collection of information or data. An address book is a simple example of a database. It organizes data about people into specific categories: names, phone numbers, and addresses.

In a relational database like Corel Paradox, data is organized into tables. Tables contain categories of data, repeated for each item in the table. For example, if you structure an address book as a table, you might put names in one column, addresses in another, phone numbers in another, and so on. For each person in the address book (each item in the table), you enter the same categories of data (name, address, phone number).

Suppose you also have a birthday book that contains the birthdays of all your family and friends, along with their clothing sizes and favorite colors. You could store the information from this book in a table too. Just as you have two books, you'd have two tables.

Flat-file databases

Some database systems look at only one table at a time. These are called flat-file systems. When you use this kind of system, the terms table and database mean the same thing. Using the example of your address book and birthday book, you could see either your friends' names and addresses in one table, or your friends' names, birthdays and preferences in another. You would not be able to combine selected information from both tables.

Relational databases

In a relational database like Corel Paradox, you can extract specific information from each table and assemble it in a meaningful way. For example, suppose you want to see a list that includes just each friend's name, phone number, and birthday. Using Corel Paradox, you can link the address and birthday tables by identifying a common field ("Name"). Then you are free to combine the kinds of information you want to see from both tables. For example, you could query the database and create an Answer table listing the name, birthday and phone number of each person. You can then save the query so that you can generate an up-to-date list any time. Corel Paradox keeps the tables separate, but understands there is a relationship between them. In a relational database like Corel Paradox, the term database refers to all of your tables and all of their relationships.

Using common fields to relate tables prevents data duplication and makes data easier to maintain, because an update in a single field can update information in many tables.

Relational systems may involve four types of table-to-table relationships:

·	one-to-one

·	one-to-many

·	many-to-one

·	many-to-many

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.

 Related Topics


One-to-one relationship

In a one-to-one relationship, a unique field in a table is linked to a unique field in another table. There is a direct relationship between the tables in which there is only one record in either table for the unique value.


 One-to-many relationship

In a one-to-many relationship, a unique value in the linked field of a master table is linked to a non-unique field in a detail table. For example, a single customer may have many orders for products.


Many-to-one relationship

In a many-to-one relationship, a master table of several non-unique records is linked to a detail table that contains only unique values. For example,  if you link a table that contains customer information with a table that contains information such as telephone numbers and area codes. In this case, there are many customers per area code, but each customer name is unique.


Many-to-many relationship

The link between tables is not unique; many master records relate to many detail records. These relationships lead to ineffective record matching and Corel Paradox does not work with them. Corel Paradox accommodates only one-to-one, one-to-many, and many-to-one relationships for display and reporting purposes.


Understanding data normalization

Data normalization is the arrangement of data into separate tables in which each table contains the fewest number of fields necessary to establish unique categories. Rather than using on large, complex table that contains numerous fields, normalized tables distribute information over many tables using fewer fields.

In a completely normalized database (the ultimate goal for any database), the only fields that are duplicated across your database are those that link tables. Normalized tables provide more flexibility in terms of analysis and are the key to creating an efficient database.

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.


Understanding referential integrity

Referential integrity ensures that the links between like data in separate tables cannot be broken. This means that Corel Paradox checks the validity of a values before accepting it. For example, if you establish referential integrity between your Customer and Orders tables on their Customer No. fields, and then enter a value in the Customer No. field of the Orders table, Corel Paradox searches the Customer table and accepts or rejects the value depending on whether it is an existing customer number. When you create your tables, you will want to establish referential integrity among your tables.

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.


About keys and indexes
Understanding keys and indexes

When you create your database tables, one thing you must determine and then define, is the table's primary or composite key. A primary key determines the sort order for the table, and helps prevent the duplication of records within your database because it does not allow you to enter duplicate data. For example, in a table containing customer information, you could define the Customer Name field as the primary key to sort the records alphabetically, by name. The primary key must be the first field in the table.

A composite key is the same as a primary key except that it is composed of a group of initial table fields rather than a single field. Corel Paradox sorts the table by the key, starting with the first field in the key and then sorting according to subsequent fields. Composite keys allow duplicate values within an individual key field as long as values are not duplicated across all fields. For example, if you defined the customer name and customer phone number fields as the composite key, you could enter two customers who have the same name, as it is possible in a large list of customers for two different customers to have the same name. By also keying the phone number field, you will prevent users from entering the same customer twice.

When you establish a key, Corel Paradox creates one or more files that contain an index of the field's values and their locations. This is why the primary key is also referred to as the primary index. While you, the user, never see this index, Corel Paradox refers to the index file when locating and displaying the records in a table.

Corel Paradox allows you to establish both primary and secondary indexes in any table.

The relationship between indexes and links between tables

You link tables by defining a relationship between the fields of two tables. These fields must meet certain requirements. The most important requirement is that one or both of these fields have indexes (primary or secondary).

Both Corel Paradox and dBASE let you create indexes to specify the order in which records are accessed. However, the way indexes work is different for Corel Paradox and dBASE tables.

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.

 Related Topics


Understanding validity checks

Validity checks are rules you impose on different fields in your tables that require the data entered to meet certain criteria before Corel Paradox will accept is as a valid entry Validity checks help minimize data entry errors. Corel Paradox allows you to impose many types of validity checks on a table's fields. For example, you can specify maximum or minimum values for number fields, specify a default value for a field, or require that users enter a value in a given field before moving on to the next record. Implementing a few key validity checks in your database can increase productivity by decreasing the time it takes users to enter information (with appropriate default values) and greatly reduce the confusion caused by data entry errors.

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.


Understanding links

In order to create an efficient, easy-to-maintain database, you need to create tables that can be linked together. The most common way of linking tables is through common fields. For example, in order to be able to link a customer information table with a customer orders table, you may decide to include a Customer No. field in both tables.

In order for Corel Paradox to identify fields in two tables as identical, the following conditions must apply:

·	The fields must have the same name, including capitalization.

·	The fields must have the same field size.

·	The fields must have the same field type.

·	One of the fields must be a primary key in one of the tables.

When you meet these conditions, Corel Paradox recognizes these fields as containing the same data. Then, whenever you update the information in one table, Corel Paradox will update the information in all other tables containing that field, ensuring that data integrity is maintained across your database.

Linking your tables using common fields allows you to harness the power and flexibility of Corel Paradox so that you can update, view, query, and create reports with ease.

If you are new to databases, you will find in it useful to read through the Mast company case study which illustrates how one company created its database.


Keys

A Corel Paradox table can have more than one index defined, but the most commonly defined index is the primary index. The primary index is called the key. A table that has a key defined is said to be a keyed table.

When you create a key, Corel Paradox enforces rules about the data that can be contained in the keyed field(s).

·	Each value in the field must be unique. This ensures you do not have duplicate records in the table. You can leave only one record in the key field blank, because Corel Paradox considers subsequent blank fields to be duplicates and does not accept records containing them.

·	The key establishes the default sort order for the table. Corel Paradox sorts the table's records based on the values in the field(s) you define as the table's key.

If you define a key on a table that already contains data, Corel Paradox moves the records of the table into the correct sort order. The physical location of records is determined by sorting the values of the keyed field(s) in an ascending order (A to Z and 0 to 9). New records you add are moved to their correct position in the sorted table.

For example, if you create a key on the Last Name field of the sample Contacts table, you are telling Corel Paradox to organize the table by the values in the Last Name field, as shown in the following figure.

If you prefer to organize the table by first names, you can make First Name the key. Corel Paradox then displays the records according to the value in that field, as shown in the following figure.

If you use more than one field in a key, the index is called a composite key.

For more information, see About keys and indexes in tables.

 Related Topics


Composite keys

You can create a key on a single field or group of fields. When you specify a group of fields as a table's key, the group is called a composite key.

Corel Paradox allows duplicate values in individual fields of a composite key, as long as values are not duplicated across all fields of the key. The fields of the key, taken as a whole, must identify each record as unique.

For example, a customer information table may have several entries with the last name Lombardi. Likewise, it may have many entries with the first name Ron. Neither of these fields (Last Name or First Name) is enough to identify a record as unique. But the combination of them may be. (There may be only one Ron Lombardi.) So the key for the table could be a composite of Last Name and First Name.

Of course, even this may not be enough. It is entirely possible to have duplicate first and last names in the table (like several entries for John Smith). It may be a good idea to include another field of the table in the composite key. You must always include enough fields in a composite key to ensure the uniqueness of each record of the table. If you cannot reasonably expect a composite key to handle all cases of duplicate data, it is a good idea to define an identification field that identifies one and only one record of the table. For example, you may want to include a Customer No field in a customer information table, where each customer is assigned a unique number.

When you create a composite key, Corel Paradox creates a primary composite index, which organizes the records by the first field of the key (according to the table's structure), then the next field, and so on. The following figure shows the Contacts table with a composite key made up of the Last Name and First Name fields. Note that records 31 and 32 also illustrate the composite key by sorting the records alphabetically by first name.

For more information, see About keys and indexes in tables.

 Related Topics


About the MAST company example

By default, Corel Paradox includes a set of sample files, stored in the SAMPLE directory, under the main Corel Paradox directory. These files manage information for the fictitious Marine Adventures & Sunken Treasures (MAST) company. MAST sells diving equipment and arranges diving expeditions. Like most companies, MAST tracks information about customers, orders, inventory stock, and vendors. The company also tracks information about marine life.

MAST's customers are dive shops around the world. MAST sells supplies to these shops. This section of topics describes how MAST grew as a company and how Corel Paradox filled MAST's information management needs at each stage of development. The purpose of this section is to give you an overview of the kinds of solutions Corel Paradox can provide.

It describes six stages of the MAST company's growth:

 Stage 1: a single table

 Stage 2: the need for a key

 Stage 3: organizing smaller tables

 Stage 4: creating multi-table documents

 Stage 5: creating and saving queries

 Stage 6: creating a report from a query

 Related Topics


Stage one: a single table
Stage 1: a single table

Bill Budd founded MAST knowing that how he managed company information could mean the difference between success and failure. He needed a powerful database program for his personal computer, but did not want to invest a lot of time and money in learning a complex product. So, he bought Corel Paradox, and found all the power he needed in an easy-to-learn Windows application.

The first table Bill created was all he thought he needed. He listed all the information he wanted to track, and created a table with a structure that looked like this:

Field name	Field type	Field size	Explanation
Customer	A	30	Name of dive shop
Address	A	50	Customer's address
Phone	A	15	Customer's phone number
Item	A	50	Item ordered
Qty	N		Quantity ordered
Price	$		Price of item
Date	D		Date of order
Delivery	D		Promised delivery date
Terms	A	6	Terms of payment
Part No	A	15	Vendor's part number
List Price	$		Vendor's price
Vendor	A	30	Vendor's company name
V Address	A	50	Vendor's address
V Phone	A	15	Vendor's phone number
Bill understood that different types of data should be defined as different field types, and he kept field sizes to a minimum to conserve disk space.

When a customer placed an order, Bill filled in the fields of the table, took the item from stock, shipped it, and ordered a replacement from the vendor. It all seemed to work pretty well.

At the end of each month, Bill performed a query on the table, and got an Answer table listing the orders placed during the month. He then created a report based on the Answer table to bill each customer.

But it soon became apparent that there were some problems with this system, and the MAST company moved to stage 2 and created a composite key to sort records and prevent duplicate entries.

 Related Topics


Stage two: the need for a key
Stage 2: the need for a key

Bill started getting phone calls from angry customers. A dive shop in Florida had received three separate bills for the three items they had placed on the same order. Another shop got a bill late because it had been sent to the wrong address. A customer in Hawaii got billed twice for the same order.

When Bill began to get regular complaints, he realized it was due to inefficient information management. So, he created a key for the table.

A key ensures that each record of the table is unique, so customers could never be billed twice for the same item. Since no one field of his table was unique, Bill created a composite key. A composite key combines the values in two or more fields for the key's identification.

Bill decided that no two records would ever have the same combination of Customer, Item, and Date values. The combination of these values (the composite key) would have to be unique for each record. This made sense. How many times would a customer ever place more than one order for the same thing on the same day?

Bill also created a smarter report. He created a group band that grouped the records according to Customer. Using this design, even if a customer placed more than one order during the month, they received only one bill, listing each item.

So two of the problems with MAST's information management system were solved [image] a customer would never receive two bills for the same order, or separate bills for individual items on the same order.

To solve the problem of an incorrect address, Bill needed a way to make sure the values he entered were accurate every time. It was time for MAST to move to stage 3 and organize the data into smaller tables.

 Related Topics


Stage three: organizing smaller tables
Stage 3: organizing smaller tables

Bill realized that each time he entered information in the table, he risked making a mistake. He was entering the same information over and over again. A customer who placed 20 orders had been entered in the table 20 times. That meant 20 chances for error in the customer's name, address, or phone number. After reading the Corel Paradox User's Guide, Bill realized he could work with his data more easily and maintain its integrity if he divided the original table into several smaller ones. When necessary, he could link them together.

This time Bill did some planning before he structured his tables. As he planned his tables, he realized that

·	Each table should contain an obvious field to use as a key.

·	To link tables, he'd need to duplicate some fields (and data) between his tables, but he should duplicate only the fields (and data) needed to link the tables.

·	Fields that are duplicated between tables should use referential integrity to make sure their values match in all tables.

·	A table must have a key or secondary index defined on the linking field before it can be linked to another table.

When finished planning, Bill created six tables to manage the data of his original table. These tables are some of the sample files included with Corel Paradox:

 The Customer table

 The Orders table

 The Lineitem table

 The Stock table

 The Vendors table

 The Contacts table

As Bill completed these tables, the MAST company continued to grow and moved into stage 4

 Related Topics


The Customer table

When planning the Customer table, Bill split the information about a customer's address into separate fields. This let him perform queries about specific states or countries. Bill learned that it is easier to work with small pieces of information separately than with large pieces of information. The Customer table looked like this:

Field name	Type	Size	Linking	Explanation
Customer No	N		K*	Unique customer number
Name	A	30		Name of dive shop
Street	A	30		Street address
City	A	15		Customer's city
State/Prov	A	20		State or province
Zip/Postal Code	A	10		Zip code or postal route
Country	A	20		Customer's country
Phone	A	15		Customer's phone number
First Contact	D			Date of first contact with customer
*	K = Key

Next, Bill completed the Orders table.

 Related Topics


The Orders table

When he created the Orders table, Bill knew he would need to link it to the Customer table. He had to associate an order with a customer somehow. So, he duplicated the key from Customer (Customer No) in Orders, then defined a secondary index on it. This meant the two tables could be sorted in the same order, and that would allow them to be linked.

When he did this, Bill realized that the value he entered as a Customer No in Orders had to match a record in Customer; otherwise, the new Orders record was meaningless [image] it would have no customer associated with it. So, he defined referential integrity on the Customer No field; this made Corel Paradox check to find a valid customer before accepting a new order.

Bill also wanted to keep his order information separate from the item(s) being ordered. So, he included only information about the order itself in the Orders table. It looked like this:

Field name	Type	Size	Linking	Explanation
Order No	N		K*	Unique order number
Customer No	N		S**, R***	Secondary index and referential integrity to Customer No in Customer
Sale Date	D			Date of order
Ship Date	D			Date to be shipped
Ship VIA	A	7		Cargo carrier used
Total Invoice	$			Cost of total order
Amount Paid	$			Amount paid so far
Balance Due	$			Due after partial payment
Terms	A	6		Terms of payment
Payment Method	A	7		Cash, charge, etc.
Month	A	3		Month order was placed
*	K = Key

**	S = Secondary index

***	R = Referential integrity

Next, Bill completed the Lineitem Table.

 Related Topics


The Lineitem table

Bill wanted his customers to be able to order as many items at a time as they wanted. To do this, he created a separate table, called Lineitem, for the items being ordered.

The key of Lineitem is a composite of the Order No and Stock No fields; these fields also have secondary indexes, allowing Bill to sort the data by their values if he wanted to. This lets Lineitem link to Orders (using Order No) and to Stock (using Stock No). To protect the integrity of the Lineitem information, Bill defined referential integrity to the tables he planned to link to. Lineitem looked like this:

Field name	Type	Size	Linking	Explanation
Order No	N		C*, S**, R***	Unique order number
Stock No	N		C, S, R	Unique stock ID number
Selling Price	$			Price charged to customer
Qty	N			Number of items ordered
Total	$			Total of Selling Price * Qty
*	C = Composite key. In this case, the composite key is the combination of Order No. and Stock No.

**	S = Secondary index

***	R= Referential integrity

Next, Bill completed the Stock Table.

 Related Topics


The Stock table

Bill also wanted a clear understanding of his stock on hand, so he could order products more efficiently. To do this, he created Stock so it could be linked to Lineitem and Vendors.

Stock No is the key for this table. Because Stock No is a secondary index in Lineitem, the two tables can be linked. Vendor No is the primary key of Vendors, so it had to be a secondary index in Stock, and needed referential integrity to check against values in Vendor No in Vendors. The Stock table looked like this:

Field name	Type	Size	Linking	Explanation
Stock No	N		K*	Unique stock number
Vendor No	N		S**, R***	Secondary index and referential integrity to Vendor No in Vendors table
Equipment Class	A	30		Category of stock
Model	A	20		Vendor's model name
Part No	A	15		Vendor's part number
Description	A	30		Quick description of item
Catalog Description	F	10		Full catalog description of item
Qty	N			Quantity in stock
List Price	$			Vendor's list price
*	K = Key

**	S = Secondary index

***	R = Referential integrity

Next, Bill completed the Vendors Table.

 Related Topics


The Vendors table

Next, Bill created a table for his vendors. Here, as in Customer, he remembered to divide addresses across fields. Vendors looked like this:

Field name	Type	Size	Linking	Explanation
Vendor No	N		K*	Unique vendor ID number
Vendor Name	A	30		Company name
Street	A	30		Street address
City	A	20		Vendor's city
State/Prov	A	20		State or province
Country	A	15		Vendor's country
Zip/Postal Rt	A	10		Zip code or postal route
Phone	A	15		Phone number
FAX	A	15		FAX number
Preferred	L			Indicate preferred status
*	K = Key

Using this system, Bill knew that a customer's information was entered only once, and then referred to by other tables. Likewise, order, item, stock, and vendor information was entered only once. The chance for errors was substantially reduced.

When all the tables were created, Bill used INSERT queries to move his existing data into the new structures. He knew he would probably never have to link all the tables, only a few at a time, but he wanted to see what his company's data model looked like with all the changes he had made. He quickly linked the tables, and saw the data model shown in the following figure.

Finally, Bill completed the Contacts Table.

 Related Topics


The Contacts table

Finally, Bill needed a way to keep track of who to reach at each customer site. So, he created a Contacts table and filled it with the name and telephone number of the person he talked to the most often at each site. Contacts looked like this:

Field name	Type	Size	Linking	Explanation
Last Name	A	10		Contact's last name
First Name	A	20		Contact's first name
Company	A	30		Contact's company name
Phone	A	15		Contact's direct phone
With Contacts, Bill was able to keep track of information that did not need to fit into his data model. He kept its information separate and was able to protect the privacy of his contacts and their direct phone numbers.

The MAST company continued to grow and moved into stage 4, creating multi-table documents.

 Related Topics


Stage four: creating multi-table documents
Stage 4: creating multi-table documents

MAST was really taking off, and Corel Paradox supported its growing information management needs. Bill needed some powerful data entry forms and reports to maximize his data model.

A data entry form

To enter new orders, Bill created a form linking Customer, Orders, and Lineitem. Corel Paradox used the keys and secondary indexes to figure out how to link the tables. The form Bill created is shown in that following figure.

Bill let Corel Paradox calculate the value of Total Invoice in Orders from the Selling Price and Qty fields of Lineitem. He right-clicked the Total Invoice field, defined it as a calculated field, and set up the calculation Lineitem.Selling Price * Lineitem.Qty. From then on, Corel Paradox totaled the invoice for him.

A multi-table report

Besides being able to enter orders more efficiently, Bill found he could communicate more effectively with his customers. For example, he created a multi-table report to show his customers their buying practices. The report linked Customer to Orders and presented information from both tables in a standard letter format.

At this point, the MAST company moved into stage 5 creating and saving queries.

 Related Topics


Stage five: creating and saving queries
Stage 5: creating and saving queries

As MAST grew and evolved, Bill needed to know more about the information in his tables. He found he was constantly using queries to ask questions about his data. For example,

·	When he considered opening a new branch, he asked questions like how many customers do we have in each state? Which state generates the most revenue for us? Where are our vendors most centrally located? Is there a correlation between vendor location and customer location?

·	When Bill considered changing his domestic long-distance telephone service, he asked questions like how many customers do we have in this state? How many in this time zone? How many in this country? What percentage of our phone calls are international?

·	Each month Bill performed the same queries, to see how sales compared to the previous month, the previous quarter, and the previous year. He could then calculate forecasts for the coming months. He learned early that he could save a query and reuse it month after month.

Then, the MAST company moved into stage 6, creating a report from a query.

 Related Topics


Stage six: creating a report from a query
Stage 6: creating a report from a query

Bill had always run a query and then created a report based on the Answer table to print his results. One day, he noticed he could create a report based on a saved query. This was interesting. He opened a new report, chose Queries from File Type list box in the Data Model dialog box, chose the query he ran each month, designed the report, and then saved it. Each time Bill printed his new report, Corel Paradox automatically ran the query and printed the results. Bill found he could print the latest information almost effortlessly; Corel Paradox was now doing even more work for him.


About Paradox objects
About Corel Paradox objects

In Corel Paradox, the database components that store, display, retrieve, and present data are called objects. The main objects you work with in Corel Paradox are tables, forms, queries, and reports. You might also work with ObjectPAL scripts and libraries, data models, or SQL files.

Corel Paradox uses the following objects to store, display, and present information.

•	files on a disk

•	tables

•	forms

•	reports

•	queries

•	data models

•	ObjectPAL scripts

•	libraries,

•	SQL files

Design objects are objects you create with Toolbar tools and place in forms and reports in a design window. Design objects include

•	Text objects

•	Boxes, lines, and ellipses

•	Fields and tables

•	Crosstabs and charts

•	Multi-record objects

•	Buttons

•	Graphics

•	OLE objects

•	Document pages

Each object has a different extension. For a list, see File extensions for Corel Paradox objects.

Corel Paradox objects and design objects have attributes or characteristics called properties.

 Related Topics


Tables

Corel Paradox stores data in tables. Tables have rows and columns. Each row contains information about a particular item (like a person, place, or thing). This is called a record. Each column contains one category of the data that makes up a record. This is called a field.

The simple table below is named Phone.db. It has two fields [image] Name and Phone Number [image] and three records [image] Anne, Bob, and Joe.

 Related Topics


Temporary tables

Certain Corel Paradox operations create temporary tables that last only until you change your private directory or end the Corel Paradox session.

Corel Paradox stores all temporary tables in your private directory (see About directories and aliases for more information). You can edit and query a temporary table as you would any other table. If you want to save one of these tables, you must rename it

The following table lists the temporary tables Corel Paradox creates when performing certain operations. Corel Paradox places these tables in the private directory.

Name	Created during	Contains
Answer	Query	Results from a query
Changed	CHANGETO query or Add operation (update)	Unchanged copy of changed records
Crosstab	Running a crosstab object in a form	Results of a crosstab
Deleted	DELETE query	Deleted records
Errorchg	CHANGETO query	Records that could not be changed
Errordel	DELETE query	Records that could not be deleted
Errorins	INSERT query	Records that could not be inserted
Inserted	INSERT query	Inserted records
Keyviol*	Restructure or Add operations (append)	Records with duplicate key values and records that violate referential integrity rules
Locks	Tools, Display Locks	All active locks on a table
Pal$src	View, Document Source	List of source code, objects, and methods in your form
Problems*	Restructure or Import operations	Unconverted records
 Note

•	You should not use any reserved temporary table name as the name of an object you create because Corel Paradox deletes temporary tables (or tables with those reserved names) whenever you change your private directory or exit Corel Paradox.

•	If you perform more than one operation that results in this temporary table within one session, Corel Paradox creates additional temporary tables with the same name and numbers them. For example, Keyviol1, Keyviol2, and so on.

 Related Topics


Forms

Sometimes it's more convenient to work with the data from your tables one record at a time, rather than with an entire table full of data. Forms let you see as much (or as little) of your data as you want in the format you prefer. The following figure shows a form created by Corel Paradox that displays only one record at a time.

When you view data in a form, you see the same data as in the table, but Corel Paradox arranges it differently. If you edit data in the form, Corel Paradox updates the data in the table.

You can use Corel Paradox's design tools to create custom form layouts. You can design forms that display several records from a table or even records from several tables at the same time. For more information about forms, see About forms and reports.

 Related Topics


Reports

Many people need to see their data in printed reports. Corel Paradox reports are flexible and powerful. You can sort and group records, calculate fields and totals, and arrange your data in an almost infinite variety of formats, including mailing labels.

Reports, like forms, take advantage of Corel Paradox's design features and tools. Using these tools, you can customize your reports to look just the way you want. And because it's so easy to link tables together, you can combine data from several tables into one report that communicates exactly what you want.

For more information about reports, see About forms and reports.

To view a sample report, click File, Open, Report. Double-click CUSTOMER.RSL from the Sample folder.

 Related Topics


Queries

A Corel Paradox query is a question you ask about the data in your tables. You can use queries to

•	Find or select data from a table

•	Combine data from more than one table

•	Perform calculations on the data in a table

Corel Paradox gives you a simple, yet powerful, way to ask questions about a table's data called Query By Example (QBE). In the Corel Paradox Query window, you choose which tables you want to ask questions about and then enter an example of the data you want. Corel Paradox runs the query and generates an Answer table based on your example.

Corel Paradox also allows you to run live queries that where you define and run a query that generates a live, editable view of the data you described in the query. When you edit the live query view, you actually change the data in the table you queried. Live query views give you a simple way to limit your view of data to just what you need to work with.

For more information on queries, see About queries.

 Related Topics


Scripts

Scripts are pieces of ObjectPAL code that you can create to perform operations automatically. (ObjectPAL is the Corel Paradox application language.) ObjectPAL code is usually attached to objects in forms, but you can also create standalone scripts that perform operations you specify independently of a form. For example, you can write a script to open a particular table and perform a calculation on one or more of its fields. Corel Paradox runs this type of script directly from the Desktop, not from triggering an event on an object in a form. See your ObjectPAL documentation and Help for information on writing scripts.

 Related Topics


Libraries

A library is an object you can use to store commonly used ObjectPAL code which lets you easily share code among forms, scripts, and other libraries. For more information, refer to your ObjectPAL documentation and Help.

 Related Topics


SQL Files

An SQL file is an object that contains code you write in SQL (Structured Query Language). For more information about using SQL with Corel Paradox and about using Corel Paradox to work with remote data, see About SQL.

You can use the SQL Editor to write SQL code to perform operations on remote data using Corel SQL Links. You can also write query scripts using SQL that you can run on local Corel Paradox or dBASE data. For more information about using the SQL Editor, see About the SQL Editor.

 Related Topics


File extensions for Paradox objects
File extensions for Corel Paradox objects

The following table lists the file extensions used by Corel Paradox.

Extension	Type of object

.CFG 	Configuration file

.DB 	Corel Paradox table

.DBF 	dBASE table

.DBT 	Memos for a dBASE table

.DM 	Saved data model

.FAM 	Corel Paradox's listing of related files (like a table's .TV file)

.FDL 	Delivered form

.FP	Form or report printer style sheet

.FSL 	Saved form

.FT	Form or report screen style sheet

.FTL 	Temporary file created then deleted when you save a form

.INI 	Configuration file

.LCK	Lock file

.LDL 	Delivered library

.LSL 	Saved library

.LTL 	Temporary file created then deleted when you save a library

.MB 	Memos for a Corel Paradox table

.MDX 	Maintained index of a dBASE table

.NDX 	Non-maintained index of a dBASE table

.PX 	Primary index of a Corel Paradox table

.QBE 	Saved query

.RDL 	Delivered report

.RSL 	Saved report

.RTL 	Temporary file created then deleted when you save a report

.SDL 	Delivered script

.SQL	Saved SQL file

.SSL 	Saved script

.STL 	Temporary file created then deleted when you save a script

.TV 	Table view settings for a Corel Paradox table

.TVF 	Table view settings for a dBASE table

.TVS	Table view setting for SQL data

.VAL 	Validity checks and referential integrity for a Corel Paradox table

.Xnn 	Secondary single-field index for a Corel Paradox table, numbered

.Ynn 	Secondary single-field index for a Corel Paradox table, numbered

.XGn 	Composite secondary index for a Corel Paradox table

.YGn 	Composite secondary index for a Corel Paradox table

 Related Topics


About the Paradox Desktop
About the Corel Paradox Desktop

The Desktop is the first thing you see when you start Corel Paradox. It is the primary Corel Paradox workspace. From the Desktop, you can

•	manage files

•	define defaults and preferences

•	control all Corel Paradox objects

•	set object properties

Many of the preferences you define remain in effect for a full Corel Paradox session—the time from when you open Corel Paradox to when you exit. Corel Paradox lets you save other preferences permanently.

Corel Paradox objects such as forms, reports, and queries open in their own window. For example, forms always appear in a Form window, and queries always appear in a Query window. Each type of window contains specialized commands that apply only to that type of object or document.

 Related Topics


About Toolbars

Corel Paradox Toolbar buttons change depending on the Toolbar type and the kinds of windows open. For example, if a table is open, the Standard Toolbar buttons help you perform tasks with the table. Toolbar buttons provide quick equivalents to menu commands or keystrokes.

To get quick help on what a tool or button does, hold the cursor over the button. Corel Paradox displays a tooltip that contains a description of the button.

Toolbars can be moved away from their standard position at the top of the screen. You can drag them around the screen and dock them at either side or the bottom of the screen or let them float. You can also display or hide any Toolbar. For information see Moving, docking and displaying Toolbars.

Corel Paradox provides you with the following Toolbars:

The Standard Toolbar

This is the default Toolbar which usually appears immediately below the menus. This Toolbar displays buttons and tools which are shortcuts to menu commands for the current active window. As you change the focus from one window to another, the Toolbar changes to provide buttons that match the window.

The Text Formatting Toolbar

The Text Formatting Toolbar displays buttons and tools which are shortcuts to commonly-used menu commands which deal with text. Therefore, its buttons do not change when the active window changes. This means that some buttons on this Toolbar will not have any effect if the currently selected object does not support that action. For example, if you are designing a query and select some text, clicking the Bold tool will have no effect. The Text formatting Toolbar does not appear by default.

The Align Toolbar

The Align Toolbar, which only appears when the Form Design or Report Design windows are open, provides shortcuts for aligning multiple objects that you have selected. The Align Toolbar does not appear by default.

The Object Toolbar

The Object Toolbar displays buttons for various tools used when designing a form, and only appears when the Form Design window is open. The first page of the toolbar contains the Form tools such as the Table Frame tool, Box tool, and so on. The second page contains OLE Controls you have added to the Toolbar. (OLE controls are purchased separately from third-party vendors.) For instructions on how to add your OLE controls to the Object Toolbar, see Adding a control to the Toolbar. The native Windows controls included with Corel Paradox also appear on this Toolbar. These include the List Box, Combo Box, Spin Box, Progress Bar and Track Bar controls. To find out more about native Windows controls, see About OLE and native Windows controls.

You may also see additional pages on this Toolbar if you have added a custom Toolbar. For instructions on how to do this, see Adding a page to the Object Toolbar. The Object Toolbar does not appear by default.

The Application Bar Toolbar

The Application Bar Toolbar appears at the bottom of the window above the Status Bar and displays the names of all of the windows you have open. For example, if you have a form called CUSTOMER.FSL open in a Design window, the Application Bar Toolbar displays Form Design: Custform.fsl. Click the name of an object in the Application Bar Toolbar to make that window active.

 Related Topics


Moving and docking Toolbars
Moving, docking and displaying additional Toolbars

You can move a Toolbar from the top of the Desktop window and dock it on either side or the bottom of the window; or, you can let the Toolbar float in its own window which you can drag to anyplace on the Desktop. You can also hide or display any Toolbar.

To move a Toolbar

•	Click the appropriate Toolbar (click within the Toolbar but not on a button) and drag it to a new location.

To dock a Toolbar

•	Click the appropriate Toolbar (within the Toolbar but not on a button) to the edge of the Desktop window until a dashed outline appears. Release the mouse button when the outline touches the edge of the window.

To let a Toolbar float

•	Click the appropriate toolbar (click within the Toolbar, but not on a button) and drag the toolbar to the middle of the Desktop window. When the you release the mouse button, the toolbar appears in its own window, which you can drag to any area of the Desktop.

To display a Toolbar

1.	Click View, Toolbars.

2.	In the Toolbar Preferences dialog box, enable the check box beside each toolbar that you want to display.

 Related Topics


About the Project Viewer

The Project Viewer provides a quick way for you to view and work with the contents of the directory displayed in the list box at the top of the Project Viewer.

To open the Project Viewer, click Tools, Project Viewer.

When you open the Project Viewer, you see a list of files in the working directory.

From the Project Viewer, you can right-click file names to view associated menus, or double-click to perform the default action (the first item on the menu), which is usually Open.

Other things you can do from the Project Viewer

•	Right-click an icon in the left panel to access the New and Open commands. You can use SHIFT+click and CTRL+click to select multiple icons.

•	Click the Custom icon and enter a file specification such as *.txt to view only files of that type.

•	Use SHIFT+click and CTRL+click to select multiple objects in the right panel.

•	Drag objects from the right panel of the Project Viewer into the Windows Explorer and applications that support OLE 2.0 to copy or embed them there.

•	Drag objects from the right panel of the Project Viewer onto the Corel Paradox Desktop to perform the default action for that object (usually opening it).

•	Change your working directory.

•	Specify additional objects or files you want to see listed [image] files that are not in your working or private directories by creating shortcuts to them. These are called references.

For more information about using the Project Viewer, see Using the Project Viewer

 Related Topics


Using the Project Viewer

The Project Viewer lists objects in your working and private directories. It gives you easy access to these objects.

To open the Project Viewer

•	Click Tools, Project Viewer.

To use the Project Viewer

Click an icon on the left panel to choose the type of object you want to see.

•	To specify an object type that doesn't have an icon, click the Custom icon and enter a file specification, such as *.txt, in the text box.

•	Use SHIFT+click and CTRL+click to select more than one type of object. With multiple objects selected, the right-click menu includes only operations that apply to all selected objects.

•	Right-click an icon to create or open an object of that type.

•	Right-click an object name to display the right-click menu and click a command. Double-click an object to execute the first command on the right-click menu (ususally Open.) You can also perform the first command on the menu by dragging the selected object(s) onto the Corel Paradox Desktop.

•	To copy an object to another OLE 2.0 application or embed an object, drag it from the Project Viewer into the other application.

 Note

•	If you are viewing all files, you will see that some files do not have menus. This is because some files are automatically created with a Corel Paradox object, and are modified only when you modify the object. (For example, .PX files, .TV files, and .MB files are associated with Corel Paradox tables.)

•	You can change your working directory from the Project Viewer. For information about working and private directories, see About directories and aliases.

•	You can also specify additional objects or files you want to see listed [image] files that are not in your working or private directories by creating shortcuts to them. These are called references.

 Related Topics


Setting Project Viewer preferences

You can choose whether to display the Project Viewer each time you run Corel Paradox.

To have the Project Viewer open automatically each time you run Corel Paradox

1.	Click Tools, Settings, Preferences.

2.	Click the General tab if it is not already at the front.

3.	Enable the Open Project Viewer On Startup check box.

 Related Topics


Displaying a menu for Project Viewer items

You can work with an object from within the Project Viewer.

To display a menu of commands for Project Viewer items

•	Right-click an object name on the right panel of the Project Viewer.

For example, if you right-click a table name you can view, copy, restructure, sort, or perform a number of other operations on the table. (These are many of the same options you find if you click Tools, Utilities.)

The top menu choice is the object's default action. You can double-click an object to perform its default action. For most objects, the default action is Open.

 Related Topics


Changing your working directory from the Project Viewer

Your Corel Paradox working directory is the default data directory Corel Paradox uses to open and save files.

To change your working directory from the Project Viewer

Do any of the following

•	In the Working Directory text box, type the path to another directory.

•	Choose another directory from the Working Directory list box. The Working Directory list box displays the last 10 directories you have used.

For more information about changing your working directory, see Changing your working directory.

 Related Topics


Adding and removing Project Viewer items

When you open the Project Viewer for the first time, it displays the contents of the working directory. You can add items to the Project Viewer by creating shortcuts. Creating a shortcut (reference) to an item does not move it into the working directory. Instead, Corel Paradox creates a reference to the item. After the reference is added, you'll see the item (including its path or alias) in the Project Viewer. You can right-click references just as you can items from the working directory.

References show up in dialog boxes too. For example, if you click File, Open, Table, any references you added appear in the list of files in the Open Table dialog box.

References you add to the Project Viewer apply only to the working directory, so you can have different references for each directory you use.

For more information see Adding references to the Project Viewer and Removing references from the Project Viewer.

 Related Topics


Adding references

You can specify additional objects or files that you want to see listed in the Project Viewer [image] files that are not in your working or private directories [image] by creating shortcuts to them. These are called references.

To add a reference to the Project Viewer

1.	In the Project Viewer, right-click the object you want to reference and click Create Shortcut.

2.	Right-click the shortcut and click Cut.

3.	In the Project Viewer, display the folder where you want to add the reference.

4.	Right-click the right panel of the Project Viewer and click Paste.

 Notes

•	You can follow these steps to add non-Corel Paradox items to the Project Viewer. If the item's file extension is associated with a program, you can double-click the non-Corel Paradox object to open it. Refer to your Windows documentation for information on associating file extensions with programs.

•	The Application Framework does not support references.

 Related Topics


Removing references

To remove a reference from the Project Viewer

•	In the right panel of the Project Viewer, right-click the object you want to remove and click Delete.

Removing a reference from the Project Viewer does not delete an object, only the reference to that object.

 Related Topics


Setting Desktop and system preferences

Preferences are global settings that affect the overall performance of Corel Paradox and the default settings or values that appear for many of its operations.

Use the Preferences dialog box to view or change information about your system and environment.

To open the Preferences dialog box

•	Click Tools, Settings, Preferences.

The Preferences dialog box contains the following pages:

•	General: Corel Paradox title bar, backgroup bitmap, save and restore Desktop state, default system font, open Project Viewer on startup

•	Forms/Report: New forms and reports defaults, on-screen size, mode when opening, default style sheets

•	Designer: Selection, frame, flicker-free draw, move/resize, grid, ruler

•	Query: Table update handling, remote table queries, auxiliary table options, default checkmark, SQL answer constraints

•	Toolbars: Which Toolbars to show

•	Experts: Run experts when creating objects, always run Startup Expert

•	Advanced: Warning prompts, ANSI character entry, expandable directory branches, scroll bars in form windows

•	Database: Private directory; blank fields as zeros; network current user, refresh rate, retry period

•	BDE: Network control file directory, language and database drivers, buffer size, local share

SQL Editor preferences are set in the Editor page of the Developer Preferences dialog box.

 Related Topics


Setting ObjectPAL preferences

Preferences are global settings that affect the overall performance of Corel Paradox and the default settings or values that appear for many of its operations.

•	Click Tools, Settings, Developer Preferences to customize the way you work in the ObjectPAL development environment (which includes the Editor, the Object Explorer, the ObjectPAL Quick Lookup, and the Form Design window).

The Developer Preferences dialog box contains the following pages:

•	General: ObjectPAL level, debug environment, Debugger settings, show developer menus

•	Explorer: Appearance, sorting, and colors of the Object Explorer

•	Editor: Default formatting, tabs, indents, and undo

•	Display: Keystroke mapping, prompts, cursor shape, sidebars, custom size, status bar hints, font

•	Colors: Default script elements in the Editor, default foreground and background colors, text attributes

If you enable the Show Developer Menus check box in the General page of the Developer Preferences dialog box, you'll see extra commands on some menus in the Form Design window. These are commands that otherwise appear only in the Integrated Development Environment (IDE). Having them available in the Form Design window can be convenient for ObjectPAL developers.

You can set the ObjectPAL level that you're comfortable with in the General page. Choose Beginner to limit the range of ObjectPAL possibilities you view. This helps you understand more quickly how ObjectPAL works. When you're comfortable working in ObjectPAL, choose Advanced to see the full set of ObjectPAL features.

For more information about other options available in the Developer Preferences dialog box, see Help for each dialog box page listed above.

 Related Topics


Exiting Paradox
Exiting Corel Paradox

To exit Corel Paradox

1.	Do one of the following:

•	Click File, Exit.

•	Press ALTt+F4.

 Related Topics


About directories and aliases

Working directory

A Corel Paradox working directory is the directory Corel Paradox uses by default to open and save files. The working directory controls which files are displayed in dialog boxes during open and save operations.

When you install Corel Paradox on a local drive (not a network drive), Corel Paradox creates a directory named WORKING below the system directory. This is your default working directory. You can change it later, if you want. For information see Changing your working directory.

You'll probably find it convenient to you use working directories to organize your files. Then, when you want to use the files in a specific directory, you can make it your working directory. For example, if you're working with tables, forms, reports, and queries in a directory named C:\DATAFILES\BUDGET, you could change your working directory to C:\DATAFILES\BUDGET.

Private directory

In a multiuser environment, you need a place to put your temporary objects. You need to store temporary tables, such as Answer or Inserted, in a nonshared directory, or other users could overwrite them. All Corel Paradox users need their own private directory when they run Corel Paradox.

Your default private directory is PRIVATE, created below the main Corel Paradox directory on your hard drive, or on your network home directory if you have no hard drive. You can change to another private directory if you want. For information see Specifiying a private directory.

Aliases

An alias is a name you can assign as a shortcut to a directory. By default, your working directory has the alias :WORK: and your private directory has the alias :PRIV:.

There are two kinds of aliases:

•	public aliases

•	project aliases.

For information About aliases.

 Note

•	When you change any of these directory or alias settings, Corel Paradox automatically saves the changes.

 Related Topics


Changing your working directory

Your Corel Paradox working directory is the default data directory Corel Paradox uses to open and save files.

To change your working directory

1.	Click File, Working Directory.

2.	In the Set Working Directory dialog box, type the full path of the directory you want in the Working Directory text box. You can also choose an alias from the Aliases list box.

 Tip

•	You can also change your working directory from the Project Viewer. For information see Changing your working directory from the Project Viewer.

 Notes

•	Corel Paradox assigns your working directory the temporary alias WORK (even if it already has another alias name).

•	If you create a project alias, Corel Paradox creates a file called PDOXWORK.CFG and stores it in your working directory. This file contains all project aliases (public aliases are stored in IDAPI32.CFG).

 Related Topics


Specifying a private directory

If you do not specify a private directory, Corel Paradox uses the PRIVATE directory, which is installed below your system directory when you install Corel Paradox on a local (non-network) drive. If you have no local hard disk, the network home directory on the file server should be used as the private directory.

To specify your private directory

1.	Click Tools, Settings, Preferences.

2.	Click the Database page tab.

3.	Type the full path and name of a directory in the Private Directory box.

Corel Paradox assigns the :PRIV: alias to your private directory.

 Note

•	When you change private directories, Corel Paradox releases any locks you have placed on any tables and deletes all your temporary tables. Make sure you do not need any of your temporary tables before you change private directories.

 Related Topics


About aliases

An alias is a name you can assign as a shortcut to a directory.

At any time, you can use the Alias Manager dialog box to:

•	create a new alias

•	modify an existing alias

•	remove an alias

Example

Suppose you have a collection of tables, text files, scripts, forms, reports, and graphics all in one directory where you are working on an ObjectPAL application. This collection of files is located in a directory called C:\DATAFILES\PROJECTS\NEW\PLANNER. Using the Alias Manager dialog box, you can give that full path a name [image] an alias. For example, if you create an alias for this directory called :PLAN:, you can then simply use :PLAN: instead of the full directory path when you need files from C:\DATAFILES\PROJECTS\NEW\PLANNER.

Advantages

Aliases give you several advantages:

•	You avoid typing long path names.

•	File references within forms, reports, and similar Corel Paradox objects can use alias names rather than full paths. This makes your applications portable. You can move the entire application without recoding all references (just change the alias definition). Used this way, an alias is a variable for a directory path.

•	Using the alias, you can connect to or disconnect from your remote database server.

•	You can change the definition of an alias at any time. All forms, reports, or other Corel Paradox objects that refer to the alias automatically refer to the new definition of the alias. For example, you can design a complex multi-table form using files on your computer's hard disk, referencing tables with an alias to a directory on your disk. When you are ready to share the form on a network, you move the tables on which the form is based to a network directory and redefine the alias to point to that directory. The form then knows where to find the tables on the network.

Kinds of aliases

There are two kinds of aliases: public aliases and project aliases. For information see Public and project aliases.

 Related Topics


Public and project aliases

You can create aliases that are available from all directories or specific to a working directory:

•	Public aliases are stored in the BDE configuration file. They are available from any working directory and visible to any application that uses BDE (the Borland Database Engine).

•	Project aliases are stored in the PDOXWORK.CFG file in the working directory. They are available only when you are using Corel Paradox and are in the working directory you created them in.

For example, if your working directory is C:\PROGRAM FILES\COREL\PARADOX\SAMPLE and you are creating an alias named CONNECT for a directory called C:\DATAFILES\CONNECT directory, you have two choices:

•	A public alias that is available from Corel Paradox or any other application that uses BDE (for example, an application developed using ObjectPAL). If you create CONNECT as a public alias, you will see :CONNECT: in the Drive (Or Alias) list of all file selection dialog boxes.

•	A project alias that is available only when C:\PROGRAM FILES\COREL\PARADOX\SAMPLE is your working directory. If you change working directories or use other applications that use the Borland Database Engine (BDE), you will not see the :CONNECT: alias.

Whenever you change working directories, Corel Paradox unloads all project aliases associated with the old working directory and loads those project aliases that are specific to the new working directory. Public aliases are available from any working directory.

If a project alias has the same name as a public alias, Corel Paradox does not load the project alias.

 Related Topics


Creating a new alias

You can create aliases for local or network directories, or for remote databases. For information about Corel SQL links and creating an alias for a remote database, see Alias Manager dialog box (SQL Link).

Use the Alias Manager dialog box to create new aliases.

To create a new alias

1.	Click Tools, Alias Manager.

2.	In the Alias Manager dialog box, type the name (alias) you want to give the directory in the Database Alias box.

3.	Choose the driver you want from the Driver Type list box. The Driver Type list box displays all the drivers to which you are connected. Choose Standard to create a database of Corel Paradox (and dBASE) tables.

4.	Type the full path of the directory location including the drive letter in the Path box.

5.	Enable the Public Alias button if you want the alias to be available no matter which directory you are working in.

6.	Click the Keep New button if you want to keep the alias but do not want to close the dialog box. The Keep New button becomes the New button. You can then create another alias. If you want the alias you just created to be temporary (exist only until you exit Corel Paradox), click OK and do not proceed to step 7.

7.	To save the alias you have created, click the Save As button.

Corel Paradox opens the Save File As dialog box and prompts you to overwrite the existing configuration settings. When you overwrite, Corel Paradox appends the new alias without changing any existing configuration settings. By default, Corel Paradox stores saved public aliases in IDAPI.CFG and project aliases in PDOXWORK.CFG.

You can remove the alias from the .CFG file at any time (using the Alias Manager dialog box).

 Note

•	You cannot create an alias using extended characters, such as characters that contain accents. Corel Paradox also converts lowercase letters to uppercase.

 Tip

•	To create an alias similar to one you already have, select the appropriate alias from the Database Alias list box. Click New, type changes in the box and click Keep New to save the alias.

 Related Topics


Modifying an alias

You can change an alias using the Alias Manager dialog box.

To modify an alias

1.	Click Tools, Alias Manager.

2.	In the Alias Manager dialog box, choose the alias whose path you want to change from the Database Alias list.

3.	Type the new path in the Path box.

4.	To save the alias you have created, click the Save As button.

Corel Paradox opens the Save File As dialog box and prompts you to overwrite the existing configuration settings. When you overwrite, Corel Paradox appends the new alias without changing any existing configuration settings. By default, Corel Paradox stores saved public aliases in IDAPI.CFG and project aliases in PDOXWORK.CFG.

You can remove the alias from the .CFG file at any time (using the Alias Manager dialog box).

Note

•	You cannot create an alias using extended characters, such as characters that contain accents. Corel Paradox also converts lowercase letters to uppercase.

 Related Topics


Removing an alias

To remove an existing alias,

1.	Click Tools, Alias Manager.

2.	In the Alias Manager dialog box, choose the alias you want to remove from the Database Alias list box.

3.	Click the Remove button.

4.	When you click OK, Corel Paradox prompts you to save the change in the appropriate .CFG file.

 Related Topics


Copying referential integrity

When you define referential integrity,  you create a parent/child relationship between two tables.

•	If you copy the parent table, Corel Paradox doesn't copy the referential integrity.

•	If you copy the child table (the table which you opened in order to create the relationship), Corel Paradox copies the referential integrity. Therefore, the copied table must meet the requirements of the referential integrity.

•	Both tables in the referential integrity relationship must be in the same directory. When you copy the child table to a different directory you break the referential integrity link.

For more information about referential integrity, see About referential integrity.

 Related Topics


Example of copying a form
Copying a form from the Project Viewer

To make a copy of a form from the Project Viewer

1.	Click Tools, Project Viewer.

2.	Click the Forms icon to view forms.

3.	Right-click a form in the right-hand panel of the Project Viewer and click Copy.

4.	In the Copy To dialog box, type the name of the new form in the File Name text box.

5.	Click the Copy button.

Corel Paradox creates a copy of the form with the specified name.

 Related Topics


About copying objects
About copying tables

You can copy tables, forms, reports, queries, scripts, SQL files, libraries, data models, style sheets, and text files from within Corel Paradox.

For best results, always use the Corel Paradox Copy utility to copy Corel Paradox or dBASE tables and other Corel Paradox objects. Using the DOS COPY command or the Windows Explorer may not copy all related files that make up a table (for example, the files containing a table's primary index, secondary indexes, validity checks, or BLOB data). The Corel Paradox Copy command, however, copies all files correctly.

When you copy a table, Corel Paradox copies both its structure and the data contained in it. Corel Paradox also copies the table's

•	key (primary index)

•	secondary index(es) (except .NDX files on dBASE tables)

•	validity checks

•	referential integrity [image] see Copying referential integrity

•	table properties (as you've set them in the Table window)

 Note

•	These elements are copied only when you copy the table to another table of the same type. That is, they are copied only when you copy a Corel Paradox table to another Corel Paradox table or a dBASE table to another dBASE table.

Copying tables on a network

When you copy a table, Corel Paradox must acquire a read lock on the original table and an exclusive lock on the copy. Therefore, no user can change the contents or the structure of the table you're copying during the Copy operation. If you copy to an existing table, there can be no locks open on that table. If there is a record lock, write lock, or exclusive lock on the table you're copying, you won't be able to make the copy until the lock is removed.

 Note

•	Windows lets you open several instances of the same table at the same time, so you could be considered another use of the table, preventing the records from being copied. Be sure to close the table window and any of its associated-document windows before using Copy.

 Related Topics


Copying to a different table type

You can copy a Corel Paradox table to a dBASE table, or a dBASE table to a Corel Paradox table, by typing the file extension you want (.DB for Corel Paradox and .DBF for dBASE) for the copied table. For example, if you want to copy the Corel Paradox Customer table to a dBASE Customer table, type CUSTOMER.DBF as the name of the copied table.

If the new dBASE table contains no production index (.MDX file), no float number field type, and no memo field type, Corel Paradox creates a dBASE III+ table. If the dBASE table contains an OLE or binary field, Corel Paradox creates a dBASE for Windows table. Otherwise, Corel Paradox creates a dBASE IV table.

Corel Paradox automatically changes field types when you change table types. For a list of field conversions and side effects, see:

 Copying from Corel Paradox to dBASE tables

 Copying from dBASE to Corel Paradox tables

 Related Topics


Copying from Paradox to dBASE tables
Copying from Corel Paradox to dBASE tables

For information about copying from a Corel Paradox table to a dBASE table, see Copying to a different table type.

Corel Paradox automatically changes field types when you change table types. The following table shows what to expect when you copy from a Corel Paradox table to a dBASE table.

From Corel Paradox type	To dBASE type	Side effects
Alpha	Character
Number	Number	Assigns size (20) and dec. (4)
Money	Number	Assigns size (20) and dec. (4)
Short	Number	Assigns size (6) and dec. (0)
Long Integer	Number	Assigns size (11) and dec. (0)
BCD	Number	Assigns size (20) and dec. (4)
Date	Date
Time	Character	Assigns size (8)
Timestamp	Character	Assigns size (30)
Memo	Memo
Formatted memo	Memo	Formatting is lost
Graphic	Binary
OLE	OLE
Logical	Logical
Autoincrement	Number	Assigns size (11) and dec. (0)
Binary	Memo	Data cannot be displayed
Bytes	Memo	Data cannot be displayed
If the new dBASE table contains no production index (.MDX file), no float number field type, and no memo field type, Corel Paradox creates a dBASE III+ table. If the dBASE table contains an OLE or binary field, Corel Paradox creates a dBASE for Windows table. Otherwise, Corel Paradox creates a dBASE IV table.

If in the Borland Database Administrator, the Level parameter for the dBASE driver is set to 4 instead of 5, graphic and OLE Corel Paradox fields fields convert to dBASE memo fields. Bytes fields cannot be converted.

 Related Topics


Copying from dBASE to Paradox tables
Copying from dBASE to Corel Paradox tables

For information about copying from a dBASE table to a Corel Paradox table, see Copying to a different table type.

Corel Paradox automatically changes field types when you change table types. The following table shows what to expect when you copy from a dBASE table to a Corel Paradox table.

From dBASE type	To Corel Paradox type	Side effects
Character	Alpha
Float	Number	Removes size
Number	Number	Removes size
Logical	Logical
Date	Date
Memo	Memo	Adds size (1)*
OLE	OLE
Binary	Graphic
* Corel Paradox assumes the data in the dBASE memo is in text form. If the memo contains a different type of data, you should use the Add utility and add the memo to the appropriate Corel Paradox BLOB field type.

 Related Topics


Renaming tables on a network
Renaming tables

When rename a table, Corel Paradox must acquire an exclusive lock on the table. An exclusive lock means

•	No user can access the table in any way.

•	If there is a lock of any type open on the table, you must wait until it's released before you can use the Rename utility.

•	If you rename an object with an existing object's name, Corel Paradox deletes the existing object.

To rename an open table

1.	Click Tools, Utilities, Rename.

2.	Type a new name for the table in the Rename dialog box.

Corel Paradox renames the table and any open forms and reports associated with it.

 Notes

•	Be careful when renaming tables. Once renamed, a table can't be found by associated documents. Forms, reports, or queries that refer to a table under one name won't be bound to the table under its new name. The next time you open an unbound object, Corel Paradox asks you to supply the name of the table to which you'd like it to be bound.

•	You cannot rename a table to change its type. A Corel Paradox table must be renamed as a Corel Paradox table, and a dBASE table must be renamed as a dBASE table.

•	You cannot rename a table that is identified as the parent table in a referential integrity relationship. You must first either delete the referential integrity (by restructuring the child table) or delete the child table.

 Tips

•	You can avoid problems with forms and reports by having them open in their design windows while you rename the table. Corel Paradox automatically modifies them with the new table name. (You must save the forms and reports to make the change permanent.)

•	When renaming an object, you can type a full path when you type the object's new name. This both renames the object and moves it to a new location.

 Related Topics


About deleting objects
Deleting tables

You can delete tables, forms, reports, queries, scripts, SQL files, libraries, data models, and style sheets from within Corel Paradox.

Always use the Corel Paradox Delete command to delete tables from within Corel Paradox. Using the DOS DELETE command or the Windows Explorer may not delete all related files that make up a table (for example, the files containing a table's primary index, secondary indexes, validity checks, referential integrity, or BLOB data). The Corel Paradox Delete command, however, deletes all files correctly.

You cannot delete a table that is identified as the parent in a referential integrity relationship. You must first either delete the referential integrity (from the child table), empty the child table, or delete the child table.

To delete a table

1.	Click Tools, Utilities, Delete.

2.	Click the name of the file to delete in the Delete dialog box.

3.	Click the Delete button.

Corel Paradox opens a dialog box that asks you to confirm the deletion.

4.	Click Yes to delete the table or No to cancel the operation.

Deleting tables on a network

When you use Delete to delete a table, Corel Paradox must acquire an exclusive lock on the table. This means

•	No user can access the table in any way.

•	If there is a lock of any type open on the table, you must wait until it's released before you can use the Delete utility. This means you cannot delete a table that is open on your Desktop.

Windows lets you open several instances of the same table at the same time, so you could be considered another user of the table, preventing the records from being deleted. Be sure to close the table window and any of its associated-document windows before using Delete.

 Note

•	Be careful when deleting objects. You can't undo a deletion. Be sure that a table isn't used in any forms, reports, or queries before you delete it. Forms, reports, or queries that depend on the table are not deleted when the table is deleted.

You cannot delete a table that is identified as the parent in a referential integrity relationship. You must first either delete the referential integrity (from the child table), empty the child table, or delete the child table.

 Related Topics


About Paradox Experts
About Corel Paradox Experts

Corel Paradox Experts provide easy-to-follow steps that help you quickly perform common Corel Paradox tasks. Click Tools, Experts to display the Paradox Experts dialog box, which allows you to launch the following Experts:

•	the Chart Expert, to help you create a chart of your data

•	the Crosstab Expert, to help you create a crosstab from your data

•	the Database Expert, to select a ready-made database and helps you customize it to meet your needs

•	the Documentation Expert, to produce a report on the structure and coding of your documents and objects

•	the Form Expert, to help you create a form that displays data from one or two tables in a variety of predefined layouts and styles

•	the HTML Import Expert, to help you import data from HTML documents

•	the Launcher Expert, to create a small tabbed form you can use to open or launch selected forms, reports, queries, scripts, and executable files with the click of a button

•	the Mailing Label Expert, to help you create mailing labels in a variety of mailing label formats

•	the Merge Expert, to help you merge data from a table into a form letter using a variety of word processors

•	the Report Expert, to help you display and print data from one or two tables in a variety of predefined layouts and styles

•	the Search and Replace Expert to help you change the underlying source code of several Corel Paradox files simultaneously

•	the Table Expert to help you create a new table from a list of table templates

•	the Text Import Expert to help you import fixed length or delimited text into Corel Paradox tables

•	the Utilities Expert, to help you edit and update a group of documents simultaneously

You can also display the appropriate Expert each time you create a field, button, chart, or text object in the Form Design and Report Design windows. And, you can choose to display the Startup Expert each time you run Corel Paradox. For information see Experts page (Preferences dialog box). In addition, the HTML Report Expert and the HTML Table Expert will help you publish reports and tables to HTML documents when you use the File, Publish to HTML command.

 Related Topics


Printing

Use the Print command to print a table, form, report, or script.

To print

•	Click File, Print.

When you print a table, Corel Paradox creates a default report in a tabular format, using the table name as a page header and including page numbers and the current date. This might not be a good choice if your table contains very long memo fields. In that case you will probably want to design a preferred report starting with a single-record style.

You can change printer options at any time, using the Print dialog box.

 Related Topics


Paradox sample directory
Corel Paradox sample directory

Your Corel Paradox disks include sample files that you can choose to install with Corel Paradox. The sample tables contain information used by the fictitious Marine Adventures and Sunken Treasure (MAST) company. This company sells diving equipment and supplies to dive shops around the world. For more information on the MAST company, the development of the MAST database, and the structures of the sample tables, see About the MAST company.

The sample files are used in examples in this Help system. These files are located in the Sample directory (unless you specified otherwise when you installed them). If you installed Corel Paradox in the default location, the full path of the sample files is C:\COREL\PARADOX\SAMPLE.

To use these sample files, you must change your working directory to the Sample directory. For example, if you installed Corel Paradox in C:\COREL\PARADOX to change the working directory to the SAMPLE directory,

1.	Click File, Working Directory.

2.	In the Set Working Directory dialog box, type C:\COREL\PARADOX\SAMPLE in the Working Directory field.

 Related Topics


ObjectPAL scripting language

ObjectPAL is an event-driven, object-oriented programming language, different from a traditional procedural language where you create a file of commands that execute one after another.

Using ObjectPAL, you place design objects (for example, buttons and fields) in a form and attach code modules, called methods, that execute when something happens to the object.

For more information about ObjectPAL, see ObjectPAL Reference and the printed manual "Guide to ObjectPAL."


What comparison operators are allowed in expression indexes on dBASE tables?

You can use the =, <=, and >= comparison operators in expression indexes; =< and => are not supported. See your dBASE documentation for syntax.

 Related Topics


What functions are allowed in expression indexes on dBASE tables?

The following dBASE IV functions are supported. See your dBASE documentation for syntax.

ABS	DTOR	LOG10	RTRIM
ACOS	DTOS	LOWER	SIGN
ASC	DTOS	LTRIM	SIN
ASIN	EXP	MAX	SPACE
AT	FIXED	MIN	SQRT
ATAN	FLOAT	MOD	STR
ATN2	FLOOR	MONTH	STUFF
CEILING	FV	PAYMENT	SUBSTR
CHR	IIF	PI	TAN
COS	INT	PV	TRANSFORM
CTOD	ISALPHA	RAT	TRIM
DAY	ISLOWER	RAND	UPPER
DIFFERENCE	ISUPPER	REPLICATE	VAL
DIV	LEFT	RIGHT	YEAR
DOW	LEN	ROUND
DTOC	LOG	RTOD
 Related Topics


Can I use Paradox to create a maintained index for a dBASE table that is a dBASE III Plus level?
Creating a maintained index for a dBASE III Plus table

Yes; however, you will be warned when you save the table that the driver level will change to dBASE IV. Maintained indexes were introduced in dBASE I; therefore, the table level must be changed to save the new index. This means that your dBASE table cannot be opened in dBASE III PLUS, and that it will generate an error message saying "Corrupt table/index header" in all versions that predate dBASE IV.


Command-line options

To start Corel Paradox with one or more command-line options

1.	Click File, Run from the Windows Start menu.

2.	Type PDXWIN32.EXE and then type the option(s) you want to use.

If you use more than one option, separate each with a space.

If you want Corel Paradox to always start with the same command-line options and parameters, do one of the following:

·	Right-click the Corel Paradox icon and use the Windows Properties dialog box to change its properties.

·	Create a new icon containing the command-line options in its Shortcut settings.

Corel Paradox supports the following command-line options,

Option	Behavior

-b	Prevents multiple instances of Corel Paradox from being loaded. If Corel Paradox is already running, the Corel Paradox window is brought to the front. If you try to load Corel Paradox more than once without changing the private directory, an error message tells you that BDE could not be initialized.

-c	Starts Corel Paradox with a clear Desktop.

-e 	Prevents writes to the system registry.

-f	Forces writes to the system registry.

-m	Loads Corel Paradox as a minimized application. This is useful if you want to load Corel Paradox but not work with it immediately.

-n	Prevents saving work and private directories on exit.

-o Filename	Alternate BDE configuration file. (All BDE-based applications must use the same BDE configuration file when running concurrently.)

-p Directory	Start with a different private directory than the one set in the system registry. Corel Paradox stores its temporary tables in the directory you indicate with this parameter.

If you do not indicate a full directory path (one with a drive letter), Corel Paradox looks for the new directory with respect to the Corel Paradox system directory.

-q	Suppresses the Corel Paradox title screen while it is loading.

-s	Prevents resizing of the Corel Paradox window.

-t	Allows resizing of the Corel Paradox window.

-w Directory	Starts Corel Paradox with the specified working directory instead of the one saved in the system registry.

-y	Forces saving work and private directories on exit.

StartFile	Opens the specified document and performs its default action. Corel Paradox looks in the current working directory for the specified file unless you include the full directory reference to that file.

You can tell Corel Paradox to open a file when starting (for example, a form or report) by typing the name of the file, along with any necessary directory information. This does not require a special option, but does require the file extension. After loading, Corel Paradox opens the file and performs its default action. For example, tables are displayed in a table window, forms are displayed in a Form window, scripts are run, and so on.


International issues

The following topics provide an overview of international features of Corel Paradox and how use them to adhere to different conventions, such as

·	Character-set issues

·	Sorting conventions

·	Data formats

 Note

·	These issues are of particular interest to those working in international environments, but they apply to all users.

 Related Topics


Preparation and assumptions

Before installing Corel Paradox in (or using tables from) an international setting, make sure of the following:

·	The International settings of Windows Control Panel correspond to your needs.

·	You understand the differences between (and implications of) the Windows (ANSI) character set and your DOS (OEM) code page.

·	You know how to use Alt and the numeric keypad to enter extended characters in Windows applications and files. (Make sure NumLock is on before attempting this.)

For more information about these issues and concepts, consult your Windows and DOS documentation.

 Related Topics


Sorting conventions

Corel Paradox uses language drivers to sort tables according to different conventions. If you are using a workstation with non-U.S. settings or are working with tables created on non-U.S. workstations, make sure Corel Paradox is using the language driver(s) closest to the conventions you are used to.

In most cases, you should not have to worry about a table's language drivers after setting the default drivers for your workstation. When sharing tables between workstations, make sure the workstations are using the same default language drivers.

 Related Topics


Character set issues

Because Corel Paradox is a Windows application, it supports the ANSI character set for files that can be used only by other Windows applications. This includes forms, reports, scripts, and libraries. Corel Paradox stores OEM characters in tables. This means Corel Paradox translates ANSI characters to those in your OEM code page when saving table data.

For example, if you are using code page 437 (the default code page for U.S. workstations that support ASCII) and place an "Æ" (ANSI character 198) in a field, Corel Paradox saves it as OEM character 146. You will see the same character when viewing the table, but it is not literally the same one you originally entered.

Most of the time, this is transparent; that is, there is no loss of data. However, if you enter a character that is not supported by your code page, Corel Paradox converts it to one that is. For example, if you are using code page 437 and type an "Õ", Corel Paradox converts it to an "O" because your code page does not support the original character. In this example, a mild form of data loss occurs; the tilde ( ~ ) is removed.

If you enter an ANSI character that cannot be converted to a similar character in your code page, Corel Paradox replaces it with OEM character 254(�).

Character conversion occurs when you

·	Enter data into a table

·	Name a file

·	Export data to OEM files or applications

In all other operations, Corel Paradox uses and saves characters from the ANSI character set.

 Related Topics


Working with tables using different language drivers

Although you can use different language drivers for different Corel Paradox tables, we advise against linking tables using different language drivers. This includes (but is not limited to) operations like the following:

·	Joining tables using different language drivers in queries

·	Adding or subtracting two tables based on different language drivers

·	Creating multi-table documents based on tables with different language drivers

·	Defining referential integrity between tables based on different language drivers

·	Defining a lookup table using a table based on a language driver different than the master table.

Corel Paradox is designed to handle such operations; however some language driver combinations may yield unexpected results. For best results, choose one language driver, then restructure your tables so they use that driver.

 Note

·	You can use Corel Paradox language drivers only for Corel Paradox tables and dBASE language drivers for dBASE tables.

 Related Topics


Data formats

In Corel Paradox, the default symbols and formats used for your data are based on the International settings in the Windows Control Panel. For example, if you set your Windows Control Panel money symbol to "$", Corel Paradox uses it when displaying money values. Similarly, Corel Paradox formats date and time values according to the settings used by Windows.

To set Corel Paradox's defaults permanently to different formats, begin by altering the settings in the Windows Control Panel. When you alter these settings it affects the default formats used in all Corel Paradox operations, except some internal data conversion operations.

 Related Topics


Internal data conversion

Many operations require Corel Paradox to convert a string of characters to a number, date, or time value. For example, when you enter a date into a table, Corel Paradox converts the characters you type to a value representing a date. This process is automatic and generally uses format settings in Windows Control Panel to control the conversion. However, a few operations use BDE to convert character strings to number, date, or time values and to convert these data formats to character strings. These operations include

·	Queries that use selection criteria or perform pattern matching on number and date fields

·	Table restructures that change alpha fields to number or date fields (and the reverse)

·	Adding or subtracting records between tables that do not have the same structure

Because these operations use BDE for this internal data conversion, you must ensure the BDE configuration file uses the same data format conventions and settings as Windows Control Panel; otherwise, unexpected results might occur.

 Note

·	This does not affect the way data is formatted when you display it; Corel Paradox uses the settings in Windows Control Panel to display data.

We recommend using standard data formats when possible.

In most cases, you will not have to worry about these settings, because BDE (when installed) is configured to the data format conventions of the country defined in Windows Control Panel. However, if you customize Windows Control Panel so it uses settings that are different from your country's data format conventions, you should also configure BDE to the same settings; otherwise, queries that match date and numeric values may yield unexpected results.

For example, the "forward-slash" (/) is commonly used in U.S. workstations as a date separator. If you change this to an ampersand ( & ) in Windows Control Panel, you should also configure BDE so it uses an ampersand for a date separator.

To configure BDE to specialized date, time, or number formats

1.	Start the BDE Administrator.

2.	Choose either the Date, Time, or Number page, by clicking the respective tab. You will probably need to change the formats in all three sections.

3. Type in the parameters in the various format sections that match those of the new data format. For information on the specific sections of the format pages, see the BDE Administrator online Help.

4.	Click File, Save to save your changes.

5. If don't want to save your changes, click File, Exit and choose No when prompted to save your changes.

You can also update BDE to the current settings in Windows Control Panel by reinstalling BDE.

 Note

·	Make a backup of the BDE configuration file before changing it with the BDE Administrator.

·	If you customize BDE so it uses special number formats, you may not be able to share saved queries with other workstations unless those workstations have also been customized to the same settings.

 Tip

·	If you want a special format for a specific table or field, change the appropriate Format properties. For more information, see About data formats.

 Related Topics


Preventing character conversion

If you want to prevent Corel Paradox from converting characters, use the Strict Translation command from the Table or Form menu while editing a table. If you turn Strict Translation on and try to save a record containing characters that are not supported by your code page, Corel Paradox displays the message "Character(s) not supported by Table Language" and prevents you from saving the record until you do either of the following:

·	Remove (or replace) the unsupported characters

·	Turn Strict Translation off

 Related Topics


Changing the default language drivers

To change the Corel Paradox default language drivers, run the BDE Configuration Utility. On the Drivers page click the driver that you want to change in the Driver Name box. In the Parameters box there is a setting called LANGDRIVER: you can type in the new language driver that you want to use. Each language driver is appropriate only for a particular code page; for example, the Corel Paradox International (Corel Paradox 'intl') driver works with code page 437 only. Use language drivers appropriate for your code page. To see the language drivers appropriate for each code page, see the BDE Configuration Utility Online Help. You can assign different language drivers to different tables

To change a table's language driver

1.	With a table open, click Format, Restructure Table.

2.	Choose Table Language from the Table Properties list box.

3.	Click the Modify button.

4.	Choose a new table language from the Language list box.

Use the BDE Administrator to change the default language driver for your Corel Paradox tables.

 Related Topics


About creating tables

Corel Paradox stores data in tables. After you create your tables, you can add forms, reports, and queries to manage and manipulate your data.

A basic table structure consists of a series of columns, which represent the table fields and rows that contain the individual records in the table. Each row is a single record, regardless of whether every field in that row contains data.

Some elements, such as field names, types, and sizes, are common in creating all tables. However, to ensure data integrity and establish the sharing and verification of data between tables, some tables’ fields need special properties assigned to them. A primary key, for example, ensures that the data entered in a table record is unique to that record.

Corel Paradox supports several Corel Paradox, dBASE, and SQL file formats. When you create a table, you can

•	Name the fields of the table (required)

•	Specify field types (required) and sizes (required for some field types)

•	Specify a table language to control sort order and available character set

•	Assign indexes to the table

•	Borrow the structure of an existing table

•	Assign a key, or primary index, to the table

•	Assign secondary indexes to the table

•	Define validity checks for individual fields

•	Establish a table lookup to another table

•	Establish referential integrity with another table

•	Specify password security for the table or individual fields

Once you create a table, you can sort and filter its records or search for data with commands and queries.

If you need to add or delete fields or make any kind of change to an existing table, you can restructure the table at any time. For more information, see About restructuring tables.

 Related Topics


Guidelines for creating tables

Planning is the first step in creating a table. You need to decide what you want the table to contain and how you want to lay it out. When you plan a table, keep these guidelines in mind:

•	Put as little information as possible in each field. This allows for more flexible data maintenance and more straightforward querying. For example, if you break an address into separate fields for street, city, and state, you can easily query on these specific field values. This is where designing a database table differs from designing a spreadsheet. (If you ever want to see your data in a spreadsheet-like format, you can create a crosstab of your table's data. For more information, see About charts and crosstabs.)

•	Be complete. Include fields for all the information you think you'll need, but don't clutter the table with information you don't need.

•	Use small tables. If you have a great deal of information to organize, it's generally better to put it in several small, related tables rather than in one all-encompassing table.

•	Keep your tables familiar. It's often best to create tables that correspond to the kinds of objects [image] like forms and files [image] you already use.

•	Avoid redundancy. Beyond the common fields necessary for linking tables, don't duplicate information in different tables.

 Related Topics


Creating a simple table
Creating a Corel Paradox table

The following instructions describe how to create a Corel Paradox table. To create another type of table, choose a different table type in step 2. Slightly different dialog boxes appear in the other steps. You can click Help when viewing them for a description.

To create a Corel Paradox table

1.	Click File, New, Table.

2.	 In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box and double-click the New Table icon.

3.	In the New Table dialog box, click the Blank button.

4.	If you want a table type other than Corel Paradox 8.0, choose the appropriate type from the Table type list box and click OK; otherwise, click OK.

5.	In the Create Paradox Table dialog box, type the name of the field in the Field Name column of the Field Roster. See Rules for Corel Paradox field names for more information.

6.	Right-click the Type column and choose the appropriate field type. See Corel Paradox field types and sizes for more information.

7.	Type an appropriate field size (if required) in the field size column.

8.	Press the down arrow key to create another field and repeat steps 3 to 5 until you've specified as many fields as necessary.

9.	To save the table, click the Save As button and type a filename in the File name box of the Save Table As dialog box. Using the Save In list box, locate the folder into which you want to save the table. Then, click the Save button.

Once you save a new table, you must use the Restructure command restructure it to add and delete fields or change any other part of its structure.

You can now enter data in your new table.

Note

•	By default, Corel Paradox saves tables as Paradox 7. If you want to make your tables compatible with earlier versions of Corel Paradox, or want to reduce the file size of tables where possible, open the BDE Adminstrator and change the default setting so that Corel Paradox saves files as Paradox 4 or 5. Corel Paradox will then save tables as a lower version, based on the features in the table.

•	Corel Paradox does not support extended characters, such as letters with accents, for table and field names. Use only standard characters.

 Related Topics


Rules for Informix field names

•	The maximum length of a field name is 18 characters.

•	A field name must begin with a letter (A–Z, a–z).

•	A field name can contain digits from 0 to 9, uppercase or lowercase letters, and underscore (_) characters.

•	Each field name in a table must be unique. (You cannot have two identical field names.)

 Related Topics


Rules for InterBase field names

•	The maximum length of a field name is 31 characters.

•	A field name must begin with a letter (A–Z, a–z).

•	A field name can contain letters (A–Z, a–z), digits, $, or underscore (_) characters.

•	You cannot use InterBase reserved words for table names. See the InterBase Programmer's Reference for a list of reserved words.

•	Each field name in a table must be unique. (You cannot have two identical field names.)

 Related Topics


Rules for Oracle field names

•	The maximum length of a field name is 30 characters.

•	A field name must begin with a letter (A–Z, a–z).

•	A field name can contain letters (A–Z, a–z), digits (0–9), or the _, $, or # characters.

•	You cannot use ORACLE reserved words for remote table names, quoted table names, or quoted index names. For a list of reserved words and other naming restrictions, see the ORACLE Programmer's Reference.

•	Each field name in a table must be unique. (You cannot have two identical field names.)

 Related Topics


Rules for Sybase field names

•	The maximum length of a field name is 30 characters.

•	A field name must begin with a letter (A-Z, a-z).

•	A field name can contain letters (A-Z, a-z), digits (0-9), or the _, $, or # characters.

•	You cannot use SQL Server reserved words for remote table and column names. See the SQL Server Programmer's Reference for a list of reserved words.

•	Field names may be case sensitive, depending on how SQL Server is installed.

•	Each field name in a table must be unique. (You cannot have two identical field names.)

 Related Topics


Rules for Paradox field names
Rules for Corel Paradox field names

Follow these rules when specifying field names for Corel Paradox tables:

•	The maximum length of a field name is 25 characters.

•	A field name cannot start with a blank space (unless it is enclosed in quotation marks), but it can contain blank spaces.

•	Each field name in a table must be unique. (You can not have two identical field names.) You cannot make a name unique by adding a blank space at the end of the name or changing the capitalization of the name.

•	Corel Paradox does not allow you to use extended characters as field names.

•	If you plan to use the table with ObjectPAL, a field name should not contain the following characters:

Square brackets [ ], curly braces { }, or parentheses ( )

The combination of a dash and a greater-than symbol –>

Periods (.), underscores (_), or pipes (|)

The # symbol by itself (you can combine # with other characters, as in the field name Phone #)

•	If you plan to use the table in a query,, a field name should not contain commas (,), pipes (|), or exclamation points (!) because these characters have special significance.

•	Avoid using SQL keywords, such as SELECT and COUNT.

 Related Topics


Rules for dBASE field names

Follow these rules when specifying field names for dBASE tables:

•	A field name cannot exceed 10 characters.

•	A field name cannot contain blank spaces.

•	Each field name in a table must be unique. You cannot have two identical field names. You cannot make a name unique by adding a blank space at the end of the name or changing the capitalization of the name.

 Related Topics


Creating a field
Creating a field in a table

To create a field in a table

1.	Open a table.

2. Click Format, Restructure Table.

3.	Click the bottom field in the Field Roster and then press the down arrow key to create a blank field. the arrow keys to move to a new row in the Field Roster, if necessary.

4.	In the Create Paradox Table dialog box, type the name of the field in the Field Name column of the Field Roster. For more information, see Rules for Corel Paradox field names.

5.	Right-click the Type column and choose the appropriate field type. For more information, see Corel Paradox field types and sizes.

6.	Type an appropriate field size (if required) in the field size column. For more information, see Corel Paradox field types and sizes.

7.	Press the down arrow key to create another field and repeat steps 3 to 5 until you've specified as many fields as necessary.

8.	To save the table, click the Save As button and type a filename in the File name box of the Save Table As dialog box. Using the Save In list box, locate the folder into which you want to save the table. Then, click the Save button.

 Related Topics


Paradox field types and sizes
Corel Paradox field types and sizes

The valid Corel Paradox field types and sizes are

Symbol	Size	Type
A	1 - 255	Alpha
N		Number
$		Money
S		Short
I		Long Integer
#	0 - 32*	BCD
D		Date
T		Time
@		Timestamp
M	1 - 240**	Memo
F	0 - 240**	Formatted Memo
G	0 - 240***	Graphic
O	0 - 240***	OLE
L		Logical
+		Autoincrement
B	0 - 240***	Binary
Y	1 - 255	Bytes
* Number of digits after the decimal point

** Memo and formatted memo fields can be virtually any length. The value you specify in the Create Table dialog box refers to the amount of the memo Corel Paradox stores in the table (1 to 240 characters for memos and 0 to 240 characters for formatted memos). The entire memo is stored outside the table. For example, if you assign a size value of 45 to the field, Corel Paradox stores the first 45 characters in the table. It stores the whole memo field in another file (with the extension .MB) and retrieves it as you scroll through the records of the table.

*** Optional

 Tip

•	If all your memos are smaller than a given size (for example, 200 characters), you can save space and time by setting the memo field size equal to or larger than this size. Corel Paradox stores the entire memo in the table if it is less than the given size.

 Related Topics


Paradox alpha fields
Corel Paradox alpha fields

Corel Paradox alpha fields contain strings consisting of

•	Letters

•	Numbers

•	Special symbols like %, &, #, or =

•	Other printable ASCII characters

 Related Topics


Paradox number fields
Corel Paradox number fields

Corel Paradox number fields must contain only numbers. Number fields can hold positive or negative values. The range of values possible for a number field is from -10307 to 10308 with 15 significant digits. Use number fields when you plan to perform calculations on the values in the fields.

Number fields are best used when you want to perform calculations on the values in the field.

 Tip

•	It is a good idea to use an alpha field rather than a number field for phone numbers or zip codes. In an alpha field, you can include parentheses and hyphens.

•	You can change the default display of a number field by right-clicking the field, clicking Properties, and clicking the Format page.

 Related Topics


Paradox money fields
Corel Paradox money fields

Corel Paradox money fields, like number fields, can contain only numbers. They can hold positive or negative values. But by default, money fields are formatted to display decimal places and a money symbol. Regardless of the number of decimal places displayed, Corel Paradox recognizes up to six decimal places when performing internal calculations on money fields.

 Tip

•	You can change the default display of a money field by right-clicking the field, clicking Properties, then clicking the Format page.

 Related Topics


Paradox short fields
Corel Paradox short fields

Corel Paradox short fields are special number fields that can contain only whole numbers in the range -32,767 to 32,767. Short fields require less disk storage than ordinary number fields. They are available only in Corel Paradox tables.

Because they do not allow the same formatting options as number fields, short fields should be used only by advanced Corel Paradox users.

 Related Topics


Paradox long integer fields
Corel Paradox long integer fields

Corel Paradox long integer fields are 32-bit signed integers that contain whole numbers (non-fractional) with complete accuracy in the range -2147483648 to 2147483647 (plus or minus 2 to the 31st). Long integer fields require more space to store than short fields.

 Related Topics


Paradox BCD fields
Corel Paradox BCD fields

Corel Paradox BCD fields contain numeric data in a BCD (Binary Coded Decimal) format. Use BCD fields when you want to perform calculations with a higher level of precision than that available with the use of other numeric fields. Calculations on BCD fields are not performed as quickly as those on other numeric fields.

The BCD field type is provided primarily for compatibility with other applications that use BCD data. Corel Paradox correctly interprets BCD data from other applications that use the BCD type. However, when Corel Paradox performs calculations on BCD data, it converts the data to the numeric float type, then converts the result back to BCD.

 Note

•	Although BCD fields can handle larger numbers, you can only enter a number with 15 significant digits or less into a BCD field.

 Related Topics


Paradox date fields
Corel Paradox date fields

Corel Paradox date fields can contain any valid date from January 1, 9999 BC to December 31, 9999 AD. Corel Paradox correctly handles leap years and leap centuries and checks all dates for validity. Corel Paradox treats all BC years as leap years.

Corel Paradox provides three date formats:

•	Windows Short uses the short date format you define from the Windows Control Panel International dialog box.

•	Windows Long uses the long date format you define from the Windows Control Panel International dialog box.

•	mm/dd/yy displays dates using two-digit numbers for the month, followed by the day, followed by the year, each separated by a slash mark (/).

•	DB Date displays dates using one digit for months and days 1 through 9 and two digits for the year in the format month/day/year (for example, 1/1/01).

•	ISO Date displays a four-digit year followed by two-digit numbers for the day and month, each separated by periods, in the format year/month/day (for example, 1901.01.01).

You can also define your own custom format. For more information, see Creating a custom data format.

 Related Topics


Paradox time fields
Corel Paradox time fields

Corel Paradox time fields contain times of day, stored in milliseconds since midnight, and are limited to 24 hours.

Corel Paradox provides two formats for entering and displaying time variables.

•	Windows Time uses the time format you define from the Windows Control Panel International dialog box.

•	hh:mm:ss am Formats the time to display two digits of hours, minutes, and seconds, separated by colons and followed by AM or PM.

You can also define your own custom format. For information, see Creating a custom data format.

 Related Topics


Paradox timestamp fields
Corel Paradox timestamp fields

Corel Paradox timestamp fields contain both time and date values. To enter today's date and the current time, press Spacebar repeatedly until Corel Paradox enters the data. Rules for this field type are the same as those for date fields and time fields.

 Related Topics


Paradox memo fields
Corel Paradox memo fields

Use memo fields for text strings that are too long to store in an alpha field.

Memo fields can be virtually any length. The size value you assign refers to the amount of the memo Corel Paradox stores in the table. This can be from 1 to 240 characters. Corel Paradox stores the whole memo outside the table (in the .MB file). Corel Paradox retrieves the data from the .MB file as you scroll through the records of the table. The amount of data a memo field contains is limited only by the disk space available on your system.

Memo fields can contain letters, numbers, special symbols (such as %, &, #, and =), or any other printable ASCII character (except null). You can enter line breaks, tabs and other print control characters in memo fields.

Displaying memo data

•	Corel Paradox provides you with several ways of viewing memo data. For more information, see Displaying memo fields.

 Tip

•	If all your memos are smaller than a given size (for example, 200 characters), you can save space and time by setting the memo field size to be equal to or larger than this given size. You will still have an .MB file, but Corel Paradox will not have to access it to display the field's data.

 Related Topics


Paradox formatted memo fields
Corel Paradox formatted memo fields

Use memo fields for text strings that are too long to store in an alpha field. Formatted memo fields are exactly the same as memo fields except that you can format font, style, color and size of the text. For information see Formatting the text in a formatted memo field.

Formatted memo fields can be virtually any length. The size value you assign refers to the amount of the memo Corel Paradox stores in the table. This can be from 1 to 240 characters. Corel Paradox stores the whole memo outside the table (in the .MB file). Corel Paradox retrieves the data from the .MB file as you scroll through the records of the table. The amount of data a memo field contains is limited only by the disk space available on your system.

Memo fields can contain letters, numbers, special symbols (such as %, &, #, and =), or any other printable ASCII character (except null). You can enter line breaks, tabs and other print control characters in memo fields.

Displaying memo data

Corel Paradox provides you with several ways of viewing formatted memo data. For more information, see Displaying memoand graphic (BLOB) fields.

 Tip

•	If all your memos are smaller than a given size (for example, 200 characters), you can save space and time by setting the memo field size to be equal to or larger than this given size. You will still have an .MB file, but Corel Paradox will not have to access it to display the field's data.

 Related Topics


Formatting the text in a formatted memo field

To format the text in a formatted memo field

1.	Right-click any record in the field and click Properties.

2.	Click the Font tab to bring it to the front.

3.	Change the font, style, size, and color of the text as appropriate.

4.	Click the Apply button to apply and view the changes without closing the Properties dialog box.


Paradox graphic fields
Corel Paradox graphic (BLOB) fields

Corel Paradox graphic fields contain pictures. You can create graphics in a painting or drawing application, or scan in images. Corel Paradox supports the following image file formats: .BMP, .PCX, .TIF, .GIF, and .EPS.

When you paste a graphic into a graphic field, Corel Paradox converts the graphic into the .BMP format.

Graphic fields do not require a size because they are not stored in the table, but in separate files.

For information about displaying graphics (BLOB) fields, see Displaying memo and graphic (BLOB) fields.

 Related Topics


Paradox OLE fields
Corel Paradox OLE fields

Use the OLE field to store different kinds of data, such as images, sound, documents, and so on. The OLE field provides you with a way to view and manipulate this data without leaving Corel Paradox. For more information, see About OLE for more information.

You do not need to specify a size for OLE fields because they are not stored in the table, but in separate files.

 Related Topics


Paradox logical fields
Corel Paradox logical fields

Corel Paradox logical fields contain values representing true or false (yes or no). By default, valid entries include "True" and "False" (case is not important).

You can format the text of Paradox logical fields. For more information see Specifying the format for numeric data.

 Related Topics


Paradox autoincrement fields
Corel Paradox autoincrement fields

Corel Paradox autoincrement fields contain long integer, read-only (non-editable) values. Corel Paradox begins with the number 1 and adds one number for each record in the table.

Deleting a record does not change the field values of other records.

When creating a Corel Paradox table, you can specify the starting number of an autoincrement field by specifying a minimum value for it. For more information, see Creating minimum and maximum value validity checks for more information.

 Related Topics


Paradox binary fields
Corel Paradox binary fields

Binary fields should be used only by Corel Paradox application developers and advanced users who need to work with data that Corel Paradox cannot interpret. Corel Paradox cannot display or interpret binary fields, but ObjectPAL can access them. A common use of a binary field is to store sound.

Unlike bytes fields, binary fields do not require a size because they are stored in a separate file (the .MB file), not in the table.

 Related Topics


Paradox bytes fields
Corel Paradox bytes fields

Bytes fields should be used only by Corel Paradox application developers and advanced users who need to work with data that Corel Paradox cannot interpret. Corel Paradox cannot display or interpret bytes fields, but ObjectPAL can access them. A common use of a bytes field is to store bar codes or magnetic strips.

Unlike binary fields, bytes fields are stored in the Corel Paradox table (rather than in the .MB file), allowing for faster access.

 Related Topics


Paradox 4 field types
Corel Paradox 4 field types

The valid Corel Paradox 4 field types and sizes are

Symbol	Size	Type
A	1 - 255	Alpha
N		Number
$		Money
D		Date
S		Short
M	1 - 240*	Memo
F	0 - 240*	Formatted Memo
B	0 - 240**	Binary
G	0 - 240**	Graphic
O	0 - 240**	OLE
* Memo and formatted memo fields can be virtually any length. The size value you specify in the Create Table dialog box refers to the amount of the memo Corel Paradox stores in the table (1 to 240 characters for memos and 0 to 240 characters for formatted memos). The whole memo is stored outside the table. For example, if you assign a size value of 45 to the field, Corel Paradox stores the first 45 characters in the table. It stores the whole memo field in another file (with the extension .MB) and retrieves it as you scroll through the records of the table.

** Optional

 Tip

•	If all your memos are smaller than a given size (for example, 200 characters), you can save space and time by setting the memo field size equal to or larger than this size. Corel Paradox stores the entire memo in the table if it is less than the given size.

 Related Topics


Paradox 3.5 field types
Corel Paradox 3.5 field types

The valid Corel Paradox 3.5 field types and sizes are

Symbol	Size	Type
A	1 - 255	Alpha
N		Number
$		Money
D		Date
S		Short
 Related Topics


dBASE field types and sizes

The valid dBASE field types and sizes are

Symbol	Size	Decimal Point	Type
C	1 - 254		Character (alpha)
F*	1 - 20	0 - 18, and <=Size - 2	Float (numeric)
N	1 - 20**	0 - 18, and <= Size - 2	Number (BCD)
D			Date
L			Logical
M***			Memo
O****			OLE
B****			Binary
*Available only in dBASE IV and later versions.

** For dBASE III+ tables, the size can be from 1 - 19

***Memo field formats differ between dBASE III+ and later versions of dBASE.

****Available only in dBASE for Windows and later versions

 Related Topics


dBASE character fields

dBASE character fields can contain any printable character (including blank spaces). The maximum size of a dBASE character field is 254.

 Related Topics


dBASE float fields

dBASE provides two ways to store numeric data. The float number type contains numeric data in a binary floating-point format. Use the float number type on fields that will not require precise calculations to be performed on them; some degree of precision is rounded or truncated during calculation. Float number fields are best used to contain whole numbers, or numbers of up to two decimal places.

The size of a dBASE float number field can be from 1 to 20.

Setting decimal places

You set the number of decimal places in the Dec column of the Field Roster in the Create/Restructure dialog box.

In the Dec column, you specify how many decimal places to store. Enter a number at least 2 less than the field size. This is because Corel Paradox counts the decimal point and sign (if any) as part of the field size.

 Related Topics


dBASE number fields

dBASE number fields contain numeric data in a Binary Coded Decimal (BCD) format. Use number fields when you will need to perform precise calculations on the field data. Calculations on number fields are performed more slowly, but with greater precision than on float number fields.

The size of a dBASE number field can be from 1 to 20 (except for dBASE III+ tables, which can be from 1 to 19).

Setting decimal places

Set the number of decimal places in the Dec column of the Field Roster in the Create/Restructure dialog box.

In the Dec column, you can specify how many decimal places to store. Enter a number at least 2 less than the field size. This is because Corel Paradox counts the decimal point and sign (if any) as part of the field size.

 Related Topics


dBASE date fields

Date fields contain dates. The default date entry and display format is Windows Short (which uses the short date format you defined from the Windows Control Panel International dialog box), but you can format dBASE date fields the same way you format Corel Paradox date fields. For more information see Specifying the format for numeric data.

The size for a date field is always 8.

 Related Topics


dBASE logical fields

Logical fields contain a single character representing True or False (Yes or No) values. In dBASE logical fields, logical true can be entered as T, t, Y, or y. Logical false can be entered as F, f, N, or n. The size for a dBASE logical field is always 1.

dBASE logical fields have the Logical Format choice on their menu. Choose it to choose what values to accept in the logical field. You will see a menu of your most recent formats (such as True/False or Male/Female).

 Related Topics


dBASE memo fields

dBASE memo fields contain blocks of text that are too large to be stored in a character field. The contents of memo fields are stored externally to the table. You do not specify a field size for dBASE memo fields.

 Related Topics


dBASE OLE fields

Use the OLE field to store different kinds of data, such as images, sound, documents, and so on. The OLE field provides you with a way to view and manipulate this data without leaving Corel Paradox. See About OLE for more information. You do not need to specify a size for OLE fields because they are not stored in the table, but in separate files.

 Related Topics


dBASE binary fields

Binary fields should be used only by application developers and advanced users who need to work with data that Corel Paradox cannot interpret. Corel Paradox cannot display or interpret binary fields, but ObjectPAL can access them. A common use of a binary field is to store sound. Binary fields do not require a size because they are stored in a separate file (the .DBT file), not in the table.

 Related Topics


dBASE record lock fields

In a multi-user environment, each user can place record locks on a shared table. For example, if user JSMITH is editing record number 12 of Stock, user MBROWN cannot access that record until it is unlocked. This prohibits one user from unintentionally overwriting another user's work.

The dBASE table type gives you the Record Lock option to show you information about a locked record. If you check Record Lock, Corel Paradox adds a hidden field to the table. This field shows you when a record was locked and by whom.

Use the Create dBASE Table dialog box to create the Record Lock field for a dBASE table. Record Lock is not available for dBASE III+ tables.

The information you see when you find a locked field depends on the Info Size you specify. The Record Lock field can be from 8 to 24 characters. The default is 16.

•	The first two characters tell whether a user has changed the record.

•	The next three characters tell the time a user placed the lock.

•	The next three characters tell the date a user placed the lock.

•	The remaining 16 characters are optional. They tell the name of the user that placed the lock.

The default size of 16 displays the changed status of the record, the time and date of the lock, and the first 8 characters of the user who placed the lock.

 Note

•	Although Corel Paradox adds the Record Lock field to the table, you will not see it when you view the table. You see a record's Record Lock field only if you are locked out of that record.

 Related Topics


Informix field types and sizes

The following table list valid Informix field types and sizes. For detailed information on field types and sizes, see your Informix documentation.

Name	Size	Dec	Description
CHAR	1-32,769		Fixed-length character data
SMALLINT			Whole number -32,767 to +32,767
INTEGER			Integer -2,147,483,647 to +2,147,483,647
SMALLFLOAT			Single-precision floating-point number with approximately 8 significant digits
FLOAT			Single-precision floating-point number with up to 16 significant digits
MONEY	0-32	0-32	Fixed-point number with up to 32 significant digits
DECIMAL	0-32	0-32	Decimal floating-point number with up to 32 significant digits
DATE			Calendar date Jan 1, 1900 to Dec 31, 9999
DATETIME			Calendar date Jan 1, 0001 to Dec 31, 9999 and 24-hour time of day
INTERVAL			Span of time (year-month or day-time)
SERIAL			Sequential number up to 2,147,483,647 assigned automatically by the database server when a row is inserted
BYTE			Any type of binary data
TEXT			Variable-length character data to 2,147,483,647 bytes
VARCHAR	1-255		Variable-length character data
 Note

•	In Paradox you can create all Informix field types, and you can view and edit data in all fields except BYTE, CHAR > 255, and TEXT.

 Related Topics


InterBase field types and sizes

The following table list valid InterBase field types and sizes. For detailed information on field types and sizes, see your InterBase documentation.

Name	Size	Dec	Description
SHORT			Integer -32,768 to +32,767
LONG			Integer -2,147,483,647 to +2,147,483,647
FLOAT			Floating-point number with up to 7 digits of precision
DOUBLE			Floating-point number with up to15 digits of precision
CHAR	0-32,767		Fixed-length character data
VARCHAR	0-32,767		Variable-length character data
DATE			Calendar date Jan 1, 0100 to Dec 11, 5941
BLOB			Any type of binary data
ARRAY			You cannot create an ARRAY field
 Note

•	In Corel Paradox you can create all InterBase field types except ARRAY, and you can view and edit data in all fields except BLOB.

 Related Topics


Oracle field types and sizes

The following table list valid Oracle field types and sizes. For detailed information on field types and sizes, see your Oracle documentation.

Name	Size	Dec	Description
CHAR	1-255		Fixed-length character data
RAW	1-255		Binary data to 255 bytes
DATE			Calendar date Jan 1, 4712 BC to Dec 31, 4712 AD and 24-hour time of day
NUMBER	0-38		Floating-point number with up to 38 digits of precision
LONG			Variable-length character strings up to 2 gigabytes ((2**32)-1 bytes)
LONG RAW			Binary data up to 2 gigabytes
FLOAT			Floating-point number with up to 38 digits of precision
VARCHAR2	1-2000		Variable-length character data
VARCHAR	1-255		Variable-length character data
 Note

•	In Corel Paradox you can create all Oracle field types, and you can view and edit data in all fields except LONG, LONG RAW, and RAW.

 Related Topics


Sybase field types and sizes

The following table list valid Sybase field types and sizes. For detailed information on field types and sizes, see your Sybase documentation.

Name	Size	Dec	Description
CHAR	1-255		Fixed-length character data
VARCHAR	1-255		Variable-length character data
INT			Integer -2,147,483,647 to +2,147,483,647
SMALLINT			Integer -32,768 to +32,767
TINYINT			Integer 0 to 255
FLOAT			8-byte floating-point number
MONEY			-922,337,203,685,477.5808 to +922,337,203,685,477.5808
TEXT			Variable-length character data up to 2,147,483,647 bytes
BINARY	1-255		Fixed-length binary data up to 255 bytes
VARBINARY	1-255		Variable-length binary data up to 255 bytes
IMAGE			Variable-length binary data 0 to 2,147,483,647 bytes
BIT			Either 0 or 1. Cannot be NULL. Integer values other than 0 or 1 are interpreted as 1
DATETIME			Calendar date Jan 1, 1753 to Dec 31, 9999 and 24-hour time of day
TIMESTAMP			Binary timestamp
REAL			4-byte floating-point number
SMALLMONEY			-214,748.3648 to +214,748.3647
SMALLDATETIME			Calendar date Jan 1, 1900 to Jun 6, 2079 and 24-hour time of day
 Note

•	In Corel Paradox you can create all Sybase field types, and you can view and edit data in all fields except BINARY, IMAGE, TEXT, TIMESTAMP, and VARBINARY.

 Related Topics


About keys and indexes in tables

An index is a file that determines the order in which Corel Paradox accesses the records in a table. Although you, the user, never see this file, Paradox uses it to link tables and access  records. Corel Paradox, dBASE, and SQL tables use indexes to organize the records in a table, but their indexes work differently.

Indexes can be primary or secondary. In Corel Paradox, the primary index is also called the key.

Corel Paradox

When you add a key to a table, you are creating a primary index. Corel Paradox organizes the records of a keyed table according to the values in the key field(s). By default, all indexes organize and access data in ascending order (A to Z, or 0 to 9). The key also helps prevent data duplication because it does not allow you to enter duplicate data. A primary key must be the first field in a table.

A composite key is exactly the same as the primary key except that it is composed of a group of initial fields rather than a single field. Corel Paradox creates a composite index and sorts the records in the table based on the first field in the key and then on subsequent fields, in the order in which they appear in the table.

A secondary index allows you to define an alternate way of sorting the records in a table. The physical location of the records does not change. Secondary indexes are also used for queries, to speed performance, and to establish links between tables. For more information on secondary indexes, see About secondary indexes.

dBASE

dBASE uses an index to organize the records in a table according to the values in one or more fields.

SQL

SQL tables use unique and non-unique indexes, but they do not use the primary keys that Corel Paradox tables use. You can create multiple indexes for an SQL table; for each index, you specify whether it is unique or non-unique. SQL indexes, unlike Corel Paradox and dBASE indexes, are always maintained.

You can use Corel Paradox to create and modify indexes on SQL tables, but you cannot specify which index to use in Corel Paradox.

When you use an SQL table in Corel Paradox, the table should have a unique index. If it does not have a unique index and you edit the table's data, you may not be able to view the edits as you are making them.

 Related Topics


About primary indexes (keys)
About primary indexes (key fields)

Corel Paradox organizes the records of a keyed table according to the values in the key of the table. This field, or fields, which make up the table's key, are its primary index.

The key (primary index) organizes and access all of the records in the table in ascending order (A to Z or 0 to 9). Changing the key (primary index) changes where Corel Paradox physically stores each record in the table.

The primary key requires each value in the field(s) that defines the key to be unique. For example, if the Customer No field is identified as the key of the Customer table, each value in the Customer No field must be unique, thereby guarding against the duplication of data within the table.

The primary key for a table must be the first field in the table.

A primary index from a composite key

If you identify more than one field as keyed, it is known as a composite key. These fields, taken as a group, must be unique for each record of the table. When you define a composite key, Corel Paradox creates a primary composite index, which organizes the records by the first field of the key (according to the table structure), then the next, and so on. For more information about composite keys, see Composite key fields.

 Tips

•	Keys are required for most types of table links and for using Corel Paradox data integrity features.

•	Keys are also used to speed up queries, searches, and locates. If a key is a composite key, Corel Paradox only uses the first field of the key to speed up such operations.

•	When you use an autoincrement field type as the table's key, Corel Paradox automatically creates a unique value for each record in the table.

 Related Topics


Rules for defining key fields

Follow these rules when you define a key:

•	A table can have only one key. This key can be made up of one or more fields.

•	You cannot assign a key to memo, formatted memo, graphic, OLE, binary, logical, or bytes fields.

•	If a key is defined as a single field, that field must be the first field in the table.

•	If you identify more than one field as keyed, you create a composite key. These fields, taken as a group, must be unique for each record of the table. The composite key must begin on the first field in the table.

The effect of restructuring tables on key fields

If you add keys to a table that was previously unkeyed or had different keys, you can cause a key violation: Data already entered into the table violates a rule established by the new key. Corel Paradox writes the key-violating records to a special temporary table called Keyviol.

Records that are key violations are deleted from your table. You can change the records in the Keyviol table so they comply with the key requirements, then add them back to your original table click Tools, Utilities, Add.

 Related Topics


Creating a key
Creating or removing a key

To define a Corel Paradox field as a key field in a table

1.	Open a table.

2.	Click Format, Restructure Table.

3.	If the field on which you want to define the key is not the first field in the table, click the left column of the field in the Field Roster and drag it to the top of the Field Roster; otherwise, go to step 4.

4.	Click the Key column to select it.

5.	Double-click the Key field so that an asterisk (*) appears.

To remove a key from a field or group of fields

1.	Follow steps 1 and 2 of the previous procedure.

2.	Click a Key field to select it.

3.	Double-click the Key field to remove the asterisk (*).

 Notes

•	Removing one or more fields from a composite key may cause duplicate values in the remaining key field(s). If this happens, Corel Paradox places duplicate records in a temporary table called Keyviol as discussed in Rules for defining key fields.

•	If you remove a key located above the other keys, Corel Paradox displays an error message when you try to save. To correct the error, ensure that all key fields are the first fields in the table.

•	If you add a primary key to a table that was previously unkeyed or had different keys, you might cause key violations. You can also rearrange fields so that the key fields are no longer the first consecutive fields in the table. This means data already entered into the table violates the rules established by the key. Paradox deletes key-violating records from your table to a temporary table called Keyviol, located in your private directory. You can change the records in Keyviol so they comply with the key requirements, and then add them back to your original table using the Add command (Tools, Utilities) menu.

If there is already a Keyviol table, Paradox adds a number to the new temporary table, so it might appear as Keyviol1 or Keyviol2. Paradox can create up to 100 temporary tables of the same name (the first is not numbered and the last is number 99).

Paradox deletes key-violating records from your table. You can change the records in Keyviol so they comply with the key requirements, and then add them back to your original table using the Add command (Tools, Utilities menu).

 Related Topics


About secondary indexes

A secondary index is a field or group of fields that you define as

•	An alternate sort order(s) for the table

•	A field you can link the table on

•	A way to speed up certain search and locate operations

A table can have more than one secondary index. In fact, you can identify each field of the table as a secondary index, so you can sort the table on any of its fields. You can also create composite secondary indexes by combining two or more fields.

You cannot create a secondary index on a memo, formatted memo, binary, OLE, graphic, logical or bytes field.

When you use a secondary index, you change only the view order of the records. The physical location of the records in the table does not change (the primary index or key determines the physical sort order for the table).

Corel Paradox tables have the following options for secondary indexes: Composite, Unique, Case-sensitive, and Maintained. Individual fields within secondary indexes have the option Ascending/Descending. For details, see Types of secondary indexes.

Alternate sort orders

You must use a secondary index to re-sort a keyed table. Only an explicitly defined secondary index can override the primary sort order established by a table's key definition.

For example, if you sometimes want to view a Customer table by First Name values, but need to keep the table's key intact, you can define a secondary index on First Name and use it to temporarily change the view order of the records.

Linking tables

Secondary indexes are also used in linking Corel Paradox tables.

For example, you can link the sample Customer and Orders tables and then create a form that displays the orders that each customer has placed. The Orders table has a secondary index identified on its Customer No field. This means Corel Paradox can quickly find all the records with a given Customer No value. When you link the tables, Corel Paradox identifies each Customer No value in Customer, then finds and displays all matching Customer No values in Orders. Using this linked relationship, you can create a form that lists each customer's orders.

In this multi-table form, the Customer and Orders tables are linked by their Customer No fields. As you scroll through Customer records, Corel Paradox displays each customer's orders.

Search and locate operations

Corel Paradox uses a secondary index to speed up some search and locate operations on Corel Paradox tables if the index is:

•	Single-field

•	Case-sensitive

•	Maintained

 Related Topics


Types of secondary indexes

Corel Paradox tables provide many different options for secondary indexes. You can create secondary indexes based on a single field or, you can create composite secondary indexes based on more than one field. Composite indexes sort records based on the first field in the secondary index, and then subsequent fields.

Unique

Unique secondary indexes determine whether records can have duplicate values in the secondary index field or fields. If Unique is checked and two or more records have the same value in the secondary index field, the attempt to define the secondary index fails. You have to eliminate duplicate values before defining the secondary index.

Case-sensitive

Case-sensitive indexes use capitalization, or case, as a criterion for sorting. In a case-sensitive index, uppercase letters sort before lowercase letters.

Maintained

When a secondary index is maintained, Corel Paradox automatically updates the index whenever you update the table. A table must have a key before you can create a maintained secondary index.

A non-maintained index is not automatically updated when you update the table, but you can open a non-maintained index for use on a table if the index is synchronized with the table. To do this, you can use the Filter Table command to (click Format, Filter once you open the appropriate table) to specify the index you want to use while working with a table.

When you view a table with a non-maintained index, the table is temporarily locked and cannot be updated. The table is also locked if you use the ObjectPAL methods setIndex() or switchIndex().

Ascending/Descending

You can specify either ascending or descending sort orders for secondary indexes on Corel Paradox tables. Ascending indexes sort in the following ways:

•	Alpha fields sort characters in the order a, b, c, and so on.

•	Number, money, short, and long integer fields sort in the order 1, 2, 3, and so on.

•	Date, time, and timestamp fields sort in the order 12/1/95, 12/2/95, 12/3/95, and so on.

 Note

•	Unique and Descending indexes cannot be applied to tables saved in Corel Paradox file types earlier than version 7.

 Related Topics


Creating secondary indexes

You can define a secondary index on any field or group of fields in a table. Composite secondary indexes can have up to 16 fields.

To define a field or group of fields as a secondary index

1.	Open a table, or, if you are in the process of creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

2.	Choose Secondary Indexes from the Table Properties list box.

Corel Paradox displays any existing secondary indexes.

3.	Click the Define button. Define to open the Define Secondary Index dialog box. The Fields list displays the fields you can use as a secondary index. BLOB fields are dimmed.

4.	In the Fields box, click the field on which you want to define the secondary index and click the right-arrow button to move it to the Indexed Fields box.

5	Enable the check box index options as appropriate.

6.	To define a composite secondary index, repeat step 4 to add additional fields to the secondary index. If you want to change the sort order within the composite secondary index, you can use the up and down arrow buttons to move the fields around the Indexed fields box.

7.	Click OK to return to the Restructure or Create table dialog box. If you created a composite secondary index, Corel Paradox prompts you to name the index.

8.	To define another secondary index, repeat steps 3 to 7 as appropriate.

9. Click the Save button to save your changes to the table.

 Notes

•	Corel Paradox only prompts you to name secondary indexes that are either composite or case-insensitive.

•	When you create a secondary index based on a single field, Corel Paradox uses the field name to identify the secondary index. Therefore, you cannot name a composite secondary index the same name as any of the fields in the table.

 Related Topics


Modifying a secondary index

You can modify a secondary index at any time.

To modify a secondary index

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Secondary Indexes from the Table Properties list box.

4.	Click the name of the index you want to modify.

5.	Click the Modify button.

6.	Enable or disable index options as appropriate.

7.	Click OK to return to the Restructure Table dialog box.

8.	Click the Save button to save your changes.

Tips

•	To add a field to a secondary index, click the field you want to add in the Fields box, and then click the right-arrow button to move it to the Indexed Fields box.

•	To remove a field from a secondary index, click the field you want to remove in the Indexed Fields box and click the left-arrow button to move it to the Fields box.

•	To change the order of the fields in a composite index (and thereby change how Paradox sorts the records in the table) click the field you want to move and use the up and down arrow buttons to re-position the field.

 Related Topics


Deleting a secondary index

To delete a secondary index

1.	Open a table.

2. Click Format, Restructure Table.

3.	Choose Secondary Indexes from the Table Properties list box.

4.	Click the name of the index you want to delete.

5.	Click the Erase button.

6.	Click the Save button to save your changes.

 Related Topics


About dBASE indexes

When working with dBASE tables, Corel Paradox uses an index to organize the records in a table according to the values in one or more fields.

When you create an index on a dBASE table, Corel Paradox creates a file that contains the indexed field's values and their corresponding record numbers. Corel Paradox refers to the index file when locating and displaying the records in a table.

When you use an index on a dBASE table, the records appear in a different order. However, the records remain stored in the same physical location in which you originally entered them.

Although Corel Paradox supports both .MDX files and .NDX files, it is recommended that you use a dBASE production index (the .MDX file which uses the table name as its file name) whenever possible. Although you can create non-production .MDX files as well as .NDX files, Corel Paradox automatically maintains only the production index.

 Related Topics


Maintained dBASE indexes

You tell Corel Paradox to automatically maintain a dBASE index in the Define Index dialog box.

When you check the Maintained option, Corel Paradox updates the index every time the table changes. This speeds up certain operations like queries.

•	Corel Paradox saves a maintained index as part of an .MDX file and gives the .MDX file the same name as the table. This is your production index. It is recommended that you use production indexes when working in Corel Paradox.

•	When you save a maintained index, Corel Paradox asks you for a tag name. The .MDX file can contain several maintained index specifications.

•	Maintained is unavailable for dBASE III+ tables.

•	Non-maintained indexes are assigned the .NDX file extension. You cannot have a production .NDX file.

•	You must use the Filter Table command (open the table and click Format, Filter) to open a non-maintained index each time before you edit data in the table. Otherwise the non-maintained index will become unsynchronized with the table, and thus unusable.

•	You cannot restructure a non-maintained index.

 Related Topics


Creating a dBASE expression index

Expression indexes are useful for creating a multi-field (composite) index on a dBASE table.

You create an expression index on a value that you express using any formula that results in a value, using dBASE expression syntax. For example, you could create an expression index such as FIRST_NAME + LAST_NAME, where both FIRST_NAME and LAST_NAME are field names and of the same data type.

Some elements of dBASE expressions are not allowed; for example, memory variables, user-defined functions, macro substitution, and references to fields in other tables.

You create an expression index on a dBASE table from the Create Table dialog box or the Restructure Table dialog box.

Follow the instructions in Creating an index on a dBASE table.

To use field names in an expression index, position the insertion point in the appropriate text box and click the field you want in the Field list.

For example, to create the expression index FIRST_NAME + LAST_NAME, click the Expression Index button to position the insertion point in the Expression Index text box, then click FIRST_NAME in the Field list. FIRST_NAME appears in the text box. Enter + and click LAST_NAME in the Field list.

 Related Topics


Creating a subset condition expression

A subset condition expression (also called a filter) is an expression that evaluates to true or false. Corel Paradox creates for a dBASE table an index that points only to values that meet the filter's requirements. For example, if you create the subset condition expression State=CA, you tell Corel Paradox to create an index on those values in the State field that match the value CA.

You create a subset condition expression on a dBASE table from the Create Table dialog box or the Restructure Table dialog box.

Follow the instructions in Creating an index on a dBASE table.

To create a subset condition expression, enter the expression in the Subset Condition (filter) Expression text box.

To use field names in a subset condition, position the insertion point in the appropriate text box and click the field you want in the Fields list. For example, to create the expression index FIRST_NAME + LAST_NAME, position the insertion point in the Subset Condition (filter) Expression text box, then click FIRST_NAME in the Fields list. FIRST_NAME appears in the text box. Enter + and click LAST_NAME in the Fields list.

 Related Topics


Creating an index on a dBASE table

To define a field or group of fields as an index

1.	Open a table.

2. Click Format, Restructure Table.

3.	Choose Indexes from the Table Properties list box.

4.	Click the Define button to open the Define Index dialog box.

5.	In the Fields list box, click the field on which you want to create the index. Corel Paradox adds it to the Indexed Field box.

5.	Enable the check box beside index options as appropriate. Click the Help button for a description of each option.

6.	If you want an expression index, click Expression Index and type an expression in the Expression Index box.

To use field names in an expression index, position the insertion point in the appropriate text box and click the field you want in the Fields list.

For example, to create the expression index FIRST_NAME + LAST_NAME, position the insertion point in the Expression Index text box, then click FIRST_NAME in the Fields list. FIRST_NAME appears in the text box. Enter + and click LAST_NAME in the Fields list. For more information, see Creating a dBASE expression index.

7.	If you want to use a Subset Condition (filter) Expression, enter it following the procedure outlined in step 6. For more information, see Creating a subset condition expression.

8.	Click OK and enter and Index File Name and Index Tag name in the Save Index As dialog box.

 Related Topics


About borrowing structures
Borrowing an existing table structure

Sometimes you might want to create a new table that is similar (or identical) in structure to an existing table. You can borrow the structure from the existing table and change it to meet your needs.

In addition to borrowing the structure of a table, you can also borrow its primary (key) or secondary indexes, validity check definitions, referential integrity, and table lookup definitions. Use the Options settings in the Select Borrow Table dialog box to specify the definitions you want to borrow with the table.

If you borrow a table's key (the Primary Index option) you must ensure that the keyed field is the first field in the new table's Field Roster.

To borrow a table structure

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box and double-click the New Table icon.

3.	In the New Table dialog box, click the Blank button.

4.	In the Create Table dialog box, choose the type of table you want to create and click OK.

5.	In the Create Table dialog box, click the Borrow button.

Corel Paradox opens the Select Borrow Table dialog box, which shows you a list of tables in the current directory (by default, the working directory). The list includes only table types that match the type of table you are creating.

6.	Use the Look In list box to locate and select the table whose structure you want to borrow.

7.	In the Options area, enable the check box beside any table properties you want to borrow.

8.	Click the Open button.

Corel Paradox copies the structure of the table to the Create Table dialog box.

7.	Click the Save As button to name the new table, or, change the table structure as appropriate.

 Related Topics


About validity checks

Validity checks are rules imposed on a field to ensure that the data entered in the field meets certain requirements. For example, if the majority of your customers lived in California, you could define a validity check on the State/Prov field in your Customer information table so that every time you entered a new customer, Corel Paradox would automatically enter CA in the field. If a customer does not live in California, you can edit the field.

The way you define a validity check determines what can be entered in a field. Corel Paradox provides five kinds of validity checks:

Validity check	Meaning

Required field	Every record in the table must have a value in this field.

Minimum	The values entered in this field must be equal to or greater than the minimum you specify here.

Maximum	The values entered in this field must be less than or equal to the maximum you specify here.

Default	The value you specify here will be entered in this field automatically, if no other value is entered.

Picture	You specify a character string that acts as a template for the values that can be entered in this field.

When you save a table, Corel Paradox saves validity checks in a file with the table's name and the .VAL file extension.

Note

•	If you add or change a validity check, you have the option of enforcing the new validity check on existing data (make this choice from the Restructure Warning dialog box). If you choose to enforce the new validity check on existing data, and any data that does not comply with it, Paradox places the non-compliant data in the Keyviol table. Paradox does not do this if the validity check is a picture. You can change the records in Keyviol and then add them back to the table using Tools, Utilities, Add.

•	If you add a new field that has a default validity check on it, and choose to enforce the validity check on existing data, Paradox creates the new field and places the default value in each record of the table. If you define a default validity check on an existing field that contains data, Paradox does not overwrite the existing data with the new default value.

 Related Topics


Displaying and removing validity checks

You can display or remove validity checks at any time.

To display a validity check

1.	Open a table, or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	Choose Validity Checks from the Table Properties list box.

4.	Click the field for which you want to view the validity checks.

Corel Paradox displays the validity checks down the right side of the dialog box.

To remove a validity check

1.	Open a table, or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	Choose Validity Checks from the Table Properties list box.

4.	Click the field for which you want to remove the validity check.

5.	Delete the text from the appropriate validity check box(es).

6.	Click the Save button to save your changes.

 Related Topics


Creating required fields
Creating a required field validity check

When you define a required field validity check on a field, the field must contain data before Corel Paradox will accept the record. If you try to enter a record in a table that doesn't have a value in a required field, Corel Paradox informs you that the validity check has failed, and will not let you move off of the record until you enter a value in the required field.

You can place a required field validity check on any field type. You can define required fields for Corel Paradox and SQL tables.

To create a required field validity check

1.	Open a table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	In the Field Roster, click the field for which you want to define the validity check.

4.	Choose Validity Checks from the Table Properties list box.

5.	Enable the Required Field check box.

6.	Click the Save button to save your changes.

 Note

•	To remove a required field validity check, click the appropriate field and disable the Required Field check box.

 Related Topics


Creating minimum and maximum values
Creating minimum and maximum value validity checks

Minimum and maximum value validity checks allow you to define the minimum and maximum acceptable values for a field. For example, if all of your customer identification numbers are at least five digits long, you might want to define a minimum value of 9999 on that field, thereby, helping to prevent data entry errors.

You can use minimum-value and maximum-value validity checks for alpha, number, short, long integer, money, timestamp, time, and date field types. You can use only a minimum validity check on an autoincrement field.

To define a mimimum or maximum value validity check

1.	Open a table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	In the Field Roster, click the field for which you want to define the validity check.

4.	Choose Validity Checks from the Table Properties list box.

5.	Do one or both of the following:

•	To define a minimum value for the field, type the value in the Mimimum box.

•	To define a maximum value for the field, type the value in the Maximum field.

6.	Click the Save button to save your changes.

Note

•	When you define a numeric minimum or maximum, you must use the number format currently selected in the Windows Control Panel. During data entry, however, you can use any format and the validity check still works.

•	You cannot use minimum-value and maximum-value validity checks on BC dates; instead, you can define a picture validity check on BC dates.

Tip

•	You can specify an initial value for an autoincrement field using a minimum validity check by entering the initial field value in the Minimum box when you first create a table.

 Related Topics


Creating default values
Creating a default value validity check

When you define a default value validity check, Corel Paradox automatically enters that value in each record of the table as soon as you create the record. For example, if most of your customers are located in the United States, you could define USA as the default value for the Country field in your customer information table. Whenever you insert a new record, it appears with the value USA already in the Country field.

You can override the default value by moving to the field and typing a different value. You can also delete the default value and leave the field blank, unless it also has a required-field validity check.

You can use default value validity checks for alpha, number, short, long integer, money, logical, and date field types (including date, time, and timestamp)

To  create a default value validity check

1.	Open a table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	In the Field Roster, click the field for which you want to define the validity check.

4.	Choose Validity Checks from the Table Properties list box.

5.	Type the default value in the Default Value box.

Notes

•	When you enter numeric values as a default, you must use the number format currently selected in the Windows Control Panel.

•	You can use the TODAY operator to define today's date as the default value in a date field. NOW can be used as a default for time and timestamp fields.

•	If you add a new field that has a default validity check on it, and choose to enforce the validity check on existing data, Paradox creates the new field and places the default value in each record of the table. If you define a default validity check on an existing field that contains data, Paradox does not overwrite the existing data with the new default value.

 Related Topics


About pictures
About picture validity checks

A picture validity check acts as a template that formats the value you enter in a field.

For example, if you specify the picture (###)###-#### (a common template for U.S. phone numbers) and enter the value (4085551234, Corel Paradox formats the value into (408)555-1234. For other examples, see Examples of pictures.

You can choose a standard picture when creating a validity check, or create a custom picture. For instructions, see Using standard pictures and Creating custom pictures.

See Picture string characters for a table of the characters you can use in a picture and their meanings. If you use any printable (visible) character in a picture string different from those listed in the table, Corel Paradox treats it as a constant.

When you enter a value in a field that has a picture validity check, and you come to a point at which a constant is specified, Corel Paradox automatically enters the constant. For example, if you create the picture (408)###-#### and then type (5551234 in the field, Corel Paradox inserts (408)555-1234 in the table.

If you create a picture validity check for a table that contains data, Corel Paradox does not reformat existing data to match the picture nor does Corel Paradox validate existing data to check that it matches.

 Note

•	You can also specify pictures on field objects in design documents. However, if you create a picture validity check for the field in the table, as described in this topic, you cannot specify one for a field object bound to that field.

 Related Topics


Picture string characters

You can use these characters in a picture validity check string:

Character	Stands for

#	Numeric digit

?	Any letter (uppercase or lowercase)

&	Any letter (convert to uppercase)

~	Any letter (convert to lowercase)

@	Any character

!	Any character (convert to uppercase)

;	(semicolon) Interpret the next character as a literal, not as a special picture-string character.

*	Any number of repeats of the following character

[abc]	An optional part of the string that can be left out; type nothing or type 'abc'

{a,b,c}	Optional characters a, b, or c

 Tip

•	*n where n is a number means 'Repeat the next symbol exactly n times' so *3#-*4# tells Corel Paradox you want to enter three numbers, a dash, and then four numbers, which is the picture of a standard North American telephone number. You can also use a semi-colon to over-ride this syntax ex '*;3' means any number of threes.

 Related Topics


Examples of pictures

Following are some examples of valid pictures. For more examples, use the Assist button as described in Using standard pictures.

Picture	Description

&#&#&#	Canadian postal code; for example, K1S 2A2

#####[-####]	U.S. postal code; for example, 12345 or 12345-6789

*!	Any entry; all letters will be in uppercase

{Yes,No}	Either "Yes" or "No"

 Related Topics


Using standard pictures
Choosing a sample picture validity check

Corel Paradox provides you with several commonly used picture validity checks. If you want to define a custom validity check, see creating a custom picture validity check.

To specify a standard picture string for a selected field

1.	Open a table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	In the Field Roster, click the field for which you want to define the validity check.

4.	Choose Validity Checks from the Table Properties list box.

5.	Click the Assist button.

6.	Choose a picture from the Sample Pictures list in the Picture Assistance dialog box. A description of the picture appears in the message area of the dialog box.

7.	Click the Use button to insert the syntax in the Picture box.

8.	Click OK to return to the Create Table or Restructure Table dialog box.

9.	Click the Save button to save your changes.

Note

•	You can edit the syntax for any sample picture in the Picture box to customize it.

 Related Topics


Creating custom pictures
Creating a custom picture validity check

If none of the sample picture validity checks suit you needs, you can create a custom picture validity check either by editing one of the sample picture validity checks or you can code one of your own. Corel Paradox allows you to save custom picture validity checks for future use.

To create a custom picture validity check, you must first select the appropriate field and open the Picture Assistance dialog box; then, you must type and verify your syntax.

To select the appropriate field and open the Picture Assistance dialog box

1.	Open a table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	In the Field Roster, click the field for which you want to define the validity check.

4.	Choose Validity Checks from the Table Properties list box.

5.	Click the Assist button.

To enter and verify the syntax of the picture

1.	Type the syntax for the picture in the Picture box.

2.	Click the Verify Syntax button.

3.	If Corel Paradox displays the message 'The picture is correct,' proceed to step 4; if Corel Paradox displays the message 'One of more syntax errors were found in this picture,' review and change your syntax until it is correct.

4.	In the Sample Value box, type an example of the values you will be entering into that field of the table.

As you type each character, Corel Paradox monitors the values you are entering and displays the message 'Picture does not accept value,' if you enter an invalid character.

5.	Click the Test Value button to test the sample value.

6.	Repeat step 5, entering different sample values until you are certain the picture will accept and format your data properly.

7.	To save the picture for future use, Click the Add to List button and type a description of the picture in the Save Picture dialog box.

8.	Click OK to return to the Create Table or Restructure Table dialog box.

Corel Paradox displays the syntax of the picture in the Picture box.

9.	Click the Save button to save your changes.

 Related Topics


About table lookups

The table lookup feature lets you

•	Refer to another table to look up acceptable values for a field

•	Automatically copy values from the lookup table to the table you are editing (automatic fill in)

•	Require that the values you enter into a field exist in the first field of another table

When you specify a lookup table for a field, you are saying the field can contain only values that exist in the first field of another table you specify (the lookup table). You also specify whether the person entering data in the field will be allowed to see the lookup table and copy values from it, or will be required to match the lookup table's values without being able to see them.

The major advantage of table lookup is its ability to automatically enter correct values in your table. For information on using table lookup, see Rules for table lookups and Using table lookups.

The difference between table lookup and referential integrity

Table Lookup is primarily a data entry tool. It is provided to help enter data that already exists in another table. To establish a more powerful tie between two tables, define a referential integrity relationship. While table lookup ensures that data is copied accurately from one table to another, referential integrity ensures that the ties between like data in separate tables cannot be broken. For more information on referential integrity, see About referential integrity.

 Related Topics


Rules for table lookups

Follow these rules when setting up a lookup table:

•	The lookup table contains data you want to copy to another table. That data must be in the lookup table's first field.

•	The field that you're defining as a table lookup must have the same name, field type and size as the first field of the lookup table.

•	For best performance, the lookup table should be keyed. See About primary indexes (key) for more information.

•	You can use a table lookup across different directories. When you define table lookup on a table from a different directory, Corel Paradox stores the full path to the table. If you move your lookup table to a different directory, you must recreate the same path or redefine the table lookup.

 Related Topics


Creating table lookups

The Table lookup feature makes Corel Paradox compare the data entered in one field of a table with another table to verify acceptable values for that field.

Table lookups are useful when you have multiple acceptable values for a given field. For example, if one of your tables contained a State field, into which you were only going to enter the two-digit values representing state names, you could create a basic table containing a list of the state names and their two-letter abbreviations. Then, you could establish a table lookup on the State field in the data-entry table. Then, anytime a user fills in the State field for a record, Corel Paradox checks the entry against all of the state abbreviations listed in the lookup table.

To create a table lookup

1.	Create the table that will hold all acceptable values for the field (this is the lookup table). Remember that the first column in the table must contain the actual acceptable values for the other table’s lookup field.

2.	Open the table to which you want to assign the table lookup.

3.	Click Format, Restructure Table.

4.	Choose Table Lookup from the Table Properties list box.

5.	Click the Define button.

6.	In the Fields list of the Table lookup dialog box, click the lookup field and click the right arrow button.

7.	In the Lookup Table panel, click the name of the lookup table and click the left arrow button.

8.	If you want users to be able to view the lookup table and copy values from it, select the Help And Fill button. Or, if you want users to match the lookup table’s values without being able to see them, select the Fill No Help button.

Tips

•	You can configure your table lookup to fill in data in more than one field as soon as you enter a value in the field tagged with the table lookup. For example, suppose you are editing an Orders table in which the Customer number field is linked with a table lookup to the  Customer number field of a Customer table. This Orders table also has a Name field that contains the customer’s name. When you enter a valid value in the Customer number field of Orders, Corel Paradox automatically fills in correct customer name in the Name field. This is because the Name filed of  the Orders table corresponds to the Name field of Customer table.

•	When defining your table lookup, select the All corresponding fields button in the Table Lookup dialog box to have Corel Paradox automatically enter values in all corresponding fields.

•	If you further specified the table lookup as Fill and Help, Corel Paradox would display the lookup table to allow you to select the correct customer number to fill in to the field.

 Related Topics


About referential integrity

Referential integrity means that a field or group of fields in one table (the "child" table) must refer to the key of another table (the "parent" table) to determine valid values. Only values that exist in the parent table's key (and therefore, the first field or fields in the table) are valid values for the specified field(s) of the child table.

When you establish referential integrity, Corel Paradox checks the validity of a value before accepting it in the referential integrity table. For example, if you establish referential integrity between Customer and Orders on their Customer No fields, then enter a value in the Customer No field of the Orders table, Corel Paradox searches the Customer No field of Customer and

•	Accepts the value in Orders if it exists in Customer

•	Rejects the value in Orders if it doesn't exist in Customer

Corel Paradox lets you establish referential integrity for any file type that supports it. You cannot establish referential integrity between .DBF files, Corel Paradox 3.5 tables, or tables that do not have a key. You can use .DB files and also some SQL server tables if you need referential integrity. See your server documentation to determine if your table type supports referential integrity.

Referential integrity and indexes

When you create or modify a referential integrity relationship, Corel Paradox creates an index on the referential integrity fields if it does not already exist.

Corel Paradox names the index with the name of the field (if it's a single-field definition) or the name you gave the referential integrity (if it's a multiple-field definition). The index appears in the list of secondary indexes. If you delete the referential integrity, Corel Paradox does not automatically delete this index. You must delete it manually.

Referential integrity guidelines

Follow these guidelines when you establish referential integrity:

•	You can establish referential integrity only between like fields that contain matching values.

For example, you can establish referential integrity between the sample Customer.db and Orders.db tables on their Customer No fields. The field names do not matter as long as the field types and sizes are identical.

•	You can establish referential integrity only between tables in the same directory.

•	The referential integrity parent table must be keyed.

•	If you define referential integrity on a table that already contains data, some existing values may not match a value in the parent's key field. When this happens, Corel Paradox places the existing records that do not match into the temporary KEYVIOL table in your private directory.

 Related Topics


Self-referential integrity

A referential integrity relationship between a field in a table and the same table's key field is called a self-referential integrity relationship.

For example, suppose you are using a table of employees keyed on the Employee ID field. If this table has a Supervisor field, you may want to create a self-referential integrity relationship between Supervisor and Employee ID, because the supervisors are also employees.

When you create a self-referential integrity relationship

•	You must use the Prohibit update rule in the Referential Integrity dialog box.

•	You cannot create a circular reference. That is, you cannot create a relationship in which a field refers to itself.

 Related Topics


Creating referential integrity

Corel Paradox allows you to define referential integrity relationships between tables in the same directory. Always set your working directory to the folder containing the tables for which you want to establish referential integrity; Corel Paradox will not let you define the relationship otherwise.

To define a referential integrity relationship

1.	Open the child table; or, if you are creating the table, proceed to step 3.

2.	Click Format, Restructure Table.

3.	Choose Referential Integrity from the Table Properties list box.

4	Click the Define button to open the Referential Integrity dialog box.

5.	Click the parent table from the Table box and click the left-arrow button.

The table's key field appears in the Parent's Key box.

6.	Click the child table's field in the Fields box and click the right-arrow button.

The field name appears in the Child Fields box.

•	If you choose a field that is not the same logical type as the parent's key field, Corel Paradox displays a message and doesn't add the field. In most cases, this means the field types must be identical; however, autoincrement and long integer are of the same logical type.

•	If the parent table has a composite key, add fields to match all of the parent's key fields.

7.	Choose the appropriate update rule.

8.	Enable the Strict Referential Integrity check box if you want to use strict referential integrity and click OK.

9.	Type a recognizable name in the Save Referential Integrity As dialog box.

 Related Topics


Changing referential integrity
Modifying referential integrity

You can change the following attributes of a referential integrity relationship:

•	The update rule

•	The Strict Referential Integrity setting

Corel Paradox must obtain locks on all tables involved in a referential integrity relationship when you modify it.

To modify a referential integrity relationship

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Referential Integrity from the Table Properties list box.

4.	Click the name of the referential integrity relationship you want to modify.

5.	Click the Modify button to open the Referential Integrity dialog box.

6.	Make the desired changes to either the update rule or the Strict Referential Integrity setting.

 Related Topics


Deleting referential integrity

To delete a referential integrity relationship

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Referential Integrity from the Table Properties list box.

4.	Click the name of the referential integrity relationship you want to modify.

5.	Click the Erase button.

 Related Topics


About password security

You can ensure that the table you create is protected from access by unauthorized users. Security is especially important in a multi-user environment. Not only can you establish a password for the table as a whole, you can assign specific rights to the table or individual fields.

Once you specify password security, only those users who know the password can access the table. This includes you, so do not forget your password! Whenever users try to access a password-protected table, Corel Paradox prompts them to supply the password (if they haven't already done so).

Types of passwords

Corel Paradox provides two types of passwords:

•	Master passwords control all access to an entire table. You must specify a master password before creating additional access restrictions.

•	Auxiliary passwords provide different levels of access privileges for different users in a group.

Typically, one person [image] such as a database administrator [image] has access to master passwords. A group of users who need to perform different tasks with the table have different auxiliary passwords that provide different levels of access.

 Related Topics


Using passwords
Entering and releasing passwords

Whenever you open a password-protected table, Corel Paradox prompts you for the password. You must enter the password to open the table.

If you open a table once, supply the correct password, and then close the table, Corel Paradox allows you to re-open the table without re-entering the password. Corel Paradox releases all passwords when you exit the program. You can, however, release a password without exiting Corel Paradox.

Using one password for several tables

If you assigned the same password to several tables, Corel Paradox allows you to enter the password to all applicable tables at the same time.

To enter the common password for several tables

1.	Click Tools, Security, Passwords.

2.	Type the password in the Enter Password(s) dialog box.

3.	Click the Add button.

Corel Paradox applies the password to all tables assigned that password, so that you don't have to type in the password the first time you open up the table(s) for that session.

To release a password without exiting Corel Paradox

1.	Click Tools, Security, Passwords.

2.	In the Enter Password(s) dialog box, type the password you want to release from Corel Paradox's memory.

3.	Click the Remove button.

Tip

•	Click the Remove All button to release all passwords. Tables that a currently open are not affected.

 Related Topics


Creating a master password

A master password protects access to an entire table. Users must input the correct password before Corel Paradox will open the table. If you want more specific security, you can create an auxiliary password after creating the master password. You can assign the same password to several tables and then enter the common password once and apply it to all applicable tables. For details, see Entering passwords.

To create a master password

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Define button.

5.	Type the password you want to assign to the table in the Master Password text box. You'll see asterisks (*) representing the characters you type. A password can be from 1 to 15 characters long and can contain spaces. Passwords are case-sensitive.

6.	Verify the password by typing it again in the Verify Master Password text box. Again, you'll see asterisks in place of the characters you type.

If the two passwords are identical, Corel Paradox saves the password and closes the Password Security dialog box.

If the two passwords aren't identical (including capitalization), you'll see an error message prompting you to enter either one of them again.

 Related Topics


Changing a master password

To change a master password

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Modify button.

5.	In the Password Security dialog box, click the Change button.

6.	Type the new password in the Master Password text box. You'll see asterisks (*) representing the characters you type. A password can be from 1 to 15 characters long and can contain spaces. Passwords are case-sensitive.

6.	Verify the password by typing it again in the Verify Master Password text box. Again, you'll see asterisks in place of the characters you type.

If the two passwords are identical, Corel Paradox saves the password and closes the Password Security dialog box.

If the two passwords aren't identical (including capitalization), you'll see an error message prompting you to enter either one of them again.

 Related Topics


Deleting a master password

To delete a master password

1.	Open the appropriate table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Modify button.

5.	In the Password Security dialog box, click the Delete button.

 Related Topics


About auxiliary passwords

Auxiliary passwords use table rights and field rights to provide different levels of access privileges for different users in a group. Table rights determine the overall level of access to a table. Field rights determine the level of access to an individual field within the table.

The type of table rights you specify for a user determines the type of field rights you can specify for that user, as shown in the following table:

Table rights	Possible field rights

All	All

Insert & Delete	All

Data Entry	All, Read Only, or None

Update	All, Read Only, or None

Read Only	All, Read Only, or None

 Related Topics


Creating an auxiliary password

In order to create an auxiliary password, you must first create a master password for the table. An auxiliary password applies read and write access to the table as a whole. Once you define the rights for the whole table, you can further limit user access to the table by assigning rights to individual fields. For example, you could give a user Read access to the whole table, but then hide fields in the table that contain sensitive information that you don't want general users to be able to see. To define an auxiliary password, you must first open the Password Security dialog box; then, you can specify the password and assign access  rights.

To open the Password Security dialog box

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Modify button.

To create the auxiliary password

1.	Click the Auxiliary Passwords button.

2.	Type the auxiliary password in the Current Password box.

3.	Do one of the following:

•	Enable the All button to give a user rights to any function in the table, including the ability to restructure or delete it, and to change or delete passwords.

•	Enable the Insert And Delete button to give a user the right to insert, delete, or empty records, but not to delete or restructure the table.

•	Enable the Data Entry button to give a user the right to edit data and insert new records, but not delete or empty records, or restructure the table.

•	Enable the Update button to give a user the right to view the table and change non-key fields, but not to insert or delete records or change key fields.

•	Enable the Read Only button to give a user the right to view the table, but not to change it in any way.

5.	If you want to assign rights to specific fields in the table, you double-click a field in the Field Rights box until the appropriate field rights are assigned (All, Read Only or None).

6.	Click the Add button.

7.	 If you want to define additional auxiliary passwords, click the New button and repeat steps 2 to 5.

 Related Topics


Changing an auxiliary password
Modifying an auxiliary password

Modifying an auxiliary password involves opening the Password Security dialog box and then modifying the password to suit your needs.

To open the Password Security dialog box

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Modify button.

To modify the auxiliary password

1.	Click the Auxiliary Passwords button.

2.	Click the Password you want to modify to select it.

3.	Click the Change button.

4.	If you want to change the password without changing access rights for the password, type a new password in the Current Password box.

5.	If you want to change the rights assigned to the password, do one of the following:

•	Enable the All button to give users  rights to any function in the table, including the ability to restructure or delete it, and to change or delete passwords.

•	Enable the Insert And Delete button to give users the right to insert, delete, or empty records, but not to delete or restructure the table.

•	Enable the Data Entry button to give users the right to edit data and insert new records, but not delete or empty records, or restructure the table.

•	Enable the Update button to give users  the right to view the table and change non-key fields, but not to insert or delete records or change key fields.

•	Enable the Read Only button to give users  the right to view the table, but not to change it in any way.

6.	If you want to change the access  rights assigned to specific fields in the table, double-click a field in the Field Rights box until the appropriate field rights are assigned (All, Read Only or None, which hides the field from the user).

7.	Do one of the following:

•	Click the Accept button to Accept the modifications.

•	Click the Revert button to cancel any changes and restore the original access  rights settings.

 Related Topics


Deleting an auxiliary password

To delete an auxiliary password

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Password Security from the Table Properties list box.

4.	Click the Modify button.

5.	Click the Auxiliary Passwords button.

6.	From the Passwords box, click the password you want to delete.

7.	Click the Change button.

8.	Click the Delete button.

 Related Topics


About table language drivers

A table's language driver determines the table's sort order (based on the order of the letters in the alphabet) and available character set. You can choose a default language driver for Corel Paradox and dBASE tables from the BDE Configuration Utility. (Refer to the BDE Configuration Utility Help system for more information.)

Corel Paradox uses table language drivers to:

•	Open any Corel Paradox table with the correct language driver. This includes opening tables with different language drivers in the same Corel Paradox session.

•	Open dBASE tables with the correct language driver.

•	Create tables generated by copy operations using the language driver of the copied table.

•	Create tables generated by import operations with the default language driver of the file format (Corel Paradox or dBASE).

•	Determine the language driver of a query's Answer table using the language driver of the first (topmost) query image in the query.

 Related Topics


Choosing a table language driver

A table's language driver determines the table's sort order and available character set.

 Caution

•	If you change a table language driver when restructuring a table, you risk losing special characters in the table.

To change the default table language driver

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Table Language from the Table Properties list box.

4.	Click the Modify button to open the Table Language dialog box.

5.	Choose a language driver from the Language list box.

 Related Topics


About restructuring tables

You can modify any aspect of a table at any time. Before restructuring a table, make sure no forms or reports are running that use the table in their data model. If you or any other user (in a multi-user environment) have such a document open, you will not be able to restructure the table.

When fields are removed from a table, any corresponding field objects in forms or reports become undefined. When you return to the form or report, you can redefine them.

Restructuring on a network

When you restructure a table on a network or with more than one session of Paradox open, Paradox automatically places a lock on the table. This means other users cannot access the table during the restructuring.

If another application has started an operation using the table you want to restructure, you cannot begin restructuring until that application finishes working with the table.

Warnings for restructuring

When you restructure a table, you can make changes that could result in the loss of data. Changes such as shortening field sizes, creating validity checks, or changing field types can cause existing data to become invalid. Whenever this is the case, Paradox opens the Restructure Warning dialog box, upon leaving the Restructure Table dialog box.

Temporary tables created during restructuring

Restructuring sometimes results in the creation of temporary tables, such as a Problems table, that Paradox uses to store records that are incompatible with the table as you've restructured it.

Paradox numbers these temporary tables consecutively (up to 99) and stores them in your private directory. For example, if you restructure twice, and both operations cause data loss, Paradox creates both a Problems and a Problem1 table.

Temporary tables are deleted at the end of a session. If you do not want a temporary table deleted at the end of a session, you must rename it. All temporary tables are stored in your private directory (:PRIV:).

Keyviol tables

If you add a primary key to a table that was previously unkeyed or had different keys, you might cause key violations. You can also rearrange fields so that the key fields are no longer the first consecutive fields in the table. This means data already entered into the table violates the rules established by the key.

Paradox deletes key-violating records from your table to a temporary table called Keyviol, located in your private directory. You can change the records in Keyviol so they comply with the key requirements, and then add them back to your original table using Tools, Utilities, Add.

Notes

•	You cannot change a table's type. For example, you cannot change a Paradox table into a dBASE table when you restructure. You can click Tools, Utilities, Copy to copy a table of one type into a table of another type.

•	If you restructure a table that was created in Paradox for DOS in such a way that Paradox must convert it to a Paradox for Windows table, the Restructure Warning dialog box warns you of the conversion and asks you to confirm it.

 Related Topics


Rearranging fields

Rearrange field order in either the Create Table dialog box or the Restructure Table dialog box. In the Field Roster, click the number of the field you want to move and drag it to the position you want it to occupy.

You can place a field in the following locations:

•	Between the rows of existing fields

•	In the row above the first field

•	In the row below the last field

You cannot move fields in a way that violates the rules for key fields. See About primary indexes (key fields) for more information.

 Related Topics


Packing a table

Packing a Paradox table reclaims disk space used by deleted records. Packing a dBASE table removes records that are marked for deletion from the table. Paradox lets you permanently remove these records when you restructure the table.

To pack a table

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Enable the Pack Table check box.

 Related Topics


Adding fields
Adding, deleting and renaming fields

When you add fields to an existing table, Paradox does not automatically add those fields to any forms, reports, or queries associated with the table. If you want the new fields added to associated objects, you must explicitly add them.

When you delete a field from an existing table, Paradox unbinds the field from previously created forms and reports. Since a deletion can cause loss of data, when you choose Save or Save As, a dialog box appears to let you confirm the deletion or cancel the operation. If you delete a key, you must also either delete any secondary indexes, or convert them to non-maintained.

If you edit a field name in an existing table, and that field name appears on any associated design documents, Paradox reconciles the change the next time you open a design document. If the field is a labeled field in the design document, Paradox does not update the label of the field to the new name. If you have calculated fields in the design document that include the original field name, Paradox deletes the calculated field from the design document when you rename the field.

To add a field to a table

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Use the arrow keys to move to a new row in the Field Roster, or press Ins to insert a new field above the current field.

4.	Type the name of the field in the Field Name column of the Field Roster. For more information, see Rules for Corel Paradox field names.

5.	Right-click the Type column and click a field type. For moreSee Corel Paradox field types and sizes for more information.

6.	Type an appropriate field size (if required) in the Size column.

To delete a field from a table

1.	Follow steps 1 and 2 of the above procedure.

2.	Click the row number of the field you want to delete and press CTRL+DELETE.

To rename a field in a table

1.	Follow steps 1 and 2 of "To add a field to a table."

2.	Double-click the Field Name column of the field you want to rename and type the new field name.

Note

•	If you add a new field that has a default validity check on it, and choose to enforce the validity check on existing data, Paradox creates the new field and places the default value in each record of the table. If you define a default validity check on an existing field that contains data, Paradox does not overwrite the existing data with the new default value.

 Related Topics


Changing table languages

If you need to change the table language of an existing table that has data, you must first duplicate the table's structure with the language driver you want, then append the original table's data to the new table.

To duplicate the table's structure

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box and double-click the New Table icon.

3.	In the New Table dialog box, click the Blank button

4.	In the Create Table dialog box, choose the appropriate table type and click OK.

5.	In the Create Table dialog box, click the Borrow button to borrow the structure of the table that you want to change.

6.	In the Select Borrow Table dialog box, select the table whose structure you want to borrow and enable all of the options you want to borrow (usually this is all options).

7.	Click the Open button.

8.	Choose Table Language from the Table Properties list box.

9.	Click the Modify button.

10. Choose a table language from the Language list box.

11. Save the new table.

The new table uses the language driver you specified, and all its structure information (such as field names) is in the format of that language driver.

To append the original table's data to the new table

1.	Click Tools, Utilities, Add.

2.	In the Add Records In dialog box, select the original table and click OK.

3.	In the Add Records To dialog box, select the new table.

4.	Enable the Append button in the Options section.

5.	Click the Add button.

Corel Paradox appends the data to the new table in transliterated format, as specified by the new language driver. See About adding records for more information about using the Add command.

 Related Topics


About changing field types

You can change a field type at any time, however, if the table contains data, you may encounter data format conflicts.

Alpha field conversions

The result of converting another field type to an alpha field varies. All formatting and other definitions associated with the other field type are lost.

When you convert a field of another type to an alpha field, you must specify a size for the field. If some data already in the field contains more characters than the newly specified length of the alpha field, you can trim the data or move records containing such data to the Problems table.

If you convert between an alpha field and a date, number, short, or money field, make sure the settings in your Windows Control Panel match the settings in IDAPI.CFG.

Number, money, short, and long integer field conversions

In a Corel Paradox table, you can convert a money, long integer, BCD, autoincrement or short field to a number field. In fact, you can convert among all of these field types without loss of data, except when a value is too large for a short field or includes decimals. In that case, you can either trim the values, or have Corel Paradox write records containing those values to the temporary Problems table.

You can convert an alpha field to a number field if it contains no data inconsistent with a number. If data in the field is inconsistent with a number field, you must do one of the following:

•	Have Corel Paradox place the records in a Problems table

•	Delete the inconsistent data and then make the conversion

•	Insert a new field and delete the original field (losing all data)

Auto-increment field conversions

You can convert existing number, short, and long integer fields to autoincrement fields without losing data only if the number, short, or long integer field is the table's single-field primary index (key). This ensures that the data to be converted to an autoincrement field meets the requirements of being unique and sorted in ascending order.

Date field conversions

You can convert alpha and timestamp fields to date fields. Paradox saves any invalid data in a Problems table. If any record contains data in that field that cannot be interpreted as a date, Corel Paradox removes the record and writes it to the temporary Problems table.

Here are examples of what kinds of alpha strings can and cannot be converted to dates:

Can be converted	Cannot be converted

7/04/1776	July 4, 1776

3/30/91	The 30th of March, 1991

25-Dec-1066	Christmas Day, 1066

11-Nov-18	Armistice Day

1.01.2000	New Year's Day, the year 2000

13.06.80	Herb's 29th birthday

If you customize your date format using the BDE Administrator, date values are converted according to your customized settings.


Changing field types

You can change a field's type at any time, however, if the table contains data, you may cause data loss. See Compatible field types to determine whether exising data will be compatible with the new field type.

To change field types

1.	Open a table.

2	Click Format, Restructure Table.

3.	In the Field Roster, right-click the Type column of the field you want to change and click a new field type.

Notes

•	If the change causes data loss, Corel Paradox prompts you to confirm it. If you confirm the change, Corel Paradox writes the records containing data that could not be converted to a temporary table called Problems.

•	You can change the records in the Problems table so they comply with the new structure, then add them back into the table using Tools, Utilities, Add.

 Related Topics


Compatible Paradox field types
Compatible Corel Paradox field types

When converting a Corel Paradox field from one type to another, use the following chart to determine field type compatibility.

	To	A	N	$	D	S	M	F	B	G	O	L	I	T	@	#	+	Y
From	A	Y	P	P	P	P	Y					P	P	P	P	P		Y
From	N	Y	Y	Y		P						Y	Y			Y	<
From	$	Y	Y	Y		Y						Y	Y			Y
From	D	Y			Y										Y
From	S	Y	Y	Y		Y						Y	Y			Y	<
From	M	Y					Y	Y	Y
From	F						Y	Y	Y
From	B								Y
From	G								Y	Y
From	O								Y		Y
From	L	Y	Y	Y		Y						Y	Y			Y	<
From	I	Y	Y	Y		Y						Y	Y			Y
From	T	Y												Y	Y
From	@	Y			Y									Y	Y
From	#	Y	Y	Y		Y						Y	Y			Y
From	+	Y	Y	Y		Y						Y	Y			Y	Y
From	Y	Y																Y
Y:	Corel Paradox allows the conversion, but may trim data. If Paradox must trim data, you will see the Restructure Warning dialog box, which asks you to confirm the conversion.

Blank:	The field type conversion is not allowed.

P:	The conversion is allowed, but might generate the Problems table.

<:	Conversion to autoincrement is allowed only from a single-field key containing data that is <2147483647

 Related Topics


Compatible dBASE field types

You restructure a dBASE table the same way you do a Corel Paradox table. Changing field types of dBASE fields has different consequences for each field type.

Number to character

Data in number fields or float number fields can be converted to text in a character field with no loss of data. However, you cannot perform calculations on numeric data stored in a character field.

Character to number or float number

You can convert a character field to a number or float number field with the following results:

•	If the data in the character field is numeric (digits), Corel Paradox converts it to a number or float number field with no data loss.

•	If the data in the character field is a mixture of text and digits beginning with digits, Corel Paradox converts the digits to a number or float number format and deletes all text.

•	If the data in the character field is a mixture of text and digits beginning with text, Corel Paradox assigns the value 0 to the number or float number field.

Logical to character

Logical values are converted to T or F text values.

Logical to number or float

True values are converted to 1 and False values are converted to 0.

Character to logical

The characters T, t, Y, and y are converted to logical true, and all other values are converted to logical false.

Date to character

You can convert a date value to a text value. The text value will be eight characters in the format MM/DD/YY.

Character to date

You can convert a text value to a date value only if it is an eight-character value in the format MM/DD/YY. Any other value sizes or formats are not recognized as dates and are not converted.

Memo to character

Values that are longer than the size of the character field are trimmed.

 Related Topics


About restructuring and referential integrity

When restructuring the parent table in a referential integrity relationship, you might be prohibited from performing certain restructure operations.

To see if the table you are restructuring is the parent in a referential integrity relationship

1.	Open a table.

2.	Click Format, Restructure Table.

3.	Choose Dependent Tables from the Table Properties list box.

Corel Paradox lists all child tables that depend on the table you are restructuring.

The basic rule to remember when restructuring a parent table is that you cannot perform any operation that causes records to be removed from the table. If you remove records from the parent table, you risk orphaning records in the child table. This is in violation of the rules of referential integrity. Each record in the child table must have a valid parent record.

Follow these guidelines as you restructure tables that are linked by referential integrity:

•	If you resize any field in the parent table, you must choose to trim data that does not fit in the new field size, rather than save such data in the Problems table.

•	You can change field names, but not types or sizes, of fields that are part of the referential integrity definition.

•	You can add a validity check to either table, but you must choose not to enforce it on existing data. (Use the Restructure Warning dialog box to make this choice.) The exception to this rule is the creation of a default validity check on a new field in the table.

•	To make a parent table the child of another table, that table and all its existing child tables must be empty. For example, if Orders is the parent table of Stock, you cannot make Orders the child of Customer unless both Orders and Stock are empty.

•	When working with tables that contain data, if you link more than two tables by referential integrity you must create the first link to the table that has no parent. For example, to define referential integrity among the Customer, Orders, Lineitem, and Stock tables, you must

1.	Create the link from Orders to Customer.

2.	Create the link from Lineitem to Orders.

3.	Create the link from Stock to Lineitem.

•	To create a cyclic referential integrity relationship (as in "Table A refers to Table B, which refers to Table C, which refers back to Table A") all the tables must be empty.

 Related Topics


Opening a table

To open a table

1.	Click File, Open, Table.

2.	Use the Look In list box to display the contents of the folder in which the table is located.

3.	Double-click a table name.

Corel Paradox displays the table.

When you open a table, the menu and Toolbar change to show operations you can perform on the table.

 Note

•	Commands that involve data entry operations are dimmed until you press F9 to switch to Edit mode.

 Related Topics


Table and form navigation buttons
Moving among table records

Corel Paradox provides you with several ways to move among the records in a table.

Using the navigation buttons on the Toolbar

Click the navigation buttons on the Toolbar to move quickly among a table's records in a Table window or Form window:

Move to the first record of the table.

Move up one record set (the number of records displayed in the table window ).

Move to the previous record of the table

Move to the next record of the table

Move down one record set (the number of records displayed in the table window).

Move to the last record of the table.

Using the scroll bars

Use the up and down scroll arrows on the vertical scroll bar to scroll through a table one record at a time. Use the left and right scroll arrows on the horizontal scroll bar to scroll through the columns of the table.

Dragging the vertical and horizontal scroll bars

When you drag the box on the vertical or horizontal scroll bar to scroll through the records of the table, the records themselves do not move. Instead, the Status Bar displays either the range of record numbers or the field name that would appear if you released the scroll box. When you see the range you want to scroll to, release the scroll box. Paradox updates the view of the table.

In dBASE tables, the vertical scroll box is always centered vertically when Table, Show Deleted is not checked.

If the table is keyed, Paradox displays the range of values in the key field (or the first field of a composite key) on the status bar as you move the vertical scroll box.

 Related Topics


Scroll lock
Using the horizontal scroll lock

It is likely that many of the tables you create will have too many fields (be too wide) to be viewed all at once. However, as you scroll to the right to view additional fields, you may want a field or two to remain in view. For example, in a Customer Information table, you might want the Customer Number and Customer Name fields to remain in view so that you can easily tell to which customer the record belongs. The horizontal scroll lock allows you to set which fields you want to have remain in view as you scroll to the right to view other fields in the record.

By default the horizontal scroll lock is set to the left of the first column in the table, so that all columns move as you scroll to the right.

The horizontal scroll lock appears as a left pointing triangle [image] in the bottom left corner of the Table window.

To set the horizontal scroll lock

1.	Hold your cursor over the scroll lock until your cursor changes to a double-headed arrow.

2.	Click and drag the scroll lock to the right of the column(s) you want to lock.

All columns to the left of the lock remain stationary as you move through the table's columns.

 Related Topics


Keyboard actions in Table windows
Using the keyboard to move among table records

You can move to different fields and records using the keyboard as follows:

Key	Effect/Action

Left arrow	Selects the field to the left of the selected field. (If the selected field is the first field in the record, selects the last field of the previous record.)

Right arrow	Selects the field to the right of the selected field. (If the selected field is the last field in the record, selects the first field of the next record.)

Down arrow	Selects the same field in the record below the current one.

Up arrow	Selects the same field in the record above the current one.

HOME	Selects the first field in the current record.

END	Selects the last field in the current record.

CTRL+HOME	Selects the first field of the first record in the table.

CTRL+END	Selects the last field of the last record in the table.

PgDn	Displays the next set of records.

PgUp	Displays the previous set of records.

CTRL+PgDn	Scrolls the window to the next set of fields.

CTRL+PgUp	Scrolls the window to the previous set of fields.

For additional keys, see Table Operation Shortcuts

 Related Topics


About quick objects

You can use the Tools, Quick commands or Quick Toolbar buttons to view a table's data in a form, chart, crosstab, or report.

Corel Paradox offers four types of quick objects:

Forms

Click Tools, Quick Design, Quick Form to view the default form for the table. The Form window opens on top of the open Table window. From the Form window, you can use the Table View command or Toolbar button to return to the view of the table, or you can simply click somewhere in the Table window to activate it.

Reports

Click Tools, Quick Design, Quick Report to view a default report for the table.

Charts

Click Tools, Quick Design, Quick Chart to view a default chart of the table's data. If you have not yet defined a preferred chart, you'll see the Define Chart dialog box.

Crosstabs

Click Tools, Quick Design, Quick Crosstab to view  a default crosstab of the table's data. If you have not yet defined a preferred crosstab, you'll see the Define Crosstab dialog box.

 Note

•	When you view your table's data in an alternate format (like a form or report) the property settings you've chosen in the Table window do not appear. You can customize the form or report individually to get the look you want.

 Related Topics


About table views

The default view of a table is the way it initially looks when you open it. The default view depends on a number of things: your Windows screen colors, the Desktop properties you defined with Edit, Preferences, and the structure of the table.

But you can change the way your table looks, and the way you view your data.

You can change these features by dragging with the mouse:

•	Order of the columns

•	Column width

•	Heading height

•	Spacing between records (row height)

•	Placement of a scroll lock on a column

You can change these features, and more, by setting table properties:

•	Alignment of text and data

•	Color of the data or the background

•	Typeface of the data and headings

•	Color and style of the table gridlines and record marker

•	Color and other properties for specified data ranges

A field's properties vary, depending on the type of data in the field. Alpha field properties are different from number field properties, which are different from date properties, and so on.

Changing a field's properties does not change the data or how it is stored.

 Note

•	When you view your table data in an alternate format (like a form or report) the property settings you chose in the Table window do not appear. You can customize the form or report individually to get the look you want.

 Related Topics


About dragging with the mouse

You can use the mouse to point, click, and drag directly on the object to change. You can directly manipulate the size, shape, or position of most onscreen objects.

The pointer changes shape as the mouse passes over places where you can click and drag to resize or move columns or change the heading or row height.

Pointer	Property	To manipulate
	Heading height	Drag the table name up or down.
	Row height	Drag the line under the first record number in the window up or down.
	Horizontal scroll lock	Drag the triangle at the lower left edge of the Table window to the right.
	Column width	Drag the top of the column's right grid line to the left or right.
	Order of columns	Drag the column heading to the new location.
 Related Topics


Moving, resizing, or rotating columns

You can move, resize, or rotate the columns of any open table.

To move a column

1.	Position the cursor over the column's heading so that the cursor changes to a [image].

2.	Click and drag the column to its new position.

To resize a column

1.	Position the cursor over the right grid line in the column heading so that the pointer changes to a double-headed arrow.

2.	Click and drag the grid line to the right or left to increase or decrease the width of the column.

To rotate columns

•	Click the column you want to move and press CTRL+R.

Corel Paradox moves the column to the last position on the right of the table and shifts all other columns one position to the left.

Note

•	When you shorten a field that already has data in it, you may lose some data. When this is the case, Corel Paradox displays the Restructure Warning dialog box, which lets you choose whether to trim existing data, or to save records that contain data too long for the new field size in the Problems table.

 Related Topics


Resizing rows

You can resize a table's rows.

To resize the height of the rows in a table

1.	Do one of the following:

•	Click and drag the line under the first record number (the left column of the table) down to increase the row height.

•	Click and drag the line under first record number (the left column of the table) up to decrease the row height.

Corel Paradox resizes all rows to match the row height you specify.

 Related Topics


Viewing or changing table properties

You can change many table properties in the Table window; however, some table properties can only be changed in a data model.

You can change properties of the individual fields (columns) of the table, the grid, the column headings, or the display of the data.

To change table properties of a specific field or area

•	Right-click the area and click Properties to display the Properties dialog box. Click the tab for the property you want to change and change properties as appropriate.

To change properties for all fields

•	Press SHIFT, right-click a field and click Properties to display the Properties dialog box. Click the tab for the property you want to change and change properties as appropriate.

To change properties for all column headings

•	Press SHIFT, right-click the heading and click Properties to display the Properties dialog box. Click the tab for the property you want to change and change properties as appropriate.

To change properties using the keyboard

Use the following keys to change properties using the keyboard:

Press	To change

F6 or CTRL+M	Field properties for the selected column

SHIFT+F6 or SHIFT+CTRL+M	Field properties for all columns

CTRL+G	Grid properties

CTRL+H	Heading properties for the selected column

SHIFT+CTRL+H	Heading properties for all columns

 Note

•	If your table does not yet contain any data, you must swith to Edit mode before you can change the properties of data columns. Press F9 to switch to Edit mode. (For information about Edit mode, see Entering and editing data.

 Related Topics


Saving table properties

Saving table properties saves the appearance of the table as you have changed it. Corel Paradox saves the properties you define in a file with a .TV extension. (Properties for dBASE tables are saved in the .TVF file.) For example, the properties you define for the Customer table are saved in CUSTOMER.TV. If you try to close a Table window without saving property changes, Corel Paradox asks if you want to save your changes.

To save table properties

•	Click Format, Properties, Save to save all the property changes you make in a Table window, including property changes to individual fields.

 Related Topics


Restoring table properties

If you change table properties, then change your mind about them, you can restore previous settings.

To restore table properties

•	Click Format, Properties, Restore.

Corel Paradox restores all properties to the settings they had when you opened (or previously saved) the table properties.

If you try to close a Table window without saving property changes, Corel Paradox asks if you want to save your changes.

 Related Topics


Deleting table properties

When you delete a table's unique property file (.TV or .TVF), Corel Paradox uses default property settings.

To delete table properties

•	Click Format, Properties, Delete.

 Related Topics


To create default table properties in a new table
Creating new default table properties

Suppose you know that you will most often want number fields displayed in the General format, or date fields aligned left, or text displayed in blue. Corel Paradox gives you the ability to establish default properties for each field type and store them in a default file, DEFAULT.TV (Corel Paradox) or DEFAULT.TVF (dBASE).

You can create a default property file by creating a new table or copying an existing table that is customized with the settings you want to use as defaults.

To create default properties in a new table

1.	Create a table in your private directory that includes one of each available field type.

2.	Name this table Default.

3.	Open the table DEFAULT.DB.

4.	Press F9 to enter Edit mode and right-click each field to set the properties for that field type.

5.	Click Format, Properties, Save to save the property settings in the DEFAULT.TV file.

Whenever you work with a table that does not have its own .TV file, Corel Paradox applies the settings from DEFAULT.TV to it. Table-specific .TV files override the settings in DEFAULT.TV.

To create default properties by copying,

1.	Customize a table with the desired default property settings.

2.	Click Format, Properties, Save to save the default settings.

3.	Copy the table to DEFAULT.DB in your private directory.

Corel Paradox copies the table's .TV file as well as the .DB file, and uses its .TV file for default property settings. Remember to use the Corel Paradox Copy utility when copying tables.

 Tip

•	If you are short on disk space, you can use the Windows File Manager to delete DEFAULT.DB, and any other DEFAULT files (like .PX or .VAL files) that were copied along with the table. All you really need is DEFAULT.TV.

 Related Topics


About aligning heading text and data
Changing the alignment of text and data

Alignment refers to the placement of the data in the field or the text in the heading. Text and data can be aligned horizontally (at the left, center, or right of the column) or vertically (at the top, center, or bottom of the row). You can also align text and data vertically, with the top, middle, or bottom of the row.

The following figure shows the Lineitem table with three fields using three different horizontal alignments.

To change the alignment of text or data in a heading or column

1.	Right-click the field you want to align and click Properties.

2.	Click the Alignment tab.

3.	Do one of the following:

•	Enable the Left button to align the data with the left side of the column.

•	Enable the Center button to center the data horizontally within the column.

•	Enable the Right button to align the data with the right side of the column.

4.	Do one of the following:

•	Enable the Top button to align the data with the top of the row.

•	Enable the Middle button to center the data vertically within the row.

•	Enable the Bottom button to align the data with the bottom of the row.

To align text in a formatted memo field

1.	Open a table.

2.	Click the field of the formatted memo you want to align.

3.	Double-click the formatted memo field to display the memo text.

4.	Press F9 to enter Edit mode.

5.	Select the text or paragraphs you want to align and right-click and click Properties.

6.	Click the Text tab.

7.	Do one of the following:

•	Enable the Left button to align the text with the left side of the window.

•	Enable the Center button to center the text.

•	Enable the Right button to align the text with the right side of the window.

•	Enable the Justify button to align the text with both sides of the window.

8.	Enable the desired line spacing button.

9.	Click the Apply button to apply your changes.

Note

•	Alignment changes in formatted memo fields are applied only to individual memos. Also, any paragraph you select can have its own alignment setting.

 Related Topics


Aligning text in a formatted memo field

To align text in a formatted memo field

1.	Open a table.

2.	Click the field of the formatted memo you want to align.

3.	Double-click the formatted memo field to display the memo text.

4.	Press F9 to enter Edit mode.

5.	Select the text or paragraphs you want to align and right-click and click Properties.

6.	Click the Text tab.

7.	Do one of the following:

•	Enable the Left button to align the text with the left side of the window.

•	Enable the Center button to center the text.

•	Enable the Right button to align the text with the right side of the window.

•	Enable the Justify button to align the text with both sides of the window.

8.	Enable the desired line spacing button.

9.	Click the Apply button to apply your changes.

Note

•	Alignment changes in formatted memo fields are applied only to individual memos. Also, any paragraph you select can have its own alignment setting.

 Related Topics


About colors
Changing background colors

You can change the color of the background of any field in a table. If you want, you can create and use custom colors.

To change a field's background color

1.	Right-click the field you want to change and click Properties.

2.	In the color section of the General tab, click the color to which you want to change the background.

3.	Click the Apply button to apply your changes.

To create a custom color

1.	In the color section of the General tab, click any of the cells in the right column of the Color box.

2.	Click the Add Custom color button.

3.	In the Custom Color dialog box, enable the desired color scheme button.

4.	Slide the box in each scroll bar or type in values beside the color boxes to create the color mix you want.

5.	Click OK to return to the Properties dialog box.

6.	Click the Apply button to apply the new color to the selected field.

 Tip

•	You can change the background color of all the columns at the same time by pressing Shift+F6. Click the desired color and click the Apply button. Corel Paradox applies the color to all columns.

 Related Topics


About fonts
Formatting text

You can format the font, style, size and color of the text of any heading or field in a table. You can also create and use custom colors.

To format the text in a table

1.	Open a table.

2.	Right-click the heading or field you want to format and click Properties.

3.	In the Properties dialog box, click the Font tab.

4.	Choose the desired font, style, size, script, effects and color.

5.	 Click the Apply button to apply your changes.

To create and use a custom color

1.	Click the General tab to bring it to the front.

2.	Click any of the cells in the right column of the Color box.

3.	Click the Add Custom color button.

4.	In the Custom Color dialog box, enable the desired color scheme button.

5.	Slide the box in each scroll bar or type in values beside the color boxes to create the color mix you want.

6.	Click OK to return to the Properties dialog box.

7.	Click the Font tab to bring it to the front.

8.	In the Color box, click the custom color to select it.

9.	Click the Apply button to apply the new color to the text of the selected field.


Changing the default system font

Corel Paradox always uses the default system font for text in new tables and design documents. You can change the default system font at any time. When you change the default system font, the text for all tables changes to the new font except in exising formatted memo fields and in tables where you previously customized the font.

To change the default system font

1.	Click Tools, Settings, Preferences.

2.	In the General page of the Preferences dialog box, click the Change button.

3.	Choose a font from the Change Font dialog box, and click OK.

4.	Exit and restart Corel Paradox.

 Note

•	If you want Corel Paradox to use the default system font for all text in an existing table, choose Format, Properties, Delete. Corel Paradox also removes any customized viewing properties you have set.

How the default system font works in forms and reports

The settings of a form or report style sheet always override the default system font. However, if the style sheet does not specify a font for a given design object, Corel Paradox uses the default system font for new ones you create. For example, you create a new field object, and the style sheet has no font specified for the edit region. Corel Paradox uses the default system font for text in the edit region when you run the form or report.

 Related Topics


About the grid
About the grid and record marker

The grid is the pattern of lines that appear between the columns (and, optionally, the rows) of the table. The record marker is the horizontal line that appears beneath the current record

You can:

•	change the color of the grid background (any space in the table window not taken up by the cells in the table)

•	change the color of the lines of the grid or the record marker line (the horizontal line that appears beneath the current record)

•	show or hide heading, column or row lines.

•	specify the type of grid lines as single, double, triple or none.

•	move the heading line from below the text to behind the heading text.

•	indicate the type of line to use for the grid or record marker.

•	show or hide the record marker (the horizontal line that appears beneath the current record)

•	Color on the General page sets the color for the grid's background (the space behind the grid lines).

•	Color on the Grid Lines or Record Marker page sets the color for the lines of the grid or the record marker line.

•	Spacing (Grid Lines page) specifies the type of grid lines: single, double, triple, 3-D, or none.

•	You can Query Look (Grid Lines page) moves the heading line from below heading text to behind heading text.

Line Style (Grid Lines and Record Marker pages).

Position (Grid Lines page) hides or displays heading, column, or row lines

 Related Topics


Changing the grid's background color

Corel Paradox allows you to change the color of the grid background. The grid background includes any space in the Table window that isn't taken up by the cells of the table.

To change the grid's background color

1.	Click Format, Properties, Grid.

2.	In the General page of the Properties dialog box, click a color.

3.	Click the Apply button to apply your changes.

Tip

•	To define a custom color, click a space in the right column of the palette, then click Add Custom Color. The Custom Color dialog box appears. Use its controls to blend the color you want, then choose OK to return to the General background properties and then apply the new color.

 Related Topics


Changing the grid lines
Formatting table grid lines

Using the Grid Properties dialog box, you can change the color, line style, and spacing between a table's grid lines. You can also choose to hide or display the grid lines for the heading, column and row lines. By default, Corel Paradox does not display heading, column and row lines.

To format the grid lines

1.	Click Format, Properties, Grid.

2.	Click the Grid Lines tab.

3.	To display or hide the grid lines, do one or more of the following:

•	Enable or disable the Heading Lines check box to display or hide the grid line below the table heading.

•	Enable or disable the Column Lines check box to display or hide the grid lines between the columns of the table.

•	Enable or disable the Row Lines check box to display or hide the grid lines between the columns of the table.

4.	To change the color of the grid lines, click a color from the palette to select it.

5.	To change the line style click a line style in the Line Style box to select it.

6.	To change the spacing of the grid lines, click a spacing option from the Spacing box.

7.	Enable the Query Look check box to move the heading line from below heading text to behind heading text.

8.	Click the Apply button to apply your changes.

Notes

•	You cannot set separate properties for the heading, column and row lines. Settings apply to all of the grid lines. To vary the look of your table, experiment by displaying or hiding different grid lines once you set grid properties.

•	If you set the grid spacing as None, you won't be able to see any grid lines.

 Related Topics


Displaying a marker for the current record
Formatting the current record marker

The current record marker is a horizontal line that appears beneath the current record in a table. By default, Corel Paradox does not display the record marker.

To format the current record marker

1.	Click Format, Properties, Grid.

2.	Click the Record Marker tab.

3.	Enable or disable the Show Record Marker check box to display or hide the current record marker.

4.	To change the line color, click a color from the Line Color palette to select it.

5.	To change the line style, choose a style from the Line Style box.

6.	Click the Apply button to apply your changes.

 Related Topics


the appearance of a cells in a field based on data values
Changing the appearance of cells in a field based on data values

You can change the properties of all data in a field that meets a certain requirement. For example, in the Qty field of the sample Lineitem table, suppose you want to display all quantities less than five on a white background. You can do this using the Data Dependent property. You can specify ranges that are greater than, equal to, or less than a given value. You can also combine ranges, and set separate properties for different ranges of values. For example, you could specify a blue background for a cell whenever the value of the cell is greater than 50 but less than or equal to 100. You could specify a red background whenever the value of the cell is greater than 100.

Alpha, number, short, long integer, date, time, timestamp, logical, autoincrement, and money field types (as well as dBASE character, number, float number, date, and logical field types) all have the Data Dependent property which you can use to establish a range of values for which the field's display is visually different.

To specify a data-dependent range for a field

1.	Right-click a field and click Data Dependent.

2.	In the Data Dependent dialog box, click the New Range button.

3.	In the Range Includes Values section, enable the greater than, equal to, or equal to and greater than button and type a value in the top box. If only want to specify a range using the Less than or less than or equal to ranges, enable the greater than button and leave box next to it blank.

4.	To specify a top range for the data, enable the less than or less than or equal to button and type a value in the box.

5.	Click the Set Properties button.

6.	In the Properties dialog box, set the background color and font, style, size and color of the text for that range of values.

7.	Click the OK button to return to the Data Dependent Properties dialog box.

The Sample box, displays a sample of the background color and font you have chosen for that range of values.

8.	Click the Apply Changes button.

9.	Repeat steps 2 to 8 to specify properties for other ranges of values.

Click OK to return to the table. Corel Paradox changes the appearance of any cells that fall within the range of values specified.

Note

•	The properties of a data-dependent range override those you may specify for a column. If, for example, you choose a blue background color for a column, any records that fall within a data-dependent range specification are not affected. These records continue to use the background color for the range, rather than for the column as a whole.

Tip

•	To remove data-dependent range for a field, right click a field and click Data Dependent. Click the range you want to remove and click the Remove button.

 Related Topics


About data formats

You can define custom formats for number, money, date, time, timestamp, and logical fields. Specifying a data format does not change the data or how Corel Paradox stores it, only how Corel Paradox displays the data type.

 Related Topics


Specifying the format for numeric data

To specify the format in which a number, money, date, time, timestamp, or logical field is displayed

1.	Right-click a field in a Table window or in a Design window and click Properties.

2.	Choose Properties, then click the Format tab.

3.	Do one of the following:

•	Choose one of the formats to apply it to the selected field.

•	Choose Create New Format to open a dialog box where you can define a custom format.

•	You can change or delete only custom formats, not formats provided by Corel Paradox.

 Related Topics


Predefined number and money formats

The format list for a number or money field shows the following predefined formats.

Format	Description

Windows $	Uses the currency symbol and format that you defined in the Windows Control Panel.

Windows #	The default format for Corel Paradox number fields. Corel Paradox uses the format you specify from the Windows Control Panel.

Fixed	Displays number values with two decimal places. Trailing zeros are displayed. Thousand separators are not used. Negative numbers are preceded by a minus sign (-).

Scientific	Displays number values in exponential notation (with four decimal places), as a decimal number from 1 to 10 multiplied by a power of 10. Negative numbers are preceded by a minus sign (-).

All number formats use scientific notation to display numbers that are too big to fit. The Scientific format always uses scientific notation.

General	Displays number values with up to two decimal places if the number includes a decimal value. Trailing zeros and thousand separators are not displayed. Negative numbers are preceded by a minus sign (-).

Comma	Displays number values with two decimal places. Trailing zeros are displayed. Thousand separators are used and displayed as a comma. Negative numbers are displayed in parentheses.

Percent	Displays numbers followed by the percent sign (%). For example, the value .5 is displayed as 50.0%. Thousand separators are not used. Negative numbers are preceded by a minus sign (-).

Integer	Displays whole numbers only. Decimal values are rounded when you convert to the Integer format. If you convert to a format that displays decimals, they are returned. Thousand separators are not used. Negative numbers are preceded by a minus sign (-).

DBNumeric	Uses the number format settings from your BDE configuration settings.

You can define your own number and money formats as described in Creating a custom data format.

 Related Topics


Predefined date formats

The format list for a date field shows the following predefined formats.

Format	Description

DBDate	Uses the date format settings from your BDE configuration settings.

ISO Date	Displays dates using four-digit numbers for the year, followed by the month, followed by the day, each separated by a period (.).

mm/dd/yy	Displays dates using two-digit numbers for the month, followed by the day, followed by the year, each separated by a slash mark (/).

Windows Long	Uses the long date format you define in the Windows Control Panel Regional Settings Properties dialog box.

Windows Short	Uses the short date format you define in the Windows Control Panel Regional Settings Properties dialog box.

For each format, a two-digit yy value from 00-50 (2000-2050) is assumed to be in the twenty-first century. Dates entered from 51-99 (1951-1999) are assumed to be in the twentieth century.To override the default date assumption, use a four-digit display and specify all digits of the year. For all other centuries, you must specify all four digits. For more information see Year 2000 date information.

You can define your own date formats as described in Creating a custom data format.

 Related Topics


Predefined time formats

The format list for a time field shows the following predefined formats.

Format	Description

Windows Time	Uses the time format you define from the Windows Control Panel Regional Settings Properties dialog box.

hh:mm:ss am	Displays two digits of hours, minutes, and seconds, separated by colons and followed by "AM" or "PM".

DBTime	Uses the time format settings from your BDE configuration settings.

You can define your own time formats as described in Creating a custom data format.

 Related Topics


Predefined timestamp formats

The format list for a timestamp field shows the following predefined formats.

Format	Description

Win. DateStamp	Uses the date and time formats you define in the Windows Control Panel Regional Settings Properties dialog box.

hh:mm:ss am mm/dd/yy	Displays hours, minutes, and seconds (2 digits each), separated by colons and followed by "AM" or "PM" and the month, day, and year.

DBTimestamp	Uses the timestamp format settings from your BDE configuration settings.

You can define your own timestamp formats as described in Creating a custom data format.

 Related Topics


Predefined logical formats

The format list for a logical field shows the following predefined formats. These formats let you choose what values to accept as true and false in the logical field.

•	Male/Female

•	True/False

•	Yes/No

You can define your own logical formats as described in Creating a custom data format.

 Related Topics


Creating a custom data format

You can define custom formats for number, money, date, time, timestamp, and logical fields. Specifying a data format does not change the data or how Corel Paradox stores it, only how Corel Paradox displays the data type. The procedure for all data types is similar to the following procedure.

To create a custom data format

1.	Right-click a field (one of the types listed above) in an open table and click Properties.

2.	Click the Format tab.

3.	Click the Create New Format button.

4.	In the Select Number Format dialog box, click the Create button.

5.	In the Existing Formats panel, click an existing format as the base for the new format.

6.	In the Name text box, type a name for the format.

You must give each format a unique name, regardless of the data type it applies to. For example, you cannot give a number format and a date format the same name.

7.	In the Format panel, choose properties for the format. For details about each setting, click the Help button in the dialog box.

If you want to use a Windows Control Panel default format for a particular option, right-click that format option's text box. You'll see a menu of defaults you can use.

8.	Click the Add Format button to add the new format to the Existing Formats list.

 Note

•	Set the Windows number and money formats from the Windows Control Panel.

For information on each data type, see the following topics:

 Select/Create/Change Number Format dialog box

 Select/Create/Change Date Format dialog box

 Select/Create/Change Time Format dialog box

 Select/Create/Change Timestamp Format dialog box

 Select/Create/Change Logical Format dialog box

 Related Topics


Changing a custom data format

You can change only custom formats, not Corel Paradox-provided formats. The procedure for all data types is similar to the following procedure.

To change a custom format

1.	Right-click a field (one of the types listed above) in an open table and click Properties.

2.	Click the Format tab.

3.	Click the Create New Format button.

4.	In the Select Number Format dialog box, click the Create button.

5.	In the Existing Formats panel, click the format you want to change.

6.	Click the Change button.

7.	If you want to change the name of the format, type a name for the format in the Name box.

8.	In the Format panel, choose properties for the format. For details about each setting, click the Help button in the dialog box.

If you want to use a Windows Control Panel default format for a particular option, right-click that format option's text box. You'll see a menu of defaults you can use.

9.	Click the Add Format button to add the new format to the Existing Formats list.

For information on each data type, see the following topics:

 Select/Create/Change Number Format dialog box

 Select/Create/Change Date Format dialog box

 Select/Create/Change Time Format dialog box

 Select/Create/Change Timestamp Format dialog box

 Select/Create/Change Logical Format dialog box

 Related Topics


Deleting a custom data format

You can delete only custom formats, not Corel Paradox-provided formats. The procedure for all data types is similar to the following procedure.

To delete a custom format

1.	Right-click a field (one of the types listed above) in an open table and click Properties.

2.	Click the Format tab.

3.	Click the Create New Format button.

4.	In the Select Number Format dialog box, click the Create button.

5.	In the Existing Formats panel, click the format you want to change.

6.	Click the Delete button.

Corel Paradox deletes the format and removes it from the Existing Formats list.

 Related Topics


Magnifying the display of a graphic or OLE field

By default, Corel Paradox displays a graphic or OLE object at 100% of its original size.

To change the magnification of a graphic or OLE field

1.	Open a table.

2.	Right-click the graphic or OLE field and click Properties.

3.	Click the Magnification tab.

4.	Do one of the following:

•	Click 25% or 50% to shrink the displayed object.

•	Click 100% to display the object in its original size.

•	Click 200% or 400% to magnify the displayed object.

•	Click Best Fit to shrink the object to fit in the field while retaining the proportions of the original object. When you click Best Fit, changing the column width or row height changes the size of the object.

 Tip

•	For fastest performance, display graphic and OLE objects at 100%. Best Fit usually provides the slowest performance.

 Related Topics


About sorting tables

When you sort a table, Corel Paradox displays the table based on the sort criteria you specify. Corel Paradox cannot sort on the following field types:

•	BLOB, BCD, logical, or bytes fields in Corel Paradox tables

•	Memo, binary, OLE, or logical fields in dBASE tables

Fields of these types are displayed in the Fields list, but are dimmed and cannot be selected for placement in the Sort Order list.

Sorting keyed tables

By definition, the key determines the physical location of the records in the table. If a table is keyed, Corel Paradox provides you with two ways to sort the table differently. You can create a maintained secondary index which displays records based on different sort criteria without changing the physical location of the records in the table. Or, to change the physical location of the records in the table, you can sort the keyed table to a new (unkeyed) table; the original table remains unchanged.

Sorting unkeyed tables

If a table is not keyed, records appear in the table in the order in which you entered them. When you sort an unkeyed table, you change the actual location of the records in the table. You can sort an unkeyed table to itself, or create a new sorted table, leaving the original intact. For dBASE tables, the default order for records is chronological; for Corel Paradox tables, it is positional (how they are entered).

Sorting on a network

When you sort tables in a multi-user environment, Corel Paradox automatically places a lock on the table you are sorting. Other users cannot modify its contents or structure. If another user has a lock on the table, you will not be able to begin sorting until that user finishes working with it. When you sort to a new table, Corel Paradox automatically places a lock on that table as well as the original table for the duration of the sort.

 Note

•	You cannot sort SQL tables.

 Related Topics


Sorting a table

To sort a table

1.	Open a table.

2.	Click Format, Sort.

3.	Click the first field on which you want to sort the table from the Fields box and click the right-arrow button to move it to the Sort Order box in the order you want to sort the table.

4.	By definition, Corel Paradox sorts records in ascending order. To sort records in descending order, click the field in the Sort Order box and click the Sort Direction button so that a minus sign (-) appears in front of the field name. Click the Sort Order button again to display a plus sign (+) in front of the field name and sort the records in ascending order.

5.	Repeat steps 3 and 4 until all of the fields you want to sort on are in the Sort Order box.

6.	Do one of the following:

•	If the table is keyed, type a name for the new table in the New Table box.

•	If the table is not keyed, enable the Same Table button to sort the table based on the new sort criteria; or, enable the New table and type a name for the new table in the New Table box. Corel Paradox will create a new table based on the sort criteria without changing the original table.

7.	Enable the Sort Just Selected Fields check box if you want Corel Paradox to sort only on the fields listed in the Sort Order box.

8.	If you want Corel Paradox to automatically display the sorted table, enable the Display The Sorted Table check box.

Notes

•	When you enable the Sort Just Selected Fields check box, Corel Paradox sorts only on the fields that appear in the Sort Order list. All the fields of the source table are included in the resulting sorted table, but they are not sorted beyond the fields listed in the Sort Order list. If two or more records have identical values in these fields, Corel Paradox cannot sort those records and places them in the table as a group, but unsorted within the group.

When you do not enable this option, Corel Paradox performs the sort first on the fields in the Sort Order List, then if there are two or more records with identical values in their sorted fields on the fields remaining in the Fields List (in the order in which they appear).

•	You do not have to put all the fields from the Fields list in the Sort Order list. Corel Paradox adds any fields you do not explicitly put in the Sort Order list to the end of that list before performing the sort (unless you have enabled Sort Just Selected Fields). Corel Paradox includes all fields in the result (whether the result is the same or a new table).

•	If you do not add any fields to the Sort Order list, Corel Paradox sorts the table in the order of the fields in the Fields list. If you enable Sort Just Selected Fields, you must place at least one field in the Sort Order list.

 Related Topics


Sorting an Answer table

You can sort Answer tables from queries.

To sort an Answer table

1.	Click the Query window to activate it.

2.	Click Query, Properties.

3.	Click the Sort tab.

4.	Use the arrows buttons to move Answer table fields from the Answer Fields box to the Sort Order box in the order you want them to sort.

When you run the query, the Answer table is sorted in the order you specified.

 Related Topics


About filters

Sometimes you don't want to see all the data in a table. Filters let you view a subset of the records in a table. For example, in the Customer table, you might want to see only those customers in North Carolina and California. Or maybe, among those customers, you want to see only those who have placed orders totaling $1,000 or more. Filters allow you to

•	display only those records whose field values meet the conditions you specify

•	display records based on any secondary index you have defined for the table.

Filters are similar to live queries. Once you filter table data, you can change to edit mode and update information in the selected records. Most of the operators that you can use in queries can also be used in filters. For more information, see Filters and queries compared.

Filtering forms or reports with complex data models

You can set filters on forms or reports that have complex data models. A filter can always be applied to the master table in a data model. A filter can also be applied to detail tables if the tables are linked in a multi-value relationship. Filters cannot be applied to detail tables if the tables are linked in a single-value relationship.

 Related Topics


Filters and queries compared

Filters are similar to queries. Most of the operators that work in a query can also be used in a filter. The differences in the kinds of expressions you can use are

•	The @ wildcard operator is not allowed in a filter.

•	The .. wildcard operator is not allowed in numeric or date fields in filters. Furthermore, this operator is allowed after the filter condition, but not before it. For example, you can type view.. to filter for all values that contain the letters "view" (either upper or lower case) followed by any other letters. This filter returns the values View, Viewing, viewed, viewable, and so on. Using the .. wildcard is the only way to define a case-insensitive filter.

•	Example elements are not used in filters. However, you can refer to one field from another. See Either/or conditions for more information.

•	Calculated fields are not used in filters. Furthermore, math operations can be performed only on SQL tables.

•	You cannot use memo, formatted memo, OLE, graphic, binary and bytes or BLOB fields in filters.

•	Summary expressions (like COUNT>5) are not allowed in filters.

•	In filters, parentheses can be used to nest conditions.

•	The comma functions as the AND operator for top-level conditions such as >200, <300. However, in a filter, the AND operator must be used instead of a comma to express more complicated conditions such as (>100 AND <200) OR (>300 AND <500). The general rule is that you must use AND when the condition is within parentheses.

•	The LIKE, AS, and SET operators are not used in filters, but the TODAY and BLANK operators are allowed.

•	Any operators that change data do not function in filters.

•	Checks are not used in filters, and records are displayed as if a CheckPlus is set on every field.

•	Although filters cannot have multiple lines such as those used in queries, the equivalent to multiple lines is the OR keyword.

•	The % (equivalent to mod) operator is supported in filters but not in queries. This operator only works on SQL tables.

•	The operator precedence is slightly different than queries. See Operator precedence in filters for more information.

In all other respects, the types of expressions you can use in filters are the same as those used in queries. See About queries for more information on query expressions.

 Related Topics


Operator precedence in filters

Paradox evaluates operators in filters in a certain order. (See Filters and queries compared for details on the operators supported in filters.)

In expressions containing more than one operator, the operators are evaluated in the order of precedence shown in the following table.

Precedence	Operator

1	( ) [ ] " "

2	* / %

3	+ -

4	= <> < <= > >=

5	NOT

6	AND

7	OR

8	, (comma)

 Note

•	Any expression contained in parentheses is evaluated first, and inner levels of parentheses are evaluated before outer levels. When two or more operators of equal precedence are in a single expression, they are evaluated from left to right.

 Related Topics


Either/or conditions

You can use either/or conditions to filter your table data. As outlined in the procedure for sorting a table, you specify filter criteria by opening the Filter Table dialog box and typing names, values, or other operators in one or more boxes beside the names the table fields.

Suppose you want to see customers that are either in Florida or the Bahamas. If you type Bahamas in the Country box and FL in the State/Prov box, Corel Paradox to displays all customers that are in both the state of Florida and the Bahamas. (This is equivalent to an AND query.) Since no records can meet that condition, Paradox shows no records in the filtered view.

To tell Paradox you want to see customers that are located either in Florida or the Bahamas, you must specify OR conditions across fields. You can do this by referring to one field from the text box of another field. So, to see customers that are either in Florida or the Bahamas, you type FL or Country=Bahamas in the State/Prov text box.

 Note

•	When referring to a field name that contains a space or special characters (those listed in Operator precedence in filters), you must enclose the field name in brackets. For example, the condition City = Venice or [Customer No] = 1560 is valid, but the condition City = Venice or Customer No = 1560 is not. Furthermore, the condition [Sale%] < 20 is valid, but the condition Sale% < 20 is not.

•	It doesn't matter which text box you use to specify filter conditions. You could type Bahamas or [State/Prov] = FL in the Country field. You could even type [State/Prov] = FL or Country = Bahamas in the Name text box (or any other text box).

 Related Topics


Filtering a field
Filtering a single field

To filter a field

1.	Right-click the field you want to filter in a Table, Form, or Report Design window and click Filter.

2.	In the Field Filter dialog box, type the value to display.

Corel Paradox displays only those records where the selected field contains the value you specified.

 Related Topics


Filtering a table

When you filter a table, Corel Paradox searches the table and displays records containing values that meet the filter criteria you specify. For example, if you want to view a list of customers with the name Robertson, you could type Robertson in the box beside the Name field. Corel Paradox displays only the records for customers with the name Robertson. If you only wanted to view those customers with the name Robertson who lived in Nova Scotia, you could also type Nova Scotia in the box beside the State/Prov field. When you filter a table, Corel Paradox only displays those records that match all of the filter criteria.

When specifying filter criteria, You can use the same keywords and symbols to specify filters that you can use in queries to specify selection conditions. For more information, see About queries. Filters and queries compared lists the differences between rules for query selection conditions and for filter conditions.

If the table is keyed, or has secondary indexes, you can choose which index Corel Paradox uses to sort the filtered records.

You can also filter a table to show only those records whose fields contain a range of values. For example, you can have Corel Paradox display records 50 to 100 in a table.

To filter your view of data in a table

1.	Open a table.

2.	Click Format, Filter.

3.	Enable the Order By check box to order records according to the selected index. An asterisk (*) precedes the primary index.

4.	If the table is keyed, or has secondary indexes defined, you can choose which index Corel Paradox uses to sort

5.	Type the conditions for the records you want to see in the box beside each field listed in the Filters On Fields area.

6.	If you don't want to specify a range of values, click OK; if you want to specify a range of values, click the Range button.

7.	To specify an exact match, type the value you want to find in the Field Value box. Note, you can only filter records based on the values in the key field(s) of the index you chose in step 4.

8.	To specify a range of values, enable the Set Range check box.

9.	Type the beginning and ending (if applicable) values in the Field Value boxes.

Note

•	You can only specify a range of values based on the field(s) defined in the primary (key) or secondary index you selected. If you choose a composite index (or key), you can set ranges for multiple fields within the index.

•	If you enable the Set Range check box without first placing the insertion point in a text box, Paradox automatically chooses the last field for which you have specified a value as the field for which you want to define the range of values.

•	You can filter for partial values in alpha fields. For example, to view a list of customer records whose names begin with the letters A through J (in a table keyed on a Customer Name field) you can enable the March Partial Strings dialog box in the Set Range For Index dialog box. This option is unavailable until you enable the Set Range check box. You can enter A as the beginning range and J as the ending range.

 Related Topics


Removing a filter

To remove a single-field filter

1.	Right-click the field and click Filter.

2.	Delete the text in the Field Filter dialog box.

Corel Paradox displays all records from the table.

To remove a table filter

1.	Open a table, form, or report.

2.	Click Format, Filter.

2.	In the Filter Tables dialog box, delete the filter condition text.

Corel Paradox re-displays all records from the table.

 Related Topics


Viewing keyed Paradox tables in a different order

To view a keyed Corel Paradox table in a different order than that specified by the primary index, you can use the Filter command to access and sort the table based on any secondary indexes you have defined for the table.

To use the Filter command to sort on a secondary index

1.	Open a table, form, or report.

2.	Click Format, Filter.

3.	In the Filter Tables dialog box, enable the Order By check box.

4.	Click an index from the list below the Order By check box.

Corel Paradox creates a view of the table's data sorted by the values in the secondary index you chose.

 Note

•	To specify a case-insensitive as opposed to a case-sensitive view order, you must first define the index you use to the specifications you want.

 Related Topics


To view indexed dBASE tables in a different order
Viewing indexed dBASE tables in a different order

You can use the Filter Table command to sort an indexed dBASE table based on any of the secondary indexes you have defined for the table. When you change the view order of a dBASE table, the record numbers (which show the true location of each record in the table) are shown out of order.

To view indexed dBASE tables using a production index

1.	Open a table, form, or report.

2.	Click Format, Filter.

3.	In the Filter Tables dialog box, enable the Order By check box.

The list box below the Order By check box shows all tags included in the table's production index (the .MDX file that shares the table name).

4.	Click an index from the list below the Order By check box. If you want records to appear in natural order, choose NO INDEX.

To view indexed dBASE tables using an index other than the production index

You can use a different index (an .NDX file or a tag from a different .MDX file).

1.	Open a table, form, or report.

2.	Click Format, Filter.

3.	Type the name of the index (including its .MDX or .NDX extension) in the dBASE Index File field.

 Note

•	To specify a descending as opposed to an ascending view order, or a case-insensitive as opposed to a case-sensitive view order, you must first define the index you use to the specifications you want.

 Related Topics


Viewing indexed SQL tables in a different order

You can use the Filter Table command to sort an indexed SQL table using any of the indexes you have defined for the table.

To view an indexed SQL table in a different order

1.	Open a table, form or report.

2.	Click Format, Filter.

3.	In the Filter Tables dialog box, enable the Order By check box.

4.	Click an index from the list below the Order By check box.

Paradox displays the table's data based on the sort criteria defined in the index.

 Note

•	To specify a case-insensitive as opposed to a case-sensitive view order, you must first define the index you use to the specifications you want.

 Related Topics


Ranges on a composite index
Setting ranges on a composite index

As outlined in the procedure for filtering a table, you can only specify a range of values based on the field(s) defined in the primary (key) or secondary index you selected. If you choose a composite index (or key), you can set ranges for multiple fields within the index. The composite index determines the order of fields shown in the Set Range for Index dialog box (where you set the range of data you want to view).

Rules for setting ranges on a composite index

When setting ranges on a composite index, you must select a single continuous set of records on the chosen index.

You do not have to specify a range for every field of the index, but you cannot skip over a field. For example, if you have a three-field index You can set a range on the first field, but not the second or third; you can set a range on the first and second fields, but not the third; you cannot set a range on the first and third fields, skipping the second.

You can specify exact matches and range matches on the same composite index, but you can use a range match only on the last of the fields you define a match for. Using the example of the three-field index, you can set an exact match on the first and second fields, and a range match on the third; you can set an exact match on the first field, a range match on the second, and leave the third blank; you can set a range match on the first field, and no range on the second or third; you cannot set a range match on the first field and an exact match on the second or third.

 Note

•	You cannot use a composite index on a dBASE table to set a range. You can, however, use an expression index. You can set an exact match, inexact match, or partial range on an expression index.

 Related Topics


Ranges or filters on a quick form

Suppose you set a range or filter from the Table window and then create a form. Even if you've set a different range or filter for use on the form, Corel Paradox uses the table's setting in both windows because the table was opened first.

Likewise, if you open a form first, then click View, Table View to open a Table window, the table will use the form's setting. Corel Paradox uses the settings of the window you open first.

You can save a filter or range setting with a form or report. (You can't save a range setting with a table.)

1.	Specify the range setting you want.

2.	Save the form in the Design window.

 Related Topics


About table structure information
Viewing table structure information

You can use the Info Structure command to display the structure of a table, including any key, validity check, index, table lookup, or referential integrity information.

You cannot make changes to the table structure from the Structure Information dialog box; you can only view the structure.

To view table structure information

1.	Click Tools, Utitlities, Info Structure.

2.	Use the Look In list box of the Select file dialog box to locate the table whose structure you want to view.

3.	Type the filename of the table in the File Name box.

4.	Click the Open button.

5.	To save strucutre information as a Corel Paradox table, click the Save As button.

Paradox tables

The Table Properties list box displays the following information about a Paradox table:

•	Validity Checks shows validity checks defined for each field. Move through the fields in the Field Roster to see validity checks for each one.

•	Table Lookup shows any tables that this table uses as a lookup table.

•	Secondary Indexes shows all secondary indexes for the table.

•	Referential Integrity shows whether this table refers to a parent table for valid data.

•	Table Language shows the language driver for the table.

•	Dependent Tables shows any table that this table recognizes as a child in a referential integrity relationship.

dBASE tables

The Table Properties drop-down list displays the following information about a dBASE table:

•	Indexes shows all indexes for the table.

You can select an index and choose Detail Info to see information about the index in the Index Info dialog box (dBASE tables) dialog box.

•	Table Language shows the language driver for the table.

SQL tables

•	The Required Field checkbox (in the panel on the right) specifies whether the selected field is required.

•	The panel on the right lists indexes for the table. You can select an index and choose Detail Info to see information about the index in the Index Info dialog box (SQL tables) dialog box.

 Related Topics


About adding records

You can use the Add command to add a copy of the records in one table to another, provided the tables have the same structure. The Add command allows you to add new records, update existing records, or both.

When performing an Add operation, keep these rules in mind:

•	The table you add records to can have more fields than the source table, as long as the first fields of the table you add the records to are compatible with all fields of the source (compatible fields types in the same order). Corel Paradox places null values in the extra fields.

•	The source table can have more fields than the table you add the records to, as long as the fields of the table you add the records to are compatible with the first fields of the source (compatible field types in the same order). Corel Paradox ignores the extra fields.

•	If the table you add the records to is keyed, the added records must conform to the rules of the key. Corel Paradox places records that do not conform in the temporary Keyviol table in your private directory. The source table is never changed during an Add operation; it does not matter if it is keyed or not.

Adding records to a different table type

The two tables you use in the Add operation must have compatible (though not necessarily identical) field types in the same order. For fields to be compatible, Corel Paradox must be able to change from the existing field type to the new field type in a Restructure operation. For example, Corel Paradox number (N) and money ($) fields are compatible, but Corel Paradox number (N) and graphic fields (G) are not. For information about compatible Corel Paradox and dBASE field types, see Compatible Corel Paradox Field Types, Compatible dBASE Field Types, and Merging Corel Paradox and dBASE tables.

For information about compatible field types for SQL tables, see your SQL Links documentation.

 Notes

•	Some field type conversions can result in invalid records being written to the temporary Problems table. If this happens, edit the records in the Problems table and then add them again. The Problems table is not generated for SQL tables; the invalid records are dropped.

•	When you add records to tables using the Add command, Corel Paradox acquires a read lock on the source table and a write lock on the table you add records to. Until the records are added, other users cannot change the contents or structure of either table, and cannot perform any operation that requires a write or exclusive lock on the target table. If another user has already placed a write or exclusive lock on either table, you must wait until the lock is removed before using Add.

•	Windows lets you open several instances of the same table at the same time, so you could be considered another user of the table, preventing the records from being added. You can add records to an open table only if you are viewing the table; you cannot add records to a table that is open in Edit mode.

 Related Topics


Merging Paradox and dBASE tables
Corel Paradox and dBASE table field type compatibility

In an Add operation, the rules for adding records from one type to another are the same as those for restructuring from one table type to another.

You can add records from one table type to another only if the tables have a compatible structure. This means compatible field types in the same order. The following table shows which Corel Paradox and dBASE field types are compatible.

	dBASE C	dBASE F	dBASE N	dBASE D	dBASE L	dBASE M	dBASE O	dBASE B
Paradox
A	Yes	P	P	P	P	Yes	No	No
N	Yes	Yes	Yes	No	P	No	No	No
$	Yes	Yes	Yes	No	No	No	No	No
D	Yes	No	No	Yes	No	No	No	No
S	Yes	Yes	Yes	No	P	No	No	No
M	No	No	No	No	No	Yes	No	Yes
F	No	No	No	No	No	Yes	No	Yes
B	No	No	No	No	No	Yes	No	Yes
G	No	No	No	No	No	Yes	No	Yes
O	No	No	No	No	No	Yes*	Yes	Yes
I	Yes	Yes	Yes	No	Yes	No	No	No
#	Yes	Yes	Yes	No	Yes	No	No	No
T	Yes	No	No	Yes	No	No	No	No
@	Yes	No	No	Yes	No	No	No	No
L	Yes	Yes	Yes	No	Yes	No	No	No
+	Yes	Yes	Yes	No	Yes	No	No	No
Y	P	No	No	No	No	Yes	No	No
Yes	The field types are compatible.

No	The field types are not compatible.

P	The field types are somewhat compatible, but conversion can result in a Problems table.

*	You can add from a Corel Paradox OLE field to a dBASE IV memo field, but not to a dBASE memo field.

When you add data from a Corel Paradox formatted memo to a dBASE memo, Corel Paradox removes all formatting and converts the data to straight text.

When you add data from a Corel Paradox graphic, OLE, or binary field to a dBASE memo, the dBASE table can accept the data, but cannot display it.

The table you add the records to can have more fields than the source table, as long as the first fields of the table you add the records to are compatible with all fields of the source (compatible field types in the same order). Corel Paradox places null values in the extra fields.

 Related Topics


Adding records from another table

To quickly add many records to a table, you can merge the records from another table that has the same structure. The two tables can be of different types, as long as their fields are compatible. To verify that the source and destination tables are suitable for this procedure, see About adding records. You can perform an Add operation across directories.

To add records from another table

1.	Click Tools, Utilities, Add.

2.	In the Add dialog box, use the Look In list box to locate the table you want to add records from.

3.	Select the table you want to add records from, then choose Open.

Corel Paradox opens the Add Records In <table> To dialog box.

4.	In the Add Records In dialog box, choose the table you want to add records to.

5.	Do one of the following:

•	Enable the Append button to add records to the target table without affecting exising records.

•	Enable the Update button to update records that already exist in the target table. Any records in the source that don't match the target table are not added.

•	Enable the Append And Update button to overwrite matching records and add new records to the target table.

6.	Click the Add button to add the records.

 Related Topics


About moving records
Moving dependent records

In certain situations, you may have a record in one table that corresponds to a record in another table. This can happen in a referential integrity relationship, where one record in a parent table is related to one or more records in a child table. It can also occur in a multi-table form, where one record of the master table is related to one or more records in the detail table.

In either of these kinds of relationships, you can use the Move Help command to move, or reassign, a dependent record from one master to a different master.

To move dependent records

1.	Open the dependent (child) table.

2.	Press F9 to enter Edit mode.

3.	Select the record to move or reassign, by clicking the field of that record that corresponds to the first field of the master table in a referential integrity relationship. You can click in any field of a detail table.

4.	Click Record, Reference, Move Help.

5.	In the Move Help dialog box, click the new master record.

 Related Topics


About subtracting records that exist in another table

You can use the Subtract command to remove from one table those records that match records in another (called the subtraction table). You can subtract records only from a keyed table. Because dBASE and SQL tables do not support Corel Paradox keys, you cannot subtract records from dBASE or SQL tables. Instead, use a DELETE query. You cannot use an SQL table as the source of a subtract operation.

During a subtract operation, Corel Paradox removes any record that contains a value in its key that exactly matches the corresponding field(s) of a record in the subtraction table.

Warning!

•	The Subtract command is not like a query. When you subtract records from a table, you are deleting matching records.

An example

Suppose you wanted to pare down your customer records to include only those customers who answered your last mass mailing (because you decided all those who didn't answer were not interested in your product and were no longer needed in your database). You could use the Subtract command to remove from the customer information table, all of the records that matched records in another (called the subtraction table).

First, you would create a table containing the names of all of the customers who didn't answer your mailing list. When you used the Subtract command, Corel Paradox would match the list of names of users who didn't answer the mailing list to the names in the customer information table, and would then remove records that match. The result is a smaller customer table containing only the names of those customers who responded to the last mailing. Corel Paradox deletes the rest of the records.

Rules for subtracting tables

•	The two tables you use in the Subtract operation must have compatible structures. This means compatible fields in the same field order.

•	If the table you subtract from is the parent table in a referential integrity relationship, the Subtract operation is not allowed. You must first either delete the referential integrity (by restructuring the child table) or delete the child table.

Subtracting records on a network

When you use the Subtract command to subtract records, Corel Paradox needs to acquire a read lock on the table that contains the records you are subtracting and a write lock on the table you are subtracting records from. This means that until the records are subtracted, other users cannot change the contents or structure of either table or perform any operation that requires a write or exclusive lock on either table.

If another user has already placed a write or exclusive lock on either table, you must wait until the lock is removed before using Subtract.

Windows lets you open several instances of the same table at the same time, so you could be considered another user of the table, preventing the records from being subtracted. You can subtract records from an open table only if you are viewing the table; you cannot subtract records from a table that is open in Edit mode.

 Related Topics


Subtracting records that exist in another table

The Subtract command lets you subtract records from one table that match records in another. To verify that the tables meet Subtract command requirements, check the rules listed in About subtracting records that exist in another table.

Warning!

•	The Subtract command is not like a query. When you subtract records from a table, you are deleting matching records.

To subtract one table from another

1.	Click Tools, Utilities, Subtract.

2.	In the Subtract dialog box, use the Look In list box to locate the table containing the records you want to match (and delete from the other table).

3.	Type the name of the table in the File Name box.

4.	Click the Open button.

5.	In the Subtract Records From dialog box, use the Look In list box to locate the table you want to delete records from.

6.	Type the name of the table in the File Name dialog box.

7.	Click the Open button to subtract the records.

Corel Paradox performs the subtract operation and deletes matching records.

 Related Topics


About emptying tables
Emptying tables

You can use the Empty command to remove all records from a table, leaving the table's structure (including all keys, indexes, validity checks, and so on) intact. You can use Empty on Corel Paradox, dBASE, and SQL tables. When you empty a dBASE table, all records in the table are marked as deleted.

You cannot empty a table that is identified as the parent in a referential integrity relationship. You must first either delete the referential integrity (from the child table) or delete the child table.

Emptying tables on a network

When you use Empty, Corel Paradox must acquire an exclusive lock on the table. This means that no user can access the table in any way. If there is a lock of any type open on the table, you must wait until it is released before you can use the Empty utility.

To empty a table

1.	Click Tools, Utilities, Empty.

2.	Use the Look In list box of the Empty dialog box to locate the table you want to empty.

3.	Type the filename of the appropriate table in the File Name box.

4.	Click the Empty button.

 Related Topics


About locking tables

There are several kinds of locks in a multi-user environment. For example, when you edit a value, you see the message "Record is now locked" in the status bar. Locks prevent two users from editing the same record at the same time. This is an automatic lock; you cannot edit a value without placing it. As soon as you move off the field, Paradox automatically unlocks the record.

You can also manually lock and unlock tables, using the Set Locks command. The locks controlled by the Set Locks command

•	Lock the entire table.

•	Provide varying levels of protection.

•	Must be explicitly placed and removed.

This table summarizes users' rights under different levels of locks placed from the Desktop using the Set Locks command. The lock levels are arranged in order of increasing strength.

Paradox maintains a Desktop-level lock until you exit Paradox or remove the lock (choose No Lock).

Lock level	Your rights	Other users' rights	Locks other users can place
None	None	All	All*
Open	Read, (write if no other user has a read lock)	Read, Write	All except exclusive if no record lock in place. Otherwise only Open.
Read	Read, (write if no other user has a read lock)	Read	Open, Read
Write	Read, write	Read	Open
Exclusive	All	None	None
* No Lock means no Desktop-level locks are placed by you. If another type of lock is in place (a record lock or open lock), you cannot obtain an exclusive lock.

 Related Topics


About displaying table locks
Displaying table locks

You can display the type of locks placed on tables, as well as who has placed each lock.

To display table locks

1.	Click Tools, Security,Display Locks.

2.	Use the Look In list box of the Select File dialog box to locate the table whose locks you want to display.

3.	Type the name of the table in the File Name box.

4.	Click the Open button.

Corel Paradox displays what locks have been placed on the table and who placed them.

This column	Shows

Type	What type of lock is on the table.

Username	The name of the person who placed the lock.

Net Session	The session number of the person who placed the lock.

Our Session	1 means the lock is yours. 0 means another user placed the lock.

Record Number	Which record is locked (if the lock is a record lock, not a table lock).

 Note

•	The Locks table always includes a lock placed by you. Paradox automatically places this lock on the table when it checks its locks. Paradox removes this lock immediately after gathering lock information about the table. By the time you see this lock in the Locks table, it has been removed.

 Related Topics


Locking a table

You can lock tables to prevent other users from opening or editing them.

To lock a table

1.	Click Tools, Security, Set Locks.

2.	In the Table Locks dialog box, select the table you want to lock. By default the Table Name list displays tables in the Working directory.

3.	Do one of the following:

•	Enable the Read Lock button to prevent other users from writing to the table and prevent other users from placing a lock on the table that prevents you from reading it. Your right to read is guaranteed.

•	Enable the Write Lock button to be able to read and write to the table and prevent other users from writing to the table.

•	Enable the Exclusive Lock button to prevent other users from reading or writing to the table.

•	Enable the No Lock button to remove a lock from the table.

•	Enable the Open Lock to prevent other users from placing an exclusive lock on the table.

 Related Topics


Data corruption and peer to peer networks

When you enable the Local Share property in the BDE Administrator, you can safely share tables with non-BDE applications that are running locally. (Non-BDE applications include earlier versions of Corel Paradox, dBASE IV, and Quattro Pro version 6 or earlier.)

When the Local Share property is disabled in the BDE Administrator, and you are sharing data on your local hard drive with non-BDE applications, it is possible for data corruption to occur because the data locks set by this property are turned off. The Local Share property is disabled by default.

The BDE automatically detects when a table resides on a network drive, but it cannot detect whether the tables are on a dedicated server or server/client. Dedicated servers notify client applications that a file has been modified or locked. This functionality is not present in peer-to-peer networks. By enabling the Local Share property, you can gain this functionality and protect your database from data corruption.

If you are sharing data on your local hard drive with  both BDE or non-BDE applications, you must set the Local Share property on all machines to TRUE. (The Local Share property is located on the System page of the BDE Administrator). You must do this on all BDE clients that access the tables using peer to peer networks.

Note

•	A peer to peer network is a network where each machine acts as both a client and a server, and can be one of the following, including other network platforms that are compatible with these:

•	Windows 95

•	Windows NT

•	Lantastic

•	Netware Lite

•	To run from a network, in the BDE Administrator, you must specify a network directory to store the network locking control file. Specify the directory in the Netdir field for the Paradox driver. This directory should be accessible to everyone with Read/Write access. Ensure that you specify the same path for each user (the drive letter can be different).


About entering and editing data
Entering and editing data

Once you create a table, you can begin to entering data. Corel Paradox provides you with many different ways to enter and edit data. Depending on the task, different Corel Paradox commands will be the most useful and convenient. For example, if you are adding or updating records using records that exist in another table, you can use the Add command to append and update (or both) table records. If you are editing specific values within a field, you can use the Locate And Replace command. When you are working with a single record, or field, Corel Paradox provides you with a full set of standard editing commands, such as Cut, Copy, Paste and Undo.

Paradox automatically saves the data you enter as soon as you leave a record, so, you do not need to use the Save or Save As commands to save table data.

You can enter data into tables directly, or, you can design forms to enter data into one or more tables. Either way, in order to enter or edit data, Corel Paradox requires you to change to Edit mode. Once you’re in Edit mode, you can move the insertion point to any of the table’s (or form's) fields and begin typing. (This replaces the existing contents of the field.) In most field types, you simply select the field you want and type a value in it.

To change to Edit mode

1.	Do one of the following:

·	Click View, Edit Data.

·	Click the Edit Data Toolbar button.

·	Press F9.

If you need to position the insertion point at some particular point within the field (for example, to change a spelling or typing error), you can enter Field View. For details, see Editing part of a field.

 Tips

·	To exit Edit mode, click View, View Data or press F9.

·	In addition to the usual Edit menu commands, you can press Ctrl+D in any field to copy a field value from the record above it.

·	To insert today's date in a date field, press Spacebar three times. Paradox adds the three elements of a date separately.


Editing commands

With a table or form open in Edit mode, you can use the following commands on the Edit menu to work with your data.

Choose	To

Undo	Undo all changes to the current record. This does not undo any changes you posted. You must choose Undo before leaving the record.

Cut	Delete a value from a selected field or fields in a table (or form) and place it on the Windows Clipboard.

Copy	Copy a value from a selected field or fields in a table (or form) and place it on the Windows Clipboard. In a Table window, you can copy more than one field at a time. When you make your selection, lines appear around the selected data.

Paste	Paste the contents of the Windows Clipboard into the selected field.

Note: You can paste only a valid value into a field. For example, you cannot paste a graphic value into an alpha field.

Paste Special	Establish a link using Dynamic Data Exchange (DDE) from another Windows application to your table.

Copy To	Copy the current selection to an external file.

Paste From	Paste a value from an external file into the selected field.

Delete	Remove the value. Paradox does not place it on the Windows Clipboard.

Note: You can remove an entire record with Edit, Delete but not with Edit, Cut.

Select All	Select all fields in the table (the entire table). Paradox places a box around the table.

 Related Topics


About Field View
Editing part of a field

In normal Edit mode, whatever you type in a field overwrites the data entered there. If you only want to make a small change to the data in a field, for example, if you want to correct a spelling error, you can enter Field View. Field View allows you to place the cursor anywhere in the field and edit the data character by character.

To edit part of a field

1.	Open a table.

2.	Press F9 to enter Edit mode.

3.	Click the field you want to edit.

4.	Do one of the following to enter Field View:

•	Click View, Field View.

•	Double-click the field.

•	Press F2.

5.	Edit the value in the field as appropriate.

When you move to another field, Corel Paradox exits Field View (though you are still in Edit mode).

 Tips

•	In Field View, when you leave a field, you exit Field View. If you want to move from field to field and remain in Field View, click View, Persistent Field View or press CTRL+F2. To exit Persistent Field View, click View, Persistent Field View or Press CTRL+F2.

•	In Field View, you can use the Left and Right arrows, as well as BACKSPACE and DELETE keys.

•	To exit Field View, you can click a different field, click View, Field View, or press F2.

 Note

•	If you enter Field View on a memo, formatted memo, graphic, or OLE field, Corel Paradox places the selected field's value on top of the table. This is called Memo View. Memo view provides you with greater use of the keyboard. For more information, see Editing memos and formatted memos.

 Related Topics


Data entry shortcuts
Shortcuts for faster data entry

Use these keyboard shortcuts for faster data entry. You can also use the navigation buttons on the Toolbar. For details, see Moving among table records.

Press	To

HOME	Move to the first field of the table, remaining on the selected record.

CTRL+HOME	Move to the first field of the first record of the table.

END	Move to the last field of the table, remaining on the selected record.

CTRL+END	Move to the last field of the last record of the table.

CTRL+BACKSPACE	Delete the word to the left of the insertion point.

Note: CTRL+BACKSPACE works only when you are in Field View and do not have text selected.

CTRL+D	Duplicate the information from the record above the selected field to the selected field.

ESC	Undo a field edit (you must press ESCAPE before you leave the field!).

SPACEBAR	Enter current date, time, or both in date, time, or timestamp fields. You must press SPACEBAR for each part of the field's format.

These topics give additional keyboard shortcuts for entering and editing data:

 Navigation and selection keys

 Keys used in edit mode

 Related Topics


If you cannot leave a field

The status bar at the bottom of the Desktop displays the problem. If you cannot see the status bar, maximize the Paradox window.

If you can't leave a field, it may be because the value you have or have not entered violates the validity checks, table lookup, referential integrity relationships or key. Or, you may have tried to enter data that is incompatible with the field type. To find out what type of values you need to enter you will want to view the table's structure to see what types of rules have been defined for the field.

To view the data entry rules defined for a field

1.	Click View, Table Structure.

2.	In the Structure Information dialog box, click the field you can't move off.

3.	Do one or more of the following:

•	Choose Validity Checks from the Table Properties list box to view any validity checks.

•	Choose Table Lookup from the Table Properties list box to view any table lookup details.

•	Choose Referential Integrity from the Table Properties list box to view any parent tables (to which you can refer for valid values for that field).

4.	Once you discover what types of values are acceptable for the field, click the Done button to return to the table.

 Related Topics


About inserting, posting, and deleting records

You can insert new blank records or delete existing records from either a table or a form.

Inserting and posting records

To insert a blank record above the selected record, follow the steps in Inserting records. Corel Paradox saves the new information as soon as you move off the record.

To save a record without moving off of it

•	Click Record, Post/Keep Locked.

Saving a record is often called posting or committing a record. When working in a multi-user environment, other users do not see changes you've made until you've posted them.

When you post a record in a keyed table, Corel Paradox automatically moves it to its proper position in the table. If the record's proper position is off screen, the record may seem to disappear as it is posted. However, if you look at the record count on the status bar, you'll see that the record has been added. Your view of the table might not change when Corel Paradox posts the record, but the insertion point remains where it was when you pressed INSERT.

When you post a record in a non-keyed table, the record always stays where it is inserted.

If you insert a record into a filtered view of a table's data or a direct query view, and the record does not meet the criteria established by the filter or query, you won't see the record when it is posted.

When working in a single-record form, inserting a record seems like inserting a blank screen. When you press INSERT or click Record, Insert, the record values appear blank. This is because Corel Paradox has both inserted and moved to the new blank record.

Deleting records

To delete records, follow the steps in Deleting records.

When using a Corel Paradox table, you cannot retrieve a deleted record. When using a dBASE table, deleting a record does not permanently remove it. You can choose to view deleted records with the Show Deleted command.

 Related Topics


Inserting records

To insert a record

1.	Open a table or form.

2.	Press F9 to switch to Edit mode.

3.	Press INSERT.

Corel Paradox opens a new blank record above the insertion point position. You can also insert a new blank record by navigating past the last record in a table.

4.	Type values for each field in the record.

Corel Paradox posts the record as soon as you move off the record.

 Tips

•	You can also click Record, Post/Keep Locked to save the new record without moving off of it. If the table is keyed, Corel Paradox automatically moves the record to its correct location in the table. If the table is not keyed, the new record stays in the location where you added it.

•	To add records from another table, you can use the Add command. For details, see About adding records from another table.

 Related Topics


Deleting records

To delete records

1.	Open a table or form.

2.	Press F9 to switch to Edit mode.

3.	Click any field in the record you want to delete.

4.	Press CTRL+DELETE to delete the record.

 Note

•	You cannot retrieve deleted records from Corel Paradox tables. Deleting a record in a dBASE table does not permanently remove it. You can view deleted dBASE records with the Show Deleted command.

 Related Topics


About cutting, copying, and pasting data
Cutting and copying data

In addition to typing values in fields, you can cut or copy data from one field and paste it into a different field or a different application. Data you cut or copy remains on the Windows Clipboard until you change it, clear it, or exit Windows.

To cut or copy an entire field

1.	Press F9 to enter Edit mode.

2.	Click the field to select it.

3.	Do one of the following:

·	Click Edit, Copy to copy the value in the field.

·	Click Edit, Cut to cut the value from the field.

To cut or copy only a portion of a field's data

·	Press F9 to enter Edit mode and then click View, Field View. Select the part of the field you want to cut or copy and click Edit, Cut or Edit, Copy.

To cut or copy multiple fields

·	Click and drag the mouse diagonally until a box encloses all of the fields you want to cut or copy. Then, press F9 and click Edit, Cut or Edit, Copy.

To cut or copy an entire column of data

·	Press F9 to enter Edit mode and double-click the column heading to select the column. Click Edit, Cut or Edit, Copy.

To cut or copy an entire row (record)

·	Press F9 to enter Edit mode and double-click an unselected record number. (if the record number is selected when you double-click, you enter Field View); then, click Edit, Cut, or Edit, Copy.

To cut or copy all fields in a table

·	Press F9 to enter Edit mode and click Edit, Select All. Click Edit, Cut or Edit, Copy.

Notes

·	You can cut, copy and paste data to and from files. For more information, see Copying and pasting from a file.

 Related Topics


Deleting data

To delete data from a field

1.	Press F9 to enter Edit mode.

2.	Click the field you want to delete to select it.

3.	Click Edit, Delete.

Tips

·	If you only want to delete part of a field, press F9 to enter edit mode, and then click View, Field View. Select the data you want to delete and click Edit, Delete.

·	If you accidentally delete the wrong field, click Edit, Undo immediately.

·	You can also use the Cut command to remove data and store it on the Clipboard.

 Related Topics


Pasting data

To paste cut or copied field data

1.	Press F9 to enter Edit mode.

2.	Click the field into which you want to paste the data.

3.	Click Edit, Paste.

Notes

·	The contents of the Clipboard are not deleted when you paste, so you can paste as many times as you want.

·	You cannot paste multiple field values back into a table. You can, however, paste them into any other application which accepts them (for example, Corel Quattro Pro).

·	You can use Edit, Paste From to paste data from external files. For more information, see About pasting from a file.

·	Use Edit, Paste Special to create DDE and OLE links.

 Related Topics


About copying to a file
Copying to a file

You can use the Edit, Copy To command to copy field values to external files. You can copy values in graphic, binary, memo, and formatted memo fields to non-Paradox file formats without using the Export command. You must be in Field View or Memo View to copy selected text.

When using a form, you can copy values from any field type to a non-Paradox file format without using the Export command. In Field View or Memo View, you can copy selected text inside the field.

Corel Paradox can copy graphic files only to the .BMP file format.

When you work with a binary field in a Table, you can use Copy To copy binary field values to a non-Paradox file format. The file extension you use is unrestricted.

To copy a field's value to an external file

1.	Click a field to select it

2.	Click Edit, Copy To.

3.	Type the filename (including full path if necessary) and extension in the File Name box.

4.	Click the Save button.

Corel Paradox creates a new file with the name you have specified and places the contents of the selected field in it.

 Related Topics


About pasting from a file
Pasting from a file

You can use the Edit, Paste From command to paste values from non-Corel Paradox files into Corel Paradox fields and objects. (Note: You can use Edit, Insert Object to paste files into OLE fields and objects.) You can paste text from .PXT, .TXT, and .RTF files into memo or formatted memo fields. If you're using a form, you can paste text into all field types except graphic and OLE.)

To paste a value from an external file to a Corel Paradox field

1.	Click the field into which you want to paste the data.

2.	Press F9 to enter Edit mode.

3.	Click View, Memo View if you selected a memo or formatted memo field, otherwise, go to step 4.

4.	Click Edit, Paste From.

5.	Type the filename (including full path if necessary) and extension in the File Name box.

6.	Click the Open button.

Corel Paradox places the contents of the file in the selected field.

 Related Topics


About finding and replacing data

Use the Locate commands on the Record menu to find records, fields, and values in a table or form.

Paradox provides two ways to quickly change existing field values in Edit mode or Memo View:

·	Use the Replace command (Record, Locate menu) to change a field's value.

·	Use Find and Replace command (Edit menu) to change a string within a memo field or text object.

You can use LIKE, NOT, EXACTLY, and other query operators to search for data using queries. You can also use a CHANGETO query to replace field values. For more information about queries, see About queries.

If you're working in the SQL Editor or IDE Editor, you can use Search, Find and Search, Replace to locate and replace text in SQL queries or ObjectPAL scripts.

Use the Locate commands on the Record menu in a table or run-time form window to find records and values in a table. You can include wildcards in a search. For information about wildcards, see Wildcards you can use to locate values.

To find a particular record or value in a form or table

·	Click Record, Locate, then choose one of the following:

Command	Action

Field	Move to the field you specify. (This command is available only for tables.)

Record number	Move to the record number you specify.

Value	Move to a field value you specify.

Replace	Replace the specified value with another value you specify.

To search for more occurrences of an item

·	Click Record, Locate Next.

 Related Topics


Finding and replacing text in memo fields and text objects

You can find and replace text in memo fields and text objects when you have a table or form open.

To find and replace text in a memo field, formatted memo field, or text object

1.	Press F9 to switch to Edit mode.

2.	Click the appropriate field to select it.

3.	If you have a table open, click View, Field View, otherwise, go to step 4.

4.	Select the text you want to search.

5.	Click Edit, Find And Replace.

6.	In the Find and Replace dialog box, type the text you want to search for in the Search For box, using wildcards. as appropriate.

7.	Type the replacement text in the Replace With box.

8.	Enable the Case-sensitive check box to search for the text exactly as you typed it, including capitalization.

9.	Enable the Advanced Pattern Match if you used any wildcards in your search.

Corel Paradox finds the first occurrence of the text.

To replace that occurrence of the text

·	Click the Replace button.

To replace all occurrences of the text

·	Click the Replace All button.

 Tip

·	You can also use the Find and Replace dialog box on text objects in both the Form Design and Report Design windows.

 Related Topics


Extended list of wildcards
List of wildcards you can use to search

You can use an extended set of wildcards in a search string when you enable Advanced Pattern Match in the Find And Replace and Locate And Replace dialog boxes.

Wildcard	Represents

@	Any single character

..	Any value

^	Beginning of field

$	End of field

*	Match none or more of the expression before the *

+	Match one or more of the expression before the +

?	Match one or none of the expression before the ?

|	Match either the characters before or after the vertical bar

[abc]	Match any of the characters contained within the brackets

[^abc]	Match any characters not contained within the brackets

(abc)	A group (a series of literals)

\	Use the following wildcard operator as a regular character

\r	Carriage return

\n	Line feed

\t	Tab

\f	Form feed

For examples, see Sample search strings with wildcards.

 Related Topics


Sample search strings with wildcards

Here are some examples of wildcard characters in a search string and what they find when you enable the Advanced Pattern Match option when searching for data.

Search string	Locates

co@l	cool and coal, but not col

s..ch	search, scorch, and such

^any	any only when it occurs at the start of a paragraph (when the Case-sensitive check box is disabled)

able$	able only when it occurs at the end of a paragraph (and is not followed by a period)

(success)	success

[success]	Any s, u, c, or e

[^success]	Any character except s, u, c, or e

a|(an)	Either a or an ("an" is a group here)

hands?	hand and hands (hand with or without the s)

suc?es?	success or Sue (when the Case Sensitive check box is disabled). The ? stands for one "c" or none and one "s" or none.

suc*es*	success or Sue (when the Case Sensitive check box is disabled). The * stands for any number of c's or none at all, and any number of s's or none at all.

suc+es+	success only; the + stands for one or more c's and one or more s's

4\^2	4^2 (read "four squared"). Without the backslash, only paragraphs ending in 4 followed by a paragraph starting with 2 would be found.

apples\\pears	apples\pears

apples\\\\pears	apples\\pears

 Note

·	You can use ?, *, or + if you are not sure how to spell success.

 Related Topics


Locating a record number
Locating a record number, field, or field value

You can use the Locate command to locate (and move to) a table record number, field, or value in a field. The record number of a Paradox table is assigned automatically by Paradox and cannot be edited. It shows the record's position in the table. When locating a value, Corel Paradox moves to the first occurrence of the value that matches your search criteria. You can then use the Locate Next command to move to subsequent matches.

You must first open the appropriate table in order to locate a record, field or value.

To locate a table record

1.	Click Record, Locate, Record Number.

2.	In the Locate dialog box, type the number of the record you want to locate in the Locate Record dialog box.

To locate a field

1.	Click Record, Locate, Field.

2.	In the Fields list box of the Locate dialog box, double-click the name of the field you want to locate.

To locate a value in a field

1.	Click Record, Locate, Value.

2.	In the Fields list box of the Locate dialog box, choose the field you want to search.

3.	Type the value you want to locate in the Value box, using any operators as appropriate.

4.	Enable the Case-sensitive check box if you want Corel Paradox to locate only matches that use the same capitalization as the value you typed.

5.	Enable the Exact Match button if you are not using wildcard symbols in your search (such as the @ symbol).

6.	Enable the @ And .. button if you are using either of those two wildcards in your search.

7.	Enable the Advanced Pattern Match button if you are using any of the extended list of Corel Paradox wildcards. (other than @ and ..) in your search.

To locate the next record with the defined value

·	Click Record, Locate Next to search for the next occurrence of the value you are searching for.

 Tips

·	You get improved performance if the field you use for the Locate operation has an index. Performance is further improved if the Case Sensitive setting of the index and of the Locate operation match.

 Related Topics


Locating and replace values in a field
Locating and replacing values in a field

Whenever you have a table open, Corel Paradox allows you to locate and replace field values.

To locate and replace values in a field

1.	Press F9 to change to Edit mode.

2.	Click Record, Locate, Replace.

3.	In the Fields list box of the Locate dialog box, choose the field you want to search.

4.	Type the value you want to locate in the Value box, using any operators as appropriate.

5.	Enable the Case-sensitive check box if you want Corel Paradox to locate only matches that use the same capitalization as the value you typed.

6.	Enable the Exact Match button if you are not using wildcard symbols in your search (such as the @ symbol).

7.	Enable the @ And .. button if you are using either of those two wildcards in your search.

8.	Enable the Advanced Pattern Match button if you are using any of the extended list of Corel Paradox wildcards. (other than @ and ..) in your search.

9.	Type the replacement value in the Replace With box.

Corel Paradox locates the first matching value.

To skip that occurrence of the value and locate the next occurrence

·	Enable the Skip This Occurrence button.

To replace that occurrence of the value and locate the next occurrence

·	Enable the Change This Occurrence button.

To replace all occurrences of the value

·	Enable the Change All Occurrences button.

 Related Topics


About editing memos and formatted memos
Entering and editing memo and formatted memo data

Entering data in memo and formatted memo fields is similar to entering data in alphanumeric fields. However, in memo and formatted memo fields, Corel Paradox places no limits on the amount of data you can enter. When you're editing a memo or formatted memo, you can use Memo View, which gives you some word-processing capabilities and gives your keyboard greater functionality than Field View.

When viewing a form, Corel Paradox does not display a special window to show you the contents of a memo or formatted memo field. These fields always appear in the size and shape you specify from the Form Design window.

Entering and editing data in memo and formatted memo fields

To view and enter memo data

1.	Open a table or form.

2.	Click a memo field to select it.

3.	Press F9 to switch to Edit mode.

3.	If you are editing a table, click View, Memo View, otherwise go to step 4.

4.	Type and edit memo text as desired. For a complete list of keys you can use in Memo View, see Keys used in memo view.

5.	Once you finish editing the memo, press SHIFT+F2 to close Memo View.

Corel Paradox saves the data in the memo field when you exit Memo View. When you return to the table, the amount of memo text visible depends on the column width and the field size of the memo field.

Notes

•	You can enter as much data as necessary in a memo or formatted memo field. Text automatically wraps at the right side of the window. Changing the size of the window changes the text wrapping. For more information about wrapping text, see Wrapping memo field text in a Form window.

•	When entering data in a memo field using a form, you can't change the field size. To do that, you must click the Design Toolbar button to open the Form Design window. From the Form Design window, you can place horizontal or vertical scroll bars on the field. This way, you can keep the field small, but view all of its contents.

 Related Topics


Wrapping memo field text in a Form window

If you are entering data in a Form window, the text in a memo field should wrap automatically at the right side of the field object as you type. If the text does not wrap automatically, the Word Wrap property of the field object has been turned off.

To switch Word Wrap back on

1.	Click View, Design form to switch to Design mode.

2.	Right-click the field and click Properties.

3.	Click the Text tab.

4.	Enable the Word Wrap text box.

 Related Topics


Entering formatted memo data
Formatting formatted memo data

You can change the font, style, size and color of text in a formatted memo.

To format memo text

1.	Click the field you want to format.

2.	Click View, Memo View.

3.	Select the text you want to change.

4.	Right-click and click Properties.

5.	Click the Font tab.

6.	Adjust the font, color, and size of the text.

7.	Click the Text tab.

8.	Adjust the alignment and spacing of the text.

9.	Click the Apply button to apply your changes.

Tip

•	To save properties changes, click File, Save. If you don't Corel Paradox prompts you to save changes when you exit the table.

 Related Topics


About entering graphic data

Data in a graphic field can be any picture, or graphic, that is a scanned image, line art, or graphic file created in a paint or draw application.

Corel Paradox gives you two ways to place a graphic in a field:

•	using the Cut, Copy, and Paste commands

•	using the Paste From command

You cannot edit a graphic in Corel Paradox; you must edit it in its source application.

To paste a graphic into a graphic field, you enter Edit mode and paste the graphic from the Clipboard or a file.

 Related Topics


Placing a graphic using Cut and Paste

To place a graphic in a graphic field, from a Windows application that supports the Clipboard

1.	Open the graphic file in its source application.

2.	Select the graphic and cut or copy it to the Clipboard.

3.	Open the Corel Paradox Table or Form you want to place the graphic in.

4.	Press F9 to enter Edit mode.

5.	Click the field into which you want to place the graphic.

6.	Click Edit, Paste.

Corel Paradox places the graphic from the Clipboard in the graphic field.

 Note

•	When you paste a graphic into a graphic field, Corel Paradox converts the graphic into the .BMP file format.

 Related Topics


Placing a graphic using Paste From

Corel Paradox lets you place .BMP, .PCX, .TIF, .GIF, or .EPS graphic files directly into a graphic field without opening the graphic's source application. Simply use Corel Paradox's Edit, Paste From command.

To place a graphic in a graphic field without using the Clipboard

1.	Click the field into which you want to place the graphic.

2.	Press F9 to enter Edit mode.

3.	Click Edit, Paste From.

4.	In the Paste From Graphic File dialog box, click graphic file you want.

5.	Click the Open button.

Corel Paradox places the graphic in the graphic field.

 Note

•	When you paste a graphic into a graphic field, Corel Paradox converts the graphic into the .BMP file format.

 Related Topics


Viewing graphic data

When you place a graphic in a table, you might not be able to see all of it. You can adjust the width and height of the cells in a table to view as much of the graphic as you want. You can enter Field View to display the entire graphic.

To display a graphic

•	Double-click a field.

Corel Paradox opens a window that displays only the graphic.

 Tip

•	If the graphic field on your form is the wrong size to display the graphic values of each record, you can change to the Form Design window to resize the field object or right-click the field, click Properties, and enable the Best Fit property on the Magnification page of the Properties dialog box.

 Related Topics


About inserting and using OLE objects

OLE stands for Object Linking and Embedding. You can use OLE fields to hold virtually any kind of data, from graphics to text to calculations. The advantage of using an OLE field is that once you place a linked OLE value, it maintains a link to its source application. You can always open the source application from the OLE object that you place in a Corel Paradox table or form. Changes you make to the OLE object are then updated in your Corel Paradox table or form.

For details on inserting and using OLE objects, see About OLE.

 Related Topics


About locking records
Locking records

Paradox automatically locks a record when you start editing it and removes the lock when you leave the record. A message appears in the status bar to inform you of these automatic locks. When you lock a record, other users can view it, but can't edit or delete it. Locking a record also prevents other users from placing a read or write lock on the table and also prevents users from performing any operations that require a read or exclusive lock (such as restructuring the table).You can manually lock a record.

To manually lock a record

1.	Open a table and press F9 to switch to Edit mode.

2.	Select a table record.

3.	Click Record, Lock. The status bar tells you that the record is locked.

Tip

•	You can also lock a record by selecting the record and pressing F5 or CTRL+L.

•	After you lock a record, the Lock command changes to Unlock. You must unlock the record before another user can change it.

 Related Topics


Unlocking a record

Paradox automatically unlocks a record when you move off of it or switch from Edit mode to View mode.

If you have manually locked a record, you will have to unlock the record to release the record for other users to be able to edit or delete the record. If you try to edit a record and discover that it has been locked by another user, you can look at the status bar to see the name of the user who has locked the record.

To unlock a record

1.	Select a locked table record.

2.	Click Record, Unlock.

 Related Topics


Posting a record without unlocking it

Paradox automatically saves (posts) any changes you make when you leave the record, but you can save your edits before you leave the record.

To post a record without unlocking it

•	Click Record, Post/Keep Locked.

 Note

•	Sometimes Corel Paradox moves a record to a different location when you post it. This happens if the table is keyed and the new record is not in its correct location in the table. Corel Paradox moves the record to its correct location. When you click Record, Post/Keep Locked, the moved record remains active, and Paradox updates your view of the table if necessary.

 Related Topics


Types of table lookup
Types of table lookups

When you define a table lookup for a field, Corel Paradox looks to a lookup table that you specify before accepting a value entered in that field. If the value entered in the field does not match any of the values in the lookup table, Corel Paradox does not accept the value. Table lookups can be set to fill in data contained in the current field. Or, if the lookup table (to which Corel Paradox refers for acceptable values) also contains other fields that match fields in the record you are currently entering, you can set the table lookup to fill in information in all of these other fields. Below is a list of the types of settings that determine how a table lookup functions.

•	Just Current Field: The value in the current field is the only value from the lookup table that Corel Paradox checks or fills in for you.

•	All Corresponding Fields: Corel Paradox checks the field on which the table lookup is defined and fills values in all fields that match fields in the lookup table. (Paradox determines if fields match by the field names.)

Whether you'll be able to view the lookup table from the table you're editing depends on the type of lookup access specified when the table lookup was defined:

•	Help And Fill: You can view the lookup table from the table you're editing; the default.

•	Fill No Help: You can't view the lookup table from the table you're editing.

When the lookup access is Fill No Help, you can't open the lookup table automatically. You can, however, view the lookup table by opening the table up separately (click File, Open, Table, and choose the table).

For information about defining a table lookup, see About table lookups.

 Related Topics


Using table lookup
Using a table lookup

The Table Lookup feature lets you refer to another table to look up the acceptable values for a field and then automatically copy values in the lookup table to the table you are editing. Before table lookup can be used, you must create the Lookup table and define a Table Lookup on the field you will be entering values into. For information about defining a table lookup, see About table lookups.

If you are entering data in a table, and come across a field that uses a table lookup, you may be able to view the lookup table and choose an appropriate value (if Help and Fill was defined), or, you may not (if Fill No Help was defined), depending on the options defined when the table lookup was originally created.

To access the lookup table to find an acceptable value for a field

1.	Press CTR L+ SPACEBAR to view the lookup table. For this to work, you must have defined the lookup table with Help And Fill enabled.

2.	Click the value you want from the highlighted field.

3.	To make sure you have the right value, you can scroll to other fields; the scroll lock is on in a lookup table, so the lookup field stays onscreen while you scroll.

4.	Click OK to close the lookup table and insert the selected value into your table. Some table lookups are designed to also fill in other fields with the same name and type as the fields in the lookup table.

 Related Topics


Examples of table lookup
Examples of table lookups

The following figures illustrate the table lookup feature. The tables shown are not the sample tables provided with Corel Paradox.

Just Current Field with Fill No Help

Just Current Field with Help And Fill

All Corresponding Fields with Fill No Help

All Corresponding Fields with Help And Fill

 Related Topics


Example of using Just Current Field with Fill No Help

Suppose you are editing an Orders table in which the Customer No field has a table lookup defined as Just Current Field and Fill No Help to the Customer No field of a Customer table. This means any value entered in the Customer No field of the Orders table must be a value that already exists in the Customer No field of the Customer table. With Fill No Help, you must already know what these values are.

If you enter an invalid value, Corel Paradox displays the message "Unable to find lookup value." You cannot leave the record until you enter a valid value.

To leave a field that requires a value to be entered, type any character or number.

If the field is constrained by referential integrity requirements, click Edit, Undo to delete your entry. Find out what the acceptable values are before you continue.

 Related Topics


Example of using Just Current Field with Help And Fill

Suppose you are editing an Orders table in which the Customer No field has a table lookup defined as Just Current Field and Help And Fill to the Customer No field of a Customer table. In Orders, when the Customer No field is selected, you will see the message "Press Ctrl+Space for lookup help" in the Desktop status bar. You can either enter a valid value in the field or press CTRL + SPACEBAR.

If you press CTRL + SPACEBAR, the lookup table (Customer) appears in a dialog box on top of the table you are editing. A scroll lock is placed to the right of the lookup field (Customer No). If there is a valid value in the table you are editing, the current record marker indicates that value in the lookup table. For example, if you enter 1320 and then press CTRL + SPACEBAR; the current record marker is on the value 1320 in the lookup table.

From the lookup table, choose the value you want to enter. When you click OK, the value is filled in and the dialog box containing the lookup table disappears.

 Related Topics


Example of using All Corresponding Fields with Fill No Help

Suppose you are editing an Orders table in which the Customer No field has a table lookup defined as All Corresponding Fields and Fill No Help to the Customer No field of a Customer table. This Orders table also has a Name field that contains the customer's name.

When you enter a valid value in the Customer No field of Orders, the correct value for the Name field is automatically filled in. This is because the Name field of Orders corresponds to the Name field of Customer.

If you enter an invalid value, Paradox displays an error message. You cannot move off the record until you enter a valid value.

To get out of a field that requires a value to be entered, type any character or number.

If the field is constrained by referential integrity requirements, click Edit, Undo to undo your entry. Find out what the acceptable values are before you continue.

 Related Topics


Example of using All Corresponding Fields with Help And Fill

Suppose you are editing an Orders table in which the Customer No field has a table lookup defined as All Corresponding Fields and Help And Fill to the Customer No field of a Customer table. This Orders table also has a Name field that contains the customer's name.

You can enter data into the Customer No field by typing it in, or you can press CTRL+SPACEBAR to display the lookup table (Customer) in a dialog box. When you choose a Customer No value, Paradox enters it and all corresponding field values (like Name) in the Orders table.


About exchanging data

Corel Paradox provides several ways to exchange data with other programs. You can use

·	Import or Export commands on the File menu to open and save data in a variety of database, spreadsheet, and text formats.

·	Dynamic Data Exchange (DDE) to send field values from a Paradox table to other applications, or to send data from other applications to a Paradox table or query.

·	Object Linking and Embedding (OLE) to insert files from an OLE server application into Paradox. When you place data into Paradox using OLE, you can then access the OLE source application directly from Paradox to make any changes you want. You can also use OLE to embed an entire Paradox table into another application's document.

·	File, Send to transfer messages and attached files through MAPI-compliant mail systems, such as Netscape Messenger.

For more information, see the following topics:

 About importing data

 About exporting data

 About OLE

 About DDE

 About sending mail

 Note

·	You can also exchange information with client/server database applications using Structured Query Language (SQL). See About SQL for details.

 Related Topics


Sharing information between workstations

If you are sharing tables that are stored on a workstation's shared disk, the Local Share property for that workstation must be set to TRUE (using the Borland Database Engine Administrator, IDAPI or ODAPI utilities). Local Share only needs to be set to TRUE on the workstation that stores the tables. Therefore, the workstations that store the shared tables have a different BDE (or IDAPI or ODAPI) configuration file from the workstations that access the shared tables.

Configuring the Local Share property incorrectly can result in problems locking tables and records and the corruption of tables and indexes.

To avoid problems entirely, you may want to set the Local Share property on all of your workstations to TRUE.

To set the Local Share property to TRUE

1.	From the Start menu, click Start, Corel Paradox 8.0, Accessories, BDE Administrator to open the BDE Administrator.

2.	In the BDE Administrator window, click the Configuration page.

3.	Open the Configuration/System folder so that INIT is displayed.

4.	Click INIT.

5.	In the Definition page, click Local Share to select it.

6.	Choose TRUE from the Local Share list box.

Notes

·	A true file server (Netware, NT) implements locks at the NOS level differently than how a workstation in a peer-to-peer network does for the shared files that reside on its local disk. Previous version of Paradox required you to specify which network was being used; there was a separate entry for each of the major file server LAN, and a single entry for all the "share-based networks" (LANtastic, WfW, Novell Lite) that needed MS-DOS's SHARE to be loaded. If you are using Windows 95, you do not need to have MS-DOS SHARE; you only need to set the Local Share property.

·	Do not confuse NT Workstations with NT Servers. Shared files on an NT Workstation are handled in the same way as on an Windows 95 workstation.


About importing data

You can use import data from a different file format to a Corel Paradox or dBASE table. You can import only data files, not applications or forms. You can use the Text Import Expert to assist with importing fixed length and delimited text files. If the Expert is installed, you'll have an opportunity to use it when you click File, Import.

You can also import tables or lists from HTML files using the HTML Import Expert.

You can create a new table, replace data in an existing table, or add to data in an existing table. If you create a new table, Corel Paradox defines its structure automatically. Then, you can use Table, Restructure command to change it if you want.

Corel Paradox imports files in the following formats:

•	Fixed length or delimited text (*.TXT)

•	Quattro Pro for Windows (*.WB1, *.WB2, *.WB3)

•	Quattro Pro for DOS (*.WQ1)

•	Quattro (*.WKQ)

•	Lotus 1-2-3 (*.WKS, *.WK1)

•	Excel 3.0, 4.0, or 5.0 (*.XLS)

•	Database tables (*.DB, *.DBF)

Determining field names

When you import files, you can enable the Use First Row Of Data As Field Names option. When enabled, Corel Paradox generates field names from the first row of imported data that contains text. If Corel Paradox cannot determine a field name from the imported file, it generates new field names beginning with the name FIELD001. Additional new field names are numbered FIELD002, FIELD003, and so on.

If more than one field seems to have the same name, Corel Paradox adds letters to the duplicate fields (for example, CustomerA and CustomerB).

 Related Topics


Importing spreadsheet data

When you import spreadsheet data, you can select a specific block in the spreadsheet to import. Or, you can import the entire spreadsheet. To avoid conversion problems, you should edit the spreadsheet before importing. For best results, do the following:

•	Remove extraneous entries (such as hyphens, asterisks, and exclamation points).

•	Make sure each column contains only one kind of data and uses only one formatting option.

•	When importing dates, ensure you import year dates with all four digits to avoid confusion about the implied century.

•	Place column titles in the top row of the selected range, because Corel Paradox uses the first row that contains text to generate field names. (If there are no column titles on the spreadsheet, disable the Use First Row Of Data As Field Names check box in the Spreadsheet Import dialog box.)

To import spreadsheet data

1.	Click File, Import.

2.	Click the Import button.

3.	Type the full path and filename of the spreadsheet you want to import in the From box.

4.	Type the name of the table into which you want to import data in the To box.

5.	If you are importing data into an existing table, do one of the following:

•	Enable the Overwrite Existing Table button to import data over existing table data.

•	Enable the Append To Existing Table button to import data without affecting existing records.

6.	If you want Corel Paradox to create a table called Problems.db if errors occur while importing, enable the Write Transfer Failures To Problems.db check box.

7.	Click the From Spreadsheet tab to bring it to the front and enable the Use First Row Of Data As Field Names check box if you want Corel Paradox to use the first row of data in the spreadsheet as field names.

8.	If you don't want to import the entire file, select the range you want to import in the Spreadsheet Range box.

9.	Click the Import button.

By default, Corel Paradox displays the table and any auxiliary tables on completion.

For more information about importing spreadsheets, see Determining spreadsheet field types.

 Related Topics


Importing delimited text

You can use the Import command to import delimited text files. In order to read the file, each line of the text file you want to import must end with a carriage return/linefeed combination to mark the end of a record. By default, Corel Paradox expects the fields in the text file to be separated by commas, with quotation marks surrounding each text field; however, if your file uses other characters, you can specify them in the Import dialog box.

When you import a delimited text file, Corel Paradox scans the file to determine the number of fields and the field types the file contains. Dates are formatted to the Windows short format. Numbers are formatted to the Windows number format. Corel Paradox trims strings longer than 255 characters. It stores these as alpha fields.

Importing delimited text involves specifying the files you want Corel Paradox of use and create during the import and then specifying the format of the delimited text in the source file so that Corel Paradox interprets it correctly.

To specify the files you want Corel Paradox to use

1.	Click File, Import.

2.	Click the Import button.

3.	Type the full path and filename of the file you want to import in the From box.

4.	Type the name of the table into which you want to import data in the To box.

5.	If you are importing data into an existing table, do one of the following:

•	Enable the Overwrite Existing Table button to import data over existing table data.

•	Enable the Append To Existing Table button to import data without affecting existing records.

6.	If you want Corel Paradox to create a table called Problems.db if errors occur while importing, enable the Write Transfer Failures To Problems.db check box.

7.	If you are importing data into existing data, enable the Write Duplicate Key Records to KeyViol.db check box if you want Corel Paradox to write any duplicate key values to a KeyViol table.

To specify the format of the source file

1.	Click the From Text tab to bring it to the front.

2.	In the Fields Separated By section, specify how the field values in the source file are separated by enabling the appropriate button. You can choose commas, semi-colons, tabs, or choose Other and type the character you want to use.

3.	In the Fields Delimited By section, specify the characters that surround values in the source file by enabling the appropriate button. You can choose quotation marks, nothing, or choose Other and type the character you want to use.

4.	In the Delimited Fields section, specify whether data from all field types or only from text field types (alpha or character) are separated with the character you chose in step 3.

5.	In the Character Set section, specify the character set you want to use by enabling either the OEM or ANSI button.

6.	Enable the Use First Row Of Data As Field Names if you want Corel Paradox to use the first row of data in the source file as field names.

7.	Click the Import button.

By default, Corel Paradox displays the table and any auxiliary tables on completion.

Tip

•	You can also import delimited text with the help of the Text Import Expert. To activate the Expert, click File, Import and click the Text Import Expert button.

 Related Topics


Importing fixed length text

You can import data from fixed length text files using the Import command (File menu). When you import text, each line of the text file you want to import must end with a carriage return/linefeed combination to mark the end of a record.

When you import a fixed length text file, you can define the field names and types of the fields in the new table. For each field name, you will need to enter a Type for the target table, a Start position (the position in the source where the column starts), and a Length (the source file's field size). Otherwise, Corel Paradox assumes there is one alpha field in the first column of the table with a length of 255 characters. Dates are formatted to the Windows short format. Numbers are formatted to the Windows number format.

If you have previously imported data and saved the specifications, you can reload them. Similarly, once you set your import specifications, you can save them for later use.

Importing fixed length text involves specifying all the files you want Corel Paradox to use and/or generate, and then defining the name, type and size of each field in the source file.

To specify the files you want Corel Paradox to use

1.	Click File, Import.

2.	Click the Import button.

3.	Type the full path and filename of the file you want to import in the From box.

4.	Type the name of the table into which you want to import data in the To box.

5.	If you are importing data into an existing table, click the To Table tab and do one of the following:

•	Enable the Overwrite Existing Table button to import data over existing table data.

•	Enable the Append To Existing Table button to import data without affecting existing records.

6.	If you want Corel Paradox to create a table called Problems.db if errors occur while importing, enable the Write Transfer Failures To Problems.db check box.

7.	If you are importing records to an existing file, enable the Write Duplicate Key Records To KeyViol.db check box if you want Corel Paradox to write key violation errors to a separate table.

8.	In the Character Set section of the To Text page, choose the character set you want to use by enabling either the OEM or ANSI button. Files created in DOS-based applications, like Edit, typically use the OEM character set. Files created in Windows applications, like Notepad, typically use the ANSI character set.

To define the fields from the source file

1.	Click the From Fields tab to bring it to the front.

2.	If you want to use a previously saved specification, click the Load Spec button and choose the appropriate file. You can then modify the specification or go to step 9.

3.	Type the name of the first table field in the Field Name box.

4.	Type the field type in the Type box.

5.	Type the column at which that field starts in the text file in the Start box.

6.	Type the length of the field in the Length box.

7.	Repeat steps 3 to 6 for each field.

8.	If you want to save the export specifications, click the Save Spec button and type a filename for the file in the File Name box of the Save Import Specification As dialog box.

9.	Click the Import button.

Tip

•	You can also import fixed length text with the help of the Text Import Expert. To activate the Expert, click File, Import and click the Text Import Expert button.

 Related Topics


Determining spreadsheet field types

When you import data from a spreadsheet, Corel Paradox automatically assigns field types to the data. The following table shows how Corel Paradox determines a field's type.

Spreadsheet value	Corel Paradox field type	dBASE field type
Labels	Alpha	Character
Integers	Short, Long Integer, or Number (depends on value)	Float number (6,0) or more (depends on value)
Decimal numbers	Number	Float number (20,4)
Money	Money	Float number (20,4)
Dates	Date	Date
Date/Time (Excel)	Timestamp	Character
Time (Excel)	Time	Character

The following rules determine which category a column falls into. The data type for a column is whatever data type can hold all values in the column.

A column containing	is converted to
Label (text) cell	Alpha field (or dBASE character field)
Dates and numbers	Alpha field (or dBASE character field)
Money only	Money field in a Corel Paradox table
Money and numbers	Number field
Dates and times	Timestamp field (or dBASE character field)
As a result of these conversion rules, Corel Paradox often imports numbers in unedited spreadsheets as alpha fields. For example, spreadsheet columns often have rows of hyphens separating sections of numbers. Since only an alpha field can contain both the numbers and hyphens, the column is converted to an alpha field even though it contains mostly numbers.

Dates are formatted to the Windows short format. Numbers are formatted to the Windows number format.

 Related Topics


Importing data
Importing from a table

To import data

1.	Click File, Import.

2.	Click the Import button.

3.	Type the full path and filename of the file you want to import in the From box.

4.	Type the name of the table into which you want to import data in the To box.

5.	If you are importing data into an existing table, click the To Table tab and do one of the following:

•	Enable the Overwrite Existing Table button to import data over existing table data.

•	Enable the Append To Existing Table button to import data without affecting existing records.

6.	If you want Corel Paradox to create a table called Problems.db if errors occur while importing, enable the Write Transfer Failures To Problems.db check box.

7.	If you are importing records to an existing file, enable the Write Duplicate Key Records To KeyViol.db check box if you want Corel Paradox to write key violation errors to a separate table.

8.	Click the Import button.

By default, Corel Paradox displays the imported table and any auxiliary tables when the import operation is complete.

 Related Topics


About exporting data

You can export data from Corel Paradox 8 tables to the following file formats:

•	Delimited text

•	Fixed length text

•	Quattro Pro for Windows 1, 5 (.wb1), 6 (.wb2), 7 (.wb3)

•	Quattro Pro for DOS (.wq1)

•	Quattro (.wkq)

•	Excel 3,4, and 5 (.xls)

•	Lotus 1-2-3 v. 1 (.wks), and v. 2 (.wk1)

•	dBASE III+, IV, 5

•	Corel Paradox 3.x 'Compatible', 4.x 'Standard', 5, and 7.

•	Corel WordPerfect 8 (.wpd and merge file formats)

Note

•	In order to export a file in Corel WordPerfect format, you must have the application installed on your system.

 Related Topics


Exporting to a spreadsheet

You can export table data to a variety of spreadsheet applications, listed in About exporting data.

When you export data to a spreadsheet, Corel Paradox converts each record to a row and each field to a column. If a value is wider than the column display width, the full value is converted but partially hidden.

If a date in the original table is beyond the range of the allowable dates in the spreadsheet, the date is exported as the value ERROR.

To export to a spreadsheet

1.	Click File, Export to open the Export Data dialog box.

2.	If the table you want to export is not already listed in the From box, click the … button and choose a table.

3.	From the To Type list box, choose the spreadsheet format to which you want to export.

4.	If you want Corel Paradox to write field names as the first row of data, click the To Spreadsheet tab and enable the Use First Row Of Data As Field Names check box.

5.	Click the Export button.

 Note

•	Corel Paradox cannot export memo (Corel Paradox or dBASE), formatted memo, graphic, OLE, or binary field types to spreadsheets. These types will not be included in the exported text file.

 Related Topics


Exporting to delimited text

You can export a table to a text file in which the table's field values are separated and/or enclosed (delimited) by the characters you specify. By default, field values in the exported file are separated by commas, and non-numeric values are enclosed in double quotation marks. Each record is separated by a carriage return and a linefeed character. Dates, numbers, and times are formatted as specified in the BDE Configuration Utility program (available in the Corel Paradox program group).

To export to delimited text

1.	Click File, Export to open the Export Data dialog box.

2.	If the table you want to export is not already listed in the From box, click the … button and choose a table.

3.	From the To Type list box, choose ASCII Delimited.

4.	In the Fields Separated By section, choose how you want field values to be separated in the exported file by enabling the appropriate button. You can choose commas, semi-colons, tabs, or choose Other and type the character you want to use.

5.	In the Fields Delimited By section, choose the characters you want to surround values in the exported file by enabling the appropriate button. You can choose quotation marks, nothing, or choose Other and type the character you want to use.

6.	In the Delimited Fields section, choose whether you want to surround data from all field types or only from text field types (alpha or character) with the character you chose in step 5.

7.	In the Character Set section, choose the character set you want to use by enabling either the OEM or ANSI button.

8.	Enable the Use First Row Of Data As Field Names if you want Corel Paradox to place the field names in the first row of data.

9.	Click the Export button.

 Note

•	Corel Paradox cannot export memo (Corel Paradox or dBASE), formatted memo, graphic, OLE, or binary field types to delimited text. These types will not be included in the exported text file.

 Related Topics


Exporting to fixed length text

You can export a table to a text file in which each record is the same length.

When you export to a fixed length text file, you can use the To Fields page of the Export dialog box to define the field names and types of the fields in the new table. Dates, numbers, and times are formatted as specified in the BDE Configuration Utility program (available in the Corel Paradox program group). These settings are called the export specifications.

If you have previously exported data and saved the specifications, you can reload them. Similarly, once you set your export specifications, you can save them for later use.

To export to fixed length text

1.	Click File, Export to open the Export Data dialog box.

2.	If the table you want to export is not already listed in the From box, click the … button and choose a table.

3.	From the To Type list box, choose ASCII Fixed.

4.	In the Character Set section of the To Text page, choose the character set you want to use by enabling either the OEM or ANSI button.

5.	Click the To Fields tab to display the export specifications.

6.	If you want to use a previously saved specification, click the Load Spec button and choose the appropriate file.

7.	If you want to save the export specifications, click the Save Spec button and type a filename for the file in the File Name box of the Save Export Specification As dialog box.

8.	Click the Export button.

 Note

•	When you export to a fixed length file, a file with extension .SCH is created in the same directory. The .SCH file contains this information about the new file: table name, new file type, character set used, and descriptive data for each field: name, type, size, decimal placement, and where to start that column (in spaces).

 Related Topics


Exporting data
Exporting to a table

When you export data to a table, you can create a new table, or modify an existing one.

To export data to a table

1.	Click File, Export to open the Export Data dialog box.

2.	If the table you want to export is not already listed in the From box, click the … button and choose a table.

3.	From the To Type list box, choose the type of table you want to export to.

4.	Type the full path and name of the file you want to export to in the To box.

5.	If you are exporting to an existing table, do one of the following:

•	Enable the Overwrite Existing Table button to overwrite the exising table data.

•	Enable the Append To Existing Table button to add new records to the existing table without affecting existing data.

6.	If you want Corel Paradox to create a table called Problems.db if errors occur while exporting, enable the Write Transfer Failures To Problems.db check box.

7.	If you want Corel Paradox to create a table called KeyViol.db if records with duplicate key field values are found while exporting, enable the Write Duplicate Key Records To KeyViol.db check box.

8.	Click the Export button.

By default, Corel Paradox displays the table and any auxiliary tables on completion.

 Related Topics


About OLE

Object Linking and Embedding (OLE) provides a way for a data file from one application (for example, a Corel Paradox table) to contain data from another application. OLE makes it possible for you to view and edit this data in Corel Paradox without ever leaving Corel Paradox. For example, you can use OLE to link or embed a CorelDraw image in a graphic field of a table. In this example, Corel Paradox acts as the OLE container and CorelDraw acts as the OLE server.

Corel Paradox can act as both an OLE container and an OLE server.

Corel Paradox as an OLE container

OLE containers can be added to tables, forms, and reports. For example, you could add an OLE field to a table you use to organize sound (.WAV) files, allowing you to actually store, play, and edit the .WAV files inside the Corel Paradox table. Corel Paradox provides OLE containers in two ways: as a field in a table and as a design object in a form or report.

You can insert two kinds of objects into an OLE container [image] embedded objects and linked objects.

For more about the difference between embedded and linked objects, see these topics:

 About embedded OLE objects

 About linked OLE objects

Corel Paradox as an OLE server

Corel Paradox acts as an OLE server by providing a way to insert a Corel Paradox table in another application's file, such as a Corel WordPerfect or Corel Quattro Pro.

Depending on the type of OLE object, you can manipulate the object in various ways [image] open, edit, view, or play it. For more information, see About manipulating OLE objects.

 Related Topics


About embedded OLE objects

An embedded object is one you create or copy from a file or the Clipboard. When you embed an object in an OLE container, the data is actually copied into the OLE container, and no relationship is maintained with the source of the data. For example, suppose you copy an image from CorelDraw to the Clipboard and paste it in an OLE design object in a Corel Paradox form. You can edit and format the object in the form using CorelDraw, however, the original file from which you copied the image stays unchanged. Furthermore, if you copy the form to a disk, the image is copied along with the form.

 Note

·	If the OLE object is embedded in a table field instead of a design object, it is stored in the .MB file with other table data.

·	Another type of OLE object is linked, not embedded. For details, see About linked OLE objects.

·	Corel Paradox provides OLE containers in two ways: as a field in a table and as a design object. in a form or report.

 Related Topics


About linked OLE objects

A linked object is actually a pointer to data somewhere outside of the OLE container. When you insert a linked object in an OLE container, changes you make to the object are actually made to the source of the object. Furthermore, if you change the source of the object, the object changes in the OLE container. Using linked OLE objects is helpful when you need to display live data that is automatically updated whenever the original data changes in another application. OLE links can also produce smaller file sizes than when you embed large objects (such as graphics files), because the object itself stays in another file.

For example, suppose you insert a link to a Corel WordPerfect document in an OLE field in a Corel Paradox table. Later, you modify the file using the Corel WordPerfect. Your modifications also appear in the field in the table. If you copy the Corel Paradox table to a disk, the text from the WordPerfect document is not copied along with the table.

You can make Corel Paradox update the appearance of linked objects automatically. You can also choose to update their appearance manually.

Another type of OLE object is embedded, not linked. For details, see About embedded OLE objects.

 Note

·	Corel Paradox provides OLE containers in two ways: as a field in a table and as a design object in a form or report.

 Related Topics


Placing an OLE object on a form or report

When you place an OLE object on a form or report, you need to first draw a frame to contain the object, then, you can define the properties of the object (for example, you can name the object, set the magnification and format the frame design). You can then embed or insert a new or exising file, bitmap, etc. into the OLE object.

To place an OLE object on a form or report

1.	Open the appropriate form or report.

2.	Click Form, Design Form.

3.	Click the OLE [image] tool.

4.	Click and drag an area in the form or report to create a frame.

5.	To define the properties of the object, right-click the OLE object and choose Properties.

6.	Using the Properties dialog box, define the object properties as appropriate.

You can now insert or embed a file, text object, image, etc. into the OLE object on the form.

Inserting or embedding objects

You can insert or embed an existing value (file, image, etc.), or you can create a new value (file, image, etc.) using an OLE server (another program that supports OLE) directly from Corel Paradox. For more information, see the following topics:

Embedding a new OLE object

Embedding a copy of a file as an OLE object

Embedding part of a file as an OLE object

Inserting an OLE object linked to a file

Inserting an OLE object linked to part of a file

 Related Topics


Embedding a new OLE object

Corel Paradox does not limit you to placing existing values in OLE fields. You can create a new value using an OLE server directly from Corel Paradox.

To create a new object and embed it in an OLE field

1.	Do one of the following:

·	If you are embedding the object in an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode.

·	If you are embedding the object in an OLE design object in a form or report, click Form, Design Form or Form, Report to enter Design mode.

2.	Right-click the OLE field or object and choose Insert Object.

3.	In the Insert Object dialog box, enable the Create New button.

4.	From the Object Type list, choose the program you want to use to create the object.

5.	If you want Corel Paradox to display the value as an icon in the field, enable the Display As Icon check box.

6.	Click OK.

If the OLE object comes from an OLE 2.0 server application, Corel Paradox places a blank OLE object in the field and creates an in-place editing environment where you can use the server application's standard commands and Toolbar buttons to create the new object. If the server uses OLE 1.0, the server application opens and you can edit the object within it.

7.	Create the object using the chosen application.

8.	When you are finished creating the object, close the OLE server (the other program) by clicking somewhere outside of the OLE object.

Corel Paradox embeds the object in the OLE field.

 Note

·	To create a new linked OLE object instead, see Inserting an OLE object linked to a file.

 Related Topics


Embedding a copy of a file as an OLE object

You can place a value in an OLE field in a Table or Form window. You can either cut and paste the value, or use the Insert Object command. When you use Insert Object, you have the option of inserting an existing object or creating a new one.

To embed a copy of a file

1.	Do one of the following:

·	If you are embedding the object in an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode.

·	If you are embedding the object in an OLE design object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

2.	Right-click the OLE field or object and choose Insert Object.

3.	In the Insert Object dialog box, enable the Create From File button.

4.	Type the full path and filename of the File you want to embed in the OLE field in the File box.

Corel Paradox embeds a copy of file in the OLE field.

 Note

·	To create a linked OLE object instead, see Inserting an OLE object linked to a file.

 Related Topics


Embedding part of a file as an OLE object

To embed part of a file using Copy and Paste

1.	Open the OLE server (the program used to create the file you want to embed) and select the value (such as text, a graphic, a number) you want to place into Corel Paradox; Then, use that program's Copy command to copy the data to the Clipboard.

2.	Do one of the following:

·	If you are embedding the object in an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode.

·	If you are embedding the object in an OLE design object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

3.	Click the OLE field to select it.

4.	Click Edit, Paste.

The OLE value appears in the field as an embedded OLE object. To create a linked OLE object, see Inserting an OLE object linked to part of a file.

 Related Topics


Inserting an OLE object linked to a file

To insert an OLE object linked to a file

1.	Do one of the following:

·	If you are embedding the object in an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode.

·	If you are embedding the object in an OLE design object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

2.	Right-click the OLE field or object and choose Insert Object.

3.	In the Insert Object dialog box, enable the Create From File button.

4.	Type the full path and filename of the File you want to embed in the OLE field in the File box.

5.	Enable the Link check box.

Corel Paradox embeds a copy of file in the OLE field.

 Note

·	To create an embedded OLE object instead, see Embedding a copy of a file as an OLE object.

 Related Topics


Inserting an OLE object linked to part of a file

To insert an object linked to part of a file using Copy and Paste Special

1.	Open the OLE server (the program used to create the file you want to embed) and select the value (such as text, a graphic, a number) you want to place into Corel Paradox; Then, use that program's Copy command to copy the data to the Clipboard.

2.	Do one of the following:

·	If you are embedding the object in an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode.

·	If you are embedding the object in an OLE design object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

3.	Click the OLE field to select it.

4.	Click Edit, Paste Special.

The OLE value appears in the field as a linked OLE object. To create an embedded OLE object with the Clipboard, see Embedding part of a file as an OLE object.

 Related Topics


About updating linked OLE objects

Occasionally, you may want to update an OLE link. Corel Paradox allows you to update, change and break OLE links. Use the Links dialog box to manage links between OLE objects in Corel Paradox and their source files.

To update a linked OLE object

1.	Do one of the following:

·	If you are in a form, click Form, Design form to enter Design mode.

·	If you are in a report, click Report, Design report to enter Design mode.

·	If you are in a table, press F9 to switch to Edit mode.

2.	Click the appropriate OLE field or object to select it.

3.	Click Edit, Links to open the Links dialog box.

4.	Do one or more of the following:

·	Use the Update buttons to choose whether you want the selected link to be updated manually or automatically.

·	Choose Update Now to manually update the contents of the selected link.

·	Choose Open Source to open the server application and source file of the selected link.

·	Choose Change Source to change the source file of the selected link. Corel Paradox opens the Change Source dialog box. Use this to choose a new source file for the link.

·	Choose Break Link to break the link. This causes the selected OLE value to become a static, embedded object. Now, the object can't be automatically updated when the source data changes.

 Related Topics


Changing the way Paradox updates linked objects
Changing the way Corel Paradox updates linked objects

To change the way Corel Paradox updates the appearance of the linked objects

1.	Do one of the following:

·	If you are working with an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode. Also, make sure you are not in Field View mode.

·	If you are working with an OLE field object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

2.	Click the OLE field or design object.

3.	Click Edit, Links.

4.	From the Links dialog box, select the link and choose one of the Update options:

·	Choose Automatic to have Corel Paradox update the appearance of linked objects automatically.

·	Choose Manual to have Corel Paradox update the appearance of linked objects only when you choose to do so.

5.	Change other settings if you want:

·	Choose Update Now to manually update the contents of the selected link.

·	Choose Open Source to open the source file of the selected link.

·	Choose Change Source to change the source file of the selected link. Corel Paradox opens the Change Source dialog box. Use this to choose a new source file for the link.

·	Choose Break Link to break the link. This causes the selected OLE value to become a static object.

 Related Topics


Manually updating a linked object

To immediately make the appearance of a linked object match that of its source

1.	Do one or both of the following:

·	If you are working with an OLE field in a table or in a form bound to that table, press F9 to switch to Edit mode. Also, make sure you are not in Field View mode.

·	If you are working with an OLE field object in a form or report, click Form, Design Form or Report, Design to enter Design mode.

2.	Click the OLE field or design object to select it.

3.	Click Edit, Links, Update Now.

 Related Topics


About manipulating OLE objects

An OLE container can hold different kinds of data, such as images, sound, documents, and so on. Corel Paradox provides two types of OLE containers: fields in tables and design objects in forms or reports. OLE fields and design objects can be used store, view, and manipulate this data without leaving Corel Paradox.

How you can manipulate an object depends upon the kind of OLE server associated with the object. For example, a sound (.WAV) file might be associated with a sound editor that provides two commands: play and edit.

To see how you can manipulate the current OLE object, choose the Edit menu. The last command shows the OLE server-specific command. Choose this to view a submenu of available server-specific commands.

Another way to see what you can do with the OLE value is to right-click it in a table (you must click View, Field View first). You'll see a menu of available commands. If the value is linked, you'll see the Update Now command, which you can use to force an update whenever you want.

The most common commands for OLE values are Edit and Open. If you choose Edit on an embedded OLE value, you can use in-place editing to change the value. If you choose Open on a linked or embedded OLE value, Corel Paradox opens the server application with the OLE file active.

Most server applications use OLE 2.0, but a few might still use OLE 1.0, which doesn't support in-place editing. For more information on the difference between edits and updates in these versions of OLE, see About OLE 1.0 versus OLE 2.0.

 Related Topics


About OLE 1.0 versus OLE 2.0

Some objects behave differently from other objects when manipulated. Differences are sometimes due to the version of OLE supported by an OLE server. There are two kinds of OLE servers: OLE 1.0 and OLE 2.0.

OLE 1.0

When you manipulate an object from an OLE 1.0 server, Corel Paradox launches the OLE server (the program used to create the OLE object) for you to work with the object. After you finish working with the object, close the OLE server to return to Corel Paradox and save the changes to the object.

For example, suppose an OLE field contains a word processing document, and you choose the Edit command. Corel Paradox opens the document in the word processor. You make some changes to the document and close the word processor. A dialog box appears, asking you if you want to save the changes to the object. You choose Yes and return to Corel Paradox. The object in the OLE field is updated with the changes you made.

OLE 2.0

When you manipulate an object from an OLE 2.0 server, different commands may cause different actions. Typically, one command (Open) launches the OLE server (the program used to create the OLE object). Another command (Edit) initiates in-place editing. With in-place editing all the tools and menus you need appear inside the Corel Paradox desktop. In essence, the OLE server takes control of the Corel Paradox desktop, including the Toolbar, the status line, and the menus. The area inside the OLE field becomes the working area for the OLE server. The only menus that Corel Paradox still controls are File and Window. To end in-place editing and restore the standard Corel Paradox environment, click on the table or form outside OLE field or design object.

For example, suppose an OLE field contains a video file, and you choose the Play command. Video controls appear at the bottom of the OLE field and some new menu commands appear on the Corel Paradox desktop. The video plays inside the OLE field. You use the video controls to pause and jump to another frame in the video. You click another field in the table to close the video player.

 Related Topics


Manipulating the contents of an OLE field

An OLE field in a table can be edited or otherwise manipulated either through the table or through a form that is bound to that table.

To manipulate an object in an OLE field

1.	Click F9 to switch to Edit mode.

2.	Click the OLE field to select it.

3.	Click the Edit menu. The last command on the Edit menu is the name of the OLE server associated with the object in the OLE field. Choose this command to display a secondary menu of commands and then choose one of the commands.

To close the object again

·	Click in an area of the table or form outside of the OLE object.

Tips

·	Double-clicking the OLE field executes the default command (the first command on the secondary menu), usually Edit.

·	If you are manipulating this object using a form, right-click the field. The commands available for this object appear on the menu. If you are manipulating this object using a table, press F2 to switch to Field View and then right-click the field.

 Related Topics


Manipulating the contents of an OLE design object

To manipulate the contents of an OLE design object

1.	Do one of the following:

·	If the OLE design object is in a form, click Design, Form to switch to Design mode.

·	If the OLE design object is in a report, click Design, Report, to switch to Design mode.

2.	Click the OLE design object to select it.

3.	Click the Edit menu. The last command on the Edit menu is the name of the OLE server associated with the object in the OLE field. Choose this command to display a secondary menu of commands and then choose one of these commands.

To close the object again

·	Click in an area of the form outside of the OLE object.

Tips

·	Double-clicking the OLE field executes the default command (the first command on the secondary menu), usually Edit.

·	Right-click the field to display the commands available for this object.

 Related Topics


About using Paradox as an OLE 2.0 server
About using Corel Paradox as an OLE 2.0 server

You can embed existing Corel Paradox tables in OLE container applications such as word processors or spreadsheets. To do this, you can use the Edit, Insert Object command or the Windows Clipboard.

If the container application supports OLE 2.0, you can use in-place editing to edit the Corel Paradox table. When you use in-place editing, certain functions are unavailable:

·	You cannot right-click the table to see its properties.

·	You cannot enter Memo View.

·	Certain prohibited menu commands are not visible.

The Corel Paradox table you place in the container always maintains a relationship with the Corel Paradox source table. This means if you delete the Corel Paradox file from disk, it will no longer appear in the OLE container (even if it was embedded in the OLE container).

 Related Topics


Embedding a Paradox table using the Clipboard
Embedding a Corel Paradox table using the Clipboard

To place a Corel Paradox table in another application using the Clipboard

1.	In Corel Paradox, open the table.

2.	Click Edit, Select All.

3.	Click Edit, Copy.

4.	In the OLE container application, choose the command that the application uses to embed OLE objects. Some commonly used commands are Edit, Paste, Edit, Paste Special or Edit, Paste Link. The Corel Paradox table appears in the other program (the container). You can edit the table if you want at this point, by either opening Corel Paradox from the OLE container or using in-place editing.

 Related Topics


Embedding a Paradox table using Insert Object
Embedding a Corel Paradox table using Insert Object

To embed a Corel Paradox table using the Insert Object command

1.	In the OLE other program (the container), click Edit, Insert Object or Insert, Object (depending on the commands available from the OLE program).

2.	In the Insert Object dialog box, choose "Corel Paradox Table" from the Object Type list and click OK.

3.	The OLE container launches Corel Paradox (if it wasn't already running) and Corel Paradox opens the Open Table dialog box. Choose the table you want to embed.

4.	Corel Paradox opens the selected table. Close the Table window to return to the OLE container. The Corel Paradox table appears in it.

 Related Topics


About DDE

Dynamic Data Exchange (DDE) lets you communicate with other applications that support DDE. You can use DDE to send field values from a Corel Paradox table to other applications, or to send data from other applications to a Corel Paradox table or query.

DDE links are shown as text, not icons or data. For an example, see Using Corel Paradox as a DDE client (tables).

 Related Topics


Using Paradox as a DDE server
Using Corel Paradox as a DDE server

When you take the values from a Corel Paradox field and place them in another application, you are using Corel Paradox as a Dynamic Data Exchange (DDE) server.

Using Corel Paradox as a DDE server

Suppose you have a spreadsheet that performs a series of calculations on a value. The value you want to perform the calculations on is in a field of a Corel Paradox table.

1.	With the appropriate Corel Paradox table open, select any value in the field, then choose Edit, Copy to copy the field to the Clipboard.

2.	In the DDE-client spreadsheet, use Paste Link (or Paste Special, in some applications) to place the field in the appropriate spreadsheet cell. Remember, you are not placing an actual value in the spreadsheet. Instead, you are using DDE to tell the spreadsheet where to look for the value.

As you move through the records of your Corel Paradox table, the values in the spreadsheet change because the value in the field is different for different records. The spreadsheet displays the field value for the selected Corel Paradox record.

 Note

·	You can use DDE to place Corel Paradox fields in any type of application that is a DDE client. Spreadsheets, word processors, and a variety of other applications can accept Corel Paradox field values through DDE.

·	To link an entire table through DDE, click Edit, Select All, and then Edit, Copy.

 Related Topics


Using Paradox as a DDE client (tables)
Using Corel Paradox as a DDE client (tables)

When you use Corel Paradox as a DDE client, you place link information about a value from another application into an alpha field in a Corel Paradox table.

A common use of Corel Paradox as a DDE client is to use values from another application and perform queries on them in Corel Paradox.

To use Corel Paradox as a DDE client

1.	Copy the value you want to use (your DDE server can be a spreadsheet, word processor, or any other DDE-capable application).

2.	In Corel Paradox, click the alpha field where you want to place the DDE value and then click Edit, Paste Special.

You see link information like @DDE:"QPW"!"C:\QPW\NOTEBK1.WB1"!"$A$D$2"!@. This is a string that tells Corel Paradox where to look for the DDE value. This example string tells Corel Paradox to look for a Quattro Pro for Windows file located on C:\QPW in Notebook 1, page A, cell D2.

In Corel Paradox, you view the link information rather than the DDE value. To view the value in the DDE server, select the field and press Shift+F2. Corel Paradox displays a message telling you it is launching the DDE server, then opens the application and the correct file.

 Related Topics


Using Paradox as a DDE client (queries)
Using Corel Paradox as a DDE client (queries)

To use Corel Paradox as a DDE client (queries)

1.	Highlight the item in the server, then copy it to the Clipboard. Most servers use Edit, Copy to place a copy of the object on the Clipboard.

2.	Return to the client (Corel Paradox) Query window.

3.	Select the QBE field to receive its value from the server.

4.	Click Edit, Paste Link from the menu. The DDE link information appears in the query.

5.	Click Query, Wait for DDE to tell Corel Paradox to execute the query each time data is sent from the server.

 Related Topics


Disconnecting a DDE link

After a DDE link is pasted into a DDE-client application, the Notify On command is activated in Corel Paradox. While this command is active, the link is live. For example, when you select another record in the linked table (in Corel Paradox), the new value is delivered to the DDE client.

To disconnect the link

·	Click Format, Notify On so that no check mark appears beside the menu option in Corel Paradox.

While this command is inactive, no changes are delivered to the DDE client.

To reconnect the link at any time

·	Click Format, Notify On so that a check mark appears beside the menu option in Corel Paradox.

If you create a DDE link to an entire table, Format, Notify On works similarly. When any record in the linked table changes, the entire table is refreshed in the DDE client. Changes are posted in the table whenever the person editing the table moves off the record.

 Related Topics


Example of Paradox as a DDE server
Example of Corel Paradox as a DDE server

For example, suppose you want to place a Corel Paradox field's value in a cell in a Quattro Pro for Windows spreadsheet. The following example shows how to do this using the sample Orders table.

1.	In Corel Paradox, open the Orders table. Select the first record's Total Invoice value.

2.	Click the Copy to Clipboard Toolbar button. Corel Paradox places the value on the Clipboard.

3.	Open Quattro Pro for Windows. Select a notebook cell and click Edit, Paste Link.

4.	To see how DDE works, place your Corel Paradox window and your Quattro Pro window together on the screen.

5.	Select the Total Invoice field in Corel Paradox and press the up and down arrows to move through invoice values. Notice how the value shown in the notebook cell in Quattro Pro changes to display the Total Invoice value in the currently selected Corel Paradox record.

In Quattro Pro, you can create calculations that use the value from Corel Paradox. As the DDE value is updated, the calculated result is updated along with it.

 Related Topics


Example of Paradox as a DDE client and server (queries)
Example of Corel Paradox as a DDE client and server (queries)

When you use Corel Paradox as both DDE client and server, all actions can be performed within Corel Paradox.

For example, a linked field can run a query (the DDE client). When the field value changes in the source table (DDE server), an updated Answer table appears.

Using DDE to run a query

Suppose you want to run a separate query for each customer in the Customer table. Follow these steps:

1.	Click File, New, Query to open the Query window and add the Orders and Lineitem tables to it.

2.	Construct a query that looks like this:

3.	Open Customer in a Table window.

4.	In Customer, select Customer No 1221 and click the Copy button on the Toolbar.

5.	In the Query window, position the text insertion point in the Customer No field of the Orders table. Click Edit, Paste Link. Link information from the Customer table appears in the field.

6.	Click Query, Run Query. Corel Paradox creates an Answer table listing all of Customer No 1221's items.

Using DDE to run a query interactively

1.	Create a DDE link, following steps 1 to 5 of the above procedure.

2.	Click the Query window's title bar to activate the window.

3.	Click Query, Wait for DDE.

4.	Click the Customer table's title bar to activate the window and select Customer No 1221.

5.	Press the Down arrow to move to Customer No 1231. When you select the new value, Corel Paradox activates the DDE link and runs the query again, updating the Answer table with the new value's data.

Tip

·	You can click Query, Wait for DDE so that there is no check mark beside the menu command if you want to scroll quickly through the Customer table without running a query on each record's value.

 Related Topics


About sending mail

If you are connected to a MAPI-compliant mail system, you can use the Send Mail command to transfer messages and attached files to others who are accessible through that system.

To send mail

·	Click File, Send Mail.

If your mail system is currently open, the standard message creation dialog box appears. If it isn't open, the MAPI Choose Profile dialog appears and asks for your mail provider. Once you specify your mail provider, you can compose a message and attach files following the usual procedures.

When you send the message, it is delivered to the recipients' mail boxes as usual, and appears in the incoming mail list the next time they check their mail.

Note

·	If you encounter problems, contact your email administrator to make sure you have a MAPI-compliant mail system, and to verify that it is properly configured.

 Related Topics


About Paradox add-ins
About Corel Paradox add-ins

An add-in is an external DLL developed for use with Corel Paradox by a third-party developer. An add-in DLL can add options to the Corel Paradox menus that call custom procedures. An add-in DLL can also contain multiple forms that can be opened on the Corel Paradox Desktop and manipulated in ObjectPAL using the AddinForm type methods.

Not all add-ins can be used in Corel Paradox; the add-in must be designed for the Corel Paradox environment. For more information on developing a Corel Paradox add-in, see the Developer Help for Corel Paradox add-ins. For more information on the AddinForm type and its methods, see AddinForm type.

 Related Topics


Registering a Paradox add-in
Registering a Corel Paradox add-in

Registering an add-in lets you manipulate it using ObjectPAL.

To register a Corel Paradox add-in

1.	In Corel Paradox, click Tools, Register Add-In.

2.	In the Add/Remove Corel Paradox Add-Ins dialog box, click Add.

3.	In the Register Paradox Add-In dialog box, select the appropriate file.

 Related Topics


Removing a registered Paradox add-in
Removing a registered Corel Paradox add-in

Removing an add-in unregisters it from the Corel Paradox environment.

To remove a registered Corel Paradox add-in

1.	In Corel Paradox, click Tools, Register Add-In.

2.	Select the add-in you want to remove from the list of registered Corel Paradox add-ins.

3.	Click the Remove button.

 Related Topics


About queries

What is a query?

A query is a way to retrieve information from your tables. Queries are usually in the form of a question. For example, you can find out:

•	Which customers have placed orders this month?

•	What is the total amount of all orders placed by each customer?

•	What orders have not been paid?

Uses of queries

By constructing queries that build on each other, you can ask "what if?" with your data. For example, you can find out:

•	How much would total sales increase if sales to Oregon residents increased by 8%?

•	How much would our travel costs increase if airline prices went up 10%?

You can also use a query to perform calculations on your data. You can also insert, delete, and change records using INSERT, DELETE, and CHANGETO queries.

Query By Example (QBE)

The query method Corel Paradox uses is called Query By Example (QBE). To perform a QBE query, you give Corel Paradox an example of the result you want. You use selection conditions and example elements to define the query. You can also save the query definition to use it again.

In a query, you can specify

•	tables to ask questions about

•	fields you want to see in the Answer table

•	records you want to select

•	calculations you want to perform

•	new fields you want to create

You can query one table or several tables to get just the information you need. Corel Paradox finds the records that meet the conditions you specify and presents the results to you in an Answer table.

If a query does not obtain the results you want, you can easily refine the query and run it again.

Query results

By default, Corel Paradox prepares an Answer table for queries that yield a table of results. You can edit Answer tables, but your edits don't update the original table or the tables included in the query. If you want to update related tables by editing query results, you can create a live-query view instead of an Answer table. For more information see About query results.

Query properties and preferences

You can set properties for each query such as the type and name of the results table, and whether the results are sorted. For more information, see About query properties.

You can also set default preferences for all queries, such as the type of check mark to use. For more information, see Setting system preferences.

 Related Topics


Guidelines for creating queries
Steps for creating queries

The types of queries you can create with Corel Paradox and QBE are almost limitless. You can use query operators and calculation statements to extract just the information you need. No matter what kind of query you're creating, the technique you use to create the query has very little variation.

Creating a query involves the following steps:

1.	You must choose the table(s) you want to ask about.

2.	If you choose more than one table, you must link the tables based on their common fields.

3.	You must specify the fields you want to appear in the Answer table.

4.	You must specify the selection criteria you want Corel Paradox to follow when selecting records to display.

5.	You must run the query.

In addition to these five steps, you can optionally specify calculations that you want to perform on the data. You can also set query properties, such as table type and sort order for the Answer table. When you run a query, Corel Paradox looks for all records that match the selection criteria you specified, and then displays these records in an Answer table. The Answer table displays only those fields from each record that you specified in step 3.

You can save any query and run it at any time. You can also save the Answer table under a different name.

Normally, when you perform a query, Corel Paradox generates an Answer table that is read-only. In other words, you cannot change the information in the records. However, you can generate a live query instead of an Answer table by changing a query-property setting and then updating the information in the selected records. For more information, see About query results.

 Related Topics


Opening a query
Opening and running a query

After you have created and saved one or more queries, you can open and run them at any time.

To open a query

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	Use the Look In list box to locate the query you want to open.

5.	Type the name of the query in the File Name box.

6.	Click the Open button.

Corel Paradox displays the query in a Query window.

To run a query

Do one of the following

•	Click Query, Run Query.

•	Press F8.

If the query contains no errors, Corel Paradox displays a window that indicates the status of the query. After Corel Paradox completes the query, depending on the kind of query, Corel Paradox either displays an Answer table or changes data in a table. See About query results for more information.

 Related Topics


Creating a query from a table
Creating a query from a single table

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, choose one or more tables from the list of tables.

5.	Click the Open button.

Corel Paradox places an image of each table chosen in the Query window.

6.	Enable the check box beside each field you want Corel Paradox to display in the Answer table.

7.	Type selection criteria and/or example elements beside each appropriate field. For an overview, see Working with the query image.

8.	Click Query, Run Query to run the query.

Corel Paradox runs the query and displays any records that match the selection criteria in the Answer table. Only the fields that you enabled in step 4 are displayed for each record (except for the Summary operator, which displays a result automatically).

7.	Click File, Save to save the query.

 Note

•	If your query contains more than one table, you must link the tables with example elements before you run the query. See Using example elements to link tables.

 Related Topics


Creating a query based on a data model

You can create a query based on the existing data model of a form or report, or you can create a data model and immediately run a query.

To create a query based on an existing data model

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, choose Forms or Reports from the Files Of Type list box.

5.	Type the name of the form or report whose data model you want to use or select a form or report from the list of files.

6.	Click the Open button.

Corel Paradox places in the Query window an image of each table used in the data model of the chosen form or report. It also places example elements (and inclusion operators, if necessary) to join the tables according to the document's data model. Multiple tables in a query must be joined in this way.

7.	Type selection conditions and/or additional example elements and specify fields to display in the Answer table. For more information, see Working with the query image.

8.	Click Query, Run Query to run the query.

Corel Paradox runs the query and displays any records that match the selection criteria in the Answer table. Only the fields that you enabled in step 4 are displayed for each record.

9.	Click File, Save to save the query.

 Related Topics


Creating a query based on another query

If you want to create similar queries, you can modify an existing query and save it under a new name.

To create a query based on another query

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, choose Queries in the Files Of Type list box.

5.	Type the name of the query you want to use as a base for the new query or select a query from the list of files.

6.	Click the Open button.

Corel Paradox places a copy of the query in the Query window. Any existing selection conditions, example elements, (and inclusion operators, if necessary) are included in the query images.

7.	Make changes to the query image as appropriate.

8.	Click Query, Run Query to run the query.

9.	To save the new query, click File, Save and type a name in the File Name box.

 Related Topics


Example of creating a simple query

This topic provides an example of creating a query. For generic instructions see Creating a query from a table.

To create a simple query that results in a list of customer names and phone numbers, follow these steps. (This example uses the CUSTOMER.DB table located in your SAMPLE directory.)

1.	Make sure your working directory is set to SAMPLE under the directory with your Corel Paradox program files. To change it, see Changing your working directory.

2.	Click File, New.

3.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

4.	Double-click the New Query icon.

5.	In the Select File dialog box, double-click the CUSTOMER.DB table.

Corel Paradox displays a query image of the CUSTOMER.DB table in the Query window.

6.	Enable the check box beside the Name field. The default check mark type is Check, which shows only unique records (the first record that has each value) for that field.

7.	Enable the check box beside the Phone field.

8.	Click Query, Run Query to run the query. Corel Paradox displays a status window to track the progress of the query.

Corel Paradox displays the data in an Answer table.

 Related Topics


Adding tables to a query

You can open a query with one or more tables and add tables to the query.

To add tables to a query

1.	Click File, Open, Query.

2.	In the Open Query dialog box, type the name of a query in the File Name box.

3.	Click the Open button.

Corel Paradox displays the query image in the Query window.

4.	Click Edit, Insert Table.

5.	In the Select File dialog box, select the table(s) you want to add to the query.

6.	Click the Open button.

Corel Paradox displays an image of each table in the Query window.

Note

•	Whenever you create a query using more than one table, you must link them. For more information, see Querying more than one table.

Tip

•	To select multiple tables in the Select File dialog box when you create a query, hold down CTRL and click the name of each table.

 Related Topics


Removing tables from a query

You can open a query with one or more tables and remove tables from the query.

To remove tables from a query

1.	Click File, Open, Query.

2.	In the Select File dialog box, choose Queries from the Files Of Type list box.

3.	Type the name of the appropriate query in the File Name box.

4.	Click the Open button.

Corel Paradox displays the query image in the Query window.

5.	Click Edit, Remove Table.

6.	In the Remove Table dialog box, select the table(s) you want to remove from the query.

Corel Paradox removes the table from the query.

 Related Topics


Working with query images

After you select the table(s) you want to query, Corel Paradox opens the Query window  that contains query images of each table you have selected to query. The query image has the same fields, in the same order, as the table it represents, but no data. If you have changed the table's properties (for example, changed the column order or the way heading text is displayed), the query image does not reflect them. However, you can change the column order of the query image.

You type data into and navigate through the fields of a query image the same way you would in a table in Edit mode. For example:

To...	Do this...

Add a row	Press the INSERT key (this only works if you have made some change to the current row).

Delete a row	Press CTRL+DELETE

Enter Field View	Press F2.

Moving among fields

To move among fields within a query image using the keyboard, press TAB or SHIFT+TAB. To move within multi-table queries, press F4 or F3.

Tiling or cascading query images

Paradox provides two ways for you to display multiple query images in a Query window.

•	Click View, Tile Tables to view multiple query images tiled vertically in the Query window. (This is the default setting.)

•	Click View, Cascade Tables to view multiple query images cascaded in the Query window.

Linking tables and typing selection criteria

If you have created a query using more than one table, you will need to link the tables in order to run the query. You can then specify the fields you want included in the Answer table. For details, see About selecting fields to display.

You can then type selection conditions and/or example elements into the fields of the query image. (See About selection conditions and About example elements for details.)

 Related Topics


Query image check boxes

Each field of a query image has a check box. The column on the far left under the table name also has a check box. Enable a field's check box to include that field in the Answer table for the query. When you right-click a field's check box, you see the different types of checks you can use. Each has its own meaning.

 Use Check to show all unique values for the enabled field. The values are displayed in ascending order (A to Z or 0 to 9). When used with a summary operator, a check mark specifies that the records should be divided into groups based on the values in the checked field.

 Use CheckPlus to show all values in a field, including duplicates, without sorting. When you use CheckPlus, the values from the checked field appear in the Answer table in the same order they appear in the queried table.

When you use CheckPlus in any field of the query image, it overrides any Checks or CheckDescendings you have placed in any other field. This is because Corel Paradox cannot both sort and exclude duplicates [image] which is what the Check and CheckDescending tell it to do [image] and not sort and include duplicates [image] which the CheckPlus tells it to do.

Although you can place Checks and CheckDescendings in BLOB fields, Corel Paradox treats them as CheckPluses in these fields. Corel Paradox cannot sort or distinguish unique from duplicate values in these field types.

 Use CheckDescending to show unique values sorted in descending order (Z to A or 9 to 0).

 Use GroupBy to specify a group of records to use in a set query. (A field with the GroupBy checkmark does not appear in the Answer table.) For more information, see About querying sets of records.

 Related Topics


Query image fields
Query-image fields

The fields of a query image hold the selection conditions for your query. You define query-selection conditions by typing them directly into the query-image fields.

You can use the Edit menu to perform cut, copy, and paste operations on any selection condition or portion of a selection condition in a field of a query image.

 Related Topics


Placing a checkmark in a query image

To display a field in the Answer table, you must place a check mark of one type or another in the check box next to that field.

To place the default checkmark

Do one of the following:

•	Enable the field's check box.

•	Click the field to select it and press F6.

To place another type of checkmark (usually CheckPlus, CheckDescending, or GroupBy)

Do one of the following:

•	Right-click the field's check box to display the check menu, then choose the type of check you want from the menu.

•	Select the field and press SHIFT+F6 repeatedly until the type of check you want is displayed.

Tip

•	To include all fields in the Answer table, enable the check box in the left-most column (under the table name).

 Note

•	For a description of the different types of checkmarks, see Query image check boxes.

 Related Topics


Rotating columns in a query image

To rotate columns in a query image

•	Do one of the following:

•	Use the mouse to drag a column heading to a new location.

•	Select the column you want to move and press CTRL+R. The selected column becomes the last column in the table.

 Note

•	To change the order of columns in a query Answer table, first fill out the query image. Then, before running the query, choose Query, Properties and click the Structure page. You can use the arrow buttons to change the order of the fields.

 Related Topics


About selecting fields to display

After you select the tables you want to query, you need to specify what fields you want to see in the Answer table.

 If you place a Check in one field of a query image, Corel Paradox displays only unique values from that field in the Answer table.

 If you want to see all values, including duplicates, select CheckPlus instead of the Check from the menu.

When you use CheckPlus, the values are not sorted.

For more information about the effects of these and other check marks, see Query-Image check boxes.

Including a field

To include a field in the Answer table, enable the check box for that field. For instructions, see Placing a check mark in a query image.

Selecting all fields

To display all of a table's fields in the Answer table, enable the check box under the table name in the left-most column.

Disabling a field

If you don't want to display a field in the Answer table, disable the check box for that field. By default, all check boxes are disabled. To remove a check mark from a check box, click the box, or press F6.

 Related Topics


Specifying field names in the Answer table

Corel Paradox displays a field in the Answer table with the same name it has in the original table, or, in some cases, with a name Corel Paradox assigns. If you want a field in the Answer table to have a different name, use the AS operator.

To specify a different name

1.	Type your selection condition, if any, in the field, then type AS, followed by a space.

2.	Type the name you want the field to be called in the Answer table.

In the Answer table, Corel Paradox displays the values under the field name you specified.

See Renaming Answer table fields.

 Related Topics


About selection conditions
Defining selection conditions

In most queries, you want to see only records that meet certain conditions.

To define a selection condition

•	Type the conditions in the fields of a query image.

You use the query operators to define selection conditions.

You can define selection conditions that test for the following types of matches:

•	exact matches

•	matching a range of values: comparison operators

•	inexact matches: the LIKE operator

•	non-matches: the NOT operator

•	blank values: the BLANK operator

•	today's date: the TODAY operator

•	using wildcards to match a pattern

You can also use AND and OR to indicate whether a record must match all the defined selection conditions or just one of them.

You can type a selection condition in a field without enabling the check box for that field. Enabling the check box tells Corel Paradox to display that field in the Answer table. You do not have to include a field in the Answer table to use its values to select records. For example, you can query a table that contains names and addresses for a list of people living in a particular state without including the state field in the Answer table.

You must follow certain rules when you enter selection conditions and calculation statements in query images. For more information see

 Entering numbers in queries

 Using reserved words or symbols in selection conditions

 Related Topics


Query operators

Corel Paradox query operators are grouped into seven types:

Category	Operator	Meaning
Reserved symbols	Check	Display unique field values in an Answer table
	CheckPlus	Display field values including duplicates in an Answer table
	CheckDescending	Display field with values sorted in descending order
	GroupBy check	Specify a group for set operators
Reserved words	CALC	Calculate a new field
	INSERT	Insert records with specified values
	DELETE	Remove records with specified values
	CHANGETO	Change specified values in fields
	SET	Define specific records as a set for comparisons
Arithmetic operators	+	Addition or alphanumeric string concatenation
	-	Subtraction
	*	Multiplication
	/	Division
	( )	Group arithmetic operations
Comparison operators	=	Equal to (optional)
	>	Greater than
	<	Less than
	>=	Greater than or equal to
	<=	Less than or equal to
Wildcard operators	..	Any series of characters
	@	Any single character
Special operators	LIKE	Similar to
	NOT	Does not match
	BLANK	No value
	TODAY	Today's date
	OR	Specify OR conditions in a field
	, (comma)	Specify AND conditions in a field
	AS	Specify the name of a field in an Answer table
	! (exclamation mark)	Display all values in a field, regardless of matches
Summary	AVERAGE	Averages the values in a group
	COUNT	Counts the number of values in a group
	MAX	Finds the maximum value of a group
	MIN	Finds the minimum value of a group
	SUM	Totals the values in a group
	ALL	Calculate summary based on all values in a group, including duplicates
	UNIQUE	Calculate summary based on unique values in a group
Set comparison operators	ONLY	Display records that match only members of the defined set
	NO	Display records that match no members of the defined set
	EVERY	Display records that match every member of the defined set
	EXACTLY	Display records that match all members of the defined set and no others
 Related Topics


Operator precedence in queries

Corel Paradox evaluates operators in queries in a specific order.

In expressions that contain more than one operator, the operators are evaluated in the order of precedence shown in the following table:

Precedence	Operator

1	()

2	* /

3	+ -

4	= <> < <= > >=

5	NOT

6	OR

7	, (comma)

Any expression contained in parentheses is evaluated first, and inner levels of parentheses are evaluated before outer levels. When two or more operators of equal precedence are in a single expression, they are evaluated from left to right.

 Related Topics


Using arithmetic operators

You can use arithmetic expressions in number, date, time, and money fields of a query image.

Operator	Meaning

+	Addition or string concatenation

-	Subtraction

*	Multiplication

/	Division

( )	Used to group expressions

Use parentheses ( ) to combine and group operations and to indicate which calculations should be performed first. In expressions without parentheses, multiplication and division are performed before addition and subtraction. Operations with equal precedence are calculated from left to right. For more information on operator precedence, see Operator precedence in queries.

Arithmetic operators are especially useful with the TODAY operator, the CALC operator, and with example elements.

You can use arithmetic expressions with date values and the TODAY operator to

•	add a number of days to a date

•	subtract a number of days from a date

•	subtract a date from a date to product a number of days

Use arithmetic operators to create arithmetic expressions with field values. You can use any of the arithmetic operators in the number fields [image] Corel Paradox number, short integer, long integer, BCD, and money and dBASE number and floating number fields.

For a list of Corel Paradox and dBASE field types you can use, see:

 Corel Paradox field types that allow arithmetic operators

 dBASE field types that allow arithmetic operators

You can use the addition (+) operator in alpha fields to combine or concatenate alpha values.

For general information on all the query operators, see Query operators.

 Related Topics


Paradox field types allowing arithmetic operators
Corel Paradox field types that allow arithmetic operators

This table shows which arithmetic operators can be used in each Corel Paradox field type.

Operator	A	N	$	S	I	#	D	T	@	M	F	G	O	L	+	B	Y
+	Y	Y	Y	Y	Y	Y	Y	Y	Y
-		Y	Y	Y	Y	Y	Y	Y	Y
*		Y	Y	Y	Y	Y		Y	Y
/		Y	Y	Y	Y	Y		Y	Y
( )	Y	Y	Y	Y	Y	Y	Y	Y	Y
 Related Topics


dBASE field types allowing arithmetic operators
dBASE field types that allow arithmetic operators

This table shows which arithmetic operators can be used in each dBASE field type.

Operator	C	F	N	D	L	M	O	B
+	Y	Y	Y	Y
-		Y	Y	Y
*		Y	Y
/		Y	Y
( )		Y	Y	Y
 Related Topics


Entering numbers in queries

When you type a number into a number field (Corel Paradox number, short integer, long integer, or money field and dBASE number or floating number fields) of a query image, do not type

•	dollar signs

•	parentheses to signify a negative value.

•	thousand separators (neither a comma nor a period) when you specify a pattern match with the .. or @ wildcard operators. For more information see Using wildcards to match a pattern.

On the other hand, do type

•	decimal separators (a period in United States convention and a comma in international convention)

•	the minus symbol to signify a negative value

•	thousand separators when specifying an exact match numeric-selection condition

Corel Paradox determines when a comma or a period is a whole-number or a decimal separator, first based on whether you have a United States or international number convention set, and second, based on the symbol's position and context. Ambiguity arises when a comma could be Corel Paradox's AND operator, which is a comma, and when a period could be part of Corel Paradox's .. wildcard operator, which is two periods in a row.

If the meaning of a comma or period is not clear, you must help Corel Paradox understand the symbol's meaning  by using double quotation marks or spaces. The meaning of a comma or period meaning will not be recognized as a thousand separator if you are specifying a pattern match with the .. or @ wildcard operators; therefore, do not type thousand separators when you specify a numeric pattern with .. or @.

If you are using the United States number format

Corel Paradox interprets a single period in a number field as a decimal separator.

Corel Paradox interprets the first two periods in a row as the .. wildcard operator.

In a number field, if Corel Paradox encounters three periods in a row, it interprets them as the .. wildcard operator followed by the decimal separator. To make Corel Paradox interpret the first period as the decimal separator, enclose it in double quotation marks.

Corel Paradox interprets a comma in a number field as a thousand separator if you are specifying an exact match and if the comma is in the proper position to be a thousand separator. To make Corel Paradox interpret a comma as the AND operator where this meaning might not be clear, type a space or any other non-numeric character (except @ or a period) after the AND comma. For example, you could type a comparison operator.

If you are using the international number format

Corel Paradox interprets the first comma in a number field within a number as the decimal separator.

Corel Paradox interprets a comma followed by a space or any other non-numeric character (except @ or a period) as the AND operator in a number field.

Corel Paradox interprets a single period in a number field as a thousand separator if you are specifying an exact match and if the period is in the proper position within a numeric selection condition.

 Related Topics


Using reserved words or symbols in selection conditions

In a query image, to specify an alphanumeric value that contains a period or comma or a Corel Paradox reserved word, enclose the value in double quotation marks. Corel Paradox then recognizes the quoted characters as a value and does not act on their special meaning.

If the value itself contains a double quotation mark, precede the quotation mark with a backslash (\):

Thomas E. \"Ned\" Lawrence

If the value contains a backslash, precede that backslash with another backslash (\\).

You do not need quotation marks to enclose blank spaces in a value. You do need them, however, for all other symbols and operators that have special meanings in Corel Paradox, such as commas, periods, and asterisks.

 Related Topics


Exact matches

If you want a query to retrieve only records that have a specific value in a field, type the value you are looking for in the appropriate field of the query image.

Corel Paradox includes in the Answer table only records with that value in that field.

Exact matches are case-sensitive. You can specify exact matches for as many different fields as you want. Type all of the values you want to see [image] exactly as they appear in the table [image] in the appropriate fields of the query image.

Remember to enable the check box in that field if you want Corel Paradox to include that field in the Answer table.

 Note

•	You cannot specify exact matches for BLOB fields. You must use the .. wildcard operator to specify selection conditions in memo and formatted memo fields. See Using wildcards to match a pattern.

•	Exact matches of logical fields include uppercase or lowercase T and F and any combination of uppercase and lowercase letters of the entire words True and False.

Example

 Related Topics


Matching a range of values: comparison operators

If you want a query to retrieve records that match a range of values, use comparison operators, also known as range operators. Comparison operators let you specify a range of values in a single field. For example, you might want to see any quantity greater than 10, any price less than $500, any date before June 13, 1992, or any name that comes before Smith in alphabetical order.

To use a comparison operator, type it in front of the value you are using to define the range.

You can use comparison operators with alphanumeric values and all number, date, and logical values. You cannot use them with BLOB or dBASE memo values; you can only use the equal to (=) operator with these types.

Operator	Meaning	Examples	Match
=	Equal to*	= 3/17/81	Only March 17,1981
		= Ralph	Only Ralph
		= False	Only False
>	Greater than	> 3/17/81	Dates later than March 17, 1981
		> "Ralph"	"Rat", "Rudolph", etc.
		> "False"	True, T, Yes, 1
<	Less than	< 3/17/81	Dates before March 17, 1981
		< "Ralph"	"Charles", etc.
		< "True"	False (by convention, False < True)
>=	Greater than	>= 3/17/81	March 17,1981 and later dates
	or equal to	>= "Ralph"	"Ralph", "Raphael", "Randolph", etc.
<=	Less than	<= 3/17/81	March 17, 1981 and earlier dates
	or equal to	<= "Ralph"	"Ralph", "Manny", "Charles", etc.
*The = operator is optional in these cases because it is assumed when no other comparison operator is used.

To use a comparison operator, type it before the value in which you are interested. If you are typing an alphanumeric value, you can use any combination of uppercase and lowercase letters to produce the same results. The example of all stock that costs more than $1000 is shown in the following figure:

You can specify ranges for any number of fields in a query image.

Combining operators

You can combine comparison operators to construct a limited range of values. Separate all the comparison conditions with a comma. For example, the following query requests records with a List Price greater than $1,000 and less than $1,800.

 Related Topics


Inexact matches: the LIKE operator

Use the LIKE operator in a query image to match inexact alphanumeric values. This is particularly useful for finding values that contain typographical errors or alternate spellings.

If the Answer table to a query does not include some records you expected to see, try using LIKE with one or more alpha fields; the records you are looking for might contain typographical errors, misspellings, or alternate spellings.

To use the LIKE operator, type LIKE in front of the value you think will match the records you want.

Example

There are two general rules for obtaining a match with the LIKE operator:

•	The first character of the pattern you specify with the LIKE operator must match exactly (though case does not matter). "LIKE California" does not match Kalifornia.

•	A pattern matches if at least one-half to two-thirds of the characters match.

Field types

You cannot use LIKE on BLOB fields or dBASE memo fields.

Although you can use LIKE in number and date fields, you will get better results by using the wildcard operators .. and @ to specify a number or date pattern.

 Related Topics


Non-matches: the NOT operator

In a query image, use the NOT operator to select records that do not have a specified value in a particular field.

To use the NOT operator, type NOT before the example of the value you do not want to see.

NOT can precede exact values, ranges, wildcard patterns, or other selection conditions. In fact, you can precede any valid Corel Paradox selection condition with NOT.

If the selection condition you specify after NOT is an exact match condition, you must type the condition with exactly the same capitalization and spelling as the matching value appears in the table. (Values in logical fields are an exception to this rule.) As with all of Corel Paradox's operators, the case of the NOT operator does not matter.

Example

 Related Topics


Blank values: the BLANK operator

In a query image, use the BLANK operator to find records with no value in a specified field.

In some cases, the absence of a value is in itself a useful piece of information. You might also want to find records with a blank field so you can fill in information that was unavailable when the record was entered.

To use the BLANK operator, type BLANK in the appropriate field.

You can combine NOT with BLANK to find all records that have any value in the specified field.

 Note

•	Searching for blank field values is entirely different from leaving a field blank in a query image. Using the BLANK operator tells Corel Paradox you want to see only those records that have no value in the specified field. However, when you leave the field of a query image blank, on the other hand, Corel Paradox does not consider the field at all when selecting records.

When you use comparison operators or sort by a field that has blank values, blank fields are considered to have a lower value than any nonblank value.

 Related Topics


Today's date: the TODAY operator

In date fields of a query image, the TODAY operator always stands for today's date. Make sure your computer's calendar is set properly.

TODAY is especially useful for aging payables and receivables when you use Corel Paradox's arithmetic operators.

For example:

Expression	Meaning

< TODAY	Finds dates earlier than today's date

< TODAY - 90	Finds dates earlier than 90 days ago

TODAY + 30	Finds dates 30 days ahead of today's date

Example

Suppose you want to query the sample Orders table to see what orders were placed today. The following example shows how you would set up the query:

You could save this query and run it at the end of each day to see what orders were placed that day.

 Related Topics


Using wildcards to match a pattern

Corel Paradox provides two wildcard operators to match patterns of characters in queries:

•	The .. operator, which matches any series of alphabetical or numeric characters

•	The @ operator, which matches any single alphabetical or numeric character

Although the LIKE operator is useful for finding inexact matches in alpha fields, wildcard operators give you more flexibility.

You can use these operators in any field except in binary, graphic, OLE, or logical fields. You can type any combination of uppercase and lowercase letters and your query will produce the same results.

 Note

•	To retrieve values from a memo or formatted memo field, you must use the .. wildcard operator to specify a pattern-selection condition. (Typing an exact match in these field types means typing the entire memo value; to prevent this unnecessary effort, Corel Paradox does not allow it.) You can also use the @ wildcard operator to specify a pattern match in these field types, but you must use it in combination with the .. wildcard operator.

•	Special guidelines apply when you use wildcard operators with dates and numbers. For more information see

Using wildcards with dates

Using wildcards with numbers

•	For an example of using wildcard operators with comparison operators, see AND conditions in the same field.

 Related Topics


The .. wildcard operator

The .. wildcard operator matches any series of any number of characters, including blank spaces. The .. wildcard operator is case-insensitive.

Pattern	Matches

G..	Giant, gigantic, Georgia

g..t	Giant, gross weight

..D	Grand, Elm Road

..e..s	Phillip Edward Wilson, roses

7..5	7485, 70,005

6/../96	6/01/96, 6/25/96

 Note

•	To retrieve values from a memo or formatted memo field, you must use the .. wildcard operator to specify a pattern-selection condition. (Typing an exact match in these field types means typing the entire memo value; to prevent this unnecessary effort, Corel Paradox does not allow it.) You can also use the @ wildcard operator to specify a pattern match in these field types, but you must use it in combination with the .. wildcard operator.

Suppose you want to find shops in the Customer table with the word Dive in their names. If you used the LIKE operator and typed LIKE dive in the Name field of the Customer table, you would only get dive shops whose names started with the word Dive and for whom Dive represented at least half of the letters of the entire name value. If, instead, you type ..dive.. in the Name field, Corel Paradox generates an Answer table that shows customers with the word Dive anywhere in their name.

 Related Topics


The @ operator

The @ wildcard operator matches any single character (letter or number). You can use any number of @ characters to specify a pattern.

When you know how many characters are in the pattern you're looking for, you can use that number of @ wildcard operators instead of using the .. wildcard operator. For example, if you don't know if a person spells her name Kathy or Cathy, you can type @athy to match the value.

Pattern	Matches

m@@e	Mike, more, made

wom@n	Woman, women

s@@@@	Smith, Smyth, scent

19@2	1922, 1972, 1992

The @ wildcard operator is case-insensitive.

 Note

•	You cannot use the @ wildcard operator by itself to specify a pattern in a memo or formatted memo field. You can use it to represent single characters in a memo or formatted memo field, but you must also use the .. wildcard operator to retrieve memo field values.

 Related Topics


Using wildcards with numbers

If the meaning of a comma or period is not clear, you must help Corel Paradox understand the symbol's meaning with double quotation marks or spaces. The meaning of a comma or period will not be clear as a thousand separator if you are specifying a pattern match with the .. or @ wildcard operators; therefore, do not type thousand separators when you specify a numeric pattern with .. or @.

If there is a chance that a decimal or thousand separator will be confused with the .. or @ wildcard operator, use quotation marks. For details, see Entering numbers in queries.

For example, here is a query to find all stock having a list price of $18 and any number of cents.

Corel Paradox considers only significant digits in Corel Paradox number fields when you use wildcard operators. For example, @@@.@ matches 400.70, because the last 0 isn't significant. By contrast, @@@.@@ doesn't match 400.70 for the same reason.

dBASE numbers

A dBASE number field has trailing zeros to the right of the decimal place. Therefore, you must add the .. operator to the end of a numeric pattern, even if you are trying to match the last digits. For example, ...95.. will match all numeric values ending in .95, but ...95 will not match.

 Related Topics


Using wildcards with dates

When you enter date values for exact matches in a query image, you can use any date format that Corel Paradox supports, including custom formats.

However, when you use a wildcard to find a date, the pattern you define with the wildcard operator must reflect the date format you have set in both the Borland Database Engine (BDE) Configuration Utility and the Regional Settings in the Windows Control Panel. (The BDE and Control Panel date settings must match.)

Example

If the date format set in both BDE and Control Panel is mm/dd/yy, you can find orders placed in May of 1995 like this:

If you have another date format set, use that format in the wildcard query.

 Related Topics


Example of using wildcards to match a pattern

The following example shows the use of the .. operator to find the name of all customer shops with Dive in their name.

This example retrieves from the sample Stock table all records that have the word "nylon" in the Catalog Description field, which is a memo field.

The next example shows the use of the @ operator to find all stock with Model name beginning with PUL plus 3 and only 3 characters. Notice that @ retrieves the blank space character as well as letters and numbers. If you used the .. operator in this case (Pul..) the Answer table would give you anything from Pulse to Pullman.

 Related Topics


About AND conditions

When you enter selection conditions in separate fields on the same line of a query image, all conditions on that line must be met by a record in the table for the query to retrieve that record. This type of operation is called a logical AND, and means that all conditions must be met.

You can also express a logical AND in a single field [image] that is, enter more than one condition in a field and require that they all be met [image] by separating the conditions with commas.

The comma acts as an AND operator and tells Corel Paradox that both (or all) conditions must be met for a match to occur.

 Note

•	If you want to enter a comma into a query without Corel Paradox interpreting it as the AND operator, enclose the comma in quotation marks.

You can use the AND operator in all field types including BLOBs. Whenever you query a memo or formatted memo field, you must use the .. wildcard operator in addition to any other selection conditions or operators you use.

 Related Topics


AND conditions in the same field

Use a comma ( , ) to separate AND conditions in a single field of a query image. Type the entire AND expression on the same line of the field. The comma acts as an AND operator, and tells Corel Paradox that both (or all) conditions must be met for a match to occur. Because a value in a single field cannot be two or more values at the same time, the AND conditions you will be specifying in a single field will be any kind except exact match conditions [image] for example, two or more types of patterns, or two range conditions.

Example

The following figure shows a query that asks to see list prices in the Stock table that are less than or equal to $50.00 and that end with the number 5.

If you have the United States number format set, spaces are not necessary between the conditions and the AND ( , ) operator. If you have the international number format set, a space is necessary on one side of the comma.

 Related Topics


AND conditions in different fields

To specify AND conditions in different fields [image] that is, conditions that must all be met for a match to occur [image] type the conditions on the same line of the query image, and place each condition in its respective field.

You can specify exact matches on more than one field in a single query. Type all of the values you want to see [image] exactly as they appear in the table [image] in the appropriate fields of the query image. The following figure shows such a query:

 Related Topics


AND conditions with linked tables

To specify AND conditions with linked tables, type all selection conditions that you want to be met on the same line of each linked query image. Specify AND conditions within a single field by separating all conditions that you want to be met with a comma ( , ), which is the AND operator.

 Related Topics


About OR conditions

You can set logical OR operations in a query. That is, you can retrieve records that meet either of two (or any of several) conditions.

To express an OR condition in a single field, use the OR operator. See OR conditions in the same field for details.

To express an OR condition between different fields, use separate lines of the query image, not the OR operator. See OR conditions in different fields for details.

You can create a query that specifies OR conditions in two or more tables. For details, see OR conditions with linked tables (multi-table queries).

 Note

•	You can use the OR operator in all field types, including BLOBs. Whenever you query a memo or formatted memo field, you must use the .. wildcard operator in addition to any other selection conditions or operators you use.

 Related Topics


OR conditions in the same field

Specify conditions in a single field on the same line of a query image to tell Corel Paradox you want records that meet any of two or more conditions in that field. Type the operator OR between conditions.

Example

The following query retrieves a list of all dive shops from the sample Customer table that are in either California or Hawaii.

 Related Topics


OR conditions in different fields

You can specify OR conditions for different fields of the table you are querying. You perform this kind of OR operation by putting selection conditions on different lines of the query image.

To add additional lines to the query, follow the editing instructions in Working with query images.

To display fields in the Answer table with this kind of query, you must check the check boxes in the same field in each line. For example, if you check the Name field in the first line, you must also check the Name field in all other lines of the query. Otherwise, Corel Paradox displays error messages that state that the query appears to ask two unrelated questions or that one or more query rows do not contribute to the Answer.

 Note

•	You do not use the OR operator for this kind of query. You use the OR operator for OR conditions in the same field.

Example

The following figure shows a query that asks to see records from the sample Customer table that are in either the city of San Jose, California (this condition is on the first line), or in the state of Hawaii (this condition is on the second line). Although the image below does not show the same fields checked in both line of the query, to run this query correctly, you must check the same fields in both lines of the query.

 Related Topics


OR conditions with linked tables (multi-table queries)

To specify OR conditions with linked tables, type all selection conditions for different fields of a single table (any of which a given record can meet) on separate lines of the table's query image. All query images of linked tables must have the same number of lines and be linked with different example elements for each line of the common field. Specify OR conditions within a single field by separating all conditions (any of which you want to be met) with the OR operator.

 Note

•	You can't use the OR operator on example elements. The condition Qty or Price, where Qty and Price are example elements, returns an error message. This is because an example element stands for all the values in the field. You can't tell Corel Paradox that either Qty or Price can represent all the values in the field.

Example

This query uses the sample Customer and Contacts tables to find the names of the contacts for customers located either in the city of Nassau or in the country of Jamaica. The same example elements are used on corresponding lines of the query images (join1 on the top lines and join2 on the bottom lines).

 Related Topics


Combining AND and OR conditions

You can combine AND and OR conditions in a single query.

Example

The following example uses the sample Stock table to find out if you have 15 or fewer Direct Sighting Compasses and 15 or fewer Navigation Compasses in stock. You also want to see which vendors supply these items.

 Related Topics


Combining two conditions in one field

You can enter two or more selection conditions in the same field of a query image by separating the conditions with commas. The comma acts as an AND operator and tells Corel Paradox that both (or all) of the selection conditions must be met for a match to occur.

Example

Suppose that in the sample Stock table, a list price ending in 5 indicates an item is on sale. You want to see all items that are on sale and cost $50 or less. Here is how you would set up the query:

If you have the United States number format set, spaces are not necessary between the conditions and the AND ( ,) operator. If you have the international number format set, a space is necessary on one side of the comma.

You can also combine AND and OR conditions in a single query.

 Notes

•	To match a value that includes a comma (like Acme, Inc.) you must enclose the value in quotation marks or Corel Paradox will interpret the comma as an AND operator. For example, you would type "Acme, Inc".

•	Sometimes you use the OR query when you are asking an "and" question. For example, if you want all records in CA and HI, you must query for CA OR HI because no single record has both values.

 Related Topics


About example elements

An example element represents values in the field in which it is placed. Example elements are used in two ways in Corel Paradox:

•	In single-table queries, you can use example elements with query operators to perform calculations with the values in a particular field. An example element represents each value in turn from that field in the selection condition.

•	In multi-table queries, you can use example elements to link tables by common fields. The example elements tell Corel Paradox that two fields contain common data although their field names differ. Each example element acts as a place marker and means "If a record selected from Table A has a value in this field, link it with all the records from Table B that have the same value in the corresponding field."

You can use example elements in all fields except BLOB fields.

For more information about creating example elements see Creating example elements.

 Related Topics


Creating example elements

You can create your own example elements by pressing F5 and typing the example elements. You can also let Corel Paradox do it for you by clicking the Join Tables [image] button. For more information see

 Creating an example element by typing

 Placing example elements with the Toolbar

When you create your own example elements, you can use nonsense syllables or names that are meaningful to you. Example elements can contain any alphabetic characters (A-Z, a-z), digits (0-9), or both. They must not contain spaces.

 Related Topics


Using an example element in a selection condition

When you use example elements to link tables, you can add as many selection conditions as you want. You can place conditions in any query image. The only requirement of a multi-table query is that all tables in the Query window be linked to each other.

In the following example, you want to know which dive shops outside of California have placed orders for items from $500 to $1,500 in selling price and have had these items shipped via Federal Express or Emery.

 Note

•	You cannot use the OR operator with example elements. The statement Qty OR Price, where Qty and Price are example elements, is not a logical question and returns an error message. This is because an example element represents all the values in the field. You cannot tell Corel Paradox that either Qty or Price can represent all the values in the field.

 Related Topics


Using an example element to represent a value

You can use an example element in a selection condition when the value you want to use is stored in a table. The example element stands for whatever value Corel Paradox retrieves.

For example, suppose you want to know what dive shops in the sample Customer table are located in the same city as the VIP Divers Club. Rather than ask what city that is, then ask what cities match it (a two-query process), you can find the value and all matching values in one query, following these steps:

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, double-click the Customer table.

5.	In the Name field of the query image, type VIP Divers Club.

6.	In the City field, press F5 and type city as the example element to represent the city where VIP Divers Club is located.

7.	Press the down arrow to create a second line in the query image.

8.	On the second line of the query image, enable the check boxes beside the Customer No, Name, and City fields.

9.	In the City field on the second line, press F5 and type city again to retrieve all records whose City values are the same as the City value for VIP Divers Club.

10. 	Click Query, Run Query to run the query.

 Related Topics


Using an example element in a range

You can use example elements in queries to retrieve records that match a range of values. For example, suppose you want to list all the stock items whose cost is greater than the cost of item number 1320. You would construct a query like the following one:

The first line of this query retrieves the record that contains Stock No 1320 from the sample Stock table. The cost of item 1320 is represented by the example element cost. The same example element is used in the second line to retrieve all records with a cost greater than the cost of item 1320. The cost of 1320 is $171.00.

 Related Topics


Using an example element in a date condition

You can use an example element in a date expression. For example, suppose you want to list all orders that were shipped less than 30 days after order number 1010 (this includes orders that were shipped before order number 1010). Order 1010 shipped on 5/14/91.

You would construct a query like the following one:

This query uses

•	an example element to represent the shipping date of order number 1010

•	an arithmetic expression to calculate the date 30 days after the shipping date

•	the < (less than) operator to select the records that have shipping dates earlier than the date 30 days after the shipping date of Order No 1010..

 Related Topics


Using LIKE or NOT with an example element

You can use example elements with the LIKE and NOT operators.

Suppose you want to find contacts who have been entered more than once in the sample Contacts table with slightly different last name spellings. You could use LIKE to look for alternative-spelling duplicates of each name, one at a time, or you could use LIKE and NOT with example elements to find all alternative-spelling duplicates at once.

The statement "like name, not name" specifies last names that are like one another and at the same time not exactly one another [image] just names that have in common at least one-half to two-thirds of the same letters. (The space after the comma is not necessary but makes the expression easier to read.)

 Related Topics


Creating an example element by typing

After you select the table you want to query, and Corel Paradox displays the query image, you can create an example element by typing in the appropriate field(s).

To create an example element by typing

1.	In the Query window, click the field where you want to add an example element.

2.	Press F5.

3.	Type the example element in the field.

On color monitors, Corel Paradox displays example elements in a different color (usually red).

You can use any characters that make sense to you. Example elements can contain any letters and numbers.

The following characters cannot be part of an example element:

*    (    )    -    +    /    .

You cannot put a space in an example element.

When you do one of the following, Corel Paradox assumes you have completed the example element:

•	Move to another field, line, or query image.

•	Press Spacebar.

•	Type one of the characters that can't be part of an example element.

Subsequent characters you type appear in normal text.

If you prefer, you can use the Join Tables button to link two or more tables. This method is usually more efficient than typing. For instructions, see Placing example elements with the Toolbar.

 Related Topics


Placing example elements with the Toolbar

When you create a multi-table query, you must join the tables. Although you can use the manual method of placing example elements to link two or more tables, the most efficient way to place example elements is to use the Join Tables command. The fields you link must be compatible field types (not necessarily the exact same field type [image] number and money fields are interchangeable) and must contain corresponding data for the link to work.

When you click the Join Tables button [image], the word join appears to the lower right of the cursor and Corel Paradox displays the message Performing Join on the Status Bar. This indicates that you're in join mode. Corel Paradox ends join mode automatically when you place two example elements (by clicking in two fields). You can click the Join Tables button again to leave join mode at any time.

To join tables using the Join Tables command

1.	With the query images of the tables you want to query displayed, click the Join Tables button.

2.	Click a common field in one table.

Corel Paradox places the words join1 in the field.

3.	Click the common field in the next table.

Corel Paradox places the words join1 in the field, indicating the two fields are joined.

4.	Repeat steps 1 to 3 to join all other common fields in your query.

The first pair of example elements Corel Paradox creates is join1, the next is join2, and so on.

Example

Suppose you want to see the names of dive shops that have placed orders. The sample Orders table shows only the Customer No [image] not the dive shop's name. The sample Customer table contains dive shop names. To get the information you want, you must link Customer and Orders on their common Customer No fields.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, select the Customer and Orders tables. To select multiple tables, hold down CTRL and click each table. Click the open button.

5.	Check Customer No and Name in the Customer query image, and Order No in the Orders query image.

6.	Click the Join Tables button. The join indicator appears to the lower right of the cursor.

7.	Click the Customer No field in the Customer query image. Corel Paradox places join1 in that field.

8.	Click the Customer No field in the Orders query image. Corel Paradox places join1 in that field too.

9.	Click Query, Run Query to run the query.

 Related Topics


Calculating values with queries: the CALC operator

The CALC operator performs calculations on the information in your tables. Use CALC to

•	construct and evaluate mathematical expressions

•	combine values from two or more fields

•	combine field values with constants

•	create a new field with a constant value

CALC Capabilities

You can

•	specify selection conditions to define the records on which to perform calculations

•	type the CALC expression itself in any field of the query image

•	use CALC with alphanumeric values and with summary operators

•	use values from several tables in a calculation

•	use example elements in the CALC expression to refer both to values in the same table and to values in other tables.

Rules for using the CALC operator

When you use CALC in a query, the Answer table generated by that query contains an additional field for the calculated result. This means that:

•	When you create tables, there is no need to include fields for any data that can be calculated from the values in other fields.

•	The field of the query image in which you type the CALC expression does not matter.

•	You don't need to check the field in which you enter the CALC expression because the CALC operator always causes Corel Paradox to create a new field in the Answer table.

If you do check the field in which you enter the CALC operator, the grouping is changed and the results are altered.

Corel Paradox gives the new field a name based on the calculation. You can use the AS operator to give the calculated field another name. For instructions, see Renaming Answer table fields.

 Related Topics


Using CALC with arithmetic operators

You can use CALC in any field of a query image. After you type the CALC reserved word, type the expression for the calculation you want to perform.

Expressions can contain

•	constants such as 154 or 12/24/91

•	example elements such as QTY

•	arithmetic operators such as +   -   *   /   ( )

•	summary operators such as SUM or MAX

•	comparison operators such as =   <   >   <=   >=

Example

Suppose you want to multiply the values of the Quantity (Qty) field in the STOCK.DB table by the values in the List Price field to obtain total costs of the stock you have on hand.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, double-click the STOCK.DB table.

5.	Enable the Stock No, Part No, Description, Qty, and List Price check boxes in the query image.

6.	Type an example element in the Qty field (press F5 and type something like Qty).

7.	Type an example element in the List Price field (press F5 and type something like Lp).

After you've defined the field values you want to work with by placing example elements in the List Price and Qty fields, you can type the CALC expression using these example elements in any field of the query image.

8.	In any field, type CALC and follow this with the example element you're using for the Qty field; then type * followed by the example element you're using for the List Price field. Your query statement should look something like this: CALC qty * Lp. (You can choose whether or not to type spaces; Corel Paradox disregards them.)

9.	Click Query, Run Query to run the query.

 Related Topics


Using CALC with alphanumeric values

You can combine (concatenate) alphanumeric values and constants by using CALC and the + operator. For example,

•	You can add "Ms. " in front of a list of last names when the value in the Sex field is F.

•	You can use CALC to combine values from the City, State/Prov, and ZIP/Postal Code fields into a single Address field.

Example

Suppose you want to combine the City, State/Prov, and Zip/Postal Code fields of the sample Customer table into one field in an Answer table. Here is how you would set up the query:

To include the country name for dive shops outside the United States, you can add the Country field to this concatenation.

 Related Topics


Creating a new answer field with a constant value

You can create a new Answer table field that contains a constant value (number, date, or alphanumeric) rather than the result of a calculation. When you create a number or date constant, type the reserved word CALC, a space, and the constant number or date value in any field of the query image. When you create an alphanumeric constant, type CALC, a space, double quotation marks, the alphanumeric constant (with respect for case), and end with double quotation marks.

Corel Paradox names the new field in the Answer table the same name as the constant value. (To name the new field something else, use the AS operator, as described in Renaming Answer table fields.) If the new field is alpha, it has as many character spaces as necessary to hold the constant value.

You can create a new blank field by typing CALC blank. In this case, you must type the CALC expression in the same type of field as you want the resulting Answer field [image] number, short integer, long integer, money, date, or alpha.

Example

Suppose you need to call all of the dive-shop customer contacts in the sample Contacts table to conduct a survey of customer satisfaction. You want a way to keep track of the contacts you have yet to call so that you do not call anyone twice by mistake.

You can create a new table from the Contacts table called Calls. You want to combine the Last Name and First Name fields of Contacts in the Calls table, and you want to create a new field in Calls with the alphanumeric constant "Not called yet." Here is how you would set up the query:

1.	Name the Answer table Calls by clicking Query, Properties, clicking the Answer page, and then typing Calls in the Table Name box.

2.	Using the query displayed below as an example, set up and run the following query.

 Note

•	You must type the CALC expression and AS operator condition in the same field. If you type them in either the Last Name or First Name fields, which already have example elements in them, you must separate the example element from the CALC expression and the AS operator condition with a comma.

 Related Topics


Calculating with numeric values from different tables

You can link tables and perform calculations that call on values from different tables in a single query. For examples, see Examples of calculating values with queries, Example 2.

 Related Topics


Examples of calculating values with queries

Example 1

Suppose in the sample Stock table you want to multiply the values of the Quantity (Qty) field by the values in the List Price field to obtain total costs of the stock you have on hand. Here is how you would set up the query:

•	The first occurrence of each example element defines the example. The example elements say, "This variable represents the values in this field."

•	The second occurrence of each example element uses the values the example elements represent. It says, "Do this with each value in this field."

Example 2

Suppose you want to calculate the total dollar value of all currently on-order items based on List Price (in STOCK.DB) rather than on Selling Price (in LINEITEM.DB).

To calculate this information, you must multiply the list price of all items by the quantity of that item ordered. For steps, see Calculating with numeric values from different tables. The following figure shows the results:

Create the following example elements by pressing F5 and then typing:

•	Qty in the Qty field of the Lineitem query image

•	Price in the List Price field of the Stock query image

•	Type a comma, and type the expression CALC Qty * Price (entering Qty and Price as example elements).

•	Use the Join Tables [image] button to place example elements in the Stock No fields of both query images.

 Related Topics


Querying more than one table

Two or more tables usually contain different information about the same person, place, or thing. To combine this information, you can query more than one table at the same time.

Multi-table queries are similar to single-table queries, except that

•	You must fill out a separate query image for each table.

•	You must use example elements to identify common fields among the tables. In other words, you must link the tables based on their common fields for the query to work. For more information, see Using example elements to link tables.

 Related Topics


Using example elements to link tables

When you query more than one table, you must use example elements to link the tables by a common field. These linking fields are fields in each table that contain the same kind of information. For example, Customer and Orders both have a field that contains custome- identification numbers called Customer No. Because the information in both fields is compatible, you can link these two tables on that field.

Linking fields

To link fields

•	They do not need to have the same field name.

•	They must be of compatible types. You cannot, for example, link a number field in one table to an alpha field in another.

•	They cannot be memo, formatted memo, graphic, OLE, or binary fields.

You can link up to 24 tables in a single query. For more information, see Adding tables to a query and Linking more than two tables.

Example elements

To enter an example element, do one of the following:

•	Click the Join Tables [image] button and click in the appropriate field of each query image. Corel Paradox places example elements that join the tables.

•	Select the field, then press F5 and type the example characters in the field.

When you use an example element to link tables, you must enable the check box beside one of the fields in one of the tables to display that field in the Answer table.

Data models

You can link tables automatically by using a data model. You can create a new data model for a query when you open the Query window. If you prefer, you can use the data model of an existing form, report, or query. For more information, see:

 Creating a query based on a data model

 Creating a query based on another query

 Using a multi-table design to link tables

 Related Topics


Linking more than two tables

Sometimes, three or more tables you are querying have the same field in common. In that case, you use the same example element to link all the tables.

The more usual case occurs when three or more tables have different fields in common. For example, Table 1 and Table 2 have one field in common, Table 2 and Table 3 have a different field in common, and Table 1 and Table 3 have no fields in common.

Use a unique example element for each link. In this case, you could use the example element abc to link Tables 1 and 2 and use xyz to link Tables 2 and 3.

For an overview of linking tables with example elements, see Using example elements to link tables. You could also use a multi-table design, see Using a multi-table design to link tables.

 Note

•	You can query as many as 24 tables in a single query.

 Related Topics


Using a multi-table design to link tables

Corel Paradox gives you a way to automatically link tables in a query by using a linked multi-table design document you have already created.

If you have already set up table relationships for the purpose of a multi-table design document, you can use that object as the basis of your query. You can also open another multi-table query and modify this query.

The Query window must be new or empty to start with other multi-table documents.

To use a form, report, or multi-table query to set up your query, follow the steps in one of these topics:

 Creating a query based on a data model

 Creating a query based on another query

Corel Paradox adds the tables used in the document to the Query window and places example elements to join the tables according to the document's data model.

 Related Topics


Example of multi-table queries
Examples of multi-table queries

Example 1

Suppose you want to use the sample tables to see which dive shops have placed orders. The sample Orders table, however, only shows the Customer ID number and not the dive shop names. The sample Customer table contains the dive shop names. Therefore, you want to use example elements to link Customer and Orders on their common Customer No fields to retrieve

•	orders information from Orders

•	the names of the dive shops that have placed orders from Customer

Example 2

Suppose you want to know which dive shops outside of California have placed orders for items from $500 to $1,500 in selling price and have had these items shipped via Federal Express or Emery.

The following figure shows the use of two example elements to link three tables.

 Related Topics


About query results

When run, most queries display an Answer table, which is placed in your private directory. However, if your query uses the INSERT, DELETE, or CHANGETO reserved words, Corel Paradox does not display an Answer table. Instead, it changes the data in one of the tables represented in the query and creates an Inserted, Deleted, or Changed table. See About queries that change data.

If you click Query, Properties and enable the Fast Queries setting on the QBE page, Corel Paradox will not create INSERTED, DELETED, and CHANGED tables.

Live-query views

You can edit the Answer table, but any changes you make are not reflected in the original table or tables that you queried. If you want to create an Answer table that does update the original table when you change it, you must create a live-query view instead of an Answer table. For more information, see About live query views.

 Related Topics


About the Answer table

A Corel Paradox query that retrieves data or performs calculations gives you an Answer table. The Answer table is a temporary table that Corel Paradox stores in your private directory and replaces each time you perform a query. Corel Paradox deletes the Answer table when you exit Corel Paradox. If you want to save the Answer table, you must rename it, or save it to a different directory.

To specify a different name for the Answer table or otherwise change it before or after you run the query, see Modifying and renaming the Answer table.

Live-query views

You can make a query produce a live-query view instead of an Answer table. See About live query views for more information.

 Related Topics


Modifying and renaming the Answer table

By default, Corel Paradox names the result of a query ANSWER.DB and places it in your private directory. The structure of the Answer table closely reflects the structure of the query example: the left-most field checked in the first image becomes the left-most field of the Answer table, and so on.

Modifying the Answer table before running a query

You can change the properties of the Answer table before you run the query.

To change the way Corel Paradox displays the Answer table

•	Click Query, Properties.

When the Properties dialog box opens, click the Answer tab, and follow the instructions in Help for the Answer page (Query properties dialog box).

You can use this dialog box to

•	give the Answer table a different name

•	save Answer to a directory other than your private directory

•	create the Answer table as a Corel Paradox or dBASE table

•	produce a live query view instead of an Answer table

For a complete description of available query properties, see About query properties.

Renaming the Answer table after running a query

The Answer table is a temporary table. Every time you run a query, Corel Paradox overwrites the Answer table with the new Answer table. To save an Answer table, you must rename it before you run another query.

To rename the Answer table

•	With the Answer table selected, click Format, Rename Table and type a new name in the To box of the Rename dialog box. You can type the full path if you want to save the table to a different folder (other than your private folder).

If you give Answer the same name as an existing table in the directory to which you save it, Corel Paradox displays a warning and asks you to confirm the action. If you save ANSWER.DB to a directory location that already contains an Answer table, Corel Paradox displays a warning and asks you to confirm the action.

When you give Answer a new name, Corel Paradox does not treat it as a temporary table, and does not delete it when you change working directories or exit the program.

Changing the Answer table structure and field names

Unless you change it, the structure of the Answer table closely reflects the structure of the query. For example: the left-most field checked in the first query image becomes the lef-tmost field of the Answer table, the next left-most field checked in the first query image becomes the second field of the Answer table, and so on through the checked fields of all the query images. You can change the order of fields in the query image or in the final table by dragging columns to the desired position or pressing CTRL+R. You can also click Query, Properties and rearrange the field order on the Structure page.

If the Answer table contains fields with duplicate field names from two or more tables, Corel Paradox names the first field by its exact field name and numbers the duplicates, calling them Name_1, Name_2, and so on.

Corel Paradox places new calculated fields at the end of the Answer-table and names them according to the calculation. You can rename Answer table fields, including calculated fields. For instructions, see Renaming Answer-table fields.

 Related Topics


Renaming Answer table fields
Renaming Answer-table fields

When you enable the check box beside a field in a query image, Corel Paradox displays that field in the Answer table with the same name it had in the original table. You can use the AS operator to change the field name in the Answer table.

To change a field name in the Answer table when using a selection condition

•	Type the selection condition followed by a comma ( , ) then type AS followed by a space followed by the new field name.

To change a field name in the Answer table when no selection condition is used

•	Type AS followed by a space followed by the new field name.

The AS operator changes field names only in the Answer table. It doesn't change field names in the table(s) you query.

When you use the CALC operator, Corel Paradox creates a new field in the Answer table that contains the results of a calculation. Corel Paradox automatically places the new calculated field at the end of the Answer table and gives it the name of the calculation. To specify a different name for a calculated field, follow the CALC expression with the AS operator and the new name. For an example, see Creating a new answer field with a constant value.

Example

The following example shows how to make the Qty field of the Stock table appear as Compasses on Hand in the Answer table.

 Related Topics


Sorting the Answer table

You can sort the Answer table before you run the query.

To sort the Answer table

1.	With the query open, and ready to run, click Query, Properties.

2.	In the Query Properties dialog box, click the Sort tab.

3.	Use the right arrow button to move the fields from the Answer Fields list to the Sort Order list. Add the fields in the order you want the Answer table sorted.

4.	To remove a field from the Sort Order list, select it and click the left arrow button.

5.	To change the order of the fields in the Sort Order list, select a field and use the up and down arrows to move the field up or down the list.

Corel Paradox will sort the Answer table according to the Sort Order list.

 Related Topics


Sorting Answer table values in descending order
Sorting Answer-table values in descending order

By default, Corel Paradox sorts records in the Answer table in ascending order based on the values in the fields you enable, from left to right. That is, it sorts on the left-most field, then the next field, and so on.

Here is how sort order applies to the different Corel Paradox field types:

Field type	Examples of sorted values
	from low	to high
Number	0	10
Alpha	A, a	Z, z
Date	1/1/97	12/31/97
Money	$1.99	$99.99
Memo	Not sorted
Graphic	Not applicable
Time	00:00:01	23:59:59
Logical	False	True
	F	T
	No	Yes
	0	1
Corel Paradox sorts numbers and other nonalphabetic characters according to the sort order you installed. Alphanumeric "10" sorts before "2" although it is numerically larger.

To specify that values be sorted in descending order

•	Right click the check box beside the appropriate field and choose CheckDescending [image].

 Note

•	In BLOB fields and in dBASE memo fields, Corel Paradox treats [image] and [image] as if they were [image]. You cannot use [image] in BLOB fields or dBASE memo fields.

 Related Topics


About live query views
About live-query views

When you create a Corel Paradox query that generates an Answer, the Answer table generated by the query does not maintain a relationship with the original table you queried. Edits you make to ANSWER.DB are not reflected in the original table. If you want changes you make to be reflected in the original table, you can create a live-query view.

When you create a live-query view, Corel Paradox generates an answer set that is a limited, direct view into the table you queried. Generating a live-query view is very similar to using the Filter Table command. The view is limited by the selection conditions you specify in the query. When you edit the live-query view, you are really editing the table you queried and using this limited direct view to see only the data you want from that table.

When Corel Paradox creates a live-query view, live-field [image] indicators appear next to each live field. Changes you make to data in a live field are also made to the source table.

Multi-table Query By Example (QBE) queries can't return live-query views. Structured Query Language (SQL) queries on up to three tables can return live-query views.

To create a live-query view, follow the instructions in Creating a live-query view.

 Tip

•	You will get better performance on single-table queries if you use a live-query view. You can set your query options to default to create live-query views and to use the CheckPlus [image]. See Modifying and renaming the Answer table.

 Note

•	Although you request a live-query view on the Answer page of the Query Properties dialog box, Corel Paradox might not actually produce a live-query view. Corel Paradox will not produce a live-query view if you did not use CheckPlus; Check and CheckDescending caused sorting instead. Corel Paradox will also not produce a live-query view if you performed an INSERT, DELETE, CHANGETO or CALC query.

•	If a query view can't be live, Corel Paradox still generates a query view, not an Answer table; however, all the fields are read-only. You'll still see updates other users make to the table, provided it is a Corel Paradox table and the Refresh Rate is not 0.

 Related Topics


Rules for live query views
Rules for live-query views

Not all queries can return live-query views. A live-query view must meet the following conditions.

•	You can create a live-query view only on single-table queries.

•	You must use the CheckPlus [image] operator. The live-query view cannot be sorted; therefore, Check, CheckDescending, and GroupBy checks are not allowed.

•	You cannot use the Sort Answer Table [image] button or the Sort settings in Query, Properties on a live-query view.

•	You cannot use calculated fields in a live-query view.

•	Multiline OR queries are not allowed.

•	The selection conditions you specify in the query must be capable of being expressed as a filter. This means the following query structures are not allowed:

references to one field in the selection condition of another field

references to aggregates in the selection condition

use of the @ wildcard operator

use of the .. wildcard operator before selection conditions. (Use of the .. wildcard operator after a selection condition is allowed, as in the example Canada.., and produces a case-insensitive answer set.)

For more information, see Filters and queries compared.

 Related Topics


Creating a live query view
Creating a live-query view

To create a live-query view

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the Query icon.

4.	In the Select File dialog box, choose the table you want to query.

5.	In the query image, right-click the check box beside each field you want to display in the live-query view and click CheckPlus [image].

6.	Click Query, Properties, click the Answer tab, then choose Live-query view.

7.	Type the appropriate operators or example elements next to the fields of the query image.

8.	Click Query, Run Query to run the query.

 Related Topics


Editing a live query view
Editing a live-query view

When Corel Paradox creates a live-query view, you'll see the words Query View and the name of the .QBE file that generated the live-query view (if the .QBE file has been saved) in the Title Bar of the live-query view.

To edit the live-query view

•	Work with the live-query view as if it were any other table you work with in Corel Paradox. You must press F9 to enter Edit mode to make changes. All changes to data in fields from the queried table immediately appear in the original table.

 Note

•	You can use CTRL+DELETE to delete a record from the live-query view; this command also deletes the record from the table you queried. Deletions from Corel Paradox tables cannot be undone.

 Related Topics


Saving a live query view
Saving a live-query view

You can save the live query the same way as you save a query that generates an Answer table.

To save a live query

•	Click File, Save or File, Save As and type a name for the view in the File Name box.

Each time you open and run the query, Corel Paradox generates a new live-query view of the table's data.

The live-query view is a temporary view of the table you queried. You can save this query view as a new table.

To save the table generated by the live query

•	Click File, Save to convert the live-query view to a standard Answer table and to place the Answer table in your private directory.

Edits you make after saving the live-query view are no longer reflected in the table you queried.

If you prefer, you can click File, Save As to save the live-query view as a table you name in a location you specify. This converts the live-query view to a standard, permanent table like any other. The new table no longer maintains a relationship with the table you queried.

 Related Topics


About query properties

After you choose the table(s) you want to query, and Corel Paradox displays the query image for the table(s), you can use the Query Properties command to specify how you want Corel Paradox to run your queries and display the results.

When you click Query, Properties, the Properties dialog box appears. The Properties dialog box contains the following pages:

Answer

The Answer page is where you specify whether the results appear as an Answer table or live-query view, whether the table type is Corel Paradox or dBASE, and the name and directory of the Answer table.

QBE

The QBE (Query By Example) page is where you specify where queries are to be run (locally, remotely, or either) and whether Corel Paradox creates auxiliary tables for queries that change data (INSERT, DELETE, and CHANGETO queries).

Sort

The Sort page is where you specify which Answer-table fields are to be included in a sort and in what order the sort is to be done.

Structure

The Structure page is where you specify the order of the fields in the Answer table.

Query properties are saved with the query.

Query defaults or preferences

You can set global defaults for some of these properties and for such preferences such as the Default QBE Check Type. These defaults are called preferences and are set with the Preferences command (Tools, Settings menu) on the Query Page of the Preferences dialog box. All preference types can be accessed through Setting system preferences.

 Note

•	Table Update Handling settings appear on the Query page of the Preferences dialog box. However, if you want to change these settings temporarily for a single work session, choose commands on the Query menu instead of choosing Query, Properties. For details, see Handling table updates.

 Related Topics


Handling table updates

Table Update Handling settings appear on the Query page of the Preferences dialog box. However, if you want to change these settings temporarily for a single work session, choose commands on the Query menu instead of clicking Query, Properties.

When using Corel Paradox on a network, multiple users can make changes concurrently to a shared table in a shared data directory. You can choose whether you want your Answer table to reflect changes made to the source table(s) of your query while the query is running.

To change the table update handling settings

•	Click Tools, Setting, Preferences and enable the settings you want on the Query page.

To change table update handling for the current work session

1.	Click Tools, Settings, Preferences.

2.	In the Preferences dialog box, click the Query tab.

3.	Do one of the following:

•	Enable the Choose Restart On Changes button to make Corel Paradox restart the query when it detects a change to the source table(s).

•	Enable the Lock Tables button to lock all tables in your query and to prevent any changes to the tables while Corel Paradox runs the query. Corel Paradox releases the locks when it finishes running the query. (If someone else is already using the table(s) you want to lock and query, Corel Paradox can't place your locks. You'll see a message informing you that a table is locked.)

•	Enable the Ignore Changes button to allow other users to make changes to the source table(s) while Corel Paradox runs your query and to prevent Corel Paradox from restarting the query if they make changes. (This is the default selection.)

 Related Topics


Setting Answer table properties
Setting Answer-table properties

The Answer-table properties let you specify the results of a query that can produce an Answer table.

To change Answer-table properties for the current query

1.	With a query open, click Query, Properties.

2.	In the Properties dialog box, click the Answer tab.

3.	Do one or more of the following:

•	Enable the Answer Table button to generate a temporary Answer table or enable the Live Query View button to generate a live-query view [image] which you can edit to update the original tables queried [image] instead of an Answer table.

•	Enable the appropriate button for Answer-table type: Corel Paradox or dBASE.

•	If you want, type a different name and/or directory for the Answer table so it won't be overwritten the next time you run a query.

Settings made with the Query Properties command are saved with the query.

Note

•	In order for the Properties dialog box to display the Answer tab, your query must have at least one field in the query image checked, otherwise the query does not generate an Answer table. Therefore, Corel Paradox will not allow you to set any properties for an Answer table.

 Related Topics


Setting auxiliary table properties
Setting auxiliary-table properties

The INSERT, DELETE, and CHANGETO queries generate more than an Answer table. For example, CHANGETO queries create a Changed table and INSERT queries create an Inserted table. It takes time to create these extra tables, and you may not want to create them.

The auxiliary table preferences and properties let you specify whether to create these tables for queries that change data.

To change the default auxiliary table options

1.	Click Tools, Setings, Preferences.

2.	Click the Query tab.

3.	Do one of the following:

•	Enable the Fast Queries button to stop Corel Paradox from generating auxiliary tables when you run queries that change data. When you generate only Answer tables, your queries will run more quickly.

•	Enable the Generate Auxiliary Tables button to produce auxiliary tables when you run queries that change data.

To change auxiliary-table options for the current query

1.	With the a query open, click Query, Properties.

2.	If it is not already displayed, click the QBE page.

3.	Do one of the following:

•	Enable the Fast Queries button to stop Corel Paradox from generating auxiliary tables when you run queries that change data. When you generate only Answer tables, your queries will run more quickly.

•	Enable the Generate Auxiliary Tables button to produce auxiliary tables when you run queries that change data.

Settings made with the Query Properties command are saved with the query.

 Related Topics


Setting remote query properties
Setting remote-query properties

When you create a query that uses data from a remote database server, you can choose whether you want Corel Paradox to process the query locally (on your hard drive) or remotely (on the server). Or, you can let Corel Paradox decide how the query can be run most efficiently.

Whether you create a query on local (Corel Paradox or dBASE) or remote (SQL) data, Corel Paradox can translate your QBE statement into valid SQL syntax. This is done automatically when you query remote data. You can view this SQL syntax.

To view SQL syntax

•	With the appropriate query open, click View, Show SQL.

Corel Paradox opens the SQL Editor and displays the translated SQL syntax.

If you prefer to write SQL syntax rather then to create QBE statements, you can use the SQL Editor to write SQL statements to be run against local (Corel Paradox or dBASE) or remote (SQL) tables. The only restriction is that QBE must be able to interpret the SQL syntax correctly.

To change the default remote-query settings

1.	Click Tools, Settings, Preferences.

2.	Click the QBE tab.

3.	Do one of the following:

•	Enable the Query May Be Local Or Remote button to make Corel Paradox attempt to run the query remotely (on the server). If this fails, Corel Paradox runs the query locally (on your hard drive).

•	Enable the Run Query Remotely button to make Corel Paradox request that the server run the query and send back only the answer data.

•	Enable the Run Query Locally button to make Corel Paradox run the query locally; Corel Paradox requests all data in queried tables from the server and runs the query on your desktop system.

To change remote-query settings for the current query

1.	With a query open, click Query, Properties.

2.	If it is not already displayed, click the QBE page.

3.	Do one of the following:

•	Enable the Query May Be Local Or Remote button to make Corel Paradox attempt to run the query remotely (on the server). If this fails, Corel Paradox runs the query locally (on your hard drive).

•	Enable the Run Query Remotely button to make Corel Paradox request that the server run the query and send back only the answer data.

•	Enable the Run Query Locally button to make Corel Paradox run the query locally; Corel Paradox requests all data in queried tables from the server and runs the query on your desktop system.

These settings are the same as those listed for the default remote-query settings.

Settings made when you click Query, Properties are saved with the query.

Note

Your query must have at least one field checked in the query image in order to be able to set

 Related Topics


Setting query sort properties
Setting query-sort properties

You can use the Query Properties command to determine how an Answer table will sort before you run a query. For details see Sorting the Answer table.

Because Sort is a query property, sort information is saved with the query and applies only to that query.

 Related Topics


Setting query structure properties
Setting query-structure properties

You can use the Query Properties command to determine the field-order of an Answer table before you run a query.

Because Structure is a query property, field order information is saved with the query.

To change field order for the Answer table of the current query

1.	With a query open, click Query, Properties.

2.	Click the Structure tab.

3.	Do one or more of the following:

•	To move a field up the list, click the field to select it and click the up arrow button until the field is in the appropriate place.

•	To move a field down the list, click the field to select it and click the down arrow button until the field is in the appropriate place.

Note

•	In order for the Properties dialog box to display the Structure page, you must have at least one field checked in the query image, otherwise, the Properties dialog box only displays the QBE page.

Tip

•	To restore the Answer table to its original structure click the Undo button.

 Related Topics


Saving query settings

Settings made with the Query Properties command are saved whenever you save the query by clicking File, Save or File, Save As.

To set properties that apply to an individual query

1.	With the appropriate query open, click Query, Properties.

2.	In the Query Properties dialog box, enable or disable options as appropriate.

If you want to save default settings (which apply to all queries you run), you can use the Query Preferences command.

To access the default query properties

1.	Click Tools, Settings, Preferences.

2.	Click the Query Page.

3.	Enable and disable query properties as appropriate.

Note

•	In order for the Properties dialog box to display the the Answer, Sort and Structure pages, you must have at least one field checked in the query image, otherwise, the Properties dialog box only displays the QBE page.

 Related Topics


 About advanced queries

Corel Paradox can perform a variety of advanced queries on groups and sets of records. You can

•	work with groups of records using summary operators and other analysis tools

•	define and compare sets of records to show records that are and aren't part of a set

•	create and use inclusive links to retrieve all the records in a table, whether or not they match a selection condition

Note

•	All the examples in this section of Help come from the sample tables included with Corel Paradox.

 Related Topics


About querying groups of records

You can use Corel Paradox to answer questions about groups of records. You can

•	select records based on characteristics of a group, such as items that appear in two or more orders

•	calculate statistics on groups of records, such as the average invoice total of orders placed in each province

•	compare characteristics of a group with other records, such as which of the customers have placed more orders than any customer in Hawaii

These questions all consider more than one record at a time. No individual record can answer them [image] you have to look at the group of records.

You can use the summary operators to answer these and other questions about groups of records.

 Related Topics


About summary operators

A summary operator performs an operation on a group of records that you define by checking a field or fields. You specify which records to group by using selection conditions. Corel Paradox has five summary operators:

AVERAGE	Averages the values in a group

COUNT	Counts the number of values in a group

MAX	Finds the maximum value in a group

MIN	Finds the minimum value in a group

SUM	Totals the values in a group

As with Corel Paradox's other reserved word operators, summary operators and summary-operator modifiers are case-insensitive. You can type them in uppercase or lowercase.

Fields

You cannot use summary operators in Corel Paradox BLOB fields or dBASE memo fields. In addition, AVERAGE and SUM cannot be used in alpha, date, time, or timestamp fields. For more information about field types that allow summary operators, see the following:

 Corel Paradox field types that allow summary operators

 dBASE field types that allow summary operators

Summary modifiers

Summary modifiers let you specify whether to use all values in a group or only unique values. For details, see Using summary-operator modifiers

Defining groups

You can use summary operators and check marks to define groups of data. For more information, see Selecting records based on group definitions

 Related Topics


Paradox field types allowing summary operators
Corel Paradox field types that allow summary operators

Operator	A	N	$	S	I	#	D	T	@	M	F	G	O	L	+	B	Y
AVERAGE		Y	Y	Y	Y	Y	Y	Y	Y						Y
COUNT	Y	Y	Y	Y	Y	Y	Y	Y	Y					Y	Y		Y
MAX	Y	Y	Y	Y	Y	Y	Y	Y	Y					Y	Y		Y
MIN	Y	Y	Y	Y	Y	Y	Y	Y	Y					Y	Y		Y
SUM		Y	Y	Y	Y	Y									Y
ALL*	Y	Y	Y	Y	Y	Y	Y	Y	Y					Y	Y		Y
UNIQUE*	Y	Y	Y	Y	Y	Y	Y	Y	Y					Y	Y		Y
* By default, SUM and AVERAGE operate on all values in a field; whereas COUNT, MAX, and MIN operate only on unique values. You can override these default groupings by adding the word ALL or UNIQUE to a CALC statement.

 Related Topics


dBASE field types allowing summary operators
dBASE field types that allow summary operators

Operator	C	F	N	D	L	M	O	B
AVERAGE		Y	Y
COUNT	Y	Y	Y	Y	Y
MAX	Y	Y	Y	Y	Y
MIN	Y	Y	Y	Y	Y
SUM		Y	Y
ALL*	Y	Y	Y	Y	Y
UNIQUE*	Y	Y	Y	Y	Y
* By default, SUM and AVERAGE operate on all values in a field; whereas COUNT, MAX, and MIN operate only on unique values. You can override these default groupings by adding the word ALL or UNIQUE to a CALC statement.

 Related Topics


Using summary operator modifiers
Using summary-operator modifiers

All of the summary operators except COUNT perform their operation by default on all of the values in a group. COUNT counts only unique values in a group by default. To change the default behavior, apply one of the summary-operator modifiers:

ALL	Considers all values in a group, including duplicates. You must use ALL with COUNT, in the format COUNT ALL, to make COUNT count all values in a group, including duplicates.

UNIQUE	Considers only unique values in a group. You must use UNIQUE with all summary operators except COUNT to make them perform their operation on unique values in a group instead of on all values.

 Related Topics


Selecting records based on group definitions

You can use summary operators in combination with the type of check mark you place in the check box beside a field to define groups of data. Check marks (Check, CheckPlus, and CheckDescending) that appear on the same line as a summary operator serve two functions:

•	They divide the records into groups based on the values in the enabled field.

•	They include the enabled field in the Answer table (their usual function).

The following examples show how to use summary operators and check marks to define groups of data:

 Example of using COUNT: selecting records based on a group count

 Example of using SUM: selecting records based on a group sum

 Example of using AVERAGE: selecting records based on a group average

 Example of using MAX and MIN: selecting records based on a group maximum or minimum

 Related Topics


Example of using COUNT: selecting records based on a group count

Use the COUNT summary operator to count unique values in each group.

For example, suppose you want to know which countries have three or more dive-shop customers.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the CUSTOMER.DB table.

5.	In the Query window, enable the check box beside the Country field to group the records by country and include the Country field in the Answer table.

6.	Type COUNT >=3 in the Customer No field to have Corel Paradox count all the different customer numbers for each group (country) and select groups for which the count is three or more.

7.	Click Query, Run Query to run the query.

Because the Customer No field is the table's keyed field, you know that all customer numbers are unique. The COUNT operator counts unique values by default. If you want to count all values, including duplicates, use COUNT ALL. See Example of counting unique values and Example of counting all values.

 Related Topics


Example of using SUM: selecting records based on a group sum

Use the SUM summary operator to sum values within each group in a query.

For example, suppose you want to know which customers have placed orders for which they owe $5,000 or more.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB and ORDERS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Customer No. field of each query image.

7.	Enable the check boxes beside the Customer No and Name fields of the CUSTOMER.DB query image.

8.	Type SUM >5000 in the Balance Due field of the ORDERS.DB query image.

The expression SUM >5000 sums the balance due for each group (customer) and selects those with balances greater than $5,000.

9.	Click Query, Run Query to run the query.

Note

•	If you enable the check box in the Customer No field, Corel Paradox groups the records by customer and includes this field in the Answer table. When you also enable the check box in the Name field, Corel Paradox also groups records by customer name and includes this field in the Answer table. Corel Paradox does not form a different group because there is a one-to-one correspondence between Customer No and Name; both form the same group. See Example of grouping by more than one field.

 Related Topics


Example of using AVERAGE: selecting records based on a group average

Use the AVERAGE summary operator to average the values in each group in a query.

For example, suppose you want to know the states/provinces in which the average invoice total is less than $50,000.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB and ORDERS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Customer No. field of each query image.

7.	Enable the check box in the State/Prov field of the CUSTOMER.DB query image to group the table's records by State/Prov values and include this field in the Answer table.

8.	Type AVERAGE <50000 in the Total Invoice field of the ORDERS.DB query image to average the invoices for each group (state/province) and select those groups with less than $50,000.

9.	Click Query, Run Query to run the query.

 Related Topics


Example of using MAX and MIN: selecting records based on a group maximum or minimum

Use the MAX summary operator to find the maximum value in a group. Use the MIN summary operator to find the minimum value in a group. The following example shows a query using the MAX summary operator. You could do the same query with the MIN summary operator to retrieve the minimum value from the same group.

Suppose you want to know the countries in which the highest total invoice is $200,000 or less.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB and ORDERS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Customer No. field of each query image.

7.	Enable the check box beside the Country field of the CUSTOMER.DB query image to group the table's records by Country values and include this field in the Answer table.

8.	Type MAX <=200000 in the Total Invoice field of the ORDERS.DB query image to find the total invoice for each group (country) and select those which total $200,000 or less.

9.	Click Query, Run Query to run the query.

 Related Topics


About calculations on groups

In a query, in addition to calculating new fields for each record, you can also calculate statistics (like total and average) for groups of records. For example, you can ask:

•	How many of each stock item have been ordered?

•	What is the total amount of sales for each customer?

•	How many customers live in each country or state/province?

•	What are the highest and lowest priced stock items?

Use summary operators with the CALC operator to count, summarize, average, and find the minimum or maximum values in the fields of your tables. To do this, type CALC and the appropriate summary operator in the field you want calculated.

Like all CALC queries, those using groups also create a new field in the Answer table. Corel Paradox automatically names the new Answer-table field according to the group calculation. You can use the AS operator to rename the new field. For more information, see Renaming Answer-table fields.

For examples of calculations on groups, see:

 Example of a basic calculation on a group

 Example of grouping by more than one field

 Example of performing a group calculation on the entire table

 Example of displaying summary values without grouping by these values

 Example of counting unique values

 Example of counting all values

 Related Topics


Example of a basic calculation on a group

Suppose you want to know how many of each class of items you have in stock.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the STOCK.DB table.

5.	Enable the check box beside the Equipment Class field to group the table's records by equipment classification and include this field in the Answer table.

6.	Type CALC SUM in the Qty field to calculate the sum of the values in this field.

7.	Click Query, Run Query to run the query.

 Related Topics


Example of grouping by more than one field

You can group by more than one field in a query. To do this, place check marks in all the fields you want to use to group the table's records.

Suppose you are interested in a relationship between a payment method and a preferred shipment method. You can group by both the Payment Method and Ship VIA fields of the Orders table:

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the ORDERS.DB table.

5.	Enable the check box beside the Payment Method and Ship VIA fields to group the table's records by the values in both fields and include these fields in the Answer table.

6.	Type CALC SUM as Group Total in the Total Invoice field to calculate the sum of the values in this field for each group and rename the new calculated field of the Answer table Group Total instead of Sum of Total Invoice. See Renaming Answer table fields for instructions.

7.	Click Query, Run Query to run the query.

In this example, the group of customer numbers and the group of names turned out to be the same group.

SUM operator

The Example of using SUM: selecting records based on a group sum demonstrates a query grouping by more than one field. However, in that case, a one-to-one correlation exists between the two fields (Customer No and Name) by which the query is grouped. Therefore, the two separate groups (the group of customer numbers and the group of names) are actually the same group.

 Related Topics


Example of performing a group calculation on the entire table

If you do not check any fields in a query, Corel Paradox performs the summary operation or summary calculation on all the records in the table [image] the whole table is the group.

Suppose you want to know the total number of items ordered, regardless of who ordered them or what they are or cost.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the LINEITEM.DB table.

5.	Type CALC SUM in the Qty field to calculate the total number of items ordered.

6.	Click Query, Run Query to run the query.

Because no field is enabled, the group is the whole Lineitem table; the only field in the Answer table is the Sum of the Qty field (the result of the CALC SUM operation).

 Related Topics


Example of displaying summary values without grouping by them
Example of displaying summary values without grouping by these values

In a query, to display values from a field for which you specify a summary operation without grouping by that field, use the CALC operator in that field with the summary operator you used to specify the operation. The CALC operator causes Corel Paradox to create a new calculated field in the Answer table, and this new field will contain the values that meet the summary condition.

Suppose you want to know which items were sold for the first time after January 1, 1989 and you want to display the dates on which these items were ordered.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the LINEITEM.DB and ORDERS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button and click the Order No. field of each query image.

7.	Enable the check box beside the Stock No field of the Lineitem query image to group the table's records by Stock No values and include this field in the Answer table.

8.	Type MIN >1/1/92, CALC MIN in the Sale Date field of the ORDERS.DB query image.

9.	Click Query, Run Query to run the query.

Note

•	Enabling the check box beside the Sale Date and Stock No fields causes Corel Paradox to group records by both fields. Enabling the check box beside the Stock No field and using CALC MIN causes Corel Paradox to create a new calculated field, Min Of Sale Date, which contains sale dates that meets the summary condition MIN >1/1/92, while preserving the correct grouping.

 Related Topics


Example of counting unique values

The CALC COUNT query operator counts only unique values. You cannot use COUNT in Corel Paradox BLOB fields and dBASE memo fields. In these field types, CALC COUNT counts all values, even if you specify the UNIQUE operator.

Suppose you want to know how many customers have placed orders with your firm.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the ORDERS.DB table.

5.	Type CALC COUNT in the Customer No field.

6.	Click Query, Run Query to run the query.

Because no check boxes are enabled, the whole Orders table is the group; the only field in the Answer table is the Count Of Customer No field (the result of the CALC COUNT operation).

 Related Topics


Example of counting all values

To include duplicates in a query COUNT operation, type ALL after the CALC COUNT operator. Corel Paradox then counts all values, regardless of duplication.

One way of finding out how many orders have been placed is to use CALC COUNT ALL in the Customer No field of the Orders table. Instead of learning how many unique customers have placed orders, you learn the total number of orders placed.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, double-click the ORDERS.DB table.

5.	Type CALC COUNT ALL in the Customer No field.

6.	Click Query, Run Query to run the query.

Because no check boxes are enabled, the whole Orders table is the group; the only field in the Answer table is the Count Of Customer No field (the result of the CALC COUNT ALL operation).

 Related Topics


Example of using ONLY: selecting records containing only one value

The ONLY operator works the same way as summary operators in that it selects groups that contain records with the same value and no others. However, ONLY is not a query summary operator because you cannot use it to perform calculations.

You can use ONLY in all field types except Corel Paradox BLOB fields and dBASE memo fields.

For example, suppose you want to find customers who have ordered only small instruments.

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the ORDERS.DB, LINEITEM.DB, and STOCK.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Order No. fields of the ORDERS.DB and LINEITEM.DB query images.

7.	Click the Join Tables button and click the Stock No. fields of the LINEITEM.DB and STOCK.DB query images.

8.	Enable the Customer No field of the ORDERS.DB query image to group the table's records by customer number and include this field in the Answer table.

9.	Type ONLY Small Instruments in the Equipment Class field of the STOCK.DB query image to select all customers who have ordered small instruments and nothing else.

10. Click Query, Run Query, to run the query.

 Related Topics


About querying sets of records (SET queries)

In general, a set is a collection of objects. In Corel Paradox, a set is a specific group of records that you intend to query.

You can use a SET query to answer a question that might otherwise take two or more queries. Use a SET query when you need to ask questions about the characteristics of a group rather than about individual records.

Components of SET queries

Every SET query consists of the following components:

•	one or more lines that define a set

•	one or more lines, all of which define other records that meet certain comparisons to the set

•	optionally, one or more lines that display related information

SET queries are particularly useful for revealing trends and patterns in data.

Guidelines for querying sets

To query a set, follow these general steps. For examples based on the Stock and Orders tables, see the following:

Step 1: Define the set

Step 2: Define groups to compare to the set

Step 3: Select special groups with set comparisons. Use the following set-comparison operators to compare the set to other records or groups of records:

•	ONLY

•	NO

•	EVERY

•	EXACTLY

For more information about these steps, see Defining a set and Performing set comparisons.

Using the GroupBy check

Sometimes you might want to group records in a query by the values in a specified field without including those values in the Answer table. To do so, choose the GroupBy check [image] from the menu of checks for the field. You can only use the GroupBy checkwith SET queries. You cannot use it in BLOB fields. For an example of a query that uses the GroupBy check, see Example of the ONLY set-comparison operator.

 Related Topics


SET queries, Step 1: Define the set

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.


SET queries, Step 2: Define groups to compare to the set

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.

Each group in solid-line borders represents an order. The order at the upper right has four line items; none of them is a small instrument. The order at the bottom has four line items; two of them are small instruments.


SET queries, Step 3: Select special groups, ONLY

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.

Each group in solid-line borders represents an order. This order's line items are only for small instruments, but they don't include all small instruments.


SET queries, Step 3: Select special groups, NO

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.

Each group in solid-line borders represents an order. This order has no line items for small instruments.


SET queries, Step 3: Select special groups, EVERY

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.

Each group in solid-line borders represents an order. This order's line items include every small-instrument plus other stock items.


SET queries, Step 3: Select special groups, EXACTLY

Each box represents a stock item.

The dotted line surrounds all the stock items that are small instruments and forms a set of all small-instrument stock items.

Each group in solid-line borders represents an order. This order is for exactly the items in the small-instrument set.


Defining a set

Defining a set of records in a query is very much like selecting the records to be included in the Answer table. A set definition is a query within a query.

To define a set of records in a query

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, select the table(s) you want to query.

5.	In the query image(s), enter selection conditions that define the records to be included in the set. If the records are in more than one table, use example elements to link the tables.

6.	Right-click the left-most field of the query image(s) and click Set.

7.	Instead of enabling the check boxes beside fields to define them, type example elements. You must use example elements because lines that are a part of the set definition cannot have their check boxes enabled or contain summary operators.

When you compare and retrieve records, you will use these same example elements to link the comparison lines to the set definition.

For an example, see Example of defining a set.

 Related Topics


Example of defining a set

This example uses the sample STOCK.DB table. The single line of this query defines the set of stock items that are Small Instruments, but it is not a complete query. You must still compare the set to another factor. (Form an example of a complete SET query, see Example of performing a set comparison.)

 Related Topics


Performing set comparisons

After you have defined a set in a query (see Defining a set), you can compare the set to other records. One way of doing this is to compare groups of records to the set.

You can make set comparisons of two different kinds:

•	You can compare other groups of records to the set.

•	You can use the summary operators to compute the SUM, COUNT, AVERAGE, MIN, and MAX of a set's values and then compare the results to values in other records.

Corel Paradox provides four special set-comparison operators to define different sets of records.

Operator	Field types	Description
ONLY	All*	Displays only records that match members of the set
NO	All*	Displays records that match no members of the set
EVERY	All*	Displays records that match all members of the set
EXACTLY	All*	Displays records that match all members of the set and no others
* You can use set-comparison operators in all field types except Corel Paradox BLOB fields and dBASE memo fields.

For example, the records of the sample ORDERS.DB table make up the set of all orders placed by customers. From this table, you can formulate subsets of orders for different classes of equipment, such as tool or vehicles. You can use the four set-comparison operators to define sets of orders that

•	are for only small instruments

•	have no items that are more than $50 in price

•	are for every vehicle

•	are for exactly all vehicles and no other equipment-class item

To form groups of records to compare to the defined set, you use check marks. The method is the same as for summary operators.

For an example, see Example of performing a set comparison.

 Related Topics


Example of performing a set comparison

The Stock query image of this query (created in Example of defining a set) defines the set of stock items that are Small Instruments, but it is not a complete query. To complete the query, add the Lineitem table and enable the Order No check box to display the group of order numbers that contains records that meet the conditions of the set. Now, type the set comparison-operator ONLY, followed by the example element item, in the Stock No field of Lineitem. The query looks like this:

This query

•	defines the set of stock items that are of the equipment class Small Instruments

•	groups the records in the Lineitem table by order number

•	displays the Order No field of the Lineitem table in the Answer table

•	compares the group of line items of each order number to the set of stock items that are small instruments, and selects those orders that contain only line items that are only small-instrument stock items

The Answer table shows those order numbers that contain line items that are only of the equipment class Small Instruments.

You can use the NO, EVERY, and EXACTLY set-comparison operators the same way you use ONLY.

 Related Topics


Example of the ONLY set comparison operator
Example of the ONLY set-comparison operator

When you use the ONLY set-comparison operator in a query, you ask Corel Paradox to display only the members of the set you specify.

The following example demonstrates another SET query that is almost the same as the SET query in Example of performing a set comparison, except that it includes the Orders table. Both queries produce the same Answer table. The difference between the two queries is where you define the group of order numbers.

Orders is a parent table to Lineitem and the two tables are linked by their Order No fields; therefore, Lineitem shouldn't have any order numbers that don't exist in Orders. If records with order numbers that don't exist in Orders were present in Lineitem, those records would be orphans [image] you'd have line items for nonexistent orders. If those orphan records were in Lineitem, their order numbers would appear in the query in Example of performing a set comparison, but not in the query of the following example.

Suppose you want to query the sample tables to see orders placed for the Small Instruments equipment class and no other class of equipment. To create this query, you must select the tables, join the query images and create the Set comparison.

To select the tables and join the query images

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the LINEITEM.DB, ORDERS.DB, and STOCK.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Order No fields of the LINEITEM.DB and ORDERS.DB query images.

7.	Click the Join Tables button and click the Stock No fields of the LINEITEM.DB and STOCK.DB query images.

To create the Set comparison

1.	Click and then right-click the left-most column of the STOCK.DB query image and choose Set from the list of query operations.

2.	In the Equipment Class field of the STOCK.DB query image, type Small Instruments to define the set of stock items that are small instruments.

3.	Enable the Order No. check box of the ORDERS.DB query image to group by the values of this field and display the field in the Answer table.

4.	Right-click the Order No field of the LINEITEM.DB query image and click the GroupBy check mark from the menu to group by the values of this field but not display this field in the Answer table.

5.	Type ONLY before the example element (join2) in the Stock No field of the LINEITEM.DB query image to have Corel Paradox only select orders placed for Small Instrument stock numbers.

6.	Click Query, Run Query to run the query.

Note

•	If you were to run this query without the ONLY set operator and without SET in the left-most column of STOCK.DB, you would get orders placed for Small Instruments in combination with any other equipment-class items.)

 Related Topics


Example of the NO set comparison operator
Example of the NO set-comparison operator

When you use the NO set-comparison operator in a query, you ask Corel Paradox to display the groups in which no records match any record in the set you specify.

For example, suppose you want to find which orders are for no items over $50 in price. The NO SET query asks to see all records outside the set you specify.

1.	Duplicate the query shown in Example of the ONLY set-comparison operator.

2.	Remove the Small Instruments selection condition in the Equipment Class field of the STOCK.DB query image.

3.	In the List Price field of the STOCK.DB query image, type >50 to define the set of stock items over $50 in price.

4.	Replace the ONLY in front of the example element in the Stock No field of the LINEITEM.DB query image with NO to retrieve orders placed for items not greater than $50.

5.	Click Query, Run Query to run the query.

 Related Topics


Example of the EVERY set comparison operator
Example of the EVERY set-comparison operator

When you use the EVERY set-comparison operator in a query, you create a set and ask to see groups that contain records that match every item in the set.

For example, suppose you want to see all orders placed for every item in the Vehicle Equipment class.

1.	Duplicate the query shown in Example of the NO set-comparison operator.

2.	Remove the >50 selection condition in the List Price field of the STOCK.DB query image.

3.	In the Equipment Class field of the STOCK.DB query image, type Vehicle to define the set of stock items that are vehicles.

4.	Replace the NO in front of the example element in the Stock No field of the LINEITEM.DB query image with EVERY to have Corel Paradox select orders placed for all Vehicles.

5.	Click Query, Run Query to run the query.

 Related Topics


Example of the EXACTLY set comparison operator
Example of the EXACTLY set-comparison operator

When you use the EXACTLY set-comparison operator in a query, you create a set and ask to see groups that contain records that match every item of the set and only items of the set.

For example, suppose the Sight Diver dive shop calls you and wants to change an order they just placed, order number 1363. This order is for one of the vehicles and an air regulator. Instead of the air regulator, the Sight Diver shop wants the other vehicle. You change this order in the Lineitem table. After you do, you decide to query for other orders that might have been placed for every vehicle and only vehicles:

First, edit the Lineitem table to change the record for the air regulator, Stock No 1390, in order number 1363 to the following:

Field	Old value	New value
Stock No	1390	912
Selling Price	170.00	1680.00
Qty	8	1
Total	1360.00	1680.00
Next, query for other orders that might have been placed for every vehicle and only vehicles. In the Query window that contains the linked query images of Example of the EVERY set comparison operator:

1.	Replace the EVERY in front of the example element in the Stock No field of the LINEITEM.DB query image with EXACTLY to have Corel Paradox select orders placed for all stock items that are only vehicles.

2.	Click Query, Run Query to run the query.

Suppose that after you finished running the query, the Sight Diver dive shop called you back with another change of mind. They want eight air regulators after all and not the other vehicle.

•	Edit the Lineitem table again to change the record for the 912 vehicle of order number 1363 back to the original 1390 air regulator values; use the Old value column of the table in this example.

This returns the sample data to their original state.

 Related Topics


Example of a SET query involving more than one set
Example of a SET query that involves more than one set

SET queries can retrieve records based on comparisons that involve more than one set. The comparison in the following example involves two sets. To create the example, you need to select and join the appropriate tables and then create the Set query.

To select and join the appropriate tables

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB, ORDERS.DB, LINEITEM.DB, and STOCK.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Customer No fields of the CUSTOMER.DB and ORDERS.DB query images.

7.	Click the Join Tables button and click the Order No fields of the ORDERS.DB and LINEITEM.DB query images.

8.	Click the Join Tables button and click the Stock No fields of the LINEITEM.DB and STOCK.DB query images.

To define the Set query

1.	Click and then right-click the left-most column of the STOCK.DB query image and choose Set from the menu of query operators.

2.	Type Small Instruments in the Equipment Class field of the STOCK.DB query image.

3.	To retrieve the records from Lineitem that meet the Stock Item set conditions and only those set conditions, type ONLY in front of the example element in the Stock No field of LINEITEM.DB. Next, right-click the Order No check box and click the GroupBy check mark in the Order No field of LINEITEM.DB.

4.	Define the line items that meet the "only Small Instruments" set as a set itself by clicking and then right-clicking the left-most column of the LINEITEM.DB query image and clicking Set from the menu of query operators.

5.	Retrieve the records from Orders that meet the Line Item set conditions and only those set conditions by typing ONLY in front of the example element in the Order No field of ORDERS.DB. Then, right-click the Customer No check box of ORDERS.DB and click the GroupBy check mark.

6.	Retrieve the customers from CUSTOMER.DB who have placed the orders that meet the set conditions and only those set conditions by enabling the check box beside the Name field of CUSTOMER.DB.

7.	Click Query, Run Query to run the query.

 Related Topics


Example of summary operators in a SET query

You can compare groups of records to a defined set.

You can also compare groups of records to summary values derived from a set. To do this, you define the set as usual. In the line of the query that selects the records to compare to the set; however, you use a summary operator instead of a set-comparison operator. You can place the summary operator in an arithmetic expression.

For example, suppose you want to know which dive shops had total invoice averages that were greater than the total invoice average for a particular dive shop, specifically the Adventure Undersea dive shop. You need to select and link the tables, and then define the query.

To select and link the appropriate tables

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

3.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB and ORDERS.DB tables.

4.	Click the Open button.

5.	Click the Join Tables button [image] and click the Customer No fields of the CUSTOMER.DB and ORDERS.DB query images.

To define the query

1.	Click and then right-click the left-most field of both query images and click Set from the menu of query operators.

2.	In the CUSTOMER.DB query image, type Adventure Undersea in the Name field to define the set of dive shops that consists of just Adventure Undersea.

3.	In the CUSTOMER.DB query image, click the Customer No field and press the down arrow to add a second line to the field. In the second line of the Customer No field, press F5 and type customer as an example element that represents each customer-number value.

4.	In the second line of the CUSTOMER.DB query image, enable the check box beside the Name field.

5.	In the Total Invoice field of the ORDERS.DB query image, press F5 and type TOTAL as an example element that represents the set of the single-invoice total for the Adventure Undersea dive shop.

6.	In the ORDERS.DB query image, click the Customer No field and press the down arrow to add a second line to the field. In the second line of the Customer No field, press F5 and type customer as an example element representing each customer number value.

7.	In the second line of the Total Invoice field in the ORDERS.DB query image, type AVERAGE > AVERAGE and then press F5 and type TOTAL to select only those dive shops whose total-invoice averages are greater than the total-invoice average for Adventure Undersea.

8.	Click Query, Run Query to run the query.

 Related Topics


About inclusive links (! operator)

Queries that use example elements to link tables together usually retrieve all the records in one table that match records in another table. This type of query represents an exclusive link and is sometimes called an inner join.

To produce an Answer table that includes those records that do not match records in the table to which they are linked, use the Corel Paradox inclusion operator (!). This type of query represents an inclusive link and is sometimes called an outer join.

Add the ! operator to an example element in a query to retrieve all of the records in that table, whether or not they match records in another table. You can also add selection conditions to define the set of master records included in the answer. You can

•	use multiple inclusion (!) operators to retrieve all the records from more than one table

•	use ! in a query that contains an arithmetic expression

•	use both inclusive and exclusive links in the same query

 Related Topics


Linking to all records in a table

Sometimes you want all records from one table in a query to appear in the Answer table even if they are not matched in the joined table. This is called an inclusive link and it uses ! (the inclusion operator).

When you use the inclusion operator in one of two tables, that table is the master table. The other table is the lookup table.

Corel Paradox first retrieves all records from the master table. It then looks for and retrieves any matching records in the lookup table. The resulting Answer table contains all records from the master table but only matched records from the lookup table.

You can also use the inclusion operator on both sides of the link. For example, in a database that tracks student and course information, you might want to know which students did not sign up for any courses and which courses have no students.

 Note

•	The choice of which table to put the inclusion operator in is important. That table is the master table and is always processed first. Therefore, two queries that are identical, except for the placement of the inclusion operator, can produce significantly different results.

 Related Topics


Rules for linking tables

You cannot use both an inclusive and an exclusive link in two linked lines.

For any two linked lines in a query, you can use either an inclusive link (!) or an exclusive link to associate them, but you cannot use both. This is because an inclusive link includes all the records from the master table; whereas an exclusive link includes only records whose values in the linked fields match each other. If you use both kinds, Corel Paradox has no way to decide which link to process first. The resulting Answer table would be different depending on the sequence.

You will not violate this rule if you remember that you can use ! with any given example element only once per line and twice per query. In other words, you can use only one type of link to associate any two lines in a query.

You can use an inclusive and an exclusive link in the same query.

You can use both exclusive and inclusive links in the same query as long as they do not both involve the same pair of lines. When you have both types of link in one query, they are processed in order from least to most inclusive:

1.	Exclusive links, which do not retrieve records that are not matched by records in another table, are processed first.

2.	Asymmetrical inclusive links (with both master and lookup tables), which retrieve all of the records from the master table but only the matched records from the lookup table(s), are processed next.

3.	Symmetrical inclusive links (with only master tables), which include all records from both tables, are processed last.

By processing exclusive links before inclusive links, Corel Paradox guarantees consistent results to its queries. If you want Corel Paradox to process the links in some other order, you must break your question into separate queries.

 Related Topics


Selection conditions with inclusive links

You can specify selection conditions for inclusive links just as you can in other queries. This lets you fine-tune either the set of master records or the Lookup table records to be matched with them.

If you set selection conditions for the master table, the resulting Answer table contains only those records that match the specified selection condition. But the Answer table still contains all of those matching records, whether or not they are matched in the lookup table.

 Related Topics


Example of linking to all records in a table

Suppose you want to find out if the Customer table contains customers who have never placed an order. If you link Customer and Orders by placing an example element in both Customer No fields, then check the fields you want to see in the Answer table, you will see only those customer records that match one or more records in Orders.

If, however, you add the inclusion (!) operator after the example element in the Customer No field of Customer, you will see all customer records, including those of customers who have never placed an order. To create this query, you will need to select the appropriate tables, add a new record to the Customer table, and then create the query.

To select the appropriate tables

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the CUSTOMER.DB and ORDERS.DB tables.

5.	Click the Open button.

To add a new record to the Customer table

1.	Click File, Open, Table.

2.	From the Select File dialog box, double-click the CUSTOMER.DB table.

3.	Click Record, Go To, Last to move to the last record in the table.

4.	Press F9 to switch to edit mode.

5.	Press the down arrow to add a blank record to the table.

6.	Type the following information into the appropriate fields of the table:

Field Name	Data

Customer No	9999

Name	The Human Gill Dive Shop

Street	1225 E. River St.

City	Savannah

State/Prov	GA

Zip/Postal Code	30541

Country	U.S.A.

Phone	404-555-1451

First Contact	5/31/92

7.	Press F9 to end Edit mode.

8.	Click File, Close to close the table.

To create the query

1.	Click the Join Tables [image] button and click the Customer No fields of both the CUSTOMER.DB and ORDERS.DB query images.

2.	Type ! after the example element (join1) in the Customer No field of the CUSTOMER.DB query image to include all customers from the Customer table in the Answer table, even if they don't have a matching record in the Orders table.

3.	Enable the check box beside the Customer No and Name fields of the CUSTOMER.DB query image.

4.	Enable the check box beside the Order No field of the ORDERS.DB query image.

5.	Click Query, Run Query to run the query.

If you scroll to the end of the Answer table, you will notice that customers without an Order No entry appear there.

 Note

•	For a more direct way to accomplish this same task, see Example of retrieving records from one table that are not in another table.

 Related Topics


Example of using the Inclusion operator in a query that performs a calculation

You can use inclusion operators in a query that performs a calculation.

For example, suppose you're concerned about orders you can't fill with your current inventory. More specifically, you want a list of all orders and to highlight orders for quantities that exceed one quarter of the quantities in stock. To do this you need to select and join the appropriate tables and create the query.

To select and join the appropriate tables

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the STOCK.DB, LINEITEM.DB, and ORDERS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Order No fields of the ORDERS.DB and LINEITEM.DB query images.

7.	Click the Join Tables button to place example elements in the Stock No fields of the LINEITEM.DB and STOCK.DB query images.

To create the query

1.	Type ! after the example element in the Order No field of the ORDERS.DB query image to see all order numbers.

2.	Enable the check box beside the Order No field in the ORDERS.DB query image.

3.	Enable the check boxes beside the Stock No and Qty fields of the LINEITEM.DB query image.

4.	In the Qty field of the LINEITEM.DB query image, press F5 and type qty as the example element that represents all the values, in turn, of the Lineitem table's Qty field.

5.	In the Qty field of the LINEITEM.DB query image, type , as Order Qty after the qty example element (from step 4).

6.	Enable the check box beside the Qty field of the STOCK.DB query image.

7.	In the Qty field of the STOCK.DB query image, type < (, then press F5 and type qty and a space and type * 4), as Stock Qty.

8.	Click Query, Run Query to run the query.

The ! operator in Orders ensures that the Answer table contains all orders. The qty example element is used in the expression qty * 4 to multiply each stock item quantity value in the Qty field of the Lineitem table (which represents the order quantity of each stock item) by four. The < comparison operator then looks for actual stock quantities that are less than this amount and retrieves records of orders that exceed one quarter of the inventory. Records in the Answer table that contain only an order number are those that do not meet the selection conditions, but are included because the inclusion operator was used.

 Related Topics


Example of retrieving records from one table that are not in another table

You can use an inclusive link with the COUNT summary operator and CheckPlus to retrieve records from one table that are not in another table.

For example, suppose you want to identify the vendors you in the Vendors table from whom you have not bought any stock. That means you want to know which vendors are in the Vendors table that are not in the Stock table.

To retrieve records from one table that are not in another table

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	From the Samples folder, hold down CTRL and click the STOCK.DB and VENDORS.DB tables.

5.	Click the Open button.

6.	Click the Join Tables button [image] and click the Vendor No fields of both query images.

7.	Type ! after the example element in the Vendor No field of the VENDORS.DB query image.

8.	Right-click the check boxes in the Vendor No and Vendor Name fields of VENDORS.DB and click the CheckPlus from the list of check marks; the CheckPlus retrieves all records, including duplicates.

9.	After the example element in the Vendor No field of STOCK.DB (join1), type a comma and a space and then COUNT = 0.

10. Click Query, Run Query to run the query.

 Related Topics


Example of using both inclusive and exclusive links in a query

The following example uses the sample tables to demonstrate a complicated query that contains both inclusive and exclusive links.

Suppose you have recently agreed with your vendors not to sell items to customer dive shops in the same state as the vendor. You can determine how current orders would be affected by these new agreements by summing their total dollar values. You will first need to select and join the appropriate tables, and then create the query.

To select and join the appropriate tables

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, hold down CTRL and click the CUSTOMER.DB, ORDERS.DB, LINEITEM.DB, STOCK.DB and VENDORS.DB tables.

5.	Click the Join Tables [image] button and click the Vendor No fields of the VENDORS.DB and STOCK.DB query images.

6.	Click the Join Tables button and click the Stock No fields of the STOCK.DB and LINEITEM.DB query images.

7.	Click the Join Tables button and click the Order No fields of the LINEITEM.DB and ORDERS.DB query images.

8.	Click the Join Tables button and click the Customer No fields of the ORDERS.DB and CUSTOMER.DB query images.

To create the query

1.	Type ! after the example element in the Vendor No field of VENDORS.DB and enable the check box to see all vendor numbers, whether or not you've ordered stock from them.

2.	Enable the check box in the State/Prov field of VENDORS.DB.

3.	Press F5 and type state as the example element representing each State/Prov value in the Vendors table.

4.	In the State/Prov field of the VENDORS.DB query image, type ! after the state example element to see all vendor states and then type , as Vendor State to rename the field in the Answer table.

5.	Enable the check box in the Stock No and Description fields of STOCK.DB to see these fields in the Answer table.

6.	In the Total field of LINEITEM.DB, type CALC SUM as Dollars at Stake to generate a new calculated field in the Answer table. This new field contains summary values of the total order cost for each stock item ordered by each customer located in the same state as a vendor selling that stock item.

7.	In the State/Prov field of the CUSTOMER.DB query image, press F5 and type state as the example element that represents each customer's state.

8.	Click Query, Run Query to run the query.

The Answer table contains the following:

•	a list of all vendors, whether or not you have ordered stock from them

•	the states that those vendors are located in, and that are, by extension, the same states that dive-shop customers are located in who have ordered stock from you, which you, in turn, could have purchased from a vendor in the same state (Vendor State, inclusively linked with State/Prov in CUSTOMER.DB)

•	all stock items that have been ordered (Stock No and Description [image] if blank, you have not ordered stock from that vendor)

•	the sum of total orders for each stock number for which a customer could have purchased the same stock item from a vendor who sells it in the same state (Dollars at Stake)

 Related Topics


About queries that change data

Use DELETE, CHANGETO, INSERT and queries to change the data in a table.

DELETE	Deletes records that match conditions you specify.

CHANGETO	Changes existing values to a new value you specify.

INSERT	Inserts new records from one table into another table.

The table you change with these queries does not have to be open in a window.

DELETE, CHANGETO, and INSERT queries produce temporary tables which appear in a separate window. These temporary tables hold data that were inserted, deleted, or changed; therefore, you can restore the original table if necessary.

You choose INSERT and DELETE from a menu in the left-most field of a query image. You place CHANGETO in the field that contains the value you want to change.

You can combine several operations in a single query. If you do, Corel Paradox performs all DELETEs first, then all CHANGETOs, then all INSERTs.

 Related Topics


Operation order in a query involving multiple operations
Operation order in a query that involves multiple operations

You can perform multiple table-changing operations in a single query. If you have more than one query image in a Query window, the only basic requirement for the query to work is that all tables be linked with example elements.

You can, for example, perform a single query that deletes records from one table, inserts records into another table, and changes values in yet another table. You can also do a query that does an INSERT, DELETE, and CHANGETO operation in a single table.

The following rules describe the order in which Corel Paradox performs queries that involve multiple operations:

1.	Corel Paradox retrieves records based on all selection conditions.

2.	Corel Paradox performs any DELETEs in the order specified — that is, Corel Paradox looks in the first query image, then the second, and so on.

3.	Corel Paradox performs any CHANGETOs specified in the order it finds them.

4.	Corel Paradox performs any INSERTs specified in the order Corel Paradox finds them.

5.	Corel Paradox displays any temporary tables, including an Answer table, provided you checked any fields in the query image (and have not disabled the Generate Auxiliary Tables button in the QBE page of the Query Properties dialog box (Query menu)).

You can design intricate queries that save you from having to perform multiple, sequential queries. The more operations you design into a single query, however, the harder it becomes for you to undo the query.

 Related Topics


About INSERT queries

Use an INSERT query to insert records from one or more sources into a single target table. INSERT queries let you map which values from your source(s) to insert into fields in your target table.

With INSERT you can insert records from one table type into another, for example, from dBASE to Corel Paradox or Corel Paradox to dBASE tables. For example, you can put

•	any numeric data into any numeric field type (Corel Paradox or dBASE)

•	alphanumeric or character data into any alpha or character field

•	dates into date fields

Fields you leave blank (with no example element) in the target table receive no values from the source table(s). You cannot put example elements in Corel Paradox BLOB or bytes fields or in dBASE memo fields; therefore, you cannot insert these types of values into these types of fields.

Instead of producing an Answer table, an INSERT query produces a temporary table called INSERTED.DB, which includes only the records inserted.

 Related Topics


INSERT query temporary tables

Corel Paradox generates one or two temporary tables during an INSERT query.

Inserted

An INSERT query produces a temporary table called INSERTED.DB. As with an Answer table, Corel Paradox saves INSERTED.DB to your private directory, overwrites it each time you run an INSERT query, and deletes it when you exit the program.

To save INSERTED.DB with a different name

•	With INSERTED.DB open, click Format, Rename and type a new name in the Rename dialog box.

 Note

•	If you click Query, Properties, then enable the Fast Queries button on the QBE page of the Query Properties dialog box, Corel Paradox does not create the INSERTED table.

You can produce an Answer table in addition to the Inserted table if you enable the check boxes of fields on a separate line of the target query image. If you also supply selection conditions on that line, the records in the Answer table will reflect those conditions. However, such an Answer table does not contain any information that has to do with the INSERT operation. For more information see Operation order in a query involving multiple operations.

You can use the INSERTED table along with DELETE to undo an insertion.

Errorins

If you try to insert records that violate the referential integrity of the target table or that violate validity checks established for that table (except picture validity checks), Corel Paradox places the new records into a temporary table called ERRORINS.DB. Those records that do not violate referential integrity or validity checks are placed in INSERTED.DB.

 Related Topics


Performing an INSERT query

To perform an INSERT query

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, select the appropriate source and target tables and click the Open button. (If the target table is new, you must create it before you create the query.)

5.	Link all tables using example elements.

6.	For each source table, specify any selection conditions.

7.	In the target table, place the word INSERT in the left-most column (under the table name) by doing one of the following:

•	Type the letter i.

•	Right-click the column and click Insert.

•	Press Spacebar, and click Insert.

Do not check any of the fields on the same line as the INSERT operator. If you do, you will get an error.

8.	Click Query, Run Query to run the query.

Corel Paradox inserts the records from the source into the target table for every field you specified. The source table is not affected by the INSERT query.

Tip

•	To select multiple tables in the Select File dialog box when you create a query, hold down CTRL and click the name of each table.

 Related Topics


Example of inserting a record with an INSERT query

Suppose you want to insert a record of literal values into the CONTACTS.DB table using an INSERT query.

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

3.	In the Select File dialog box, double-click the CONTACTS.DB table.

4.	Right-click the left-most column of the CONTACTS.DB query image and choose INSERT from the menu of query operations.

5.	In the Last Name field, type Salviola.

6.	In the First Name field, type Dolores.

7.	In the Company field, type Keith's Dive Shop.

8.	In the Phone field, type 404-555-4251.

9.	Click Query, Run Query to run the query.

Corel Paradox opens the INSERTED.DB table.

If you open the CONTACTS.DB table scroll to the end, you will see the record you inserted.

 Related Topics


Example of inserting new values with an INSERT query

Suppose you find out you can get a cheaper phone rate for international calls if you switch to a different long distance service. Before you switch long distance companies, however, you want to see just how many customers are located outside the U.S.

This example demonstrates an INSERT query that places all international customers in a new PHONCALL.DB table. You must define the structure of the Phoncall table before you can use INSERT to add data to the table. Create the PHONCALL.DB table by borrowing its structure from the CUSTOMER.DB table, deleting all fields except Name and Phone, renaming Name as ClientName, and renaming Phone as PhoneNumber.

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, hold down CTRL and click the CUSTOMER.DB and PHONCALL.DB tables.

5.	In the Name field of CUSTOMER.DB, press F5 and type name for the example element.

6.	In the Country field of CUSTOMER.DB, type not U.S.A to insert into Phoncall only those dive shops not in the U.S.

7.	In the Phone field of CUSTOMER.DB, press F5 and type phone for the example element.

8.	Right-click the left-most column of the PHONCALL.DB query image and click INSERT from the menu of query operations.

9.	In the Client Name field of Phoncall.db, press F5 and type name for the example element.

10. In the Phone Number field of PHONCALL.DB, press F5 and type phone for the example element.

11. Click Query, Run Query to run the query.

Corel Paradox opens the INSERTED.DB table.

If you open the PHONCALL.DB table, you will see that its records exactly match the records in the INSERTED.DB table.

You can get the results of this particular INSERT query much faster by doing a CheckPlus query, placing a CheckPlus in the Name and Phone fields of CUSTOMER.DB, and saving the Answer table as PHONCALL.DB. A CheckPlus query is not always a more efficient alternative to an INSERT query; therefore, this example provides the framework for more complex ones.

 Related Topics


About DELETE queries

Use DELETE queries to remove selected records from a table. DELETE queries are effective when the records to be deleted have something in common that you can specify in one or more selection conditions.

DELETE removes only records, not specific field values within records. Use CHANGETO to change or remove specific field values.

Instead of producing an Answer table, a DELETE query produces a temporary table in the Private folder called DELETED, which includes only the records deleted.

 Related Topics


DELETE query temporary tables

Corel Paradox generates one or two temporary tables during a DELETE query.

Deleted

A DELETE query produces a temporary table called DELETED.DB, which contains only the deleted records. Corel Paradox saves Deleted to your private directory, overwrites it each time you run a DELETE query, and deletes it when you exit the program.

To save DELETED.DB with a different name

•	With DELETED.DB open, click Format, Rename and type a new name in the Rename dialog box.

 Note

•	If you click Query, Properties, and enable the Fast Queries button on the QBE page of the Query Properties dialog box, Corel Paradox does not create the DELETED.DB table.

You can produce an Answer table in addition to the DELETED.DB table if you check fields on a separate line of the query image. If you also supply selection conditions on that line, the records in the Answer table will reflect those conditions, as you might expect. However, such an Answer table is not particularly valuable, since it does not contain any information that has to do with the DELETE operation.

You can use the DELETED, along with INSERT, to undo a deletion. Use Deleted as the source table to insert the deleted records back into the table from which they were deleted. If you are reinserting records you deleted from an unkeyed table, the records are inserted at the end of the table and therefore MAY not necessarily be in their original order.

You can also reinsert the deleted records into the original table by clicking Tools, Utilities, Add. Apart from these two methods, you have no other way of recovering records deleted from a Corel Paradox table. (With a dBASE table, you can view the table, enter Edit mode, and click View, Show Deleted, then undelete each deleted record one at a time clicking Record, Undelete.)

Errordel

If you try to delete records that violate the referential integrity of the target table or that violate validity checks established for that table (except picture validity checks), Corel Paradox places the new records into a temporary table called ERRORDEL.DB. Those records that do not violate referential integrity or validity checks are placed in DELETED.DB.

 Related Topics


Performing a DELETE query

Instead of producing an Answer table, a DELETE query produces a temporary table called DELETED, which includes only the records deleted.

To perform a DELETE query

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, select the table from which you want to delete records and the table(s), if any, you want to join to the target table and use to define selection conditions; then, click the Open button.

5.	Place the word DELETE in the left-most column (under the table name) of the table whose records you want to delete by doing any of the following in that column:

•	Type the letter d.

•	Right-click and click Delete from the menu of query operations.

•	Press Spacebar, then choose Delete from the menu of query operations.

Do not enable any of the check boxes on the same line of the query image as the DELETE operator. If you do, you will get an error message.

6.	Type any selection condition to select the records to be deleted. You can enter selection conditions in several fields of the same query image or in fields of tables linked by example elements.

Caution: If you do not enter any selection conditions, Corel Paradox deletes all the records from the table.

7.	Click Query, Run Query to run the query.

Corel Paradox deletes from the table all records that meet the selection conditions.

 Related Topics


Example of removing a record with a DELETE query

Suppose Larry's Diving School has gone out of business and you want to remove this dive shop from the CONTACTS.DB table.

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	Double-click the CONTACTS.DB table.

5.	Right-click the left-most column of the query image and choose DELETE from the menu of query operations.

6.	In the Company field, type Larry's Diving School.

7.	Click Query, Run Query to run the query.

Corel Paradox opens the DELETED.DB table. To undo this query, follow the steps in Example of undoing a DELETE query.

 Related Topics


Example of undoing a DELETE query

You can undo a DELETE query with an INSERT query. For example, suppose Larry's Diving School has gone out of business and you want to remove this dive shop from the Contacts table. Here is how you could do that (see Example of removing a record with a DELETE query):

Suppose you change your mind and decide after you have deleted the contact for Larry's Diving School that you want to keep George Ahern as a contact for potential dive-shop customers.

The easiest way to undo the deletion in this case would be to click Tools, Utilities, Add, and then add the deleted record in Deleted.db back into Contacts.db. The following example shows you another way to undo. The method you use will depend on the complexity of the deletion you are trying to undo. With any method, you should make copies of the tables at each stage in case you make a mistake in the recovery process and have to undo the change.

Using the Query window from the previous example:

1.	Clear the existing selection conditions in the CONTACTS.DB query image by pressing CTRL+DEL in any field of the image.

2.	Add the Deleted.db query image to the Query window. (Follow the instructions in Adding tables to a query; choose PRIV from the Alias list box.)

3.	Use the Join Tables [image] button to place corresponding example elements in each pair of matching fields in CONTACTS.DB and DELETED.DB.

4.	Right-click the left-most column of CONTACTS.DB and click INSERT from the menu of query operations.

5.	Click Query, Run Query to run the query.

If you open the CONTACTS.DB table and scroll to the end, you will see George Ahern's record has been added to the table.

 Related Topics


About CHANGETO queries

Use CHANGETO queries to change specific field values in a table based on conditions you specify in a query. CHANGETO provides you with a kind of global search-and-replace capability. It is particularly useful when you want to change many values that have something in common.

Instead of producing an Answer table, a CHANGETO query produces a temporary table called CHANGED.DB, which contains a copy of the records as they existed before you changed them.

 Related Topics


CHANGETO query temporary tables

Corel Paradox generates one or two temporary tables during a CHANGETO query.

Changed

CHANGETO produces a temporary table called CHANGED.DB, which contains a copy of the records as they existed before you changed them. Corel Paradox saves CHANGED.DB your private directory, overwrites it each time you run a CHANGETO query, and deletes it when you exit the program.

To save CHANGED.DB with a different name

•	With CHANGED.DB open, click Format, Rename and type a new name in the Rename dialog box.

 Note

•	If you click Query, Properties and enable the Fast Queries button on the QBE page of the Query Properties dialog box, Corel Paradox does not create CHANGED.DB.

You can produce an Answer table in addition to the CHANGED.DB table if you check fields on a separate line of the query image. If you also supply selection conditions on that line, the records in the Answer table will reflect those conditions, as you might expect. However, such an Answer table is not particularly valuable because it does not contain any information that has to do with the CHANGETO operation.

You can use CHANGED.DB to undo out changes made with CHANGETO. See Undoing changes using the Changed table.

Errorchg

If you try to change records in a way that violates the referential integrity of the table or that violate validity checks established for that table (except picture validity checks), Corel Paradox places the new records into a temporary table called ERRORCHG.DB. Only those records that do not violate referential integrity or validity checks are placed in CHANGED.DB.

 Related Topics


Performing a CHANGETO query

Instead of producing an Answer table, a CHANGETO query produces a temporary table called CHANGED.DB, which contains a copy of the records as they existed before you changed them.

To perform a CHANGETO query

1.	Type the value you want to change in the field of the query image.

2.	After the value you want to change, type a comma.

3.	After the comma, type CHANGETO and a space. (As with all of Corel Paradox's operators, you can type it in uppercase or lowercase.)

4.	After CHANGETO and the space, type the new value to which you want to change the current value. You can also type selection conditions in other fields to specify further which records to change.

The CHANGETO operator must be on the same line in the query image as any selection conditions. Do not enable any of the check boxes on this line of the query image. If you do so, you will get an error message.

5.	Click Query, Run Query to run the query.

Corel Paradox changes all records that meet the selection conditions.

 Related Topics


Undoing changes using the Changed table

Use the Changed table to verify that the correct records have been changed. If you changed records that you did not mean to change, you can delete the changed records from the queried table and reinsert the original records back into the table from Changed.

To undo changes using the Changed table

1.	Run a DELETE query on the table whose records you accidentally changed, by using the new field value(s) [image] the ones you changed to [image] as a selection condition(s).

Doing so removes the incorrect records.

2.	Insert the records in the CHANGED.DB table back into the original table, using CHANGED.DB as the source table and the original table as the target table, in an INSERT query. (For instructions, see Performing an INSERT query.)

This action restores the queried table back to its original state. (If you are reinserting records into an unkeyed table, Corel Paradox inserts them at the end of the table. Therefore, the records may not be in their original order.)

 Related Topics


Performing a multi-table CHANGETO query
Performing a multitable CHANGETO query

You can create a CHANGETO query to change the records in one table to match the records in another table that is linked through referential integrity.

To perform a multitable CHANGETO query

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, hold down CTRL, click both the master and detail tables and click the Open button.

5.	Click the Join Tables [image] button and then click the corresponding fields of both tables to place example elements in all corresponding field of both query images.

6.	In the query image of the parent table, type CHANGETO and a space before the example element in each field that you want to change.

7.	Click Query, Run Query to run the query.

Corel Paradox changes the values of the appropriate fields of the master table to match those of the detail table.

 Related Topics


Example of changing data with a CHANGETO query

Suppose you learn that George Ahern, the previous contact for the now out-of-business Larry's Diving School, has gotten a job at The Human Gill Dive Shop in Savannah, Georgia. You want to contact George so you can perhaps gain his new employer as one of your customers. You also need to change the company and phone number information about George in the Contacts table. Here is how you would set up the query:

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

3.	Double-click the Contacts.db table.

4.	In the Last Name field, type Ahern.

5.	In the First Name field, type George.

6.	In the Company field, type company for the example element, then type a comma and type CHANGETO, then type a space and type The Human Gill Dive Shop.

7.	In the Phone field, type phone for the example element, then type a comma and type CHANGETO, then type a space and 404-555-1451.

8.	Click Query, Run Query to run the query.

Corel Paradox opens the CHANGED table.

 Related Topics


Example of using CHANGETO with example elements

You can use a CHANGETO query with example elements to perform a calculation on values in a field and to change the original values to the new calculated values in the same field. (If you were to perform calculations using the CALC operator, Corel Paradox would create a new field to hold the results in an Answer table and would leave the original values unchanged.)

This query increases the list price of all stock items in the Stock table by 15%. In the query image, ListPrice is an example element that represents the value in the List Price field.

 Related Topics


About forms and reports

Forms and reports [image] also called design documents [image] can present your data in a variety of formats. For example, you can create forms and reports that

·	display one record at a time

·	display multiple records at a time

·	display only certain fields of a table

·	contain design features, such as lines, boxes, graphics, shading, or special colors

·	perform onscreen calculations

Forms and reports can also link tables, so that information stored in separate tables appears together.

The primary difference between forms and reports is that forms are also editing tools. They let you display and edit the data in your tables. For example, you can create forms that add data to several tables at once. Any change you make in the form is reflected in the table.

Reports are also printing tools. They let you format and print your data. For example, you can use reports to create form letters, mailing labels, invoices, presentations, and so on.

Creating forms and reports

You can use the Corel Paradox experts to create forms and report quickly and easily. For more information see Creating a form or report using the experts.

Forms and reports are known as design documents. Creating a simple form or report (design document) typically involves the following steps. For more information, click a step in the following list.

Step 1: Creating the design document.

Step 2: Creating a data model.

Step 3: Creating a layout.

Step 4: Placing design objects in the document.

Step 5: Saving the design.

 Related Topics


Step 1: Create the design document
Step 1: Creating the design document

The first step in creating a form or report involves creating the appropriate new document, either a form or report.

To create a form or report

1.	Click File, New.

2.	In the Create New page of the Open dialog box, choose Corel Paradox 8 from the list box.

3.	Do one of the following:

·	To create a form, double-click the New Form icon.

·	To create a report, double-click the New Report icon.

4.	In the New Form or New Report dialog box, click the Data Model/Design Layout button.

5.	Use the Data Model Designer to specify which tables to use in the form or report and to define the relationship between the tables as described in Step 2: Creating a data model.

Creating a blank form or report

You can bypass the Data Model Designer and Design Layout steps and create a blank form or report. To do so, click the Blank button in step 2 of the previous procedure. Corel Paradox opens the Design window.

 Next

 Related Topics


Step 2: Create a data model
Step 2: Creating a data model

In Step 1: Creating the design document, you specified the type of design document you want to create (form or report) and opened the Data Model Designer. In step two, you create a data model that tells Corel Paradox which tables you want to use to create the form or report. You then link the tables to show how they are related to each other.

To create the data model, after you have the Data Model Designer open

1.	Select the table(s) you want to create the form or report.

2.	Click OK to use the selected table(s) in your form or report.

3.	Use the Design Layout dialog box to create a layout as described in Step 3: Creating a layout.

 Previous    [image] Next

 Related Topics


Step 3: Create a layout
Step 3: Creating a layout

When you create a layout, you specify the way major data objects appear on the document. Later, in the Design window, you can move the objects, resize them, and change their properties.

1.	Open the Design Layout dialog box as described in Step 2: Create a data model.

2.	On the Layout page, experiment with the options to determine which layout to use. As you choose each option, Paradox adjusts the sample layout on the right to show how the options affect the layout.

3.	On the Layout page, choose a style sheet from the Style Sheet list box.

4.	On the Fields page, remove any fields you don't want to use by selecting a field from the Selected Fields box and clicking the Remove Field button.

5.	On the Fields page, select a field from the Selected Fields box and click the Order arrow buttons to specify the order in which fields will appear. As you change each option, Corel Paradox adjusts the sample layout on the right to show how the options affect the layout.

6.	When you are satisfied with your basic design, click OK to open the Design window.

7.	Add design objects to your form or report as described in Step 4: Place design objects on the document.

 Previous    [image] Next

 Related Topics


Step 4: Place design objects on the document
Step 4: Placing design objects on the document

You can place design objects in your form or report and change their properties. To place design objects, use the design tools on the Oject Toolbar.

To use a design tool

1.	Click the tool you want to use and then do one of the following:

·	Click to place the object at its default size.

·	Click and drag to size the object as you place it.

·	Hold down SHIFT+ click and drag to constrain the object as you place it.

 Notes

·	When you constrain an object, all objects except ellipses and lines become square. Ellipses become circles; lines draw horizontally, vertically, or at a 45-degree angle.

·	To create more than one object of the same type, hold down SHIFT while you click the tool you want. The tool remains active until you click the Selection Tool or another tool.

·	Keyboard equivalents for the Toolbar's design tools are not available.

 Previous    [image] Next

 Related Topics


Step 5: Save the design
Step 5: Saving the design

After you have created your form or report, you will need to save it; then, you can run the form or report and view your data.

To save a form or report

1.	Click File, Save.

2.	In the Save dialog box, type a name for the form or report in the File Name box.

When you save a design document, you are saving the design itself, not the data. Paradox saves data to the appropriate table when you leave each record.

 Previous

 Related Topics


Creating a form or report using the experts

You can use the Corel Paradox Experts to create forms, reports, or mailing labels.

To create a form using an expert

1.	Click Tools, Experts.

2.	Double-click the Form icon.

3.	Follow the Form expert step-by-step instructions.

To create a report using an expert

1.	Click Tools, Experts.

2.	Double-click the Report icon.

3.	Follow the Report expert step-by-step instructions.

To create mailing labels using an expert

1.	Click Tools, Experts.

2.	Double-click the Mailing Label icon.

3.	Follow the Label expert step-by-step instructions.

 Note

·	If you want Corel Paradox to run the Expert automatically whenever you create a new form or report, click Tools, Settings, Preferences to open the Preferences dialog box, click the Forms/Reports tab to bring it to the front and enable the Always Use Expert button.

 Related Topics


About data models

A data model is the graphical representation of the relationships between tables. Data Models provide a simple way of telling Corel Paradox which tables' data to display and work with, and how these tables are linked.

Data models exist in two ways:

•	As part of a form or report. When you create a form or report, you need to tell Corel Paradox which tables to use and how the tables are linked. (on which fields). When you create a data model when you are creating a form or report, you use the Data Model Dialog box.

•	As a separate file. You can create a data model separately, without creating a form or report. This type of data model is known as a reference data model; you can create data models separately for use at a later time. These data model reference files have a file extension of .DM, and are created using the Data Model Designer.

The Data Model dialog box and the Data Model Designer allow you to do exactly the same things. The only difference is that when you are creating a data model in conjunction with a form or report, Corel Paradox open the the Data Model dialog box; when creating a data model separately, Corel Paradox opens the Data Model Designer.

A data model can be based on a single table, or on multiple tables. To use information on a form, report, or query from more than one table, you must create a multi-table data model. You then define relationships between the tables to link them together.

You can create a data model independently of any form, report, or query, and use the data model dialog box to design a document or run a query.

 Note

•	Before you can link tables to create a data model, you have to structure the tables correctly using keys and indexes. For information about keys and indexes, see About indexes.

 Related Topics


Multi-table data models

A data model based on a more than one table is a multi-table data model. When you place more than one table on a data model, one table is defined as the master table and is linked to one or more detail tables. After you open the Data Model Designer or the Data Model dialog box, you need to define the relationship between the tables.  You can use the mouse to draw a line between the tables, or you can select the fields you want to link the tables by using the Define Link dialog box.

•	If you have established referential integrity between the two tables you are linking, Corel Paradox automatically creates the link when you draw the line between the two tables.

•	If you do not have referential integrity between the tables you are linking, you need to create the link in the Define Link dialog box.

Drawing a line from the first table to the second table makes the first table the master table and the second table the detail table. If you draw a line from the second table to the first table, the second table becomes the master table and the first table becomes the detail table. The arrow shows the direction of the link. The arrow always points to the detail table.

The type of relationship created between two tables depends on the matching of the detail table's indexes to the master table's file structure:

•	A double-headed arrow indicates a multi-value relationship (one-to-many).

•	If you see a single-headed arrow, this indicates a single-value relationship (one-to-one or many-to-one).

Complex Data Models

Complex data models can include a combination of single-value relationships and multi-value relationships. You can keep linking tables in the existing data model until you have the data model you want. As long as you have identified indexes properly, you can build data models that are as complex as you need them to be. For information see About indexes and keys.

You might prefer to link the tables as you add them to the data model, rather than adding them all and then linking. This way, you can avoid scrolling the data model panel to view all the tables. For informtion see Creating a link.

Modifying data models

You can always return to the Data Model dialog box to add or remove tables, or change links at any point in designing a document. You can also change the data model of a document using the Data Model Designer.

 Related Topics


Data models for reports with groups

When creating data models for reports with group bands, you might want to consider linking the tables backward, from detail table to master table, rather than in the conventional way of master table to detail table. This gives you more choices of fields to group by when adding a group band to the report.

Say, for example, you create a report based on a data model using the tables Customer, Orders, and Lineitem. If you connect these tables in the usual way, Customer [image] Orders [image] Lineitem (creating a multi-value relationship), when you add a group band to the report, the Define Group dialog box only makes available only the fields from the Customer table as choices for the Group By Field Value.

 Related Topics


Opening the Data Model dialog box
Opening the Data Model Designer or the Data Model dialog box

To create a data model

1.	Do one of the following to open the Data Model Designer or Data Model dialog box:

•	When creating a form, click File, New, choose Corel Paradox 8 from the Create New list box and double-click the New Form icon. Click the Data Model/Design Layout button in the New Form dialog box.

•	When creating a report, click File, New, choose Corel Paradox 8 from the Create New list box and double-click the New Report icon. Click the Data Model/Design Layout button in the New Report dialog box.

•	In the Project Viewer, right-click the Data Model icon and click New.

•	Click Tools, Data Model Designer.

2.	Choose a table as described in To add tables to the data model.

To open an existing data model

Do one of the following:

•	In the Project Viewer, right-click the Data Models icon or label and choose Open or click the Data Models icon and double-click the name of a data model in the right panel.

•	From a form or report Design window, click Format, Data Model. Corel Paradox displays the data model for the form or report open in the Design window.

 Note

•	If you've specified a preference in the Run Time page of the Preferences dialog box, you might not see the New Form or New Report dialog box. Depending on the preference setting, you might see the Data Model dialog box automatically, or you might open an expert or a blank document.

 Related Topics


Adding tables to the data model panel

All tables you want available for use in a document must be placed in the data model panel of the Data Model dialog box. When you place a table in the data model, Corel Paradox uses the table's fields in the design document.

To add tables to the data model panel

1.	Open the Data Model dialog box. (See Opening the Data Model.) dialog box.

2.	Select the table and click the Add Table arrow, or press Alt+A. You can also double-click the table name.

The selected table name appears in a recessed area in the data model panel on the right.

By default, the tables in the File Name list box are those in the working directory. If you do not see the table you want, choose another path from the Drive (Or Alias) list box. You can also click Browse to open the Browser, which gives you access to all tables.

3.	Repeat step 2 for each table you want to include in the data model.

 Tip

•	If your design contains many tables, you might prefer to link the tables as you add them, rather than adding them all and then linking. This way, you can avoid scrolling the data model panel to view all the tables. For information see Creating a link.

 Related Topics


Choosing a query for a data model

When you place a query in the data model panel of the Data Model dialog box, Corel Paradox creates the form or report based on the query. Instead of running a query and building a design from the resulting Answer table, you create the design based on the query itself. When you run a form or report based on a query, Corel Paradox runs the query, then displays or prints the document.

To create a design document based on a query

1.	Open the Data Model dialog box as described in Opening the Data Model dialog box.

2.	Choose Queries from the Type list box.

3.	Choose the queries you want to use.

4.	Complete the design of the form or report as required.

A query must be the master table in a multi-table design.

 Related Topics


Choosing an existing data model for a data model

To build a design document from an existing data model

1.	Open the Data Model dialog box as described in Opening the Data Model dialog box.

2.	Choose Data Models from the Type list box.

3.	Choose a data model.

4.	Complete the design of the form or report as required.

 Related Topics


Removing tables from the data model panel

To remove unlinked tables from the data model

1.	Open the Data Model dialog box or Data Model Designer as described in Opening the Data Model dialog box.

2.	If the data model you want to modify is not already displayed, choose Data Models from the Type list box and select the correct data model.

3.	Select the table in the data model panel and click the Remove Table button or press DELETE or ALT+D.

You cannot remove a linked table from the diagram area. You must first select the detail table and choose Unlink.

 Related Topics


Viewing or changing table properties in a data model
Viewing or change table properties in a data model

Once a table is in the data model panel, you can change certain properties affecting its behavior in forms and reports.

To view or change the properties of a table shown in the data model panel of the Data Model dialog box

•	Right-click the table or press F6.

If you are designing a report, you see a menu of the table's name and its field names, types, and sizes.

If you are designing a form, you can see a menu of the table's name, its field names, types, and sizes. You can also display or modify the following properties:

Filter

Opens the Filter Tables dialog box, where you can set a filter for the table to view only the data that meets your specifications.

Read-Only

Protects the table from being edited in this form. You can still edit the table in other documents or in its Table window. This property is checked by default on the detail table when you create a data model with a single-value relationship.

Strict Translation

This property restricts the characters that you can input into a table to those which are actually in the character set of the table's language driver. Strict Translation is enabled by default.

Auto-Append

Automatically creates a new, blank record whenever you move beyond the last record in the table. Auto-append is enabled by default.

 Note

•	When you save a data model, Corel Paradox saves the properties you've specified for each table in the data model. You can save the same data model with different properties to suit all your needs.

 Related Topics


About links and indexes

You could place fields from two or more unrelated tables in a design, but it is more common to relate the data from the tables. You do this through links.

To understand how Corel Paradox links tables in forms and reports you must first understand how Corel Paradox sorts and locates data based on the indexes (keys and secondary indexes) you specify. For information see About indexes and keys.

You create links on common fields. For example, the Customer table has a Customer No field and the Orders table has a Customer No field, so you can link these two tables on that field.

•	In Corel Paradox tables, the field name does not have to be the same in both tables, but the field type and size must match.

•	In dBASE tables, you can link only on like field types, unless you use an expression index in the link.

For example, suppose you are creating a data model that uses the sample Customer and Orders tables. Both tables have a Customer No field. The Customer No field in the Orders table contains values that represent records in the Customer table. It's easier and more efficient to keep order and customer information in separate tables. But sometimes you need to see data from both tables at once. That's when you need to link the two tables. When you link Customer and Orders, Corel Paradox looks at each value in the Customer No field of Customer and, using indexes, finds matching values in the Customer No field of Orders. This way, you can tell which customer made each order.

Corel Paradox uses an index to remember where values are. When you create a secondary index on a field, Corel Paradox looks at each value in the field and creates a file that notes each value's location (record number) in the table. The index enables Corel Paradox to locate records quickly and easily. If you create a maintained index, Corel Paradox updates the index file every time you update the table.

When you link two tables, Corel Paradox evaluates a value in the table you are linking from (the master table) and finds all matching values in the table to which you are linking (the detail table). Therefore, the detail table must be indexed on the field on which you want to link. The detail table can have either a primary index (key) or maintained secondary index on the linking field.

For example, you can link the Customer table to the Orders table on the Customer No field if you have an index on that field in the detail table. This would be a one-to-many link because for every customer record, you could have zero or more corresponding records in the Orders table. Or, you can link the Orders table to the Customer table on the Customer No field (the primary index of the Customer table). This would be a many-to-one link, because for every order, there is one and only one corresponding record in the Customer table.

Types of links

You can link tables through either

•	Single-value relationships (one-to-one or many-to-one)

•	Multi-value relationships (one-to-many)

 Related Topics


Single-value relationships

A single-value relationship exists between tables if, for every record in one table, there are no related records or only one record in the other table to which it is related. For example, the relationship between the sample Lineitem and Stock tables is single-value: each line item ordered (each unique value in Lineitem) is one item of stock (a unique value in Stock).

When tables in Corel Paradox have a single-value link, Corel Paradox treats the fields in both tables much as if they came from the same table. You can group on tables joined by a single-value relationship. They can be displayed in the same table object or multi-record object.

 Tip

•	Two tables containing identical key fields have a one-to-one relationship. When this exists, it is wise to combine these tables into a single-table.

 Related Topics


Multi-value relationships

A multi-value relationship exists between tables if, for every record in the master table, no records, one record, or more than one record from another table is related to it. For example, one customer (one record in the sample Customer table) can place no orders, one order, or many orders (records in the sample Orders table). Therefore, each record in the Customer table can have many records in the Orders table that match it. This is a one-to-many relationship (1 [image] M).

In a many-to-one relationship, many records in the master table are related to one value in the detail table. For example, the Lineitem table lists specific items that a customer orders. Several items can be ordered at the same time, so many Lineitem records can point to the same Orders value.

 Related Topics


Creating a link

To link two Corel Paradox tables

1.	Open the Data Model dialog box or Data Model Designer as described in Opening the Data Model dialog box.

2.	If the data model you want to modify is not already displayed, choose Data Models from the Type list box and select the correct data model.

3.	In the data model panel, position the cursor over the master table. The pointer becomes a linking tool.

4.	Click the master table and drag to the detail table.

In some cases, Corel Paradox creates the link immediately. Corel Paradox does this if referential integrity exists between the two tables You can click OK to accept this link. If referential integrity does not exist, you need to define the link using the Define Link dialog box.

5.	To define the link, select a detail table index from the Index panel of the Define Link dialog box and click the Left Arrow button.

6.	From the Field panel, select the master table field you that matches the Index you chose and click the Right Arrow button.

Corel Paradox draws a line between the field and the index, and places an arrow between the two table names.

7.	Click OK to accept the link and return to the Data Model dialog box or Data Model Designer.

 Notes

•	You cannot create a link using a BLOB, bytes, or logical field. This is because you cannot create an index on these field types.

 Related Topics


Defining a link

Corel Paradox shows all fields from the master table in the Field list of the Define Link dialog box.

To define a link

1.	Select the field on which you want to link from the Field list of the Define Link dialog box.

•	If Corel Paradox finds an index of the detail table that matches the name and type of the field you've chosen, Corel Paradox completes the link for you.

•	If no name and type match is found, Corel Paradox uses the first index of the detail table that matches in type and length if applicable. You can choose another index to replace the automatic choice.

2.	Select the index you want to use for the detail table from Index list.

•	If you're using a composite key or index on the detail table, select fields from the master table to match some or all of the fields in the index.

•	If you use a composite key or index and match all its fields, Corel Paradox creates a one-to-one link. Otherwise, Corel Paradox creates a one-to-many link.

 Related Topics


Previewing links
Modifying links

After you choose a matching field from the master table and an index from the detail table in the Define Link dialog box, Corel Paradox creates a link between the two and previews the data model in the link diagram panel.

To link tables using a different field or index

•	Click the Unlink button and choose a different field or index.

The data model shows what type of link exists between the tables.

•	If two tables are side by side with a double-headed arrow between them, a multi-value relationship. exists between them. The direction of the arrow shows the direction of the link (master-to-detail).

•	If one table is stacked below another table with an arrow joining them from their sides, a single-value relationship. exists between the tables.

 Related Topics


Removing links

To remove an existing link between tables in a data model

1.	With a form or report open in the Design window, click Format, Data Model.

2.	In the Data Model dialog box, select the detail table (the table to which an arrow points).

3.	Click the Unlink button.

 Related Topics


dBASE linking combinations

You can link dBASE tables

•	only on like field types, unless you use an expression index in the link

•	only on maintained indexes (not .NDX files)

You can link dBASE tables using an expression index or a single-field index in an .MDX file. The following table shows valid dBASE links.

From	To

Field	Expression index

Field	Single-field index

Master Expression	Expression index

Master Expression	Single-field index

 Related Topics


Limitations on reports containing dBASE tables

There are a few limitations on reports whose data models contain dBASE tables. The limitations apply if a report's master table is linked in a single-value relationship with a dBASE table. (Corel Paradox creates this kind of link if the detail table contains a unique index.) For such a report, you cannot

•	sort the report's record band (you cannot right-click it and choose Sort)

•	add a group band to the report

To avoid these limitations, restructure the detail table with a non-unique index and recreate the data model for the report and link the tables in a multi-value relationship.

 Related Topics


About table aliases

You can assign a different name, called an an alias, to a table. Table aliases can provide the following benefits:

•	If you use the same table more than once in a data model, table aliases help you avoid confusion.

•	A form or report is more portable when you use table aliases.

•	You can change table aliases to conform to the naming conventions of your SQL server when you upsize your application.

•	You can refer to tables in ObjectPAL code using table aliases. This means you can change the table your code refers to without breaking the code or requiring table name modifications.

•	You can use table aliases instead of table names when you create calculated fields. If you need to change tables, you can keep the calculated field expressions by assigning the table alias you used to the new table.

 Related Topics


Creating a table alias

A table alias must contain an alpha character as its first character, cannot contain spaces and can be up to 32 characters in length.

To create a table alias

1.	Right-click the table in the Data Model dialog box or Data Model Designer and click the table name (for example Customer).

2.	In the Table Name dialog box, type an alias for the table.

 Related Topics


Removing a table alias

To remove a table alias

1.	Right-click the table in the Data Model dialog box or Data Model Designer and click the table name (for example Customer).

2.	Delete the table alias in the Table Name dialog box.

 Related Topics


Saving a data model in the Data Model dialog box

You can save a data model and use it for other forms, reports, or queries.

To save a data model in the Data Model dialog box

1.	In the Data Model dialog box, click the Save DM button.

2.	In the Save File As dialog box, type a name for the data model in the File Name box.

3.	Click the Save button.

Corel Paradox saves the data model with the .DM file extension.

 Tip

•	You can also define a saved data model as a reference data model for all other data models. For information, see About the Data Model Designer.

 Related Topics


About the Data Model Designer

Use the Data Model Designer to

•	create a data model without creating a form, report, or query

•	modify the data model of a design document

•	save and load data models

•	print data models

•	display a reference data model, or the data model of the active form or report.

When the Data Model Designer is open and you open multiple forms and reports in their design windows, the Data Model Designer remains open, and displays data model of the active form or report.

The Data Model Designer has its own menu bar, Toolbar, and Status Bar. The Data Model Designer is always the topmost window, and you can move it outside the Corel Paradox Desktop.

You can also use the Data Model Designer to do the same things you do with the Data Model dialog box.

 Related Topics


Opening the Data Model Designer

To open the Data Model Designer

•	Click Tools, Data Model Designer.

If you are working in a Form Design or Report Design window, Corel Paradox displays the active form or report's data model. If you are not working in a Form Design or Report Design window, the diagram pane contains no data model.

 Related Topics


Viewing the current data model

You can view the data model attached to the current form or report at any time.

To view the current data model

1.	Click Tools, Data Model Designer to open the Data Model Designer.

2.	In the Data Model Designer, click View, Current Data Model.

When a check mark appears beside the option, the Data Model Designer displays the data model of the active form or report.

 Related Topics


Viewing a reference data model

A reference data model is a data model that is saved as a separate file and is independent of forms and reports. Corel Paradox saves reference data models with a .DM extension.

If you open the Data Model Designer and click View, Reference Model so that a check mark appears beside the option, the Data Model Designer displays a data model that you can modify and save to disk independently of a form or report. You can display this data model and use it as a reference when you're working with other data models in the Form or Report Design windows. You can also borrow from the data model, or link it directly to a form or report.

To view a data model

1.	Click Tools, Data Model Designer.

2.	In the Data Model Designer, click View, Reference Model so that a check mark appears beside the option.

When this option is enabled, the Data Model Designer shows a data model that you can modify and save to disk independently of a form or report. When you open a form or report while the reference data model is showing, Corel Paradox switches the display to show the data model for that form or report.

Notes

•	A reference data model is different from a data model that you create while creating a form only because it is saved as a separate file. Data models that you create when you create a form or report (using the Data Model dialog box) are not saved as separate files, and are attached only to that form or report.

•	If you have saved a default data model by clicking View, Reference Model, opening an existing data model and clicking Design, Save As Default, the current data model view does not switch as you open different forms or reports.

 Related Topics


Viewing two data models at one time

You can split the Data Model Designer into two panes, to view two data models at the same time.

To view two data models at one time

1.	Click Tools, Data Model Designer.

2.	Click View, Current Data Model so that a check mark appears beside the option.

3.	Click View, Reference Control so that a check mark appears beside the option.

When these options are enabled, the Data Model Designer contains two panes. The top pane shows the currently loaded reference data model. The bottom pane shows the data model of the active form or report.

You can use the split view to drag tables and links from a reference data model into the data model for the active form or report. For information see Copying items from the reference data model.

From this view, only the data model of the active form or report can be modified. All menu actions affect only the current data model of the active form or report.

 Related Topics


Creating a data model in the Data Model Designer

You can use the Data Model Designer to create and save data models that you can attach to forms and reports as you create them.

To create a data model in the Data Model Designer

1.	Click Tools, Data Model Designer.

2.	In the Data Model Designer, click Design, Add Table.

3.	In the Select File dialog box, select the table(s) you want to add to the data model.

4.	Click the Open button.

5.	Link the tables just as you would using the Data Model dialog box. For information, see Creating a link.

6.	After the tables are linked, click File, Save or File, Save As.

Corel Paradox opens the Save File As dialog box.

7.	In the Save File As dialog box, type a name for the data model in the File Name box.

8.	If you want to use the data model as a it as the reference data model, click Design, Save As Default.

 Note

•	This reference data model wlll open automatically only if View, Reference Model is selected, the data model file is loaded and then you click Design, Save As Default .

 Related Topics


Loading a data model

To load a data model

1.	Click Tools, Data Model Designer.

2.	In the Data Model Designer, click File, Open.

3.	In the Select File dialog box, type the name of a data model in the File Name box and click Open.

The effect of loading a data model depends on the mode of the Data Model Designer:

•	If View, Current Data Model is enabled Corel Paradox loads a data model, replacing the data model of the active form or report. Click Design, Accept Changes to change the data model of the active form or report. Click Design, Cancel Changes to cancel the changes.

•	If View, Reference Model is enabled Corel Paradox replaces the displayed data model with the reference data model.

Notes

•	When View, Reference Model is enabled, you can right-click the pane of the Data Model Designer to display a list of all the data models in the working directory. Click a data model to load it.

 Related Topics


Adding a table to a data model
To add a table to a data model

To add a table to a data model

•	In the Data Model Designer, click Design, Add Table.

 Related Topics


Creating, breaking, or modifying links

You can change links in the Data Model Designer as follows.

To link tables

•	Click the master table and drag to the detail table.

If referential integrity has not been established between the tables you must use the Define Link dialog box to create the link between the tables.

To break the link between tables

1.	Select a detail table.

2.	Click Design, Unlink.

To modify a link

1.	Select the detail table.

2.	Click Design, Link.(The selected table must be a detail table. If it is only a master table, the Link and Unlink menu items are not available.)

Corel Paradox displays the Define Link dialog box where you can make link modifications.

 Related Topics


Removing a table from the data model

To remove a table from the data model

1.	In the Data Model Designer,, select an unlinked table.

2.	Click Edit, Delete.

 Note

•	Linked tables can not be deleted from the data model. You must first unlink them.

 Related Topics


Copying items from the reference data model

When the Data Model Designer is split into two panes, you can drag tables and links from the reference data model (in the top pane) to the data model for the active form or report (in the bottom pane).

To copy items from the reference data model

1.	In the Data Model Designer, click View, Current Data Model

2.	Click View, Reference Control to split the pane. For information see Viewing two data models at one time.

3.	Select one or more tables from the top pane and drag them to the bottom pane.

•	Use SHIFT+click to select more than one table.

•	If you select linked tables, you can drag the them to the bottom pane and preserve their link.

After you change the data model in the bottom pane, you can save it and apply it to the active document by clicking Design, Accept Changes, pressing F9, or clicking the Accept Changes button.

 Related Topics


Viewing table properties in the Data Model Designer

To view table properties in the Data Model Designer

1.	Clicking Tools, Data Model Designer.

2.	In the Data Model Designer, select a table.

3.	Right-click the table or click Design, Current Table.

Corel Paradox lists the name of the table and the name of the fields and field types. Corel Paradox also displays on what fields referential integrity have been established.

 Related Topics


About saving a data model in the Data Model Designer

In the Data Model Designer, you can save the data model for the active form or report, or you can save a reference data model for use when designing other data models.

The data model you set as the default data model acts as a reference data model when you're working with other data models in the Form Design or Report Design windows. You can view it, borrow from it, or use it directly in your design documents.

 Related Topics


Applying changes to the data model for the active form or report

To apply changes to the data model of the active form or report

•	Click Design, Accept Changes, or press F9.

This option is available only when View, Current Data Model is enabled.

 Related Topics


Saving changes to the reference data model

To save the data model with its current name

•	Click File, Save.

 Note

•	Saving a data model to a .DM file does not apply it to the active document; click Design, Accept Changes to apply a data model to the current form or report.

 Related Topics


Giving a data model a new name
Renaming a data model

To rename a data model

1.	In the Data Model Designer, click File, Save As.

2.	In the Save File As dialog box, type a name for the data model in the File Name box.

Corel Paradox saves the data model with the .DM file extension.

 Related Topics


Canceling changes to the data model for the active form or report

To cancel changes to the data model for a form or report

•	In the Data Model Designer, click Design, Cancel Changes to undo changes you have made to a data model.

Corel Paradox restores the last saved data model.

 Related Topics


Saving or restoring a default data model

You can specify a data model to use as the default by using the Data Model Designer. This data model acts as a reference data model when you're working with other data models in the Form Design or Report Design windows. You can view it, borrow from it, or use it directly in your design documents.

When you save a data model as a reference data model, the menu settings and the location of the Data Model Designer window are also saved.

To save the default reference data model

1.	Load or create the data model you want.

2.	In the Data Model Designer, click Design, Save As Default.

Corel Paradox records

•	the name of the reference data model (if View, Reference Model is enabled)

•	the size and position of the Data Model Designer

•	which commands from the View menu are enabled

To restore the default data model

•	Click Design, Restore Default to restore the default data model with the appearance of the Data Model Designer as it was when you last clicked Design, Save As Default.

 Related Topics


Printing a data model

To print a data model

1.	With a data model loaded in the Data Model Designer, click File, Print.

 Note

•	If both the current data model and the reference data model are displayed, only the current data model will print.

 Related Topics


About form and report layouts

When you create a form or report layout, you specify the style of the master and detail records, which fields you want to display in the document, and choose a style sheet to establishes the default properties of design objects. You can display fields as labeled or unlabeled.

Use the Design Layout dialog box to create and modify your layouts. This dialog box has different options for single-table documents and multi-table documents. The document's data model determines which Design Layout dialog box is displayed. Most options available for design layouts are the same for forms and reports. The only differences are the way the preview image is displayed and the choice of style sheets.

Reports

Reports use bands to separate different areas of the layout. Reports have bands for report headers and footers, page headers and footers, groups that sort the data, and the body of the report.

The Design Layout dialog box shows report bands when you preview a report layout. Corel Paradox places the contents of your report's data model within the record band.

Forms

Forms don't use bands; therefore, the preview area in the Design Layout dialog box for a form is blank except for the contents of your form's data model.

For information on the Design Layout dialog box, see the following topics:

 Design Layout dialog box (single-value relationship)

 Design Layout dialog box (multi-value relationship)

 Opening the Design Layout dialog box

 Related Topics


Opening the Design Layout dialog box

The first step when you specify the initial layout for a form or report is to open the Design Layout dialog box. You cannot open the Design Layout dialog box until you create a data model for the form or report. You can use either of the following procedures to open the Design Layout dialog box.

To open the Design Layout dialog box from the Data Model Designer

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Do one of the following:

•	Double-click the New Form icon if you want to create a form.

•	Double-click the New Report icon if you want to create a report.

4.	Click the Data Model button.

5.	Use the Data Model Designer to create the data model.

When you click OK, Corel Paradox opens the Design Layout dialog box.

To open the Design Layout dialog box from a blank form or report

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Do one of the following:

•	Double-click the New Form icon if you want to create a form.

•	Double-click the New Report icon if you want to create a report.

4.	Click the Blank button to open a blank form or report.

5.	Click Tools, Data Model Designer.

6.	In the Data Model Designer, click File, Open, and either load an existing data model or create a new data model.

7.	Create a data model for the document.

8.	Click Format, Layout.

If the Show Fields button is dimmed, choose a layout style other than Blank to make the button available.

 Note

•	Depending on the options selected in the Forms/Reports page of the Preferences dialog box (Tools, Settings menu), you might not see the New Form or New Report dialog box when you click File, New. Depending on your preference setting, you might see the Data Model dialog box automatically, or you might open an Expert or a blank document.

 Related Topics


Returning to the Design Layout dialog box

The Design Layout dialog box is an excellent aid to laying out your design, but it is only a starting point. You can change the design in a Design window after you close the Design Layout dialog box.

To return to the Design Layout dialog box from a Design window

•	Click Format, Layout.

 Related Topics


To choose a layout style
Choosing a layout style

You specify the initial layout from the Design Layout dialog box, and then refine the layout in the Design windows. If you're working with a multi-table design, the layout style you choose is for the master table.

To choose a layout style

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, do one of the following:

•	Enable the Single-Record button to display one record of the table at a time in a free-form layout.

•	Enable the Tabular button to display rows and columns as if you were working with the table itself.

•	Enable the Multi-Record button to display several records of the table at a time.

•	Enable the Blank button to remove all fields from the design.

 Related Topics


Selecting fields to display

When you create a design document, Corel Paradox includes all fields from all the tables you link to the master table of the document (except for a duplicated field between a linked master and detail table, which is shown only once in the master table).

You can select which fields to display by using the Fields page of the Design Layout dialog box.

To remove a field from the design

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, click the Fields tab.

4.	Choose the appropriate table from the Table list box.

5.	Select the field you want to remove from the Selected Fields list.

6.	Click the Remove Field button.

To change the order of fields in the design

1.	Follow steps 1 to 5 of the preceding procedure.

2.	Do one of the following:

•	To move the field up the list, click the Up arrow.

•	To move the field down the list, click the Down arrow.

To reset fields

•	Click the Reset Fields button on the Fields page of the Design Layout dialog box.

Corel Paradox redisplays all removed fields.

 Notes

•	All changes you make in the Design Layout dialog box can be modified in a Design window. You can replace removed fields in the Design window with the Field tool.

•	Corel Paradox only displays fields from the master table and tables you linked to it in the Design Layout dialog box. You can add fields from unlinked tables to your design in the Design window by using the Field tool.

•	For reports, Corel Paradox also adds fields for the date, the page number, and the title. You cannot remove these fields in the Design Layout dialog box; you must remove them in the Report Design window.

 Related Topics


Displaying fields in columns or rows

For single-record or multi-record layouts, you can display fields in columns or by rows.

To display fields in columns or rows

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, do one of the following:

•	Enable the Single-Record button to display one record of the table at a time in a free-form layout.

•	Enable the Multi-Record button to display several records at a time.

4.	Do one of the following:

•	Enable the By Columns button to display fields in a top-to-bottom column along the left side of the screen. Corel Paradox creates columns as needed until all fields are displayed, and creates additional page images if necessary.

•	Enable the By Rows button to display fields one after another in a row along the top of the screen. Corel Paradox creates additional rows as needed until all fields are displayed, and creates additional page images if necessary.

 Related Topics


Hiding or showing field labels

You can specify whether or not your forms or reports have field labels. A field label is a text object that contains the field name.

To hide or show field labels

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, do one of the following:

•	Enable the Label Fields check box to display field labels.

•	Disable the Label Fields check box to hide field labels.

This option is unavailable in a tabular design.

 Tip

•	In the Design Layout dialog box, you specify how you want the fields to be displayed by default. In a Design window, you can right-click individual fields to turn the display of field labels on or off.

 Related Topics


Choosing a style sheet

Style sheets give your forms and reports a consistent appearance. You can create a style sheet to set the color, size, and style of all of the design objects, such as buttons, boxes, fields, etc. that you use to create forms and reports. You can also choose one of the many style sheets included with Corel Paradox.

You can choose a style sheet using the Design Layout dialog box.

To choose a style sheet

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, choose a style sheet from the Style Sheet list box.

Corel Paradox provides several style sheets, but you can also create your own style sheets. For more information, see Creating a style sheet.

 Related Topics


Displaying objects in columns or rows (multi-table design)

When working with multi-table design layouts, you can display objects (whether they are fields, tables, or multi-record objects) either as columns (up and down the page) or as rows (across the page).

To display objects in columns or rows (multi-table design)

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, do one of the following:

•	Enable the Single-Record button to display one record of the table at a time in a free-form layout.

•	Enable the Multi-Record button to display several records at a time.

4.	Do one of the following:

•	Enable the By Columns button to display fields in a top-to-bottom column along the left side of the screen. Corel Paradox creates columns as needed until all fields are displayed, and creates additional page images if necessary.

Enable the By Rows button to display fields one after another in a row along the top of the [image] Related Topics


Showing detail tables

You specify the style used to display detail tables using the Design Layout dialog box. You can refine the layout in the Design window.

To show detail tables

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box, click the Detail Tables tab.

4.	Do one of the following:

•	Enable the Table button to display detail tables in rows and columns as if you were working with the table itself.

•	Enable the Record button to display several records at a time.

5.	If you enabled the Record button in step 4, do one of the following:

•	Enable the Horizontal button to display multiple records across the page.

•	Enable the Vertical button to display multiple records down the page.

•	Enable the Both button to display multiple records across and down the page.

 Related Topics


To place master records before detail tables
Placing master records before detail tables

In a multi-table design, you can place master records before any related detail tables. You specify the style used to display master records in the Design Layout dialog box.

To place master records before detail tables

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box enable the Multi-record button.

4.	Enable the Fields Before Tables check box to display master records before any related detail tables.

When the Fields Before Tables check box is disabled, detail tables are placed before fields of the master record on the form or report.

 Related Topics


Displaying several master records at the same time

You specify the style used to display master records in the Design Layout dialog box, then refine the layout in the Design window.

To display several master records at the same time

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box enable either the Tabular or Multi-record button to display more than one record at a time from the master table.

Notes

•	In a form, master records can be displayed in either the tabular style or the multi-record style. Detail records can be either nested in the master multi-record object or separate from either a master table or multi-record object.

•	In a report, the master records are always displayed in the multi-record style, and the detail records can be displayed in either a table or a multi-record object nested in the master multi-record object.

 Related Topics


Nesting detail records in a form

In a one to many form design, you can display master records in a multi-record object and place detail records inside that multi-record object. This is called nesting detail records within the master.

The detail tables are displayed in a multi-record object or a table, depending on the option you enable on the Detail Tables page of the Design Layout dialog box.

To nest detail records in a form

1.	Open a form or report in the Design window.

2.	Click Format, Layout.

3.	In the Design Layout dialog box enable either the Tabular or Multi-record button to display more than one record at a time from the master table.

4.	Enable the Multi-Record button.

5.	Enable the Nested check box.

 Related Topics


Nest detail records in a report
Nesting detail records in a report

When you design a report layout, Corel Paradox automatically nests detail objects within master objects whenever you display several master records.

Because nesting is automatic and required, the Nested option does not appear in the multi-table Design Layout dialog box for a multi-table report.

Try to structure your report design so that a record appears on a single page. If you have many detail records for each master record, or many levels of nesting, you should make sure that all detail records will fit on a single page before running the report. You can do this by limiting the size or number of detail records.

For example:

1.	Right-click the table or multi-record object that contains the detail records and click Properties.

2.	In the Properties dialog box, click the Run Time page.

3.	Disable the Show All Records check box.

4.	Click View, View Data to run the form and notice that you don't see all the data.

5.	On the Run Time page of the Properties dialog box, enable the Show All Records check box.

6.	Run the form. This time the detail table expands to include all the data.

 Related Topics


About the design window
About the Form and Report Design window

Use the Design window to create or modify the design of a form or report. The Form and Report Design windows are essentially the same, except that you use one to create and modify forms; you use the other to create and modify reports.

By opening a form in the Design window, you can modify the design of a form or report at any time.

To open a form or report in the Design window

•	With a form or report open, press F8.

 Related Topics


Opening a design document
Opening a form or report

To open an existing form

1.	Click File, Open, Form.

2.	In the Open Form dialog box, select the form you want to open.

3.	Do one of the following:

•	If you want to View the form, enable the View The Form button.

•	If you want to modify the form design, enable the Edit The Form Design button.

•	If you want to open the form as a report (this is a quick way to use a form layout to specify the layout of a report) enable the Open As A Report check box.

4.	To use a form design with a different table, click the Change Table button and select a different table.

5.	Click the Open button.

To open an existing report

1.	Click File, Open, Report.

2.	In the Open Report dialog box, select the report you want to open.

3.	Do one of the following:

•	If you want to view the report, enable the View The Report button.

•	If you want to modify the report design, enable the Edit The Report Design button.

•	If you want to open the report as a form (this is a quick way to use a report to specify the layout of a form) enable the Open As A Form check box.

•	If you want to send the document directly to the printer, enable the Print The Report button.

4.	To use a report design with a different table, click the Change Table button and select a different table.

5.	Click the Open button.

 Related Topics


About Design window Toolbars

The Toolbar in a Form Design or Report Design window contains design tools that you use to place design objects on a form or report. The name of each tool appears on the status bar when you point to it.

For details about design objects, see About design objects.

To display a Toolbar

1.	Do one of the following:

•	Click Tools, Settings, Preferences. On the Toolbars page, enable the Toolbars you want to display.

•	Click View, Toolbars and enable the Toolbars you want to display.

•	Right-click the empty area on any Toolbar and enable the Toolbars you want to display.

•	Right-click the empty area on any Toolbar and click Properties. On the Toolbars page, enable the Toolbars you want to display.

Using the tools in the Design-window Toolbar

You can use the design tools on the toolbar to create a single object, or, you can keep the tool active and create multiple objects of the same kind.

To create an object on a form or report using the Toolbar design tools

1.	Do one of the following:

•	To create a single object of any type, click the tool you want.

•	To create more than one object of the same type, hold down SHIFT while you click the tool you want. The tool remains active until you click the selection arrow or another tool.

2.	Do one of the following:

•	Click the design to place the object at its default size.

•	Click the design and drag to place the object and specify its size.

•	Press SHIFT and click in the design and drag to constrain the object.

The cursor changes to the Selection Tool after you place an object.

Note

•	When you constrain a box, it becomes a square; an ellipse becomes a circle; a line is forced to be horizontal, vertical, or at a 45 degree angle; all other objects (buttons, fields) become square.

To change a design-object's properties

•	Right-click the design object and click Properties.

 Note

•	Keyboard equivalents are not available for the Toolbar's design tools.

 Related Topics


Changing a tool's properties

You can change the default properties of any design tool on the Toolbar

To change a tool's properties

1.	Place the object on the design document.

2.	Right-click the object and click Properties.

3.	Use the Properties dialog box to change any of the tool properties.

4.	With the Properties dialog box still open, right-click the object again and click Copy To Toolbar.

The properties you set for the object are copied to its tool on the Toolbar. These properties are used as defaults for any subsequent objects created with that tool.

To make permanent changes to design tools

Changes you make by using Copy To Toolbar last only for the current session. To make permanent changes to design tools, save the design as a style sheet.

Copying a composite design-object's properties to the Toolbar

You can change the properties of individual components of a composite design object. For example, you can change the properties of a field that is contained by a table frame, then copy the table frame to the Toolbar. All fields in table frames you subsequently place will have the properties that you set.

When you copy composite design objects to the Toolbar, you can customize the following components:

•	table frames: headers, record, and fields

•	multi-record objects: record and fields

•	fields: edit region and text label

•	crosstabs: text labels, fields, and cell regions

•	buttons: text labels

To copy a composite design-object's properties to the Toolbar

1.	Click the design object to select it.

2.	Right-click the object and click Copy To Toolbar.

To save a new style sheet

•	Click Format, Style Sheet and save the current style sheet as a new style sheet.

•	Right-click the Design window Title Bar, click Style Sheet, and save the current style sheet as a new style sheet.

 Related Topics


Copying page properties to the Toolbar

Although the Toolbar does not have a Page tool, you can change the form's page properties, such as color or pattern, and copy them to the Toolbar.

To copy page properties to the Toolbar

1.	Click the background of the page to select the page.

2.	Right-click the page(anywhere in the background), and click Properties.

3.	Click Edit, Copy To Toolbar.

4.	To make the changes permanent, save the design to a style sheet: right-click the Design window Title Bar, click Style Sheet, and save the current style sheet as a new style sheet.

Corel Paradox saves page properties the same way it saves design-tool properties. Every time you create a new form, it will have the same properties as those you saved.

 Related Topics


About rulers
Using the Design window rulers

Both the Form Design and Report Design windows have horizontal and vertical rulers you can use to place, resize, or move design objects. They also have an expanded ruler (used in combination with the horizontal ruler) you can use to edit and format text objects.

When you select a design object, the rulers change color to indicate the object's placement and size.

To set default rulers and their grid settings for all design documents

1.	Click Tools, Settings, Preferences.

2.	Click the Designer page.

3.	Enable or disable options as appropriate. For a complete explanation of the available options, click the Help button.

After you set preferences, every time you open a new form or report, the default rulers are displayed. You can override these settings for the current document after you are in a form or report.

To override the default ruler-display for the current document

•	With a form or report selected in the Design window, click Format, Design Setup and enable the rulers you want to display.

This change only affects the current document.

To display rulers

•	With a form or report open in the Design window, click View, Ruler to place a check mark beside the option.

This menu option toggles between show and hide

To change the grid settings to set the units of measure for both the grid and the rulers

1.	Click Tools, Settings, Preferences.

2.	Click the Designer page.

3.	Do one or more of the following:

•	To choose the unit of measure, choose Inches or Centimeters from the Units list box.

•	Type a number in the Major Division box to specify the spacing between major grid lines (in the specified unit of measure).

•	Type a number in the Minor Division box to specify the number of tic marks, or minor divisions, between major grid lines.

 Notes

•	You can also display rulers when you run a form. Click Format, Form Setup and enable the check box beside each ruler you want to display. To display the enabled rulers, click View, Rulers so that a check mark appears beside the option.

•	You can override grid settings for the current document by clicking Format, Design Setup and changing the settings as appropriate.

 Related Topics


About the expanded rulers
About the expanded ruler

The expanded ruler, used in conjunction with the horizontal ruler, is an editing and layout tool for use with a text object. Use it to adjust margins, tabs, line spacing, and text alignment.

Using the expanded ruler

You must first select a text object.

The expanded ruler applies to only one text object at a time. It is displayed regardless of the object selected, but the tab, indent, and margin markers appear only when you place an insertion point in a text object (not when you select the object as a whole). The tab, indent, and margin markers apply only to the text object in which you are working.

Selecting text for formatting

•	When you select the entire text object, the expanded ruler's settings apply to all the text within it.

•	When you select specific text and change the settings, the changes apply only to the selected text (except for spacing and alignment settings, which always apply to all the text within a paragraph.

•	When you position the insertion point in the text object without selecting any text, changes to that paragraph take effect.

 Note

•	For text formatting, you can also use a special Text Formatting Toolbar. To display this Toolbar, click View, Toolbars, and enable the Text Formatting Toolbar. You can also right-click to the right of the Design Object Toolbar enable Text Formatting. To display this Toolbar every time you open a design document, click Edit, Preferences and enable the Text Formatting Toolbar on the Toolbar page of the Preferences dialog box.

 Related Topics


Displaying the expanded ruler

To display the expanded ruler:

•	Click Format, Design Setup and enable the Expanded Ruler check box on the Designer page to display the expanded ruler in the current window.

•	In the Design window, click View, Ruler so that a check mark appears beside the option.

To specify which rulers display by default in the Design window

•	Click Tools, Settings, Preferences. On the Designer page, enable the rulers you want to display each time you open the Design window. Horizontal Ruler are enabled by default.

Using the buttons on the expanded ruler to lay out text in a text object, you can adjust alignment, tabs, and line spacing.

 Related Topics


Placing tabs

Tabs are set in the Design window with the mouse. Tabs can be set on the horizontal ruler, but to change the type of tab, you need to use the expanded ruler. Default tabs in the ruler and expanded ruler are a half inch apart.

To add a tab marker

1.	Place a text object on a form or report in the Design window and turn on the expanded ruler.

2.	Click inside the text object. (The insertion point must be in a text object.)

3.	Click a Tab [image] button on the expanded ruler.

4.	Click the tab well to place the tab marker.

Paradox deletes default tabs to the left of tab markers you place the new tab.

The following types of tabs are available:

Left:
Text following the tab is pushed right so that its left edge lines up under the tab marker. This is the most typical tab type.

Right:
Text following the tab is pushed left so that its right edge lines up under the tab marker.

Center:
Text following the tab is centered under the tab marker.

Decimal:
Decimal points line up under the tab marker. Use a decimal tab to align columns of figures at the decimal point.

 Related Topics


Moving or deleting tabs

To move a tab

•	Drag it to a new location.

To delete a tab

•	Drag it away from the ruler.

 Notes

•	You cannot move or delete the default tabs.

•	If you don't place any tabs, Paradox uses default tab settings to place tabs that you can't move or delete. When you place a tab, all default tabs to its left are removed. To delete all default tabs, place a tab near the right margin. You can move and delete the tabs you place. If you delete all the tabs you place, Paradox returns to its default tab settings.

 Related Topics


Adding indentations

Use indent markers [image] in the ruler or expanded ruler to place indents and create hanging paragraphs in the selected text object.

To place an indent

•	From inside a text object, drag the indent marker in the tab well to the location you want.

When the indent marker is to the right of the margin marker, the paragraph is indented. When the indent marker is to the left of the margin marker, the paragraph is outdented.

To move an indent marker

•	Drag it to a new location.

 Related Topics


Changing margins

Change margins for a text object in the ruler or expanded ruler. The default margins of your text are the left and right borders of the selected text object.

To change a margin

•	Drag the margin icon [image] to the tab well location you want.

 Related Topics


Changing text alignment

Paradox establishes the default margins of text by the location of the text object. By default, text is aligned along the left edge of the object. You can align text at the left or right margin, down the center of the text object, or at both the left and right margins.

Use the alignment [image] buttons in the expanded ruler to align text objects.

The alignment buttons are left, centered, right, and justified.

To change text alignment

1.	Do one of the following:

•	Click the alignment button you want before you begin typing. If no text is selected, the next text you type will be aligned the way you chose.

•	Select the text and then click the appropriate alignment button.

 Related Topics


Changing vertical line spacing

Using the expanded ruler to change spacing is faster than changing an object's properties.

To change vertical line spacing

•	Click the line spacing [image] button for the selected text. Choose 1 for single-spaced text, 2 for double-spaced, and so on. The default spacing is single-spaced.

If no text is selected, the next text you type will be spaced the way you chose.

 Tip

•	You can also use the Text Formatting Toolbar to change vertical line spacing. To display this Toolbar, click View, Toolbars and  enable the Text Formatting Toolbar.

 Related Topics


About the grid
Using the grid

The grid is a background of horizontal and vertical lines that help you align the placement of design objects on the page.

To display the grid

•	With the appropriate form or report open in the Design window, click View, Grid so that a check mark appears beside the option.

Corel Paradox displays major grid lines and minor grid ticks. Lines show the grid's major divisions, and dots show the grid's minor divisions. Use the grid to align the design objects on the page.

The unit of measurement used by the grid is the same as the unit of measurement displayed in the ruler. For example, if metric measurements are used in the ruler, the grid increments are metric as well.

Units	Choose inches or centimeters as the unit of measure.

Major Division	Specify the distance (in the units chosen) between major grid lines.

Minor Division	Specify the number of minor divisions (shown by tic marks) between major grid lines.

To change the scale or unit of measurement of the grid

•	Click Tools, Settings, Preferences to set the default grid settings for all forms and reports.

 Tip

•	If the grid is visible in the Report Design window, you can right-click a band and choose Move Grid To Band to reorient the grid at the top left corner of the band.

 Note

•	The grid does not have to be visible for you to use it.

 Related Topics


Viewing (showing) the grid
Displaying the grid

When you show the grid, Paradox displays major grid lines and minor grid ticks. Showing the grid helps you line things up by eye, or see where design objects are snapping if you have enabled the Snap To Grid property (Format menu).

To display the grid

•	With a form or report open in the Design window, click View, Grid so that a check mark appears beside the option.

Corel Paradox displays major grid lines and minor grid ticks.

 Related Topics


Aligning design objects at the grid line (snap to grid)

Corel Paradox can align all design objects directly on the grid lines (major or minor) whenever you place, resize, or move them.

When a design object snaps to the grid, its top left corner is moved to the nearest intersection of grid lines. An object aligns by its upper left corner or by the edge you are resizing.

To snap objects to the grid

•	With a form or report open in the Design window, click Format, Snap To Grid so that a check mark appears beside the option.

 Notes

•	Design objects stay where they are until you move or resize them.

•	Internally generated resizes (such as when you add text to a text object or define a field object) do not snap to the grid.

•	If an object cannot move to that position (because it is blocked by the edge of its container, for example), it will get as close as possible.

•	The grid has no influence on the position of objects contained in text.

 Related Topics


Zooming forms and reports

You can change the scale of a form or report onscreen. You can zoom out (decrease the scale and see a larger area) or zoom in (increase the scale and see part of the document up close).

To zoom forms and reports

•	With a form or report open in the Design window, click View, Zoom and click one of the following:

•	25% or 50% takes a step back from your document

•	200% or 400% takes a closer look at your document

•	Fit Width fits the width to the window

•	Fit Height fits the height to the window

•	Best Fit fits the entire document to the window

 Related Topics


About Designer preferences

The Designer preferences affect the behavior and display of Design windows, and are common to both Form Design and Report Design windows. These preferences can be set as defaults when you click Tools, Settings, Preferences, or changed as settings in the current Design window. Default preferences are used each time a Design window is opened. Settings are temporary and are thrown away when document is closed.

The Designer page contains the following Design window preferences.

•	Select From Inside specifies how to select design objects contained by other objects.

•	Frame Objects specifies whether to display onscreen design objects with or without frames.

•	Flicker-Free Draw suppresses screen flashes when you move or resize design objects.

•	Outlined Move/Resize specifies what you see when you move or resize a design object: the object itself or an outline of the object.

•	Grid measurements specifies the unit of measure and the distance between major grid lines and minor tic marks between grid lines for a grid or a ruler.

•	Ruler specifies which rulers to display in the Design window.

 Related Topics


Select From Inside

When you click an object that is contained by another object, the Select From Inside option on the Designer properties page specifies how Paradox selects the object.

Suppose you have an ellipse contained in a box. When you click the ellipse, what do you want selected [image] the box or the ellipse?

•	If Select From Inside is disabled, Corel Paradox selects the outermost object first. This means, even though you click inside, Corel Paradox selects the outer object first. The second click selects the ellipse.

Similarly, if a field is contained in an ellipse contained in a box, and you click the field, the first click selects the box, the second click selects the ellipse, and the third click selects the field.

•	If Select From Inside is enabled, Corel Paradox selects the object you click. For example, if you have a field contained in an ellipse contained in a box, you can click the field to select the field, click the ellipse to select the ellipse, and click the box to select the box.

 Tips

•	Double-click an object contained by another object to select it immediately, regardless of whether Select From Inside is enabled.

•	When you have selected an object contained by another object, you can press ESC to select the next outermost object. For example, if you select an ellipse within a box, press ESC to select the box.

 Related Topics


Frame Objects

You can display objects on your screen with or without frames by using the Frame Objects option on the Designer properties page.

See Displaying frames for design objects for more information.

 Related Topics


Flicker-Free Draw

Sometimes the screen flashes a bit when you move or resize objects. This is especially noticeable when your design has a dark background. To suppress this behavior, you can enable the Flicker-Free Draw option.

To keep your screen from flickering when you resize or move objects.

1.	Click Tools, Settings, Preferences.

2.	Click the Designer page.

3.	Enable the Flicker-Free Draw check box.

Turning Flicker-Free Draw on eliminates some screen flickering, but it can cause the movement or resizing of objects to be slower. Experiment by turning the option on and off to see which works best for you.

 Related Topics


Outlined Move/Resize

You can specify how you want Corel Paradox to display objects when you move or resize them. You can have Corel Paradox display the object itself move, expand, or shrink as you move and resize it. Or, to be able to move and resize objects faster, you can have Corel Paradox display only the outline of the object as you move, expand, or shrink it.

To specify how you want Corel Paradox to display objects as you move/resize them

1.	Click Tools, Settings, Preferences.

2.	Click the Designer page.

3.	Do one of the following:

•	Enable the Outlined Move/Resize check box to see an outline of an object as you move or resize it.

•	Disable the Outlined Move/Resize check box to see the object itself as you move or resize it.

For more information see Displaying outlines for design objects while moving or resizing.

 Related Topics


Setting designer preferences

Corel Paradox Preferences command control the default properties for the form and report Design windows. You can specify the following preferences:

Select From Inside

Frame Objects

Flicker-Free Draw

Outlined Move/Resize

Grid measurements

Ruler

To set default Designer preferences

1.	Click Tools, Settings, Preferences.

2.	Click the Designer page.

3.	Enable or disable preferences as appropriate.

Preferences set here become the default settings for both Design windows. Each time you open the Form Design or Report Design window, Corel Paradox uses these settings.

 Note

•	Changing the default Designer preferences has no effect on an open form or report. You must close the document, then re-open it to use the new default preference settings.

 Related Topics


About style sheets

If you are creating multiple forms and reports, you may want them have a consistent appearance. For example, you may want all text in the form to be green and all boxes to be blue. Instead of creating these objects and then modifying their properties manually each time you create a new form or report, you can use a style sheet that applies these properties as you create the objects.

Normally, if you change the properties of a design object, for example, if you change the ellipse tool properties so that all ellipses you create have a thick outline, these properties remain as you've changed them until you exit Corel Paradox. Style sheets allow you to save these changes so that you can easily create forms and reports with a consistent look.

 Related Topics


Creating or saving a style sheet

Paradox provides several style sheets. You can also create and save your own style sheets.

To create or save a style sheet

1.	Create your form or report, modifying the properties of the design tools as appropriate. See Changing a tool's properties. for more information.

2.	With a form or report open in the Design window, click Format, Style Sheet.

3.	In the Style Sheet dialog box, do one of the following:

•	To modify an existing style sheet, select that style sheet from the list and click the Save button.

•	To create a new style sheet, click the Save As button. From the Save File As dialog box, and type the filename and path of the new style sheet in the File Name box.

 Related Topics


Applying a style sheet

You can apply a style sheet to a form or report at any time. When you apply a style sheet, all changes you make to the form or report thereafter will conform to the style sheet. Objects already on the form and report retain their original properties.

To apply a style sheet

1.	Right-click the form or report title bar and click Style Sheet.

2.	In the Style Sheet dialog box, select a style sheet.

 Tip

•	You can change the default style sheet using the Preferences command (Tools, Settings menu). Or, you can choose a different style sheet in the Design Layout dialog box.

 Related Topics


Changing to a different style sheet

To change to a different style sheet

1.	Right-click the form or report title bar and click Style Sheet from the menu.

2.	In the Style Sheet dialog box, select a different style sheet.

 Related Topics


Specifying a default style sheet

If you want all of your forms and reports to have a uniform look, you can set the default style sheet, which Corel Paradox will use to create all forms and reports.

To specify a default style sheet

1.	Click Tools, Settings, Preferences.

2.	In the Preferences dialog box, click the Forms/Reports tab.

3.	Do one or more of the following:

•	To specify a default style sheet for the screen, choose a style from the Screen Style Sheets list box.

•	To specify a default style sheet designed for the printer, choose a style from the Printer Style Sheets list box.

 Note

•	The extension of the style sheet (.FT or .FP) depends on whether your design document is designed for the screen (.FT), or designed for the printer (.FP).

 Related Topics


Accessing a style sheet from any working directory

When you save a style sheet, Corel Paradox stores it in the current working directory. You can, however, make the style sheet available from any project by saving it to the root Corel Paradox directory.

To access a style sheet from any project

•	Move the style sheet to the Paradox root directory.

1.	Click Tools, Utilities, Rename.

2.	Choose Screen Style Sheets from the Files Of Type list box.

3.	Type the name of the appropriate style sheet in the File Name box.

4.	Click the Open button to display the Rename To dialog box.

5.	Type the new path for the style sheet in the File Name text box. For example, if you installed Corel Paradox to the default directory, you would rename the file to C:\Corel\Paradox\Mystyle.FT.

6.	Click the Save button.

 Related Topics


Saving a form or report design

When you save a form or report, you save the design, not the data itself. Corel Paradox always saves data to the appropriate table when you leave each record.

To save a form or report design

1.	With a form or report open in the Design window, click File, Save.

2.	Type a name for the form or report in the File Name box.

3.	Click the Save button.

It isn't necessary to type a file extension when you save a design document. Corel Paradox automatically gives design documents the appropriate extension so Paradox can access them by their type.

 Related Topics


Setting form and report default preferences

You can specify how Corel Paradox creates new forms and reports, whether forms and reports open in design mode, the size of the form screen page, and the style sheet for the initial appearance of design objects. After selecting these preferences, every form or report you open will use these settings.

To set form and report default preferences

1.	Click Tools, Settings, Preferences.

2.	In the Preferences dialog box, click the Forms/Reports tab.

3.	Enable preferences as appropriate. For an explanation of each option click the Help button in the dialog box.

 Related Topics


About design objects

Design objects are objects you place in forms and reports in a Design window. You create design objects with Toolbar tools. Design objects include

•	text objects

•	boxes, lines, and ellipses

•	fields and table frames

•	crosstabs and charts

•	multi-record objects

•	buttons

•	graphics

•	OLE objects

•	notebook objects

•	OLE and native Windows controls

Some objects (like buttons) and OLE controls can be used only in forms, and other objects, such as bands, are used only in reports.

All design objects, except for the text object, have a default size. Click the appropriate tool on the Toolbar, then click in the form or report to place the object. Corel Paradox creates the object at its default size. You can resize any object by dragging the sizing handles that surround the object. For more information about changing the size of design objects, see Changing the size and shape of a design object.

 Related Topics


Selecting a design object

To select a design object

1.	With a form or report open in the Design window, do one of the following:

•	To select a field, click the object.

•	To select specific text, click and then click again to place the cursor in the text; drag to select the text.

•	To select multiple objects, hold down SHIFT and click the objects.

•	To select adjacent objects, hold down SHIFT and click and drag to surround the objects with a box.

Handles appear around the selected object and the name of the object appears on the Status Bar in the lower-right of your screen.

For information about selecting contained objects, see Selecting a contained design object.

To deselect a design object

•	Hold down CTRL and click the object you want to deselect.

 Related Topics


Making a design object selectable or unselectable

By default, you can select any object in a Design window. When an object is made unselectable, you can select any object it contains, but you cannot select the container object. This means you cannot move the object or perform any other action that requires the object to be selected. You can still change its properties by right-clicking it and clicking Properties.

To prevent an object from being selected

1.	With a form or report open in the Design window, right-click the object and click Properties.

2.	Click the Design page.

3.	Disable the Selectable check box.

 Related Topics


Placing a design object on a form or report

To place a design object on a form or report

1.	With a form or report open in the Design window, click the tool you want to use.

2.	Do one of the following:

•	click the form or report to place the object at its default size

•	click and drag to size the object as you place it.

Tip

•	You can constrain lines, boxes, and ellipses if you hold down SHIFT when you click or click and drag. When you constrain a box, it becomes a square; an ellipse becomes a circle; a line is forced to be horizontal, vertical, or at a 45-degree angle.

To keep an tool active so you can create multiple objects of the same type

•	Hold down SHIFT when you click the tool you want from the Toolbar. The tool remains active until you click another tool, or click the Selection Arrow.

 Note

•	Keyboard equivalents for the Toolbar's design tools are not available.

 Related Topics


Duplicating a design object

You can place a duplicate of an object adjacent to the original object.

The duplicated object is a completely independent object, just as if you had copied the original to the Clipboard and then pasted it into your report or form, or created it using the tool on the Toolbar. The object is not placed on the Clipboard.

Duplicating a table or multi-record object

If the object you are duplicating is a table or multi-record object, a duplicate would violate the rule that a report cannot have two objects of the same type that represent the same table in the data model. When you duplicate an object of this type, Corel Paradox creates the object with an undefined table that has the same table-level properties (for example color and column positions) but in which the fields are replaced by undefined fields.

To duplicate a design object

1.	With a form or report open in the Design window, select the object you want to duplicate.

2.	Click Edit, Duplicate.

Corel Paradox puts a copy of the selected design object just below the original design object. You can move and resize the copy.

You can duplicate objects only within the same Design window, not from one window to another.

 Related Topics


About grouping design objects

You can group objects to have them behave as one object during certain operations.

When you select a group, a single set of handles form a rectangle that surrounds the whole group. You can move or delete the group as a whole. Groups act like other containers, except they contain only the objects you selected. They are especially useful if you want some, but not all, close objects to act like a unit. Use groups to

•	create a collection of objects that you want to use as a one object

•	preserve the relative positions of design objects when you move or resize them

•	Influence tab order in forms

Corel Paradox's default tab order moves to every object within a group before if moves outside the group. The most effective way to influence tab order is to use the Run Time Tab stop property.

A group can't contain another object that isn't a member of the group, even if that object is completely within its borders. To add another member to the group, you can either create a new group or ungroup and redefine the group.

Groups can exist within other groups. You can select a group and select other design objects, then group all of them together. The first group remains intact within the larger group.

You can view or change a group's properties, and you can attach ObjectPAL methods to the group.

 Related Topics


To group design objects
Grouping design objects

You can group objects to have them behave as one object during certain operations.

To group design objects

1.	With a form or report open in the Design window, hold down SHIFT and click each object individually. The objects must all belong to the same container.

2.	Click Format, Group.

To ungroup objects

1.	With a form or report open in the Design window, click the grouped objects.

2.	Click Format, Ungroup.

 Tip

•	When you run a form, Corel Paradox's default tab order moves to every object contained within an object before it moves outside the container object. You can use groups to change this tab order when you want to move among specific objects more quickly.

 Related Topics


Stacking design objects

Objects in a design document can be on top of or underneath other objects. You can change the layering of objects or groups of objects.

To stack design objects

1.	Select the object you want to stack.

2.	Do one of the following:

•	Click Format, Order, Bring To Front to move the selected object in front of all other objects.

•	Click Format, Order, Send To Back to move the selected object behind all other objects.

 Notes

•	If you select a group of objects and click Bring To Front, the internal ordering of the group is maintained and the entire group is brought to the front

•	Bring To Front and Send To Back change the order only within a container.

•	If objects have transparent colors, it might be difficult to determine their order.

•	Tab order in the Design windows corresponds to stacking order (back to front). You can use the stacking commands to adjust your form or reportdesign tab order. Stacking order does not affect tab order at runtime which is controlled by the Tab Stop and Choose The Next Tab Stop properties.

 Related Topics


Displaying frames for design objects

You can display objects on your screen with or without frames.

To display frames for design objects

1.	With a form or report open in the Design window, click Format, Design Setup.

2.	In the Settings dialog box, enable the Frame Objects check box.

Notes

•	When you enable the Frame Objects check box, objects without a clear frame or outline are outlined by dotted lines to help you see them. You might want to disable this option if you have many of these objects to avoid a cluttered look.

•	When you disable the Frame Objects check box, Corel Paradox shows a frame only if you have changed the object's Frame property (the frame's color, style, or thickness). These frames appear only in Design windows.

 Related Topics


To display outlines for design objects while moving or resizing
Displaying outlines for design objects while moving or resizing

You can specify what you see when you move or resize an object.

To display outlines for design objects while moving or resizing

1.	With a form or report open in the Design window, click Format, Design Setup.

2.	In the Settings dialog box, enable the Outlined Move/Resize check box.

Notes

•	When you disable the Outlined Move/Resize check box, Corel Paradox displays the object itself whenever you move or resize it. Most moving and resizing operations are faster when you enable the option because Corel Paradox does not redraw the screen image until the operation is complete. However, some operations are clearer when you can see what is happening throughout the operation.

•	When you enable the Outlined Move/Resize check box, Corel Paradox displays the outline of the object whenever you move or resize the object.

 Related Topics


Displaying design object size and position on the Status Bar
Displaying the size and position of design objects on the Status Bar

You can display the size and position of design objects on the Status Bar as you create or resize them.

When you move or resize an object, the left side of the Status Bar tells you which object is moving and gives its position. This can help you move or resize objects more accurately. When you finish moving or resizing, the size and position at the right of the Status Bar are updated.

To display design-object size and position on the Status Bar

•	Click View, Size And Position.

The right end of the Status Bar displays the position (based on an XY axis) and size of the selected object.

 Note

•	On the View menu, Ruler, Grid, and Size And Position are settings, not properties or preferences.

 Related Topics


Moving design objects

You can move objects in a form or report by using either the mouse or the keyboard. You can also move objects indirectly by using the Align and Adjust Spacing commands (Design menu).

To move a design object

1.	With a form or report open in the Design window, select the object you want to move.

2.	Do one of the following:

•	Drag the object to its new position.

•	Use the arrow keys to move the object to its new position.

 Tip

•	When you move an object, holding down SHIFT while you drag forces the object to move only horizontally or only vertically. If you move the mouse along a diagonal line that is flatter than 45 degrees, the object moves horizontally; otherwise, the object moves vertically.

 Related Topics


Aligning design objects

You can align design objects to the left, right, and center horizontally, and to the top, bottom, and middle vertically.

To align design objects

1.	With a form or report open in the Design window, hold down SHIFT and click to select the objects you want to align.

2.	Click Format, Alignment and click one of the following options:

•	Click Align Left to align the left side of each object with the left side of the left-most object.

•	Click Align Center to align the midpoints of the objects vertically.

•	Click Align Right to align the right side of each object with the right side of the right-most object.

•	Click Align Top to align the right side of each object with the top of the highest object.

•	Click Align Middle to align the midpoints of the objects horizontally.

•	Click Align Bottom to align the bottom of each object with the bottom of the lowest object.

Notes

•	Objects that are inside a table, align within their column.

•	Object never leave their containers  to align; the objects move as far as they can in the indicated direction. Aligning objects does not break the container relationship.

•	Objects that are in different bands in report cannot be aligned vertically using the Format, Alignment command.

•	Objects move to the closest grid point if the Snap To Grid propertey is enabled.

 Related Topics


Adjusting the spacing of design objects

You can adjust design objects so that the space between the objects is exactly the same.

To adjust the spacing of design objects

1.	With a form or report open in the Design window, hold down SHIFT and click to select the design objects you want to adjust.

2.	Do one or both of the following:

•	Click Format, Spacing, Horizontal to adjust the horizontal spacing between the objects.

•	Click Format, Spacing, Vertical to adjust the vertical spacing between the objects.

 Related Topics


Pinning design objects in place on a form or report

To make sure an object in a form or report does not get moved accidentally in the Design window, pin the object to the design. You can move pinned objects by actions such as Design, Align. Pinning only prevents you from inadvertently moving an object with the mouse.

You pin an object relative to its container. You can move a pinned object's container as long as the container itself is not pinned.

To pin design objects on a form or report

1.	With the form or report open in the Design window, right-click the object and click Properties.

2.	Click the Design tab.

3.	On the Design page of the Properties dialog box, do one or both of the following:

•	Enable the Pin Horizontal check box if you want to be able to move the object up or down, but not left or right.

•	Enable the Pin Vertical check box if you want to be able to move the object left or right, but not up or down.

 Notes

•	Moving or resizing an object to surround a pinned object does not cause the pinned object to become contained, even if it is fully within the resized object's boundaries.

•	Pinning has no influence on objects that contain text.

 Tips

•	Enable both Pin Horizontal and Pin Vertical to keep an object from moving in either direction.

•	In addition to pinning objects in the Design window, you can also pin them when you run (print or view) a report. See Pinning design objects at runtime.

 Related Topics


Changing the size and shape of a design object

To change the size, shape, or position of a design object

1.	With a form or report open in the Design window, click the object you want to resize.

2.	Do one of the following:

•	Drag the object.

•	Hold down SHIFT and drag a corner handle to constrain the object.

All objects except lines maintain their current proportions. Lines are forced to be horizontal, vertical, or 45 degree angles.

 Tips

•	To make a box bigger, drag one of its handles.

•	If a text object does not resize with the handles, try right-clicking the text object and clicking Properties. Change the size of the text using the Font page of the Properties dialog box.

•	You can only resize the first page in a form. The handles on the other pages only show when the pages are selected.

•	If an OLE object or bitmap does not resize with handles, turn off its Size To Fit property. (Right-click the object, click Properties, and disable the Size To Fit check box on the Design page of the Properties dialog box.)

•	If an object has the Pin property enabled, it does not move in the pinned direction when you drag.

 Related Topics


Adjusting the size and spacing of multiple design objects

You can adjust the size and spacing of design objects to achieve a symmetrical look. For example, if you create a group of buttons you can make them all exactly the same width and height.

If Corel Paradox cannot resize an object, it disregards that object and resizes all other objects.

To adjust the size and spacing of multiple design objects

1.	With a form or report open in the Design window, hold down SHIFT and click to select the objects you want to adjust.

2.	Do one or more of the following:

•	Click Format, Size, Minimum Width to resize all objects to the width of the narrowest object.

•	Click Format, Size, Maximum Width to resize all objects to the width of the widest object.

•	Click Format, Size, Minimum Height to resize all objects to the height of the shortest object.

•	Click Format, Size, Maximum Height to resize all objects to the height of the tallest object.

 Related Topics


Sizing a field object

You can make a field expand or contract in the Design window when its contents gets larger or smaller. (This can happen when you make changes to the field-object properties  such as display type, font, or size.)

To size a field object

1.	With a form or report open in the Design window, right-click the field object and choose Properties.

2.	Click the Design tab.

3.	Enable the Size To Fit check box.

For more information about the Size To Fit property, see Size To Fit.

 Related Topics


About contained design objects

When one object exists completely within the borders of another, it can be "contained" by the outside object. Contained objects move when you move their containers and are deleted when you delete their containers. To be a container, an object must have the Contain Objects property enabled on its Design menu. Otherwise, objects within its borders remain independent.

By default, all objects that can use the Contain Objects property have that property enabled on the Design page of the Properties dialog box (right-click object, click Properties, and enable the Contain Objects check box on the Design page of the Properties dialog box).

If you disable this property for an object, the object moves independently of any objects within its boundaries. When enabled, all objects within the object's boundaries become contained by the object.

You cannot change the Contain Objects property on some objects (table frames, records, fields, pages, bands in reports, multi-record objects, crosstabs, and pages in forms). The contents of these objects can exist only as part of the object. For example, a record cannot exist apart from the table frame within which it is contained.

Tab order

The containership hierarchy influences default tab order because you must tab to all objects within a container before you can tab out of the container. You can alter the tab order more effectively by changing the Choose The Next Tab Stop property on the Run Time page of the object's Properties dialog box.

To examine the containership hierarchy of your design, use the Object Explorer button.

Unbreakable contained relationships

You cannot move certain objects out of their containers under certain circumstances. For example, if you are working with a labeled field object, you cannot move either the field label (a text object) or the field edit region out of the container. This is because the labeled field object, by definition, includes all three parts in a contained relationship.

 Related Topics


Creating a contained design object

To create a contained design object

1.	With a form or report opened in the Design window, select the container object.

2.	Right-click the object and click Properties.

3.	Click the Design tab.

4.	Enable the Contain Objects check box.

5.	Place the object you want to contain inside the container object by doing one of the following:

•	Create a new object within the borders of an existing object.

•	Move an existing object completely within the borders of another object.

•	Move or resize a container around an object.

•	Paste an object into another object.

The contained object must be completely within the borders of the container object. If the container object has a frame, the contained object must be completely within the frame.

If Snap To Grid is enabled, it may be difficult to contain one object in another because both objects might try to align on the same grid line. In this case, resize one or both of the objects so they snap to different grid lines, or turn off Snap To Grid.

 Tip

•	You can contain objects in tables only if they fit fully within a column and row. If you remove a field from a table, it can be very difficult to put the field back if the cell the field left was exactly sized to fit (as they are by default). In such a case, try widening the column slightly and making the row slightly larger.

 Related Topics


Select a contained design object
Selecting a contained design object

Suppose you have an ellipse contained in a box. By default, when you click the ellipse, Corel Paradox selects the outermost object first. Therefore, although you click inside the ellipse, Corel Paradox selects the box. A second click selects the ellipse

To have Corel Paradox select a contained object on the first click permanently

1.	With a form or report opened in the Design window, click Tools, Settings, Preferences.

2.	Click the Designer tab.

3.	Enable the Select From Inside  check box.

To have Corel Paradox temporarily select a contained object on the first click

1.	With a form or report open in the Design window, click Format, Design Setup.

2.	Enable the Select From Inside check box.

 Related Topics


Breaking a container relationship

To break a container relationship

Do one of the following:

•	Right-click the container object, click Properties and disable the Contain Objects check box on the Design page of the Properties dialog box.

•	Select the contained object and move it outside the border of the container.

You do not need to move the contained object completely outside the container borders. The relationship is broken when a part of the contained object is moved outside the container frame.

 Related Topics


Deleting a contained design object

If you delete an object that has the Contain Object property enabled, Corel Paradox deletes the object and everything it contains.

Keep these rules in mind when you delete objects in container relationships:

•	Deleting a container deletes any objects in the container.

•	Deleting a contained object does not affect its container.

To delete a contained design object

1.	Select the contained object you want to delete.

2.	Press DELETE.

 Related Topics


Deleting a container but not its contained objects

To delete a container but not its contained objects

1.	With a form or report open in the Design window, select the container object you want to delete.

2.	Right-click the container and click Properties.

3.	Disable the Contain Objects check box.

4.	Delete the container.

 Note

•	Alternatively, you can multi-select the contents and move them out of the container or cut them to the Clipboard, delete the container, and move or paste the objects back into position.

 Related Topics


Changing the name of a design object

You can change the name of most design objects.

To change the name of a design object

1.	With a form or report open in the Design window, right-click the object and click Properties.

2.	On the General page of the Properties dialog box, type the new name for the object in the Name Of Object box.

 Notes

•	Object names can be 32 characters long.

•	Object names cannot begin with a number or symbol.

•	Changing the name of a design object can cause problems if you have referred to that object in a function or method.

•	Only letters, numbers, the underline character ("_"), and the pound sign ("#") can be used in an object name. Object names cannot contain spaces.

 Related Topics


About scroll bars in forms

Objects in forms and reports can have scroll bars, but the scroll bars differ in forms and reports.

When you place a scroll bar on an object in a form design, the scroll bar appears when the form runs, and the user can scroll through the object.

You can add scroll bars to the following object types:

•	text objects(vertical scroll bar only)

•	graphic objects

•	OLE objects

•	field objects

•	table frames (Corel Paradox automatically places a horizontal scroll bar along the bottom of a table frame if you define a table that is too large to fit on the page when the Size To Fit check box is enabled on the Design page of the Properties dialog box.)

•	multi-record objects

•	notebook objects (For more information, see Placing a scroll bar on a notebook.)

•	form pages

•	report pages in the Design window

Scroll Bar properties

 Horizontal Scroll Bar property

 Vertical Scroll Bar property

 Related Topics


About scroll bars in reports

Objects in forms and reports can have scroll bars, but the scroll bars differ in forms and reports.

Some objects in reports can have scroll bars, but the scroll bars do not appear when the report is being previewed or printed. You use the scroll bars in a Report Design window to view text and graphics that don't fit in their allocated space. At runtime, the object expands to fit its contents and the scroll bars disappear. When the object expands, it may push other objects that are beneath it or to the right.

Text objects

When you work with a text object in the Report Design window, you can place a vertical scroll bar along its right side. You can then enter large amounts of text in the Design window without resizing the text object.

When you run the report, Corel Paradox can expand the text object vertically down the page to display its entire contents. The expansion of the text object may push objects that are beneath the text object. You can control the effects of object expansion by setting runtime properties on the Run Time page of the Properties dialog box. For information, see Run Time page (reports).

Graphic and OLE objects

If you resize a graphic or OLE object container to be smaller than its contents, you can place scroll bars across its bottom or along its right side. Use the scroll bars to view different sections of the object. Use this technique to crop the object to show only part of it.

When you preview or print the report, the object's Size To Fit property on the Run Time page determines whether the frame expands to fit the contents or remains fixed and shows only part of the graphic or OLE object.

Tables and multi-record objects

You can place a horizontal scroll bar on a table frame in a report to allow you to scroll through the table frame in the Report Design window. When you run the report, Corel Paradox deletes the scroll bar and expands the table frame to display its entire contents. The expansion may push objects that are beneath the table frame. You can control the effects of object expansion by setting the runtime properties on the Run Time page of the Properties dialog box. For information, see Run Time page (reports).

If a table's contents are too wide to fit on the page, you can indicate in the Print File dialog box how to handle data that do not fit on the page.

Scroll Bar properties

 Horizontal Scroll Bar property

 Vertical Scroll Bar property

 Related Topics


To place a scroll bar
Placing a scroll bar on an object

To place a scroll bar on an object

1.	With a form or report open in the Design window, right-click the object click Properties.

2.	On the General Page of the Properties dialog box, enable one of the following check boxes:

•	Enable the Horizontal Scroll Bar check box to place a scroll bar along the bottom of the object.

•	Enable the Vertical Scroll Bar to place a scroll bar along the right side of the object.

For information on using scroll bars in forms and reports, see the About scroll bars in forms and About scroll bars in reports

 Note

•	The scroll-bar properties vary depending on what object you have selected. For example, text objects do not have Horizontal scroll bars.

 Related Topics


Changing the width of a scroll bar

Corel Paradox's default scroll bar is narrow.

To display a standard-width scroll bar

1.	With a form or report open in the Design window, right-click the object and click Properties.

2.	On the General page of the Properties dialog box, enable the Wide Scroll Bar check box.

This setting affects both the horizontal and vertical scroll bars for the selected design object.

 Related Topics


Changing properties from the Object Explorer

If your form or report contains many objects, and especially if you attach ObjectPAL code to them, you might forget what something does or its name. Corel Paradox provides a way to view the design and see all objects you have placed.

The objecttree of the Object Explorer displays a schematic diagram of your form or report design. This diagram shows you the design objects and their relationship to one another. The object tree is especially useful if you have a large design and do not want to use the scroll bars to navigate around your design.

For more information about the Object Explorer, see Object Explorer.

To change the properties of a design object

1.	Display the Object Explorer in one of the following ways:

•	Press CTRL+SPACEBAR.

•	Click Tools, Object Explorer.

•	Right-click an object and click Object Explorer.

2.	Click an object in the object tree.

3.	Use one of the following methods to change an object's properties:

•	In the object tree, right-click the object and click Properties. Change the properties on the appropriate property page.

You can use the arrow keys to move from object to object in the object tree.

•	In the tabbed Property page, right-click the property and click Edit Property. Press ENTER and type the name of the new property.

4.	Click File, Print to print the diagram, or File, Close to close the object-tree window.

 Related Topics


Changing penetrating properties

Penetrating properties are properties that Corel Paradox can apply to any object in a selected group and to any objects contained by a selected object. You can use the penetrating properties to change the properties that multiple objects have in common in a form or report. For example, if, after creating a form with multiple fields on a page, you want to change the color of the edit region for all the fields, you can select all of the edit regions and change the color property one time. This can save you a lot of time when you design a form or report.

To change penetrating properties for objects on a form or report

1.	With a form or report open in the Design window, hold down CTRL and right-click the appropriate object and click Properties.

2.	Use the Properties dialog box to change properties as appropriate.

Corel Paradox applies your property choices to all objects for which the property is valid and to any objects contained by the selected object. Some of the properties can apply to any of the objects. Other properties might apply to only one of the objects.

 Note

•	If you hold down CTRL and right-click a contained object in Step 1, Corel Paradox applies the changes to any objects contained by a selected object. To change properties for the container only, select the container and right-click.

 Related Topics


To change penetrating properties of all objects
Changing penetrating properties of all objects

You can change the properties either for the form or report document itself, or for the form or report document and all the objects it contains.

To change penetrating properties of all objects

1.	With a form or report open in the Design window, press ESCAPE until the lower-right corner of the Status Bar indicates that the Form or Report is selected.

2.	Do one of the following:

•	To change only the design document itself, press F6 and click Properties; then, choose the property you want to change.

•	To change the design document and all the objects it contains, press SHIFT+F6 and click Properties; then, choose the property you want to change.

To change the penetrating properties for everything on the form or report you need to make sure no objects are selected, then right-click the form's page or the report's band as described below:

In a form, if you select nothing and

•	Right-click, you'll see the page's property menu. Corel Paradox applies your property choice only to the page.

•	Hold down CTRL and right-click, you'll see the penetrating properties of the page. Corel Paradox applies your property choice to the page and all objects on the page for which the property is valid.

•	Hold down CTRL and right-click the window's Title Bar, you'll see penetrating properties for all pages of a multi-page form.

In a report, if you select nothing and

•	Right-click, you'll see the selected band's property menu. Corel Paradox applies your property choice only to that band.

•	Hold down CTRL and right-click, you'll see the penetrating properties of the selected band. Corel Paradox applies your property choice to the band and all objects in the band for which the property is valid.

•	Hold down CTRL and right-click the window's Title Bar, you'll see the penetrating properties for all bands of the report.

 Related Topics


Adding a method to an object with the Object Explorer

ObjectPAL is Corel Paradox's database-application development language. You use ObjectPAL by attaching methods, which are pieces of ObjectPAL code, to objects on a form. You can create methods that manipulate data, respond to actions, and perform functions.

All objects in a form, including the underlying page of the form, have Object Explorer available from their right-clicl menus. Click this option to define the ObjectPAL methods you want to attach to the object.

For information about creating methods, see Creating a new method in the ObjectPAL Reference Guide.

Refer to your ObjectPAL documentation for information about using ObjectPAL.

 Related Topics


About boxes, ellipses, and lines

Corel Paradox provides three drawing tools [image] the Box, Ellipse, and Line [image] that you can use to add graphic elements to your design.

Use the Box tool to create squares, rectangles, and boxes.

Use the Line tool to draw horizontal, vertical, or diagonal lines.

Use the Ellipse tool to create circles and ellipses.

To create boxes, lines, and ellipses

•	Click the appropriate tool then click and drag in the Design window until the object has the shape and size you want. For more information about placing objects on forms, see Placing a design object on a form or report.

All design objects have a default size, except for the text object.

To create an object with its default size

•	Click the appropriate tool on the Toolbar, and then click in the form or report to place an object.

The object appears at its default size. You can resize the object by dragging its sizing handles. See Changing the size and shape of a design object.

 Related Topics


Using boxes and ellipses to keep design objects together

When a box or ellipse completely surrounds the borders of another object, the object within the box or ellipse is "contained."

Contained objects

•	move when you move their containers

•	are deleted when you delete their containers

•	are duplicated with the container as a group when you use the Duplicate command (Design menu)

For more information see About contained design objects.

Deleting objects within a box or ellipse

If a box or ellipse surrounds an object, and you want to delete the box or ellipse but not the object that it contains, make sure the Contain Objects property for the box or ellipse is disabled. For more information see Deleting a contained design object.

 Related Topics


About boxes

Place a box around objects to give them frames, or use a box alone for visual impact.

You can surround objects with a box by dragging a box around existing objects or by dragging existing objects into a box.

You can customize boxes to get just the look and functionality you want.

 Related Topics


Placing a box on a form or report

To place a box on a form or report

1.	Click the Box [image] tool.

2.	Do one of the following:

•	To create a box with the default size, click the area of the form or report where you want to place the box.

•	To create a box of any size, click the area of the form or report where you want to place the box and drag to size the box.

3.	If you release the mouse button and the box is not the desired size or shape, click and drag any of the eight handles that surround the box.

 Related Topics


About ellipses

Place an ellipse around objects to give them frames, or use an ellipse alone for visual impact.

You can surround objects with an ellipse by dragging an ellipse around existing objects, or by dragging existing objects into an ellipse.

You can customize ellipses to get just the look and functionality you need.

 Related Topics


Placing an ellipse on a form or report

To place an ellipse on a form or report

1.	Click the Ellipse [image] tool.

2.	Do one of the following:

•	To create an ellipse with the default size, click the area of the form or report where you want to place the ellipse.

•	To create an ellipse of any size, click the area of the form or report where you want to place the ellipse and drag to size the ellipse.

3.	If you release the mouse button and the ellipse is not the desired size or shape, click and drag any of the eight handles that surround the ellipse.

 Related Topics


About lines

You can place the following types of lines on your forms:

•	straight lines at any angle

•	curved lines

•	lines with arrows on the ends

You can customize lines to get just the look and functionality you want.

 Related Topics


Controlling pushed objects with lines

To maintain the alignment of multiple objects on a report as they are pushed or pulled by expanding or contracting objects, draw a line between the expanding orcontracting object and the objects that are being pushed or pulled. The expanding or contracting object pushes or pulls the line, which subsequently pushes or pulls all the objects to maintain their alignment with each other.

To hide a line used to control pushed objects

1.	Right-click the line and click Properties.

2.	On the Run Time page of the Properties dialog box, disable the Visible check box.

You will be able to see the line when you design the report but not when you view or print the data.

 Tip

•	Use invisible boxes to surround several objects that you want to keep together on a page. If the box is unbreakable, the objects push to the next page rather than splitting over two pages.

 Related Topics


Placing a line on a form or report

To place a line on a form or report

1.	Click the Line [image] tool.

2.	Do one of the following:

•	To create a line at its default size, click the area of the form or report where you want to place the line.

•	To create a line of any size, click the area of the form or report where you want to start the line and drag to size the line.

3.	If you release the mouse button and the line is not the desired size or shape, click and drag any of the eight handles that surround the line.

 Related Topics


Creating a curved line

After you draw a line, you can change it to a curved line.

To create a curved line

1.	Right-click the line and click Properties.

2.	In the Properties dialog box, click the Style tab.

3.	Enable the Curved button.

4.	Click OK to return to the form or report.

5.	Drag an endpoint to adjust the angle of the curve.

The direction of the curve depends on the direction in which you draw the line, on which endpoint you drag, and on the direction you drag the endpoint.

In the following figure, each curved line was drawn in the direction of the arrow above the line. The X shows the endpoint that was dragged to make the curve.

Experiment by dragging either endpoint to get the effect you want.

To straighten a curved line

1.	Right-click the line and click Properties.

2.	In the Properties dialog box, click the Style tab.

3.	Enable the Straight button.

 Related Topics


Adding arrows to straight lines

You can place arrows on the ends of straight lines you draw. Only straight lines can have arrows.

To add arrows to straight lines

1.	Right-click the line and click Properties.

2.	In the Properties dialog box, click the Style tab.

3.	Do one of the following:

•	Enable the No Arrow button to remove arrows from a line.

•	Enable the Arrow On One End button to place an arrow on the end of the line where you released the mouse button when you drew the line. The arrow points in the direction you dragged to create the line.

•	Enable the Arrow On Both Ends button to places arrows on both ends of the line.

 Related Topics


About graphics

You can place graphic images in a form or report by putting a graphic object in the document, and then inserting the graphic inside the graphic object. You can paste a graphic from the Windows Clipboard, or paste the image from a .BMP, .PCX, .TIF, .GIF, or .EPS file.

 Related Topics


About raster operations

When you define a graphic object, you identify a source graphic (a file) to be placed in a destination (your computer's screen). Most often, Corel Paradox assumes you want an unchanged copy of the source placed on the screen.

Suppose, however, you want the source graphic and the screen to interact. You might want to make the source graphic transparent, to have the color of the page shows through, or you might want to invert the color of the source graphic. To achieve these effects, use the graphic object's Raster Operation properties.

Raster operations define how Corel Paradox combines the source graphic with the destination [image] inverting, combining, including, or excluding colors to your specifications. Corel Paradox uses the Boolean AND, OR, and XOR comparison operators to combine individual pixels of color during raster operations.

The following table briefly describes each raster operation:

Raster operation	Onscreen result

Source Copy	Copy an unchanged source graphic to the destination.

Source Paint	Combine the source graphic and the destination using the Boolean OR operator.

Source And	Combine the source graphic and the destination using the Boolean AND operator.

Source Invert	Combine the source graphic and the destination using the Boolean XOR operator.

Source Erase	Invert the destination and combine it with the source graphic using the Boolean AND operator.

Not Source Copy	Invert the source graphic and copy it to the destination.

Not Source Erase	Combine the source graphic and the destination using the Boolean OR operator.

Merge Paint	Invert the source graphic and combine it with the destination using the Boolean OR operator.

Demonstration of raster operations

To see the effects of these raster operations, open RASTEROP.FSL in your SAMPLE folder (or wherever you installed the sample applications.)

 Related Topics


Placing a graphic on a form or report

Corel Paradox uses frames to contain all graphics. To place a graphic on a form or report, first create the frame, and insert the graphic.

To make a graphic frame

1.	Click the Graphic tool.

2.	Do one of the following:

•	To create the graphic frame at its default size, click the area of the form or report where you want to place the graphic.

•	To create a graphic frame of any size, click the area of the form or report where you want to place the graphic and drag to size the object.

3.	If you release the mouse button and the frame is not the desired size or shape, click and drag any of the eight handles that surround the object.

The words Undefined Graphic appear in the graphic object.

To place a graphic in the frame

1.	Do one of the following:

•	Right-click the graphic frame and click Paste to place the contents of the Clipboard in the graphic frame. (If the Clipboard is empty, Paste is dimmed.)

•	Right-click the graphic frame and click Paste From to place a file in the graphic frame. You'll see the Paste From Graphic File dialog box.

 Note

•	When you define a graphic object, Corel Paradox resizes it to fit the contents of its frame and checks its Size To Fit property. You must disable this property before you can resize the graphic object.

 Related Topics


Moving a graphic

Click inside a graphic's frame to move the graphic within the container. To move the graphic as a whole, you must select both the graphic and the frame.

To move a graphic

1.	Click outside the graphic object.

2.	Click the frame of the graphic.

3.	When handles appear, around the container, drag the object to a new place.

4.	To move the graphic within the container, click the container a second time to activate the graphic. The handles disappear, but you still see shadows on the rulers and the pointer looks like a hand. Drag the graphic to a new location within the container.

 Related Topics


Copying a graphic to a file without using Export

To copy a graphic to a file without using Export

1.	Click the graphic object.

2.	Click Edit, Copy To.

3.	In the Copy To Graphic File dialog box, type a file name, including the path if necessary, in the New File Name box.

 Related Topics


Cropping a graphic

If a graphic is too big for its frame, you can move the graphic within its frame or crop the graphic to the size and area you want.

To crop a graphic

1.	Right-click the container and click Properties.

2.	On the Design page of the Properties dialog box, disable the Size To Fit check box.

3.	Click OK to return to the Design window.

4.	Drag one of the sizing handles of the container until it is smaller than the graphic it contains.

5.	Click the graphic to select it. The pointer changes to an open hand.

6.	Drag the graphic around in the container to the position you want within the frame.

7.	Resize the container if necessary.

 Related Topics


Resizing a graphic or OLE object on a report

When you place a graphic or OLE (Object Linking and Embedding) object in the Report Design window, the container you place automatically expands to fit the size of the contents. By default, Corel Paradox enables the Size To Fit property.

To resize a graphic or OLE object

1.	Right-click the OLE object and click Properties.

2.	On the Design page of the Properties dialog box, disable the Size To Fit check box.

3.	Click OK to return to the Report Design window.

4.	Click the graphic to select it.

5.	Click and drag the handles to resize the graphic.

 Related Topics


Example of creating a mask for a graphic

Suppose your form's page is colored, and you want to place a graphic object on the page. If the background of the graphic object doesn't match the color of the page, the borders of the graphic will show. Use a mask to make some areas of the graphic transparent. Masks allow the page's color to show through it.

For example, suppose your form's page is yellow and that you want to place an oval-shaped graphic object on the page. Unless the background of the oval graphic and the yellow of the page match exactly, you'll be able to see the borders of the graphic object.

To see following examples, click the button.

 Original graphic

 Masked graphic

To create the mask

1.	Make a copy of the source graphic. Call it MASK.BMP.

2.	In a paint program, modify MASK.BMP to make the parts you want to be transparent black and all other parts white.

 The mask

3.	In the Form Design window, place a graphic object, then right-click the graphic object and click Paste From.

4.	In the Paste From Graphic File dialog box. Choose MASK.BMP from the File Name list to insert this graphic into the graphic frame.

5.	Right-click the graphic object and click Properties; choose Source Paint from the Raster Operation box on the Raster Operation page.

 The mask after applying Source Paint

6.	Place another graphic object. Right-click the object and click Paste From. In the Paste From Graphic File dialog box, select your original graphic.

7.	Right-click the original graphic object. In the Properties dialog box, choose the Source And Raster operation from the Raster Operation box on the Raster Operation page.

 The original graphic after you apply Source And.

8.	Select both graphic objects by clicking each object while you hold down SHIFT.

9.	Right-click one of the objects and click Properties. In the Frame page, select the top left style in the Frame Style palette to remove the frames from the graphic objects.

10. With both graphic objects still selected, click Format, Alignment, Align Left. Then click Format, Align, Align Top. Finally, click Format, Group.

When the original graphic and the mask are combined, the areas you want transparent allow the page color to show through.

 Note

•	The order you place the graphics on the form determines the results, because it affects which bitmap is in front. If you place the original graphic on the form before the mask, you must select the original and click Format, Order, Bring To Front before you align the graphics.

 Related Topics


Original graphic

This is the original graphic on a yellow form page. It is completely opaque. The shape of the container obscures the page color.


The mask

On the left is the original graphic. On the right is the mask (MASK.BMP). The part you want to be transparent is changed to black on the mask and everything else is changed to white.


The raster operation Source Paint applied to the mask


The raster operation Source And applied to the original graphic


Masked graphic

The result of using a mask. The area surrounding the oval picture is transparent [image] the page color shows through.


About text

Text objects in forms and reports fill a variety of needs. Use them to add labels, provide instructions, or create titles. You can change the formatting, alignment, color, font, and wrapping of text objects. Text objects can be placed separately on a form using the Text tool; or, they can appear automatically as part of another design object, for example as a label in a field or as a heading in a table frame.

 Related Topics


Placing a text object on a form or report

You create a text object and type text inside the object's frame.

Text objects in forms and reports grow and shrink to fit text differently, depending on how you create them.

To define the frame size before typing

1.	With a form or report open in the Design window, click the Text [image] tool.

2.	Do one of the following:

•	Click the form or report where you want to place the text object at its default size.

•	To create a text object of any size, click the form or report where you want to place the text object and drag to size the object.

3.	Type the text.

As you type, Corel Paradox automatically wraps the text at the right border of the frame.

When you reach the bottom of the frame, Corel Paradox scrolls the text upward so you can view the text you are typing.

This type of text object (where the Fixed Size button is enabled on the General page of the Properties dialog box) does not grow or shrink based on the amount of text you type. You can manually resize by dragging the frame.

To start typing without defining the frame size

1.	With a form or report open in the Design window, click the Text [image] tool.

2.	Click the form or report and begin typing without dragging to create a frame.

Corel Paradox creates a single-row text object that expands to the right until you press Enter. The insertion point then moves to a new line.

As you continue typing, the text wraps automatically at the right border (which you defined by pressing Enter) and continues to expand downward until you finish typing and click somewhere else. If you delete text, the text object shrinks in height to leave no empty space.

This type of text object has the Fit Text button enabled on the General page of the Properties dialog box. The text object grows or shrinks to fit the amount of text you type. The Word Wrap property for this type of text object turns on automatically when you press ENTER.

When Word Wrap is enabled on the Text page of the Properties dialog box, you can only resize the object horizontally. When Word Wrap is disabled, you cannot resize the text object.

 Related Topics


Changing text in a text object

You can only enter and edit text in text objects in the Design window. When you run a form or preview a report, you can see text objects, but you cannot edit them.

To change text in a text object

1.	Click the text object.

2.	Click the text object again to place the insertion point in the text object.

3.	Type the text.

4.	After editing the text, do one of the following:

•	Press ESC or TAB.

•	Click outside the text object.

•	Click another tool from the Toolbar, or click the Selection Arrow.

If the Fit Text property for this object is enabled (on the General Page of the Properties dialog box) and the object contains no text, Corel Paradox deletes the text object from your form or report.

To edit text using the keyboard

1.	Press TAB to select the text object.

2.	Press F2.

3.	Use the arrow keys to move the insertion point to the place in the text you want to edit.

 Related Topics


Inserting fields in text

You can insert fields within a text object in a form or report. This is especially useful in a report, because you can use this feature like a mail merge.

To insert fields in text

1.	Open a form or report in the Design window.

2.	Click the text object.

3.	Click inside the text object again so that the cursor appears inside the object.

4.	Begin typing.

2.	Press F5 to insert an unlabeled, undefined field.

3.	Define this field as you would any other.

When you run the form or report, Corel Paradox extracts the text value of the field and wraps it in its position within the line of text. The text following the field value is correctly spaced.

 Related Topics


Example of inserting fields in a text object

Suppose you want to include the following line in a report using the Customer and Orders tables, with a Customer [image] Orders data model and a blank design layout.

"You have placed X orders for a total of $X since you began doing business with us."

To create the line

1.	Using the field tool, place a field object in the record band of the report. Define it as CUSTOMER.DB:Customer No.

2.	Place another field object in the record band, only this time define the field as CUSTOMER.DB:Name.

3.	Place a text object in the record band of the report.

4.	In the text object, do the following:

•	Type "You have placed" and then press Spacebar to place a space between the text and the field value.

•	Press F5 to insert an undefined field.

•	Press SPACEBAR again to place a space after the field value, then type "orders for a total of".

•	Press F5 to insert another undefined field.

•	Type , "since you began doing business with us."

4.	Select the first field object in the text object, then right-click the field object and define it as Count(ORDERS.Order No). (See Defining a summary.)

5.	Select the second field object in the text object, then right-click the field object and define it as Sum(ORDERS.Total Invoice).

6.	When you run the report, Corel Paradox pushes or pulls the text surrounding the field objects to adjust for the size of the field values.

 Note

•	If the text object's Line Squeeze property is enabled on the Run Time page of the Preferences page (Edit menu), and if there is only one field embedded in a line of text, and the field value is blank, Corel Paradox blanks out the entire line of text that contains the blank field. A line of text is considered to be anything between two ENTER key strokes, and can be thought of as a paragraph.

 Related Topics


Selecting text to change properties

When you specify properties for a text object, the way you select the text determines how Corel Paradox applies the properties.

To change properties for the entire text object

1.	Click away from the object.

2.	Right-click the text object and click Properties.

3.	In the Text Properties dialog box, specify properties for the text as appropriate.

Corel Paradox applies the properties to all text in the text object.

To change properties for selected text

1.	Click and drag to highlight the text.

2.	Right-click the highlighted text and click Properties.

3.	In the Text Properties dialog box, specify properties for the text as appropriate.

Corel Paradox applies the properties only to the highlighted text.

To change properties for text you are about to type

1.	Click within the text to place the insertion point in the text object but do not highlight any of the text.

2.	Right-click the text object and click Properties.

3.	In the Text Properties dialog box, specify properties for the text as appropriate.

Corel Paradox applies the properties to any new text you type.

 Related Topics


Specifying a font and typestyle for text

You can specify the font, typeface (for example, Courier or Times Roman), size, style (for example, bold or italic), and color of the text, by using the Text Formatting Toolbar and the text object property pages. You can also use the Properties dialog box.

To use the Text Formatting Toolbar

1.	Select the text object or highlight the text you want to change.

2.	Click the appropriate a tool on the Text Formatting Toolbar.

To use the Properties dialog box

1.	Select the text object or highlight the text you want to change.

2.	Right-click the text object or highlighted text and click Properties.

3.	In the text Properties dialog box, specify properties for the text as appropriate.

 Note

•	The typefaces available from the Typeface menu depend on which fonts are installed on your system.

 Related Topics


Aligning text

You can align values in a field or table object, and you can align text in a text object and in the edit region of a field object. You can also use the Properties dialog box to align text.

To use the Text Formatting Toolbar

1.	Select the field, table, or text object in the Form Design or Report Design window.

2.	Click an alignment tool on the Text Formatting Toolbar.

To use the Properties dialog box

1.	Select the field, table, or text object in the Form Design or Report Design window.

2	Right-click the object or highlighted text and click Properties.

3.	Click the Text page.

4.	Enable one of the following Alignment buttons:

•	Left lines up text at the left, with the right edge ragged.

•	Center clusters text in the middle of the object.

•	Right lines up text at the right, with the left edge ragged.

•	Justify spreads out text so both left and right margins are straight.

 Tip

•	Tabs, margins, indents, line spacing, and alignment options are also available from the expanded ruler. See About the expanded ruler.

 Related Topics


Specifying the line spacing for text

You can specify the line spacing for text using the Text Formatting Toolbar or the Properties dialog box.

To use the Text Formatting Toolbar

1.	Select the text object or highlight the text to change.

2.	Click a line spacing tool on the Text Formatting Toolbar.

To use the Properties dialog box

1.	Select the text object or highlight the text you want to change.

2.	Right-click the text object or highlighted text and click Properties.

3.	Click the Text tab and set the line-spacing property on the Text page.

 Tip

•	Tabs, margins, indents, line spacing, and alignment options are also available from the expanded ruler. See About the expanded ruler.

 Related Topics


Using Word Wrap

You can specify Word Wrap for field and text objects in a form or report design. This feature wraps text automatically at the object's right border.

Word wrap works differently for fields and text.

Fields

Word Wrap displays the contents of a field in more than one line when they exceed the width of the field object. Word Wrap is not available for graphic and Object Linking and Embedding (OLE) fields.

Text

Word Wrap creates a new line of text at the fram of the text object. If Word Wrap is disabled, only one line of text can be displayed in the text object. Pressing ENTER does not create a new line.

To enable word wrap

1.	Right-click the field or text object in a Form Design or Report Design window and click Properties.

2.	Click the Text page of the Text Properties dialog box.

3.	Enable the Word Wrap check box.

 Related Topics


Specifying how a text object grows

Text objects in forms and reports grow and shrink to fit text differently, depending on how you create them. For more information, see Placing a text object on a form or report. After you create a text object, you can specify how it resizes when the text within it grows and shrinks.

To specify how a text object grows

1.	Right-click the text object and click Properties.

2.	In the Design Sizing area of the General page, do one of the following:

•	Enable the Fixed Size button to wrap the text at the right border of the frame.

The object does not grow or shrink to fit the amount of text it contains. If you want to change the size of the object, select it and resize it manually.

•	Enable the Fit Text button to create a single-row text object that expands to the right until you press ENTER, which moves the insertion point to a new line. As you continue typing, the text wraps at the right border that you defined by pressing ENTER.

The object grows or shrinks to fit the amount of text it contains.

•	Enable the Grow Only button to create a single-row text object that works like Fit Text, except the object does not shrink when you remove text (unless you manually resize it using the handles).

The most common use for this type of text object is for a field label in a table.

The Design Sizing choices control only how the object grows in the Design window, not what happens when you run (view or print) the form or report.

 Related Topics


About OLE and Native Windows controls
About Object Linking and Embedding (OLE) and native Windows controls

OLE Custom Control (ActiveX)

You can embed 32-bit OLE Custom Controls (ActiveXs) into Corel Paradox forms. ActiveXs can be a complex miniature application such as a spreadsheet, Internet Web browser, communications package, or grid and graphing controls.

To interact with ActiveXs at runtime, you can write ObjectPAL code to get and set properties, invoke methods, and handle events. To interact with an ActiveX, you can refer to the UIObject name that hosts the OLE control directly or you can use the OleAuto ObjectPAL type. The OleAuto type lets you communicate with an OLE server and ActiveXs, and Native Window Controls, by translating ObjectPAL into OLE automation calls.

Each ActiveX surfaces methods, properties, and/or events, which you can set and call when you design or run the form. Because ActiveXs are a separate application running as a subprocess of Corel Paradox, you will find the behavior different from normal Corel Paradox UIObjects. Each ActiveX has its own child window on the form and its own message queue. This gives the ActiveX its own event model, which is sometimes called the "fire event" model.

OLE controls are said to "fire" events; they are either notifications that something is about to happen (before event), is happening (do event), has just occurred (after event) or requests to determine if an impending action is permissible (request event).

An ActiveX application will often fire an event without asking first if it is acceptable to fire such an event. This is the way that the OLE control specification is written. You cannot use ObjectPAL to intercept events that are going to an ActiveX application (for example, trying to disable a mouseClick on an ActiveX). Because of this, ObjectPAL developers will find that the ActiveX model requires some adjustment.

Native Windows control (NWC)

New controls (native to Windows) have been added to provide developers with added functionality in their custom applications. This release provides five NWCs that can be used in a form. These native Windows controls are:

 List Box	A list box that allows single or multiselect

 Combo Box	A drop-down edit region with a list box

 Spin Box	An edit region with Up and Down buttons to increase or decrease the value

 Progress Bar	A rectangular progress indicator used to track the percent finished of a process

 Trackbar	A slider control that allows you to drag a button along a track to set values in an application

The API for a native Windows control is directly ported from the Windows API. These controls are wrapped in an OLE container in Corel Paradox; therefore, they behave just like an OLE control. The OLE wrapper governs its size, position, and frame style, and it provides its hooks to ObjectPAL. NWCs use the same technique as regular OLE controls (OleAuto type) to set and get properties and to invoke methods. The NWC properties, methods, and events are visible from the Object Explorer, but cannot be set.

For all practical purposes, a native Windows control looks like an OLE control to the Corel Paradox form and language system . The same programming concepts that apply to OLE controls apply to native Windows controls. The only difference is that NWCs do not use OLE embedding or support any kind of user interface negotiation.

For more information about native Windows controls, see the ObjectPAL online Help topic Native Windows Controls.

Using ActiveXs and NWCs in design mode

OLE controls are available from third-party vendors, and these vendors provide property pages for you to set properties during form design. This allows you to set the intitial state of the ActiveX applications.

Before you can use a control, you must first register the control, then add the control to the Object Toolbar.

You use OLE controls and native Windows controls the same way in forms. You place the control on the form, right-click the control to change its properties, and add new methods or events by using the Object Explorer.

For information on using and modifying your specific OLE control, see the documentation from the OLE control manufacturer.

ActiveX's in multirecord objects, table frames, and crosstabs

OLE Controls and native Windows Controls do not clone in record objects or crosstab cells. This means that these controls will not embed in either object. If you create or move an OLE control inside a multirecord object or a tableframe, it will not be a child of the interior (repeating) record object. The same is true for crosstabs [image] the OLE control cannot be a child of a (repeating) cell object. OLE controls will not repetitively clone into multiple repeating record groups.

 Related Topics


About OLE control event types
About Object Linking and Embedding (OLE) control event types

OLE controls have events that are different from Corel Paradox events. Each control comes with a primary event set that follows a basic convention for what types of events are fired and how the event parameters are packaged. If the default event type for the control can be canceled, you can modify the event parameters to make the control behave the way you want.

OLE controls can issue events, such as click events. The names of the events issued by a control are chosen by the creator of the control. You can see the names of the events in the tabbed pane of the Object Explorer on the Events page. All methods, events, and properties that come with a control are displayed in red text in the Object Explorer and are preceded by a round button. These methods, events, and properties will also be listed in the documentation for the control.

Controls usually follow a naming convention for their events. For example, Do events begin with the word Do, and Request events begin with the word Request. Because After events are the most common, any event that does not begin with one of the other type names is assumed to be an After event.

OLE control events fall into four basic categories: Request events, Before events, After events, and Do events. Of the four types of controls, Before and After events cannot be canceled.

Request events

A control fires a Request event to determine if an impending action is permissible and allows the user to cancel an action. Request events can be canceled.

Before events

Before events are notifications that something is about to happen. They are fired before an action occurs to allow the completion of actions that are needed before the event fires. Before events cannot be canceled.

Do events

Do events are notifications that something is happening. They are fired to allow the user to replace or supplement the control's default behavior. Do events can be canceled. Do events usually begin with the word Do, and the last parameter is the cancel flag.

After events

After events are notifications that something has just occurred. They are fired after an action occurs to allow response to the action. After events cannot be canceled.

Most real controls only do the After event. For example, a typical control issues only one event for a click. The event would be called Click, comes after the click has happened, and cannot be canceled.

Some controls will issue a series of related events. For example, for the Click event, you could see the following events:

1.	RequestClick (Request event)

2.	BeforeClick (Before event)

3.	DoClick (Do event)

4.	Click (After event)

Any particular control might not follow these guidelines. For example, it might only expose the DoClick or the Click event.

For information about using and modifying your OLE controls, see the documentation from the OLE control manufacturer.

 Related Topics


About ambient properties

Ambient properties are properties an Object Linking and Embedding (OLE) control adopts from its container. For example, an OLE control placed on a yellow form obtains information about the form's properties, determines that it can use the yellow background color, and incorporates the form's background color into its properties, along with any other properties it can use, such as foreground color and text font.

Ambient properties can be set for each control, but OLE controls are not required to use these properties. Therefore, not all controls will respond to changes in these ambient properties.

Ambient properties give information about the state of the container around the control. This can be the entire container (such as the background color) or the immediate area surrounding the control. For example, a control can be inserted into a text document that will have different sized fonts. The ambient font property of the control has different values, depending on where the control is placed.

 Related Topics


Displaying the Object Toolbar

Object Linking and Embedding (OLE) and native Windows controls have a separate Object Toolbar in the Form Design window.

To display the Object Toolbar

1.	Do one of the following

•	Click View, Toolbars and enable the Object check box.

•	Right-click the background in the Toolbar area, and enable the Object option.

•	Click Tools, Settings, Preferences, and enable the Object check box on the Toolbars page of the Preferences dialog box.

 Related Topics


Placing a control on a form

To placing a control on a form

1.	Click View, Toolbars and enable the Object check box to display the Object Toolbar.

2.	Click one of the tools on the Object Toolbar.

3.	Click in the Form Design window to place the control at its default size, or click and drag to place the control and specify its size.

4.	Right-click the object to add a method or event to the object or to change its properties.

 Related Topics


Registering an OLE control
Registering an Object Linking and Embedding (OLE) control

To register an OLE control

1.	Install the control on your computer according to the directions from the OLE manufacturer.

2.	Start Corel Paradox.

3.	Click Tools, Register OLE Control.

4.	In the Register OLE Control dialog box, locate and then double-click the appropriate file.

This registers the control and registers Corel Paradox as an OLE automation server.

You need to add the control to the Toolbar before you can use it in a form. Right-click the empty area of the Standard Toolbar and choose Add OLE Control.

 Related Topics


Adding a control to the Toolbar

To add a control to the Object Toolbar from the Form Design window

Do one of the following

•	Right-click the empty area of the Standard or Object Toolbar, click Add OLE Control, and then select the appropriate tool.

•	Right-click the empty area of the Standard or Object Toolbar and click Properties. On the Object Toolbar page, click Add OLE Control, then select the tool.

 Related Topics


Removing a control from the Toolbar

To remove a control from the Toolbar

1.	In the Design window, right-click the background of the Standard or Object Toolbar area and click Properties.

2.	On the Object Toolbar page of the Properties dialog box, select the tool and click Remove.

 Related Topics


Adding a page to the Object Toolbar

To add a page to the Object Toolbar

1.	In a Form Design window, click View, Toolbars.

2.	Enable the Object check box to display the Object Toolbar.

3.	Right-click the background area of the Object Toolbar and choose Properties.

4.	Click the Object Toolbar tab.

5.	Click the Add Toolbar button.

6.	In the highlighted area of the list box, type the name of the new Toolbar.

To add controls to your custom Object Toolbar page, see Adding a control to the Toolbar.

 Related Topics


Editing events on an OLE control
Editing events on an Object Linking and Embedding (OLE) control

To edit events on an OLE control

1.	Place an OLE control on a form.

2.	Right-click the object and choose Object Explorer. (Make sure the tabbed pane is displayed with View, Tabbed Pane on the Object Explorer menu.)

3.	Double-click the event on the Events page.

4.	In the Editor window that opens, edit the method.

For information on editing methods and events, see the Guide to ObjectPAL and About the Object Explorer in the ObjectPAL Reference.

 Related Topics


About buttons

You can create buttons on a form and then use ObjectPAL, to associate a method to the button. The user clicks the button to initiate the operation you defined in the ObjectPAL method.

Buttons are available only in forms, not in reports.

 Related Topics


Placing a button on a form

To place a button on a form

1.	With a form open in the Form Design window, click the Button [image] tool.

2.	Click the form to place the button at its default size, or click and drag to place the button and specify its size.

A text object appears on top of the button to allow you to add a label. You can also delete the label and use the Graphic tool to place a picture or icon on the button.

 Related Topics


Selecting a button type

A button's type controls its functionality. By default, a button is a standard push button. You can also create a radio button or check box.

You can also create a group of radio buttons or a check box from a field object. The advantage of using a field instead of a button is that a field object (the button or check box the user chooses) can post a value to the table to which the form is bound. Clicking the button posts the value to the table.

To select a button type

1.	Right-click the button and click Properties.

2.	On the General page of the Properties dialog box, choose Button Type and do one of the following:

•	Enable the Push Button button to create a labeled rectangular button that carries out an action described by an ObjectPAL method. When the button is clicked, its value is "True." When the button is not pressed, its value is "False." Push is the default Button Type.

•	Enable the Radio Button button to create a labeled round or diamond-shaped button that provides an option. Each time a user clicks the button, it toggles between being empty and being darkened. Each click also toggles its value between "False" and "True."

•	Enable the Check Box button to create a labeled square button that indicates a yes/no state. Each time a user clicks the button, it toggles between being enabled and disabled. Each click also toggles its value between "False" and "True."

 Related Topics


Selecting a button style

A button's style controls its visual display. You can customize the style of radio buttons or check box buttons.

To select a button style

1.	Right-click the button and click Properties.

2.	Enable the Radio Button button on the General page of the Properties dialog box.

3.	Do one of the following:

•	Enable the Raised button to create radio buttons and check boxes that have a three-dimensional, raised look. Radio buttons are raised gray circles; check boxes are squares.

•	Enable the Windows 3D button to create radio buttons and check boxes that look like the ones you see in many Windows products. Radio buttons are gray three-dimensional circles; check boxes are squares.

 Related Topics


Placing a label on a button

When you create a push button, Corel Paradox places a text object on the button that contains the word LABEL.

To change the label

1.	Click the text object. The cursor changes to the insertion point.

2.	Click again to place the insertion point in the text object. The handles disappear to show that the text object is ready for editing.

3.	Type the new label.

To delete the label

1.	Select the text object.

2.	Click Edit, Cut.

 Notes

•	Corel Paradox automatically centers the text on the button. If you don't want the label centered on the button, right-click the button, click Properties, and disable the Center Label check box on the General page.

•	If you move the label, you will automatically disable the Center Label option; you must then enable this option manually if you want to center the label.

 Related Topics


Placing a graphic on a button

To place a graphic on a button

1.	Use the Graphic tool to place a graphic object on the button. For more information, see Placing a graphic on a form or report.

2.	Right-click the button and click Properties.

3.	Click the Design tab.

4.	Enable the Contain Objects check box.

 Related Topics


Editing button events and methods

You can use ObjectPAL, to edit existing events and methods, or you can add new methods to the button. This is how you assign functionality to the button. The user clicks the button to initiate the operation you defined in the ObjectPAL method. For example, you could add a method to a button that tells Corel Paradox to print a specific report, move to a specific record, or find a certain value when you push the button.

For information about using ObjectPAL methods and events, see the ObjectPAL Reference and the Guide To ObjectPAL.

To edit button events and methods

1.	Right-click the button and choose Object Explorer.

2.	Click on either the Method or Events page.

3.	Edit one or more ObjectPAL methods or Events for the button.

4.	Double-click New Method on the Methods page to add a new method.

 Related Topics


About field objects

You can place a field from a Corel Paradox table on a form or report. Field objects display data from the tables(s) on which the form or report is built. In the Design window, you do not see the data in the field. When you run the form or report, Corel Paradox displays the field's data in the field object.

When you create a form or report and choose any layout other than blank from the Design Layout dialog box, Corel Paradox places the fields from your table in the design. You can place more fields on the design.

Field objects in reports

In reports, you must follow certain rules when you place field objects in multitable report designs.

•	If the field object is defined as a field of the master table, you can place it in any band.

•	If the field object is defined as a field of the detail table, it must be placed within the detail table's repeating region (a table frame or multiregion object).

 Related Topics


Placing a field on a form or report

You can place a field on any form or report. When you run the form or report, Corel Paradox displays the data from that field of the table for each record you display.

To place a field object

1.	Click the Field [image] tool.

2.	Click to place the field object using its default size, or click and drag to place the field object and specify its size.

By default, Corel Paradox creates a labeled field object, which consists of the label (a text object) and the region in which the field's data appears.

Depending on the properties of the tool, the field may be labeled, unlabeled, a list box, a list, a radio button, or a check box.

To define the table field you want to display

1.	Right-click the field object and choose Define Field.

The Define Field Object dialog box displays a list box of each table used in the form.

2.	Choose a field from the appropriate table's list box.

3.	Choose a field name from the list.

You can also place a field that is not available from the menu (such as a summary field, a special field, or a calculated field.)

You can also leave the field undefined.

 Note

•	To define a field, the form or report must be connected to a data model.

 Related Topics


Labeled and unlabeled field objects

You can create labeled or unlabeled field objects on your forms and reports. Labeled fields are fields whose labels are displayed along with the value of the current record. The label and edit region cannot be removed or deleted from the fields. Unlabeled fields do not display the name of the field along with the value of the current record. A labeled field needs more room than an unlabeled field.

To create a label or unlabeled field object

1.	Right-click the field object and click Properties.

2.	From the Display Type list box, choose Labeled or Unlabeled.

Notes

•	If you change display types from an unlabeled field to a labeled field without enabling the Size To Fit check box on the Design page of the Properties dialog box, the field remains the same size and the label object and field object compete for space. When you enable Size To Fit, the field object expands to accommodate the new label.

For information on creating a labeled or unlabeled field object, see the following topics:

 Placing a field on a form or report

 Specifying a field object's display type

 Related Topics


Drop-Down Edit field objects
List box field objects

When users enter data using a list-box field, they can either type a value in the edit region, or choose the data value from a list box.

Use a list box field object to provide users with a quick way to enter data into a field that has a limited number of valid values.

For example, if you create a data-entry form for the Orders table and you know of six common values for the Payment Method field, you can display these values in a list-box field object.

When you create the field object, you specify the valid values in the Define List dialog box; users pick from these values when they enter data while running the form.

These field objects are unavailable in reports.

For information on creating a list-box field object, see the following topics:

 Placing a field on a form or report

 Specifying a field object's display type

 Related Topics


List field objects

A list field offers users a list of values from which to choose. Users choose from the list to select a value and can only enter values that are listed. Only one value can be selected at a time.

Use a list-field object to provide users with a quick way to enter data into a field that has a specific number of valid values.

For example, if you create a data entry form for the Orders table and you know that only five values are valid for the Ship Via field, you can display these values in a list-field object.

When you create the field object, you specify the valid values in the Define List dialog box; users pick from these values when they enter data while running the form.

For information on creating a list-field object, see the following topics:

 Placing a field on a form or report

 Specifying a field object's display type

 Related Topics


Radio Button field objects
Radio-button field objects

A radio-button field offers users a list of values from which to choose. Each value is listed beside a button. Users enable a button to select a value and can enter only values that are listed. Only one value can be selected at a time.

Use a radio-button field object to provide users with a quick way to enter data into a field that has a specific number of valid values.

When you create the field object, you specify the valid values in the Define List dialog box; users pick from these values when they enter data while running the form.

Changing the label of a button in the Design window does not alter the field's value. You must alter the value in the Define List dialog box.

For information on creating a radio button field object, see the following topics:

 Placing a field on a form or report

 Specifying a field object's display type

 Related Topics


Check Box field objects
Check-box field objects

A check box has two states: enabled and disabled. The user enables the check box, an X appears in the box; when disabled, the box is blank. The field has one value when enabled another value when disabled. The check box values are defined in the Check Box Values dialog box.

A logical field type is a perfect candidate for a check box display type. It's also a good idea to create a default validity check on the logical field and to specify False as the default value.

For example, suppose you design a form using the Vendors sample table. The Preferred field, a logical field, indicates whether the vendor has preferred status or not. You could define the field as a check box, and define the values for the check box as "true" when enabled and "false" when left blank. If the user enables the box, "true" is entered into the table's field for that record. If the user leaves the box disabled, a "false" value is entered.

For all fields other than logical fields, any values can be entered for the check-box values. True and false must be used as the values in a logical field.

Changing the label of a check box in the Design window does not alter the field's value. You must alter the value in the Check Box Values dialog box.

For information on creating a check-box field object, see the following topics:

 Placing a field on a form or report

 Specifying a field object's display type

 Changing the values for a list box, list, radio button, or check box field object

 Related Topics


Specifying a field object's display type

To specify a field object's display type

1.	Right-click the field and click Properties.

2.	Choose one of the following from the Display Type list box on the General page of the Properties dialog box.

•	Choose Labeled to display a field with its field label and the value of the current record.

•	Choose Unlabeled to display a field without a label.

•	Choose Drop-Down Edit to display a list of values that users can select from and also have the option to type in their own value (a list box).

•	Choose List to display a list of values from which users can selec. Users cannot type in their own value.

•	Choose Radio Buttons to display a list of values with a radio button beside each value. Users enable a button to select a value. Only one value can be selected at a time.

•	Choose Check Box to display a check box that has one value when enabled and another when disabled.

3.	If you chose Drop-Down Edit, List, Radio Buttons, or Check Box, click the Define Values button.

4.	In the Define List or Check Box Values dialog box, type values for the field.

 Related Topics


Changing the values for a drop-down edit, list, radio button, or check box field object
Changing the values for a list box, list, radio-button, or check-box field object

To change the values for a list box, list, radio-button, or check-box field object

1.	Right-click the field and click Properties.

2.	Choose the appropriate type of field from the Display Type list box on the General page of the Properties dialog box.

3.	Click the Define Values button.

4.	In the Define List or Check Box Values dialog box, type in new values for the object.

 Related Topics


Changing a label without changing the field value

For radio-button and check-box field objects, the values you define as choices for the fields are those that Corel Paradox enters in the table when a user enters information by using that form. The default labels on the form match these values. However, you can change the labels on the form without changing the values the user can select. The labels are standard text objects on the form.

To change the labels after defining the values

1.	After you have defined the values for the list box, list, radio button or check box, select the text label on the object in the form. (See Changing text in a text object.)

2.	Type the text for the label.

3.	Without clicking again (the insertion point is still inside the text), move the mouse to any of the borders of the text box. Stop when the cursor changes to a double-headed resizing arrow to indicate the direction you can drag.

4.	With the double-headed arrow displayed, click and drag in the indicated direction to resize the text area.

 Related Topics


About special fields

A special field in a form or report contains information about the table or about the design as a whole. It is not a field of a table.

Table

The special fields that relate to a table are:

•	<Table Name> (The table's name)

•	<Record Number> (The current record number)

•	<Number of Records> (The number of records in the table)

•	<Number of Fields> (The number of fields in the table)

These fields are found on the master-table list box and are displayed in brackets, for example, <Table Name> .

Design

The special fields that relate to the design as a whole are:

•	Date (Today's date )

•	Now (The current time)

•	Page Number (A page number)

•	Timestamp (The current time and date)

•	Number of Pages (The number of pages in the form or report)

These special fields are found in the Define Field Object dialog box on the list box in the Special Field area.

To open the Define Field Object dialog box

•	Right-click a field and choose Define Field

 Related Topics


Placing a special field on a form or report

To place a special field on a form or report

1.	Click the Field [image] tool.

2.	Click in the design area to create the field object.

3.	Right-click the field object and choose Define Field.

4.	In the Define Field Object dialog box do one of the following:

•	For a field related to the table, choose a field from the list box that contains the name of the table. These special fields are bracketed at the bottom of the list, for example, <Number of Records>.

•	For a field related to the design, choose the appropriate field from the Special Field list box.

 Related Topics


About calculated fields

A calculated field in a form or report performs a calculation on the values of one or more fields. The calculation is an expression (which might have several components or terms) that must resolve to a single data value.

Calculated fields are commonly used to determine values from two or more fields in a table. For example, you can create a field object in a form on the Lineitem table and define the field as a calculated field by using the formula

[LINEITEM.Qty] * [LINEITEM.Selling Price]

The value of a record in this calculated field is the product of the values of the Qty and Selling Price fields.

Why use a calculated field?

•	Calculated fields are space savers in tables. In most cases, users want to see calculated results in reports and forms. Calculated fields perform calculations on existing data only at runtime (for example, when you view a report). This eliminates the need to store excess data in the table.

•	Calculated fields offer a broad range of functionality. You can use calculated fields to perform many different operations besides just mathematical calculations. You can use them to concatenate string values, call built-in and custom methods (those returning a single value), base operations on logical criteria, and perform special functions (such as Sum and Average). The combination of these and other attributes can be powerful additions to your application.

Scope of a calculated field

A calculated field performs a calculation on a set of records. Before you can perform an operation on the set, you must define the set by defining the scope of the calculation. The scope of a calculated field is the same as that of a summary field. For more information, see About summary scope.

Calculated fields versus summary fields

Corel Paradox has both calculated fields and summary fields. For more information, see Calculated fields and summary fields.

Storing values from calculated fields in a table

Values in calculated fields, whether in a form or report, are not stored in the table. Values are created strictly for viewing or printing purposes. If you want to store these values, perform the calculation in a query.

 Related Topics


Referring to fields and field objects

The field object in a form or report design is not the same as the actual field in the table that the field object represents and contains. This distinction is important to remember when you use field names in calculations. For example

•	the expression Qty * Price performs a calculation on the field objects named Qty and Price.

•	the expression [LINEITEM.Qty] * [LINEITEM.Price] performs a calculation on the values in the actual Qty and Price fields in the Lineitem table.

The field object in the design and the field in the table to which the form is bound are usually equivalent. At times, however

•	a field object is not associated with a table (for example, it might be another calculated field).

•	a field object might be unbound (not associated with a field in any table) and not defined as a calculated or special field.

•	a field from a table in the data model is not displayed in the design, but you must reference its field value.

•	a field object might not have the same name as the field to which it is bound.

 Related Topics


Calculated fields and summary fields

You can place calculated fields and summary fields on a form or report.

A calculated field performs a calculation on the values of one or more fields. The calculation is an expression (which might have several components or terms) that must resolve to a single data value. See About calculated fields.

A summary is a type of field calculation. You can use summaries to sum, count, or average the values in a field. You can find the minimum, maximum, standard deviation, and variance of values in a field. See About summary fields.

You create calculated fields and summary fields in the Define Field Object dialog box, which you can open by right-clicking on the field and choosing Define Field.

Calculations on summary fields

In reports, you can perform calculations on the values generated by summaries.

For example, you can group the Orders table by Customer No and then create a summary field [image] Total Due [image] to sum the Balance Due field. This report would tell you the amount that each customer owes.

Suppose a new policy requires you to charge each customer $5 if they have an outstanding balance. You can create the following formula.

[ORDERS.Balance Due]+5

As the report runs, Corel Paradox adds all the values in the Balance Due field for each customer, then adds five to the total.

Summaries on calculated fields

Calculated field expressions can contain summary operators. For example, the sum of all invoice totals from the Orders table multiplied by a sales tax of 7.75% could be expressed as follows:

SUM([ORDERS.Total Invoice]) * .0775

You could also calculate the sum of all line item totals (in a given scope) and multiply that value by a sales tax of 7.75% using the following expression:

SUM([LINEITEM.Qty]*[LINEITEM.Selling Price])*.0775

 Related Topics


Creating a calculated field

To create a calculated field

1.	Right-click the field object on the design document, and choose Define Field.

2.	In the Define Field Object dialog box, enable the Calculated check box.

3.	Type the calculation you want in the box below the Calculated check box.

See What calculated fields can include for information on what to type in the calculation.

 Related Topics


What calculated fields can include

•	arithmetic operators +, -, *, /, and ()

•	logical operators AND, OR, and NOT

•	comparison operators <, >, <>, =, >=, and <=

•	summary fields (sometimes called aggregates). For information on summary fields, see About summary fields. For example:

SUM([table.fieldA] + [table.fieldB])

SUM([table.fieldA]) + SUM([table.fieldB])

•	object references, such as the name of an object on the form. (Object names are always unique.)

•	numeric constants

•	alphanumeric strings

•	any of the ObjectPAL mathematical, statistical, string manipulation, and date/time methods that return a single value

•	custom ObjectPAL methods or procedures that are defined in forms or contained in libraries and accessed by forms. (Custom methods are not accessible by reports.)

•	combinations of any of the above

 Related Topics


Using a field name in a calculation

To use a field name in a calculation

1.	Right-click the field and click Define Field.

2.	In the Define Field Object dialog box, choose the field you want from the table's list box. The field name appears in the box at the top of the Define Field dialog box.

3.	Enable the Calculated check box.

4.	Choose Copy Field to place that field in the box below the Calculated check box.

When Corel Paradox places the field name in the box, it is selected. Move the cursor to deselect the field name before you begin typing. (If you accidentally type and replace the selected field name, press ALT+BACKSPACE to restore the name.)

In addition to the field name, you'll see the directory alias (if any) of the table and the table's name. For example, if you choose the Balance Due field from the Orders table (and the Orders table is in your working directory), [:WORK:ORDERS.Balance Due] appears in the Calculated text box. This points to the exact location of the field in the expression.

If you've assigned a table alias to a table, use that alias instead of the table's name when you define calculated fields. For more information, see Creating a table alias.

 Related Topics


Calculating on a field that has a punctuated name

Punctuation marks, particularly periods, are reserved characters in Corel Paradox. Corel Paradox uses dot notation to references objects within forms and reports, and uses periods (dots) in field names invalidate this process.

If you use the Copy Field button when you define a field, you can easily copy a punctuated field into the calculated field box. If the field name has periods in it, such as Total.Invoice, Corel Paradox looks on the report or form for an object named Total containing another object called Invoice. Consequently, field names with punctuation can cause errors when you use them in a calculated field.

To use a field name that contains punctuation in a calculated field

•	Enclose the field name in quotes.

 Note

•	You can also restructure the table to modify the field name.

 Related Topics


Referencing another calculated field on the same form or report

To reference another calculated field on the same form or report

1.	Right-click the field objects and click Properties to determine their object names (displayed in the Name Of Object text box on the General page of the Properties dialog box).

2.	Use these names in the calculation.

 Tip

•	When an object is used in another calculated field or expression or in a report, you can rename the object so it is easily recognizable. To change the name, type in the desired name on the General page of the Field Properties dialog box.

 Related Topics


Updating calculated fields when opening a form or report with a different table

When you create a calculated field on a form or report, the table name that field references is saved as part of the .FSL or .RSL file. If you open the form or report with a different table, the calculated fields may not be updated to reflect the change. Therefore, the calculation tries to reach information in a table (or tables) that is not bound to the document.

To resolve this

•	Redefine the calculated fields so they refer to the new tables and save the form or report.

 Related Topics


Example of calculating with a summary operator

You can use calculated fields in forms and reports to generate field values that you might otherwise store in the table itself. For example, tables are sometimes designed with quantity, selling price, and total invoice amount fields. The total invoice is the price multiplied by the quantity. When you use calculated fields and summary operators, the total invoice field need not be part of the actual table. You can instead create a field in your form or report that calculates the total invoice value.

The following expression generates the total for each record in the Lineitem table:

[LINEITEM.Qty]*[LINEITEM.Selling Price]

This expression can be a defined in a calculated field object in a table frame or multirecord object, as shown in the right column of the following figure:

When you define a calculated field, you must type a value in the field's label. When you define the field as calculated, Corel Paradox shows "formula" in the field object.

When you run the form (or print or preview the report), Corel Paradox calculates the total for each record by multiplying the Selling Price value by the Qty value for each record in the table:

You can create a calculated field that calculates the total of all line items, rather than the total of individual records. To generate the total of all line items in a given scope, you could use the following expression:

SUM([LINEITEM.Qty]*[LINEITEM.Selling Price])

 Note

•	The example above illustrates how you must use the sum() operator with a calculation. A reference to the UIObject name of a calculated field that contains the same calculation is not valid with the SUM() operator.

The following figure shows a single-table form; therfore, the scope of the calculated field is the entire Lineitem table. The field label of the calculated field at the bottom of the form shows the total price of all line items in the sample Lineitem table.

The following two expressions do not generate the same result:

SUM([LINEITEM.Qty]*[LINEITEM.Selling Price])

SUM([LINEITEM.Qty])*SUM([LINEITEM.Selling Price])

The first expression creates a "total" value for each record by multiplying the quantity by the selling price. It then adds all these totals together. The second expression adds all quantities, adds all selling prices, then multiplies the results of the two additions.

 Related Topics


Example of calculating with a field and a constant

Calculated fields can be used to perform calculations that include a field and a constant. For example, suppose you want to show what the selling price of line items would be if you raised all prices by 25%.

1.	Create a form bound to the Lineitem table.

2.	Place a field object on the form.

3.	Change the field label to the following:

Selling Price increased by 25%:

(To change the field label, click three times on the field to place the cursor inside the text, then type the new label.)

4.	Right-click the field object and click Define Field.

5.	In the Define Field Object dialog box, enable the Calculated check box.

6.	Type the following formula in the Calculated box:

[LINEITEM.Selling Price] * 1.25

When you run the form for each record in the table, the Selling Price field shows the current price, and the calculated field shows the price with the proposed increase.

 Related Topics


Example of calculating with an alpha string

You can use the + operator to combine alpha strings.

For example, suppose you want to create a field called Address that combines the values of the Street, City, State/Prov, and Zip/Postal Code fields for the Customer table.

1.	Create a form or report by using the Customer table in the data model.

2.	In the Design Layout dialog box, choose the Blank style.

3.	In the Design window, use the Table tool to place a table frame with three columns.

4.	Select the first field in the table frame (click three times to get to the field), then right-click the frame and click Define Field.

5.	In the Define Field Object dialog box, choose Customer No from the Customer list box.

6.	Repeat step 4 with the second field in the table frame and choose Name.

7.	Repeat step 4 with the third field in the table frame and click Define Field; in the Define Field Object dialog box, type the following calculation:

[CUSTOMER.Street] + " " + [CUSTOMER.City] + ", " + [CUSTOMER.State/Prov] + " " + [CUSTOMER.Zip/PostalCode]

The + sign appends one string to the end of another. (You must type within quotation marks the spaces and commas you want inserted between fields.)

8.	Click OK.

In the Design window, Corel Paradox displays the word "formula" in the calculated field object.

9.	Type the word Address as the calculated field's label.

When you run the form, Corel Paradox combines the values from the four fields for each record of the table and inserts spaces and commas where you placed them in the calculated expression.

 Related Topics


Example of using conditional logic and ObjectPAL methods

When  you design forms or reports, it is sometimes desirable to use calculated fields that contain conditional statements. For example, if the state is California, multiply the Amount field by 10; otherwise multiply the Amount field by 5. One of the possible applications of the iif() keyword is to use it to provide conditional functionality in calculated fields.

By using the iif() keyword to create a conditional statement in a calculated field, you can evaluate a field value to see if it meets a condition, then return a value based on the condition. In a calculated field, the iif() keyword can be used within another expression, for example, in combination with operators and numeric methods.

You can use certain ObjectPAL methods as part of your field calculation. Most methods that involve numeric or alphanumeric strings are available in calculated fields. Any ObjectPAL expression that evaluates to a single value is valid in a calculated field.

To use ObjectPAL in a calculated expression, type the ObjectPAL method directly into the text box for the calculated field in the Define Field Object dialog box.

The syntax for the iif() keyword is:

iif(Condition, ValueIfTrue, ValueIfFalse)

Condition is any expression that evaluates to a logical value of True or False; ValueIfTrue is the value returned if Condition evaluates to True; and ValueIfFalse is the value returned if the Condition evaluates to False.

The following five examples use conditional expressions in a calculated field:

Example 1

Suppose you want a sales representative to visit all the customers in the Customer table. One sales representative (named Elliot) will visit those customers in California, and another (named Dolores) will visit all customers outside of California. You can create a calculated field that returns a different value (Elliot or Dolores) based on the contents of each record's State/Prov field. Use the iif() ObjectPAL keyword to create the expression

iif([CUSTOMER.State/Prov]="CA", "Elliot", "Dolores")

This expression tells Corel Paradox to return the string "Elliot" when the field value is CA, and to return the string "Dolores" when the field value is anything else.

Example 2

You can also use calculated fields to print spaces between fields when appropriate. For example, use the following procedure to print a space after the Zip/Postal Code only when the Zip/Postal Code contains a value.

iif([CUSTOMER.Zip/postal code] = "", "", " ")

Example 3

You can define a calculated field that prints a comma only when the City field contains a value. Use this technique to produce an address that contains punctuation only when appropriate.

iif([CUSTOMER.City] = "", "", ",")

Example 4

This example, based on the sample Orders table, compares the Amount Paid and the Balance Due to determine which is greater, and then display one of two messages, depending on which value is greater.

iif([ORDERS.Amount Paid] >= [ORDERS.Balance Due], "This is a preferred customer.", "This customer has a balance due.")

If the Amount Paid is greater than or equal to the Balance Due, the field reads "This is a preferred customer." Otherwise, it displays "This customer has a balance due."

Example 5

Suppose you had an employee table that had a DOB field for Date of Birth. You could use the following expression to see if today was their birthday:

iif(month([EMPLOYEE.DOB]) = month(today()) AND day([EMPLOYEE.DOB]) = day(today()),"Happy Birthday!", "")

If the month value of the employee's date of birth is the same as the current month, and the day value of the employee's date of birth is the same as the current day, then it is the employee's birthday [image] display message. Otherwise, it is not the employee's birthday [image] do not display anything.

•	The month() method returns the numeric month value of a date. Its syntax is month(Date).

•	The day() method returns the numeric day value of a date. Its syntax is day(Date).

•	The today() procedure returns the current date.

See Using ObjectPAL in calculated fields.

 Related Topics


Aligning a calculated field with data in a column of a table frame in a report

If you place a calculated field in a table-frame column, for example, at the bottom of a column of numbers, you need to align the decimal points in the calculated field with the decimal points in the numbers in the column.

To do this, create the calculated field and perform the following steps.

To align a calculated field with data in a column of a table frame in a report

1.	Place the calculated field so that the right edge is anywhere to the left of the right edge of the field in the table frame.

2.	Select the edit region on the calculated field.

3.	With the edit region of the calculated field selected, hold down SHIFT and click the field region of the table frame.

4.	Click Format, Alignment, Align Right.

5.	Right-click the edit region of the calculated field and click Properties.

6.	Click the Run Time tab.

7.	Disable the Fit Width check box.

 Related Topics


Controlling page numbering with a calculated field

You can start the numbering of the pages on a report at a value other than 1. For example, if you want the first page to have a page number value of 10, and the number to increase by one for each following page, perform the following steps.

To control page numbering with a calculated field

1.	Create an undefined field in the page header or footer band.

2.	Right-click the field and click Define Field.

3.	Choose Page Number from the Special Field list in the Define Field Object dialog box.

4.	Right-click the field again, and click Properties.

5.	Click the Font page, and set the font color to white (or whatever color the page background is) to make the field invisible.

6.	Create a new field in the page header or footer band where you want the page number to appear.

This is the actual Page Number field that will be displayed.

7.	Right-click the new field, and click Define Field.

8.	In the Define Field Object dialog box, enable the Calculated check box, and type the following expression in the Calculated box:

Page_number.value + 9

Page_number is the default object name given to the Page Number field you just created.

9.	Change the label on the new calculated field to read "Page", or whatever you would like.

 Related Topics


Using a calculated field to print only fields containing data
Using a calculated field to print only fields that contain data

You can vary what a field displays based on whether or not another field is blank.

Create a calculated field, and type in the following formula:

iif(isBlank(fieldname), ValueIfTrue, ValueIfFalse)

If (fieldname) contains no value, ValueIfTrue is used. Otherwise, ValueIfFalse is used.

 Note

•	For Number, ShortNumber, and Currency fields, isBlank always returns a FALSE value if Treat Blank Fields As Zero is enabled on the Database page of the Preferences dialog box (Edit menu).

 Related Topics


Using a calculated field to capitalize fields when printing
Using a calculated field to capitalize fields when you print

You can capitalize certain fields and records from the database when you print a report. Using the sample Customer file as an example, the following steps show you how to print the Name field as all capital letters:

1.	Use the field tool to place a Name field.

2.	Right-click the field, and choose Define Field.

3.	Enable the Calculated check box and type in the following expression in the Calculated box:

upper([CUSTOMER.Name])

 Notes

•	The Name field does not need to be in the report.

•	If you want to convert all names to lowercase, replace upper in the above calculation with lower.

•	A calculation to return an initial capital letter on the name can be done like this:

format ("CC",[CUSTOMER.Name])

This calculation takes the Name field and converts each word to have an initial capital letter; for example, "sight diver" or "SIGHT DIVER" to "Sight Diver". For more information, see format procedure.

 Related Topics


Printing in the page footer only on the last page

Information located in the page footer area of a report prints on the bottom of every page. Sometimes it may be desirable to print information only on the last page of the report. You can place this information in the report footer; however, it will appear above the page footer. If you want this information to appear in the page footer, follow the steps outlined below.

The technique presented here involves placing three fields in the page footer (one calculated field and two special fields for Record Number and Number of Records).

To use this technique:

•	Your report must be attached to a data model.

•	You must also have View, Band Labels enabled in the Report Design window. Make sure that you have some white space in the page footer to allow you to place fields in that position. For information about how to resize report bands see Resizing a band.

To print in the page footer only on the last page

1.	Create a field in the page footer for the special field Record Number in the master table.

Open the master table's list box to display the field list that contains <Record Number>. For more information, see Placing a special field on a form or report.

2.	Create a second field in the page footer for the master table's special field Number Of Records.

3.	Select both the Record Number and Number Of Records fields, and then right-click the multiselected fields and click Properties.

•	On the General page, choose Unlabeled from the Display Type list box.

•	On the Font page, change the font color to match the page's background color and click Apply.

Step 3 makes the values for Record Number and Number Of Records invisible when you print your report.

4.	Create a third field in the page footer. This field will be a calculated field. (For more information, see Creating a calculated field.)

5.	Enable the Calculated check box in the Define Field Object dialog box and type the following expression:

iif(Record_Number = Number_of_Records, "Your Value", "")

•	"Your Value" is the value that you want to print only on the last page of your report.

•	Record_Number and Number_Of_Records are special fields that contain data about the table as a whole. For more information, see iif().

6.	Click OK.

7.	If you want the calculated field to be unlabeled, right-click the field and choose Unlabeled from the Display Type list box on the General page. Otherwise, change the text of the field by clicking the word LABEL until the cursor is inside the text, and then edit the text object.

8.	Press F8 to run the report.

The value in the calculated field that is placed in the page footer should only appear on the last page of the report.

 Related Topics


Printing a calculation formula

When you define a field as a calculated field, the formula becomes an ObjectPAL source. This means that the formula prints with the other ObjectPAL methods that are connected to the document. You can print just the formulas for the calculated fields, or all the ObjectPAL code (for a form only).

To print only the formulas of calculated fields in a form

1.	In the Design window, click View, Document Source to create a temporary report that lists all the ObjectPAL code in that report. This report is based on a temporary table called PAL$SRC.DB.

2.	Click View, Design Report.

3.	Click Format, Filter.

4.	In the MethodName text box, type calcField, then click OK.

5.	Click File, Print to print the temporary report.

To print all the formulas of calculated fields in a report

1.	Click File, Open, Report.

2.	In the Open Report dialog box, enable the Open As A Form button.

3.	Click the Edit The Form Design button.

4.	Choose the appropriate report from the Look In list, and then click Open.

5.	From the Form Design window, click View, Document Source to create a temporary report that lists all the ObjectPAL code in that report. This report is based on a temporary table called PAL$SRC.DB.

6.	Click File, Print to print the temporary report.

To create a report that lists all of the ObjectPAL code contained in a form

1.	In the Design window, click View, Document Source to create a temporary report listing all the ObjectPAL code in that report. This report is based on a temporary table called PAL$SRC.DB.

2.	Click File, Print to print the temporary report.

 Related Topics


About using numeric procedures in calculated fields
About using number methods in calculated fields

Most of the number type methods, or procedures, also work in a calculated field. You can use number methods to do such things as round numbers in various ways, derive a fractional part of a number value, find the higher of two values, ensure integer answers from calculations, or find the differences between dates and times. For a complete listing of number methods, see the ObjectPAL Reference.

Corel Paradox recognizes methods in calculated fields such as Round, LongInt, Fraction, and Max. Corel Paradox also recognizes cos, sin, tan, acos, asin, and atan, which only deal with angles in radians.

 Related Topics


Rounding a value to a specific number of decimal places

To round a value to a specific number of decimal places

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

round([fieldname],# of digits accuracy)

Example

round([ORDERS.Total Invoice],1)

If the value in Total Invoice is $555.94, $555.90 is returned.

For more information, see round.

 Related Topics


Rounding a value to the nearest whole number

To round a value to the nearest whole number

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

round([fieldname]),# of digits accuracy)

Example

round([Orders.Total Invoice],0)

If the value in Total Invoice is $555.67, $556.00 is returned. A value of $555.45 returns $555.00.

For more information, see round method.

 Related Topics


Formatting a decimal value as a whole number

To format a decimal value as a whole number

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

LongInt([fieldname]

Example

LongInt([ORDERS.Total Invoice])

A value of $555.23 returns $555, as does $555.95.

For more information, see the LongInt procedure.

 Related Topics


Deriving a fractional part of a numeric value

To derive a fractional part of a numeric value

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

fraction([fieldname]

Example

fraction([ORDERS.Total Invoice])

A value of $555.23 returns 0.23.

For more information, see the fraction method.

 Related Topics


Finding the higher of two values

To find the higher of two values

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

max(value1, value2)

Example

max([ORDERS.Total Invoice], [ORDERS.Amount Paid])

Unless the amount has been paid in full, this will always return the value in Total Invoice.

For more information, see the max procedure.

 Related Topics


Ensuring integer answers from calculations on numeric values
Ensuring numeric answers from calculations on numeric values

Corel Paradox returns a whole number when you place a literal expression, such as 35/10 (35 divided by 10) or count (tablename.fieldname)/10. In the example of 35/10, Corel Paradox sees this as an integer divided by an integer and returns the integer value 3. Operators such as Count and Number Of Records return LongInt values.

To ensure numeric answers from calculations based on numeric values

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

35/numVal (10)

35/10.0

Both of these examples return 3.50 instead of 3.

The following example returns a number, not an integer.

count(tablename.fieldname)/numVal (10)

 Related Topics


Finding the difference, in days, between two dates

To find the difference, in days, between two dates

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

Example 1

number(date1-date2)

This assumes date1 and date2 are field objects of the same type.

For example, if date1 is 5/10/95 and date2 is 5/5/95, this example returns 5.00.

Example 2

number(date(date1)-date(date2))

This example assumes date1 and date2 are strings that represent the appropriate date format. For example,

number(date("5/10/95")-date("5/5/95"))

This example also returns 5.00.

 Related Topics


Finding the difference, in hours and minutes, between two times

To find the difference between two times

1.	Right-click the field and choose Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box.

format("TO(%H Hours,%M Minutes)", time1-time2)

This example assumes that time1 and time2 are two fields that have time values in the appropriate format (HH:MM:SS am/pm)

For example, if time1 is 5:25:00 pm and time2 is 1:15:00 pm, this example returns an answer of 4 hours, 10 minutes.

 Related Topics


Calculating a date based on the current date

You can establish a field that will calculate a date based on the current date. For example, in August you want to print a list of transactions that is current up to the last day of the prior month (July 31). In the report header, you want the title to read "Transactions as of 7/31/97".

To establish a field that will calculate a date based on the current date

1.	Right-click the field and click Define Field.

2.	Enable the Calculated check box in the Define Field Object dialog box.

3.	Type the following expression in the Calculated box:

today()-day(today())

Today() is today's date, and day(today()) is the number of days since the beginning of the month. When you subtract the number of days since the beginning of the month from today's date, the last day of the prior month is returned.

 Related Topics


About summary fields

A summary is a type of field calculation in forms and reports. You can use summaries to sum, count, or average the values in a field. You can find the minimum, maximum, standard deviation, and variance of values in a field.

Corel Paradox has the following summary operators:

Summary	Description	Use with
Sum	Sum of non blank values	Number data types
Count	Number of non blank values	All data types
Min	Minimum value	Alpha, number, money, date, and number
Max	Maximum value	Alpha, number, money, date, and number
Avg	Divides the total of all non null values by the number (count) of all non null values	Number data types
Std	Standard deviation of values	Number data types
Var	Statistical variance of values	Number data types
First*	First value	All data types
Last*	Last value	All data types
Prev*	Previous value	All data types
* These operators are not available in forms.

Normal, cumulative, and unique report summaries

When you create a report, you can choose from the following types of summaries. These options appear below the list of summary operators in the Define Field Object box.

•	Normal: considers all non null values in the set, including duplicates.

•	Unique: counts only unique non null values in the set. Duplicates are ignored. If you use a unique summary to perform a Sum or Avg function, you will not obtain true results because some values (duplicates) are not considered when the operation is performed.

A common use of a unique summary is to count all unique values in a set. For example, how many different types of items does a certain customer order? Or how many postal codes are in the province of Nova Scotia?

•	Cumulative: keeps a running total that extends from the start of the report to the end of the current set, instead of from the beginning of the current set to the end of the current set. For example, if you place a cumulative Sum summary on a Balance Due field, Corel Paradox initially sets the value to zero, and then keeps a running total from the start of the report through the end of the report.

Calculated fields versus summary fields

Corel Paradox has both calculated fields and summary fields, as described in Calculated fields and summary fields.

 Related Topics


About summary scope

A summary performs a calculation on a set of records. Before you can perform an operation on the set, you must define the set by defining the scope of the summary. The scope specifies on which values you want the summary to operate.

Forms

In a single-table form, Corel Paradox works with only one set of data. In this case, the scope of the summary is the whole table. See Example of creating an Avg summary on a single-table form.

In a multitable form, the scope of a summary depends on the data hierarchy. The hierarchy is defined by the form's data model. See Example of defining the summary scope of a multitable form.

Reports

Both the report's data model and the placement of the summary field in the report design determine the scope of a report's summary. See About summary scope on single-table reports and About summary scope on multitable reports

 Related Topics


About summary scope on single-table reports

When you place summaries in a single-table report, location affects the scope as follows:

•	Corresponding band headers and footers calculate to the same value. This means you can place a summary in either the report header or report footer and get the same result. Likewise, a calculation in either the page header or page footer yields the same result.

•	In a table frame, the scope of the calculation is over all records in the table (if it is a detail table, the scope is all records in the detail set).

•	In a report band (either the header or the footer area), the scope of the calculation is all values contained by the report band [image] all records for the table.

•	In the page band (either the header or the footer area), the scope of the calculation is all values contained by the page band [image] all records on the page.

•	In a group band (either the header or the footer area), the scope of the calculation is all values contained by the group band [image] all records for the group.

•	In a record band, a summary will behave differently in different situations. In a report without a group band, Corel Paradox performs the summary on all records in the table. In a report with a group band, Corel Paradox performs the summary on all records in the group. In a tabular or multirecord report, if the Run Time property Show All Records of the table frame (or multirecord object) is disabled, Corel Paradox performs the summary on the number of records that fit in the table frame or multirecord object. In this case, the table frame or multirecord object acts as if it were a band defined as a number of records.

 Related Topics


About summary scope on multi-table reports
About summary scope on multitable reports

Summaries on master tables

When you place a summary field on the master table of a multitable report, the scope of the summary is the innermost group of data.

When you place a summary field in the record band of a report based on tables with a one-to-many relationship, the summary can calculate only on the current record of the master table. In this case, the current master record behaves like a group band and groups the detail records.

When Corel Paradox works with a data model that contains one-to-many or many-to-one relationships, Corel Paradox joins the two tables in the data model before it performs the summary, and then treats the joined tables as a single table.

Summaries on detail tables

When you place summaries on the detail table of a multitable report, the record, page, and group band rules for summaries on single-table reports remain true. In addition, if you place a summary in the record band, Corel Paradox performs the summary on all detail records of the current master record. If you embed a summary within a table frame or multirecord object defined as the master table, Corel Paradox performs the summary on each record of the master table.

Summaries on unlinked tables

When you place a summary on an unlinked table in a multitable report, the sum is performed for the whole table.

 Related Topics


Defining a summary

A summary performs specific calculations on a specific set of values in a table.

The set of records over which the summary is made is called its scope. The scope is determined by the location of the summary field in the form or report.

To define a summary

1.	Right-click the field on which you want to perform the summary operation, and click Define Field.

2.In the Define Field Object dialog box, choose, from the Table list box, the field on which you want to perform the summary operation (the list box labeled with the name of the table used in the form or report, for example CUSTOMER.DB.

3.	Choose the appropriate summary from the Summary list box.

 Related Topics


Returning a summary value relative to a particular page

In a report that uses tables linked by a one-to-many relationship, if you want to perform a summary operatio which is relative to a page and based on a field in the detail table, you may need to link the tables backward in the data model.

For example, if your report is based on two detail tables, you may have more than one page of detail data. Because of the links, Corel Paradox automatically groups the records in the detail table. Summary operations on a field within a group do not respect page breaks and return a value for the group, not for each page on which the grouped data appear.

The solution is to link from the detail table to the master table. There will be no inherent grouping by Corel Paradox. You can then group on a particular field, or even a set number of records, and have a summary value returned relative to a particular page.

 Related Topics


Example of creating an Avg summary on a single-table form

Suppose you want to know what average quantity your customers order per line item.

1.	Create a based on the LINEITEM.DB table and open it in the Design window.

2.	Click a tool in the Object Toolbar and click an area of the form to place the object.

3.	Right-click the field object, and click Define Field.

4.	In the Define Field Object dialog box, choose Qty from the LINEITEM.DB list box.

5.	Choose Avg from the Summary list box.

6.	Click OK to return to the Design window. Corel Paradox changes the field object's label to Avg(Qty).

7.	Click Edit, View Data to run the form. Corel Paradox calculates the average of all quantities ordered and displays the value in the summary-field object.

 Related Topics


Example of defining the summary scope of a multi-table form

Suppose you have defined your data model as follows:

Customer [image] Orders [image] Lineitem

You can summarize values for fields in the Orders table for each record in the Customer table. In this relationship, Customer is the master table and Orders is the detail table. Corel Paradox sums the set of Orders detail records for the current Customer record.

Likewise, you can summarize values in the Lineitem table for the current record in the Orders table. Again, the master table (Orders) determines the scope of a summary on the detail table (Lineitem). The summary of Lineitem is performed on the set of all items for the current customer's current order.

 Notes

•	In the data model Customer [image] Orders [image] Lineitem, you cannot create a summary of each customer's lineitems [image] only of each order's lineitems. Corel Paradox can move up only one level in the data hierarchy when performing a summary.

•	When placing a summary field on a set of detail records in a one to many to many relationship in a form, you must position the summary field within that detail's repeating region (the table frame or multirecord object that displays its records) or within the repeating region of the next table up in the data hierarchy.

 Related Topics


Example of creating a count summary in a report

Suppose you're working with a tabular report on the sample Customer table and want to know how many customers you have in each country. Define a summary by following these steps:

1.	In the Report Design window, create a group band on the Country field of Customers. See Adding a group band.

2.	Click the Field tool on the Toolbar, then drag in the group band to place an undefined field object below the Country field.

3.	Right-click the field object, and click Define Field.

4.	In the Define Field Object dialog box, choose the Customer No field from the CUSTOMER.DB list box.

5.	Choose Count from the Summary list box.

6.	Click OK to return to the Design window.

7.	Click File, Print to print the report.

For each unique country value, Corel Paradox shows the country name, the number of customers in that country, and a table frame that displays customer information.

When you print or preview a report, Corel Paradox performs the calculation defined by the summary and returns a value. In the example of the count-by-country summary, Corel Paradox looks at the record band for each group and returns the number of records in that band.

In the example report below, the Count summary on the Customer No field and the Country field have been inserted within a text object.

When you print or preview the report, the summary field value appears as part of the sentence.

 Tip

•	When you define a count, it is a good idea to count the values in a table's primary-key field. Because a primary-key field must contain data, you will be sure to get an accurate count.

 Related Topics


Displaying the complete contents of a memo field

When you create a memo or formatted memo field, you specify how much of the memo Corel Paradox stores in the table. The entire memo is stored in a different file. (For more information see Corel Paradox field types and sizes.)

The time it takes Corel Paradox to access the .MB file (Corel Paradox stores memo data in a file with the name of the table and a .MB extension) and display its information in your form depends on a variety of factors, such as the size of the memo and the speed of your system. To increase performance, you can display only the data stored in the table.

To display the complete contents of a memo field

1.	Right-click the memo field and click Properties.

2.	Click the Run Time tab.

3.	Enable the Complete Display check box.

For more information, see Complete Display property.

 Related Topics


Deleting an empty field or record when printing a report

You can specify that if a field or record is empty it does not print when the report is previewed or printed.

To suppress printing of an empty field or record

1.	Right-click the field, or the record in a table frame or multirecord object, and click Properties.

2.	Click the Run Time page.

3.	Enable the Delete When Empty check box.

Notes

•	When Delete When Empty is enabled, if the design object shows no data in the report, the object does not appear when the report is previewed or printed.

•	When Delete When Empty is disabled, the object appears even if it shows no data.

 Related Topics


Making a field read only
Making a field read-only

You can prevent a field's data from being changed when you run a form.

To prevent someone from changing data in a field no matter how they access the field (from a table, any form, or a query), use a read-only auxiliary password. See About password security.

To make a field read-only

1.	Right-click the field and click Properties.

2.	Click the Run Time page.

3.	Enable the Read Only check box.

 Related Topics


Hiding a field's contents

You can suppress the contents of a field when you run a form. The field is visible, but not its value. This is especially useful for entering passwords or other protected information.

To hide a field's contents

1.	Right-click the field and click Properties.

2.	Click the Run Time page.

3.	Enable the No Echo check box. Corel Paradox will not display data you enter in the field.

For more information, see the No Echo property.

 Related Topics


About table frames

If your form or report design includes a table, you'll see a table frame that represents the table. A table frame looks like its source table, but a table frame is not a table. It is a composite object that consists of

•	columns that represent fields

•	rows (the top row represents all records)

•	text objects that contain labels for the fields

•	field objects that represent data from the source table in the first row below the header

Corel Paradox automatically places a table frame on the design if you either choose a tabular layout in the Design Layout dialog box or create a multitable form or report.

 Related Topics


Placing a table frame on a form or report

You might want to place a table frame on a design to display additional tables in a form or report.

To place a table frame on a form or report

1.	With the appropriate form or report open in the Design window, click the Table [image] tool.

2.	Click the form or report to place the table frame at its default size, or click and drag to place the table frame and specify its size.

Corel Paradox creates a table grid with labels and undefined fields. This is the table frame.

If you specified a table in the document's data model, the new table frame can either be linked to or independent of that table. For more information, see Creating a link.

 Related Topics


Defining a table frame

When you define a table frame, you specify the table to use and which fields to include. Use the Table tool to place linked or unlinked tables in a form or report.

Corel Paradox creates an undefined table frame with a header that contains column labels that say "Label" and a record that contains undefined fields.

To define a table frame

1.	Right-click the table frame and click Define Table.

2.	In the Define Table Object dialog box, click the table you want from the data model.

3.	Choose the fields you want to display from the appropriate table's list box (for example, CUSTOMER.DB).

The fields and labels in the table are replaced by fields and labels that are appropriate to the chosen definition. Any contained objects, properties, or ObjectPAL code are lost.

 Tip

•	You can also define a table frame by either right-clicking the master record and clicking Define Record or defining individual field objects.

 Note

•	If the Size To Fit property is enabled on the Design page of the Properties dialog box, the table frame tries to size to the width required to show all columns. If it cannot, or if Size To Fit is not enabled, the missing columns are still there. You can view them by placing a horizontal scroll bar on the table frame.

For more information about modifying the table frame, see About modifying table frames.

 Related Topics


Repeating a table header in a report

When a table breaks across several pages, you can repeat the table header at the top of each page.

To repeat a table header in a report

1.	Select the appropriate table frame.

2.	Right-click the table frame and choose Properties.

3.	On the General Page of the Properties dialog box, enable the Repeat Header check box.

 Note

•	The Repeat Header property is not available for a table frame that has detached headers.

 Related Topics


Showing all records and columns

When you run a form or report, Corel Paradox can expand a table frame or multirecord object to create as many pages as necessary to display all records or columns.

To show all records and columns

1.	In a Design window, right-click a table frame or multirecord object and click Properties.

2.	Click the Run Time page.

3.	Enable the Show All Records check box. For table objects, you can also enable the Show All Columns check box.

•	If Show All Records is disabled, Corel Paradox displays a fixed number of records. For more information, see Show all records and Show all columns.

 Related Topics


About modifying table frames

You can customize a table frame in a form or a report in the following ways:

•	Resize a column by dragging its right grid line in the header area.

•	Resize row height by clicking and dragging the horizontal grid line under a field object.

•	Delete a column by selecting it and pressing DELETE.

•	Insert a column by selecting a column and pressing INSERT. (The new column appears to the left of the selected column.)

•	Redefine a field object by right-clicking it and choosing Define Field.

•	Add a regular, special, summary, or calculated field by placing and defining a new field object.

•	Stack field objects in the same column.

•	Add design elements such as lines, boxes, and ellipses.

•	Add data elements such as other tables, charts, or crosstabs.

•	Detach the header (and delete the header or move it to another band).

•	Retype the labels and right-click them to change any text properties.

•	Right-click the field objects and click Properties to change properties.

•	Right-click a record (row) as a whole and click Properties to change its properties.

•	Right-click the table frame and click Grid to change any of its properties.

•	Right-click the header and click Properties to change its properties.

Because the table frame you place in a design is not the actual table, property changes and table-frame restructuring do not affect the actual table. Only changes made to the data appear in the table itself.

 Related Topics


Changing the appearance of items in a table frame

The table frame you place in a form or report is in standard tabular format. You can change the appearance of

•	data by selecting the one representative record as a whole, or by selecting individual field objects

•	headers by selecting a header as a whole, or by selecting its individual labels

•	column names by selecting a column name (Corel Paradox displays an insertion point) and then typing your change

•	the grid

•	the background color and pattern in forms

•	the scroll bar in forms, and in reports in the Design window.

These changes do not restructure the table itself. They change only the view of the table in this table frame on this document.

To change the appearance of items in a table frame

1.	Select an object in the table frame.

2.	Right-click that object and click Properties.

3.	Make the appropriate changes using the Properties dialog box.

 Related Topics


Specifying grid style for a table frame

You can change the grid's style and color and also display a record divider between each row of data.

To specify grid style for a table frame

1.	Right-click the table frame and click Properties.

2.	Click the Grid tab.

3.	Set grid properties as appropriate.

 Note

•	When you enable the Record Divider check box, Corel Paradox does not change the table-frame image in the Design window. That image already has visible record dividers. You'll see the difference when you run the form or print the report. Without record dividers, horizontal lines do not appear between the records in the table frame.

 Related Topics


Rearranging the parts of a table frame

These changes do not restructure the table itself. They change only the view of the table in this table frame on this document.

Headers

Rresize header areas by dragging the grid lines under the field labels. You can detach the header by selecting the table frame, right-clicking the frame, clicking Properties, and disabling the Attached Header check box on the General page of the Properties dialog box. In a report, you can move the header to another band.

The header labels must remain in alignment with the columns of the table; therefore, dragging either the header or the body of the table sideways causes both the header and the body of the table to move.

Fields

Move a field by dragging it to a new position. Move a field out of the table area by dragging it out. The column is not removed, only the field.

Rows

Resize the row height by dragging the horizontal grid line under any field object. This resizes the row height for all the rows in the table frame.

Columns

Move a column by selecting the header for the column and dragging it to a new position. You can also select the whole column and drag it to the new location. Resize a column by selecting the table frame and dragging the right grid line of the column. Resize all columns to the minimum width. Right-click the table frame object and choose Minimize Columns.

Remove a column by selecting it and pressing DELETE. You can also delete a column by resizing it to nothing. Drag the vertical grid line at the right of the column to the left. When you reach the minimum column width, the grid line changes to a dotted outline. Release the mouse button to delete the column.

Add a column by selecting a column and pressing INSERT. The new column appears to the left of the selected column.

 Related Topics


Adding data and design objects to a table frame

You can change the definition of a field object by right-clicking the field, and choosing Define Field. You can also add a regular, special, summary, or calculated field by placing and defining a new field object. See About Field Objects.

You can add design elements such as lines, boxes, and ellipses as well as data elements such as other tables, charts, or crosstabs.

These changes do not restructure the table itself. They change only the view of the table in this table frame on this document.

 Related Topics


Combining (stack) fields in a column
Combining (stacking) fields in a column

To stack field objects in the same column

1.	Resize the record area of the column to adjust its width and height. For more information see Rearrange the parts of a table frame.

2.	Do one of the following:

•	Drag existing field objects from other columns into the desired column.

•	Create new field objects within the column.

Tip

•	When you stack fields in a column, the document may be more readable if you right-click the table, choose Properties, and enable the Record Divider check box on the Grid page.

 Related Topics


Example of combining fields in a column of a table frame

The following example combines the values of the Street, City, State/Prov, and Zip/Postal Code fields from the sample Customer table into one field:

Corel Paradox combines the values from the four fields for each record of the table and inserts spaces and commas where you placed them in the calculated expression.

For step-by-step instructions on how to create this example, see Example of calculating with an alpha string.

The following example shows a similar table, but this time the fields aren't combined, they are stacked in the same column:

 Related Topics


Example of placing design objects in a table frame

You can place design objects such as lines, boxes, and ellipses [image] even other tables or charts [image] within the table.

1.	Click the tool for the object you want to place.

2.	Drag in the table frame to create the object. Make the object fit completely within the record object by making it small enough, or by changing the record's row height and column width.

The following figure shows a form that has Customer [image] Orders as its data model. The table frame in this form has two fields from Customer in its first column. The second column contains a chart object that illustrates information about orders placed by each customer.

 Related Topics


About multi-record objects
About multirecord objects

A multirecord object displays several records at a time by using a field layout that repeats a specified number of times horizontally and vertically on the page. You can place fields in any pattern. You define the field layout for one record and then specify how many records across and down you want.

A common use of a multirecord object is to create mailing labels. Each label is a group of fields (such as Name, Address, City, State, and Zip) in a layout, repeated for each record. The following figure shows the design for a multirecord report that uses fields from the sample Customer table.

•	In the master record region, define the field objects and arrange them in the layout you want.

•	The gray record regions show where Corel Paradox will place additional records.

When you print or preview this report, Corel Paradox repeats the pattern of the fields in the master record region for every record in the Customer table.

 Note

•	The record object inside the multirecord object is a container for the records. If you make the record object too small, Corel Paradox will eliminate fields in the Define Multirecord Object dialog box (right-click menu) to make the record fit the container. To resize the records, select the master record region and drag any of its selection handles. Because all record regions in the multirecord object are the same size, Corel Paradox resizes the gray repeating regions along with the master record region.

 Related Topics


Placing a multi-record object on a form or report

To place a multi-record object on a form or report

1.	Click the Multirecord [image] tool.

2.	Click to place the multirecord object at its default size, or click and drag to place the multirecord object and specify its size.

3.	Click the record object inside the multi-record object.

4.	Resize the record object to make it large enough to contain all the fields you want to include in the record.

If you make the record object too small, Corel Paradox will eliminate fields in the Define Multirecord Object dialog box to make the record fit the container.

 Related Topics


Defining a multi-record object

After you place a multirecord object, you can specify which fields display in each record. Only the fields from a detail table can be displayed in a multirecord object.

To define a multi-record object

1.	Right-click the multirecord object and click Define Record.

2.	In the Define Multirecord Object dialog box, which displays the tables bound to the document, choose the fields you want from the table list box (for example CUSOTMER.DB).

 Related Topics


Specifying the record layout of a multi-record object
Specifying the record layout of a multirecord object

You can specify how many records to repeat across and down in a multirecord object.

To specify the record layout of a multi-record object

1.	Right-click the multirecord object and click Properties

2.	Click the Record Layout tab to bring it to the front.

3.	Do one or more of the following:

•	Type the number of records to repeat across and down the page in the Number boxes.

•	Set the vertical and horizontal separation between the records by typing the appropriate numbers in the Separation boxes; Corel Paradox uses the unit of measurement (inches or centimeters) you specify in the Grid Settings.

•	Establish the order in which the records appear by enabling the appropriate Fill Order button.

 Note

•	When you specify the layout of a multirecord object in a report, the number of times records repeat can be affected by the Show All Records and Delete When Empty properties on the Run Time page of the Properties dialog box.

 Related Topics


Specifying the field layout of a multi-record object
Specifying the field layout of a multirecord object

To specify the field layout of a multirecord object

1.	Right-click the multirecord object and click Define Record.

2.	In the Define Multirecord Object dialog box, choose the field you want to display in the object from the table's list box.

3.	Click OK to return to the form or report.

4.	Right-click the multirecord object and click Field Layout.

5.	In the Layout Multirecord Object dialog box, do one or more of the following:

•	Enable either the By Column or the By Row button to display fields by columns or rows within the record.

•	Enable the Label Fields check box to display field labels within the record.

•	On the Fields page, select fields to be included in the record and use the arrow buttons to set the order of the fields.

 Related Topics


Resizing records in a multi-record object
Resizing records in a multirecord object

To resize records in a multirecord object

1.	Select the master record region of a multirecord object.

2.	Drag any of its selection handles.

Corel Paradox resizes the gray repeating regions along with the master record region.

 Note

•	The record object inside the multirecord object is a container for the records. If you make the record object too small, Corel Paradox will eliminate fields in the Define Multirecord Object dialog box to make the record fit the container.

 Related Topics


Expanding or contracting records in a multi-record object

You can expand or contract individual records in a multi-record object when you print or preview reports. This means that the multi-record object does not display the records in a fixed-size grid. If you use the Variable Height (Columnar) property, you can usually fit more records on a single page than you can without the Variable Height (Columnar) property.

To expand or contract records in a multirecord object

1.	Right-click the multirecord object and click Properties.

2.	On the Record Layout page of the Properties dialog box, enable the Top-Down Then Left-Right button.

3.	If you are creating a report, enable the Variable Height (Columnar) check box.

Columnar is not available unless you first select the Top-Down, Then Left-Right setting. The Columnar property is available only in reports.

 Note

•	The record object inside the multirecord object is a container for the records. If you make the record object too small, Corel Paradox will eliminate fields in the Define Multirecord Object dialog box to make the record fit the container.

 Related Topics


Example of expanding or contracting records in a multi-record object
Example of expanding or contracting records in a multirecord object

The following example shows the results when the Columnar property for a multirecord object turned on, then Columnar turned off. Notice that when Columnar is turned off, space is wasted on the page because the records are all a fixed size. In the example where Columnar is on, each record shrinks to eliminate the extra space, and allows more records to fit on a page.

Columnar property off (default setting)	Columnar property on

 Related Topics


About notebooks

Notebooks contain one or more pages. Each page has a tab that you can click to display the page. You can use a notebook to replace multiple form pages. For example, you can place the information from each table in the form's data model on a different notebook page, rather than on multiple form pages. This makes viewing and editing data much more efficient because the you can click a tab to display the page, rather than navigating through multiple pages of the form.

Each notebook page is a container for other objects. Any design object that can be placed on a form can be placed on a notebook page. You can even place a notebook object on a notebook page.

Notebooks are available only in forms, not in reports.

Data objects on notebook pages

You can place data objects on different notebook pages to make data maintenance more efficient.

For example, by using a data model that contains a one-to-many-to-many relationship, you might put the master-table records on the first notebook page, the first detail-table records on the second page, and the final detail-table records on the third page. You could then select the first notebook page, cycle through the master records, and consult the details only when needed. Not only does this simplify the display, but it improves performance.

Notebook properties

You can change the properties for the notebook as a whole, or for individual pages. For example, you can place the tabs on the top or bottom of the notebook and change the shape of the tab from square to angled. Individual pages can be colored, and each page can have a different color when it is active than when it is inactive. You can make the entire notebook, or individual pages, invisible at runtime.

 Note

•	Two table frames on different notebook pages cannot refer to the same table in the data model.

 Related Topics


Example of a form that uses a notebook object

The following example is a form for a contact-management database that uses notebook pages to keep track of companies, contacts, addresses and phone numbers, tasks, and comments and notes.

 Related Topics


Placing a notebook on a form

To place a notebook on a form

1.	With a form or report open in the Design window, click the Notebook [image] tool on the Form Design Toolbar.

2.	Click the form or report to place a notebook at its default size, or click and drag to place the notebook and specify its size.

Tip

•	The default notebook object has two pages, with room for three. You can add pages to the notebook by right-clicking the notebook and choosing Page, Add Page, or by choosing Properties and changing the number of pages on the General page.

 Related Topics


Selecting a notebook or a notebook page

Notebooks conform to the conventions of the Select From Inside property. When that property is unchecked, the first click in the Design window selects the outermost object. Subsequent clicks select the next smallest level of containership.

To select the entire notebook

•	Click the notebook. (If you've already clicked once or twice on the notebook, clear the selection by clicking on the form page outside the notebook object.)

A double dotted line with sizing handles frames the notebook object. If you have difficulty selecting the entire notebook, make sure the Select From Inside check box on the Designer page of the Preferences dialog box (Edit menu) is disabled.

To select a notebook page

1.	Click the notebook.

2.	Click a page's tab to select the page.

3.	To select a different page, click the page's tab.

 Related Topics


Placing an object on a notebook page

You can place any design object on a notebook page. You can even place a notebook object on a notebook page.

To place an object on a notebook page

1.	Select a notebook page.

2.	Click an object's tool on the Form Design Toolbar.

3.	Drag within the confines of the notebook page to create the object.

 Tip

•	To modify the label on the tab, select the label text object, press F2, and start typing. The label grows to fit the text.

 Related Topics


Navigating notebook pages

Using the mouse or keyboard

•	Display a notebook page by clicking its tab. (In a Design window or when running the form).

•	Cycle through the objects by pressing TAB and SHIFT+TAB. Use this technique to move to any notebook page, or to any object on any notebook page (Design window only).

•	Move through the notebook pages by pressing SHIFT+F3 (backward) and SHIFT+F4 (forward). (In a Design window or when running the form.)

Using the right-click menu

You can right-click the notebook to move through its pages. This is similar to moving through the pages of a form.

1.	Select the entire notebook.

2.	Right-click the notebook and do one of the following:

•	Click Page, Next to move to the page to the right of the current page. If the current page is on the right edge of the notebook, Corel Paradox chooses the left-most page on the row above the current page.

•	Click Page, Previous to move to the page to the left of the current page. If the current page is on the left edge of the notebook, Corel Paradox chooses the right-most page on the row above the current page.

•	Click Page, First to make the first page (the one created first) current. In notebooks with multiple rows that have been shifted around, this indicates which page is first.

•	Click Page, Last to make the last page you created current.

 Related Topics


Rotating notebook pages

You can move a selected notebook page to the last page's position.

To rotate notebook pages

1.	With the appropriate form open in the Design window, select the page you want moved to the end of the notebook.

2.	Click off of the notebook then right-click the notebook and click Rotate pages.

 Related Topics


Moving or resizing a notebook

Notebook pages cannot be moved or resized separately from the notebook.

To move a notebook

1.	Select the entire notebook.

2.	Drag it to a new location.

To resize a notebook

1.	Select the entire notebook.

2.	Drag one of the sizing handles to change the shape of the notebook.

 Related Topics


Changing the tab height on a notebook

You can change the height of the tabs on the top or bottom of the notebook.

To change the tab height on a notebook

1.	Select the entire notebook so that a double dotted line with sizing handles frames the notebook object.

2.	Do one or more of the following:

•	Drag the center sizing handle nearest the tabs to change the height.

•	Drag the top center handle to resize the tabs on the top.

•	Drag the bottom center handle to resize the tabs on the bottom.

 Tip

•	If you reduce the height of the tabs, you will want to choose a smaller font size for the labels.

 Related Topics


Adding a page to a notebook

To add a page

1.	Select the entire notebook.

2.	Right-click the notebook and click Add Page.

Corel Paradox adds one page to the form at the end of the existing pages.

To add multiple pages

1.	Select the entire notebook.

2.	Right-click the notebook and click Properties.

3.	On the General page of the Properties dialog box, type a number in the Number Of Pages dialog box.

Notes

•	You can control the number of tabs displayed and the number of rows that display them. For example, if you specify eight pages with four tabs across, the notebook will have two rows with four tabs on each row.

•	When you add rows, the tabs on any given row continue to remain on a common row. If you select a tab from the back row, the entire back row of tabs moves to the front row with the selected page.

•	To display the tabs in one scrolling row, add a scroll bar as described in Placing a scroll bar on a notebook.

 Related Topics


Placing a scroll bar on a notebook

When the tabs do not fit in the available space, you either use multiple rows as discussed in Adding pages to a notebook or you can use one row and add a scroll bar so that you can display the tabs in one scrolling row.

To add a scroll bar

1.	Select the entire notebook.

2.	Right-click the notebook and click Properties.

3.	On the General page of the Proerties dialog box, enable the Scrolling Tabs check box.

When the Scrolling Tabs check box is enabled, the notebook has one row of tabs. Those that do not fit are not visible. On the right side of the notebook are left and right arrow buttons. Click a button to scroll the tabs left or right. Hold down a button to scroll the tabs repeatedly.

 Note

•	Scrolling does not change which page is active. You can scroll the tab for the active page offscreen and still view the active page. When you scroll to the desired tab, you must click the tab to make its page active.

 Related Topics


Copying and pasting a notebook page

To copy and past a notebook page

1.	Select a notebook page.

2.	Right-click the page and click Cut or Copy to place the page on the Clipboard.

3.	Select another notebook page.

4.	Right-click that page and click Paste.

Corel Paradox inserts the notebook page after the active notebook page.

 Tip

•	You can also use the Cut, Copy, and Paste commands from the Edit menu.

 Related Topics


Deleting a notebook page

To delete a notebook page

1.	Select a notebook page.

2.	Click Edit, Delete.

Note

•	A notebook must have at least one page.

 Related Topics


Using the Field Palette

The Field Palette allows you to quickly add table fields to a form or report.

To open the Field Palette

With a form or report open in a Design window, click View, Field Palette.

The Field Palette contains the names of all the tables in your working directory. When you choose a table from the list box, the bottom panel of the Field Palette displays all of the fields in that table.

To add a field to a form or report using the Field Palette

1.	Choose a table from the Field Palette list box.

2.	Drag a field from the list of fields to your form or report.

Corel Paradox adds a field to the form or report. If you add a field from a table that is not already part of the form's or report's data model, Corel Paradox prompts you to confirm adding the table to the data model.

Once you add a field, you can define the field and set its properties.


About designing forms and reports

Forms are a good tool for data entry. You design a form to display the data from one or more tables and use the form to enter and edit the data in the tables. Any change you make to the data in the form is reflected in the table.

Reports are printing tools. Use them to format and print your data. For example, you can use reports to create form letters, mailing labels, invoices, and presentations.

Use the Form Design or Report Design window to create a form or report. This window does not display a table's data. To see the data, either run the form or print or preview the report.

When you design a form or report, you can

·	add or remove design objects, such as boxes, fields, tables, and charts

·	change the properties of any design object on the form

·	add ObjectPAL methods to the design objects to customize their functionality (forms only)

·	add, delete, or rearrange pages

·	customize a default form or report

·	run a form to view and edit data

·	run a report to preview or print data

For information about placing objects on forms and reports, see About the Design window and About design objects.

Forms and reports are called design documents. For a comparison of forms and reports, see About forms and reports.

 Related Topics


Creating a blank form or report

To create a blank form or report

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Do one of the following:

·	To create a new form, double-click the New Form icon.

·	To create a new report, double-click the New Report icon.

4.	Click the Blank button.

Corel Paradox opens a blank Design window not bound to a table and containing only a single page for forms or, for report, the report header and footer, page header and footer, and record band.

Tip

·	You can specify that Corel Paradox always opens a blank form or report. For more information, see Forms/Reports Preferences.

 Related Topics


Modifying an existing form or report

To modify an existing form or report

1.	Do one of the following:

·	Click File, Open, Form to open a form.

·	Click File, Open, Report to open a report.

2.	In the Open dialog box, use the Look In list box to locate the form or report you want to open.

3.	Type the name of the form or report in the File Name box.

4.	Do one of the following:

·	If you are opening a form, enable the Edit The Form Design button.

·	If you opening a report, enable the Edit The Report Design button.

5.	Click the Open button.

For information about placing objects on forms and reports, see About the design window and About design objects.

 Related Topics


About page layout for forms and reports

Page layout specifies the page size for a form or report. You can use a predefined page size, or you can specify a custom width and height.

Designing for the screen

By default, Corel Paradox designs forms for the screen. You can use any screen fonts that are installed on your system. If these fonts are not available on your printer, documents you create for the screen might not be identical to their printed versions.

When you design for the screen, Corel Paradox uses your system's current screen driver size (in pixels) in the Screen Size panel of the Page Layout dialog box. You can change the size and specify the unit of measurement for a custom size.

You can choose from standard page sizes, or you can enter your own measurements.

When you design a report for the screen, you must use portrait orientation.

Designing for a printer

By default, Corel Paradox designs reports for the printer. If you design for a printer:

·	Corel Paradox makes available only fonts that are currently installed on your active printer. This may limit your onscreen display, but it ensures a similar document for onscreen viewing and printed output.

·	Corel Paradox attempts to match the onscreen view with the printed output. This means that the screen fonts might not match the printer fonts exactly in height or width. Size-to-fit objects are sized based on the printer-font sizes. On the screen, this might cause clipping or text objects that seem to wrap too soon, but on paper they will look correct. Be careful, when you design for a printer, that you do not cause unwanted clipping by sizing objects to a screen font.

·	You can design the form or report using portrait or landscape orientation.

If you choose landscape in the Page Layout dialog box, Corel Paradox will print the report from left to right along the longest side of the paper. However, you still need to set the printer for the desired printing orientation. If you choose portrait for both the Corel Paradox and printer settings, the report will print from left to right across the shorter side of the paper.

If you choose landscape for both the Corel Paradox and printer settings, the report will print across the longest side of the paper.

If you choose landscape in Corel Paradox, and portrait in the printer settings, then tile the report by setting Create Horizontal Overflow Pages As Needed in the Print File dialog box, the report prints across as many portrait-oriented sheets as necessary. These settings are useful if, for example, you want to bind a report with wide pages in a normal 8.5x11 format (book-like).

 Related Topics


Changing the page layout for a form or report

To change the page layout for a form or report

1.	With a form or report open in the Design window, click File, Page Setup.

2.	In the Page Setup dialog box, do one of the following:

·	Enable the Printer button if you want to designing for the printer (primarily reports).

·	Enable the Screen button if you want to designing for the screen (primarily forms).

3.	Select the desired units of measure.

4.	Select a predefined page size, or type a custom size in the Width and Height boxes.

5.	If you are designing the form for the printer, enable the desired paper orientation button.

6.	For printed reports, enable either portrait or landscape orientation, and define the margins.

 Related Topics


Specifying a default on-screen size

You can specify that all documents default to a certain on-screen size.

To specify a default on-screen size

1.	Click Tools, Setting, Preferences.

2.	In the Preferences dialog box, click the Forms/Reports tab.

3.	Disable the Size To Desktop check box.

4.	Choose the appropriate unit of measurement.

5.	Type values in the Width and Height boxes.

Every time you create a form or report, Corel Paradox will create it with the specified default size.

 Related Topics


About multi-page forms

If the objects on your form do not fit on a single screen, you can create multiple pages for the form. You place design objects on each page, and the user views the different pages while running the form. You can also create a form with multiple images by placing a Notebook object on the form. For information, see About notebooks.

When you work with a multi-page form, you must add each page. You cannot place a page break on a form the way you would in a report.

 Tip

·	When you work with with multi-page forms, you might want to click View, Zoom, Best Fit to see all pages of the form on the screen at the same time.

·	ObjectPAL applications that are designed using a multi-page form are often faster than applications that open and close multiple forms.

 Related Topics


Adding a form page

To add a form page

·	With a form open in the Design window, click Insert, Page.

Corel Paradox adds a blank page to the form at the end of the existing pages.

 Note

·	You cannot add a blank page between existing pages, but you can rotate or move pages to rearrange their order. For more information, see Cutting, copying, or pasting a form page and Rotating form pages.

 Related Topics


Cutting, copying, or pasting a form page

To cut a page

1.	With a form open in the Design window, select the page you want to cut.

2.	Click Edit, Cut.

Corel Paradox removes the page and all objects on the page.

To copy a page

1.	With a form open in the Design window, select the page you want to copy.

2.	Click Edit, Copy.

Corel Paradox copies the page and all objects on the page.

To paste a page

1.	Copy or Cut the page in the Design window.

2.	Select the page that will follow the pasted page.

3.	Click Edit, Paste.

Corel Paradox inserts the pasted page before the selected page. For example, if you cut page 2 of a five-page report, select the last page, and paste page 2; Corel Paradox inserts the page as page 4.

 Related Topics


Deleting a form page

To delete a form page

1.	With a form open in the Design window, select the page you want to delete.

2.	Do one of the following:

·	Press DELETE.

·	Click Edit, Delete.

·	Click Edit, Cut.

 Note

·	Cut overwrites the Clipboard, DELETE does not.

 Related Topics


Rotating form pages

To rotate form pages

1.	With a form open in the Design window, select the page you want to rotate.

2.	Click Format, Rotate Pages.

Corel Paradox moves the selected page to the last page's position. For example, if you select page 2 of a five-page form and click Format, Rotate Pages, Corel Paradox moves page 2 to the end of the form (page 5) and moves pages 3, 4, and 5 up one position.

 Related Topics


Tiling form pages

Use tiling to control the onscreen display of form pages when you are working with a multi-page form. Display only one page at a time (stacked) or arrange pages either across or down the screen.

To tile form pages

1.	With a form open in the Design window, click View, Tile Pages, and click one of the following options:

·	Click Stack Pages to display the pages one at a time, one on top of another.

·	Click Top And Bottom to display the page vertically down the screen (default option).

·	Click Side By Side to display the pages horizontally across the screen.

 Related Topics


Moving among form pages

When you are working with a multi-page form you can move to the first, last, next, or previous page.

To move among form pages

·	Click View, Page, and click the page you want to display.

When you move to a page, Corel Paradox selects it.

To go to a specific page

1.	Click View, Page, Go To.

2.	Type a number in the Page Number box.

 Tips

·	Use SHIFT+F4 to move quickly to the next page and SHIFT+F3 to move to the previous page.

·	In the Form Design window, you can also use the scroll bars to move through the pages of a form, unless you have the pages stacked. After you scroll to a page, you must select the page to make it active.

 Related Topics


About forms as windows

You can create a form that is either a window or a dialog box.

If you specify Window in the Window Style panel of the Window Style dialog box, Corel Paradox opens the form as a window it is run. In the Window Style dialog box, some of the options in the Frame properties, Title Bar properties, and Window properties panels are enabled and dimmed. This means you must use these standard features of a window for your form's window.

You can change

·	the text that appears on the window's Title Bar by typing the text you want in the Title box

·	the display of horizontal or vertical scroll bars by disabling either the Vertical Scroll Bar or Horizontal Scroll Bar check boxes to remove them from the window.

·	the size of the window. Enable the Size To Fit check box to have Corel Paradox automatically size the window to fit the page size of the form. The effect of choosing Size To Fit may not be apparent unless your page size is smaller than the size of your screen display. Adjust your page size to be as small as it can be without removing any existing objects, then enable Size To Fit.

·	the display of standard form menus. The Standard Menu option is enabled by default. If you create a menu using ObjectPAL, and want your form to use it, disable the Standard Menu check box. This applies mainly to multi-form applications. See your ObjectPAL documentation for information on customizing forms.

 Related Topics


About forms as dialog boxes

You can create a form that is either a window or a dialog box. If you specify Dialog Box in the Window Style panel of the Window Style dialog box, Corel Paradox opens the form as a dialog box when it is run. This means the form

·	appears in the center of your screen

·	appears on top of all open windows

·	can be moved like any other dialog box

·	cannot be resized by the user

In the Window Style dialog box, all options except Standard Menu are available. Standard Menu is dimmed: You must use this feature of a dialog box. You can choose options from the Frame properties, Title Bar properties, and Window properties.

Frame properties

The Dialog Frame property displays the dialog box as a standard Windows dialog box frame. The border, colors, and other settings are set from the Windows Control Panel. The Border property displays the dialog box with a border instead of the default Windows style. The Thick Frame property displays the dialog box with a thick black border instead of the normal Windows style. Thick Frame is unavailable if you choose Dialog Frame.

Title Bar properties

The Control Menu property places the standard Window Control menu in the top-left corner of the dialog box. If you open a form as a dialog box and it does not have a Control menu, you can close the dialog by pressing ALT+F4. The Minimize Button property places a Minimize button on the top-right corner of the dialog box. The Maximize Button property places a Maximize button on the top-right corner of the dialog box.

Window properties

The Title Bar property places a title bar across the top of the dialog box. Enter the text you want to appear on the dialog box's title bar in the Title box. To display horizontal or vertical scroll bars on the dialog box, enable either the Vertical Scroll Bar check box or the Horizontal Scroll Bar check box.

Enable the Modal check box to prevent users from working anywhere else in Corel Paradox until the dialog box is closed.

Disable the Mouse Activates check box to allow users to click the dialog box to activate it without changing the focus to it. For example, if you've created a customized Toolbar using ObjectPAL, and you want to use the tools on that Toolbar in your dialog box, disabling the Mouse Activates property will prevent Corel Paradox from activating the Toolbar window every time a user clicks one of its tools.

 Note

·	For the settings you choose in the Window Style dialog box to take effect, you must save the form, close the Form Design window, and open the form in the Form window.

 Related Topics


Specifying form window style
Specifying the window style of a form

You can specify whether the form appears as a window or as a dialog box, and you can specify the style of the form's title and border.

To specify form window style

1.	In a Form Design window, right-click the form's title bar and click Window Style. (The form's Title Bar is not visible if the form is maximized).

2.	Use the Windows Style dialog box to change the form's window style, title, and border.

Note

·	The form's Title Bar is not visible if the form is maximized.

·	After you change the window properties of a form, you must save the form and reopen it to see the changes.

 Related Topics


About tab order of design objects on a form

When you run a form, you can press TAB to move from object to object. Tab order is the order in which objects become active as you press TAB.

You can modify the tab order by changing the Next Tab Stop property and by clicking Format, Order, Bring To Front and Format, Order, Bring To Back.

 Related Topics


Changing the design window tab order
Changing the tab order on a form

While you are in design mode, objects tab in the order in which you placed them on the form. After you move the objects around, this order might no longer make sense. Or, you might want to set the tab order in your form so that users who tab from object to object end up completing the form in a specific order.

To change the tab order on a form

1.	Select the object you want first in the tab sequence.

2.	Click Format, Order, Bring To Front.

3.	Repeat steps 1 and 2 for each object on the form in the order you want the user to move through the form.

 Notes

·	For an object to be included in the tab sequence, its Tab Stop property must be enabled. To enable the Tab Stop property, right-click an object and click Properties. On the Run Time page of the Properties dialog box, enable the Tab Stop check box.

·	When you use the Send To Back and Send To Front commands to change the front-to-back positions of objects in a form, you change their tab order in a Design window, because objects always tab from back to front. This has no influence on the tab order when you run the form.

 Related Topics


Changing the design window tab order
Changing runtime tab order

When a form runs, objects tab from left to right and from top to bottom.

To change runtime tab order

1.	With a form open in the Design window, right-click an object and click Properties.

2.	Click the Run Time page.

3.	Enable the Next Tab Stop check box.

4.	From the list of objects under Choose The Next Tab Stop, choose the object you want next in the tab sequence.

To include buttons which are not included in the tab sequence at runtime in the tab sequence

1.	With the form open in the Design window, right-click the object and choose Properties.

2.	Click the Run Time page.

3.	Enable the Tab Stop check box.

If you do not enable the Tab Stop check box, Corel Paradox bypasses the object in the tab sequence. Users of your form can still use the mouse to select a button, OLE object, or graph, but they cannot use the mouse to select a field object.

 Related Topics


Running a form

In the Form Design window, you view a form's design. To view the form's data, you must run the form.

To run a form

1.	Click File, Open, Form.

2.	In the Open Form dialog box, select the file from the list box, or type the filename in the File Name box.

3.	Enable the View The Form button.

To run a form from the Form Design window

1.	Do one of the following

·	Press F8 to run the form and view the data.

·	Click View, View Data to run the form and view the data.

·	Click View, Edit Data to run the form and edit the data.

 Related Topics


Viewing a form with a different table

You can open a form created on one table by using the data from another table or from a query. For example, suppose you have two types of vendors that you want to keep separate, but the table structure for each vendor is identical. You can design a form for the first vendor table, and instead of creating an identical form for the second table, you can open the form with the second table.

Using the File menu

1.	Click File, Open, Form.

2.	In the Open Form dialog box, select the form you want to open.

3.	Click the Change Table button.

4.	In the Select Replacement Table dialog box, select the table you want to view and choose OK to return to the Open Form dialog box.

5.	Click the Open button.

If a field in the form does not have a corresponding field in the table, Corel Paradox warns you and makes these fields undefined. Undefined fields are given the name LABEL, and no data appear in these fields.

6.	To redefine undefined fields, switch to design mode. See Placing a field on a form or report.

 Note

·	To keep the original form intact, save the new form with a different name.

 Related Topics


About forms based on reports

You can open a form as a report or a report as a form.

If a report's data model and layout are just what you want for a form, you can open the report as a form without recreating the design.

Bands in reports

Corel Paradox determines the form's layout from the record band of the report. Because forms do not use the banded layout that reports do, objects in group, page, or report bands are not included in the new form design.

Objects that behave differently

Some objects behave differently in forms and reports. Calculated fields and summary fields, for example, look at data differently; therefore, you might need to modify them to get the correct results. Summary fields located in the record band of a report work correctly in a form.

Page breaks in reports

If the report design includes a page break in the record band, Corel Paradox creates a multi-page form.

For information about opening a form as a report, see About reports based on forms.

 Related Topics


Designing a form from a report

To design a form from a report

1.	Click File, Open, Report.

2.	From the Open Report dialog box, choose the report you want to use.

3.	Enable the Open As A Form button.

Corel Paradox creates and opens a new form based on the contents of the report's record band, including design properties and page breaks.

Corel Paradox does not change the existing report.

 Related Topics


About delivering forms and reports

Delivery gives you a way to let others use your form or report, but not change the design or source code. A delivered form or report cannot be opened in a Design window, and therefore cannot be changed.

When you deliver a form or report, Corel Paradox creates a copy of the form or report with all source code removed. Buttons and other objects still work exactly the way you designed them.

Access to the data model

When others use your form or report, they must also have access to all tables in the data model, along with any indexes and referential integrity files. The easiest way to make a set of tables, forms, and related files portable is to use an alias.

Screen display

When you design a form for others to use, consider the screen display with which users will view the form. It's best to use standard color and font choices, as well as standard sizes for form windows, to ensure the usability of the finished form.

For information about developing applications using forms and programming using ObjectPAL, see the Guide to ObjectPAL.

 Related Topics


Delivering a form or report

To deliver a form or report

·	With a form or report open in the Design window, click Format, Deliver.

Corel Paradox saves a copy of the form with an .FDL extension or the report with an .RDL extension. The D stands for delivered.

 Note

·	You can still change the original form or report (the one with the .FSL or .RSL extension), and then deliver the form or report again. Your code is not lost [image] it's protected.

 Related Topics


Printing a form's design

To print a form's design

1.	With a form open in the Design window, click File, Print to open the Print File dialog box.

2.	If you're printing a multi-page form, specify a page range or select All to print every page.

3.	Specify the number of copies.

4.	Enable the Collate check box if you are printing more than one copy and you want the pages collated.

If your form page is larger than the printer paper, Corel Paradox trims the form design.

Tip

·	You can modify print options or select a different printer using the Print dialog box.

 Related Topics


Printing a form's records

Although forms are designed primarily to be viewed onscreen, you can print a form directly from the Form window.

When you print a form, Corel Paradox prints only the current record. Corel Paradox does not print a form for each record in the table. Use a report to print every record. If you open the form as a report and print the report, the pages of your report will be in the format of the form. For more information see Designing a form from a report.

To print a form's records

1.	Run the form and click File, Print to display the Print File dialog box.

2.	If you're printing a multi-page form, specify a page range or select All to print every page.

3.	Enter the number you want printed on the first page.

4.	Specify the number of copies.

5.	Enable the Collate check box if you are printing more than one copy and you want the pages collated.

 Note

·	Form pages won't be numbered unless you put the Page Number, and/or Number Of Pages fields on each page.

·	If you designed the form for the screen, the fonts that appear on the printed output might not match those that you see onscreen. This depends on whether your screen fonts and printer fonts match.

 Related Topics


Changing a form's properties

The form, as a whole, has properties just like a design object that can be changed. You can change a form's properties by using the Properties dialog box.

To change a form's properties

1.	With a form open in the Design window, do one of the following:

·	Click Format, Properties.

·	Right-click the form beyond the edge of the page and click Properties.

2.	Change the form properties as appropriate in the General and Pattern pages of the Properties dialog box.

 Tip

·	When changing the color or pattern of a form, the page's color is not transparent by default. You can make the page a different color than the form by disabling the Transparent check box in the General page of the Properties dialog box. If you enable the Transparent check box, the page will pick up the form's color and pattern properties.

·	To view the changes in form color and pattern when the page is not transparent, zoom out far enough to see the area of the form beyond the edge of the form page.

 Related Topics


Changing a form page's properties

You can change the color, pattern, transparency, scroll bar, and size of a page on a form by using the Properties dialog box.

To change a form page's properties

·	Right-click the page, and click Properties.

 Tip

·	When changing the color or pattern of a form, the page's color is not transparent by default. You can make the page a different color than the form by disabling the Transparent check box in the General page of the Properties dialog box. If you enable the Transparent check box, the page will pick up the form's color and pattern properties.

 Related Topics


About running forms

Sometimes it's more convenient to work with the data from your tables one record at a time, rather than with an entire table full of data. Forms let you see as much (or as little) of your data as you want in the format you prefer.

When you view data in a form, you see the same data as in the table, but Corel Paradox arranges the data differently. If you edit data in the form, Corel Paradox updates the data in the table.

Forms are a good tool for data entry. You can design a form to display several records from a table, or even records from several tables at the same time. You can then run the form to enter and edit the data in the tables.

You use the Form window to run, or view, a form.

To view data in a form

·	Click View, View Data or press F8.

To edit data in a form

·	Click View, Edit Data, or press F9.

To change the design of the form

·	Click View, Design Form to open the form in the Design window.

When you run a form:

·	Fields show the values in the tables.

·	Calculated and summary fields show computations on data in the form's tables (read-only).

·	Charts and crosstabs can be used to summarize data (read-only).

·	Multi-record objects can display more than one record of a table at a time in a non-tabular format.

·	Table frames display as many records of each table as fit in the space you allotted. However, you can navigate through the records to show any that don't fit in the display.

·	You can move from one page to another in forms and notebook objects containing multiple pages.

·	ObjectPAL code that is attached to buttons is executed when you push the buttons. ObjectPAL can also be triggered at other times, for example, in OLE controls.

 Related Topics


Running an existing form

To run a form

1.	Click File, Open, Form.

2.	In the Open form dialog box, select a form.

3.	Click the Open button.

 Related Topics


Moving among fields on a form

To move among fields on a form

1.	Do one or more of the following:

·	Click the field to which you want to move.

·	Use the arrow keys.

·	Press TAB or SHIFT+TAB.

The TAB key is reliable and predictable in simple forms. As a form becomes more complex because it contains more objects, tab order can become confusing. You can always use the mouse to move quickly to an object. For information about controlling the tab sequence, see Changing runtime tab order.

 Related Topics


Moving among records on a form

To move among records on a form

Do one of the following:

·	Click Record, Go To, and click First, Last, Next, Previous, Next Set, or Previous Set. Each of these menu choices has an equivalent shortcut key displayed next to it on the menu.

·	Click the Toolbar navigation buttons.

·	Press the appropriate keyboard key (such as PgUp or PgDn).

 Tip

·	The shortcut keys are the most reliable ways to move among records. For example, if you are editing a memo field, PgUp or PgDn scrolls the memo instead of changing records.

 Related Topics


Moving among table objects on a multi-table form

You can move from the master region to the detail region and back again in a multi-table form.

To move among table objects on a multi-table form

Do any of the following

·	Press F4 (Super Tab) to move forward among the table objects.

·	Press F3 (Super Back Tab) to move backward among the table objects.

·	Press SHIFT+F3 and SHIFT+F4 to move between pages of a multi-page form.

 Related Topics


Preventing screen flashing

Sometimes the screen flashes a bit when you move from field to field. This is especially noticeable when the form you're working with has a dark background.

To prevent screen flashing

·	Click Format, Design Setup and disable the Flicker-Free Draw check box.

Enabling Flicker-Free Draw eliminates some screen flickering, but it may cause the movement from one field to another to be somewhat slower on some graphic adapters. Experiment with Flicker-Free Draw enabled and disabled to see what works best for you.

 Related Topics


Viewing a form's source table

When you're running a form, you can view the table on which the form was built.

To view a form's source table

·	Click View, Table View.

Corel Paradox opens a Table window to show the source table of a single-table form or the master table of a multi-table form.

 Related Topics


Saving Form window settings
Setting default Form-window settings

You can save the ruler, grid, and other Designer settings as preferences that are used as default settings in all Form windows.

To set default Form-window settings

·	Click Tools, Settings, Preferences, and make the appropriate changes on the Designer page of the Preferences dialog box.

 Related Topics


About bands

Corel Paradox uses bands to control how sections of a report repeat. Bands run horizontally across the page and define logical sections for your report.

Reports have four types of bands:

•	The report band prints information at the beginning and end of the report. The header appears at the beginning of the report and the footer appears at the end.

•	The page band prints information at the top and bottom of each page in your report. The header appears at the top of each page and the footer appears at the bottom.

•	The record band prints information for every record in the table(s) on which the report is based. If the record band contains a table or a multirecord object, the band appears once for every set of records in the master table.

•	Group bands define sets of records based on certain criteria. They appear at the beginning and end of each group of records. Unless you choose the header property On Group Only, the header appears at the top of any page where a group continues from the previous page. You define the group criteria. Group bands are optional.

When you design a report, Corel Paradox places the page, report, and record bands for you. You cannot remove these three bands, although you can leave them blank and collapse their height by selecting the band and pressing DELETE.

Changing band properties

You can change the properties of each of the bands in either the Design window or the Object Explorer. In the Report Design window, right-click a band and click Properties. To display the Object Explorer, press CTRL+SPACEBAR.

Boundary lines

The thick lines that separate each region of a report design are boundary lines that indicate the placement of report bands. Band regions print something (even whitespace) if their boundary lines do not touch neighboring boundary lines.

Each boundary line contains a band label with a text description and an arrow pointing toward the report region affected by that line. For example, the arrow in the boundary line of the band on the top page points down because the page header is below that boundary line.

 Related Topics


Showing band labels

If band labels are showing, you can more easily select and manipulate bands with the mouse. Turning them off, on the other hand, can make it easier to line up objects as you design the report.

Band labels are shown onscreen only in the Report Design window (not in the report itself), and turning the band labels on or off does not affect the layout or presentation of your printed or previewed report.

To show band labels

•	With a report open in the Design window, click View, Band Labels. A check mark will appear beside the menu option.

If any bands are sized to zero height, you cannot see them unless the band labels are visible.

 Related Topics


Selecting a band

You can tell which band is selected by the following means:

•	If you click View, Band Labels so that a check mark appears beside the option, the selected band's label will change color.

•	In the sidebar along the left side of the Report Design window, the selected band (and any bands within it) is highlighted.

•	The Status Bar at the bottom of the desktop tells which band is selected.

To select a band

Do one of the following:

•	Click the band label.

•	Click any white (or unused) area inside the band.

 Related Topics


Resizing a band

You can add or remove whitespace in your report by resizing the bands.

To resize a band

1.	With a report open in the Design window, click any white or unused area inside the band to select the band.

2.	Place the cursor on the edge of the selected band. The cursor changes to a two-headed arrow.

3.	Drag the top or bottom edge of the band up or down to change the size of the band.

4.	When there is an object in a band, do one or more of the following:

•	Drag the top band line to add or remove space above the object.

•	Drag the bottom band line to add or remove space below the object.

 Notes

•	You must resize bands by using the mouse. There is no keyboard equivalent.

•	You cannot resize a band to be smaller than the objects it contains.

 Tips

•	You can also condense the band to zero height by deleting it. All objects in the band will also be deleted, and the band will not appear on the report.

•	If you want to see more of your design on the screen, you can turn band labels off by clicking View, Band Labels so that no check mark appears beside the option.

 Related Topics


Deleting a band

For all bands except group bands, deleting a band in Corel Paradox means minimizing its size to zero so it will not appear in a report. Deleting a band also removes any objects in the band.

The only type of band that can actually be removed from a report is the group band.

To delete a band

•	Open a report in the Design window, select a band and click Edit, Delete.

Tips

•	You can also select the band and press DELETE to remove a band.

•	If you delete a band by mistake, click Edit, Undo.

 Related Topics


About report bands

The report band defines the report header and report footer areas. Corel Paradox prints the report header once, at the beginning of the report, and the report footer once, at the end of the report.

Typical information found in a report header would be the company letterhead or report title. A report footer might be an "end of file" statement. You place the objects that should appear as report headers or footers in the appropriate report band. The following example shows a graphic object that contains the company logo in the report-header area.

Summaries and calculated fields that are placed in the report header or footer and that summarize data for the entire table.

The report header can come either before or after the page header on the first page. Right-click the report band and click Properties, and enable the Precede Page Header check box on the General page of the Properties dialog box.

The report footer always precedes the page footer on the last page.

 Tip

•	You can place a page break in a report header to produce a multipage report header or to separate the header from the first page of the rest of the report.

 Related Topics


Changing the header order

Corel Paradox prints the report header (the contents of the top report band) before the page header (the contents of the top page band). You can reverse this order.

To change the header order

1.	With a report open in the Design window, right-click the report band and click Properties.

2.	On the General page of the Properties dialog box, disable the Precede Page Header check box.

Corel Paradox will then print the report header after the page header. You will not see this change in the Report Design window because the bands themselves do not move, but when you preview or print the report, the change takes effect.

 Related Topics


About page bands

The page band defines the header and footer areas of each page. Corel Paradox prints the page header and footer on every page of the report.

Corel Paradox places three objects in the top page band (the page header) for you:

•	The Today field that shows the print date of the report. Corel Paradox places this field at the left margin of the page header.

•	A field that contains the default title for the report. In a single-table report, Corel Paradox uses the name of the table as the default title. In a multitable report, Corel Paradox uses the name of the master table as the default title.

Corel Paradox places the title in the center of the page header; however, if a field that grows in width (such as a date) is included in the header, the title to be off-center when the report is printed. To ensure that the title is always centered, enable the Pin Horizontal property on the title's Run Time property page.

•	The Page field that shows the page number of each page. Corel Paradox places this field at the right margin of the page header.

You can keep, delete, or change any object Corel Paradox places for you.

If you want your header or footer to show the first or last records on the page, place fields in the page bands. Fields placed in the page header show the first record on your page. Fields placed in the page footer show the last record on your page. Summaries and calculated fields summarize and are calculated from all records that appear on the page.

Unlike other bands, the page bands don't expand vertically when you view or print the report. This means Corel Paradox will clip expanded objects (like tables) to fit them inside the band.

 Related Topics


Suppressing the header or footer on the first page

You can suppress the contents of the page header, the page footer, or both on the first page of your report.

To suppress the header or footer on the first page

1.	With a report open in the Design window, right-click the header or footer and click Properties.

2.	On the General page of the Properties dialog box, disable the Print on First Page check box.

 Related Topics


About record bands

The record band contains the body of the report [image] the records of the table on which you are reporting.

You can place data elements such as fields, charts, crosstabs, multirecord objects, and table frames in the record band. These elements contain the data from your table. Corel Paradox automatically places objects in the record band. Where Corel places the objects depends on the type of report.

Report type	Objects placed

Tabular	The records of the table to which the report is bound appear within a table frame in the record band.

Single-record	Corel Paradox automatically places field objects in the record band.

Multirecord	Corel Paradox places field objects within a multirecord object in the record band.

Blank	Corel Paradox does not automatically place any objects.

You can move, resize, or delete the objects that Corel Paradox places.

The record band repeats once for every record in the master table, unless the record band contains a table, multirecord object, crosstab, or tabular chart on the master table. In that case, the contents of the record band appear once for every set of records in the master table.

For example, if you place a crosstab on the master table in the record band, it will be printed once for each record in the table. Usually, you should put a crosstab on the master table in either the header or footer of the report band. With a one-to-many relationship in your data model, it is often appropriate to put a crosstab in the record band of the detail table to generate a crosstab for each master's detail set.

 Related Topics


Starting page numbers at one when a band is reached

You can begin a new page and reset the page number to one when the record band or group band is reached.

To start page numbers at one when a band is reached

1.	With a report open in the Design window, right-click the record band and click Properties.

2.	On the General page of the Properties dialog box, enable the Start Page Numbers check box.

When you choose to restart page numbers for each group, Corel Paradox changes to a page number format that shows the page number within the group (1-1, 1-2, 1-3,...2-1, 2-2, 2-3...). You cannot modify this format.

 Related Topics


Sorting records in a record band

You have a choice when it comes to sorting the record band. You can add a group band to force a sort, filter the records, or sort the records using Sort Record Band [image] or if it's a detail table, take the sort order that the link implies.

To sort the records using Sort Record Band

1.	With the report open in the Design window, right-click the record band and click Sort.

2.	In the Sort Record Band dialog box, specify the fields to sort on, their order, and their sort direction.

Note

•	Different types of sorts are available for different data models and produce different results. The main advantages of Sort Record Band is that you are not limited to existing indexes and you don't get a break in the table each time the sort key changes.

 Related Topics


About group bands

You can place group bands in a report to break information into groups of data. You can base groups on the value of a field, a range of values, or a specified number of records. For example, you could group records by country so that all records with the same country appear together.

Corel Paradox always places group bands between the page band and the record band.

Group header and footer

•	The group header appears at the start of every group.

•	The group footer appears at the end of every group.

You may want to place some sort of divider, such as a line, within the group footer to clearly show when one group ends and another begins. If you place a page break at the bottom of a group footer, you can be sure that all new groups begin on a new page. If you do this, don't leave white space after the page break at the bottom of the band.

Displaying repeated group values

You can suppress repeated group values in the record band of a report. Right-click the record band and click Properties. On the General page of the Properties dialog box, enable the Remove Group Repeat check box.

Multiple group bands

You can create more than one group band. Add group bands so that the largest data group is above all smaller data groups. For example, group by Country first, then by City. Start with the broadest category, then narrow the grouping.

 Tip

•	Use two group bands when you want to group by a number of records within a given range or group by a range within a given number of records.

Changing the position of the group bands

You can change the position of a group band relative to other group bands by selecting a group band and dragging it above or below another group band.

Exchanging group header and footer

You can exchange the group header and footer by selecting one and dragging it toward the other. The information in the selected one will be transferred to the other.

Scope of a group band

Summaries and calculated fields in the group band use the entire group as their scope. Other objects show different data depending on whether they are in the group header or the group footer. In the group header, fields show the first field in the group. Crosstabs on detail tables correspond to the first field in the group of the master table.

In the group footer, fields show the last field in the group. Crosstabs on detail tables correspond to the last field in the group of the master table.

 Related Topics


Adding a group band

You can add a group band to your report if the report is bound to a table.

To add a group band

•	With a report open in the Design window, click Insert, Group Band

Corel Paradox places the first group band between the page band and the record band. When you place more group bands, Corel Paradox places them closest to the record band.

 Notes

•	You cannot add a group band to reports that have a data model that contains dBASE tables. For more information see Limitations on reports containing dBASE tables.

•	You can rearrange group bands by dragging them with the mouse.

 Tip

•	When you create a group band, Corel Paradox places both a group header and group footer. You may want to place some sort of divider, such as a line, within the group footer to clearly show when one group ends and another begins. If you place a page break in the group footer, you can be sure that all new groups begin on a new page.

 Related Topics


Defining a group band

To define a group band

1.	With a report open in the Design window, right-click a group band and click Define Group.

2.	In the Define Group dialog box, do one of the following:

•	Enable the Group By Field Value button and choose the table, fields, and if desired, the range for the group. For more information, see About grouping by a range.

•	Enable the Group By Record button to specify the number of records you want to appear in each group.

 Related Topics


Rearranging group bands

If your report has multiple group bands, you can rearrange their order. If you move a band, the order of the grouping changes.

To rearrange group bands

•	With a report open in the Design window, select the band and drag it to its new location.

 Notes

•	You can drag from anywhere within the band. With the band selected, you can also use the Up and Down arrow keys to move the band.

•	You cannot group by a field within a range group.

 Related Topics


Grouping by a field value

If you group the records of your report based on the value of a field, you can arrange the data into meaningful sets. For example, you can view your customers grouped by their country or state, view orders grouped by a method of payment or shipment, or view stock items grouped by equipment classification.

To group by a field value

1.	With a report open in the Design window, click Insert, Group Band to add a group band to the report.

2.	In the Define Group dialog box, choose the value of a field, a range of values, or a specified number of records by which to group.

Corel Paradox places a field object for the field by which you are grouping in the header of the new group. You can delete this field.

 Notes

•	When you group by the value of a field, you apply a sorting specification to your data. If, for example, you group on the Country field of the Customer table, the records from Customer appear in the report sorted by the values in their Country field.

•	You cannot place a field group band within a range group band.

 Tip

•	You can place two group bands on a report to use a field or range grouping in combination with a grouping by a number of records.

 Related Topics


Grouping by a number of records

You can group the report into sets of records by defining a number to specify the set you want. This is useful if you want to group records for easy viewing without sorting them in any particular way.

To group by a number of records

1.	With a report open in the Design window, right-click the band and click Define Group.

2.	In the Define Group dialog box, enable the Group By Record button.

2.	In the Number Of Records box, type the number of records you want in each group.

 Related Topics


Setting printing preferences for group headers

You can print a group header either at the beginning of each group or at the top of the page when the group continues across a page break.

To set printing preferences for group headers

1.	With a report open in the Design window, right-click a group band and click Properties.

2.	On the General page of the Properties dialog box, do one of the following:

•	Enable the On Page And Group button to print the group heading at the beginning of each group and at the top of a page when the group is continued across page breaks.

•	Enable the On Group Only button to print the group heading at the beginning of each group, but not at the top of a page when the group is continued across page breaks.

The header property affects the entire group band. To control how a specific object prints, use its conditional property. For more information, see Setting printing preferences for objects in group headers. and Header property.

 Related Topics


Setting printing preferences for objects in group headers

You can print a specific object in a report's group header at the beginning of each group, at the top of the page when the group continues across a page break, or both.

These options are available for field objects, records in a table frame, or records in a multirecord object.

To set printing preferences for objects in group headers

1.	With a report open in the Design window, right-click an object and click Properties.

2.	On the Run Time page of the Properties dialog box, do one of the following:

•	Enable the Print At Group check box to display the object at the beginning of each group but not at the top of each page (unless a group begins at the top of the page).

•	Enable the Print At Page check box to display the object at the top of the page whenever a group breaks across pages. The object never appears on the first page of the report.

The conditional property affects only the specified object. To control how an entire group band prints, use its header property. For more information, see Setting printing preferences for group headers. and conditional property.

 Related Topics


Specifying the sort order for a group

You can sort records in ascending or descending order.

To specify the sort order for a group

1.	With the report open in the Design window, right-click a group band click Properties.

2.	On the General page of the Properties dialog box, do one of the following:

•	Enable the Ascending button to print the groups in either A to Z or numeric order.

•	Enable the Descending button to print the groups in either Z to A or reverse numeric order.

 Related Topics


Suppressing repeated group values

When you group records on a field value, Corel Paradox will usually print that field value in every record although it is the same throughout the group. You can suppress repeated field values that a group is based on by enabling the Remove Group Repeats property for the report.

To suppress repeated group values

•	With a report open in the Design window, click Format, Properties. On the General page of the Properties dialog box, enable the Remove Group Repeats check box.

When Remove Group Repeats is disable, Corel Paradox displays the value of the grouped field for each record, including duplicates, in the record band. When Remove Group Repeats is enabled, Corel Paradox only prints the value for the first record of the group.

The following example shows a report for the sample Orders table that has a group defined on the Customer No field. Remove Group Repeats is checked. As you can see, only the first record in each group actually shows the customer number.

 Related Topics


About grouping by a range

When you define a group in a report, you can specify a range of values to be met in the field on which you are grouping. For example, you might want to group the records in the Orders table by month or quarter or to group the records in the Lineitem table by the units in the Qty field.

You can specify only one range group in a single report. Also, you cannot place a field group band within a range group band.

Records in a group are in sequence [image] lowest to highest for numbers, alphabetical order for alpha fields, and chronological for date and timestamp fields. When you group by range, the only real difference is in how often the group breaks occur.

Number fields

When you group by a range on a numeric field, groups are determined by intervals; for example, 1-5, 6-10,11-15. The first group begins with zero and increases by the range size you specify.

Corel Paradox accepts fractions when you define a range in number or money fields. Ranges in short, long integer, and autoincrement fields require whole numbers. You cannot define a range in Binary Coded Decimal (BCD) or time fields.

Date or timestamp fields

When you group by a range on a date or timestamp field, groups are determined by day, week, month, quarter, or year.

•	Day groups records that have the same date.

•	Week groups records with dates that fall in the same week (Sunday to Saturday).

•	Month groups records with dates that fall in the same month.

•	Quarter groups records with dates that fall in the same quarter of the year.

•	Year groups records with dates that fall in the same year.

Grouping is always chronological. For example, when you group by month, April 1991 and April 1992 appear as separate groups.

Alpha fields

When you group by a range on a Corel Paradox alpha or a dBASE character field, you specify the number of characters on which to group in the Range Group text box (the number of characters that must match to be in the same group). For example, if the field you're grouping by is Last Name, a range of 3 would ensure that Simmons and Simpson were in the same group and that Sidney was in a different group.

A Range Group size of 1 tells Corel Paradox to group all records that start with the same character. A Range Group size of 2 tells Corel Paradox to group all records that start with the same two characters.

Logical

Ranges are not allowed on logical fields.

 Related Topics


Grouping by a range

If you do not specify a range, a new group begins every time the field value changes.

To group by a range

1.	With the report open in the Define Group dialog box, right-click the group and click Define Group.

2.	In the Define Group dialog box, choose the field you want from the Field box.

Corel Paradox shows the master table, any table linked to it in a one-to-one relationship in the Table list, and all available fields in the Field list. Because you cannot create a group on a Binary Large OBject (BLOB) field, Corel Paradox doesn't show them in the Field list.

3.	Enable the Range Group check box.

The interval of the range depends on the data type of the field. For more inforamtion, see About grouping by a range.

 Related Topics


Example of grouping by a range on a numeric field

This example groups a report based on a two-unit number range.

Suppose you want to know the unit quantity of stock on hand, listed in the Stock table:

1.	Open the Report Design window to create a new report on the Stock table.

2.	Click Insert, Group Band to open the Define Group dialog box.

3.	In the Define Group dialog box, select the Qty field, check the Range Group check box, and type 2 in the Range Group box.

4.	Click OK.

Corel Paradox creates a group band.

This example report groups records by Qty in ranges of two units. Each group shows up to two values in the Qty field. Corel Paradox does not print groups that contain no values.

The first group begins with zero and increases by the range size of two:

•	Corel Paradox first creates a group that contains the values 0 and 1 in the Qty field. Because there are no values of 0 or 1 in the Stock table, this group is not printed.

•	Corel Paradox next creates a group that contains the values 2 and 3 in the Qty field. Because there are no values of 2 in the Stock table, this group shows only values of 3.

•	Corel Paradox then creates a group that contains the values 4 and 5 in the Qty field. Both values exist in the Stock table; therefore, both are included in the group.

 Related Topics


Example of grouping by a range on an alpha field

Suppose you want to group customer records by the first letter of the company's name:

1.	Open the Report Design window to create a new report on the Customer table.

2.	Click Insert, Group Band.

3.	In the Define Group dialog box, enable the Name button, enable the Range Group check box, and type 1 in the Range Group box.

4.	Click OK.

Corel Paradox creates a group band. The following band label shows the group definition.

The following report groups the records according to the first letter in the Name field.

 Related Topics


About the sidebar

The sidebar is located between the ruler and the window's frame on the left side of the Report Design window.

To display the sidebar

•	With a report open in the Design window, click View, Ruler.

You can use the sidebar to see which band is selected and to insert, move, or delete page breaks.

 Related Topics


Inserting or removing a page break in a report

When you add a page break, follow these rules:

•	You can place a page break in any band except the page band.

•	A page break cannot cross an object in a band. It must fall either above or below any existing objects.

To insert or remove a page break in a report

1.	In the Report Design window, do one of the following:

•	Click the Insert Page Break [image] button, then click in the document where you want the page break to appear.

•	Click in the sidebar  where you want the page break to appear.

A line appears across your document, and a page break marker [image] appears in the sidebar.

To move a page break

1.	Move the mouse cursor over the page break. The cursor changes to a vertical double-headed arrow.

2.	Drag the page break marker to a new location.

To delete a page break

1.	Do one of the following:

•	Click the page break in the sidebar, and drag the marker out of the sidebar.

•	Move the mouse cursor over the page break (the cursor changes to a vertical double-headed arrow), and press DELETE.

 Related Topics


About expanding, contracting, pushing, and pulling of objects in reports
About expanding, contracting, pushing, and pulling objects in reports

When you preview or print a report, some objects (such as fields, tables, multirecord objects, and charts) fill with data. This may cause them to grow or shrink.

Tables and multirecord objects expand or contract vertically, to fill as many pages as needed to print all records (unless you have changed the layout or the Show All Records property of the multirecord object).

Fields, when placed individually or as part of a table or multirecord object, expand or contract horizontally to display all the data they contain (unless Word Wrap is enabled on the object's Text Property page). Fields that expand in tables and multirecord objects cause the whole table or multirecord object to expand with them.

Fields in which Word Wrap is enabled are fixed in width and expand vertically. Even if they contain less data than a single line, they remain fixed in width.

Objects that contain tables, multirecord objects, or fields can grow as the contained objects grow. If the objects are scrollable, they expand to show all the contents (for example, graphic objects, record objects, and text objects).

When Size To Fit is set, objects on which you can place scroll bars in forms expand to their full size in reports.

How expanding objects push and pull surrounding objects

When objects expand, they push surrounding objects, and maintain the spacing between them. When they contract (when there is too little data to fill the object) they pull in surrounding objects. Vertically expanding objects push other objects down the page. Horizontally expanding objects push other objects across the page to the right.

Changing how objects expand and push

When you work with objects that expand and contract, you can use several properties to control runtime behavior. You can prevent an object from expanding or contracting by setting its Fit Width and Fit Height properties. See Preventing expanding and contracting when running a report. You can prevent an object from being pushed or pulled by setting its Pin Horizontal and Pin Vertical properties. See Pinning design objects at run time.

Runtime errors

If the records in your table or multirecord object contain too much data (are too big) to fit on a page, a runtime error occurs. If you make the records fixed size (Fit Height disabled) they will clip the data but not generate an error. If you do not want clipping, enable the Breakable property of the record as well as the table frame or multirecord object in which it is contained.

 Note

•	Multirecord objects often cannot be broken; therefore, you are forced to clip the data. You could design the report using a different approach: instead of placing small objects and letting them grow, you could make objects as large as they are allowed to be, and make it impossible for them to shrink. However, you may end up wasting a lot of paper just to print a report containing a few large records that cause clipping.

 Related Topics


Preventing expanding and contracting when running a report

When you preview or print a report, some objects fill with data. This may cause them to grow or shrink. As objects resize, they push or pull other objects on the page.

You can prevent the automatic resizing of these objects (and of objects that contain such objects).

To prevent expanding and contracting when you run a report

1.	With a report open in the Design window, right-click the object and click Properties.

2.	On the Run Time page of the Properties dialog box, disable the Fit Width and Fit Height check boxes.

When these properties are disabled, the objects retain their size and shape when printed or previewed. Corel Paradox trims data that are too large to fit inside the objects. For more information see Fit Width and Fit Height.

 Related Topics


Pinning design objects at runtime

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page. You can prevent an object from being pushed or pulled.

For information about pinning objects at design time, see Pinning design objects in place on a form or report.

To pin design objects at runtime

1.	With a report open in the Design window, right-click the object and click Properties.

2.	On the Run Time page of the Properties dialog box, do one or both of the following:

•	Enable the Pin Horizontal check box to prevent the object from moving back and forth.

•	Enable the Pin Vertical check box to prevent the object from moving up or down.

For more information, see Pin Horizontal and Pin Vertical.

 Note

•	An object that expands can obscure a pinned object. For information about preventing expansion, see Preventing objects from expanding and contracting when you run a report.

 Related Topics


Example of preventing pushing and pulling

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

For example, suppose you place the Name field from Customer in a report. When you are working in the Report Design window, the field object is always the same size. When you run the report, the values displayed in the field object differ in size and, by default, the field object grows or shrinks to fit the data.

Now suppose you have a graphic object to the right of the Name field. The following figure shows how the graphic can be pushed or pulled by the Name field.

The size of the data in the Name field causes the field object to expand or contract. When the field expands, it pushes the graphic to the right. When it contracts, it pulls the graphic to the left.

You can do one of two things to prevent the movement of the graphic due to the pushing or pulling of other objects.

•	Select both the field and the graphic and click Format, Group.

•	Right-click the graphic object, click Properties. On the Run Time page of the Properties dialog box, enable the Pin Horizontal check box.

The following figure shows how the pinning of the graphic at runtime affects the report.

When you enable Pin Horizontal, the size of the data in the Name field does not affect the graphic. Because it is pinned, the graphic is neither pushed nor pulled as the data changes.

One possible consequence of pinning an object, which might otherwise be pushed, is an object that expands can obscure a pinned object.

 Related Topics


Example of invisible lines aligning pushed objects

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

Suppose you align objects in the Report Design window and find that one of them is pushed by another object when you run the report. You can use invisible lines or boxes to group and control the alignment of multiple pushed objects, or you can select the objects and group them by using clicking Format, Group.

For example, suppose you had objects like this on the report design:

When you run the report, the Vendor Name field pushes or pulls the box, but not the ellipse.

If, in the Report Design window, you place a vertical line between the field and the other two objects, the field that expands pushes the line, which subsequently pushes both objects.

If you don't want to see the line, right-click the line and click Properties. On the Run Time page of the Properties dialog box, enable the Invisible check box.

You can achieve the same results by grouping the box and the ellipse so they move together.

In the following example, the bottom set of objects is still misaligned because the invisible line was too long to fit on the page and moved to the next page.

{bmc push3.bmp)

The solution to this problem is to use an invisible unbreakable box to contain both the box and the ellipse. For more information see the Example of a box pushing or pulling contained objects.

 Note

•	You can accomplish the same results by grouping the pushed objects by selecting the objects and clicking Format, Group. Right-click the group and click Properties and disable the Breakable check box on the Run Time page of the Properties dialog box.

 Related Topics


Example of a horizontal line pushing objects down

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

Suppose you have a report that contains two objects that you need to keep together. You want to make sure that if one object is pushed, the other object is also pushed. In the following example, assume you want the box and ellipse to stay aligned horizontally.

When you run the report, the table frame expands down the page until all records are displayed. The box is pushed, but the ellipse is left in place.

If, in the Report Design window, you place an invisible horizontal line between the table frame and the other objects, the expanding table will push the line, which in turn will push both objects.

Design window:

Runtime window:

{bmp push9.bmp}

You can place a horizontal line below any object that can expand vertically, such as a text or multirecord object.

 Note

•	You can accomplish the same results by grouping the pushed objects. Select the objects and click Format, Group. Right-click the object and click Properties. On the Run Time page of the Properties dialog box, enable the Breakable check box.

 Related Topics


Example of a box pushing or pulling contained objects

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

Suppose you have a report design that has objects arranged like this:

The example in Example of preventing pushing and pulling shows you how to use a vertical line to align the box and the ellipse as they are pushed by the expansion of the Vendor Name field, but the line does not solve all problems with the layout.

You can place a box around all of the objects you want Corel Paradox to push or pull in reaction to another object's resizing. If you don't want to see the box, right-click the container box and click Properties. On the Run Time page of the Properties dialog box, enable the Invisible check box.

When an invisible box surrounds both objects, Corel Paradox both pushes and pulls them together. If the box's Breakable check box is disabled on the Run Time page of the Properties dialog box, Corel Paradox cannot break the group of contained objects across pages.

 Note

•	You can accomplish the same results by selecting the pushed objects and clicking Format, Group to group the objects. Right-click the object and click Properties. In the Run Time page of the Properties dialog box, disable the Breakable check box.

 Related Topics


Example of an expanded box and a fixed line pushing or pulling contained objects

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

You can contain objects in a box to push objects down the page in reaction to an object that expands vertically.

For example, suppose you want to design a report on the Customer and Orders tables. You want address fields to appear on the bottom half of the page so the page can be folded to let the address show through the window in an envelope.

Use the Customer [image] Orders data model to design a report that has objects like this in the record band:

In this figure

•	All objects are in the record band.

•	The table frame has Show All Records enabled the Run Time page of the Properties dialog box. The table frame will grow down the page to fit all data.

•	The box maintains white space between the table frame and the text object. It has Fit Height and Invisible check boxes enabled on the Run Time page of the Properties dialog box.

•	The vertical line prevents the box from shrinking. It has the Invisible check box enabled on the Run Time page of the Properties dialog box.

•	The fields are embedded in a text object. The text object can appear lower on the page, but must not appear higher. The text object is not pinned.

When you print the report,

•	The table frame that contains order information can grow as much as needed. The text object that contains the Customer fields is unpinned; therefore, it can move down the page if necessary.

•	If the table frame shrinks, the line within the box prevents the box from shrinking with the table frame. This prevents the text object that contains the Customer fields from moving up the page.

•	The box ensures the proper distance between the bottom of the table frame and the top of the text object that contains the Customer fields.

All the runtime properties work together; therefore, the fields are always displayed in the correct area, regardless of the size of the table frame.

 Related Topics


Example of a container keeping objects together

When you preview or print a report, some objects fill with data. This may cause the objects to grow or shrink. As objects resize, they push or pull other objects on the page.

You can use a container to keep a group of objects on the same page. For example, suppose you have the following report design.

The objects are surrounded by an invisible container object (box). On the Run Time page of the Properties dialog box, the container's Breakable property is disabled. Therefore, the objects stay together on a page.

It's possible, whether you use a line or a box to control the horizontal movement of the box and ellipse, that Corel Paradox could separate the box from the ellipse at a page break. This happens if you use a line to align the objects or you use a box for which the Breakable check box is enabled in the Run Time page of the Properties dialog box.

To prevent a group of objects from becoming separated at a page break, you must surround them with a box disabled on the Run Time page of the Properties dialog box.

 Note

•	You can accomplish the same results by selecting the objects and clicking Format, Group. Select the group and click Properties. On the Run Time page of the Properties dialog box, disable the Breakable check box.

 Related Topics


Creating mailing labels using the Report Design window

The Mailing Label expert can automatically create mailing labels for most standard label sizes. It is recommended that you use the Expert when you design mailing labels. For more information, see Creating a form or report using the Experts.

If you not want to use the Expert, follow these steps:

To create mailing labels using the Report Design window

1.	With a report open in the Design window, click the Multirecord tool and then click the record band area of the report to create the object.

2.	Place the fields you want, in the order you want (including spacing and punctuation) in the master record region of the multirecord object.

3.	Resize the record region to match the width and height of one label.

4.	Adjust the width of the record band to reflect the spacing between each label.

5.	Right-click the multirecord object and click Properties.

6.	Specify the number of records across the page on the Record Layout page.

 Related Topics


Merging data using the Merge expert

The Merge expert helps you merge data from a table into a form letter created in another application such as a word processor or a Corel Paradox report. You can choose the table's fields to include, specify a sort order, and choose a format for the data.

To use the Merge Expert

1.	Click Tools, Experts.

2.	Click the Merge Expert icon.

3.	Follow the step-by-step instructions provided by the Expert.

 Related Topics


About reports based on forms

You can open a form as a report or a report as a form.

If a form's data model and layout are just what you want for a report, you can open the form as a report without recreating the design. Corel Paradox uses the form's layout in the record band of the report.

Objects that behave differently

Some objects behave differently in forms and reports:

•	Calculated and summary fields look at data differently in forms and reports; therefore, you might need to modify them to get the correct results.

•	If you use a multipage form, Corel Paradox inserts page breaks at the appropriate places in the record band.

•	Buttons, notebooks, and Object Linking and Embedding (OLE) controls are not available in reports.

•	OLE fields

•	Nonnested form-design layouts are not valid for reports. They will produce undefined objects.

For information on opening a report as a form, see About forms based on reports.

 Related Topics


Designing a report from a form

To design a report from a form

1.	Click File, Open, Form.

2.	From the Open Form dialog box, choose the form you want to use.

3.	Enable the Open As Report button.

4.	To open the report in the Design window, enabel the Edit The Report Design button .

5.	Click the Open button.

Corel Paradox inserts the form's layout in the record band of the report.

Corel Paradox does not change the existing form.

 Related Topics


Changing a report's properties

The report, as a whole, has properties that can be changed.

To change a report's properties

1.	With a report open in the Design window, do one of the following:

•	Click Format, Properties.

•	Right-click the report's Title Bar and click Properties.

•	Right-click the area outside the Form page and click Properties. (You may have to zoom out to see beyond the edge of the page.)

2.	Change the properties on the General and Pattern pages.

 Related Topics


Changing a band's properties

All bands except page bands have Runtime Breakable and Shrinkable properties.

•	Breakable means that if the contents of the band don't fit on one page, Corel Paradox can divide them across pages.

•	Shrinkable means that if the contents of the band will fit on the page, but the band itself is too big to fit (including whitespace), Corel Paradox can discard white space below the bottom object in a band to make the band fit on the page.

To change a band's properties

•	Right-click the band or the band label and click Properties.

Corel Paradox displays the property choices for the band.

To change a band's properties using the keyboard

1.	Use Tab to select the band you want.

2.	Press F6 to display the band's menu.

 Related Topics


Previewing a report

Previewing (running) a report shows what the printed report will look like when it contains data. You cannot enter or edit data in a report. A report is solely a viewing tool.

To preview a report

·	In the Report Design window, click View, Run Report.

Corel Paradox displays the report in the Report window. Navigation buttons appear on the Toolbar. Click the buttons to move among pages of the report. To return to the Report Design window, click View, Design Report.

 Tip

·	To speed up the preview of a report, right-click an object and click Properties; on the Run Time page, disable both the Fit Height and Fit Width check boxes.

 Note

·	Press F8 to toggle between Run Report and Design Report.

 Related Topics


Sizing the Report window to fit the report's design

Corel Paradox can automatically size the Report window to fit the design.

To size the Report window to fit the report's design

1.	Open a report in the Design window and click Format, Properties.

2.	On the General page of the Properties dialog box, enable the Size To Fit check box.

 Related Topics


Displaying a custom menu when previewing a report

Corel Paradox displays the standard menu in the Report window when you preview a report. If you create a custom menu using ObjectPAL your report can use that custom menu at runtime.

To display a custom menu when previewing a report

1.	Click View, Design report to open the report in the Design window.

2.	Click Format, Properties.

3.	On the General page of the Properties dialog box, disable the Standard Menu check box.

The standard menu is enabled by default.

 Related Topics


Printing a report

To print a report

1.	Do one of the following:

·	In the Report window, click File, Print.

·	In the Report Design window, click File, Print, Report.

2.	In the Print dialog box, choose the pages to print, the number of copies to print, and whether to collate multiple copies.

3.	In the Overflow Handling options area, specify how to treat data that are too wide to fit on the printed page. For more information, click the Help button in the Print File dialog box.

 Note

·	The report's page layout affects how the report prints. For information about designing the report for the printer, see About page layout for forms and reports.

·	If you designed the report for the screen, the fonts that appear on the printed output might not match those that you see onscreen. This depends on whether your screen fonts and printer fonts match.

 Related Topics


Printing a report's design

To print a report's design

·	With a report open the the Design window, click File, Print, Design.

 Related Topics


Printing a report when another user is changing the data

When you run a report on shared data, you run the risk of reporting on changing data. For example, if you print a report on the Customer table while another user is editing the table, your report might be out of date by the time it prints.

To print a report when another user is changing the data

·	In the Report Design window, click Report, Restart Options.

Corel Paradox opens the Restart Options dialog box. For information on the options, see Restart Options.

 Related Topics


About using a report with a different table

You can open a report created on one table by using the data from another table or from a saved query or saved Structured Query Language (SQL) file.

Suppose you design a report for Lineitem and like the layout, colors, and other attributes so much that you want to display the data from Orders in the same style. Instead of recreating the report on the new table, you can open the report using the new table. This feature also allows you to use an existing report layout to print or view the Answer table of a query.

The following rules apply when you use a report with a different table:

·	The master table is the only table that can be changed.

·	If the original table and the new table have identical field names and table structures, Corel Paradox automatically rebinds the fields in the report to the new table.

·	If the report contains field objects that cannot be rebound to the new table (because there is no corresponding field in the new table), Corel Paradox displays those field objects as undefined.

·	If the report has calculated fields that reference missing fields, the calculated fields will have invalid expressions and must be redefined with the new table. Edit the calculated expression, remove all field references to the original table, and replace those field references with fields from the new table.

·	Do not use the data model to change the table being used with the report. Although it is possible to add a new table to the data model and to delete the original table from the data model, this causes all fields in the report to display as undefined, or to be removed, along with any group bands defined from the deleted tables.

 Note

·	You can use the data model to change the table used with the report by using table aliases. Corel Paradox then knows you want both tables to represent the same thing.

 Related Topics


Printing or previewing a report with a different table
Printing or viewing a report using a different table

To print or view a report using a different table

1.	Click File, Open, Report.

2.	In the Open Report dialog box, select the appropriate report.

3.	Click the Change Table button.

4.	In the Select Replacement Table dialog box, select the table, saved query, or saved Structured Query Langage (SQL) file to use in the report.

5.	Click OK to Return to the Open Report dialog box.

6.	Do one of the following:

·	To view the report, enable the View The Report button.

·	To print the report, enable the Print The Report button.

7.	Click the Open button.

 Note

·	If a field in the report does not have a corresponding field in the table, Corel Paradox warns you. Corel Paradox opens the report. Any undefined fields are given the name LABEL, and no data appear in them.

·	To redefine undefined fields, click View, Design report to return to the Design window where you can define the fields. For more information, see Placing a field on a form or report. To keep the original report intact, save the new report with a different name. Return to the Design window and click File, Save As. Give the report a new name. (You cannot do this if your document is a delivered report.)

 Related Topics


About printing a report to a file

Sometimes, you might want to print the report to a file so you can take it to a printing service or transfer it to another computer. To print a report to a file, you must add a printer through the Windows Control Panel and set its output to a file. Select that printer as the active printer before you print your report.

You can click File, Write As Text File to print a report to a text file. For more information, see Writing a report to a text file.

You can click File, HTML Publish to publish a table or report as a static or dynamic HTML file.

 Related Topics


Adding a printer
Adding a printer for printing to a file

To add a printer for printing to a file

1.	Open the Windows Control Panel. (See your Windows Help for more information.)

2.	Open the Printers folder and double-click Add Printer.

3.	Use the Add Printer wizard to install a new printer using an existing printer driver.

4.	Do one of the following:

·	If you want the file to print as text-only (no formatting), click the Generic/Text Only printer. (Don't worry if the report looks incorrect onscreen [image] it will print correctly to a file. You can prevent this by designing the report for the screen.)

·	If you want the file to print with formatting, choose a graphics printer driver, such as a postscript printer.

5.	Choose File as the port to use for the active printer, then complete the wizard as directed.

 Related Topics


Printing to a file

To print to a file

1.	With a report open, click File, Printer Setup.

2.	Use the Printer Setup dialog box to choose the appropriate printer.

3.	Enable the Print To File button.

4.	Type a name for the file in the Print To File box.

5.	Click the Print button.

Each time you print a report, you can choose which printer to use from the Printer Setup dialog box. Whatever printer was last selected is the current printer.

 Related Topics


Writing a report to a text file

To write a report to a text file

1.	With a report open, click File, Write As Text File.

2.	In the Save File As dialog box, type the full path and new filename in the File Name box.

3.	Click the Save button.

 Related Topics


About charts

Charts can show you the overall view of your data. They can reveal trends and patterns and show how different parts contribute to a whole. You can use charts to draw conclusions quickly and to see relationships in your data that you might otherwise miss. You can also view different types of charts as you work with your data.

Charts must be in a form or a report. Each chart is based on the tables in the data model of the form or report.

When you create a chart, Corel Paradox first cross-tabulates the data before generating the chart. Understanding crosstabs might help you work with charts. For more information see About crosstabs.

 Related Topics


Chart data types
Chart types

You can chart the following types of data.

Tabular (no categories)

Corel Paradox's default (and most simple) chart type is tabular. Because a tabular chart displays data without summarizing them, there is no crosstab equivalent. For a tabular chart, you can specify either one field for x-axis values or multiple fields for the y-axis. Each represents a series of values plotted as a group on the chart.

A tabular chart measures the values in one numeric field within each category represented by the values in another field. These values are unique only if the x-value field is a key field. To make x-values unique when the field is not a key field, choose a one-dimensional summary chart.

The following example shows a tabular chart created on the sample Orders table. When both the chart and a table frame are in a form, you can move through the table's records and the chart updates to reflect the current record.

One-dimensional (1-D) summary (one category)

A 1-D chart has one category. A 1-D summary chart differs from a tabular chart because Corel Paradox lets you choose a summary operation to define the y-axis values. It also guarantees that x-values are unique. The following example shows a 2-D summary chart created on the Orders table.

In this chart, the values on the x-axis are from the Ship Via field of the Orders table. The values charted against the y-axis are the sum of values in the Total Invoice field for each Ship Via category. The chart shows the total spent on orders using each method of shipment.

Two-dimensional (2-D) summary (two categories)

A 2-D summary chart categorizes, or groups, the summary data being charted by the unique values of two fields. The following example shows a 2-D summary chart created on the Orders table.

This chart is the same as the 1-D example above, except that it shows the sum of Total Invoice values for the Terms field as well as the Ship Via field.

This chart defines Ship Via as the x-axis, Terms as the Grouped By field, and Total Invoice as the y-value.

 Related Topics


Multi-table charts

If you want to analyze (cross-tabulate) data contained in two or more tables, the tables must be linked.

A chart can draw information from any number of tables that are linked in a single-value (one [image] one or many [image] one) relationship. For example, if you want to view the number of items in stock by equipment class and the vendor that supplies them, you can link the Stock and Vendors tables. You can then define the x-axis, y-axis, and summary data using any field from either table.

The following figure shows how the tables are linked and the fields are defined for this example multi-table chart based on two tables.

Note: Fields used in the y-axis must be numeric.

To create the table relationship, use the Data Model dialog box to create a data model that links the tables. When you place a chart in a form or report, the chart uses the data model of that design document.

You can combine fields from linked tables in the same chart only if the link is a single-value (one-to-one) relationship. You cannot chart information from combined fields of tables linked in multi-value (one [image] many) relationships. You can chart information from the detail table only in a one [image] many relationship.

The figure below shows the result of the 2-D summary chart defined previously.

The chart is grouped by values in the Equipment Class field of the Stock table. The x-axis is defined as the Vendor Name field of the Vendors table. The y-axis is defined as a count of the Stock No field from the Stock table. The legend shows the colors and patterns that represent each equipment class value in the chart.

 Related Topics


Charts of detail tables

Suppose you have a linked multi-value (one [image] many) relationship and you want to see a summary chart of only those records in the detail table that apply to a record of the master table. For example, you might want to define a chart of the Orders detail table that sums the Total Invoice field by month for each customer, as shown in the following figure.

In the relationship between the Customer and Orders tables, each customer can have many orders. You can link the two tables and create a chart on the detail table, Orders. You can then place the Customer No or Name field (or both) from the master table, Customer, on the page.

Corel Paradox knows from the data model that the information in the chart applies only to the current record of the master table. In this example, the Name field at the top comes from the Customer table. As you scroll through Customer, the chart is updated to show each customer's order information.

 Related Topics


Placing a chart on a form or report
Placing a chart in a form or report

To place a chart in a form or report

1.	With a form or report open in the Design window, click the Chart [image] tool.

2.	Click the area of the form or report where you want to place the chart.

An empty tabular chart object appears with undefined x-axis, y-axis, and charted data.

2.	Drag the sizing handles to resize the chart.

 Note

·	In a report, the scope of a chart is determined in part by the section of the report in which it is placed.

 Related Topics


About y-axis values

Tabular y-axis

With a tabular chart, you can only choose numeric fields for the y-value. Fields that are not numeric are dimmed.

One-dimentsional (1-D) summary y-axis

With a 1-D summary chart, you can choose any available and valid field(s) to define the y-axis. When you choose a y-axis field, Corel Paradox couples it with a default summary operation. By default, Corel Paradox

·	sums number, money, short integer, long integer, autoincrement, and Binary Coded Decimal (BCD) field data

·	counts alpha, date, time, timestamp, or logical field data

These default summary operations appear in the Summary list box of the Define Chart dialog box when you highlight each field in the Summaries panel.

Two-dimensional (2-D) summary y-axis

With a 2-D summary chart, you can choose any one of the available and valid fields to define the y-axis. When you choose the y-axis field, Corel Paradox couples it with a default summary operation.

 Related Topics


Defining a chart

To define a chart

1.	With a form or report open in the Design window, click the Chart tool.

2.	Click the form or report to place the chart at its default size, or click and drag to size the chart yourself.

3.	Right-click the upper-left corner of the chart and click Define Chart.

4.	In the Data Type panel of the Define Chart dialog box, do one of the following (for more information see Chart data types):

·	Enable the Tabular button to create a chart that takes its data directly from a table, rather than summarizing the data in the table.

·	Enable the 1-D Summary button to create a chart that analyzes one data type in relation to another.

·	Enable the 2-D Summary button to create a chart that summarizes information by more than one category.

5.	With the X-Axis button enabled, choose from the table (for example CUSTOMER.DB) list box, the field that contains the values you want to use for x-axis values.

6.	With the Y-Axis button enabled, choose the field that contains the values you want charted according to the y-axis measure.

Notes

·	You cannot use the same field for x-axis values and y-value data. If you have already chosen a field to supply the x-axis values [image] or additional grouping values, or are creating a 2-D summary chart [image] that field is dimmed. For more information, see About y-axis values for more information.

·	You can customize the chart further, by formatting the series, specifying titles, and changing the properties of different areas of the chart.

 Related Topics


Defining a series

When you place a new chart object in a form or report, undefined data series appear in the chart's x-axis. A data series is one row or column of data in a group used to draw one or more objects on a chart (such as the bars or boxes used to indicate the data points on the chart). You can define the series and format their display.

If you have more than one series of data in your chart, you can format them differently. For example, in a chart that shows two lines of data, you may want the bars of one series red and the other series blue. In particular, you can choose Type Override with some chart types to make one series a different type from the rest. For example, in a two-dimensional (2-D) Bar chart you might make one series a 2-D Line.

Use the right-click menu to define the color, pattern and style of the background and data points (for example, bars, boxes, or circles) of the chart. You can also use the right-click menu to redefine the Y-value for the series.

To define a series

·	With a chart or form open in the Design window, right-click a data point (for example, a bar or box) in the chart and click the appropriate menu selection.

Notes

·	When the data type of the chart is tabular or one-dimensional (1-D) summary, you can add more series to the original undefined series by choosing additional fields for Define Y-Value.

·	When the data type of the chart is 2-D summary, you can choose only one field for the single series allowed for this data type.

 Related Topics


To specify an additional group field in a 2-D summary chart
To specify an additional group field in a two-dimensional (2-D) summary chart

For 2-D summary charts, you can choose any of the available and valid fields by which to group the summary data. The data are also grouped by the x-axis categories.

Specifying an additional group field is like having a secondary x-axis. For example, a chart might show sales by quarter. The quarters are listed along the x-axis and sales along the y-axis. You could break the data down, for example, to show sales by quarter and, within each quarter, sales by product. In this new chart, the x-axis and y-axis would be the same, but each point on the x-axis would have multiple summaries [image] one for each product. The legend shows how each product summary is represented in the chart.

To specify an additional group field in a 2-D summary chart

1.	With a form or report open in the Design window, right-click the upper-left hand corner of the chart and click Define Chart.

2.	In the Define Chart dialog box, enable the 2-D Summary button.

3.	Enable the Grouped By button.

4.	Choose the field by which you want to group the summary data from a table's list box.

You cannot choose the same field for x-axis values, y-value data, and an additional grouping. If you have already chosen fields from this table to supply the x-axis value and the y-axis data, those fields are dimmed.

 Tip

·	You can also define a group by right-clicking the chart's title and clicking Define Group.

 Related Topics


Changing a chart's type

A wide variety of chart types, such as bar charts and pie charts, are available.

To change a chart's type

1.	With a form or report open in the Design window, right-click the upper-left corner of the chart and click Chart Type.

2.	Choose a chart type from the list.

 Related Topics


Changing a chart's data type

Changing the data type causes the chart object to change. The choices on the object's property pages also change according to data type.

To change a chart's data type

1.	With a form or report open in the Design window, right-click the upper left corner of the chart and click Data Type.

2.	In the Data Type panel of the Define Chart dialog box, do one of the following (for more information see Chart data types):

·	Enable the Tabular button to create a chart that takes its data directly from a table, rather than summarizing the data in the table.

·	Enable the one-dimensional (1-D) Summary button to create a chart that analyzes one data type in relation to another.

·	Enable the two-dimensional (2-D) Summary button to create a chart that summarizes information by more than one category.

 Related Topics


Changing a chart's x-axis

To change a chart's x-axis

1.	With a form or report open in the Design window, right-click the chart's X-axis and click Define X-Value.

2.	Choose a field from a table's list box.

To choose the minimum and maximum number of values to include in the x-axis

·	Right-click the upper-left corner of the chart and choose Min X-Values or Max X-Values. Choose a number, or click the ellipsis (…) at the top of the menu to specify your own values.

To format the x-axis title and ticks (and scale for XY charts)

1.	Right-click the area around the x-axis and click one or more of the following:

·	Click Title and Text or Font to specify the text or font typeface, size, style, color, or script.

·	Click Ticks to specify the number format, font typeface, style, color or script of the tick marks and numbers along the x-axis.

·	Click Scale to specify the type of scale you want to use (for example, logarithmic).

 Related Topics


Changing a chart's y-axis

To change a chart's y-axis

1.	With a form or report in the Design window, right-click the chart's y-axis or an individual series and click Define Y-Value.

2.	In the Define Field Object dialog box, choose a field or fields for the y-axis from the a list box. For more information see About y-axis values.

To format the y-axis title, scale, and ticks

1.	Right-click the y-axis area and click one or more of the following:

·	Click Title and Text or Font to specify the text or font typeface, size, style, color, or script.

·	Click Ticks to specify the number format, font typeface, style, color, or script of the tick marks and numbers along the X-axis

·	Click Scale to specify the type of scale you want to use (for example, logarithmic).

 Related Topics


Changing a chart's z-axis

Most three dimensional (3-D) chart types, (except pie charts) have a third axis, called the z-axis. The z-axis is along the third dimension of the chart. Depending on the specific chart type, the labels for the z-axes can either be next to the chart or displayed in the legend under the chart.

To change the z-axis font properties

·	Right-click the z-axis on a 3-D chart to change the Font used in its label.

 Related Topics


Changing a chart's title

To change a chart's title

·	With a  form or report open in the Design window, right-click the title area of the chart and click Title to specify the text, font, typeface, size, color, and script of the title.

 Related Topics


Changing a chart's background

The chart's background is the area not being filled with data, for example above and between the columns in a tabular chart. You can change the background's color, pattern, and pattern color.

To change a chart's background

1.	With a form or report open in the Design window, select the chart.

2.	Do one of the following:

·	Right-click the background area, click Color, and then click a color from the palette to change the background color.

·	Right-click the background area, click Pattern, and then click a color from the palette to change the background pattern.

Tip

·	To make the chart transparent, select the chart rather than the background; right-click the chart and click Properties. Enable the Transparent check box on the General page of the Properties dialog box.

 Related Topics


Removing fields from a chart

You can remove fields from a chart's x-Axis, y-Value, and Grouped By boxes in the Define Chart dialog box.

To remove fields from a chart

1.	With a form or report open in the Design window, select the chart.

2.	Right-click the upper-left corner of the chart and click Define Chart.

3.	In the Define Chart dialog box, select the field you want to remove in the x-Axis, y-Value, or Grouped By boxes.

4.	Click the Remove Field button.

 Related Topics


Controlling the number of groups (series) a 2-D summary chart displays
Controlling the number of groups (series) that a two-dimensional (2-D) summary chart displays

Corel Paradox displays 8 groups (series) in a 2-D summary chart. You can control the number of groups displayed. For example, if your data have too many groups to display clearly, you might want to see only the first few groups.

To control the number of groups (series) a that 2-D summary chart displays

1.	With a form or report open in the Design window, right-click the 2-D summary chart and click Max Groups.

2.	Choose a number from the list, or click the ellipsis (...) at the top of the list to open a dialog box, and type a higher number.

 Related Topics


Changing the order of y-value fields on a chart

With tabular and one-dimensional (1-D) summary charts, you can choose more than one field to define the y-axis. These fields appear in the order you choose them in the Define Chart dialog box. Their order determines the order of the data series in the chart: the first field's values will be the first series, the second field's values will be the second series, and so on.

To change the order of y-value fields on a chart

1.	With a form or report open in the Design window, right-click the upper-left corner of the chart and click Define Chart.

2.	Use the Change Order arrows at the bottom of the Field Used In area to change the order; these arrows become active when you define a tabular or 1-D summary chart, when you select a Y-Value , and when you have more than one field in the Y-Value box.

 Related Topics


Changing chart properties

A chart object is a composite object made up of

·	an x-axis area

·	a y-axis area

·	separate series areas

·	a title area

·	a background area

In addition, certain chart types have separate slice areas, a legend area, walls, and a z-axis.

Each part of a chart has unique properties, and the chart object as a whole has properties.

To change properties of the entire chart

·	With a form or report open in the Design window, right-click the upper-left corner of the chart and clikc Properties or change a value using the other menu selections.

When you select the entire chart object, handles appear around the chart.

To change properties of a portion of the chart

·	Right-click a portion of the chart and click the appropriate property.

Handles do not appear around the separate chart areas when you select them. This is because you cannot move the individual components of the chart object. However, the cursor changes to an up arrow when you pass over an area of the chart that can be modified.

 Related Topics


Changing a chart's fonts

Use the Font palette to specify a chart's typeface, size, and style.

To change a chart's fonts

1.	With a form or report open in the Design window, right-click a portion of the chart that has text (like the title or an axis) and click Title, Font.

2.	Change the typeface, size, style, color, and script of the font.

 Related Topics


Changing a chart's color and transparency

Use the Color palette on the chart's General page of the Properties box to specify a chart's color and transparency and to create custom colors for the chart.

To change a chart's color and transparency

1.	With a form or report open in the Design window, right-click the upper-left corner of the chart and click Properties.

2.	On the General page of the Properties dialog box, click a color on the color palette.

3.	Enable the Transparent  check box to make the chart transparent.

Tips

·	To change the color of a series, or other area of the chart, right-click the area, click Color; and click a color on the palette.

·	For more information about changing colors see the Color property.

 Related Topics


Creating custom colors for a chart

Corel Paradox saves custom colors in the Registry, not with the particular document you are working on when you create the color. Therefore, you can create a custom color in one design document and use the color in any other design document.

To create custom colors for a chart

1.	With a form or report open in the Design window, right-click the upper-left corner of the chart and click Properties.

2.	On the General page of the Properties dialog box, click one of the blank spaces on the color palette.

3.	Click the Add Custom Color button.

4.	In the Custom Color dialog box, choose a color scheme (RGB, HSV, or CMY).

5.	Drag the sliders to mix a color.

6.	When you have finished mixing the color, click OK to add the custom color to the color palette.

The custom color appears on the color palette and is available for use whenever you change a color.

 Related Topics


About chart properties

A chart object has many parts. Each part of the chart object has a unique property menu in addition to the property menu of the chart as a whole. Right-click the upper-left corner of the chart to select the chart as a whole, or right-click an area of the chart to select that area. Click Properties to display the property pages. To change other aspects of the chart, click an item from the right-click menu:

Menu Item	Description

Properties	Displays the Properties dialog box with tabbed pages for changing properties. These include the standard Color, Pattern, Frame, Design, and Run Time properties used by other design objects. For Help on these property pages, select them and press F1.

Object Explorer	Displays the Object Explorer for editing ObjectPAL methods, events, and object properties (forms only).

Define Chart	Displays the Define Chart dialog box, where you can choose the fields for each axis of the chart as well as the data type of the chart.

Data Type	Specifies Tabular, 1-D Summary, or 2-D Summary.

Chart Type	Displays a listing of 2-D and 3-D chart types.

Max Groups	Controls the number of groups (series) a 2-D Summary chart displays.

Min x-values	Sets the minimum number of chart series.

Max x-values	Sets the maximum number of chart series.

Options	Customizes the chart using these options:

Show Title: Toggles the display of the title on and off. On by default.

Show Legend: Toggles the legend on and off. Off by default.

Show Grid: Toggles the display of the grid on and off. On by default.

Show Axes: Toggles the display of axes on and off. On by default.

Show Labels: Toggles the display of labels on and off. Off by default.

Rotation: Turns a chart around its vertical axis by the number of degrees you choose. This option is available for all 3-D charts except 3-D Pie and 3-D Columns.

Elevation: Changes the angle from which you view a 3-D chart. This option is available for all 3-D charts except 3-D Pie and 3-D Columns.

 Related Topics


About chart area properties
About chart-area properties

You can change properties of each area of a chart. When the pointer changes to a small vertical arrow, right-click to see a list of properties for that area.

For the areas of X-Axis, Y-Axis, and Grouped By, you can specify field, scale, grid, ticks, and title. In a 2-D summary chart. You can also define the group by right-clicking the chart title and clicking Properties.

You can set the following options for series labels:

Property	Description

Define Y-Value	Specifies the field whose values you want to chart on the y-axis. You can also click the top of the list to open the Define Field Object dialog box, where you can choose a field from another table in the data model.

You can specify more than one y-value if you right-click the y-axis area instead of just a series.

Title	Specifies Text and Font or Use Default.

Color	Displays the standard Corel Paradox Color palette.

Pattern	Changes the color and style of the pattern.

Remove This Y-Value	Removes a series from a chart. The field is also removed from the Y-Value fields list in the Define Chart dialog box. This option is available with Tabular and 1-D Summary data types.

Type Override	Changes the selected series to a different display type from the rest of the chart. Choose None, 2-D Bar, 2-D Line, or 2-D Area. Type Override is available for any 2-D Bar, 2-D Line, 2-D Area, or 2-D Rotated Bar chart.

To change chart type, data type, and formats for the entire chart, right-click the chart outside the specific areas.

 Related Topics


Example of chart areas

 Related Topics


About charts and crosstabs

You can place charts and crosstabs in your form and report designs. Charts and crosstabs help you analyze your data. They expose "hidden" information in your tables by

·	breaking it into categories you specify

·	summarizing the data within those categories

·	sorting the summarized information

For example, when you break down a company's sales data by year and quarter, you can study trends. Break the data down further by product type and regional sales, and your analysis becomes more sophisticated.

 Related Topics


Queries behind charts and crosstabs

The summarized data for a chart or crosstab are created by a query. Crosstabs automatically create and run queries; therefore, defining a query is not part of creating a crosstab.

This is a one-dimensional crosstab of the Orders table:

This is the corresponding chart:

This is the query and Answer table that Paradox generates to produce the crosstab or chart:

 Related Topics


About crosstabs

A crosstab is a data analysis tool that summarizes (cross-tabulates) information according to one or more categories.

A crosstab is a design object, and the categories are fields. The summarized data for a crosstab are created by a query. Because crosstabs automatically create and run queries, it is not necessary to define a query to create a crosstab. It is, however, a way to understand the type of information a crosstab can contain.

A crosstab

·	classifies data by one or more categories

·	summarizes the data within those categories

·	sorts the summarized information

·	displays the data in a spreadsheet-like format

The following crosstab was created on the sample Orders table. Terms was selected as the column field, Ship Via as the category, and Total Invoice as the summary field. The crosstab summary region shows the sum of Total Invoice by shipment and terms.

As another example, you may know that in your organization, last year's sales totaled $100 million nationwide. But what if you wanted to know where you should concentrate your advertising dollars? Breaking the information down by region would provide better information on which to base such a decision.

Region	Sales

North	$25,000,000

South	$30,000,000

East	$15,000,000

West	$30,000,000

You could break this table down even further to show, for example, how much each product contributed to its region's sales.

	Sales
Region	Product #1	Product #2
North	$12,000,000	$13,000,000
South	$10,000,000	$20,000,000
East	$10,000,000	$5,000,000
West	$15,000,000	$15,000,000
You can quickly get an in-depth look at your data by using crosstabs.

 Related Topics


One-dimensional crosstabs

When you create a one-dimensional crosstab, you can analyze one type of data in relation to another. In the following example, a crosstab is used to break down order amounts by payment method.

The Orders table has a Payment Method field. The crosstab counts the number of orders placed using each of the seven possible payment methods. In this case, Payment Method is the category of information, and the calculation Count(ORDER.Order No) provides the data for each category.

You can arrange the display of information horizontally or vertically. The previous figure shows a horizontal construction; the following shows a vertical construction:

Paradox can usually calculate and generate a vertical one-dimensional crosstab faster than a horizontal one.

 Related Topics


Two-dimensional crosstabs

A two-dimensional crosstab summarizes information by more than one category. The following example shows a two-dimensional crosstab:

To create a two-dimensional crosstab, indicate two category fields (the Column and Categories boxes in the Define Crosstab dialog box), and a field whose data you want to summarize (entered in the Summaries box of the Define Crosstab dialog box). In this case, using the Orders table, you could show the count of orders (the summary appearing in the cells of the crosstab object) placed for each payment method and each month (the categories appearing across the top and down the left side of the crosstab object). The data are two-dimensional because they reflect both the month in which the orders were placed and the method used to pay for the orders.

The summary information (count of Order No) appears in the crosstab cells sorted in rows by Month and in columns by Payment Method. To find the number of orders in a given month, you would find the intersection of the appropriate row and column. For example, the number 4 in the first column of cells indicates that four orders were placed in the month of December by customers who used an American Express charge card to pay for the orders. This is a convenient way to analyze the buying habits of customers over time.

 Related Topics


Multi-table crosstabs
Multitable crosstabs

To analyze (cross-tabulate) data contained in two or more tables, the tables must be linked. A crosstab can draw information from any number of tables that are linked in a single-value (one [image] one or many [image] one) relationship.

For example, to view the number of items in stock by equipment class and the vendor that supplies them, you can link the Stock and Vendors tables. You're then free to define the rows, columns, and summary fields using any field from either table.

The following figure shows a multitable crosstab that uses the Vendors Name field from the Vendors table and the Equipment Class field from the Stock table:

In this figure,

·	Summary values show how many pieces of each type of stock came from each vendor.

·	Row titles show values from the Vendor Name field of the Vendors table.

·	Column headings show values from the Equipment Class field of the Stock table.

Combining fields from linked tables

You can combine fields from linked tables in the same crosstab only if the link is single-valued. You cannot cross-tabulate information from combined fields of tables linked in multi-value (one [image] many) relationships. You can cross-tabulate information from the detail table only in a one [image] many relationship.

Creating a link

Before you create a multitable crosstab of a linked one-to-one relationship, you must define the relationship with a data model.

 Related Topics


Crosstabs of detail tables

Suppose you have a linked multivalued (one-to-many) relationship and you want a summary crosstab of only those records in the detail table that apply to a specific record in the master table.

For example, you might want to define a crosstab in the detail table Orders that sums the Total Invoice field by Payment Method and by Month for each customer in the Customer table.

In the relationship between the Customer and Orders tables, each customer can have many orders. You can link the two tables and create a crosstab in the detail table, Orders. You can then place the Customer No or Name field (or both) from the master table, Customer, on the form. Paradox knows from the data model that the information in the crosstab applies only to the current record of the master table. In this example, the Name field at the top comes from the Customer table. As you scroll through Customer, the crosstab updates to show each customer's order information.

 Related Topics


Placing a crosstab on a form or report
Placing a crosstab in a form or report

When you place a crosstab in a form or report, the crosstab uses the data model of that form or report.

To place a crosstab in a form or report

1.	With a form or report open in the Design window, click the Crosstab [image] tool.

2.	Click the form or report to create a crosstab at its default size, or click and drag to size the crosstab.

An empty crosstab object appears with undefined fields in the row header, column header, and first summary area.

 Related Topics


Defining a crosstab

Define the crosstab using fields from the table(s) of the data model. of the form or report.

To define a crosstab

1.	With a form or report open in the Design window, right-click the upper left corner of the crosstab object and click Define Crosstab.

2.	In the Define Crosstab dialog box, enable the Column button and choose the fields from the table list box that you want to use as column headings across the top of the crosstab.

3.	Enable the Categories button and choose the field from the table list box that you want to use as row headings down the left column of the crosstab.

4.	Enable the Summaries button and choose the field from the table list box on which you want to perform a summary operation. This provides the data for the crosstab.

Notes

·	You can choose more than one field at a time from the tables in the data model. You can also revise the document's Data Model and choose summary operations.

·	The total number of category fields plus the number of columns created for a crosstab cannot exceed 254.

 Related Topics


Defining the fields of a crosstab
Defining the fields for a crosstab

When you place a new crosstab object in a form or report, the first column field, first row field, and first summary field are undefined.

To define the fields for a crosstab

1.	With a form or report open in the Design window, right-click a crosstab field and click Define Field.

2.	In the Define Field Object dialog box, choose the field that you want to use in that field from the table list box.

 Related Topics


Specifying column headings for a crosstab

To specify column headings for a crosstab

1.	With a form or report open in the Design window, right-click a crosstab field and click Define Field.

2.	In the Define Crosstab dialog box, enable the Column button and choose the field from the table list box that you want to use as column headings across the top of the crosstab.

Notes

·	You can choose only one field to supply column-heading values.

·	If you are creating a vertical one-dimensional crosstab, do not choose a field for column-heading values.

 Related Topics


Specifying row headings (categories) for a crosstab

To specify row headings (categories) for a crosstab

1.	With the form or report open in the Design window, right-click a crosstab field and choose Define Field.

2.	In the Define Crosstab dialog box, enable the Categories button and choose the field from a table list box that you want to use as row headings down the left column of the crosstab.

Notes

·	You cannot use the same field for column headings and row categories. If you have already chosen a field from this table to supply the column heading values, that field will be dimmed.

·	If you are creating a horizontal one-dimensional crosstab, do not choose a field for row categories.

·	For two-dimensional crosstabs, as long as you have at least one field specified for column headings, you can choose as many fields as are available and that are valid in the tables of the data model  for the row categories. Each field you add to the Categories list further refines the grouping of information.

·	When Paradox generates a crosstab with multiple fields specified for categories, it sorts the information by the top category first, then by the next, and so on.

 Related Topics


Specifying summary fields for a crosstab

To specify summary fields for a crosstab

1.	With the form or report open in the Design window, right-click a crosstab field and click Define Field.

2.	In the Define Crosstab dialog box, enable the Summaries button and choose the field from table list box on which you want to perform a summary operation.. This provides the data for the crosstab. For more information, see Specifying a summary operation for a crosstab.

Notes

·	You cannot choose the same field to summarize as you have chosen for column headings or for row categories. If you have already chosen fields from the table to supply column heading and row category values, those fields will be dimmed.

·	You can choose as many fields as are available and that are valid from the tables of the data model. The order in which you choose them determines the order in which the summarized data appears in the crosstab.

·	Unlike fields you choose for column-heading values and row-category values, fields you summarize can be chosen more than once. The number of summary fields times the number of column values cannot exceed 254.

 Related Topics


Specifying a summary operation for a crosstab

After you specify the field(s) to summarize in a crosstab, you can specify which summary operation to perform (sum count, min, max, or average). By default, Paradox performs the following operations:

·	Sums number, money, short integer, long integer, autoincrement, and Binary Coded Decimal (BCD) field data

·	Counts alpha, date, time, timestamp, or logical field data

To change a summary operation

1.	With the form or report open in the Design window, right-click a crosstab field and click Define Field.

2.	In the Define Crosstab dialog box, enable the Summaries button and choose a summary operation from the Summary list box.

 Related Topics


Running a crosstab

To run a crosstab

1.	With the form or report open in the Design window, do one of the following:

·	Click View, Run Form or View, Run Report.

·	Press (F8).

 Note

·	Corel Paradox runs a query to calculate a crosstab's summary information. The process might fail if the resulting Answer table contains too many fields or if you have inadequate disk space for the query. When the crosstab fails, an empty grid appears in its place.

 Related Topics


Changing the appearance of a crosstab

You can change the way each part of a crosstab looks; in other words, you can change the properties of the fields, column, row, and summary area of the crosstab by using the Properties dialog box.

To change theappearance of a crosstab

1.	With a form or report open in the Design window, select the crosstab. Selection handles appear around the crosstab.

2.	Right-click the appropriate area of the crosstab and click Properties.

 Related Topics


Changing the size of a crosstab

You can change the size of the entire crosstab, the column area, or the row area.

To change the size of the entire crosstab

·	With the crosstab selected in the Design window, drag its borders to the appropriate size.

To change the size of the column area

·	With the crosstab selected in the Design window, drag the grid lines surrounding the crosstab.

To change the size of the row area

·	With the crosstab selected in the Design window, drag its borders.

 Related Topics


Rearranging category and summary fields on a crosstab

When you choose more than one field to define the row categories and more than one field to summarize, you can change the order in which the fields appear in the Categories and Summaries panels.

To rearrange category and summary fields in a crosstab

1.	With the form or report open in the Design window, right-click the upper-left corner of the crosstab object and click Define Crosstab.

2.	Use the Change Order arrows at the bottom of the Field Used In area.

These arrows become active when you select either Categories or Summaries and when you have more than one field in their panels.

Tip

·	You can rearrange the categories or summaries in the Form Design and Report Design windows by dragging them to a different location.

 Related Topics


Removing a field from a crosstab

You can remove the fields used for column headings, row categories, and summaries.

To remove a field from a crosstab

1.	With the form or report open in the Design window, right-click the upper-left corner of the crosstab object and click Define Crosstab.

2.	Select a field in the Column, Categories, or Summaries panels.

3.	Click the Remove Field button.

 Related Topics


Changing crosstab properties

A crosstab object is a composite object made up of

·	fields

·	row area

·	column area

·	summary area

Each part of a crosstab has unique properties, and the crosstab object as a whole has properties.

To change properties of the entire crosstab

·	With the form or report open in the Design window, right-click the upper left corner of the crosstab and click Properties.

To change properties of a portion of the crosstab

·	With the form or report open in the Design window, right-click a portion of the crosstab and click Properties.

 Related Topics


Saving a crosstab to a table

Once you have created a crosstab on a form, you run the form, then save the crosstab to a table.

To save a crosstab to a table

1.	Create a crosstab and save the form containing the crosstab.

2.	Click Edit, Save Crosstab (this menu command is available only when running a form that contains a crosstab.)

3.	Type the name you want to give to the new table, or select one from the list.

 Related Topics


Alignment property (Table window)

In a Table window, you can change the alignment of data in a field or text in a column heading. Text and data can be justified horizontally (at the left, center, or right of the column) or vertically (at the top, middle, or bottom of the row).

To change the alignment in one column, right-click the column heading and choose Properties. Choose an alignment setting from the Alignment property page.

To change alignment in all columns of the table at once, press SHIFT+F6, and choose Properties. Choose an alignment setting from the Alignment property page.


Alignment property (field or table object)

You can align values in a field or table object, text in a text object, and text in the edit region of a field object.

Right-click the object, choose Properties. Choose an alignment setting from the Text property page.

Left	Lines up text at the left, with the right edge ragged.

Center	Clusters text in the middle of the object.

Right	Lines up text at the right, with the left edge ragged.

Justify	Spreads out text so both left and right margins are straight.


Attached Header property

You can separate the header area (the labels) from the body of a table in a table frame. You can then move the header wherever you want (in a report, this includes moving it to another band), or delete the header to suppress the labels.

A detached table and header align with each other automatically.

Right-click the header of a table-frame object and choose Properties. Disable the Attached Header check box on the General property page. To attach the header, enable the Attached Header property check box.


Breakable property

When creating a report, you might place some objects too close to the bottom to fit on the page. Or an object might grow too large to fit entirely on a page (a table with many records or a very large memo field, for example).

You can make the object split, so the first part is on one page and the second part is on another. Right-click the object and choose Properties. Enable the Breakable check box on the Run Time property page.

To make the object stay intact and be pushed to the next page when it does not fit, disable the Breakable property box.

Some objects (charts and graphics) are never breakable.

If an object is not breakable and does not fit on one page, Corel Paradox pushes it to the next page. If it still does not fit on the second page, Corel Paradox displays an error box indicating the report contains an object too large to fit.

If you are previewing a report and see a blank page unexpectedly, look at the next page to see if the object was pushed or cannot fit.


Button Type property

A button's type controls its functionality. You can change a button's type. Right-click on the button and choose Property. Enable one of the Button Style check boxes.

Push	A labeled rectangular button that carries out an action described by an ObjectPAL method. When the button is pressed, its value is True. When the button is not pressed, its value is False. Push is the default Button Type.

All button types execute their PushButton() event allowing ObjectPAL code to run. However, push buttons are more generally used for this.

Radio	A labeled round or diamond-shaped button that provides an option. Each time a user clicks the button, it toggles between being empty and being darkened. Each click also toggles its value between False and True.

Check Box	A labeled square button that indicates a yes/no state. Each time a user clicks the button, it toggles between being enabled and disabled. Each click also toggles its value between False and True.

Field objects as radio buttons and check boxes

You can also create a group of radio buttons or a check box from a field object. The advantage of using a field instead of a button is that a field object can post a value (the button or check box the user chooses) to the table the form is bound to. To post a value to a table with a button object, you must use ObjectPAL.


Center Label property

You can instruct a design object to automatically keep its label centered. Right-click on the button or page and choose Property. Enable the Center Label check box on the General property page.

If you move the label away from a centered position, this property is automatically turned off.


Color property

You can change the color of an object or the selected part of an object (this includes parts of tables).

Right-click an object and choose Properties. The Color palette appears on the General property page. You can apply any color on the palette to the object. To see the affect of the proposed color change, click Apply. To close the Properties dialog box, click OK.

If multiple objects are selected, the change affects all the selected objects. To change the property for multiple objects at one time, SHIFT+Click the objects to select them, then right-click and choose Properties.

If you plan to change the color of several objects separately, apply the color change, but don't click OK. The Properties dialog box remains open. You can move it by dragging the header area, and you can keep it onscreen as long as needed. Click each object to change its properties [image] the Properties dialog box changes to reflect the properties for the newly selected object.

Changes apply to the selected object(s). To change the color of text or background in all columns of the table at once, press SHIFT+F6, choose Properties and make the change.


Column Lines property

In a Table window you can hide or display the lines between columns in Table View. You can also choose the line style and spacing for these lines.

Right-click a line to open the Grid Properties dialog box.  When Column Lines is enabled (the default), the lines show. Disable Column Lines to hide the lines.

To change the grid lines when they are hidden, click Format, Properties, Grid.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose the color on the General property page. To change the color of the lines, choose the color from the Grid Lines property page.


Complete Display property
Displaying memo and BLOB fields

Corel Paradox stores memo and formatted memo fields in a separate file (with the .MB extension for Corel Paradox tables or a .DBT extension for dBASE tables), not in the table itself. A Corel Paradox table contains a portion of the field (you specify how much when you create the field), plus a pointer to the .MB file. Corel Paradox retrieves values from the .MB file when displaying memos and formatted memos.

Depending on the speed of your system and the size of your memo or formatted memo fields, you may find that displaying memos can sometimes be slow. This is because memo data is stored outside the table, in a separate file.

Single memo, formatted memo, or BLOB fields

You can display the contents of selected memo, formatted memo or graphic (BLOB) fields. Double-click the appropriate field. Corel Paradox displays the entire contents of the field in a separate window.

To close the memo or graphic window, press SHIFT+F2.

If you hold the cursor over an individual memo or BLOB field, Corel Paradox displays the entire contents of the field, however, the amount of text or graphic that you will actually be able to see depends on the size of the cells in your table.

Complete text of all of the memo or graphic fields in a table

You can display the contents of all of the memo or graphic fields in a table. Right-click any record in the memo or graphic field, and choose Properties. Enable the Complete Display check box on the General property page.

Corel Paradox displays the entire contents of all of the records in that field; however, the amount of text or graphic that you will actually be able to read depends on the size of the cells in your table.

Memos in dBASE tables

If you're working with a dBASE memo field, Corel Paradox does not store any memo data in the .DBF file. Therefore, when you disable the Complete Display option on dBASE memo fields, you do not see any of the memo. Instead, you see a marker indicating the memo field contains data. When you click the field, Corel Paradox displays the memo value from the .DBT file.

Displaying a memo while running a form

When you run a form with a memo field, you'll see only as many characters displayed in the memo as are specified in the field's size. These characters are followed by an ellipsis (…) to indicate that there is more information.

Memos in a form

You can display the contents of memo fields in a form. Click the field to select it and click View, Field View. Corel Paradox locates the rest of the memo in the .MB file and displays it.


Conditional property

You can print a specific object in a report's group header at the beginning of each group, at the top of the page when the group continues across a page break, or both. Right-click the object, Choose Properties, and enable one of the Print Option check boxes.

Print at Group displays the object at the beginning of each group, but not at the top of each page (unless a group begins at the top of the page).

Print at Page displays the object at the top of the page whenever a group breaks across pages. The object is never displayed on the first page of the report. This setting is useful for a text object that indicates that a group has been continued to the next page.

The Conditional property affects only the specified object. To control how an entire group band prints, use its Header property.


Contain Objects property

When one object exists completely within the borders of another, it can be contained by the outside object. Contained objects move when you move their containers, and are deleted when you delete their containers. When users tab between objects on a form, they tab to all objects within a container before tabbing to any objects outside the container.

You can ensure that objects contained inside are moved when you move their surrounding object. Right-click the container object and choose Properties. Enable the Contain Objects check box on the Design property page. When this option is enabled, objects inside the container can be dragged out of it, but you cannot move the container without moving its contained objects. Properties applied to the container, however, still affect only the container, not the objects in it (unless you use CTRL+ Right-click). If you want to delete an object but not the objects it contains, disable Contain Objects and then press DELETE.

 Note

•	You cannot resize an object smaller than the objects it contains.


Current Picture property

You can specify a character string that acts as a template for the values that can be entered in this field object. Right click the field object, and choose properties. Click the Picture tab, and choose a standard picture from the Current Picture list box (you can also click Add Custom Picture to open the Picture Assistance dialog box and create a custom picture).

This property is not available in reports, for field objects bound to BLOB or autoincrement fields, nor for summary, calculated, or special field objects. It is also unavailable for field objects with a Display Type of List, Check box, or Radio Button, or if the field object is bound to a field that has a picture.


Date Format property

Undefined and date fields have a Date Format property. You can change the format in which Corel Paradox displays dates in the selected field. Right-click on the field an choose Properties. Click the Date button on the Format property page to see a list of available predefined date formats. Choose a format to apply to the selected field, or click Create New Format to define your own.


Define Graphic property

In defining a graphic, you can choose Paste, to place the contents of the Clipboard in the graphic object, or Paste From, to name a file to place in the graphic object. In the Paste From Graphic File dialog box, choose the graphic. Corel Paradox places it in the frame.


Define OLE property

Right-click an OLE object, and choose one of the following options for working with an OLE container:

Paste

Choose Paste to insert an embedded object from the data previously put on the Clipboard by an OLE server. When you insert an embedded object in an OLE container, the data is actually copied into the OLE container, and no relationship is maintained with the source of the data. See About embedded objects for more information.

Choosing Paste is the same as choosing Edit, Paste from the Desktop.

Paste Link

Choose Paste Link to insert a linked object from the data previously put on the Clipboard by an OLE server. A linked object is actually a pointer to data somewhere outside of the OLE container. Changes you make to a linked object are actually made to the source of the object. See About linked objects for more information.

Choosing Paste Link is the same as choosing Edit, Paste Link from the Desktop.

Insert Object

Choose Insert Object to insert a linked or embedded object using the Insert Object Dialog Box.

Choosing Insert Object is the same as choosing Edit, Insert Object from the Desktop.


Delete When Empty property

The Delete When Empty property is only available for objects containing data in reports.

You can instruct Corel Paradox not to show a report's design object if it holds no data. Right-click the object and choose Property. Enable the Delete When Empty check box on the Run Time property page. The object does not appear when the report is previewed or printed.

When Delete When Empty is disabled, the object appears even if it shows no data.

 Note

•	Delete When Empty means different things for different objects. For example, on a table frame, it will omit the table that only has a header. On a record, it will omit records from a populated table frame where every value that appears in the table frame is blank. On a field object, it means you won't see the label on a blank labeled field


Design property
Design properties

You can change the design of objects in Form or Report Design windows. Right-click the object, choose Properties, and click the Design tab. All design objects have the Design property page available, but the Design choices available differ depending on the object. For example, Contain Objects is not available for a line because a line is incapable of containing another object. On the other hand, some objects (like tables) are always containers, and you cannot disable the Contain Objects property.

Pin Horizontal prevents the object from moving left or right across the design, while Pin Vertical prevents the object from moving up or down.

Size To Fit causes an object to expand or contract automatically in the design window based on the object's contents.

Contain Objects causes objects within the selected container to move with their container.

Selectable allows the object to be selected with a mouse click.


Design Sizing property

The way you create a text object determines how Corel Paradox initially sets its sizing option, but you can override the automatic setting. Right-click the text object and choose Properties. You have three Design Sizing choices on the General page:

Fixed Size	Fixed Size objects do not grow (or shrink) horizontally or vertically to fit the amount of text they contain.

Click the Text tool, then drag to place a frame in the design area. As you type, Corel Paradox automatically wraps the text at the right border of the frame. When you reach the bottom of the frame, Corel Paradox scrolls the text upward so you can view the text you are entering.

To change the size of the object, select it and resize it manually. In a fixed-size text object, Word Wrap must be enabled on the Text property page. To make all the text available when the form is run, add scroll bars.

Fit Text	Fit Text objects grow or shrink to fit the amount of text they contain.

If you enable Fit Text and Word Wrap for a text object, the object grows or shrinks vertically to fit the amount of text it contains. Text wraps at the right side of the frame.

If you enable Fit Text without Word Wrap, the object can only be one line. It grows or shrinks horizontally to fit the amount of text it contains.

Click the Text tool, then click in the design area and begin typing. Corel Paradox creates a single-row text object that expands to the right until you press ENTER, moving the insertion point to a new line. As you continue typing, the text wraps automatically at the right border that you defined by pressing ENTER. The text expands downward until you finish typing. The text object shrinks in height if you remove text. Otherwise, the text object grows and shrinks horizontally with the text.

 If you try to resize this type of text object with Word Wrap on, you can resize it only horizontally. If Word Wrap is off, you cannot resize the text object at all. Right-click the object and choose the Fixed Size property before resizing it.

There are two resizing restrictions with Fit Text. You cannot resize a text object horizontally if Fit Text is enabled and Word Wrap is disabled, and you cannot resize a text object vertically if Fit Text is enabled.

Grow Only	Grow Only objects grow but do not shrink to fit the amount of text they contain.

If you enable Grow Only and Word Wrap for a text object, the object grows vertically to fit the amount of text it contains. Text wraps at the right side of the frame.

If you enable Grow Only without Word Wrap, the object can only be one line. It grows horizontally to fit the amount of text it contains.

Click the Text tool, then click in the design area and begin typing. Corel Paradox creates a single-row text object that expands to the right until you press ENTER, moving the insertion point to a new line. As you continue typing, the text wraps automatically at the right border that you defined by pressing ENTER. The text expands downward until you finish typing. Unlike Fit Text, the Grow Only text object never shrinks unless you manually resize it.


Design Tool properties

You can change the properties of the design tool itself. By changing any of these properties on the tool, you change the default properties of the design tool. All objects you subsequently place on a document with this tool will have these properties.

To change properties of a tool, place the object on the design first, right-click the object and change it's properties. Right-click the object again and choose Copy To Toolbar.


Display Type property

You can set the display type of a field object on a document. Right-click the field object and choose Properties. Choose a one of the following display types from the Display Type list box:

Labeled	A field with its field label displayed, along with the value of the current record. The label and edit region cannot be removed or deleted from the field.

Edit	A field without a label.

Combo	A list of values users can select from or type in their own value. The list box drops down when the user selects the arrow. (This property is available only for forms.)

List	A list of values users can select from. This type of list has no type-in box. List is always in full view.

To enter the values for the list items, click the Define Values button after choosing the display type

Radio Button	A list of values with a round or diamond-shaped button beside each value. Users click a button to select a value. Only one value can be selected at a time.

Changing the text in the label of a button does not alter its value. To alter the value of the button, click the Define Values button after choosing the display type.

Check Box	A check box that has one value when the user enables it and another value when the user disables it.

Changing the label of the check box does not alter its value. To alter the value of the check box, click the Define Values button after choosing the display type.


Editing property

In ObjectPAL, this read-only property of a manager or TV window indicates whether you are in Edit mode.


Enabled Property

This feature is useful mainly for ObjectPAL developers who want to create forms in which objects are visible only when needed. It specifies whether a form design object is enabled (true) or disabled (false) when running the form. This property affects the behavior of the for at run time.

Right-click the object and choose Properties. Enable the Enabled check box on the Run Time property page.

Enabled is on by default. If you disable it, Corel Paradox makes the text in the object (and all objects contained by it) gray when you run (view) the form. The object no longer responds to mouse clicks and you can't move to it with TAB key. All objects contained by a disabled object are also disabled (set to FALSE).


Field Squeeze property

You can push or pull an embedded object in a text object. Right-click the text object and choose Properties. Enable the Field Squeeze check box on the Run Time property page. When you run the report, Corel Paradox extracts the text value of the field and wraps it in its position within the line of text within the text object. The text following the field value is correctly spaced.

Field Squeeze is available only inside a text object in a report.


Fit Height property

You can instruct Corel Paradox to expand objects in a report vertically to show all of their contents when you run the report. Right-click an object in a Report Design window and choose Properties. Enable the Fit Height check box on the Run Time property page.

The result depends on the type of object.

A text object fits font height when Word Wrap is not enabled. It expands to fit all the text and contained objects when Word Wrap is enabled. Extra lines can be added. Even if all text fits at design time without scroll bars, if the text object has contained objects that grow or shrink, this can cause the text object to change size.

A field object expands to fit the data (whether it is text or graphic or OLE). If the field is a button-style field (radio or check box), it expands to show all buttons.

A record, box, or ellipse expands to show all contained objects (for example, a table or a text object that expands). If the contained objects are Fit Height, the container tries to maintain white space from the bottom of the lowest object to the bottom of the container.

If you disable the Fit Width or Fit Height of an object, be sure the object itself is big enough to show all that you want it to. It's a good idea to preview the report, then resize the object in the Report Design window to get its sizing right.

 Tip

•	Disabling Fit Height for an object in a report can speed up previewing.


Fit Width property

You can instruct Corel Paradox to expand objects in a report horizontally to show all of their contents when you run the report. Right-click an object in a Report Design window and choose Properties. Enable the Fit Width check box on the Run Time property page.

The result depends on the type of object.

A text object grows or shrinks to exactly fit the size of its text and contained objects. Fit Width is available for text objects only when Word Wrap is not enabled.

A field object fits the width of the text or graphic stored in the database. If the field is a button-style field (radio or check box), it expands to show all buttons.

A record, box, or ellipse expands to show all contained objects. If the contained objects are Fit Width, they can cause this object (the container) to widen, maintaining the white space from the rightmost object to the rightmost edge.

If you disable the Fit Width or Fit Height property of an object, be sure the object itself is big enough to show all that you want it to. It's a good idea to preview the report, then resize the object in the Report Design window to get its sizing right.

 Tip

•	Disabling Fit Width for an object in a report can speed up previewing.


Flat look property

You can apply the flat look property to a button to make it appear flat on the screen until the mouse pointer passes over it. To apply the flat look property to the selected button object, enable the Use flat look check box on the General page in the Button Properties dialog box.


Font property

You can change the typeface, size, style, and color of your text. Right-click on the text and click the Font tab. Choose the attributes you want your text to have.

Font	The typefaces available from the Font list depend on the fonts installed on your system. In a form or report, they also depend on whether you are designing for the screen or for the printer. Standard typefaces include Helvetica, Times Roman, Courier, and System.

Choose the typeface you want for the selected area of the table from the Font list.

If you are designing for the printer, the font displayed on the screen is a best match to a printer font on the selected printer. The screen font may not match the printer font exactly, resulting in anomalies where the object seems too big or too small.

Size	Displays a menu of available type sizes (in points). Choose the size you want for the selected text.

Font Style	Displays the available text styles.

Choose	To

Normal	Remove all style attributes from the text

Bold	Display the text in a heavier style

Italic	Display the text at a slanted angle

Bold Italic	Displays the text in both Bold and Italic

Effects	Displays the available text effects.

Underline	Display the text with a horizontal line beneath it

Strikeout	Display the text with a horizontal line running through it

Color	Changes the color of the selected text.

Script	Changes the character set for the selected text.

 Tips

•	To change font characteristics in all columns of a table at once, press SHIFT+F6, then choose Properties, and change the fonts on the Font property page.

•	To change the font characteristics for all the text objects on a form or report, SHIFT+Click all the objects to select them, then choose Properties, and change the fonts on the Font property page.


Frame property

Many objects are surrounded by a frame. You can change its color, style or thickness. Right-click the object, and choose Properties. Choose the attributes you want from the Frame property page.

Color displays color palette for choosing the color of the frame.

Style displays the types of frames available.

Thickness displays a Thickness palette if your design document is designed for the screen, or a thickness menu if it is designed for the printer.

From each palette, click on a frame property to select it. Corel Paradox changes the frame of the selected object(s).

 Notes

•	Frame styles that are unavailable are dimmed on the palette. Some line and frame styles can be applied only when the line or frame is set to the thinnest choice.

•	Text objects have no frame by default. Before you customize the color or thickness of a text object frame, choose a frame style. Then the color and thickness settings will take effect.


Full Size property

The Full Size property is a read-only property telling you how big the object would be if all of it showed.  An object's full size may be bigger than the frame; in which case, you can scroll or (in the case of bitmap and OLE) pan across it. Nonscrollable objects generally have full size smaller than size.

In reports, if you set Fit Height or Fit Width, the object will expand so that the full size fits inside the frame in the indicated dimension.


Grid property

You can configure the grid in a table frame or crosstab. Right-click a grid line in a table frame or crosstab, and click the Grid tab. On the Grid property page you can change the grid style or color, and specify whether you want record dividers (they will appear at run time, in table frames only).


Grid Lines property

You can customize the grid in numerous ways. Right-click on a grid line and click the Grid Lines tab.

You can control what lines are displayed by enabling one or more of the Position check boxes. Heading Lines displays the horizontal lines in the heading. Column Lines  displays the vertical lines of the grid. Row Lines displays horizontal lines between the records of the table. You can also specify what the lines look like. Query Look makes the header of a table have the same style as that found in queries. Line Style specifies the type of lines. Color changes the color of the lines. Spacing specifies the number of lines between each column or row. You can display single, double, triple, 3D, or no lines.

On table objects or crosstab objects, Grid Style can be single, double, triple, 3D, or None. Corel Paradox applies your chosen style to the whole object. Click None for reports, because printing the grid can take a long time on many printers.


Grid Style property

On table objects or crosstab objects, Grid Style can be single, double, triple, 3D, or None. You can change the grid style, and Corel Paradox will apply your chosen style to the whole object.

Right-click the object, choose Properties, then change the grid color or style on the Grid property page.

 Tip

•	Choose None for reports, because printing the grid can take a long time on many printers.


Heading Lines property

In a Table window you can hide or display the grid lines under all column headings. Right-click a grid line on a table and click the Grid Lines tab. Enable the Heading Lines check box on the Grid Lines page to show a line under your column headings.

You can choose the line style and spacing for these lines.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns. To change the color of the space, choose a color from the General property page. To change the color of the lines, choose a color from the Grid Lines property page.


Header property

You can print a group heading at the beginning of each group, at the top of the page when the group continues across a page break, or both. Right-click the group band, and choose Properties. Enable one of the print options on the General property page.

On Page And Group prints the group heading at the beginning of each group and at the top of a page when the group is continued across page breaks.

Individual objects in headings marked Page And Group can appear at the start of groups, at the page continuation, or both, depending on the setting of their Conditional property.

On Group Only prints the group heading at the beginning of each group, but not at the top of a page when the group is continued across page breaks.

The Header property affects the entire group band. To control how a specific object prints, use its Conditional property.


Horizontal property

Horizontal specifies the alignment of data in a Table window. You can align your data to the left or right, or center it.


Horizontal Scroll Bar property

Horizontal Scroll Bar places a horizontal scroll bar at the bottom of a crosstab, table, graphic, or OLE object. Right-click on the object and choose Properties. Enable the Horizontal Scroll Bar check box on the General property page.


Invisible property

You can suppress the display of an object at run time. Right-click the object and choose Properties. Enable the Invisible check box on the Run Time property page.

Using invisible objects in designs

Invisible objects can be used to control the growing and shrinking of other objects. When you want an object that grows to push other objects that are not directly beneath or beside it, you can add a line beneath or beside it that extends far enough to push the other object.

This behaves like any other line, but you do not want to see it (it is only for formatting), so you make it invisible. This is the same as placing a transparent white color on the line, but you can see it at design time, and it is slightly more efficient at run time.

Similarly, you might want to take advantage of the formatting properties of a box (for example, grouping some objects that should all go on the same page and putting them in an unbreakable box) but not see the box. Again, this is the same as a transparent white frame, but you can see it at design time, and it is more efficient at run time.

When you enable the Invisible check box, Corel Paradox hides the object, but not any objects it contains.


Line Ends property

You can place arrows on the ends of lines. Right-click on the line object, and choose Properties. Enable the Line Ends check box on the Style property page.

No Arrow	Does not place an arrow at either end of the line. (This is the default choice. It is also the only choice for a line that has the Line Type, Curved property enabled.)

On One End	Places an arrow on one end of the line. Because you create a line by clicking and dragging with the mouse, Corel Paradox places the arrow on the end of the line where you released the mouse. The arrow points in the direction you dragged to create the line.

On Both Ends	Places arrows on both ends of the line.


Line Spacing property

In text or memo fields, Line Spacing specifies how far apart lines of text are spaced. You can choose the number of lines separating each column or row. Right-click a text field and choose Properties. Enable one of the Spacing check boxes on the Text property page. The choices are 1, 1.5, 2, 2.5, or 3 lines.


Line Squeeze property

In a text object, you can blank out an entire line of text that contains a blank field (this option works only if a single field is embedded in a text object and the field value is blank). Right-click the text object and choose properties. Enable the Line Squeeze  check box on the Run Time property page.

Line Squeeze is available only inside a text object in a report.


Line Style property

Line Style displays a selection of different types of lines, including dashed lines of varying length. When you choose a style, all selected lines are changed to that style. Right-click a line object, and choose Properties. Choose the appropriate style from the Line Style list on the Style property page.


Line Type property

Corel Paradox gives you the option of drawing straight or curved lines. A straight line is the default. This is what you see when you click the Line tool, then drag across the design.

If you want the drawn line to be curved, choose Curved from the Line Type area of the Style property page. Corel Paradox curves the line. (You can only choose this property if the No Arrow property is enabled for the Line Ends.)


Logical Format property

dBASE logical fields have the Logical Format choice on their menu. Choose it to select which values to accept in the logical field. Choose one of the pairs in the list of predefined logical formats or click the top of the list to open a dialog box where you can define your own custom formats.


Magnification property

You can size a graphic or OLE object to fit in its container. Corel Paradox proportionally resizes the object. Right-click the object and choose Properties. Enable the appropriate Magnification check box on the Magnification property page.

25% or 50% shrinks the displayed object, while 200% or 400% expands it.

100% restores the object to its original size.

Best Fit shrinks the object to fit in the field while retaining the proportions of the original object. When you choose Best Fit, changing the column width or row height changes the size of the object.

 Tip

•	For fastest performance, display graphic and OLE objects at 100%. Best Fit usually gives the slowest performance.


Choose The Next Tab Stop property

You can specify the tab order of objects at Run Time. Right-click the object and choose Properties. Enable the Next Tab Stop check box on the Run Time property page.

From the list, choose the name of the next design object that you want to receive focus when the user presses TAB. This property is available only if the Tab Stop property is enabled. Otherwise, the object's name does not appear on the Next Tab Stop list for any other object. By default Tab Stop is not enabled for pushbuttons.


No Echo property

You can instruct Corel Paradox not to display the contents of a field. Right-click the field and choose Properties. Enable the No Echo check box on the Run Time property page.

No Echo is useful for a field where users type in a password. They can enter data, but it is not displayed.


Number Format property

Undefined fields, number fields, and numeric chart labels have a Number Format property on the Format property page. You can change the format in which Corel Paradox displays numbers in the selected field or chart. Right-click the numbered area, and choose Ticks, Number Format.

Choose from the predefined number formats in the Select Number Format dialog box, or click Create to define your own customized format.


Number Of Pages property

Number Of Pages specifies the number of pages on a notebook object. Each page is represented by a tab.

You can change the number of pages in two ways.

To and one page tot he notebook object, right-click it and choose Page, Add Page.

To add more than one page, or delete pages, right-click the object, and choose Properties. Type the desired number of pages in the Number of Pages box on the General property page.


Object Name property

An object's name appears at the top of its menu. When the object is selected, its name appears on the status bar. Corel Paradox names an object with its type and a number. For example, #ellipse32 or #box3.

Why name objects?

The name of a selected object appears on the status bar and in some error messages. Naming objects can help you determine which object is selected in a complicated design.

In a form, all design objects can have ObjectPAL methods attached to them. ObjectPAL refers to objects by name. If the name of an object begins with the pound character (#), then you need not name the object explicitly when referring to its children in ObjectPAL.

Object names cannot begin with a number or symbol. Also, if you name an object in a function or a method and change its name, your method or function will fail.

In a report, you can use object names in defining calculated fields.

Automatic numbering of design objects

Corel Paradox numbers objects within a design document sequentially, from the first object created to the most recent. For example, when you create a form, the form itself is #1, and the page is #2. The first design object you place on a form is #3.

Suppose you create a new form and place a labeled field object on it. Because a labeled field object is made up of three parts, you can right-click it in three different places, as shown in the following figure. Each part of the labeled field is a separate object and has a different sequential number.


OLE Command property

You can manipulate an object in an OLE container. Right-click the OLE Object and choose an OLE command. The ways you can manipulate an object depend on the kind of OLE server associated with the object.

For example, if the OLE container contains a word processing document, two commands are available: Edit Document and Open Document. Edit opens the document for in-place editing, and Open opens the document by launching the word processor.

If you insert the word document and link it, the OLE menu commands change to Edit Document Link and Open Document Link.


Orphan/Widow property

An orphan is a single line of text at the bottom of a page that has been separated from the paragraph it begins.

A widow is a single line of text at the top of the page that has been separated from the paragraph it ends.

If a text object is breakable, you will probably encounter orphans and widows.  You can avoid orphans and widows. Right-click the text object and choose Properties. Enable the Orphan/Widow check box on the Run Time property page.


Pattern property

Use the properties on the Pattern menu to change the color or fill pattern of an object. A pattern will show up only if the underlying object has a color other than transparent white.

Color lets you choose the color for the pattern.

Style lets you choose the pattern style.

Make your choice from each palette (either click it or move to it and press ENTER). Corel Paradox applies the pattern to the selected object(s).

If choosing a pattern style does not have any effect, make sure the object's foreground and background colors are different.


Pin Horizontal property (run time)

You can establish the location of objects at run time (when you view or print the document). Right-click the report and choose properties. Enable the Pin Horizontal check box on the Run Time property page to pin an object to its horizontal position relative to its container. This means that expanding or contracting objects cannot move the pinned object horizontally.

To speed up previewing of a report, pin as many objects as possible.


Pin Horizontal property (design window)

You can prevent an object from moving left or right by accidental mouse moves. It can still be moved by choosing Align from the menu. Right-click an object and choose Properties. Enable the Pin Horizontal check box on the Design property page.

When you pin an object horizontally, you can move it up or down across the design, but Corel Paradox prohibits you from moving it left or right. Also, the object does not automatically become contained by other objects that surround it.


Pin Vertical property (run time)

You can establish the location of objects at run time (when you view or print the document). Right-click the report and choose properties. Enable the Pin Vertical check box on the Run Time property page to pin an object to its vertical position relative to its container. This means that expanding or contracting objects cannot move the pinned object vertically.

To speed up previewing of a report, pin as many objects as possible.


Pin Vertical property (design window)

You can prevent an object from moving up or down by accidental mouse moves. It can still be moved by choosing Align from the menu. Right-click an object and choose Properties. Enable the Pin Vertical check box on the Design property page.

When you pin an object vertically, you can move it left or right on the design, but Corel Paradox prohibits you from moving it up or down. Also, the object does not automatically become contained by other objects that surround it.


Precede Page Header property

You can print a report's header before its page header. Right-click the report band and choose Precede Page Header on the General page. If Precede Page Header is disabled, the report header appears after the page header.

This is not visible in the Report Design window because the bands themselves do not move. When you preview or print the report, the report band and page band will be in the order you choose from the report band's menu.


Print On 1st Page property

You can print the contents of a page band on the first page of a report. Right-click the page band and enable the Print On First Page check box on the General property page.

You can set this separately for the page header and footer.


Property

No help is available for this property.


Query Look property

You can give the header of a table the same style as that found in queries. Right-click on a grid line, and enable the Query Look check box on the Grid Lines property page.


Raster Operation property

When you define a graphic object, you identify a source graphic (a file) to be placed in a destination (your computer's screen). Most often, Corel Paradox assumes you want an unchanged copy of the source placed on the screen.

Suppose, however, you want the source graphic and the screen to interact. You might want to make the source graphic transparent, so the color of the page shows through it, or you might want to invert the color of the source graphic. When you want to achieve these types of effects, use the graphic object's Raster Operation properties.

Raster operations define how Corel Paradox combines the source graphic with the destination, inverting, combining, including or excluding colors to your specifications. Corel Paradox uses the Boolean AND, OR, and XOR comparison operators to combine individual pixels of color during raster operations.

Right-click a graphic object, and choose Properties. Choose the appropriate raster operation, choose it from the Raster Operations property page.

Demonstration

To see the effects of these raster operations, open RASTEROP.FSL in your SAMPLE subdirectory (or wherever you installed the ObjectPAL sample applications).

Source Copy	Copies an unchanged source graphic to the destination

Source Paint	Combines the source graphic and the destination using the Boolean OR operator

Source And	Combines the source graphic and the destination using the Boolean AND operator

Source Invert	Combines the source graphic and the destination using the Boolean XOR operator

Source Erase	Inverts the colors of the destination and combines it with the source graphic using the Boolean AND operator

Not Source Copy	Inverts the colors of the source graphic and copies it to the destination

Not Source Erase	Combines the source graphic and the destination using the Boolean OR operator

Merge Paint	Inverts the colors of the source graphic and combines it with the destination using the Boolean OR operator

To see an example of using raster operations, see Example of creating a mask for a graphic.


Record Divider property

You can place horizontal lines between records of a table frame. Right-click the table frame and choose Properties. Enable the Record Divider check box on the Grid Lines property page. The lines help you scan across the records of large table frames.


Record Layout property

Right-click the multi-record object and choose Properties. Click the Record Layout tab and specify the layout of records. You can choose the number of records across and down, the vertical and horizontal spacing between the records, and the fill order in which the records appear.

 Note

•	If Include All Data is enabled for a multi-record object in a report, then the final number of repeats in the fully rendered report is not determined by this number but by the data. If the order is Top Down Left Right, then Corel Paradox adds more records in extra columns on the right. If the order is Left Right Top Down, Corel Paradox adds additional records in extra rows on the bottom.


Record Marker property

You can choose to display or hide a record marker in a table to display a horizontal line beneath the current record, and you can customize the lines color and thickness.

Right-click a grid line and choose Properties. Click the Record Marker page and choose the appropriate attributes.

Show Record Marker	When Show is enabled on the Grid Lines property page, the record marker is visible.

Line Style	Displays the Line Style palette. When you choose a line style, Corel Paradox displays the record marker in that style.

Color	When you choose a color, Corel Paradox displays the record marker in that color.


Remove Group Repeats property

You can retain or suppress repeated group values within a record band. Click Format, Properties, and enable the Remove Group Repeats check box on the report's General property page.

When Remove Group Repeats is not enabled, Corel Paradox displays the value of the grouped field for each record, including duplicates, in the record band.

When Remove Group Repeats is enabled, Corel Paradox prints the value for the first record of the group only.

Remove Group Repeats requires a group band in the report design, even if you know the records are ordered because the table is keyed or you've used Sort Record Band. But you can add a group band, then delete all the objects in it, and shrink its header and footer to nothing. This gives nearly the same effect [image] except that now the table breaks on group changes.


Repeat Header property

When a table breaks across several pages or several groups, you can repeat the table header at the top of each page or group. Corel Paradox enables a table frame's Repeat Header property by default.

To prevent the header from repeating at the top of each page or group, right-click the table frame, choose Properties, and disable Repeat Header on the General property page. This property is not available for a table frame with a detached header.


Row Lines property

In a Table window you can hide or display the lines between records.

Right-click a line to open the Grid Properties dialog box. When Row Lines is disabled (the default), no lines appear between the records. Enable the Row Lines check box on the grid's Grid Lines property page to display lines between all records in the table.

You can choose the line style and spacing for these lines.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose a color from the grid's General property page.

To change the color of the lines, choose a color from the grid's Grid Lines property page.


Scrolling Tabs property

ScrollingTabs specifies whether a notebook’s tabs are controlled by scrolling arrows.


Selectable property

You can make an object selectable. Right-click the object and choose Properties. Enable the Selectable check box on the Design property page to make it selectable. Disable Selectable to prevent the object from being selected by a mouse click. You can still select any objects that the object contains, and you can still right-click the object or click it in the Object Explorer.

Selectable is on by default.


Show property
Show Record Marker property

You can display a line under a record to indicate the current record. Right-click on a grid line, and choose properties. Enable the Show Record Marker check box on the Record Marker property page

You can also choose the line style and color for this line from the Line Style and Color palettes on the Record Marker property page.


Show All Columns property

When you view data in a table frame, you can have the table frame expand to show all columns of the table. Right-click the table frame and choose Properties. Enable the Show All Columns check box on the Run Time property page.

When this property is not enabled, the table frame behaves like a fixed-width table when you are viewing data.


Show All Records property

Table frames and multi-record objects both have the Run Time property Show All Records for reports. You can use this property to expand the object vertically down the page, creating as many pages as necessary to show all records of the table.

When a table frame or multi-record object is bound to the master table in the data model of the report, the options displayed for Show All Records are In One Object, and By Duplicating Object.

When In One Object is enabled and you are viewing data, a table frame or multi-record object will keep expanding, until all data in the group is displayed.

A table frame expands vertically. On a multi-record object, the way in which the object expands is determined by the options you choose on the Record Layout property page. If you choose Top Down, then Left-Right, Corel Paradox creates additional columns. If you choose Left-Right, then Top-Town, Corel Paradox creates additional rows.

When By Duplicating Object is enabled, the table frame or multi-record object can still expand, but you will see a fixed number of records when viewing data. For example, memo data is variable in length and will cause the table frame or multi-record object to expand or shrink as necessary. To keep the table frame or multi-record object from expanding, disable the record object's Fit Height property on the Run Time property page.

When a table frame or multi-record object is bound to a detail table in the data model of a report, the Show All Records options become Yes or No.

If Yes is enabled, all records of the detail table frame or multi-record object will display.

If No is enabled, the detail table frame or multi-record object will only display as many records as are shown in the object when in the Report Design window. When you run the report, the object will not expand or duplicate to display all data from the detail table.


Shrinkable property

Sometimes, when an object in a report (such as a box or a report band) begins near the bottom of a page, it has enough Sometimes, when an object in a report (such as a box or a report band) begins near the bottom of a page, it has enough room for all contained objects, but not for the whitespace below the last object.

You can instruct Corel Paradox to ignore this final whitespace. Right-click the object, and choose Properties.  Enable the Shrinkable check box on the Run Time property page. The object shrinks it to fit on the current page by clipping off the whitespace.

When Shrinkable is enabled, it takes precedence over Breakable (when enabled), andFit Height (when disabled).


Size property

You can change the size of the font on a chart. When you choose Title, Font, Size, for example, Corel Paradox displays a list of available point sizes. Choose one from the list.


Size To Fit property

You can make fields, tables, graphic, and OLE objects in design documents  automatically grow or shrink to fit the size of its contents. Right-click the object, and choose Properties. Enable the Size To Fit check box on the Design property page.

For example, suppose you create a small field object, then define it as Customer No. If Size To Fit is enabled, the field label and edit region automatically resize to fit the definition, and the whole field object resizes around them. If you redefine it as Qty, the field automatically shrinks to fit the smaller definition.

Size To Fit can work slightly differently on different objects.

Field objects

Choose Size To Fit if you want a field to expand or contract in the design window as a result of the its contents getting larger or smaller. (This can happen when you make changes to the field object properties such as display type, font, or size.)

For example, suppose a labeled field needs more room than an unlabeled field. If you change display types from an unlabeled field to a labeled field without enabling Size To Fit, the field remains the same size and the label object and field object compete for space. If you change display types and enable Size To Fit, the field object expands to accommodate the new label.

When Size To Fit is enabled, the field resizes when you change display type, redefine the field, change the font or frame, or move or resize anything contained in the field.

If you manually resize the field, it stays that size until you do one of the above four actions.

It is a good idea to have Size To Fit on if you resize a field label or redefine the field.

Table objects

Size To Fit causes a table frame to expand to fit all fields in the table. If you leave this disabled, the table frame retains the size and shape you created when you placed it.

Corel Paradox automatically places a horizontal scroll bar and disables Size To Fit when you manually resize the table, or add more fields to the table than will fit in the form.

Graphic and OLE objects

Use Size To Fit with graphic and OLE objects to make them fit the data they are designed to display. To resize graphic and OLE objects, you must first disable Size To Fit.

Window objects

When Size to Fit is enabled on the General property page for a form or report, Corel Paradox automatically sizes the window to fit the size of the design.

The effect of choosing Size To Fit might not be apparent unless your page size is smaller than your screen display size.


Sort Order property

You can specify the sort order of groups in a band. Right-click the group band and choose Properties. Enable the appropriate Sort Order check box on the General property page.

Ascending prints the groups in A to Z or numeric order.

Descending prints the groups in Z to A or reverse numeric order.

Sort Order is not available for a group band that is defined on a number of records.


Spacing property

You can choose what kind of spacing you want for the grid lines separating table columns. You can choose Single, Double, Triple, 3D, or No spacing. Corel Paradox applies your selection to the whole table.

Right-click a grid line in the table, and choose Properties. Enable the appropriate spacing option on the Grid Lines property page.

To hide the line under all column headings or between columns, disable the Heading Lines or Column Lines  check box.

To display lines between records, enable the Row Lines check box.

To change the line style, choose a Line Style.

Color

You can change the color of the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose a color from the grid's General property page.

To change the color of the lines, choose a color from the grid's Grid Lines property page.


Square Tabs property

Square Tabs specifies whether a notebook's tabs are square or angled.


Standard Menu property

Reports have the Standard menu property which instructs Corel Paradox to display the standard Report window menu when you are viewing data. Right-click the report's title bar and choose Properties. Enable the Standard Menu check box on the General property page. Standard Menu is enabled by default. This property is useful primarily if you are manipulating this document using ObjectPAL and want to display your own menu while the document is previewed.


Start Page Numbers property

You can begin a new page and reset the page number to one when a specified band is reached. Right-click on a page band, and choose Properties. Enable the Start Page Numbers check box on the General property page.

When you choose to restart page numbers for each group, Corel Paradox changes to a page number format that shows page within group (1-1, 1-2, 1-3...2-1, 2-2, 2-3...). You can not modify this format.


Style property

Radio buttons and check boxes

A button's style controls its visual display. Corel Paradox provides several styles for radio buttons and check boxes. To apply one of these styles, right-click a radio button or check box field, and choose Properties. Enable the appropriate style on the General property page.

Borland style makes radio buttons and check boxes look like the ones you see in many Borland products. Radio buttons are diamond shapes, and check boxes are gray, with a three-dimensional look.

Windows style makes radio buttons and check boxes look like the ones you see in some older Windows products. Radio buttons are standard circles, and check boxes are squares.

Windows 3D style makes radio buttons and check boxes look like the ones you see in many Windows products. Radio buttons are gray three-dimensional circles, and check boxes are squares.

Frame style

Objects that can have frames have a Frame property page containing a Frame Style palette. Right-click the frame a and choose Properties. Click on a style to select it from the Style property page. Corel Paradox changes the frame of the selected object(s). Frame styles that are unavailable are dimmed on the palette. Some line and frame styles can be applied only when the line or frame is set to the thinnest choice.

Pattern style

Objects that can be filled with a pattern have a Pattern menu. Right-click the object and choose Pattern to see the Pattern Style palette. To choose a pattern style, click it or move to it and press ENTER. Corel Paradox fills the selected object(s) with that pattern. If choosing a pattern style does not seem to have any effect, make sure the object's foreground and background colors are different.


Style property

Font Style displays a list of available font styles (like Bold or Italic). Right-click a text object, and choose Properties. Choose a Font Styles on the Font property page.


Tab Stop property

Users can tab from one object to another on a form.

Right-click an object and choose Properties. Enable the Tab Stop check box on the Run Time property page to include the object in the tab sequence. Fields, buttons, charts, and OLE objects have a Tab Stop property.

When Tab Stop is enabled, users can move to the object by using the Tab key, arrow keys, or ObjectPAL . They can copy a chart and the data in an edit field to the Clipboard, using the object's right-click menu or the keyboard. When users tab to a field in Edit mode, they can edit it. When they tab to a chart, they can scroll it, and when they tab to a button, they can press ENTER to activate the button.

Users must tab to all objects within a container before they can tab to any objects outside the container.


Tabs Across property

You can specify the number of tabs across a notebook object. If the notebook has more pages than are specified in Tabs Across, Corel Paradox displays the tabs in multiple rows.

Right-click the object and choose Properties. Type the desired number of tabs in the Tabs Across box on the General property page.


Tabs On Top property

Tabs On Top specifies whether notebook tabs are located at the top of a notebook object. Right-click the object and choose Properties. Enable the Tabs On Top check box on the General property page. If this option is not enabled, the tabs will be across the bottom.


Text property

The Text property page is available for any design object that includes text. This property defines the alignment, line spacing, and word wrap properties of the text object.

Right-click the text area and choose Properties. Choose the appropriate options from the Text Property page.


Thickness property

You can change the thickness of a line or a frame.

The Line Thickness and Frame Thickness properties display a thickness palette if you are designing for the screen, or drop-down list showing point sizes if you are designing for the printer.

Right-click line on a 2D line chart, and choose Line, Thickness.

On drop-shadow frames, the size of the shadow is four times the frame thickness.


Time Format property

Undefined and time fields have a Time Format property. You can change the format in which Corel Paradox displays the time in the selected field. Right-click a field (not the column header), and choose Properties. Choose a time format from the list on the Format property page.

When you choose Time, Corel Paradox displays a list of available predefined time formats. Choose a format to apply to the selected field, or click Create New Format to open a dialog box for defining your own customized format.


Timestamp Format property

Undefined and time fields have a Timestamp Format property. You can change the format in which Corel Paradox displays the timestamp in the selected field. Right-click the field and choose Properties. Choose the appropriate format from the Format property page.

Choose a predefined timestamp format to apply to the selected field, or click Create New Format to open a dialog box for defining your own customized format.


Typeface property
Font property

Font displays a menu of available font typefaces. Standard typefaces include Helvetica, Times, Courier, and System.

The typefaces available from the Font list depend on the fonts installed on your system. In a form or report, they also depend on whether you are designing for the screen or for the printer.

 Note

•	If you are designing for the printer, the font displayed onscreen is a best match to a printer font on the selected printer. The screen font may not match the printer font exactly, resulting in anomalies where the object seems too big or too small.


Transparent property

You can apply the transparent property to objects to allow the backgorund color to show through the frame of the object. To make an object transparent, enable the Transparent check box on the General page of the Properties dialog box.


Update Now property

You can make the appearance of a linked object in an OLE container match that of its source. Right-click the OLE object and choose Update Now. A linked object is actually a pointer to data somewhere outside of the OLE container. Corel Paradox provides OLE containers either as a field in a table, or as a design object in a form or report.


Variable Height (Columnar) property

You can instruct Corel Paradox to expand or contract individual records in a multi-record object when you print or preview reports. This means that the multi-record object does not display the records in a fixed-size grid, and you can usually fit more records on a single page than you can without this property.

Right-click the multi-record object and choose Properties. Enable the Variable Height (Columnar) check box on the Record layout property page.

 Note

•	Variable Height (Columnar) is only available when the Top-Down, Then Left-Right setting is enabled.


Vertical property

Vertical specifies the alignment of data in a Table window. You can choose to align data to the left or right, or to center it.


Vertical Scroll Bar property

Vertical Scroll Bar places a vertical scroll bar at the bottom of a crosstab, table, graphic, or OLE object. Right-click on the object and choose Properties. Enable the Vertical Scroll Bar check box on the General property page.

On table and crosstab objects, vertical scroll bars scroll through data, not the underlying image. That's why the vertical scroll bar does nothing when you click it in a design window. When you are viewing data, the vertical scroll bar acts like the navigation buttons on the Toolbar to move forward and backward through records or sets of records.


Visible property

You can make objects on a form can be visible or invisible at Run Time. Right-click the object and choose Properties. Enable the Visible check box on the Run Time property page.

Visible is enabled by default. If you disable it, Corel Paradox hides the object (and all objects contained by it) when you run (view) the form. This feature is useful mainly for ObjectPAL developers who want to create forms in which objects are visible only when needed.

Unlike the Run Time property Invisible (used in reports on lines and boxes), Visible makes the children of the object disappear, as well as the object itself.


Wide Scroll Bar property

You can make a design object's horizontal and vertical scroll bars wider. Right-click the object and choose Properties. Enable the Wide Scroll Bar check box on the General property page.


Word Wrap property

You can change the way the text wraps in field objects and text boxes. Right-click the field object or text box and choose Properties. Enable the Word Wrap check box on the Text property page.

Fields	 Word Wrap splits the contents of a field (all fields except graphic and OLE) to display it in more than one line when it exceeds the width of the field object.

Text	All text objects have the Word Wrap option on their menus. Choose this if you want Corel Paradox to wrap text automatically at the text object's frame. If Word Wrap is turned off, you can have only one line of text in the text object. Pressing ENTER does not create a new line.


Add Records In dialog box

Use the Add Records In dialog box to add the records in one table to records in another table without having to retype the records. The Add Records In dialog box indicates the table from which to add the records.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file, or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can use for the addition operation you are performing.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files of the new directory.


Add Records In <table> To dialog box

Use the Add Records In <table> To dialog box to add the records in one table to records in another table without having to retype the records.

You can use the Options area in this dialog box to either append new records, update existing records, or both.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can use for the addition operation you are performing.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files of the new directory.

Options

These settings let you append records, update records, or both.

•	Append adds new records from the source table to the target table without affecting any existing records.

If the target table is not keyed, the records are placed after the existing records. Records that violate validity checks are placed in the temporary Keyviol table in your private directory.

If the target table is keyed, added records that meet the key criteria are inserted in their proper sort order. Records that do not meet the key criteria are stored in the temporary Keyviol table in your private directory. If you want, you can edit these records to meet the key criteria and then use Append again to place them in the target table.

•	Update refreshes records that already exist in the table to which you are adding records. Any records in the source table that do not match an existing record are not added.

When you click Update, the records of the source table overwrite matching records in the table to which you are adding records. Corel Paradox places the records that are overwritten in the temporary Changed table in your private directory.

The table you add records to must be keyed to use Update.

•	Append & Update adds new records to a table (following the rules just stated) and updates existing records in the target table (following the rules just stated).

The table you add records to must be keyed to use Append & Update.


Alias Manager dialog box

Use the Alias Manager dialog box to create or modify aliases for local or network directories.

When you create aliases, you can give logical names to folders This is strongly encouraged because it frees you from typing long path names and makes your files more portable.

Public Alias

Makes an alias a public alias [image] that is, it is available from all applications that use BDE. Otherwise, the alias will be a project alias [image] that is, it is available only to Corel Paradox applications in the current working directory.

Database Alias

Choose an alias from the list box. To create a new alias, first click New, then type the name (alias) you want to give the database.

Driver Type

Choose the driver you want. The Driver Type list box shows all the drivers to which you are connected. If you want to create a database of Corel Paradox and/or dBASE tables, choose STANDARD. In order to connect to a remote server, you must have the appropriate driver installed. For example, to connect to an MS SQL server, you must instal the Corel Paradox client server version. If you want to connect to a MS Access server, you must intall the ODBC drivers.

Path

Type the full path of the directory location, including the drive letter.

Show options

Show All Aliases shows both public and project aliases; whereas, the other options only show the specified type.

Browse

Lets you search for a directory using the Directory Browser.

New

Opens an empty box where you can type in a new alias. After you click New, the button becomes the Keep New button.

Keep New

Specifies that the alias will only be temporary. It will exist only until you exit Corel Paradox.

Keep New does not close the dialog box. It lets you do a temporary save that does not take effect until you click OK. If you click Cancel, whatever you temporarily saved with Keep New is canceled.

Use Keep New if you are creating several aliases and do not want to open this dialog box to create each one.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box without specifying the removed name again or when you click Save As and overwrite the current file that contains the alias.

Save As

Makes the alias permanent [image] that is, it is usable any time you use Corel Paradox. You see the Save File As dialog box. By default, Corel Paradox stores saved public aliases in IDAPI32.CFG and project aliases in PDOXWORK.CFG. You are prompted to overwrite the existing .CFG file.

When you overwrite, Corel Paradox appends the new alias without changing any existing configuration settings. You can undo the change by deleting the alias (using the Alias Manager dialog box).

OK

Saves any changes you made in the dialog box, but only for the current Corel Paradox session. All Windows applications currently running are affected by any changes.

Cancel

Cancels only the changes in type-in boxes. Any changes you made with Save As remain.


Auxiliary Passwords dialog box

Use the Auxiliary Passwords dialog box to assign passwords for table and field rights.

Passwords

Lists the passwords for the current table.

Current Password

To specify an auxiliary password, type it in the Current Password text box.

Add

After choosing the table and field rights for your auxiliary password, click Add to place the password in the Passwords list.

Table Rights

Choose the level of table rights for the password from the Table Rights list. You can choose only one type of table rights for each auxiliary password. If you want a user to have more than one (but not all) rights, you must assign more than one auxiliary password.

All	Gives a user all rights to any function of the table, including the ability to restructure or delete the table and to change or delete passwords.

Insert & Delete	Gives a user the right to insert, delete, or empty records, but not to delete or restructure the table.

Data Entry	Gives a user the right to edit data and insert records, but not to delete records, restructure, or empty the table.

Update	Gives a user the right to view the table and change non-key fields, but not to insert or delete records or change key fields.

Read Only	Gives a user the right to view the table, but not to change it in any way.

Field Rights

Assigns rights to individual fields. The default right in the Field Rights list box is All. To choose another option, double-click the field or click Field Rights.

All	Gives a user all rights to the data in that field (within the limits of the table rights you specify).

Read Only	Gives a user the right to view, but not to change, the data in that field.

None	Prevents a user from viewing or changing the data in that field. Corel Paradox hides the values in the field when the table is opened.

New

Click New when you have finished adding one auxiliary password to the list and want to add another before leaving this dialog box. You can repeat this process to assign any number of auxiliary passwords.

Change

Changes a password that's already on the Passwords list by selecting it and then choosing Change.

Delete

Remove a password by choosing it from the Passwords list and clicking Delete.


Browse dialog box

Use the Browse dialog box to find a file to insert into an OLE field or object.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file, or double-click on a file in the Look In list. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can use.

Insert

Places the selected file into the current OLE field as an OLE object.


Change Font dialog box

Use this dialog box to specify the default system font. You must exit and restart Corel Paradox for the system change to the font to take effect.

Font

Specify the default font you want to use in design objects by typing it in the text box, or choosing it from the list box.

Sample

This field displays a sample of the specified font.


Change Icon dialog box

Use the Change Icon dialog box to change the icon (and its label) that is displayed for an iconized OLE object.

Icon

Lets you keep the current icon, replace it with the default icon for the selected file, or replace it with an icon from an executable file or Dynamic Link Library (DLL) file. Type the name of the file in the text box, or click Browse to search through the directory tree to find an icon.

Label

Type the label you want to appear below the icon.

Browse

Lets you browse through the directory tree to find a file.


Change Source dialog box

Use the Change Source dialog box to change the source of a linked object in an OLE container.

Look In

By default, Corel Paradox lists files in the working directory. To choose another directory, use this list box to browse for the directory. All files of the appropriate type in that directory appear in the Look In list box.

File Name

Type the name of the new source file or double-click on one in the Look In list. You don't need to type an extension; Corel Paradox recognizes the type of file based on the file type listed in the Files Of Type list box.

Files Of Type

Displays the type of file to which you are linking.

Item Name

Displays the name of the specific item you want to link to in the OLE file that is displayed in the File Name text box.


Change Value dialog box

Allows you to change the value of a watched variable.

 Note

•	You cannot change the value of Form, Script, and Report type variables.


Check Box Values dialog box

Use the Check Box Values dialog box to specify values you want entered into a table when users enable a check box in a form.

When you exit this dialog box, Corel Paradox places a label next to the check box that contains the text in Value When Checked. You can change the label without altering the value in Value When Checked.

Value When Checked

Type what you want entered into the table when the user enables the text box.

Value When Blank

Type what you want entered into the table when the user does not enable the check box.

To enter the specified value while editing data in the form, the user must enable and disable the box. If the user leaves the check box blank, Corel Paradox leaves the field in the table blank (unless you've specified a default value).


Copy dialog box

Use the Copy dialog box to specify the file you want to copy. You can copy tables, forms, reports, queries, scripts, libraries, SQL files, data models, and style sheets from within Corel Paradox.

 Note

•	Do not try to copy tables using either the DOS COPY command or Windows Explorer.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to copy or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can copy.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Copy <file name> To dialog box

Use this dialog box to specify a file name and directory for the destination file in a file-copying operation.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory in which you want to save the files. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to save or select one from the list box below the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save As Type

Displays the types of files you can save.

To copy a Corel Paradox table to a dBASE table or vice versa, specify the appropriate extension. For example, if you want to copy NAMES.DBF to a Corel Paradox table, type NAMES.DB in the File Name text box.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Copy To File dialog box
Copy To dialog box

Use the Copy To File dialog box to copy values in a table's binary fields to non-Corel Paradox files.

In a form, you can also copy values from any field that contains text, numbers, or dates; you cannot copy binary, OLE, or autoincrement data. When you design a form, you can copy a text object to a file. Use the Copy To Graphic File dialog box to copy graphics.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory in which you want to save the files. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to save or select one from the list box below the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save As Type

Displays the types of files you can save.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Character set

Enable the ANSI button or the OEM button to choose the character set for the file.


Copy To Graphic File dialog box

Use the Copy To Graphic File dialog box to copy values in graphic objects or fields to non-Corel Paradox files.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory where you want to save the file. All files of the selected type in that directory appear in the graphics list below the Save In list box.

File Name

Type the name of the file to save or select one from the list box below the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save As Type

Displays the types of files you can use.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Create dBASE Table dialog box

Use the Create dBASE Table dialog box to specify the structure of a dBASE table.

Field Roster

Use the Field Roster to specify the fields of a table. You can add, delete, or rename fields and change field types and sizes.

To insert a field between two existing fields in the Field Roster, click on a field and press INSERT. Corel Paradox opens a blank row above the selected field.

To delete a field from the Field Roster, select the field and press CTRL+DELETE. Corel Paradox deletes the entire row.

The order in which fields are listed in the Field Roster is the order in which the fields appear in the table. To change the field order, click the row number of the field and drag it to a new position.

Field Name	Specifies the name of the field. This is a required field. (When a field is required, you must enter a value in the field for every record in the table.)

Type	Specifies the type of the field. Right-click the Type column or press SPACEBAR to display a list of field types. This is a required field.

Size	Specifies the size of the field. This is a required item for some field types.

Dec	Specifies the number of decimal places for number or float fields.

Table Properties

In the Table Properties list box you can specify the language driver for your new table and any indexes you want to appear on the tables.

Indexes creates an index on the current field in the Field Roster. Click Indexes, Define to open the Define Index dialog box. After you create an index, you can click Modify to change the index or Erase to remove the index.

Table Language specifies the language driver. Choose Table Language, then click Modify to open the Table Language dialog box.

Borrow

Specifies whether to create this table structure by using the structure of another table as a template. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.

Record Lock

Contains information about records locked by other users.

The Info Size option lets you keep track of record-locking information in a multi-user environment. When you enable Info Size, Corel Paradox adds a hidden field to the table that shows when a record was locked and by whom.

The amount of information you see when you encounter a locked field depends on the Info Size you specify. The default size is 16 characters. You can choose a size from 8 to 24 characters from the Info Size list box.

Save As

Saves the table you are creating and closes the Create dBASE Table dialog box. Click Save As to open the Save Table As dialog box and type a name for your new table. You can save the table in the current directory or any folder of your choice.


Create INFORMIX Table dialog box

Use the Create INFORMIX Table dialog box to specify the structure of an Informix table.

Field Roster

In the Field Roster, you specify the fields of a table. When you are creating a table, you can add, delete, or rename fields and change field types and sizes.

Field Name	Required for every field

Type	Required for every field. Right-click or press SPACEBAR to choose a field type.

Size	Table type determines which fields require this

Dec	Table type determines which fields require this

Required Field

The Required Field check box (in the panel on the right) specifies whether the selected field is required. Enable the check box to make the selected field required. When a field is required, you must enter a value in the field for every record in the table.

List Of Indexes

In the panel on the right, you can create indexes for the table. You can add indexes, modify existing indexes, and erase indexes.

Define Index	Creates an index. Corel Paradox opens the Define Index dialog box.

Modify Index	Changes the selected index. Corel Paradox opens the Define Index dialog box.

Erase Index	Removes the selected index. Corel Paradox erases the index.

Borrow

You can borrow another table's structure. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.


Create INTRBASE Table dialog box

Use the Create INTRBASE Table dialog box to specify the structure of an InterBase table.

Field Roster

In the Field Roster, you specify the fields of a table. When you are creating a table, you can add, delete, or rename fields and change field types and sizes.

Field Name	Required for every field

Type	Required for every field. Right-click or press SPACEBAR to choose a field type.

Size	Table type determines which fields require this

Dec	Table type determines which fields require this

Required Field

The Required Field check box (in the panel on the right) specifies whether the selected field is required. Enable the check box to make the selected field required. When a field is required, you must enter a value in the field for every record in the table.

List Of Indexes

In the panel on the right, you can create indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.

Borrow

You can borrow another table's structure. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.


Create ORACLE Table dialog box

Use the Create ORACLE Table dialog box to specify the structure of an Oracle table.

Field Roster

In the Field Roster, you can specify the fields of a table. When you are creating a table, you can add, delete, or rename fields and change field types and sizes.

Field Name	Required for every field

Type	Required for every field. Right-click or press SPACEBAR to choose a field type.

Size	Table type determines which fields require this

Dec	Table type determines which fields require this

Required Field

The Required Field check box (in the panel on the right) specifies whether the selected field is required. Enable the check box to make the selected field required. When a field is required, you must enter a value in the field for every record in the table.

List Of Indexes

In the panel on the right, you can create indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.

Borrow

You can borrow another table's structure. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.


Create Corel Paradox Table dialog box

Use the Create Corel Paradox Table dialog box to specify the structure of a Corel Paradox table.

Field Roster

Use the Field Roster to specify the fields of a table. You can add, delete, or rename fields and change field types and sizes.

To insert a field between two existing fields in the Field Roster, select a field and press INSERT. Corel Paradox opens a blank row above the selected field.

To delete a field from the Field Roster, select the field and press CTRL+ DELETE. Corel Paradox deletes the entire row.

The order in which fields are listed in the Field Roster is the order in which the fields appear in the table. To change the field order, click the row number of the field and drag it to a new position.

Field Name	Specifies the name of the field. This is a required field.

Type	Specifies the type of the field. Right-click the Type column or press SPACEBAR to display a list of field types.

Size	Specifies the size of the field.  This is a required field for some field types.

Key	Specifies whether the field is a key field. The table type determines rules for Corel Paradox key fields.

Table Properties

In the Table Properties list box you can specify the table's settings.

•	Validity Checks

Specifies requirements and defaults for a field. You must select a valid entry in the Field Roster area to specify validity-check information. You can specify the following types of validity checks:

Required Field	Specifies that the selected field in the Field Roster is a required field. When a field is required, you must enter a value in the field for every record in the table.

Minimum	Specifies a minimum value for the selected field in the Field Roster. When a field has a minimum validity check, the values entered in the field must be greater than or equal to the minimum you specify.

Maximum	Specifies a maximum value for the selected field in the Field Roster. When a field has a maximum validity check, the values entered in the field must be less than or equal to the maximum you specify.

Default	Specifies a default value for the selected field in the Field Roster. When a field has a default validity check, Corel Paradox enters the value you specify here if you do not enter another value when you edit this field.

Picture	Restricts the types of information you can enter in a field. When a field has a picture validity check, you specify a character string as a template for the values that can be entered into this field.

Assist	Opens the Picture Assistance dialog box, where you can select or modify a predefined string to use as a picture.

•	Table Lookup

Specifies a lookup table for the current field in the Field Roster. A lookup table is another table that contains values that are valid for the current field.

•	Secondary Indexes

Creates a secondary index on the current field in the Field Roster. A secondary index lets you sort data in an order that is different from the key field and lets you form links between tables. Choose Secondary Indexes and then click Define to open the Define Secondary Index dialog box.

•	Referential Integrity

Creates a referential integrity relationship between the current field and the key field in another table. A referential integrity relationship ensures that ties between like data in separate tables cannot be broken. Choose Referential Integrity and then click Define to open the Referential Integrity dialog box.

•	Password Security

Creates passwords to protect your tables from unauthorized access.  Choose Password Security and then click Define to open the Password Security dialog box.

•	Table Language

Specifies the language driver.  Choose Table Language and then click Modify to open the Table Language dialog box.

•	Dependent Tables

Displays all tables that depend on the current table for referential integrity.

Borrow

Specifies whether to create this table structure by using the structure of another table as a template. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.

Save As

Saves the table you are creating and closes the Create Corel Paradox Table dialog box. Click Save As to open the Save Table As dialog box and type a name for your new table. You can save the table in the current directory or any folder of your choice.


Create SYBASE Table dialog box

Use the Create SYBASE Table dialog box to specify the structure of an Sybase table.

Field Roster

In the Field Roster, you can specify the fields of a table. When you create a table, you can add, delete, or rename fields and change field types and sizes.

Field Name	Required for every field

Type	Required for every field. Right-click or press SPACEBAR to choose a field type.

Size	Table type determines which fields require this

Dec	Table type determines which fields require this

Required Field

The Required Field check box specifies whether the selected field is required. Enable the check box to make the selected field required. When a field is required, you must enter a value in the field for every record in the table.

List Of Indexes

In the list on the right, you create indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.

Borrow

You can borrow another table's structure. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.


Create Table dialog box

Use the Create Table dialog box to specify the type of table to create.

Table type determines

•	the table's filename extension

•	the tables from which you can borrow a structure

•	the field names that are valid — For example, Corel Paradox permits spaces and punctuation in names; whereas dBASE does not.

•	the field types and sizes that are valid

•	the rules for specifying indexes

Table Type

Specifies the type of table to create. You can choose any table type from the list box.

Tables created using the Corel Paradox 4 option are compatible with Corel Paradox 4.5 for Windows and Corel Paradox 4.0 for DOS.


Create Table dialog box (other SQL)

Use the Create Table dialog box to specify the structure of an SQL table.

This dialog box has two main sections: the Field Roster panel and the panels on the right. You can move between them by using the keyboard: Use the Super Tab key (F4) to move from the Field Roster to the panels on the right; to return, press SHIFT+TAB.

Field Roster

In the Field Roster, you can specify the fields of a table. When you create a table, you can add, delete, or rename fields and change  field types and sizes.

Field Name	Required for every field

Type	Required for every field. Right-click or press SPACEBAR to choose a field type.

Size	Table type determines which fields require this.

Dec	Table type determines which fields require this.

Required Field

The Required Field check box (in the panel on the right) specifies whether the selected field is required. Enable the check box to make the selected field required. When a field is required, you must enter a value in the field for every record in the table.

List of Indexes

In the panel on the right, you create indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.

Borrow

You can borrow another table's structure. Click Borrow to open the Select Borrow Table dialog box and choose from the list of tables. The Field Roster must be empty to borrow another table's structure.


Custom Color dialog box

Use the Custom Color dialog box to create custom colors for your design objects.

When you get the color mix the way you want it and click OK, the custom color appears on the Color palette and is available for use.

Corel Paradox saves custom colors in the Windows registry, not with the particular document you are working on when you create the color. This gives you the ability to create a custom color in one design document and to use the color in any other design document.

Sample area

Changes color to reflect the settings you choose.

Scroll bars and Value boxes

Create the color mix you want. Use the Color sliders to get the shade you want or type in values in the Value boxes.

Color Editor buttons

You can manipulate the tone and intensity of the colors in your design object. RGB specifies that you want to change the amount of red, green, and blue in your custom color; whereas CMY specifies you want to change the amount of cyan, magenta and yellow. HSV allows you to change the hue, saturation, and value of your new color.


Data Dependent Properties dialog box

Use the Data Dependent Properties dialog box to display a specified range of values in a field with different colors or fonts.

Alpha, number, short, long integer, date, time, timestamp, logical, autoincrement, and money field types (as well as dBASE character, number, float number, date, and logical field types) all allow you to choose Data Dependent property.

The properties of a data-dependent range override those you specify for a column. If, for example, you choose a blue background color for a column, any records that fall within a data-dependent range specification are not affected. These records continue to use the background color for the range, rather than the color for the column as a whole.

Ranges

Lists the ranges you have specified.

New Range

Adds another range to the Ranges list box.

Remove

Choose the range you want to remove from the Ranges list box, and click Remove.

Range Includes Values

Choose an operator, then type the corresponding numbers in the number boxes:

Operator	Description

=	Equals

>	Greater than

>=	Greater than or equal to

<	Less than

<=	Less than or equal to

Set Properties

Specifies the color and font in which to display this range of values. The display you specify is demonstrated in the Sample area.

Apply Changes

When you have specified the range that you want to appear differently, click Apply Changes. The range is displayed in the Ranges list box.

The range you specify in the Data Dependent Properties dialog box does not have to be numeric. You can set a range of dates or match text strings. For example, in the Customer table, all State field values equal to CA could be displayed in yellow italic text, or all dates in 1991 could be displayed in blue underlined text.


Data Model dialog box

Use the Data Model dialog box to specify which tables to use in a form or report and to define their relationship. You can also use this dialog box to choose and link tables for a query.

Tables do not have to be linked in a data model. You can choose to keep the tables unrelated.

Using the Data Model dialog box

Use this dialog box to choose the tables to use in a form or report and to define their relationship.

The panel on the right shows a diagram of the data model you are building. You place the tables you want here, then, if desired, link them to each other.

It’s a good idea to link tables as you go. This gives you more room in the data-model panel.

In the data-model panel, if a table name has an asterisk, that means a field from that table is bound to an object on the document.

File Name

The File Name list box contains a list of all the tables in your current working directory. To add a table to the data model, select it and click the Right Arrow button or double-click the file name. To remove a table, click on the table, then click the Left Arrow button or press ALT+D. After you place a table in the data-model panel, you can right-click it to change the way it is used in the data model.

Drive (Or Alias)

To see tables in other directories, choose an alias such as your private directory or another drive, or click Browse to open the Select File dialog box.

Type

Select one of the following:

•	<Tables> to create a data model from tables. This is the default choice.

•	<Queries> to create a data model that contains a saved query.

•	<Data Models> to load a saved data model into the dialog box. You can then customize the data model.

•	<SQL> to create a data model from an SQL query file.

Browse

Click Browse to use the File Browser to look for a file in another directory.

Link

To change the way two tables are linked, select the detail table and click Link to display the Define Link dialog box. Click Unlink to break the existing link and then specify the link you want.

This option is available only when there are two or more tables in the data-model panel.

Unlink

To remove an existing link, click on the detail table in the data-model panel and click Unlink.

This option is available only when a detail table is selected.

Save DM

Saves the data model to a file.

This option is available only when there are one or more tables in the data-model panel.

Message box

The box above the data-model panel provides link information, file-path information, and other helpful messages.


Define Chart dialog box

Use the Define Chart dialog box to define chart values at one time. You can also define chart values by right-clicking portions of a chart and choosing Properties.

Data Model button

This button lets you view or change the data model.

Data Model panel

Use the Table Names list box to select the fields you want to use. This area shows all tables in the data model.

Field Used In

Allows you to specify unique values for the following:

X-Axis	Specify the field whose unique values you want to use as X-Axis values. Corel Paradox allows only one X-Axis field.

Grouped By	For 2-D summary charts, you can choose any of the available and valid fields to group the summary data. The data are also grouped by the x-axis categories. When you group data in a chart, you create as many series in your chart as there are different values in the field by which you group. This field appears only when your data type is 2-D summary.

Y-Value	Specify the field(s) values you want to chart against on the y-axis (the different series of the chart). You can only pick one field for the Y-Value when your data type is 2-D summary.

Change Order	Click the Change Order arrows to move a selected field up or down in a list to make the series appear in the order you want.

Remove Field	Click to remove the selected field from a list.

Data type

Specify the type of data to chart.

Tabular	When you define a tabular chart, choose the field values you want for the X-Axis and Y-Values. When you have more than one field in the Y-Value area, you can change their order with the Change Order arrows. You can remove any selected field with the Left Arrow button. A tabular chart takes its data directly from the table, rather than summarizing the data in the table.

1-D Summary	A 1-D Summary chart analyzes one type of data in light of another. When you choose this chart type, and choose a Y-Value, Summary becomes available. Choose the type of summary operation to perform on each Y-Value field you choose.

2-D Summary	A 2-D Summary chart summarizes information by more than one category. When you choose this chart type, the Grouped By area becomes available when you specify an additional field you want to use to group the summary data.

Summary

Choose a summary operator from the Summary list box. If you are creating either a 1-D or 2-D summary chart, specify the type of summary operation you want to perform on each Y-Value field you choose. Summary is not available for a tabular chart.


Define Crosstab dialog box

Use the Define Crosstab dialog box to create your crosstab specification.

You can open the Define Crosstab dialog box and make all your decisions at once about defining fields, grouping and summarizing, or you can develop the crosstab definition piece by piece from menu selections for the parts of the crosstab object that have their own menus.

Data Model button

Click the Data Model button to view or change the data model. Corel Paradox opens the Data Model dialog box.

Data Model panel

All tables in the data model are shown in this area.

Field Used In

Specify the settings for each field in the crosstab.

Column	Specify which field's values to use as column headings across the top of the crosstab. (For example, Payment Method in the Orders table could define column headings.)

Categories	Specify the field(s) with the values you want to use as row headings (categories) down the left column of the crosstab. (For example, Sale Date in the Orders table could define categories.)

Summaries	Specify the field(s) with the values on which you want to perform a summary operation. These fields provide the data of the crosstab. (For example, you might perform a summary on Total Invoice in the Orders table.)

Change Order	Click the Change Order arrows to move the selected field up or down in a list.

Remove Field	Click to remove the selected field from a list.

You can't generate the crosstab until you have defined at least one field for either the column headings or row categories and at least one field that you want to summarize.

Summary

Specify the type of summary operation to perform on each summary field you choose. The Summary list box displays all of the available summary operators. You can use these to perform specific calculations on a specific set of values.


Define Field Object dialog box

Use the Define Field Object dialog box to place a field not available from a field object's menu (such as a summary field, a special field, or a field in a parent table).

Data Model button

Opens the Data Model dialog box in which you can add a table or change table relationships.

Table name

The <table> list box displays a list of all available fields. Special fields that contain data about the table appear in angle brackets (<>) at the bottom of the list.

Summary

The Summary list box displays the available summary operators. You can use these options to perform specific calculations on a specific set of values in a table.

If you are in a report, you can modify the scope of the summary.

Normal specifies that the scope is the current set; whereas Cumulative specifies that the scope is from the start of the report to the end of the current set. Unique specifies a scope that ignores duplicate values.

Special Field

Displays special fields that relate to the design.

Special fields that refer to a specific table (such as record number) are in the Table Name list box, not in the Special Field list box.

Calculated

Makes the field a calculated field. You can then enter a formula in the text box.

Copy Field

Places fields quickly in your formula for a calculated field. Choose a field from the list box of a table in the panel above, then click Copy Field to paste that field name into the text box at the insertion point.


Define Group dialog box

Use the Define Group dialog box to place optional group bands in a report. Use group bands to break your information into groups of data. Groups can be based on the value of a field, a range of values, or a specified number of records.

Band Label

Displays the table, field, and type of group you choose.

Group By Field Value

Bases your group on the value of a field. You can then choose a table, field, and, if desired, a range of values to be met by the field in which you are grouping.

Group By Record

Bases your group on a specified number of records.

Number Of Records

Type the number of records you want to appear in each group.


Define Index dialog box or Index Info dialog box (dBASE tables)

Use the Define Index and Index Info dialog boxes to define or display indexes for dBASE tables.

Field List

Displays the fields in your table. Double-click the one you want to appear in the Indexed Field box.

Indexed Field

Displays the field you have chosen.

In the Define Index dialog box, you can choose the field you want in the Field List and use the Right Arrow button to add the field to the Indexed Fields list (or press ALT+A). To remove a field, use the Left Arrow button.

The Right Arrow and Left Arrow buttons are unavailable in the Index Info dialog box.

Expression Index/Index Field

Specifies whether the index is an expression index or a field index. By default, the button reads Expression Index and Corel Paradox is set to create a field index.

In the Define Index dialog box, click Expression Index to create an expression index. The Expression Index box becomes available.

If the Index Field box isn't available, you can click Index Field to create an index on a field.

Options

Indicates how you want Corel Paradox to treat your indexes.

Unique	Tells Corel Paradox that each value in the index must be unique.  Unique is not equivalent to a Corel Paradox key. Unique does not prevent you from entering duplicate values for fields in the index; rather, it only shows you one record for a given set of values for the index.

Maintained	Tells Corel Paradox to maintain the index automatically. This means that every time the table changes, Corel Paradox updates the index.

Descending	Sorts the table in descending (Z to A) order.

Expression Index

Specifies the expression to use for an expression index. In the Define Index dialog box, you can type any formula that results in a value. For example, you could create an expression index such as FIRST_NAME + LAST_NAME, where FIRST_NAME and LAST_NAME are field names.

Subset Condition (filter) Expression

In the Define Index dialog box, you can create an expression (sometimes called a filter) that evaluates to true or false.


Define Index dialog box or Index Info dialog box (SQL tables)

Use the Define Index and Index Info dialog boxes to define or display indexes for SQL tables.

Field List

Displays the fields in your table. Choose the fields you want to appear in the Indexed Field box.

Indexed Field

Displays the field for the index.

In the Define Index dialog box, you can choose the field you want in the Field List and use the Right Arrow button to add the field to the Indexed Fields list (or press ALT+A). To remove a field, use the Left Arrow button.

The Right Arrow and Left Arrow buttons are unavailable in the Index Info dialog box.

Change Order

Changes the order of the fields in the Indexed Fields list box.

In the Define Index dialog box, you can choose a field from the list and use the Change Order arrows to move it up or down. These arrows become available when two or more fields appear in the Indexed Fields list box. Change the order of the fields to change the sort order of the index.

This field is unavailable in the Index Info dialog box.

Index Options

Indicate how you want Corel Paradox to treat your indexes. These options are available only if they are supported by your server.

In the Index Info dialog box, these options are for information only and cannot be changed.

Unique	Tells Corel Paradox that each value in the index must be unique. The index accepts only the first occurrence of any duplicate field values.

Descending	When enabled, the index sort the table in descending (Z to A) order. With Descending enabled, if you try to link to another table that is sorted in ascending (A to Z) order, you will not be able to perform the link.

Case Sensitive	When Case Sensitive is enabled, Corel Paradox pays attention to capitalization when it sorts. Capitalizing a value does not make it unique in a case-insensitive index.


Define Link dialog box (Corel Paradox)

Use the Define Link dialog box to define a link.

This dialog box automatically opens when you try to create a link between tables that do not have referential integrity.

Field

Choose the master-table field you want from the Field list box. Click the Right Arrow button or press ALT+A to place the selected field in the link-diagram panel, or double-click the field name. Click the Left Arrow button or press ALT+D to remove a field from the diagram.

You cannot create a link on a memo, formatted memo, graphic, OLE, binary, bytes, or logical field type. This is because you cannot create an index on these field types.

Link-diagram area

The field you select from the Field list box appears below the table name in the link -diagram panel of the dialog box. If Corel Paradox finds an index of the detail table that matches the name and type of field you chose, it completes the link for you. If more than one index could be used, you have to choose the one you want. An arrow in the link diagram area shows you the link.

Index

Choose the detail-table index you want from the Index list box. The Index list box shows all predefined indexes for the detail table. The table's key (the table's primary index) is marked with an asterisk (*). If the key is a composite key, all fields of the composite are displayed, linked with a dash, and marked with an asterisk (*). The table's secondary indexes are listed after the key.

Click the Left Arrow button, double-click the file name, or press ALT+I to place the selected field in the link-diagram panel.

Unlink

Click Unlink to break an existing link.


Define Link dialog box (dBASE)

Use the Define Link dialog box to define a link.

Field

Choose the master-table field you want from the Field list box. Click the Right Arrow button, double-click the file name, or press ALT+A, to place the selected field in the link-diagram panel. Click the Left Arrow button or press ALT+D to remove a field from the diagram.

Link-diagram area

The field you select from the Field list box appears below the table name in the link-diagram area of the dialog box. If Corel Paradox finds an index of the detail table that matches the name and type of field you chose, it completes the link for you. If more than one index could be used, you have to choose the one you want. An arrow in the link-diagram area shows you the link.

Index

Choose the detail-table index you want from the Index list box. The Index list shows all predefined indexes for the detail table (all tags in the .MDX file).

Click the Right Arrow button, double-click the field name, or press ALT+I to place the selected field in the link-diagram panel.

You can link dBASE tables only on maintained indexes (not .NDX files).

Master Expression

Enable the Master Expression check box to make this edit box available, and then type an expression in this box. You can only link dBASE-type tables on like field types unless you use a master expression in the link.

Unlink

Click Unlink to break an existing link.


Define List dialog box

Use the Define List dialog box to specify values you want to display in an edit, list, or button field.

When you type values in a field, make sure the field size is large enough. Corel Paradox trims values that are too large to fit in the field. Also, make sure any values you type meet the requirements of any validity check for the field.

Item/Item list box

Type the choices for the field's value in the Item text box. Press ENTER after each choice you type. The choice appears in the Item list box.

Field Type

The display type appears in the Field Type area. To change the display type, change the field object's properties.

Sort List

Click Sort to alphabetically sort the values in the Item list box.

Modify Item

Choose an item from the Item list boxand click Modify Item to move the choice back to the Item text box, where you can edit the item. After you edit the item, press ENTER to return the choice to the Item list box.

Remove Item

Choose an item from the Item list box and click Remove Item to remove it from the list.

Change Order

Choose an item from the Item list box, then use the Change Order arrows to move it up or down in the list.


Define Secondary Index dialog box (Corel Paradox tables)

Use the Define Secondary Index dialog box to define secondary indexes for Corel Paradox tables.

For Corel Paradox 3.5 tables, you can't define a secondary index based on more than one field.

Fields

Displays a list of the fields you can use as a secondary index. Bytes, logical, and BLOB fields are dimmed [image] you cannot create a secondary index on these fields.

Indexed Fields

Choose the field you want from the Fields list  box and use the Right Arrow button to add the field to the Indexed Fields list box, or press ALT+A. To remove the current field, use the Left Arrow button.

If you add more than one field, Corel Paradox creates a composite secondary index and sorts on all of the included fields, starting at the top of the list.

Clear All

Removes all fields in the Indexed Fields list box and places them in the Fields list box.

Change Order

Choose a field from the Indexed Fields list box and use the Change Order arrows to move the field up or down in the list. These arrows are enabled when two or more fields are in the Indexed Fields. Change the order of the fields to change the sort order of the index.

Index Options

Choose how you want Corel Paradox to treat your secondary indexes.

•	Unique specifies whether more than one record can have the same value in the secondary index fields. If Unique is enabled and Corel Paradox encounters a duplicate value, the index isn't applied and a warning message appears. You can edit the field data and try to index again after the duplicate value has been removed.

•	Case Sensitive specifies whether Corel Paradox should pay attention to capitalization in sorting.

When enabled, Case Sensitive sorts the following sets of characters in this order: Abcd, aBcd, aaaa

When Case Sensitive is disabled, the following sets of characters are sorted in this order: aaaa, Abcd, aBcd

Values such as Abcd and aBcd are considered duplicates in a case-insensitive index. They appear in the order in which they were entered in the table.

Corel Paradox automatically names single-field, case-sensitive indexes with the field's name. You must name a case-insensitive index when you save it. This enables you to create two indexes on the same field, one case-sensitive and one case-insensitive.

•	Maintained specifies whether to maintain the secondary index automatically.

Maintained indexes are updated by Corel Paradox every time the table changes. This speeds up certain operations such as queries. You can only link Corel Paradox tables in form and report data models on the basis of maintained indexes. Maintained indexes are only available for keyed tables.

Non-maintained indexes are updated only when the index is used; for example, when you link tables or run a query. The operation that uses the secondary index takes slightly longer when you use a non-maintained index because Corel Paradox must first update the index to recognize values that you have added, deleted, or changed, and then sort the table according to the new index. If a non-maintained index becomes out-of-date, you cannot use it to change the viewing order of records. Non-maintained indexes are most useful on read-only tables.

Field Options

Lets you choose how you want Corel Paradox to sort each field in the secondary index, in ascending or descending order.

Ascending/Descending

Specifies whether the current indexed field sorts in ascending or descending order.


Define Table/Multi-Record Object dialog box

Use the Define Table/Multi-Record Object dialog box to limit or reorder the display of a table frame or multi-record object to show only the fields you want. By default, Corel Paradox displays all fields of a table when you first define a table frame.

Data Model

Click the Data Model button to open the Data Model dialog box where you can add or remove tables bound to the document.

If you choose a table, its name appears next to the Data Model button, and the words <No fields included> appear in the Included Fields list box. If you click OK, Corel Paradox defines the table frame as the table you choose, but does not define any field objects with the chosen table's fields. You can right-click and define each field object individually.

Table Name

The <table> list box displays all of the available fields. The fields you choose from this list box are added to the Included Fields list box.

Included Fields

Corel Paradox lists the fields to be displayed on the table frame or multi-record object in the order they will appear.

To add a field to the Included Fields list box, double-click on the field.

To remove a field from the Included Fields list box, select the field and click Remove Field.

Change Order

Use the Change Order arrows to move a field up or down in the Included Fields list box. This determines the order of the fields in the table frame or multi-record object.

Remove Field

Choose a field name from the Included Fields list box and click Remove Field.

Size To Fit

Enable Size To Fit to make the table frame grow or shrink to fit all fields in the table you defined. Otherwise, the table frame retains its current size. Size To Fit is dimmed for multi-record objects.

Replace Layout

Enable Replace Layout to overwrite fields in the table frame with the fields listed in the Define Table/Multi-record Object dialog box. Otherwise, the fields you add to the table frame are appended and existing fields are left intact (even if existing fields are undefined). The new definition may be incompatible with some fields already in the table frame. In this case, the previously existing fields become undefined.


Delete dialog box

Use the Delete dialog box to delete a file from disk. You can delete tables, forms, reports, queries, scripts, libraries, SQL files, data models, text files, and style sheets from within Corel Paradox.

You cannot undo a deletion. Make sure the table is not used in any associated objects such as forms, reports, or queries. Associated documents are not deleted when you delete the table; you must delete them yourself.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to delete or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the type of files you want to delete.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

When you click Delete, Corel Paradox displays a message that asks you to confirm the deletion of each object. Click Yes to delete the object, or No to cancel the operation.


Deletion Confirmation dialog box

This dialog box reminds you that deletions cannot be undone. It appears each time you delete a record. Click OK to delete the record, or click Cancel to stop the deletion and close the dialog box.


Design Layout dialog box (single table and single-value relationship)

Use the Design Layout dialog box to format the basic layout of a design document  that has a data model that contains a single table or several tables with single-value relationships.

The right panel of the dialog box shows what the layout will look like when you open the layout in a design window. The left panel shows either the fields or the layout options.

When you click the Layout tab, the left panel displays options to control the field layout, the design's style, a multi-record style (if necessary), and the option to display field labels.

When you click the Fields tab, the left panel displays options for choosing which fields from the table(s) you want to include in the design.

Fields tab

Shows which table and fields to use.

Table

Indicates the table on which the form is based.

Reset Fields

Restores the field list to its original status.

Selected Fields

Lists the fields that will appear in the form and their display order.

Order

You can use the Change Order arrows to move the selected field up or down.

Remove Field

Removes the selected field from the form.

Layout tab

Indicates how the fields should appear on the form.

Field Layout

The By Columns layout displays objects in columns, down the page. This is the default layout.

The By Rows layout displays objects in rows, across the page.

Style

Use the style options to select a layout.

•	Single Record style displays one record of the table at a time, in a free-form layout. Single Record is the default style for a form.

If you are designing a report with a table that contains very long memo fields, you might want to use a Single-Record style. Records in table frame and Multi-Record objects cannot be broken over pages of a report if the Breakable property on the Run time page is not enabled for the table frame or Multi-Record object. The Breakable property is set as the default.

•	Tabular style displays rows and columns just as if you were working with the table itself.

•	Multi-Record style displays several records of the table at a time. When you specify a Multi-Record layout, Corel Paradox displays a multi-record object in the Design Layout dialog box.

In a Multi-Record object, you view the fields of a record in the first record region and then specify whether you want repeated regions (each displaying an additional record) across and down the page. Use the Multi-Record options (Horizontal, Vertical, Both) to detail how you want the records repeated.

If you want to change the number of repeated regions, right-click the Multi-Record object in the design window, choose Properties, and click the Record Layout tab.

For reports, the dialog box doesn't show how many regions will be repeated downward. By default, Corel Paradox adds as many regions as necessary to show all of the table data whenever you print or preview the report.

•	Blank style removes all fields from the design. The fields of the table are still available for manual placement (use the Field tool in the design window), but they are not automatically placed in any layout style.

When you create a design document by choosing a data model with a blank layout, it is different than creating a blank design document. When you choose a data model, and then choose a blank layout, the design document you create is associated with the data model and its fields are available for placement. A truly blank design document is not associated with any table.

You can return to the Data Model dialog box and add a data model to the blank design by clicking Data Model.

Multi-Record Layout

If your layout is Multi-Record, specify whether you want the records to be arranged horizontally, vertically, or both.

The Horizontal layout repeats the records across the page. This is the default Multi-Record layout.

The Vertical layout repeats the records down the page.

If you choose Both, Corel Paradox repeats the records both across and down the page. This is the default Multi-Record layout for a form.

Label Fields

Gives you the option to use labeled fields or unlabeled fields. When this option is enabled, fields are included.

This option is unavailable in a tabular design because table frames automatically include field labels as column headings.

Style Sheet

Choose a style sheet from the Style Sheet list box to control the initial appearance of objects you put on the design document.


Design Layout dialog box (multi-value relationship)

Use the Design Layout dialog box to format the basic layout of a design document that has a data model that contains a multi-value relationship.

When you design a multi-table document, the options in the Design Layout dialog box are different than when you design a single-table document.

The Layout tab settings determine the appearance of the form.

The Detail Tables tab contains detail-table style options and multi-record layout options for the detail table. Click this tab to display options you can use to change the layout of the detail tables and of multi-record objects.

The Fields tab specifies which tables to use in the form and the fields to include from each table. Click this tab to display options you can use to change the fields in the layout of the design document.

By default, records from the master table are displayed one at a time and appear in the single-record style. Records from the detail table are displayed in a table frame.

Layout tab

Field Layout

Select how you want objects in single-record and multi-record styles displayed.

The By Columns layout displays objects in columns, down the page. This is the default layout.

The By Rows layout displays objects in rows, across the page.

Style

Use these options to select a layout for the master table.

•	Single Record style displays one record of the table at a time, in a free-form layout. Single Record is the default style for a form (and for a report if its data model contains a multi-value relationship.)

If you are designing a report with a table that contains very long memo fields, you might want to use a Single-Record style. Records in table frame and Multi-Record objects cannot be broken over pages of a report if the Breakable property on the Run time page is not enabled for the table frame or Multi-Record object. The Breakable property is set as the default.

•	Tabular style displays rows and columns just as if you were working with the table itself. You cannot choose this option when Nested is enabled.

This option is dimmed for reports with a 1 [image] M data model.

•	Multi-Record style displays several records of the table at a time. When you specify a multi-record layout, Corel Paradox displays a Multi-Record object in the Design Layout dialog box.

In a Multi-Record object, you view the fields of a record in the first record region and then specify whether you want repeated regions (each displaying an additional record) across and down the page. Use the Multi-Record options (Horizontal, Vertical, Both) to detail how you want the records repeated.

If you want to change the number of repeated regions, right-click the Multi-Record object in the design window, choose Properties and click the Record Layout tab.

If you are formatting a report with a 1 [image] M [image] M (or more) data model, or you click Multi-Record, make sure detail tables have very few records per set. If this occurs, return to the data model and reverse the direction of the links (converting 1 [image] M to M [image] 1). This lets you use group bands to break the data into sets rather than detail tables, and you can avoid tables and Multi-Record objects. You can also enable the run-time Breakable property on the record object of a Multi-Record object.

•	Blank style removes all fields from the design. The fields of the table are still available for manual placement (use the Field tool in the design window), but they are not automatically placed in any layout style.

When you create a design document by choosing a data model with a blank layout, it is different than creating a blank design document. When you choose a data model, and then choose a blank layout, the design document you create is associated with the data model and its fields are available for placement. A truly blank design document is not associated with any table.

You can return to the Data Model dialog box and add a data model to the blank design  by clicking Data Model Toolbar.

Fields Before Tables

When you enable Fields Before Tables, all fields of the table's current record appear before any objects that represent detail tables. Otherwise, detail tables appear first.

Nested

When you create a form and enable Multi-Record for the Master Table Style, or if your data model has a 1 [image] M [image] M relationship, Corel Paradox enables the Nested check box. If you enable Nested, Corel Paradox displays the master records in a Multi-Record object and places the detail-record object inside the master Multi-Record object. The details are "nested" within the master.

Label Fields

Gives you the option to use labeled fields or unlabeled fields. This option is unavailable in a tabular design.

Style Sheet

Use a style sheet to control the initial appearance of objects you put on the design document.


Fields tab (Design Layout dialog box)

Click the Fields tab in the Design Layout dialog box to specify the fields you want to use in the layout of a design document.

Table

Choose a table from this list box to see the fields that are being used from that table or from any table in a single-value relationship with that table.

Reset Fields

This button adds all fields from the table to the Selected Fields list box.

Selected Fields

The fields from the table you selected are shown in the Selected Fields list box. When you open a new form, you always start with all fields. When you open an existing design document, only the fields previously included in its design appear in the Selected Fields list.

Corel Paradox includes all fields from this list box in the design. Fields appear in the order they are shown in this list box.

Order

To change the order of the fields in the list box, choose the field you want to move and use the Change Order arrows.

Remove Field

Choose a field from the Selected Fields list box and click Remove Field.

All changes you make in the design layout can be modified in the design window. You can replace removed fields there by using the Field tool. The Design Layout dialog box gives you the opportunity to make choices before you open the design window.


Detail Tables tab (Design Layout dialog box)

Click the Detail Tables tab in the Design Layout dialog box to specify the layout of the detail tables in a design document.

Detail Table Style

Specifies the type of object used to represent tables that have nothing nested in them. Table uses a table-frame object; whereas Record uses a multi-record object.

Multi-Record Layout

If your layout contains multi-record, specifies whether to arrange the records horizontally, vertically, or both. The default for forms is Both.

Your layout contains multi-record objects if its Detail Table Style is set to Record, if it has a Nested design, or if the Master Table Style is set to Multi-Record.


Colors page (Developer Preferences dialog box)

Use the Colors page of the Developer Preferences dialog box to specify how you want the different elements of your code to appear in an Editor window. You can specify both colors and text attributes. Preferences you set apply in the Editor, Library, Script, and SQL Editor windows.

Elements

Select a code element that has the color or text attributes you want to specify.

Color

To specify colors, use the color grid to set the foreground (FG) and background (BG) colors for the element.

If you prefer to use a mouse, simply click a color to select it as the foreground color, or right-click to select a background color.

If you prefer to use the keyboard, use the arrow keys to choose a color. Press F to set the foreground color, or B to set the background color.

Use Default

If a Use Default check box is enabled, the editor will use your Windows system colors for whatever is enabled (the foreground, the background, or both) to display a code element. Disabling either option restores the color you selected previously or, if no color has been previously selected, sets the code element to the Windows system color.

To change the Windows system colors, use Control Panel (under Settings on the Windows Start menu).

Text Attributes

If you want a code element to appear in bold, italic, or underlined, choose the code element from the Elements list, and then click the attribute(s) you want.


Display page (Developer Preferences dialog box)

Use the Display page of the Developer Preferences dialog box to set various editor-display preferences. Preferences you set apply in the Editor, Library, Script and SQL Editor windows.

Keystroke Mapping

Use this list box to select from three sets of keystrokes.

The editor's default uses key bindings that match CUA mappings (with some WordStar additions). This is closest to the keystroke mappings in the Corel Paradox 5.0 Editor.

BRIEF uses key bindings that match most of the standard BRIEF keystrokes.

Epsilon uses key bindings that match a large part of the Epsilon editor.

When you are in an Editor window, you can press SHIFT+F1 to see the keystrokes for the current keymap selection.

Options	When selected

Prompt To Save	The editor will prompt you to save changes when you close the editor window or run a form. (The contents of an editor window are saved to the form. To save to disk all the changes made in the editor windows, save the form.)

BRIEF Cursor Shapes	Uses an underline instead of a vertical cursor in insert mode.

Show Sidebar	Shows the sidebar with breakpoint symbols.

Custom Size	Opens the next editor window to the size of the active editor window (if one is open), or the size of the last editor window that was open.

Hints On Status Bar	Shows Toolbar help messages on the Status Bar. If not enabled, displays only editor messages.

Font

Use the Name and Size list boxes in the Font panel to choose a font name and size. The editor uses only monospaced screen fonts, such as Courier. A sample of what you choose appears in the Sample section of the dialog box.


Editor page (Developer Preferences dialog box)

Use the Editor page of the Developer Preferences dialog box to customize the behavior of the editor. Preferences you set apply in the Editor, Library, Script and SQL Editor windows.

Options	When selected

Auto Indent	Indents the next line to the indent of the current line, when you press ENTER.

Backspace Outdents	Aligns the insertion point to the previous indent level (outdents it) when you press BACKSPACE, if the insertion point is on the first character of a line.

Insert Mode	Inserts text at the insertion point without overwriting existing text. Otherwise, text is overwritten. (Use the INSERT key to toggle Insert Mode in the Editor without changing this setting.)

Use Tab Character	Inserts a true tab character (ASCII 9). Otherwise, inserts spaces instead. If Smart Tab is enabled, this option is off.

Cursor Through Tabs	Enables the arrow keys to move uniformly (column by column) through tabs. Otherwise, the insertion point jumps several columns when you move it over a tab.

Smart Tab	Indents to the next character of the previous line. This option is especially useful when you want to create tabular-looking code.

Group Undo	Undoes as a group your last editing  command (for example, a typed character or a overstrike) and all preceding commands of the same type, when you click Edit, Undo. A "group" starts the last time ENTER was pressed. If Group Undo is disabled, Edit, Undo undoes a single command or keystroke.

Undo After Save	Enables you to perform an Edit, Undo command after a file has been saved.

Persistent Blocks	Keeps marked blocks selected even when the insertion point is moved, until a new block is selected.

Overwrite Blocks	Replaces a marked block of text with whatever is typed next. If Persistent Blocks is also enabled, text you enter is added to the selected block.

Cursor Beyond EOF	Lets you move the insertion point beyond the end-of-file character.

Cursor Beyond EOL	Lets you move the insertion point past the last column of the line.

Use Default

Click this button to set the options to the default of the current keystroke mapping [image] default, BRIEF, or Epsilon. (Select the keyboard mapping you want on the Display page of the Developer Preferences dialog box.)

Tab Size

Specifies the number of columns you want between tab stops.

Block Indent

Specifies how many columns to indent and outdent a block.

Undo Limit

Specifies the number of undo actions to store before undo information is discarded.


Explorer page (Developer Preferences dialog box)

Use this page of the Developer Preferences dialog box to set your preferences for the Object Explorer. (In a Form Design window, the Object Explorer lists methods, events, properties, and optionally, shows the object tree. In Library and Script windows, it lists methods and events. In a Report Design window, it lists bands and design objects and, optionally, shows the object tree.) Click the options you want.

Method/Event Sorting

You can choose how you want methods and events sorted in the Object Explorer:

Without Grouping	Sort a mixture of all custom methods, built-in event methods, and ActiveX controls in alphabetical order.

Sort In 3 Groups	Sort in three groups: methods with custom code on top, followed by ActiveX Controls, followed by built-in event methods in alphabetical order.

Sort In 2 Groups	Sort in two groups: methods with custom code on top, followed by a mixture of built-in event methods and ActiveX controls in alphabetical order.

Sort By Categories	Sort in alphabetical order by category (for example, Font).


General page (Developer Preferences dialog box)

You can control many elements in the integrated development environment (the Editor, the Debugger, the Object Explorer, the ObjectPAL Quick Lookup, and design windows) by setting your preferences in the Developer Preferences dialog box. Click the options you want to enable them.

ObjectPAL Level

The ObjectPAL Quick Lookup and the Object Explorer can be set to display all appropriate elements of the ObjectPAL language or only a subset of the elements (the default setting). This setting is for display purposes and does not affect the writing or functioning of code. You can temporarily override the setting you choose here by enabling or disabling the Show All box in the ObjectPAL Quick Lookup.

Enable the Beginner check box to have the ObjectPAL Quick Lookup and the Object Explorer show only a subset of the ObjectPAL language [image] just as much as a beginner might need. Even if you have this option selected, you can still use any ObjectPAL language element in code.

Enable the Advanced check box to have the ObjectPAL Quick Lookup and the Object Explorer show all the elements in the ObjectPAL language.

Debug Environment

The Debug environment consists of the Debugger window and the Watches, Breakpoints, Tracer, and Call Stack windows.

Enable Open In Design to have Corel Paradox keep the Debugger environment open in a design window. Enable Open In Run to have Corel Paradox open the Debugger whenever you run a form.

If you don't enable either of these options, the Debugger environment opens whenever a breakpoint is hit, and it closes when you return to the design window.

Click Edit, Save Debug State in the Debugger environment to save the current size, location, and state (for example, minimized), of each of these windows.

Debugger Settings

•	The Enable CTRL+ BREAK setting halts execution of a form and returns you to the design window when you press CTRL+ BREAK.

If you also enable Program, Compile With Debug in the editor, you can suspend execution and run the Debugger by pressing CTRL+ BREAK, just as if a breakpoint had been encountered.

When this option is disabled, CTRL+ BREAK has no effect.

•	The Enable Debug Statement setting lets you use the debug( ) statement to define your own breakpoints in methods and procedures.

In addition to enabling this option, you must enable the Program, Compile With Debug command in the Editor for the debug( ) statement to work.

When this option is disabled, or if Program, Compile With Debug is disabled, debug( ) statements are ignored.

This option has two additional advantages: (1) Corel Paradox provides more detailed error information, even if you never use a debug( ) statement; and (2) debug( ) statements are saved with your source code; therefore, you do not have to keep resetting them as you would a breakpoint.

Show Developer Menu

Extends your choice of menu options in the Form Design window. This includes the Program menu and extra commands on the View and Tools menus [image] commands that otherwise appear only in the Editor or Debugger menus.


Directory Browser

Use the Directory Browser to select a directory.

Directories and Drive (Or Alias)

Choose a drive or alias from the Drive (Or Alias) list box, then choose a directory from the Directories list box.


Editor Print Layout dialog box

Use the Editor Print Layout dialog box to set the margins of your printed page and choose whether to print line numbers and page headers.

Margins (in characters)

Specify the distance (in characters) for your page margins. Click Default to reset the margins back to the default margins.

Show Line Numbers

Enable this option to include line numbers in your report.

Show Page Header

Enable this option to include a page number header for your report.


Empty dialog box

Use the Empty dialog box option to remove all records from a table.

When you click Empty, Corel Paradox displays a message asking you to confirm the emptying operation for each table. Click Yes to remove all records from the table or No to cancel the operation.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory. All files of the selected type in that directory appear in the Look In list box.

If the directory has an alias, choose it from the Alias list box. The name of the directory appears in the Look In list box and its files appear in the File list box.

File Name

Type the name of the file to empty or select a file from the File list box below the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file based on the type shown in the Files Of Type list box. You can select more than one table.

Files Of Type

Displays the types of files you can use for the emptying operation you are performing.

Alias

If the directory has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Enter Password(s) dialog box

Use the Enter Password(s) dialog box to supply a password when Corel Paradox requests one, or to specify passwords to use for your Corel Paradox session.

The password you enter is added to Corel Paradox's password list. The password list contains all passwords that have been entered in the current Corel Paradox session. After you enter a specific password, you can gain access to any table that recognizes that password until you exit Corel Paradox.

You define passwords for Corel Paradox tables in the Create Table dialog box or the Restructure Table dialog box.

Corel Paradox releases all passwords when you exit the program. You can use the Enter Password(s) dialog box to release a password without exiting Corel Paradox.

Password

Type the password in the Password text box. Asterisks (*) represent the characters you type.

Add

Adds the password you typed in the Password text box to Corel Paradox's memory. When you click Add, the dialog box remains open to allow you to enter additional passwords for tables that you intend to open later in the session. Press Add each time you enter a password.

Remove

Deletes the password from Corel Paradox's memory. By default, if you have closed a password-protected table, you can open it again before you exit Corel Paradox without supplying the password again. If you click Remove, however, you must give the password the next time you open the table.

Use Remove when you want to open a new table but have exceeded the maximum number of passwords per session (if this occurs, you will be notified with an error message).

Remove All

Removes all passwords from Corel Paradox's memory. This means any table you have opened by using a password will again be protected.


Export <table> As dialog box

This dialog box specifies the type of file to create or modify with the export operation.

Export Format

The type of file to create or modify.


Export Data dialog box

The Export Data dialog box lets you specify the name, type, and other information about the table you are exporting and the file you are creating with the export.

To display Help for each page of this dialog box, click a tab, then press F1.

From

The table you are exporting, or the source file. You can type the path and name of the file, or you can choose it from the Select File dialog box. To display the Select File dialog box, click the button beside the text box.

From Type

The type of file you are exporting.

To

The name of the file you are creating by exporting the source file. You can type the path and name of the file, or you can choose it from the Select File dialog box. To display the Select File dialog box, click the button beside the text box.

To Type

The type of file you are creating by exporting the source file.

To Table

Specifications for the new table you are creating.

To Text

Specifications for the text file you are exporting.

To Fields

Specifications for the fixed-length text file you are exporting.

To Spreadsheet

Specifications for the spreadsheet file you are exporting.

Export

Creates a file of the type specified in the To Type list box. The file contains the data from the file specified in the From text box.


To Fields page (Export Data dialog box)

This page of the Export Data dialog box lets you supply field specifications for fixed-length text files. Corel Paradox uses these specifications to create the exported text file records and to break them into fields of the appropriate name, type, and length.

By default, Corel Paradox assumes the field types and lengths are the same as in the source table.

Field Name

Indicates the name of each source field, from left to right in the table. You cannot change this option.

Type

Indicates the type of each source field. You cannot change this option.

Start

The character column that the target field starts with, numbered from left to right, starting with one. For example, if the first field has a length of 20 and starts at one, the second field starts at 21.

Length

The number of characters the target field always contains in the text file.

Load Spec

Lets you load specifications that you saved earlier. When you click Load Spec, the Select File dialog box opens. You can browse to choose the specification table you want.

Save Spec

Lets you save the current specifications. The Save Export Specification As dialog box opens. You can choose an existing specification table to overwrite or create a new specification table.


To Spreadsheet page (Export Data dialog box)

This page of the Export Data dialog box lets you indicate whether to write field names as the first row of data.

Use First Row Of Data As Field Names

When enabled, this option indicates that the first row of the spreadsheet should be written with field names (column labels), not data.


To Table page (Export Data dialog box)

This dialog box provides specifications about the table you are creating with the export operation.

Table Options

These settings let you create a new table or modify an existing table. If the table specified in the To text box of the Export Data dialog box already exists, Create New Table is not available in the To Table page.

Overwrite Existing Table replaces the specified data with the exported data; whereas Append To Existing Table adds the exported data to the data already entered in the specified table.

Create New Table lets you create a new table with the specified name.

Auxiliary Table Options

These settings let you create temporary tables for troubleshooting purposes.

When enabled, Write Transfer Failures To PROBLEMS.db creates a table called Problems if errors occur during export. Likewise, Write Duplicate Key Records To KEYVIOL.db creates a table called Keyviol if records with duplicate key field values are found during export.

Display Table On Completion

When enabled, this setting tells Corel Paradox to open the new or modified table when the export operation is finished. Otherwise, the table remains closed.

Display Auxiliary Tables On Completion

When enabled, this setting tells Corel Paradox to open the Problems and Keyviol tables when the export operation is finished (if either was created). Otherwise, they remain closed.


To Text page (Export Data dialog box)

This page of the Export Data dialog box lets you specify delimiters and other information about the text file you are creating with the export operation. If you're exporting a fixed-length file, the only option available is Character Set.

Fields Separated By

Indicates the character used to separate fields in each record of the text file. Enabling Other allows you to enter your own character.

Fields Delimited By

Indicates the character, if any, used to delimit (enclose) fields in each record of the text file. Enabling Other allows you to enter your own character.

Delimited Fields

Indicates the type of field(s) enclosed by the delimiter character. The Text Fields Only option surrounds text fields with the delimiter character; whereas, the All Fields option puts delimiter characters around all fields.

Field Names

When Use First Row Of Data As Field Names is enabled, Corel Paradox writes field names out as the first row of data. Otherwise, no field names are written and data begin on the first row.

Character Set

Indicates whether to use OEM or ANSI  character mapping.

Files created in DOS-based applications, such as Edit, typically use the OEM character set. Files created in Windows applications, such as WordPad, typically use the ANSI character set.


Export Table dialog box

Use the Export Table dialog box to tell Corel Paradox the file you want to export.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to export or double-click on a file in the Look In list. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can export (Corel Paradox and dBASE).

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Field Filter dialog box

Use the Field Filter dialog box when you want to see and edit only those records that meet certain conditions.

Filter For <field name>

Type the conditions for the records you want to see.


File Browser

Use the File Browser to select files in other directories.

Directories and Drive (Or Alias)

Choose a drive or alias from the Drive (Or Alias) list box, then choose a directory from the Directories list box. The File Name list box displays the files in the directory you select.

File Name

The text box displays the file extension of the type of file for which you are browsing. Choose a file from the File Name list box.

File Types

The type of file for which you are browsing. You can choose a file type if there is more than one displayed in the list.


Document has changed. Save it?

You tried to close the active document or query before you saved changes you made to the file. Click Yes to save the file. Click No to close the file without saving your changes. Click Cancel to continue working with the file.


File Import dialog box

Use the File Import dialog box to tell Corel Paradox the file you want to import.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to import or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can import.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Newly created document. Save it?

You tried to close the active document or query before you saved the file. Click Yes to save the file. Click No to close the file without saving it. Click Cancel to continue working with the file.


Filter Tables dialog box

Use the Filter Tables dialog box to see and edit only those records that meet certain conditions. You can also use this dialog box to specify a secondary index to view records in a certain order.

Table List

If you are filtering a table, this list shows that table. If you are filtering a form or report, this list shows master tables in the data model. It also shows detail tables for multi-value relationships in the data model.

Order By

Enable the Order By check box to order records according to the selected index. The table's primary index is preceded by an asterisk (*). Double-click an index to change the fields that are shown and the arrangement of these fields in the Filters On Fields panel of this dialog box.

This option is not available for Reports; however, you can sort and group records in reports.

dBASE Index File

If the table is a dBASE table, type the name of the dBASE index to use to order the records. This will update the list of indexes shown above this text box.

Range

Specify a Range of values by using the Set Range For Index dialog box.

Range is available when the Order By check box is enabled and an index is selected. (For a dBASE table, the index must be a Unique index.)

Filters On Fields

Lists the fields in your table. Corel Paradox cannot filter BLOB fields, or the linking fields in the detail tables in multi-value relationships; therefore, these fields don't appear in the list.

Type the conditions for the records you want to see. For a given record to appear, the conditions specified in each field must all be true for that record.

More sophisticated conditions can be specified by using special keywords and symbols. You can use many of the same keywords and symbols to specify filters that you can use in queries to specify selection conditions.


Find dialog box (Editor)

Use the Find dialog box to find strings of text in your code.

Search For

Type the text you want to find.

Case Sensitive

Searches for the text exactly as you typed it, including capitalization.

Backward

Searches backward from the insertion point instead of forward.

Whole Words Only

Ignores partial matches.

Advanced Pattern Match

Uses Corel Paradox's extended wildcards.

Global Search

Searches all the form's code for the specified value.

Find

Click Find to begin searching for the specified value. If found, the matching string is highlighted. If you are using the default keymap, you can then press:

•	CTRL+A to find the next occurrence of the string.

•	CTRL+R to replace the selected text with the replacement value previously specified in the Find And Replace dialog box. If there is not a replacement value, the selected text is deleted.

•	CTRL+L to replace all occurrences of the string with the replacement value previously specified in the Find And Replace dialog box.


Find dialog box (SQL Editor)

Use the Find dialog box to find strings of text in your SQL statement.

Search For

Type the text you want to find.

Case Sensitive

Searches for the text exactly as you typed it, including capitalization.

Backward

Searches backward from the insertion point instead of forward.

Whole Words Only

Ignores partial matches.

Advanced Pattern Match

Uses Corel Paradox's extended wildcards.

Find

Click Find to begin searching for the specified value. If found, the matching string is highlighted. If you are using the default keymap, you can then press:

•	CTRL+A to find the next occurrence of the string.

•	CTRL+R to replace the selected text with the replacement value previously specified in the Find And Replace dialog box. If there is not a replacement value, the selected text is deleted.

•	CTRL+L to replace all occurrences of the string with the replacement value previously specified in the Find And Replace dialog box.


Find And Replace dialog box

Use the Find And Replace dialog box to search for and replace text (called a string) in a memo field or formatted memo field or in a text object in a design window.

Search For

Type the string to find.

Replace With

Type the replacement string (in ordinary searches) or the translation string (in Advanced Pattern Match searches).

Case-sensitive

Searches for the text exactly as you typed it, including capitalization.

Advanced Pattern Match

Uses an extended list of wildcards in the search.

Find

Begins the search. Corel Paradox finds the first matching value, highlights it, and displays the message "Match found" in the Status Bar. If the value does not exist, Corel Paradox displays the message "No match found" in the Status Bar.

Replace

Changes the string to the value you typed in the Replace With text box. Corel Paradox replaces the value and then moves to the next occurrence of the Search For value.

If you do not want to replace the string, click Find again. Corel Paradox moves on to the next occurrence of the Search For value.

Replace All

Replaces all occurrences of the Search For value.


Find And Replace dialog box (Editor)

Use the Find And Replace dialog box to change strings of text in your code.

If you have used the Find And Replace dialog box in the current session, you can press CTRL+R while in the Editor to perform a find and replace based on the current values and settings in the Find And Replace dialog box. (CTRL+R works only if you're using the default keymap.)

Search For

Type the text you want Corel Paradox to find.

Replace With

Type the replacement text.

Case Sensitive

Searches for the text exactly as you typed it, including capitalization.

Backward

Searches backward from the insertion point instead of forward.

Whole Words Only

Ignores partial matches.

Advanced Pattern Match

Uses Corel Paradox's extended wildcards.

Global Search

Searches all methods and procedures for the specified value.

Find and Replace All

After you specify the string to search for and the replacement text, click Find to begin the search or Replace All to replace all occurrences of the string with the new text. If you click Find, the Editor moves to the matching string and selects it. You can then press (if you're using the default keystroke mapping):

•	CTRL+A to find the next occurrence of the string.

•	CTRL+R to replace the selected text with the replacement value specified in the Find and Replace dialog box. If there is not a replacement value, the selected text is deleted.

•	CTRL+L to replace all occurrences of the string with the replacement value specified in the Find and Replace dialog box.


Find And Replace dialog box (SQL Editor)

Use the Find And Replace dialog box to find and replace text strings in your SQL statement.

If you have used the Find And Replace dialog box in the current session, you can press CTRL+R while in the Editor to perform a find and replace based on the current values and settings in the Find And Replace dialog box.

Search For

Type the text you want to find (or paste it from the Clipboard).

Replace With

Type the text you want to insert (or paste it from the Clipboard).

Case Sensitive

Searches for the text exactly as you typed it, including capitalization.

Backward

Searches backward from the insertion point instead of forward.

Whole Words Only

Ignores partial matches.

Advanced Pattern Match

Uses Corel Paradox's advanced wildcard operators.

Find and Replace All

After you specify the string to search for and the replacement text, click Find to begin the search, or Replace All to replace all occurrences of the string with the new text. If you click Find, the Editor moves to the matching string and selects it. You can then press (if you're using the default keystroke mapping):

•	CTRL+A to find the next occurrence of the string.

•	CTRL+R to replace the selected text with the replacement value specified in the Find and Replace dialog box. If there is not a replacement value, the selected text is deleted.

•	CTRL+L to replace all occurrences of the string with the replacement value specified in the Find and Replace dialog box.


Found A Match dialog box

Corel Paradox displays the Found a Match dialog box when it locates the value you want to replace. Use this dialog box to confirm whether you want to replace the value, replace all occurrences of the value, or skip an occurrence without replacing the value.

Skip This Occurrence

Indicates that you do not want to replace the value. When you click OK, Corel Paradox moves to the next occurrence of the value.

Change This Occurrence

Indicates that you want to replace this occurrence of the value. When you click OK, Corel Paradox replaces the value and moves to the next occurrence.

Change All Occurrences

Indicates that you want to replace all occurrences of the value.


Go To Page dialog box

Use the Go To Page dialog box to move through the pages of a form or report. Type the page number you want to go to or use the scroll bar.


Import dialog box

The Import dialog box lets you choose how to import text files, with or without using the Text Import Expert.

Import

Click Import to open text, spreadsheet, and database files into a Corel Paradox or dBASE table without using an Expert. Import displays the File Import dialog box to allow you to choose the file you want to import.

Text Import Expert

Click Text Import Expert for expert help when you import a text file into a Corel Paradox or dBASE table. You can use the Text Import Expert to open files with fields indicated by columns of fixed length or with fields delimited by commas or other separator characters.

HTML Import Expert

Click HTML Import Expert for expert help when you import an HTML table into a Corel Paradox table. The expert will let you create a new table for the data or append the data to an existing table.


Import Data dialog box

The Import Data dialog box lets you specify the name, type, and other information about the file you are importing into a table and about the table you are creating with the import.

To display Help for each available page (tab) of this dialog box, click a tab and then press F1.

From

The file you are importing into a table, or the source file. You can type the path and name of the file, or choose the file from the Select File dialog box. To display the Select File dialog box, click the button beside the text box.

From Type

The type of file you are importing into a table.

To

The name of the table into which you are importing the source file. You can type the path and name of the file, or choose the file from the Select File dialog box. To display the Select File dialog box, click the button beside the text box.

To Type

The type of table into which you are importing the source file: Corel Paradox (.DB) or dBASE (.DBF).

To Table

Specifications for the table into which you are importing the source file.

From Text

Specifications for the text file you are importing.

From Fields

Specifications for the fixed-length text file you are importing.

From Spreadsheet

Specifications for the spreadsheet file you are importing.

Only the appropriate pages for the type of import you are doing are available for selection.

Import

Adds the data in the source file to a table of the type specified in the To Type list box. The imported data can either create a new table or replace or add to data in an existing table.


Inspect dialog box;ObjectPAL code, debugging;Debugger;variables
Inspect dialog box

Use this dialog box to specify the variable you want to inspect when execution is suspended at a breakpoint.

Type the name of the variable, and click OK. A second dialog box shows you the value of that variable. Change the value in the second dialog box, and click OK.

If you chose a variable before clicking Inspect, or if the insertion point is in or near a variable, only the second dialog box appears to display the value of your variable.


From Fields page (Import Data dialog box)

This page of the Import Data dialog box lets you supply field specifications for fixed-length text files. Corel Paradox uses these specifications to interpret the imported text file records and to break them into fields of the appropriate name, type, and length.

By default, Corel Paradox assumes there is one field, alpha, in the first column of the table and that it has a length of 255 characters.

Field Name

Indicates the name of each target field, from left to right in the table.

Type

Indicates the type of each target field.

Start

The character column the source field starts with, numbered from left to right, starting with one. For example, if the first field has a length of 20 and starts at one, the second field starts at 21.

Length

The number of characters you want Corel Paradox to read for the source field.

Load Spec

Lets you load specifications that you saved earlier. When you click Load Spec, the Select File dialog box appears. You can browse to choose the specification table you want.

Save Spec

Lets you save the current specifications. The Save Import Specification As dialog box is displayed. You can choose an existing specification table to overwrite, or create a new specification table.


From Spreadsheet page (Import Data dialog box)

This page of the Import Data dialog box lets you specify a range of spreadsheet data to import. You can also indicate whether to use the first row of data as the field names.

Spreadsheet Range

Type the 2-D or 3-D range of data to import, or click <all> to import all data in the spreadsheet. Data from successive pages appears below data from the previous page in the destination table.

You should not import multiple pages unless they all have the same number and type of fields. If multiple pages with different organizations are forced into a single table, all of the fields could end up as alpha fields. In addition, there can be only one set of field names; therefore, data from pages beyond the first will be in columns whose names do not describe the data accurately.

Use First Row Of Data As Field Names

Indicates that the first row in the import range is to be used as field names, not data.


From Text page (Import Data dialog box)

This page of the Import Data dialog box lets you specify delimiters and other characteristics for the text file you are importing. If you're importing a fixed-length file, the only setting available is Character Set.

Fields Separated By

Indicates the character used to separate fields in each record of the text file. Enable Other to specify your own character.

Fields Delimited By

Indicates the character, if any, used to delimit (enclose) fields in each record of the text file. Enable Other to specify your own character.

Delimited Fields

Indicates the type of field(s) enclosed by the delimiter character. If you choose Text Fields Only, all text surrounded by the delimiter character (such as quotes) will be interpreted as text. If you choose All Fields, delimiter characters will be ignored when the field type is determined.

Field Names

If the first row in the text file contains field names, not real data, enable this check box. Corel Paradox uses the values in that row as the field names of the target table. Otherwise, Corel Paradox constructs default names. You can change these names later by restructuring the table.

Character Set

Indicates whether to use OEM or ANSI character mapping.

Files created in DOS-based applications, such as Edit, typically use the OEM character set. Files created in Windows applications, such as WordPad, typically use the ANSI character set.


To Table page (Import Data dialog box)

Provides specifications about the table you are creating or modifying with the import operation.

Table Options

These settings let you create a new table or modify an existing table. If the table specified in the To text box of the Import Data dialog box already exists, Create New Table is not available in the To Table page. Conversely, if the table does not exist, the second Overwrite and Append are not available.

Overwrite Existing Table replaces the specified data with the imported data; whereas, Append To Existing Table adds the imported data to the data already entered in the specified table.

Create New Table lets you create a new table with the specified name.

Auxiliary Table Options

These settings let you create temporary tables for troubleshooting purposes.

When enabled, Write Transfer Failures To PROBLEMS.db creates a table called PROBLEMS.db if errors occur during export. Likewise, Write Duplicate Key Records To KEYVIOL.db creates a table called KEYVIOL.db if records with duplicate key field values are found during export.

Display Table On Completion

When enabled, this setting tells Corel Paradox to open the new or modified table when the import operation is finished. Otherwise, the table remains closed.

Display Auxiliary Tables On Completion

When enabled, this setting tells Corel Paradox to open the Problems and Keyviol tables when the import operation is finished (if either was created). Otherwise, they remain closed.


Insert Object dialog box

Use this dialog box to insert a linked or embedded object in an OLE container, a Corel Paradox OLE field or a design object.

Create New

Creates a new object to insert in the OLE container.

Object Type

Displays the different types of objects you can create.

Create from File

Inserts a copy of a file in the OLE container.

File	Type the file name of the file you want to copy into the OLE container.

Browse	Lets you browse through the directory tree to find a file.

Link	If enabled, inserts a linked object. A linked object is actually a pointer to data somewhere outside the OLE container. When you insert a linked object in an OLE container, changes you make to the object are actually made to the source of the object.

If not enabled, inserts an embedded object. When you insert an embedded object in an OLE container, the data are actually copied into the OLE container, and no relationship is maintained with the source of the data.

Display As Icon

Displays the object as an icon. For example, assume you want to embed a graphic image and do not want to see the image in the table or form. Enable this check box to see the graphic application's icon instead of the image itself.

Change Icon

This button is visible only if Display As Icon is enabled. Changes the icon (and its label) that is displayed in the OLE container.

Result

Explains the result of using the selected options.


Layout Multi-Record Object dialog box

Use this dialog box to change the layout of a multi-record object that is bound to a table.

The Show Layout and Show Fields buttons control the options shown in this dialog box.

Show Layout

Displays the options you can use to change the layout of the multi-record object.

Object Layout

Specifies how fields in single-record and multi-record styles will be displayed. By Columns displays objects in columns, down the page. (This is the default layout.) By Rows displays objects in rows, across the page.

Label Fields

Gives you the option of using either labeled fields or unlabeled fields.

Show Details

Shows records from the detail table in the multi-record object. This check box is available only if some fields from the detail table appear in the Selected Fields list box (described below).

The following fields are available only if the Show Details checkbox is enabled.

Detail Table Style

Specifies the type of object used to represent detail tables.

Table

Specifies a table-frame object.

Record

Specifies a multi-record object.

Multi-Record Layout

Specifies whether the records will be arranged horizontally, vertically, or both in tables that contain multi-record objects.

Fields Before Tables

Displays records from the master table above those for the detail table.

Show Fields

Click this button to change the fields that are used in the design document and the order in which they are presented.

Table

Displays the name of the table (and of its detail tables) to which this multi-record object is bound.

Reset Fields

Adds all fields from the selected table to the Selected Fields list box.

Selected Fields

Displays the fields from the table. Corel Paradox includes all fields from this list box in the design. Fields appear in the design in the order they are shown in this list box

Order

Allows you to change the order of the fields in the list box. Choose a field from the Selected Fields list and use the Change Order arrows to move it up or down.

Remove Field

To remove a field displayed in the Selected Fields list box, choose the field from the list and click Remove Field.

Preview Of The Multi-Record Object

A preview of a single record from the multi-record object you are designing appears in the dialog box. As you make changes to the design, the preview changes.


Links dialog box

Use this dialog box to modify the links in OLE containers, such as Corel Paradox OLE fields and design objects.

Links

This list box displays, for each link, the path and file name of the source, the type of object, and the update property setting.

Source

Displays the path and file name of the source of the selected link.

Type

Displays the type of file to which the object is linked.

Update

Specifies how the selected links will be updated. Automatic updates the appearance of linked objects automatically; whereas Manual updates the appearance of linked objects only when you choose to do so by clicking Update Now.

Update Now

Updates the contents of the selected links.

Open Source

Opens the source files of selected links in the server application.

Change Source

Changes the source file of selected links. Corel Paradox opens the Change Source dialog box.

Break Link

Makes the object static. It can no longer be edited or updated.


Locate And Replace dialog box

Use the Locate And Replace dialog box to move to a particular value in a field and to change that value.

When you click OK, Corel Paradox finds the first occurrence of the value you want to replace and displays the Found A Match dialog box in which you can choose to skip the occurrence, change the occurrence, or change all occurrences.

You get improved performance if the field you use for the Locate operation has an index. Performance is further improved if the Case-Sensitive setting of the index and of the Locate operation match.

Value

Type in the value you want to change.

Replace With

Type in the new value you want.

Case-Sensitive

Searches for the text exactly as you typed it, including capitalization.

Exact Match

Ignores fields that contain the value as a substring.

@ and ..

Lets you use either or both of these wildcard operators in your search: @ stands for any character; and .. stands for any number of characters, including none.

Advanced Pattern Match

Uses an extended list of wildcards in the search.

Field

Choose the field that contains the value you want to locate and replace.


Locate Field dialog box

Use the Locate Field dialog box to find a particular field in a table. This feature is especially useful if you are working on a large table with many fields. It is sometimes faster than using the scroll bars or pressing TAB repeatedly.

Fields

The Fields list box shows all the table's fields. Choose the field you want, then click OK to move to that field.


Locate Record Number dialog box

Use the Locate Record Number dialog box to enter the record number of the record to which you want to move.

Locate Record Number

Type the number of the record you want to locate.


Locate Value dialog box

Use the Locate Value dialog box to move to a particular value in a field.

When you click OK, Corel Paradox moves to the first occurrence of the value. To move to the next occurrence, click Record, Locate Next or click Locate Next on the Toolbar.

If no values match, or after all matching values have been found, Corel Paradox displays the message "[value] was not found" on the desktop Status Bar.

You can only locate values from this box. If you want to replace values, click Edit Data on the Toolbar or press F9 to move into Edit mode, and then click Record, Locate, Replace to open the Locate And Replace dialog box.

Field

Choose the field in which the value is to be found.

Value

Type in the value you want to locate.

Case-sensitive

Searches for the text exactly as you typed it, including capitalization.

Exact Match

Tells Corel Paradox not to treat pattern characters as wildcards.

@ and ..

Lets you use either or both of these wildcard operators in your search: @ stands for any character; and .. stands for any number of characters, including none.

Advanced Pattern Match

Uses an extended list of wildcards in the search.

 Tip

·	You get improved performance if the field you use for the Locate operation has an index. Performance is further improved if the Case-Sensitive setting of the index and of the Locate operation match.


Lookup Help dialog box

When you define table lookup for a table with Help And Fill, and then press CTRL+ SPACE when resting in the lookup field in Edit mode, the Lookup Help dialog box is displayed.

The contents of this dialog box vary according to the way you have defined the lookup table and field. It shows the lookup field you are filling plus the related fields if you requested them.


Method List dialog box

The Method List dialog box displays all of a form's methods that contain custom code. To load one of the methods in the Debugger, choose the method from the Method list and click OK.


Move Help dialog box

Use the Move Help dialog box to move a detail record to a new master record.

Move Help is available only in fields for which a one [image] many relationship or a referential-integrity relationship has been defined.

The entire master table appears in the Move Help dialog box.

Click on the new master record to select it from the master table that is displayed and click OK. The selected detail record is now assigned to the new master record.


New Form dialog box

Use this dialog box to create a new form.

Click one of the following buttons to create a new form.

Blank

Creates a new form that is not bound to a table and contains no design objects other than a single empty page.

Form Expert

Creates a new form using the Form Expert.

Data Model / Design Layout

Creates a new form using the Data Model and Design Layout dialog boxes. These dialog boxes provide options to give your form a data model and to choose the primary design objects that are used to work with the tables in the data model.


New Method dialog box

Type a name for the new method you want to create and click OK.


New Report dialog box

Use this dialog box to create a new report using one of four methods.

Click one of the following buttons to create a new report.

Blank

Creates a new report that is not bound to a table and contains no design objects other than the report header and footer, page header and footer, and record band.

Report Expert

Creates a new report using the Report Expert.

Label Expert

Creates a report that is designed to be printed on mailing labels.

Data Model / Design Layout

Creates a new report using the Data Model and Design Layout dialog boxes. These dialog boxes provide options to give your report a data model and to choose the primary design objects that are used to work with the tables in the data model.


New Table dialog box

Use this dialog box to create a new table using one of two options.

Blank

Creates a new table from scratch.

Table Expert

Creates a new table using the Table Expert. The expert lets you pick and choose from predefined fields to create your table.


New File dialog box

Use this dialog box to create a new file. You can create any kind of Corel Paradox file, and you can choose whether to do so with the help of a Corel Paradox Expert or on your own.

The File New dialog box is divided into two pages, Create New and Work On.

Click the Work On tab to see lists of projects you've worked on recently in Corel Paradox or any of the Corel Suite applications. Choose a project from the list to launch the application and open the project file.

Click the Create New tab to open a new file, using the following specifications:

Categories

Use the Categories list box to choose what kind of file you want to create.

Corel Paradox	Creates any Corel Paradox file of your choice, including forms, reports, tables, and queries. If you choose to open a form or report this way, Corel Paradox will open a blank document.

You can also choose from several task-oriented forms to help you organize your household inventories, create business faxes and more. Corel Paradox provides several projects for you, or you can add your own to the list.

Corel Paradox Experts	Launches your choice of the Corel Paradox Experts. You can have an Expert's help to create a new form, import data from an HTML table, or many other tasks.

Other Applications	Listed by name. You can launch Corel Presentations, Corel QuattroPro, or Corel WordPerfect 8 and create a new file.

Favorites	After you've used the dialog box, you may want to add some of these option to a Favorites list for quick access. If you do, you'll see a Favorites option in the list box as well.

Create

Creates a new file of the type you choose.

Copy To Favorites

Adds the option you choose to a list of Favorites. This feature helps you eliminate steps if you often create new files of the same type.

Close

Closes the New File dialog box

Option	Desciption

Project Properties	Displays a description of what will happen when you click Create.

Add Project	Lets you add a new project to the Corel Paradox project list or to add another document that contains a file you need.

Copy Project	Lets you copy an existing project to allow you to modify the project without losing the original.

Move Project	Lets you move documents to different locations and different project folders.

Remove Project	Deletes an existing project.

Create Category	Lets you create a new category for your own specialized project. The new category will appear in the Categories list box.

Rename Category	Lets you give another name to an existing category.

Remove Category	Deletes an existing category.

Show This Dialog	Displays this dialog box every time you start Corel Paradox to allow you to go directly to the project you want to access.

Personal Information	Accesses the Corel Paradox Address Book.


Constants page (ObjectPAL Quick Lookup)

The Constants page of the ObjectPAL Quick Lookup lists constant types and the available constants in alphabetical order. Choose a constant type to display the constants that are available.

F1 Help

Select any constant type and press F1 to get help on that type. If there is only one Help topic for the selected item, pressing F1 takes you directly to that topic. If Help contains multiple topics for the selected word, you'll see a list of topics. Choose a topic from the list and click Display.

Navigation

When the focus is on a list box, you can type a letter to move to the first item that starts with that letter.

Constant Types

Lists ObjectPAL constant types. Choose a type to display the constants that are available.

Constants

Lists the constants that are available for the selected constant type. You can insert these constants into your code. Choose a constant and click Insert Constant.

Insert Constant

Inserts the selected constant into your own code at the insertion point. Click Insert Constant and click OK.

Show All

Enable Show All to see all available elements in the ObjectPAL language; otherwise, ObjectPAL will display a Beginner's sub-set of elements.

You can set this preference permanently in the Developer Preferences dialog box (Edit, Developer Preferences). On the General page, set your ObjectPAL level to Beginner (the default) or Advanced. (Code executes exactly the same way at either level, and you can use advanced elements in code even when the level is set to Beginner.)


Objects And Properties page (ObjectPAL Quick Lookup)

The Objects And Properties page of the ObjectPAL Quick Lookup lists objects and their properties in alphabetical order. Choose an object name to display the properties for that object.

F1 Help

Select any object or property name and press F1 to get help on that object or property. If there is only one Help topic for the selected item, pressing F1 takes you directly to that topic. If Help contains multiple topics for the selected word, you'll see a list of topics. Choose a topic from the list and click Display.

Navigation

When the focus is on a list box, you can type a letter to move to the first item that starts with that letter.

Objects

Lists ObjectPAL objects. Choose an object name to display its properties.

Properties

Lists properties for the selected object. Choose a property from the Properties list to see valid values in the Values list box.

Values

Lists valid values for the property you selected.

Insert Object

Inserts the object name you chose into your own code at the insertion point. Click Insert Object and click OK.

Insert Property

Inserts the selected property name into your own code at the insertion point. Click Insert Property and click OK.

Show All

Enable Show All to see all available elements in the ObjectPAL language. Otherwise, you'll see a Beginner's sub-set of elements.

You can set this preference permanently in the Developer Preferences dialog box (Edit, Developer Preferences). On the General page, set your ObjectPAL level to Beginner (the default) or Advanced. (Code executes exactly the same way at either level, and you can use advanced elements in code even when the level is set to Beginner.)

The Show All option in the ObjectPAL Quick Lookup temporarily overrides the preference you set in the Developer Preferences dialog box.


Types And Methods page (ObjectPAL Quick Lookup)

The Types And Methods page of the ObjectPAL Quick Lookup lists all object types and their methods and procedures in alphabetical order.

F1 Help

Select any type or method name and press F1 to get help on that type or method. If there is only one Help topic for the selected item, pressing F1 takes you directly to that topic. If Help contains multiple topics for the selected word, you'll see a list of topics. Choose a topic and click Display.

Navigation

When the focus is on a list box, you can type a letter to move to the first item that starts with that letter.

Types

Lists ObjectPAL types. Choose a type name to display its methods and procedures.

Methods And Procedures

Lists methods and procedures for the selected type. Methods are marked with an "M" and procedures are marked with a "P." The parameter list for the method or procedure appears in a prototype panel below the two lists.

Insert Type

Inserts the selected type name into your own code at the insertion point. Click Insert Type and click OK.

Insert Method

Inserts the selected method or procedure name into your own code at the insertion point. Click Insert Method and click OK.

Show All

Enable Show All to see all available elements in the ObjectPAL language. Otherwise, you'll see a Beginner's subset of elements.

You can set this preference permanently in the Developer Preferences dialog box (Edit, Developer Preferences). On the General page, set your ObjectPAL level to Beginner (the default) or Advanced. (Code executes exactly the same way at either level, and you can use advanced elements in code even when the level is set to Beginner.)


Open File dialog box

Use the Open File dialog box to specify the file you want to open.

Look In

By default, this list box displays the name of the working directory. You can switch to another directory by choosing it from the list box or browse for it in the directory tree below the list box. The Folder list box on the right side of the expert shows the folders contained by the directory you choose.

To narrow your search further, double-click a folder in the Folder list box to see a list of its files. Only files of the type specified in the For Type list box are shown. Choose a file name from the list, and click Open or Open As Copy.

For Type

Choose the type of file you want to open from the For Type list box. The available types are table, data model, form, report, query, SQL file, script, library, and application.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Name

Type the name of the file, or choose a name from the File list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the For Type list box.

Open

Opens the file you choose.

Open As Copy

Opens a copy of the file you choose.

Cancel

Closes the Open File dialog box.


Page Setup dialog box

When you open the Page Setup dialog box for an existing form or report, Corel Paradox displays the design size and orientation of the current printer defaults. If the form or report was designed for printer output, a list box that contains the paper sizes available on the current printer is displayed. If the size of your document matches one of these paper sizes, it will be highlighted. If the form or report was designed for screen display, the list box will show the size of the document in screen pixels.

If a new document is being designed for printer output, the size and orientation will match the current, default settings of your printer. If a new document is being designed for screen display, the size and orientation will match the resolution and orientation of your screen.

If you close the dialog box with OK, you might change the page size and orientation of the form or report design. If you close the dialog box with Cancel, no changes will be made.

Design For

Enable Printer or Screen. The custom sizes you specify in the other panels refer to this choice.

If you design for a printer, Corel Paradox makes available only fonts that are currently available either to your active printer or to both your printer and to the screen. This may limit your onscreen display, but it ensures a similar document for on screen viewing and printed output.

Corel Paradox also attempts to match on-screen the look of the printed output. This means that the screen fonts might not match the printer fonts exactly in height or width. Size-to-fit objects are sized based on the printer font sizes. On-screen, this might cause clipping or text objects that seem to wrap too soon, but on paper they will look correct. Be careful, when you design for a printer, that you do not cause unwanted clipping by sizing objects to a screen font.

Orientation

Enable Portrait or Landscape to change the way the document looks on-screen during design. (Corel Paradox shows you a sample of the selected page orientation.) Set the orientation of the paper for printing in the Printer Setup dialog box when you print.

The orientation setting in the Page Layout dialog box sets the orientation of the report design in Corel Paradox, but it does not force the printer to use the selected orientation. It does change the current printer settings, but, if you print the report at a later time and the printer setup has changed, the printer settings will take precedence over the report design.

To ensure that the report prints with the same orientation you've selected in Corel Paradox, change the orientation in the Printer Setup dialog box to match the settings in the Page Layout dialog box.

This option is unavailable when you are designing for the screen. When you design for the screen, you must use the default orientation of the screen. The Paper Sizes list box changes to the Screen Size list box, and Corel Paradox displays your system's current screen driver size (in pixels).

Paper Sizes/Screen Size

Choose one of the standard sizes. Paper Sizes are those your current printer supports; they are available when you are designing for the printer. Screen Size is the size Corel Paradox detects for your current screen driver; it is available when you are designing for the screen.

Custom Size

You can specify any non-standard size, or any size not supported by the current printer or screen, to design a larger or smaller document. Units are those specified in the Units panel.

You should only program a custom size if you want to design the report on an installed printer, but you intend to run the report on another printer that will support the size you've chosen, or you have a newer laser printer that supports any arbitrary size from a postcard up to the limits of the printer.

Units

Chooses the units for the values in Custom Size and Margins. The default value for the printer units is sensitive to your International settings.

Margins

You can change the margins by typing numbers in these text boxes. Units are those specified in the Units list box.

This option is only available or reports.


Paste From File dialog box

Use the Paste From File dialog box to paste text from an external file into a selected Corel Paradox text object, text field, or memo field.

File Name

Type in the name and extension of the file from which you want to copy, or select a file from the File Name list box. Text will be inserted at the insertion point. If text is selectedin the text object of the field, the selected text will be replaced by the inserted text.

Files Of Type

Corel Paradox displays the word <Text> to indicate that you can copy text values from .PXT, .TXT, or .RTF files. The extension shows the format used to copy the text. PXT files use an internal Corel Paradox format for rich text and object storage. TXT files are plain text files such as those created by Notepad. RTF files are standard Rich Text Format files that contain font and other information.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Paste From Graphic File dialog box

Use the Paste From Graphic File dialog box to paste a value from an external file into a selected Corel Paradox graphic field or graphic object.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look in list box.

File Name

Type the name of the file from which you want to paste, or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can use: *.BMP, *.PCX, *.TIF, *.GIF, *.EPS.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Parameters For dialog box

Use this dialog box to specify the parameters to use to run the executable file.


Password Security dialog box

Use the Password Security dialog box to create passwords to protect your tables from unauthorized access.

Master Password

Type your password in the Master Password text box. Only asterisks (*) appear onscreen. A password can be from 1 to 15 characters and can contain spaces.

Verify Master Password

Type your password again in the Verify Master Password text box. Passwords are case-sensitive. If the two passwords are not identical, an error message prompts you to enter the passwords again.

Auxiliary Passwords

Opens the Auxiliary Passwords dialog box. (This button is not enabled until you verify a master password.)

Change

Changes the master password. Click Change, and then enter and verify the new password.

This button only appears when a master password already exists.

Delete

Deletes the master password.  Click Delete to remove the password.

This button only appears when a master password already exists.


Picture Assistance dialog box

Use the Picture Assistance dialog box to get assistance with pictures you create or with the standard pictures Corel Paradox provides.

Picture

Use picture string characters to type the picture you want in the Picture text box. You can fill this text box with the contents of the Sample Pictures list box.

Verify Syntax

Ensures that Corel Paradox can interpret the picture. If the syntax is correct, a message is displayed to tell you the picture is valid.

Restore Original

Returns to the picture that was originally in the Picture text box.

Test Value

Ensures that Corel Paradox can interpret the value you typed into the Sample Value text box. The message area below the button reports the result of the test.

Sample Pictures

Corel Paradox provides several standard pictures that are available from the Sample Pictures list box in the Picture Assistance dialog box. When you choose one of these pictures, you see an explanation of it in the message area. For example, when you choose the picture "5{#}[-4{#}]," you see the message that this picture is for either a 5-digit or a 9-digit United States zip code.

Add To List

Opens the Save Picture dialog box in which you can describe your picture and add it to the Sample Pictures list box. The description you type in the Save Picture dialog box will appear in the message area of the Picture Assistance dialog box whenever you select the picture from the Sample Pictures list box.

Delete From List

Deletes your picture from the Sample Pictures list box.

Use

Copies one of the sample pictures to the Sample Pictures list box.


Advanced page (Preferences dialog box)

Use this dialog box to specify advanced desktop preferences.

Don't Show Warning Prompts When Changing Directories

Prevents Corel Paradox from displaying the Are You Sure dialog box every time you change your working or private directory and have one or more objects open on the desktop.

Always Use ALT+Numeric Keypad For Character Entry

Enable this check box if you always want to use the ALT key and the numeric keypad to insert a character using its ANSI code, regardless of whether you are in Field View or whether NUM LOCK is enabled.

Indicate Expandable Directory Branches

Provides Corel Paradox dialog boxes that display a directory tree to indicate which directories contain sub-directories.

If you enable this check box,  the time it takes to navigate the directory tree of these dialog boxes increases.

Use Scroll Bars In Form Windows By Default

Ensures that new forms and reports have horizontal and vertical scroll bars.


BDE page (Preferences dialog box)

Use this dialog box to view settings that control the Borland Database Engine (BDE).

BDE is the interface Corel Paradox uses to access your data. BDE needs information about your specific environment to properly access and deliver your data. This information is stored in the BDE configuration file.

To change any of these settings, use the BDE Configuration Utility. Its icon is part of the Corel Paradox program group. Changes do not take effect until you restart Corel Paradox.

Network Control File Directory

Shows the location of your Corel Paradox network control file, PDOXUSRS.NET.

Language Driver

System	This driver can be used as a default if the Corel Paradox and dBASE language drivers are undefined.

Corel Paradox	This driver determines the sort order, capitalization, and string comparison conventions that are specific to your country's language for Corel Paradox tables. The default for users in the United States is the Corel Paradox ASCII driver.

dBASE	This driver determines the sort order, capitalization, and string comparison conventions that are specific to your country's language for dBASE tables.

Database Driver List

Shows what database drivers are installed on your system. You can create a table type to match any of your installed database drivers. For example, in order to connect to a MS Access table, you must have installed the ODBC drivers.

For information on ODBC drivers, run the BDE Administrator, and then click Help, Contents in the utility Menu Bar, click Index, and type ODBC in the text box at the top of the Help window.

Buffer Size (in Kilobytes)

This buffer specifies the minimum and maximum amount of memory that Corel Paradox uses.

Local Share

When Local Share is enabled, you can safely share tables with non-BDE applications that you are running locally. (Note: Non-BDE applications include earlier versions of Corel Paradox, dBASE IV, and Quattro Pro version 6 or earlier.)

When Local Share is disabled, the data  locks set by Local Share are turned off. If you are sharing data on your local hard drive with non-BDE applications, you are unprotected from data corruption. This option might provide a slight performance increase when you access local data. Local Share is disabled by default.


Database page (Preferences dialog box)

Use this dialog box to specify general database and multi-user preferences.

Private Directory

Specifies a directory to use as your private directory. The directory you specify is where Corel Paradox stores any temporary tables you create. This feature avoids conflicts with any other temporary tables created by other network users.

Browse

Opens the Directory Browser so you can choose your private directory.

Treat Blank Fields As Zero

When enabled, tells Corel Paradox to interpret blanks in calculated fields as the number zero. Otherwise, Corel Paradox treats blanks in calculations the same as blanks in other types of fields.  When blanks are not treated as zero, they are not included in summary calculations such as average, count, or min and max. Therefore, these calculations can change, depending on whether or not zeros are counted as blanks.

Network

These settings affect how Corel Paradox works on a network and provide information about other users in a multi-user environment.

User Name shows the network user name you used to log on to a network. If you are not attached to a network, the box displays the message No user name available.

Current User List shows a list of all users who are using the same Corel Paradox network installation. This is especially useful when you want to place a lock on an object and want to find out who might be inconvenienced.

Refresh Rate sets the number of seconds you want between screen refreshes. This is the length of time between updates of information on your screen as data are being changed elsewhere in the network in tables to which you are currently linked. This feature is useful for monitoring remote tables that might change without any action on your part, such as a shared table on a network.

Refresh Rate applies only to Corel Paradox tables. To force a refresh on other file formats (such as dBASE or SQL tables) press CTRL+F3.

When you are editing, you do not need to tell Corel Paradox when to refresh your screen. Corel Paradox always refreshes your display whenever you make a change, regardless of your Refresh-Rate setting. The more you refresh your screen, the higher the demand you place on your network. Choose a longer time between refreshes to lighten the work load on the network. Choose 0 to turn off automatic refreshes.

Retry Period allows you to automatically retry if you attempt to open a record in a table and find you are locked out. Type the length of time (in seconds) that you want Corel Paradox to retry. You will be prevented from doing anything else in Corel Paradox during the retry period, but you are not blocked from doing other things on your system.

If you set the retry period to 30, Corel Paradox attempts to access the table for 30 seconds. While the attempt is being made, you are prevented from doing any other Corel Paradox activity on your system. If you do not want to wait long, set a low retry period.


Designer page (Preferences or Settings dialog box)
Designer page (Preferences or Setup dialog box)

The Designer preferences affect the behavior and display of design windows and are common to both Form Design and Report Design windows. These preferences can be either set as defaults under Tools, Settings, Preferences or changed as settings in the current window using Format, Design Setup.

Some settings are also available in Form Run mode by choosing Format, Form Setup.

Overriding The Default Preferences

Changes made using Format, Design Setup affect only the current document and do not affect any other opened documents. As soon as you exit the document, these settings are deleted.

If you change Change the default Designer preferences it has no effect on an open form or report. You must close the document, then re-open the document to use the new default preference settings.

Select From Inside

When you click an object that is contained by another object, the Select From Inside option specifies how Corel Paradox selects the object. When Select From Inside is enabled, Corel Paradox selects the object you click. Otherwise, it selects the outermost object first.

Frame Objects

Allows you to display objects on your screen with or without frames.

When Frame Objects is enabled, objects without a clear frame or outline are outlined by dotted lines to help you see them. You might want to disable this option if you have many of these objects because your screen can look cluttered. Otherwise, Corel Paradox shows frames only on those objects that you have changed Frame properties (the frame's color, style, or thickness).

These frames appear only in design windows.

Flicker-Free Draw

Sometimes the screen flashes a bit when you move or resize objects. This is especially noticeable when your design has a dark background. Enable Flicker-Free Draw to suppress this behavior. This option can cause the movement or resizing of objects to be slower.

Outlined Move/Resize

Select Outlined Move/Resize to specify what you see when you move or resize an object.

When enabled, Check Outlined Move/Resize lets you see an outline of the object move, grow, or shrink as you move or resize the object. Otherwise, you'll see the object itself move, grow, or shrink as you move or resize the object.

Most moving and resizing is faster with Outlined Move/Resize enabled. This is because Corel Paradox does not redraw the screen image until the operation is complete. However, some operations are clearer when you can see what is happening throughout.

Grid

Grid specifies the unit of measure and the distance between major grid lines and minor tick marks between grid lines for a grid or a ruler.

Units	Specifies inches or centimeters as the unit of measurement.

Major Division	Specifies the distance (in the units chosen) between major (solid) grid lines. For example, if you choose 2, you'll see a solid line every two inches (assuming you chose Inches as your unit of measurement).

Minor Division	Specifies the number of minor divisions (shown by tick marks) between major grid lines. For example, if you choose 16, you'll see 16 dotted lines between each solid line.

If the space between minor grid ticks is too small, Corel Paradox does not display them.

Ruler

Both the Form Design and Report Design windows have horizontal and vertical rulers you can use when you place, resize, or move design objects. They also have an expanded ruler (used in combination with the horizontal ruler) for editing and formatting text objects.

Click a ruler to display it. This setting is the default setting for the design windows. To override this setting for the current document, click View, Ruler.

Horizontal Ruler	Displays a ruler along the top of the document. This ruler must be enabled to set tabs by using the expanded ruler.

Vertical Ruler	Displays a ruler along the left edge of the document.

Expanded Ruler	The expanded ruler is an editing and layout tool for use with a text object. It is displayed above the horizontal ruler. Use it to adjust margins, tabs, line spacing, and text alignment. You can also edit text objects with the Text Formatting Toolbar and on the Text Property page for the object.

To set tabs, the horizontal ruler must be used with the expanded ruler. Alignment and line-spacing controls work with or without the horizontal ruler.


Experts page (Preferences dialog box)

Use this dialog box to set properties that affect the Corel Paradox Experts.

Run Experts When Creating Objects On Documents

Opens the appropriate Expert each time you use a tool to create a chart, button, field, crosstab, or text object in the Form Design and Report Design windows.

Run Startup Expert Each Time Product Loads

Starts the Startup Expert each time you start Corel Paradox. By using the Startup Expert, you can run the Database Expert or Table Expert or open or rename an existing database.


Forms/Reports page (Preferences dialog box)

Use this dialog box to specify the way Corel Paradox creates new forms and reports, or reopens existing ones.

New Forms/Reports

When you click New, Corel Paradox displays a dialog box to ask how you want to create the new form or report. Choose an option other than No Default if you want to bypass this dialog box and always create forms and reports a certain way.

No Default	Corel Paradox asks you how to create a new form or report every time.

Always Blank	Corel Paradox creates all new forms and reports that are not bound to a table and do not contain any objects other than a single page (in forms) or the report header and footer, page header and footer, and record band (in reports).

Always Use Expert	Corel Paradox uses an expert to create all new forms and reports.

Always Use Data Model	Corel Paradox opens the Data Model dialog box every time you create a new form or report.

Open Default

Enable one of the check boxes to specify either the default option to use when a form or report is opened from the Open Document dialog box or the first command on the menu that comes up when you right-click a form or report in the Paradox Viewer. The first command is also the one that is executed when you double-click a form or report.

Forms In Design Mode opens forms in a design window by default and puts the Design command at the top of the menu that appears when you right-click forms and reports in the Paradox Viewer. Reports In Design Mode opens reports in the same way.

Form Screen Page Size

Size To Desktop	When enabled, creates new forms the size of the desktop. When you create a form, it will exactly fill the desktop when maximized if it has no scroll bars or rulers are showing. If not enabled, you can specify a specific size.

Width, Height	You can type the width and height for new forms and reports.

Inches, Cms, Pixels	Specifies the units for the values in the height and width fields. The International Measurement setting in the Windows Control Panel determines the default unit.

Designer Style Sheets

Choose a style sheet to control the initial appearance of objects you put on forms and reports. There are style sheets for both documents designed for the screen and for the printer.


General page (Preferences dialog box)

Use this dialog box to specify a variety of general desktop preferences.

Title

Type the title you want to appear on the desktop Title Bar.

Background Bitmap

Type the name of a bitmap file or click Find to choose one from the Delect File dialog box.

Tile Bitmap	Repeats the bitmap until it fills the desktop.

Center Bitmap	Displays the bitmap in the center of the desktop.

Find	Opens the Select File dialog box, where you can choose another bitmap file for the Desktop background.

Desktop State

The Desktop State is the windows that are open and the size and position of those windows. For example, you have two tables open in the upper half of the desktop and a query open on the bottom half [image] this is the state of the desktop.

Use the following options to set the Desktop State.

Save On Exit	Saves the state of the desktop when you exit Corel Paradox.

Restore On Startup	Restores the saved state of the desktop when you start Corel Paradox. If this check box is disabled, the desktop will be empty when you open Corel Paradox.

Save Now	Saves the state of the desktop.

Default System Font

Displays the default system font that is used in text objects. To change the default system font, click Change. Corel Paradox opens the Font dialog box.

Paradox Viewer Settings

Open Paradox Viewer On Startup displays the Paradox Viewer each time you open Corel Paradox.


Query page (Preferences dialog box)

Use this dialog box to specify default preferences for Corel Paradox queries.

Table Update Handling

In a multi-user environment, someone might be changing data in tables you are using in a query while you are running the query. Choose one of the following options to tell Corel Paradox ahead of time what to do if it finds that the data are changed.

Restart Query On Changes	Start the query over. Useful when you want to make sure you get a snapshot of the data as they existed at some instant because another user might change the data after the query is completed but before the Answer table is displayed.

Lock All Tables To Prevent Changes	Lock all other users out of the tables needed while the query is running. If Corel Paradox cannot lock a table, it does not run the query. This is the least polite to other users. You must wait until all the locks can be secured before the query will run.

Ignore Source Changes	Run the query even if someone changes the data while the query is running. This may affect whether the query answer is up-to-date.

Queries Against Remote Tables

These options apply only to queries of remote data on SQL servers. It is slower to run queries locally but it might be necessary [image] for example, if you're querying joined tables from more than one server.

Query May Be Local Or Remote	Specifies that the query will attempt to run remotely (as described below). If this fails, Corel Paradox runs the query locally (as described below).

Run Query Remotely	Requests that the server run the query and send back only the answer data.

Run Query Locally	Specifies that the query will run locally. This means that Corel Paradox requests all data in queried tables from the server, and then runs the query on your computer system.

Auxiliary Table Option

These options affect the way Corel Paradox runs queries that change data (INSERT, DELETE, and CHANGETO queries).

Fast Queries keeps Corel Paradox from generating auxiliary tables when it runs queries that change data. Because Corel Paradox does not create the Inserted, Deleted, and Changed tables, the query is performed faster.

Generate Auxiliary Tables instructs Corel Paradox to create auxiliary tables when it runs queries that change data. It is slower to create auxiliary tables than to run a query without creating them, but these tables can be useful if you want to undo a query.

Default QBE Check Type

Indicates whether the Check or CheckPlus operator is the default check mark that Corel Paradox places when you either enable a field's check box or press F6.

If you frequently run queries that produce live-query views, it's a good idea to choose CheckPlus as the default check mark. If you know that all values are unique, using CheckPlus will make the query run faster.

The Check option displays unique values that meet the selection condition in the Answer table or live-query view. If two or more records have the same value in all fields with a Check, the Answer table contains only the first record and the Answer table is sorted.

The CheckPlus option displays all values that meet the selection condition in the Answer table or live-query view. If two or more records have the same value in all fields with a CheckPlus, the Answer table contains all matching records.

SQL Answer Constraints

Controls the update of SQL tables from live-query views.

Constrained Updates

When enabled, you are only able to update an SQL table in a live-query view with values that meet the selection conditions for the query; you are unable to enter any values that don't match the query conditions.


Tables page (Preferences dialog box)

Use this dialog box to specify the way Corel Paradox creates tables and handles record deletions.

New Tables

When you click File, New, Table, Corel Paradox displays a dialog box to ask how you want to create the new table. Choose an option other than No Default if you want to bypass this dialog box and always create tables a certain way.

No Default	Instructs Corel Paradox to ask you how to create a new table every time.

Always Blank	Instructs Corel Paradox to create all new tables blank, ready for you to add fields and enter data.

Always Use Expert	Instructs Corel Paradox to use an expert to create all new tables.

Confirm Record Deletes

When enabled, displays a confirmation prompt whenever you try to delete a record. Otherwise, the record is deleted without displaying a warning.


Toolbars page (Preferences or Toolbar Preferences dialog box)

Use this dialog box to display other Toolbars instead of, or in addition to, the standard Toolbar for each Corel Paradox window.

Toolbars

Indicates which Toolbars to display. Certain Toolbars are only available in certain windows.

•	Standard displays the Standard Toolbar for each window.

•	Text Formatting displays the Text Formatting Toolbar with buttons for formatting text data.

•	Object, which is available only in the Form Design window, displays the Object Toolbar, with tools for applying OLE controls and native Windows controls.

•	Align, which is available only in the Form Design and Report Design windows, displays the Align Toolbar, with tools for aligning design objects.

•	Alternate Toolbar Icons displays an alternate set of icons to provide compatibility with other products and suites.


Answer page (Query Properties dialog box)

Use the settings in the Answer page to specify the type of answer a query generates.

This dialog box is available only when you have created or opened a valid query that could display an Answer table.

Query Answer Type

Live-Query View generates a live-query view and Answer Table generates an Answer table.

Table Type

The Corel Paradox/dBASE option lets you save the Answer table as a Corel Paradox or dBASE table.

Browse

Displays the Save File As dialog box, in which you can choose a path and name for the results table specified in Table Name.

Table Name

Lets you create a new results table instead of ANSWER.DB. Type the new table name in the text box. When you run the query, the result appears in a table with the new name, rather than in ANSWER.DB. This named table is permanent; ANSWER.DB is a temporary table that is overwritten each time you run a query.

You can also keep the name ANSWER.DB and type another path name in the box. When you save ANSWER.DB to a directory other than your private directory, Corel Paradox does not delete ANSWER.DB when you exit the program.

 Note

•	Although you can change the path, renaming ANSWER.DB is preferable. If the path you type already contains an Answer table, Corel Paradox will overwrite the table with no warning when you run the query.


QBE page (Query Properties dialog box)

Use settings in the QBE page to specify how to handle queries against remote tables (SQL tables) and whether to generate auxiliary tables for queries that change data.

Queries Against Remote Tables

These options apply only to queries of remote data on SQL servers. It is slower to run queries locally, but it might be necessary [image] for example, if you're querying joined tables from more than one server.

Query May Be Local Or Remote	Instructs Corel Paradox to try to run the query remotely (as described below). If this fails, Corel Paradox runs the query locally (as described below).

Run Query Remotely	Instructs Corel Paradox to request that the server run the query and send back only the answer data.

Run Query Locally	Instructs Corel Paradox to run the query locally. This means that Corel Paradox requests all data in queried tables from the server and runs the query on your computer system.

Auxiliary Table Option

These options affect the way Corel Paradox runs queries that change data (INSERT, DELETE, and CHANGETO queries).

Fast Queries keeps Corel Paradox from generating auxiliary tables when it runs queries that change data. Because Corel Paradox does not create the Inserted, Deleted, and Changed tables, the query is performed faster.

Generate Auxiliary Tables instructs Corel Paradox to create auxiliary tables when it runs queries that change data. It is slower to create auxiliary tables than to run a query without creating them, but these tables can be useful if you want to undo a query.


Sort page (Query Properties dialog box)

Use the Sort page to sort the Answer table before you run a query.

This dialog box is available only when you have created or opened a valid query that could display an Answer table.

Answer Fields

Lists the fields that will appear in the Answer table.

Sort Order

Lists the fields by which you can sort.

Right Arrow Button

Moves selected fields from the Answer Fields list to the Sort Order list box.

Left Arrow Button

Removes a selected field from the Sort Order list.

Change Order Arrows

Change the order of the fields in the Sort Order list box. Choose a field from the list and then click the appropriate arrow to move the field up or down in the list or, drag the fields to the desired position.

Clear All

Removes all fields from the Sort Order list and returns them to the Answer Fields list box.


SQL page (Query Properties dialog box)

Use the settings in the SQL page to specify how to handle queries against remote tables (SQL tables), whether to generate auxiliary tables for queries that change data, and whether to limit data entered in live-query views to values that are "legal" for the current query-selection conditions.

Queries Against Remote Tables

These options apply only to queries of remote data (tables that you access using Borland SQL Link). It is slower to run queries locally, but it might be necessary [image] for example, if you're querying joined tables from more than one server.

Query May Be Local Or Remote	Instructs Corel Paradox to try to run the query remotely (as described below). If this fails, Corel Paradox runs the query locally (as described below).

Run Query Remotely	Instructs Corel Paradox to request that the server run the query and send back only the answer data.

Run Query Locally	Instructs the Corel Paradox to run the query locally. This means that Corel Paradox requests all data in queried tables from the server and runs the query on your Desktop system.

Auxiliary Table Option

These options affect the way Corel Paradox runs queries that change data (INSERT, DELETE, and CHANGETO queries).

Fast Queries keeps Corel Paradox from generating auxiliary tables when it runs queries that change data. Because Corel Paradox does not create the Inserted, Deleted, and Changed tables, the query is performed faster.

Generate Auxiliary Tables instructs Corel Paradox to create auxiliary tables when it runs queries that change data. It is slower to create auxiliary tables than to run a query without creating them, but these tables can be useful if you want to undo a query.

Constraints

Controls the update of SQL tables from live-query views.

When the Constrained Updates option is enabled, you are only able to update an SQL table in a live-query view with values that meet the selection conditions for the query; you are unable to enter any values that don't match the query conditions.


Structure page (Query Properties dialog box)

Use the Structure page to determine the order of fields in the Answer table before you run a query.

This dialog box is available only when you have created or opened a valid query that could display an Answer table.

Answer Fields

Lists the fields that will appear in the Answer table.

Change Order Arrows

Change the order of the fields in the Sort Order list box. Choose a field from the list box and then click the appropriate arrow to move the field up or down in the list or, drag the fields up and down to reorder them.

Undo

Restores the previous order in the Answer Fields list box.


Referential Integrity dialog box

Use the Referential Integrity dialog box to define a referential relationship between two tables. First choose a field from the table you are creating or restructuring (the child table), then choose a table that contains all the valid values for your selected field (the parent table).

Fields

The Fields list box displays all the fields from the referential integrity child table. Memo, formatted memo, graphic, binary, OLE, logical, autoincrement, BCD, and bytes fields are dimmed in the Fields list box, because you cannot create referential integrity from these field types.

Choose the referential integrity child field from the Fields list box, and then click the Right Arrow button or press ALT+A. The field is displayed in the Child Fields list box.

If you choose a field that is not the same logical type as the parent's key field, Corel Paradox displays a message on the Status Bar, and doesn't add the field. In most cases, this means the field types must be identical; however, autoincrement and long integer are of the same logical type.

Child Fields

Displays the fields you choose from the Fields list box.

Parent's Key

Displays the fields in the referential integrity of the parent's key.

You must choose a table with a key that is the same logical type as the child field.

Table

Corel Paradox displays tables from the working directory in the Table list box. Choose the referential integrity parent table from the list box and click the Right Arrow button. You must choose a table with a key that is the same logical type as the child field.

To remove a field from the diagram, select the field, then click the Left Arrow button or press ALT+R.

Update Rule

Corel Paradox provides two update rules for tables that use referential integrity. Update rules specify what happens when a user tries to update data in a parent table that has dependent records in a child table.

Prohibit specifies that you cannot change a value in the parent's key if there are records that match the value in the child table. For example, if the value 1356 exists in the Customer No field of Orders, you cannot change that value in the Customer No. field of Customer. (You can change it in Customer only if you first delete or change all records in Orders that contain this value). If, however, the value doesn't exist in any records of the child table, you can change the parent table.

Cascade specifies that any change you make to the value in the key of the parent table is automatically made in the child table. Cascade is the default update rule for Corel Paradox. To cascade an update across tables, Corel Paradox must place a lock on the target table. If the lock is denied (because another user has already placed a lock), Corel Paradox cannot perform the cascade update.

If you are working with SQL tables, the availability of cascading updates and deletes varies according to the table type and software version.

Strict Referential Integrity

Protects your data from being corrupted by earlier versions of Corel Paradox (the default). Strict Referential Integrity specifies that Corel Paradox for DOS cannot access a table on which you've defined referential integrity.

Suppose you use a version of Corel Paradox for DOS to open a Corel Paradox for Windows table that uses referential integrity. You could add data that violates the referential integrity of the table because the version of Corel Paradox you're using doesn't recognize the referential integrity. Strict Referential Integrity prevents versions of Corel Paradox for DOS from opening the table.


Register Add-In dialog box

Use this dialog box to register third-party Corel Paradox add-ins in the system registry. All add-ins must be registered before they can be used in Corel Paradox. This dialog box also lets you remove a registered Corel Paradox add-in from the system registry.

Opens the Add/Remove Corel Paradox Add-In dialog box in which you can specify the location and name of the Corel Paradox add-in you want to register in the system registry. All add-ins must be registered before you can use them on a form in Corel Paradox.

Corel Paradox displays, on the left side of this dialog box, the list of Corel Paradox add-ins that have already been registered in the system registry

Add

Opens the Register Corel Paradox Add-In dialog box. By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse until you reach the directory you want. All files with .DLL file extensions in that directory appear in the list below the Look In list box.

Remove

Removes the selected Corel Paradox add-in from the list of registered add-ins on the left side of this dialog box. This option is dimmed if there are no add-ins listed or if there is no selected add-in.


Register ActiveX Control dialog box

Use the the Register ActiveX Control dialog box to add ActiveX control sto the system registry so they can be used with Corel Paradox.

Look In

By default, this list box displays the name of the working directory. You can switch to another directory by choosing it from the list box or browsing in the directory tree.

To narrow your search further, double-click a folder to see a list of its files. Only files of the type specified in the Files of Type list box are shown. Choose a file name from the list box and click OK.

Files of Type

Displays the types of files you can register.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

File Name

Type the name of the file to register.

OK

Registers specified the file.

Close

Closes the Register ActiveX Control dialog box without registering a file.


Rename dialog box (tables)

Use the Rename dialog box to give the table you are viewing a different name. This dialog box will also rename the associated files, such as the indexes.

From

Shows the name of the table to be renamed.

To

Type the new name you want to give to the table.

When you click OK, Corel Paradox renames the table.


Rename dialog box (objects)

Use the Rename dialog box to give a file a different name. You can rename tables, forms, reports, queries, scripts, libraries, SQL files, data models, text files, and style sheets from within Corel Paradox.

Do not try to rename tables using the DOS RENAME command or Windows Explorer.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file, or double-click on a file in the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the types of files you can use.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Rename <file name> To dialog box

Use this dialog box to specify a file name and directory for the destination file when you rename a file.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Save In list box.

File Name

Type the name of the file, or double-click on a file in the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save As Type

Displays the types of files you can save.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Restart Options dialog box

When you run a report on shared data, you run the risk of reporting on changing data. For example, if you print a report on the Customer table while another user is editing the table, your report might be out of date by the time it prints.

Restart Report If Data Changes

Starts the report over and regenerates any queries if someone makes a change to the table or which you're reporting. Use this option when you want to get the latest data but do not want to lock other users out of the table. This is the default restart option for Corel Paradox tables.

This option is not available for reports bound to dBASE tables.

Lock Tables To Prevent Data Change

Locks all other users out of the tables used by the report while the report is running. Corel Paradox releases the lock as soon as the printing is complete. If a lock cannot be put on a table, Corel Paradox stops the report.

Lock And Copy Tables, Run From Copies

Locks all other users out, copies to disk all tables needed for the report, then releases the locks and runs the report using the copies of the tables. Corel Paradox locks the tables just long enough to copy them. Corel Paradox deletes the copied tables as soon as the printing is complete.

Use this option to lock tables for the shortest possible time. This option holds the lock for less time than the previous option, because it is usually quicker to copy the tables to disk than to run the report.

Make sure you have enough memory to create a copy of the table.

Ignore Data Changes And Continue

Runs the report even if someone changes the data while it is running. The changes won't be reflected in the report until you close the report and open it again. This is the fastest option, and it works well for rough reports in which having the latest information is not a concern.

This is the default restart option for dBASE tables.


Restructure INFORMIX Table dialog box

Use the Restructure INFORMIX Table dialog box to modify the indexes of an existing Informix table.

Field Roster

Displays the fields of a table. You cannot modify fields of SQL tables.

Required Field

Specifies whether the selected field is required. You cannot change whether a field of an SQL table is required.

List of Indexes

Displays existing indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.


Restructure INTRBASE Table dialog box

Use this dialog box to modify the indexes of an existing InterBase table.

Field Roster

Displays the fields of a table. You cannot modify fields of SQL tables.

Required Field

Specifies whether the selected field is required. You cannot change whether a field of an SQL table is required.

List of Indexes

Displays existing indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.


Restructure ORACLE Table dialog box

Use this dialog box to modify the indexes of an existing Oracle table.

Field Roster

Displays the fields of a table. You cannot modify fields of SQL tables.

Required Field

Specifies whether the selected field is required. You cannot change whether a field of an SQL table is required.

List Of Indexes

Displays existing indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.


Restructure Corel Paradox Table dialog box

Use this dialog box to specify the structure of a Corel Paradox table.

This dialog box has two main panels: Field Roster and Table Properties. You can move between the panels by using the keyboard: Use the Super Tab key (F4) to move from Field Roster to Table Properties; to return, press SHIFT+TAB.

Before you restructure a table, make sure no forms or reports that use the table in their data model are running. If you or any other user (in a multi-user environment) have such a document running, you will not be able to restructure the table.

Field Roster

Use the Field Roster to specify the fields of a table. You can add, delete, or rename fields and change field types and sizes.

To insert a field between two existing fields in the Field Roster, click on a field and press INSERT. Corel Paradox opens a blank row above the selected field.

To delete a field from the Field Roster, select the field and press CTRL+DEL. Corel Paradox deletes the entire row.

The order in which fields are listed in the Field Roster is the order in which the fields appear in the table. To change the field order, click the row number of the field and drag the field to a new position.

Field Name	Specifies the name of the field. This is a required field. (When a field is required, you must enter a value in the field for every record in the table.)

Type	Specifies the type of the field. Right-click the Type column or press SPACEBAR to display a list of field types. This is a required field.

Size	Specifies the size of the field. This is a required item for some field types.

Key	Specifies whether the field is a key field. The table type determines rules for Corel Paradox key fields.

Table Properties

In the Table Properties list box you can specify the following:

•	Validity Checks

Specifies requirements and defaults for a field. You must have a valid entry selected in the Field Roster area to specify validity-check information. You can specify the following types of validity checks:

Required Field	Specifies that the selected field in the Field Roster is a required field. When a field is required, you must enter a value in the field for every record in the table.

Minimum	Specifies a minimum value for the selected field in the Field Roster. When a field has a minimum validity check, the values entered in the field must be greater than or equal to the minimum you specify.

Maximum	Specifies a maximum value for the selected field in the Field Roster. When a field has a maximum validity check, the values entered in the field must be less than or equal to the maximum you specify.

Default	Specifies a default value for the selected field in the Field Roster. When a field has a default validity check, Corel Paradox enters the value you specify here if you do not enter another value when you edit this field.

Picture	Restricts the types of information you can enter in a field. When a field has a picture-validity check, you specify a character string as a template for the values that can be entered into this field.

Assist	Opens the Picture Assistance dialog box, in which you can select or modify a predefined string to use as a picture.

•	Table Lookup

Specifies a lookup table for the current field in the Field Roster. A lookup table is another table that contains values that are valid for the current field.

•	Secondary Indexes

Creates a secondary index on the current field in the Field Roster. A secondary index lets you sort data in an order that is different from the key field and also lets you form links between tables. Choose Secondary Indexes, Define to open the Define Secondary Index dialog box.

•	Referential Integrity

Creates a referential-integrity relationship between the current field and the key field in another table. A referential-integrity relationship ensures that ties between like data in separate tables cannot be broken. Choose Referential Integrity, Define to open the Referential Integrity dialog box.

•	Password Security

Creates passwords to protect your tables from unauthorized access.  Choose Password Security, Define to open the Password Security dialog box.

•	Table Language

Specifies the language driver.  Choose Table Language, Modify to open the Table Language dialog box.

•	Dependent Tables

Displays all tables that depend on the current table for referential integrity.

Pack Table

Reuses disk space that is left when records are deleted. Some restructure operations automatically pack the table. Enable this check box to be sure that Corel Paradox packs the table when you click Save or Save As.

Save

Overwrites the old structure with the new structure. If the restructure could cause data loss, the Restructure Warning dialog box is displayed to allow you to tell Corel Paradox what to do about the problem.

Save As

Saves the table you are creating and closes the Restructure Corel Paradox Table dialog box. Click Save As to open the Save Table As dialog box in which you type a name for your new table. You can save the table in the current directory or any other one you want.


Restructure Table dialog box (other SQL)

Use the Restructure Table dialog box to modify the indexes of an existing SQL table.

Field Roster

Specifies the fields of a table. You cannot modify fields of SQL tables.

Required Field

This check box specifies whether the selected field is required. You cannot change whether a field of an SQL table is required.

List Of Indexes

Displays existing indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.


Restructure Warning dialog box

When you restructure a table, you often make changes that could result in a loss of data. Changes such as shortening field sizes, creating validity checks, or changing field types can cause existing data to become invalid. Whenever this happens, Corel Paradox opens the Restructure Warning dialog box when you leave the Restructure Table dialog box. Choose any of the following options to answer the data-handling question the same way for every restructured field. Otherwise, you will be asked to answer these questions repetitively.

Field Trim

Choose how Corel Paradox treats data in fields.

Trim All Fields truncates all data that do not fit in the new field without asking for confirmation on each field.

Trim No Fields extracts all records that contain data that exceed the new maximum length of the shortened field, and saves these records in a Problems table.

Skip Confirmation For Each Deleted Field

When enabled, Corel Paradox deletes fields without asking for confirmation.

Validity Checks

Enable Validity Checks, and then choose whether or not to apply validity checks to existing data.

The Apply To Existing Data option places any existing data that do not meet the conditions of new validity checks into the Keyviol table. You can change the records in Keyviol and then add them back to the table by using Tools, Utilities, Add. ( Corel Paradox does not apply a Picture-validity check to existing data.)

The Do Not Apply option instructs Corel Paradox not to enforce the new validity checks on existing data.


Restructure dBASE Table dialog box

Use this dialog box to specify the structure of a dBASE table.

This dialog box has two main panels: Field Roster and Table Properties. You can move between these panels by using the keyboard: Use the Super Tab key (F4) to move from Field Roster to Table Properties; to return, press SHIFT + TAB.

Before you restructure a table, make sure no forms or reports that use the table in their data model are running. If you or any other user (in a multi-user environment) have such a document running, you will not be able to restructure the table.

Field Roster

Use the Field Roster to specify the fields of a table. You can add, delete, or rename fields and change field types and sizes.

To insert a field between two existing fields in the Field Roster, click on a field and press INSERT. Corel Paradox opens a blank row above the selected field.

To delete a field from the Field Roster, select the field and press CTRL+DEL. Corel Paradox deletes the entire row.

The order in which fields are listed in the Field Roster is the order in which the fields appear in the table. To change the field order, click the row number of the field and drag the field to a new position.

Field Name	Specifies the name of the field. This is a required field. (When a field is required, you must enter a value in the field for every record in the table.)

Type	Specifies the type of the field. Right-click the Type column or press SPACEBAR to display a list of field types. This is a required field.

Size	Specifies the size of the field. This is a required item for some field types.

Dec	Specifies the number of decimal places for number or float fields.

Table Properties

In the Table Properties panel you can specify the language driver for your new table and any indexes you want to appear in the table.

The Indexes button creates an index on the current field in the Field Roster. Choose Indexes, Define to open the Define Index dialog box. After you create an index, click Modify to change it or Erase to remove the index.

Table Language specifies the language driver. Choose Table Language, Modify to open the Table Language dialog box.

Pack Table

Corel Paradox deletes records that you have marked for deletion.

Record Lock

Contains information about records locked by other users.

The Info Size option specifies whether to keep track of record-locking information in a multi-user environment. When you enable Info Size, Corel Paradox adds a hidden field to the table that shows when a record was locked and by whom.

The amount of information you see when you encounter a locked field depends on the Info Size you specify. The default size is 16 characters. You can choose a size from 8 to 24 characters from the Info Size list box.

Save

Overwrites the old structure with the new structure. If the restructure could cause data loss, the Restructure Warning dialog box is displayed to allow you to tell Corel Paradox what to do about the problem.

Save As

Saves the table you are creating and closes the Restructure dBASE Table dialog box. Click Save As to open the Save Table As dialog box in which you type a name for your new table. You can save the table in the current directory or any other one you want.


Restructure SYBASE Table dialog box

Use the Restructure SYBASE Table dialog box to modify the indexes of an existing Sybase table.

Field Roster

Specifies the fields of a table. You cannot modify fields of SQL tables.

Required Field

This check box (in the panel on the right) specifies whether the selected field is required. You cannot change whether a field of an SQL table is required.

List Of Indexes

Displays existing indexes for the table. You can create (define) new indexes, modify existing indexes, and erase indexes.


Save Export Specification As dialog box

Use this dialog box to save specifications for exporting a fixed-length text file.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory where you want to save the files. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to save or select one from the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Files Of Type

Displays the type of table you are saving.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Save File As dialog box

The Save File As dialog box is used to save a file under another name or to copy data to a file.

Save In

By default, this list box displays the name of the working directory. You can switch to another directory by choosing it from the list box or browsing in the directory tree. The Folder list box on the right side of the expert shows the folders contained by the directory you choose.

To narrow your search further, double-click a folder in the Folder list box to see a list of its files. Only files of the type specified in the For Type list box are shown. Choose a file name from the list box, and click Save.

Type

Displays the types of files you can save.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Name

Type the name of the file to save or select one from the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save

Saves the file under the name and directory you choose.

Close

Closes the Save File As dialog box.


Save File As dialog box
Save File As dialog box (HTML publishing)

Use this dialog box to save a Paradox form to an HTML file.

Save In

By default, this list box displays the name of the working directory. You can switch to another directory by choosing it from the list box or browsing in the directory tree. The Folder list box on the right side of the expert shows the folders contained by the directory you choose.

To narrow your search further, double-click a folder in the Folder list box to see a list of its files. Only files of the type specified in the For Type list box are shown. Choose a file name from the list box, and click Save.

Type

Displays the types of files you can save: .HTML (HyperText Markup Language) or .HTT (HyperText Template). The HTML type works best with simple forms that use text, edit boxes, list boxes, radio buttons or check boxes. If your form includes objects such as graphics, table frames, crosstabs, notebooks and charts which do not translate statically to HTML save the form to an .HTT file for use in conjuction with the Corel Paradox HTML publishing engine.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Name

Type the name of the file to save or select one from the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save

Saves the file under the name and directory you choose.

Close

Closes the Save File As dialog box.


Save Import Specification As dialog box

Use this dialog box to save field specifications for importing a fixed length text file.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory where you want to save the files. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to save or select one from the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Files Of Type

Displays the type of table you are saving.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Save Index As dialog box (dBASE tables)

Use this dialog box to specify a file name or tag name for your dBASE table index.

Index File Name

If you have specified a non-maintained index, the Index File Name text box is available. If you have specified a single-field index, Corel Paradox enters the field's name as the file name. If you have specified an expression index, type its name. Corel Paradox saves the index with the .NDX extension.

Index Tag Name

If you have specified a maintained index, the Index Tag Name text box is available. Type a name to give to the index. This name appears in the Create Table (or Restructure Table) dialog box below Define. Corel Paradox creates a file by using the table's name and the .MDX extension to store all maintained indexes.


Save Index As dialog box (Corel Paradox tables)

Use this dialog box to name and save a composite or case-insensitive secondary index you have constructed in the Define Secondary Index dialog box.

The Save Index As dialog box is displayed only when you create an index that is not case-sensitive or not based on a single field. You cannot give such an index the name of a field as its name.

Index Name

The name you type in this dialog box appears only in the Secondary Index list box in the Create Table or Restructure Table dialog box. A secondary index name can be up to 25 characters and include any printable character except: tab, carriage return, line feed, comma, *, >, <, =, [ ], |, +, ?, :, and \.

Corel Paradox automatically names single-field, case-sensitive indexes with the field's name and warns you if you are overwriting an existing index.


Save Index As dialog box (SQL tables)

Use this dialog box to name and save an index.

Index Name

Displays the name of the index.

For SQL tables other than Sybase, Corel Paradox supplies the prefix "<table>_" for the index name. This prefixes the index name with the table name to ensure that the index name is unique within the database. See Creating indexes on SQL tables.


Save Referential Integrity As dialog box

Use this dialog box to name and save a relationship you have constructed in the Referential Integrity dialog box. Corel Paradox saves referential-integrity definitions in a file with the table's name and the .VAL file extension when you save the table's structure.

Referential-Integrity Name

Type a name for the referential-integrity relationship. Referential-integrity names can be up to 31 printable characters and require no file extension. When you click OK, the Referential Integrity dialog box is closed and the referential integrity name appears in the Create Table (or Restructure Table) dialog box.

The name you type in this dialog box appears only in the Referential Integrity list in the Create Table dialog box or the Restructure Table dialog box. When you complete all restructures, the referential-integrity relationship is saved in a .VAL file of the same name as your table in the working directory.


Save Table As dialog box

Use the Save Table As dialog box to save a new table or to save a restructured table under a new name and leave your original table intact.

When you restructure a table, you should use Save As when you are not sure what the potential problems, key violations, or trimming options might do to your data. If you like the new table, you can delete the old one or use Tools, Utilities, Rename to rename the new table and overwrite the old table.

Save In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory where you want to save the files. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to save or select one from the list box below the Save In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Save As Type list box.

Save As Type

Displays the type of table you are saving.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Options

Specifies what will happen after you click OK.

Display Table opens the new table after you save it; whereas Add Data To New Table adds to the new table as much data from the old structure as is applicable to the new structure. This option is available only when you are restructuring tables.


Select Alias dialog box

Use the Select Alias dialog box to choose an alias to which the remote database can send your SQL query. Corel Paradox displays the aliases you created in the Alias Manager dialog box. Choose an alias from the list box and click OK.

To execute the SQL statement, press F8. You can also click Run SQL on the Toolbar.

To create an alias for the remote database, choose Tools, Alias Manager.


Select Borrow Table dialog box

Uses the structure of an existing table as a template for the table you are creating. You can borrow the structure and then modify it for your new table.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the type of table structure you can borrow. This option is based on the type of table you specified earlier in the Create Table dialog box.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.

Options

The options you can borrow vary according to the type of table you are creating.

If you are working with a dBASE table, your only option is Indexes. When enabled, this option borrows the indexes from the source dBASE table.

If you are working with a Corel Paradox table, you can specify several option settings.

Primary Index	Borrows the primary index from the source Corel Paradox table.

Validity Checks	Borrows the validity checks from the source Corel Paradox table.

Lookup Table	Borrows the lookup-table assignments from fields in the source Corel Paradox table.

Secondary Indexes	Borrows the secondary indexes from the source Corel Paradox table.

Referential Integrity	Borrows the referential-integrity relationships from fields in the source Corel Paradox table.


Select Built-In Methods For Tracing dialog box
Select Built-In Event Methods For Tracing dialog box

Use this dialog box to display all of the built-in event methods. If you select a built-in method in this dialog box, the method is traced whether or not it has any attached ObjectPAL.

Select All

Chooses all of the methods.

Select None

Choose none of the methods.

When the Form Prefilter check box is enabled, methods are traced as they execute for the form and the intended target object; otherwise, methods are traced only for the target object.


Select File dialog box

Use the Select File dialog box to specify a file when required by Corel Paradox.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the type of files you can use.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Select File dialog box (queries)

Use the Select File dialog box to create new queries or to add tables to a query you are editing.

When you first create a new query, you have the option to add individual tables, to copy an existing query, or to make a query that has the same tables as one of your existing forms, reports, or data models.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the type of files you can use. You can choose tables, forms, or other queries.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Select/Create/Change Date Format dialog box

Use this dialog box to select, create, or change date formats. Corel Paradox adds the newly defined format to the list of existing date formats. You can then apply the new format to a date field.

Where applicable, you can right-click the format options to get the default Windows Short Date or Long Date settings. These are established in the Windows Control Panel.

Date Format

Use these options to customize the date format:

Option	Description

Weekday	Specify how to display the day of the week [image] as a full word or an abbreviation. (Weekday is dimmed until you specify to display weekdays by using the %W in the Order text box.)

Day	Specify whether to display the day value with or without a leading zero.

Month	Specify whether the month value should be spelled out as a word, abbreviated, or indicated by a number.

Year	Specify whether to display four digits for the year or just the last two.

Era	Specify values for BC and AD dates. Enter the values in the BC and AD text boxes. To display the era, you must put the %E symbol in the Order text box.

Order	Specify the order in which to display the weekday (%W), day (%D), month (%M), year (%Y), and era (%E) values. (The percent signs indicate variables.) Delete a value if you don't want that part of a date to appear, or type in a string that you do want to include in the date format. For example, type in commas or parentheses.

Case	If you have specified to display words, rather than numbers, for months and weekdays, enable the Case check box to choose Mixed (initial uppercase format) or Lower (all lowercase letters).

Example area

Refer to this area as you make your selections to see an example of your chosen format.

Operation

The Name option specifies an existing date format or type in a name for your custom date format. An easy way to define a new format is to select an existing one that is similar to the format you want (from the Existing Formats list box), click Create, make your changes, and then change the name of the format before you click OK.

You can name custom formats for number, money, date, time, timestamp, and logical fields. You must give each format a unique name, regardless of its data type. For example, you cannot give a number format and a date format the same name.

The Permanent option saves the date format permanently to allow you to use it in format menus and dialog boxes whenever you use Corel Paradox. (Corel Paradox saves the format in the Windows registry.) Otherwise, the format is available only in the file (table view, form, or report) from which you specified the format.

Create

Click Create to open a Name text box in which you can type a name for your custom date format. When you click Create, the dialog box title changes to Create Date Format.

Change

Click Change to modify a custom date format.

You can change only those formats you have created. The Change button is dimmed when you choose an existing format, which cannot be changed.

Delete

Click Delete to delete a custom date format.

You can delete only those formats that you have created. The Delete button is dimmed when you choose an existing format, which cannot be deleted.

Add Format

Click Add Format if you are finished with one format, but want to stay in the dialog box to work on another. This adds your custom date format to the Existing Formats list box. (Click Permanent to save the format beyond the current session.)

Existing Formats

If you specify an existing date format here, its name appears in the Name box.


Select/Create/Change Logical Format dialog box

Use this dialog box to select, create, or change logical formats. Corel Paradox adds the newly defined format to the list of existing logical formats. You can then apply the new format to a logical field.

Logical Format

Type values in the text boxes to customize the logical format. You need one value for True and one value for False (for example, you could use full and empty).

Operation

The Name option specifies an existing logical format, or you can type in a name for your custom set in the Name text box. An easy way to define a new format is to select an existing one similar to the format you want (from the Existing Formats list box), click Create or Change,  make your changes, and then change the name of the format before you click OK.

You can name custom formats for number, money, date, time, timestamp, and logical fields. You must give each format a unique name, regardless of its data type. For example, you cannot give a number format and a date format the same name.

The Permanent option saves the logical format permanently to allow you to use it in format menus and dialog boxes whenever you use Corel Paradox. (Corel Paradox saves the format in the Windows registry.) Otherwise, the format is available only in the file (table view, form, or report) from which you specified the format.

Create

Click Create to open a Name text box in which you can type a name for your custom logical format. When you click Create, the dialog box title changes to Create Logical Format.

Change

Click Change to modify a custom logical format. The Change button is dimmed when you choose an existing format, which cannot be changed.

Delete

Click Delete to delete a custom logical format. The Delete button is dimmed when you choose an existing format, which cannot be changed.

Add Format

Click Add Format if you are finished with one format, but want to stay in the dialog box to work on another. This adds your custom logical format to the Existing Formats list box. (Click Permanent to save the format beyond the current session.)

Existing Formats

If you specify an existing logical format, its name appears in the Name text box.


Select/Create/Change Number Format dialog box

Use this dialog box to select, create, or change number formats. Corel Paradox adds the newly defined format to the list of existing number formats. You can then apply the new format to a number field.

Where applicable, you can right-click the format options to get the default Windows Number or Money settings. These are established by your Windows Control Panel.

Number Format

Use these options to customize the number format:

Options	Description

Decimals	Choose the number of decimal places to display to the right of the decimal point. You can display up to 15 decimal places. Type in, or select from the list box, the number of places to display.

Decimal Point	Choose how to display a decimal point: a period (.), a comma (,), or a custom character.

Thousand Separator	Choose how to display a thousand separator: a comma (,), a period (.), a space, or a custom character.

Symbol	Choose the type of symbol to display with the number: $, inch, lb, kg, cm, mi, or a custom symbol.

Spacing	Use Spacing to place a space between the number and its preceding symbol. You can specify a space between the symbol and the number for all positive values, for all negative values, for all values, or for none. Choose a spacing style from the list box.

The Spacing option is available only if you've chosen a symbol.

Positive	Use Positive to display a plus sign (+) for positive numbers. The list box gives several options for where the plus sign appears.

Negative	Use Negative to display an indicator with all negative numbers. You can indicate that a number is negative by using a minus sign (-) or parentheses. The list box gives several options for where the minus sign or parentheses appears.

Leading Zeros	Use Leading Zeros to specify the number of digits to display before the decimal place. For example, if you type the number 466 in a field that has Leading Zeros set to four, Corel Paradox displays the number 0466 when you move off the field.

If you type the number 03031 in a number field with less than five leading zeros, Corel Paradox displays the number 3031. Using a number format with five leading zeros, however, ensures that Corel Paradox displays the initial zero in the five-digit number. This is useful if you plan to store zip codes in number fields.

Scale	Use Scale to multiply the number by a given power of 10. If, for example, you enter 3 in the Scale text box, you'll see the example number multiplied by 1000. Choose a negative value to divide the number by a given power of 10.

Scientific Notation	Enable Scientific Notation to display the number in scientific-notation format.

Show Trailing Zeros	Enable Show Trailing Zeros to display digits to the right of the decimal point even if they are zero. This means that numbers with no decimal value will display as many zeros after the decimal point as you've specified in the Decimals box.

Operation

The Name option specifies an existing format, or you can type in a name for your custom number format. An easy way to define a new format is to select an existing one similar to the format you want (from the Existing Formats list box), click Create or Change, make your changes, and then change the name of the format before you click OK.

You can name custom formats for number, money, date, time, timestamp, and logical fields. You must give each format a unique name, regardless of the data type. For example, you cannot give a number format and a date format the same name.

The Permanent option saves the number format permanently to allow you to use it in format menus and dialog boxes whenever you use Corel Paradox. (Corel Paradox saves the format in the Windows registry.)

If Permanent is not enabled, the format is available only in the .TV file (or saved form or report) from which you specified the format.

Create

Click Create to open the Name text box in which you can type a name for your custom number format. When you click Create, the dialog box title changes to Create Number Format.

Change

Click Change to modify a custom number format. You can only change those formats you have created. The Change button is dimmed when you choose an existing format, which cannot be changed.

Delete

Click Delete to delete a custom number format. You can only delete those formats you have created. The Delete button is dimmed when you choose an existing format, which cannot be deleted.

Add Format

Click Add Format if you are finished with one format, but want to stay in the dialog box to work on another. This adds your custom number format to the Existing Formats list box. (Click Permanent to save the format beyond the current session.)

Existing Formats

If you specify an existing number format here, its name appears in the Name text box.

Example area

Refer to this area as you make your selections to see an example of your chosen format.


Select/Create/Change Time Format dialog box

Use this dialog box to select, create, or change your time formats. Corel Paradox adds the newly defined format to the list of existing time formats. You can then apply the new format to a time field.

Where applicable, you can right-click the format options to get the default Windows Time setting. This is established in your Windows Control Panel.

Time Format

Use these options to customize the time format.

Option	Description

Leading Zero	Enable the Hour, Minute, or Second check box to display a zero in front of single-digit values. This makes the time line up in a table column.

Time System	Specify a 12-Hour or a 24-Hour time system. If you choose 12-Hour, you can specify the values for Corel Paradox to display as AM and PM.

AM/PM	Choose AM or PM to specify which values to display for a 12-hour clock.

Order	Specify the order in which the time components [image] hour (%H), minute (%M), second (%S), and AM/PM indicator (%N) [image] should appear. (The percent signs indicate variables.) Delete a value to exclude that part of the time, or type a value to include it in the time format.

Example area

Refer to this area as you make your selections to see an example of your chosen format.

Operation

The Name option specifies an existing time format, or you can type in a name for your custom time format. An easy way to define a new format is to select an existing one similar to the format you want (from the Existing Formats list box). Click Create or Change, make your changes, and then change the name of the format before you click OK.

You can name custom formats for number, money, date, time, timestamp, and logical fields. You must give each format a unique name, regardless of the data type it applies to. For example, you cannot give a number format and a date format the same name.

The Permanent option saves the time format permanently to allow you to use it in format menus and dialog boxes whenever you use Corel Paradox. (Corel Paradox saves the format in the Windows registry.)

If Permanent is not enabled, the format is available only in the file (table view, form, or report) from which you specified the format.

Create

Click Create to open a Name text box in which you can type a name for your custom time format. When you click Create, the dialog box title changes to Create Time Format.

Change

Click Change to modify a custom time format.

You can only change those formats you have created. The Change button is dimmed when you choose an existing format, which cannot be changed.

Delete

Click Delete to delete a custom time format.

You can delete only those formats you have created. The Delete button is dimmed when you choose an existing format, which cannot be deleted.

Add Format

Click Add Format to add your custom time format to the Existing Formats list box.

Existing Formats

If you specify an existing time format, its name appears in the Name text box.


Select/Create/Change Timestamp Format dialog box

Use this dialog box to select, create, or change your timestamp formats. Corel Paradox adds the newly defined format to the list of existing timestamp formats. You can then apply the new format to a timestamp field.

Where applicable, you can right-click the format options to get the default Windows Timestamp setting. This is established by your Windows Control Panel.

Time Format

Use these options to customize the time format.

Option	Description

Leading Zero 	Enable the Hour, Minute, or Second check box to display a zero in front of single-digit values. This makes the time line up in a table column.

Time System 	Specify a 12-Hour or a 24-Hour time system. If you choose 12-Hour, you can specify the values for Corel Paradox to display as AM and PM.

AM/PM	Choose AM or PM to specify which values to display for a 12-hour clock.

Order	Specify the order in which the time components [image] hour (%H), minute (%M), second (%S), and AM/PM indicator (%N) [image] should appear. (The percent signs indicate variables.) Delete a value to exclude that part of the time, or type a value to include it in the time format.

Date Format

Use these options to customize the date format.

Option	Description

Weekday	Specify how to display the day of the week [image] as a full word or an abbreviation. (Weekday is dimmed until you specify to display weekdays using the %W in the Order text box.)

Day	Specify whether to display the day value with or without a leading zero.

Month	Specify whether the month value should be spelled out as a word, abbreviated, or indicated by a number.

Year	Specify whether to display four digits for the year or just the last two.

Era	Enable to specify values for BC and AD dates. Enter the values in the BC and AD text boxes. To display the era, you must put the %E symbol in the Order text box.

Order	Specify the order in which to display the weekday (%W), day (%D), month (%M), year (%Y), and era (%E) values. (The percent signs indicate variables.) Delete a value if you don't want that part of a date to appear, or type in a string, that you do want to include in the date format. For example, type in commas or parentheses.

Case	If you have specified to display words, rather than numbers, for months and weekdays, enable the Case check box to choose Mixed (initial uppercase letters), or Lower (all lowercase letters).

Existing Formats

If you specify an existing timestamp format here, its name appears in the Name text box.

Operation

The Name option specifies an existing timestamp format, or you can type in a name for your custom format. An easy way to define a new format is to select an existing one similar to the format you want (from the Existing Formats list box). Click Create or Change,  make your changes,and then change the name of the format before you click OK.

You can name custom formats for number, money, date, time, timestamp, and logical fields. You must give each format a unique name, regardless of the data type. For example, you cannot give a number format and a date format the same name.

The Permanent option saves the timestamp format permanently to allow you to use it in format menus and dialog boxes whenever you use Corel Paradox. (Corel Paradox saves the format in the Windows registry.)

If Permanent is not enabled, the format is available only in the file (table view, form, or report) from which you specified the format.

Create

Click Create to open a Name text box in which you can type a name for your custom timestamp format. When you click Create, the dialog box title changes to Create Timestamp Format.

Change

Click Change to modify a custom timestamp format. You can only change those formats you have created. The Change button is dimmed when you choose an existing format, which cannot be changed.

Delete

Click Delete to delete a custom timestamp format. Note: You can only delete those formats you have created. The Delete button is dimmed when you choose an existing format, which cannot be deleted.

Add Format

Click Add Format to add your custom timestamp format to the Existing Formats list box.

Example area

Refer to this area as you make your selections to see an example of your chosen format.


Set Working Directory dialog box

Use the Set Working Directory dialog box to change your working directory.

Path

Type the full path of your new working directory in the Working Directory text box, or click Browse to search for the desired path.

Aliases

If your new working directory has an alias you can select it from the drop-down list.


Set Range For Index dialog box

Use this dialog box to specify a range of records to see in a table or form.

The primary and more powerful way to filter a form is to use the filter capabilities that are available directly from the Filter Tables dialog box.

Range cannot be saved as a table property, but it can be saved as part of a form's design.

Index

Displays the table index that is selected from the Filter Tables dialog box.

Field Values

To display only those records that match exactly the value you specify, enter the value in the text box in the Field Values area. For example, if you have an index on the Country field of the Customer table and you enter Canada as the value to match, Corel Paradox displays only those records of the table with Canada as the Country value.

Set Range

When Set Range is enabled, another text box is displayed to allow you to define the range of values to display. Type the low value in the top text box and the high value in the bottom text box. Corel Paradox does not recognize blanks as part of a match or range specification.

Match Partial Strings

If you only care about matching the beginning letters of a string, use Match Partial Strings (for, example, if you want all names beginning with letters A to G). Match Partial Strings is hidden until you enable Set Range and is available only if the table's index field is alpha.

To match partial strings, enable Set Range and enter low and high values. Enable Match Partial Strings to tell Corel Paradox you do not care what the full field value is, as long as it falls within that range. Corel Paradox looks for the strings you enter in the range- value text boxes and ignores any following characters in the string.

For example, if you type AX in the first box and CZ in the second box, Corel Paradox looks for all strings in which the first two letters are AX to CZ. Axminster is included, but Allen is not. Likewise, Bloom and Czech are included but Dailey is not.


Sort Record Band dialog box

Use this dialog box to indicate how to sort the records in a report. This sorting is done after any sorting done by group bands.

Fields

Corel Paradox displays the fields in your table. Click on the field in which you want a Table Lookup, and then click the Right Arrow button. The field name appears in the Field Name list box. To remove a field from the list, click the field, and then click the Left Arrow button.

You do not have to put all the fields from the Fields list box in the Sort Order list box.

Corel Paradox cannot sort on BLOB, BCD, logical, or bytes fields. That's why these fields are unavailable in the Fields list box.

Sort Order

To move a field up or down in the Sort Order list box, click the field, and click the Up or Down arrow buttons.

The default sort order is ascending, which is indicated by a + in front of the field name in the Sort Order list box. To change to descending, double-click the field name or click Sort Direction; + changes to -, to indicate a descending sort order.

Sort Direction

Click Sort Direction to switch between ascending and descending sort order for the selected field in the Sort Order list box.


Sort Table dialog box

Use the Sort Table dialog box to sort a table.

You cannot sort SQL tables.

Fields

Select the fields to add or remove from the Sort Order list box. All fields from the selected table are listed.

Sorted Table

Use these options to specify how to sort a table.

•	Same Table

The sort overwrites the existing sort order of the table.

Same Table is available only if you are sorting an unkeyed table. Sorting a keyed table to the same table would conflict with the primary index established by the key, which Corel Paradox does not allow.

If you sort the table to itself, you cannot have any forms or reports that use the table in their data model open in View Data mode. You can have queries and forms and reports that use the table in their data model open as long as the forms and reports are open in a design window.

•	New Table

The sort creates a new table. Type the name of the new table in the text box that is displayed when you choose this option.

If you enter the name of an existing table, Corel Paradox prompts you to confirm that you want to overwrite the existing table.

If you overwrite an existing table, you must close all windows that include that table's data before you perform the sort. You cannot have any forms or reports that use the table in their data model open and in View Data mode. You can have queries and forms and reports that use the table in their data model open as long as the forms and reports are open in a design window.

•	Sort Just Selected Fields

Corel Paradox sorts only on the fields that appear in the Sort Order list box. All the fields of the source table are included in the resulting sorted table, but they are not sorted beyond the fields listed in the Sort Order list box.

If two or more records have identical values in these fields, Corel Paradox cannot sort these records and places them in the table as a group, but unsorted within the group.

If you do not enable this option, Corel Paradox performs the sort first on the fields in the Sort Order list box, and then [image] if there are two or more records with identical values in their sorted fields [image] on the fields that remain in the Fields list box (in the order in which they appear).

•	Display Sorted Table

Displays the results of the sort immediately. Corel Paradox opens the sorted table when you close the dialog box.

Fields

Choose the fields to remove or add to the Sort Order list box. After you have chosen a field, click the Right Arrow button to add it to the Sort Order list box. To remove a field from the list, click the Left Arrow button.

You don't have to put all the fields from the Fields list box in the Sort Order list box. Corel Paradox adds the rest of the fields to the end of the Sort Order list box before it performs the sort (unless Sort Just Selected Fields is enabled).

A field is dimmed when you add it to the Sort Order list box.

Corel Paradox cannot sort on BLOB, BCD, logical, or bytes fields. These fields are unavailable in the Fields list box.

Clear All

Removes all fields from the Sort Order list box, which makes these fields available again in the Fields list box.

Sort Order

Displays fields to include in the sort.

Sort Direction

Switches between ascending and descending sort order for the selected field in the Sort Order list box.

The default sort order is ascending, which is indicated by a + in front of the field name in the Sort Order list box. To change to descending, double-click the field name or click Sort Direction; + changes to -, to indicate a descending sort order.

Change Order

Changes the order of the fields in the Sort Order list box. To move a selected field up or down in the Sort Order list box, click the Up Arrow  or Down Arrow.


Structure Information dialog box

Use this dialog box to get information about a table's structure or to save that structure information to a table.

For Corel Paradox tables, the Structure Information dialog box shows you validity checks, table lookups, secondary indexes, referential integrity, table language, and dependent tables.

For dBASE tables, the Structure Information dialog box shows you indexes and table language.

For SQL tables, the Structure Information dialog box shows you indexes and indicates whether each field is required.

You cannot change the table structure from this dialog box. To change the table structure, click Tools, Utilities, Restructure.

Field Roster

The table's fields and field types are shown in the Field Roster.

Field Name	Specifies the name of the field.

Type	Specifies the type of the field.

Size	Specifies the size of the field.

Key	Specifies whether the field is a key field.

Table Properties

Use the Table Properties list box to view information about the table. This list is available only for local tables. If you view a dBASE table, the Table Properties list box shows only the table indexes and table language.

Validity Checks	Shows each field's defined validity checks. Move through the fields in the Field Roster to see each field's validity checks.

Table Lookup	Shows any tables that this table uses as a lookup table.

Secondary Indexes	Shows all the table's secondary indexes.

Referential Integrity	Shows whether this table refers to a parent table for valid data.

Table Language	Shows the table's language driver.

Dependent Tables	Shows any table that uses this table as a parent table for valid data.

Indexes	Shows a dBASE table's indexes.

Required Field	Shows whether this field is required to have a value in every record.

Detail Info

Choose an index from the Index list box and click Detail Info to see information about the index. This option is available only when you choose Secondary Indexes or Indexes in the Table Properties list box.

Save As

Click Save As to create a table that shows the structure information for the table with which you are working. The structure table's fields correspond to the settings in the Structure Information dialog box. The structure table does not include information about secondary indexes, table language, and referential integrity.


Style Sheet dialog box

Use this dialog box to associate a style sheet with a design document and to save changes you have made to design tools.

Choose a style sheet from the Style list box and click OK to apply a style sheet, or click Save to save changes you've made to design tools.

Current Style Sheet

Choose the style sheet to associate with the form or report. The extension of the style sheet (.FT or .FP) depends on whether your design document is designed for the screen, or designed for the printer.

Save

Saves to the selected style sheet any changes you have made to design tools.

Save As

Creates a new style sheet based on the current style sheet and any changes you have made to design tools. Corel Paradox opens the Save File As dialog box.


Subtract Records In dialog box

Use the Subtract Records In dialog box to subtract the records in one table from those in another table. Records are looked up and subtracted from the second table based on a key value. The Subtract Records In dialog box indicates the table to subtract from another table.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files Of Type

Displays the type of files you can use for the subtraction operation you are performing.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Subtract Records In <table> From dialog box

Use this dialog box to subtract the records in one table from the records in another table.

Look In

By default, Corel Paradox displays the working directory. To choose another directory, use this list box to browse for the directory you want. All files of the selected type in that directory appear in the Look In list box.

File Name

Type the name of the file to which to add records, or double-click on a file from the Look In list box. You don't need to type an extension; Corel Paradox recognizes the type of file you want based on the type shown in the Files Of Type list box.

Files of Type

Displays the type of files you can use for the subtraction operation you are performing.

Alias

If the directory you want has an alias, you can choose it from the Alias list box. The dialog box shows the name and files in the new directory.


Table Language dialog box

Use this dialog box to override the default table-language driver you set using the BDE Configuration Utility.

Language

Choose a different language from the Language list box. Each selection corresponds to a different set of language properties, including the available character set, language sort order, and upper/lower-case handling.


Table Locks dialog box

Use this dialog box to see what kind of lock you have placed on a table.

Table Name

Type the table name or choose one from the Table None list box.

File Type

Displays the type of file with which you are working.

Directories and Drive (Or Alias)

Choose a drive or alias from the Drive (Or Alias) list box, then choose a directory from the Directories list box. The Tables list box displays the tables in the directory you select.

Locks

Shows the level of lock you have placed on the table.

No Lock	You have placed no desktop-level locks on the table. Select No Lock to unlock a table you have locked.

Open Lock	Corel Paradox places this lock whenever you open a table. This prevents others from putting an exclusive lock on the table before you actually start editing. They can still put a write lock on the table, so you would not be able to read (view) the table.

Read Lock	You can read (view) and write to (edit) the table. All other users with sufficient rights can read [image] they can view data [image] but they are locked from writing to the table.

When you place a read lock on a table, no other user can place a lock on the table that prevents you from reading it [image] your right to read is guaranteed.

Write Lock	You can read and write to the table. All other users can read but cannot write to the table.

Exclusive Lock	You have read and write access to the table, and no other users have any rights. You even protect the table name with an exclusive lock. No other user can create a table with the same name.

You can get an exclusive lock only if no other user has placed an open, read, or write lock on the table, or if no other user has any form of the table open. This includes forms, reports, and queries that use the table.


Table Lookup dialog box

Use this dialog box to specify a lookup table for a field.

Fields

Corel Paradox displays the fields in your table. Click on the field for which you want a table lookup, and then click the Right Arrow button. The field name appears in the Field Name list box.

Field Name

Shows the field you are specifying the table lookup for. Choose any available field in the Fields list box.

Lookup Field

Shows the first field of the table you have specified as the lookup table. Choose any table in the Lookup Table list.

Lookup Table

Shows the tables in the current directory. (Use Browse to see tables in other folders.) Choose a table from the list to use as the lookup table, and then click the Left Arrow button. The name of the first field of that table appears in the Lookup Field list box.

Lookup Type

Choose the type of table lookup.

When the Just Current Field option is enabled, only the current field gets its value from the lookup table even if the current table and the lookup table have other fields in common.

When the All Corresponding Fields option is enabled all fields of the current table that correspond to fields in the lookup table take their values from the lookup table. Corresponding fields must have identical field names and compatible field types in both tables. Only the first field of the lookup table is used as part of the validity check.

Lookup Access

Choose the type of viewing access.

With Fill No Help enabled, you cannot view the lookup table from the table you are entering. You can view the lookup table by opening it in its own window.

With Help And Fill enabled, you can view the lookup table from the table you are editing.

Drive (or Alias)

Use the list box to choose an alias or your private directory.

Browse

Click Browse to see files in other directories in the Select File dialog box.


Table Name dialog box

Use this dialog box to specify a table alias for a table in a data model, query, or SQL file.

Name of Table

Type the table alias in this field. A table alias can be up to 32 characters in length and cannot contain blanks.

Avoid ending a table alias with a number because Corel Paradox automatically adds numbers to the end of table names that are used more than once in a data model. (You have to right-click the table to see this).

To remove a table alias, delete the text in this text box.


Object Toolbar page (Toolbar Properties dialog box)

Use this page to add a control to the Object Toolbar.

A list of registered OLE controls and native Windows controls is displayed. Controls will not display in this box unless they are registered.

Add Toolbar

Click Add Toolbar to add additional Object Toolbars. In the highlighted area of the list box, type in the name for the new Toolbar.

Add Control

Click Add Control to add a new, registered control to the selected Toolbar. Choose the control to add from the Insert Control dialog box.


(Edit) Watches dialog box

Edit the name of the variable to watch, and click OK.


(New) Watches dialog box

Type the name of the variable to watch, and click OK.


Navigation icons

Buttons to help you navigate within the file directory are located to the right of the Look In list box.

To move up a level from the selected area, click the Up One Level icon.

To create a new folder, click the Create New Folder icon. To name the new folder, type over the default name.

To show only folder names, click the List icon.

To show folder names plus details, click the Details icon.


Window Style dialog box

The Window Style dialog box gives you advanced form-design options. You specify whether you want your form to appear as a window or as a dialog box and set its title and border properties.

To see the changes after you finish, you must save and reopen the form.

Some of these options require that ObjectPAL are methods attached to your form.

Window Style

Choose whether your form will appear in a window or in a dialog box. Windows are contained within the boundary of the Corel Paradox desktop. Dialog boxes can be moved outside the desktop but cannot be resized by the user.

Frame Properties

These options are available only if you choose Dialog Box as your Window Style:

Dialog Frame	Displays the form in a normal Windows dialog box. The border, colors, and other settings are determined by the settings in the Windows Control Panel.

Border	Displays the form with a black border instead of the normal Windows style. If you do not enable Dialog Frame or Border, the Dialog Box appears with no border.

Thick Frame	Displays the dialog-box border as a thick black line.

Title Bar Properties

These options are available only if you choose Dialog Box as your Window Style and Title Bar as a Window Property. They are placed automatically if you choose Window as your Window Style.

Control Menu	Places the Control Menu in the top-left corner of your dialog box.

Minimize Button	Places a Minimize button in the top-right corner of your dialog box.

Maximize Button	Places a Maximize button in the top-right corner of your dialog box.

Window Properties

Choose the window features you want the form to have:

Title	Type a window title. This title appears under the icon when users minimize the form. It also appears on the Title Bar if you enable Title Bar. If you do not type anything here, Corel Paradox uses the form name. To have a blank Title Bar, type a space in the Title text box.

Title Bar	Puts a Title Bar on your form. If you choose Window as your Window Style, Title Bar is automatically enabled and cannot be turned off.

Vertical Scroll Bar	Displays a scroll bar on the right side of your form.

Horizontal Scroll Bar	Displays a scroll bar on the bottom of your form.

Size To Fit	If you enable Size To Fit, Corel Paradox opens the form in a window of the size specified in the Page Layout dialog box. Otherwise, the form opens in the Windows default size. This option is always enabled if you choose Dialog Box as your Window Style.

Modal	Prevents users from working anywhere else in Corel Paradox until the form is closed. (Users can still work in other applications, however.) This option is available only if you choose Dialog Box as your Window Style.

Mouse Activates	Mouse Activates is enabled by default. If you choose Dialog Box as your Window Style, you can disable this option to let users click the form to activate the form without changing its focus.

For example, if you have created a personalized Toolbar and you want to use the tools on that Toolbar in your form, disabling Mouse Activates will prevent Corel Paradox from activating the Toolbar window every time a user clicks one of the Toolbar tools.

Mouse Activates is always enabled and is unavailable for Window style or modal Dialog Box style.

Standard Menu	When this option is enabled, any form displays the standard Corel Paradox Form window menu when you view data. Standard Menu is enabled by default. It is available only if you choose Window as your Window Style.

If you create a menu by using  ObjectPAL, and want your form to use it, disable Standard Menu. This applies mainly to multi-form applications.


If the directory you want has an alias, you can select it in the Alias drop-down list. The name of the selected directory appears in the Look In drop-down list and the files in that directory appear in the file list.


View the Form opens the form in its view window.


Edit the Form Design opens the form in its design window.


Print the Report prints the form as a report if you also choose Open as Report.


Open as a Report opens the form as a report. This is a quick way to use a form layout to specify the layout of a report.


Run the Query runs the query and displays the Answer table.


Edit the Query opens the query in its design window.


View the Report opens the report in its view window.


Edit the Report Design opens the report in its design window.


Print the Form prints the report as a form if you also choose Open as Form.


Open as a Form opens the report as a form. This is a quick way to use a report layout to specify the layout of a form.


Run the Script runs the script.


Edit the Script opens the script in its design window.


Run the Query runs the query and displays the Answer table.


Edit the Query opens the query in its design window.


Opens a form or report using a different master table [image] a different table from the one on which it was originally designed. When you choose Change Table, Paradox opens the Select File dialog box, where you specify the new master table.


Close command

Closes the active child window.


Design command

Prints the active report design.


Exit command

Closes Paradox.


Export command

Exports table data to a different file format.


Import command

Transfers data from a different file format to a Paradox table.


New command

Opens the New dialog box, where you can choose to create a new file from scratch or based on a task-oriented template, or work on a recently opened file.


Open command

Opens a table, form, report, query, SQL, script or library file with run, view, design, or edit options as appropriate.


Page Setup command

Opens the Page Setup dialog box, which allows you to specify paper size, margins, and other page settings.


Print command

Prints the active table, form, report, SQL script, or ObjectPAL script.


Publish to HTML command

Converts the active table, report or form into an HTML file.


Print Report command

Prints the active report.


Save command

Saves the active file to the filename and path where it was originally saved.


Save As command

Opens the Save As dialog box where you can specify the filename and path to save the active file.


Send To command

Sends the file to the selected destination.


Working Directory command

Opens the Set Working Directory dialog box to allow you to quickly access a group of files that are in the same directory.


Write As Text File command

Saves the current report as a text (.TXT) file.


Block Type command

Specifies how you want selected code to be blocked.


Column Block command

Enables you to select multiple partial lines of code.


Copy command

Copies the selected text or objects onto the Clipboard.


Copy To command

Copies binary, memo, formatted memo, and graphic values to non-Paradox files, without using the Export command.


Copy To Toolbar command

Changes the default properties for a design tool. All design objects you subsequently place with that tool will have the same properties.


Current Object command

Displays the right-click pop-up menu for the currently selected object.


Cut command

Removes selected text or objects and places them on the Clipboard.


Delete command

Deletes the selected text or object and all objects contained by it.


Duplicate command

Replicates the selected design object.


Find command

Opens the Find dialog box, which you can use to search your SQL statement for a specified string.


Find Next command

Moves to the next occurrence of the text you specified in the Find dialog box.


Find and Replace command

Searches for a text string (a word or phrase) in a selected memo field, formatted memo field or text object.


Indent Block command

Indents a selected block of code.


Insert Table command

Opens the Select File dialog box to add a table to the Query window.


Line Block command

Enables you to select a block of code by entire lines (from one edge of the Editor window to the other).


Links command

Opens the Edit Links dialog box, which allows you to modify the links in OLE containers.


<OLE object> command

Displays a secondary menu that contains the OLE commands provided by an OLE server.


Outdent Block command

Outdents a selected block of code.


Paste command

Inserts information previously placed on the Clipboard. The contents of the Clipboard are not deleted when you paste, so you can paste as many times as you want.


Paste From command

Pastes a value from an external file into a selected Paradox field or object. You can paste from .TXT, .BMP, .PCX, .TIF, .GIF, and .EPS files.


Paste Special command

Creates a linked duplicate of data entered through Dynamic Data Exchange (DDE) so that any change you make to the source is automatically made to the duplicate. Also inserts a linked object in an OLE container.


Playback Keystrokes command

Repeats the last keystrokes you recorded, beginning at the insertion point. You can play back the last recorded keystrokes as many times as you want.


Record Keystrokes command

Begins recording your keystrokes. Choose it again to stop recording.


Redo command

Restores the last thing you undid with the Undo command.


Remove Table command

Removes one or more tables from the Query window.


Replace command

Opens the Find And Replace dialog box to search for text and replace it with a value you specify.


Replace Next command

Replaces the next occurrence of the text specified in the Find And Replace dialog box.


Save Crosstab command

Saves a crosstab to a table. This menu command is available only when running a form that contains a crosstab.


Search command

Searches for specified text.


Select All command

Selects all:  table fields or memo and formatted memo field text in Table windows; entire fields in Form windows; all design objects within the currently selected object in Design windows; or all text in the Editor.


Stream Block command

Enables you to select a block of code by stream, starting your selection at any place in a line without highlighting the entire line, and ending your selection on the same line or another line without highlighting that entire line.


Undo command

Undoes the last operation or edit. You cannot use the Undo command to retrieve a record you have deleted.


Undo All Edits command

Discards all changes since the active Editor window was last saved or opened.


Band Labels command

Controls the display of band labels in a report.


Breakpoints command

Opens the Breakpoints window, which lists the object name, method name, and line numbers of breakpoints, and lets you remove any or all breakpoints.


Call Stack command

Opens the Call Stack window, which lists the methods and procedures called since the form started running.


Cascade Tables command

Overlaps multiple table query images in the Query window.


Debugger command

Opens the Debugger, which lets you interactively test and trace execution of commands in your methods.


Design Form command

Allows you to create or modify a form. In the Form Design window you can select objects, move them, resize them, and change their properties.


Design Report command

Opens the Report Design window, where you create or modify the design of a report.


Document Source command

Displays a report listing the source code in the current form, report, library, or script.


Edit Data command

Allows you to enter or edit data in the active table or form.


Field Palette command

Displays the Field Palette dialog box, which shows fields for the selected table.


Field View command

Allows you to place the insertion point in a field, rather than selecting the entire field.


Grid command

Displays major grid lines and minor grid ticks.


Memo View command

Allows you to place an insertion point and use ENTER and TAB as characters in Memo and Formatted Memo fields.


ObjectPAL Quick Lookup command

Opens the Quick Lookup dialog box, which you can use as a reference to the ObjectPAL language and to insert elements of the language into your code.


Page command

Navigates through document pages.


Persistent Field View command

Keeps your table, form, or query in Field View.


Ruler command

Shows rulers to help you position objects on your forms and reports.


Run Report command

Displays the data in the report.


Show Deleted command

Displays deleted dBASE records.


Show SQL command

Translates your query into Structured Query Language (SQL) and displays the code in the SQL Editor window.


Size and Position command

Displays in the status bar the size and position of design objects as you create or resize them.


Table Structure command

Opens the Structure Information dialog box, which displays information about a table’s fields, relationships with other tables, and other structural properties.


Table View command

Opens a window displaying the master table for your form.


Tile Pages command

Controls the onscreen display of the pages using tiling options when you are working with a multi-page form.


Tile Tables command

Arranges multiple table query images in the Query window without overlapping.


Toolbars command

Opens the Toolbars page of the Preferences or Toolbar Properties dialog box, which allows you to specify which Toolbars display instead of or in addition to the Standard Toolbar for each Paradox window.


Tracer command

Opens the Tracer window, which lists each line of code as it executes.


View Data command

Allows you to view your data but not add new data or change existing data.


Watches command

Opens the Watches window, which lets you inspect a variable's value while the form or method executes.


Zoom command

Allows you change the magnification to view a larger or smaller area of the onscreen design document.


Find command

Opens the Find dialog box, which you can use to search an Editor window for a specified string.


Find Next command

Searches for the next occurrence of text you specified in the Find dialog box.


Go To Bookmark command

Takes you to bookmark number 1.


Go To Line command

Moves to a specific line.


Incremental Search command

Finds the text you want, beginning from the insertion point.


Matching Parenthesis command

Finds the matching parenthesis of a pair when you place the insertion point in front of the parenthesis whose mate you want to find. Works forward or backward.


Next Warning command

Displays the next warning message from the compiler.


Replace command

Opens the Find And Replace dialog box to search for text and replace it with a value you specify.


Replace Next command

Replaces the next occurrence of the text specified in the Find And Replace dialog box.


Set Bookmark command

Marks a place in your code at the insertion point.


Delete command

Deletes the current record from the table.


Field command

Moves to a specific field using the Locate Field dialog box.


Filter command

Opens the Filter dialog box, which allows you to set filter criteria to display a selected set of records, or display the records in a specific order.


Go To command

Moves to the specified record.


Insert command

Places a blank record above the selected record.


Locate Next command

Searches for the next occurrence of the value you last searched for.


Lock command

Places a lock on the record you are viewing.


Lookup Help command

Opens the appropriate lookup table for a field with required values, which allows you to choose the value you want.


Move Help command

Moves a detail record to a new master record in either a 1 [image] M form or a referential integrity relationship.


Post/Keep Locked command

Writes your changes to the current record and moves the record to its place in a keyed table. Other users can see it, but the record is locked so you can continue editing it.


Record Number command

Moves to a particular record specified by number in the Locate Record Number dialog box. The record number of a Paradox table is assigned automatically by Paradox and cannot be edited.


Reference command

Allows you to access Lookup Help and Move Help table reference tools.


Replace command

Opens the Locate and Replace dialog box, which allows you to specify conditions to locate and change a particular value in a field.


Value command

Moves to a particular record specified by value in the Locate Value dialog box.


Alias Manager command

Opens the Alias Manager dialog box, which allows you to view, change, or add database aliases.


Data Model Designer command

Opens the Data Model Designer, which allows you to modify the data model of a design document and to load, modify, and save new data models.


Developer Preferences command

Customizes the ObjectPAL development environment (which includes the Editor, the Debugger, the Object Explorer, the ObjectPAL Quick Lookup, and the Form Design window).


Display Locks command

Finds all the locks currently placed on a Paradox table in a multi-user environment and shows which user placed them.


Experts command

Opens the Paradox Experts dialog box, where you can run one of the Experts to help you perform common Paradox tasks.


Object Explorer command

Opens the Object Explorer window, which allows you to change object properties and add functionality with ObjectPAL code.


Passwords command

Opens the Enter Passwords dialog box, where you can specify which table passwords to use in the current Paradox session. (Passwords can be defined for your tables in the Create Table or the Restructure Table dialog boxes.)


Project Viewer command

Opens the Project Viewer, which lists all the files in your current working directory or database and your private directory.


Preferences command

Opens the Preferences dialog box to set General, Form/Report, Designer, Query, Toolbars, Experts, Advanced, Database, and BDE properties for current and future Paradox sessions.


Register ActiveX Control command

Opens the Register ActiveX Control dialog box, where you can specify the location and name of the .OCX control you want to register in the system registry.


Register Add-In command

Opens the Add/Remove Paradox Add-In dialog box, where you can specify the location and name of the add-in DLL you want to register in Paradox.


Security command

Allows you to work with Paradox table security options.


Set Locks command

Opens the Table Locks dialog box, which allows you to place locks on a table and shows existing table locks.


Settings command

Allows you to specify various application preferences.


Table Repair command

Opens the Table Repair Utility dialog box, which lets you rebuild a damaged table or verify a table's integrity.


Utilities command

Allows you to work with Paradox tables.


Quick Report command

Creates a pre-defined report from the active table data.


Quick Form command

Creates a pre-defined form from the active table data.


Quick Chart command

Creates a pre-defined chart from the active table data.


Quick Crosstab command

Creates a pre-defined crosstab from the active table data.


Arrange Icons command

Arranges icons across the bottom of the Desktop in a straight line, maintaining the same order it found them in, left to right.


Cascade command

Overlaps all open windows on the Desktop so only the title bars of inactive windows show.


Close All command

Closes all open windows on the Desktop.


Tile Side-by-Side command

Fits all open windows side-by-side on the Paradox Desktop without overlapping. The currently active window will be the leftmost window.


Tile Top and Bottom command

Fits all open windows one above the other on the Paradox Desktop without overlapping. The currently active window will be the topmost window.


<window name>

Activates the listed window.


Ignore Changes command

Allows other users to make changes to the source table(s) while Paradox runs your query and prevents Paradox from restarting the query if they do.


Lock Tables command

Locks all tables in your query, preventing any changes to them while Paradox runs the query. Paradox releases the locks when it finishes running the query.


Properties command

Opens the Query Properties dialog box, which allows you to specify how you want Paradox to run the current query.


Restart On Changes command

Sets Paradox to restart the query when it detects a change to the source table(s).


Run Query command

Executes the active query.


Wait For DDE command

If Wait For DDE is enabled, the query refreshes every time the DDE value changes. If Wait For DDE is disabled, you must explicitly tell Paradox when to run the query, and it will take the current DDE value.


Add Watch command

Adds a watch to a variable. You can then track the variable’s value in the Watches window while the form or method executes.


Check Syntax command

Compiles and checks the syntax of the code in the active Editor window and all windows it references either directly or indirectly. If a syntax error is found, a window opens with the insertion point positioned near the error, and an error message appears in the status bar.


Compile command

Compiles and checks the syntax of all the code in the form, library, or script. If syntax errors are found, the first Editor window containing an error is opened and an error message appears in the status bar.


Compile With Debug command

Makes debug information available when you run a form, library, or script.


Compiler Warnings command

Warns you with messages in the status bar about undeclared variables and other conditions that might cause errors at run time.


Deliver command

Delivers the code.


Keywords command

Displays a cascading menu of frequently used keywords, which you can insert into methods by clicking on the desired keyword.


Run command

Runs the current form or script, saving all attached methods, compiling the code, and leaving you in a View window.


Toggle Breakpoint command

Sets a breakpoint in a method to suspend execution at a specified line of code.


Properties command

Controls where the SQL query is performed (local or remote) and how the results are presented.


Run SQL command

Executes the active SQL statement.


Select Alias command

Opens the Select Alias dialog box, which allows you to select the alias of the remote database you want to connect to.


Send to Query Builder command

Opens the Visual Query Builder to help you construct a SQL query.


About Paradox command

Opens the About Paradox dialog box, which displays the version of Paradox that you are using.


PerfectExpert command

Displays the Corel PerfectExpert to help you work with and learn about Corel Paradox.


Corel Web Site command

Launches your default browser to display Corel Corporation’s home page.


ObjectPAL Reference Topics command

Opens the ObjectPAL Reference Table of Contents.


User's Guide Topics command

Opens the User’s Guide Table of Contents.


Add a Category command

Opens the Define Crosstab dialog box, which allows you to add category fields to the selected crosstab.


Add a Summary command

Opens the Define Crosstab dialog box, which allows you to add summary fields to the selected crosstab.


Add OLE Control command

Opens the Insert Control dialog box, which allows you to choose a registered OLE control to add to the Object Toolbar.


Add Page command

Adds a blank page to the notebook object after all existing pages.


Align command

Displays the Align Toolbar, which has tools for aligning design objects.


Auto-Append command

Allows automatic insertion of new records by moving to the end of a form and typing.


Data Dependent command

Opens the Data Dependent Properties dialog box, which lets you display a specified range of values with different colors or fonts.


Define Crosstab command

Opens the Define Crosstab dialog box to define crosstab fields, grouping, summarizing, and other options.


Define Column Field command

Opens the Define Crosstab dialog box to define crosstab fields, grouping, summarizing, and other options.


Define Field command

Opens the Define Field Object dialog box, which allows you to choose fields from other tables in the data model, define calculated fields or special fields, choose summaries, add tables to the data model, and choose Corel Paradox special fields.


Define Group command

Opens the Define Group dialog box, which allows you to specify ranges on which to group for the selected report group band.


Define Record command

Opens the Define Multi-record Object dialog box, which allows you to choose the fields you want displayed in the record.


Define Table command

Opens the Define Table Object dialog box, which allows you to choose table fields to display.


Delete command

Changes a table by removing data that matches the query.


Delete Column command

Deletes the selected column in a table frame object.


Field Layout command

Opens the Layout Multi-record object dialog box, which allows you to change the layout of a multi-record object.


Fields command

Displays a list of fields and field types in the table or query.


Filter command

Opens the Field Filter dialog box to apply a filter to the selected field or field object.


Insert command

Changes a table by inserting data that matches the query.


Insert Column command

Creates a new column in a table frame object.


Minimize Columns command

Resizes all the columns of a table frame object to the minimum width.


Move Grid To Band command

Moves the grid so it starts at the top of the band you are working on.


Object Explorer command

Opens the Object Explorer window, which is used to apply ObjectPAL code to an object.


Page command

Moves through the pages in a notebook object.


Paste <OLE object on Clipboard> command

Places the OLE object on the clipboard into an OLE object on a form or report.


Properties command

Opens the appropriate Properties dialog box, which allows you to set various physical properties for the selected object.


Read-Only command

Prevents a table from being edited.


Rotate Pages command

Moves the selected notebook page to the last page's position.


Set command

Performs a SET query on a group of records.


Sort command

Opens the Sort Record Band dialog box, which allows you to specify the fields you want to sort on, their order, and their sort direction for report record bands. The sorting is done after sorting that results from any group bands.


Standard command

Displays the Standard toolbar for each window when enabled.


Text Formatting command

Displays the Text Formatting toolbar in forms and reports.


Window Style command

Allows you to access advanced options in designing forms.


1-D Summary command

Analyzes one type of data in light of another.


2D Area command

Displays the selected series as a 2D area type.


2D Bar command

Displays the selected series as a 2D bar type.


2D Line command

Displays the selected series as a 2D line type.


2-D Summary command

Summarizes information by more than one category.


Alternate property (charts)
Alternate command

Displays every other label on a second line under the x-axis.


Auto-Scale property (charts)
Auto-Scale command

Makes a numeric axis fit the range of data in a chart object.


Background property (charts)
Background menu

Changes the chart background color and pattern.


Back Wall property (charts)
Back Wall menu

Changes the color and pattern of the chart’s back wall.


Base Floor property (charts)
Base Floor menu

Changes the color and pattern of the chart’s base floor.


Chart Type property (charts)
Chart Type command

Changes the chart type.


Color property (charts)
Color command

Changes the color of the selected object or part of an object.


Data Type property (charts)
Data Type command

Changes the data type for the chart.


Define Chart command

Opens the Define Chart dialog box, which allows you to specify the fields for the x- and y-axes, grouping and summarizing options, and the Data Type.


Define Group command

Opens the Define Field Object dialog box, which allows you to choose fields from other tables in the data model, or click the Data Model button to add tables to the data model.


Define X-Value command

Opens the Define Field Object dialog box, which allows you to change the field you want charted along the X-axis.


Define Y-Value command

Opens the Define Field Object dialog box, which allows you to change the field you want reflected in the series.


Elevation property (charts)
Elevation command

Changes the angle from which you view a 3-D chart.


Explode property (charts)
Explode command

Highlights the selected part of a pie chart by separating it from the rest of the pie.


Font property (charts)
Font command

Changes font attributes for the selected text.


Format of X-Value property
Format of X-Value

Changes the way x-axis values are displayed on some charts. Right-click a chart and choose Label, Format of X-value. Or, to define your own format, click the top of the list to open the appropriate dialog box. Label Format is available only for 2-D and 3-D pie and columns charts.


Format of X-Value property (charts)
Format Of X-Value

Changes the way x-axis values are displayed on some charts. Right-click a chart and choose Label, Format of X-value. Or, to define your own format, click the top of the list to open the appropriate dialog box. Label Format is available only for 2-D and 3-D pie and columns charts.


High Value command

Sets the highest possible value to display for the axis.


Increment property (charts)
Increment command

Changes the space between tick marks on numeric axis.


Label command

Sets label font and format properties.


Label Format command

Changes the way values on the y-axis are displayed on the selected chart.


Label Location property (charts)
Label Location command

Specifies where you want to show y values for all data points on a chart.


Left Wall property (charts)
Left Wall menu

Changes the color and pattern of the chart’s left wall.


Legend Position property (charts)
Legend Position command

Specifies the location of the chart's legend at either the right or along the bottom of the chart.


Line command

Sets line properties.


Line Style command

Changes the style of the connecting lines.


Logarithmic property (charts)
Logarithmic command

Makes a chart's numeric axis logarithmic.


Low Value property (charts)
Low Value command

Sets the highest possible value to display for the axis.


Marker property (charts)
Marker command

Changes the way data points are indicated along an xy or 2-D line chart.


Max Groups property (charts)
Max Groups command

Controls the number of groups (series) a 2-D summary chart displays.


Max X-Values property (charts)
Max x-values command

Sets the maximum number of x-values represented on the x-axis.


Min X-Values property (charts)
Min x-values command

Sets the minimum number of values represented on the x-axis.


None command

Displays the selected series according to the selected chart type.


Number Format command

Changes the format in which Corel Paradox displays numbers in the selected field or chart.


Options command

Sets various chart options.


Pattern property (charts)
Pattern command

Changes the pattern of the selected object or part of an object.


Remove This Y-Value property (charts)
Remove This Y-Value command

Removes a series from the chart.


Rotation property (charts)
Rotation command

Turns a chart around its vertical axis by the specified number of degrees you choose.


Scale command

Sets Y-axis scale properties.


Script command

Changes the font script for the selected text.


Series menu

Sets properties for the selected series.


Show Axes property (charts)
Show Axes command

Controls the display of tick marks along a chart's axes.


Show Grid property (charts)
Show Grid command

Controls the display of the chart grid.


Show Labels property (charts)
Show Labels command

Controls the display of chart labels.


Show Legend property (charts)
Show Legend command

Controls the display of the chart legend.


Show Title property (charts)
Show Title command

Controls the display of the chart title.


Size command

Changes the font size of the selected text.


Size command

Changes the line marker size.


Slice menu

Sets properties for the selected slice.


Style property (charts)
Style command

Changes the font style of the selected text.


Style command

Changes the marker style.


Style property (charts)
Style command

Changes the pattern style for the selected object or part of an object.


Subtitle command

Changes subtitle properties.


Tabular command

Takes data directly from the table, rather than summarizing the data in the table.


Text property (charts)
Text command

Specifies the text to be displayed for chart titles.


Thickness property (charts)
Thickness command

Changes the thickness of a line or a frame.


Ticks command

Specifies tick display properties for the selected axis.


Title command

Changes title properties.


Title Box property (charts)
Title Box menu

Sets chart title properties.


Typeface property (charts)
Typeface command

Changes the font typeface for the selected text.


Type Override property (charts)
Type Override command

Changes the selected series (line, bar, or area) in a chart to a different display type from the rest of the chart.


Use Default property (charts)
Use Default command

Resets the selected chart property to the Corel Paradox default.


X-Axis property (charts)
X-Axis menu

Sets X-axis properties.


Y-Axis property (charts)
Y-Axis menu

Sets Y-axis properties.


Z-Axis menu

Sets Z-axis properties.


Alignment command

Lines up selected design objects.


Bring To Front command

Moves the selected design object in front of all others.


Data command

Opens the <table name> Properties dialog box, where you can change the way the selected column displays data.


Data Model command

Opens the Data Model dialog box, which allows you to view and modify the data model for a design document. The data model shows the tables your design document uses and their relationships to each other.


Delete command

Deletes a Paradox table's .TV file (or a dBASE table's .TVF file)and uses default property settings.


Deliver command

Delivers forms, reports, libraries and scripts so that the documents can be used, but cannot be changed.


Design Setup command

Opens the Settings dialog box, which allows you to change ruler, grid and selection settings for the current design document.


Empty Table command

Removes all records from a table so you can reuse the structure for new records.


Filter command

Opens the Filter Tables dialog box, which allows you to specify criteria for viewing table records.


Grid command

Opens the Grid Properties dialog box, where you can modify various properties of the grid lines in a table.


Group command

Combines selected design objects into a group which behaves as a single design object.


Heading command

Opens the Heading Properties dialog box, where you can change the properties of the heading for that column.


Horizontal command

Evenly spaces objects left to right.


Layout command

Replaces your current document design.


Minimum Height command

Resizes selected objects to the height of the shortest object.


Minimum Width command

Resizes selected objects to the width of the narrowest object.


Maximum Height command

Resizes selected objects to the height of the tallest object.


Maximum Width command

Resizes selected objects to the width of the widest object.


Notify On command

Controls when data is sent to the client application when Paradox is the server in a DDE link. If disabled, data is sent to the client only if the client requests it.


Order command

Moves the selected design object in front of or behind others.


Properties command

Changes physical properties for the active table.


Properties command

Opens the Properties dialog box, which allows you to change physical properties for the design document.


Rename Table command

Opens the Rename dialog box, which allows you to specify a new name for the selected table and all its related files.


Restart Options command

Opens the Restart Options dialog box, which allows you to tell Paradox what to do whenever another user attempts to change data used by the report.


Restore command

Undoes any property changes you have made to the Table window properties (not data) since they were last saved.


Restructure Table command

Opens the Restructure dialog box, which allows you to change field types and sizes, as well as key, index, referential integrity, table language driver, password, and lookup information.


Rotate Pages command

Moves the selected page to the last page's position.


Save command

Saves all the property changes you have made to a table, including property changes to individual fields.


Send To Back command

Moves the selected design object behind another.


Size command

Adjusts the maximum and minimum height and width of the selected design object.


Spacing command

Adjusts the horizontal and vertical spacing for the selected design objects.


Snap To Grid command

Lines up design objects on a document. When you enable Snap To Grid, design objects jump to the closest minor division of the grid when you move or resize them.


Sort command

Opens the Sort Table dialog box, which allows you to specify the order to sort the table records.


Strict Translation

Limits available characters to the DOS character set supported by the table's language driver.


Style Sheet command

Opens the Style Sheet dialog box, which allows you to choose a new set of predefined colors and styles for the active design document.


Ungroup command

Separates grouped design objects.


Vertical command

Evenly spaces objects top to bottom.


Window Style command

Allows you to access advanced options in designing forms.


Group Band command

Opens the Define Group dialog box, which allows you to add a group band to your report.


Object command

Inserts an object in an OLE container.


Page command

Adds a blank page to a form after all existing pages.


No help available

No help is available for the item you selected.


Form window

Use the Form window to view and edit data.

To edit data

•	With a form open, click View, Edit Data or press F9.

To return to a design window to modify the layout or design of the form

•	Click View, Design Form or press F8.

If you were in Edit mode, this automatically ends your edit session.


Form Design window

Use the Form Design window to create or modify the design of a form. In the Form Design window you can select objects, move them, resize them, and change their properties. You can also change things like layout, data fields, and links.

You cannot view or edit the data in the Form Design window.

To open a form in the Design window

•	With the appropriate form open, click View, Design form.

To display additional Toolbars in the design window

•	Click View, Toolbars and enable the check boxes beside the toolbars you want to display.

You can move a floating Toolbar anywhere you want by dragging its title bar.


Library window

The Library window appears when you open or create a new library file (*.LDL, *.LSL) to store ObjectPAL code.

For more information on libraries, click Help, ObjectPAL Reference.


Query window

You can use the Query window to retrieve specific information from your tables. You can also use a query to perform calculations on your data. And you can insert, delete, and change records using INSERT, DELETE, and CHANGETO queries. The Query window appears when you open a *.QBE file or create a new one.


Report window

The Report window appears when you open or create a new report file (*.RSL, *.RDL) in Paradox. You can use the Report window to print data to the screen or a printer.


Report Design window

Use the Report Design window to create or modify the design of a report. Corel Paradox displays the bands and design objects that make up the structure of the report; no data is shown. It also displays report design tools on the toolbar.

In designing reports, you use bands to print headers and footers and to group data. You can let the data control the size of these bands and of other objects in reports.

To leave the Report Design window and view data

•	Click View, Run Report, or press F8.

To display additional Toolbars in the Design window

•	Click View, Toolbars and enable the check boxes beside the toolbars you want to display.

You can move a floating toolbar anywhere you want by dragging its title bar.


SQL Editor
SQL Editor Window

Use the SQL editor to enter, save and execute SQL statements for your server.

To create a new SQL file, click File, New. In the Create New page of the Create dialog box, choose Corel Paradox 8 from the list box and double-click the New SQL icon.

To open an existing SQL, click File, Open, SQL File. Select an SQL file and click the Open button.

You can also use the SQL editor to view the SQL statement that a Paradox query sends to your server. When you save an SQL statement to your local hard disk, Paradox places it in an unformatted text file with an .SQL extension.

Local SQL queries

You can also use the SQL Editor to execute SQL statements against local databases.


Table window

The Table window appears when you open or create a new Paradox, dBASE, or SQL table in Paradox. You can use the Table window to enter data or restructure tables.


Web Server Repository Window
Web Server Repository

The Web Server Repository menu commands close the Web Server Repository and determine the appearance of the Repository page.

File

Click Close to close the Web Server Repository window.

View

These commands determine the appearance of the Repository page:

•	Large Icons shows stored templates as large icons with the template name below the icon.

•	Small Icons shows stored templates as small icons with the template name beside them. The icons and names are arranged horizontally across the page.

•	List shows stored template icons and names in a vertical list format.

•	Details shows icons, names, and document type as a vertical list.

Pages

The Repository and Template pages let you select and edit stored templates.

•	Repository page:  The Repository page shows the names and, optionally, type of templates stored in the Web Server Repository. You can click a template name to select it and show its contents on the Template page.

•	Template page:  The Template page shows HTML template text for the template selected on the Repository page. Developers can edit this text using template tokens and OLE Automation methods and properties.


Alignment page (Table window properties)

The following Alignment properties are available for tables:

•	Horizontal

•	Vertical


Design page (form and report object properties and form page properties)
Design page (object properties)

The following Design properties are available for all form and report objects and form pages:

•	Pin Horizontal

•	Pin Vertical

•	Contain Objects

•	Size To Fit

•	Selectable

These properties are also available when you CTRL+right-click a table frame or multi-record object.

If a property is not available for an object, it is disabled.


Font page (Table window properties and text and field object properties)
Font page (Table window and object properties)

The following Font properties are available for tables and for text and field objects:

•	Font

•	Font Style

•	Size

•	Script

•	Effects

•	Color


Format page (field object properties)
Format page (object properties)

The following Format properties are available for field objects:

•	Date

•	Number

•	Time

•	Timestamp

•	Logical


Frame page (form and report object properties)
Frame page (object properties)

The following Frame properties are available for box, text, graphic, chart, OLE, listbox, combobox, spinbox, progress bar, trackbar, field, multi-record object, and record (within a multi-record object) objects:

•	Frame Color

•	Frame Style

•	Frame Thickness


General page (box, line, ellipse, notebook page, chart, and record object properties)
General page (object properties)

The following General properties are available for form pages and box, line, ellipse, notebook page, chart, and record (within a multi-record object) objects:

•	Name

•	Color

•	Transparent

•	Add Custom Color


General page (graphic, crosstab, and multi-record object properties)
General page (object properties)

The following General properties are available for graphic, crosstab, and multi-record objects:

•	Name

•	Color

•	Transparent

•	Add Custom Color

•	Horizontal Scroll Bar

•	Vertical Scroll Bar

•	Wide Scroll Bar


General page (OLE object properties)
General page (object properties)

The following General properties are available for OLE objects:

•	Name

•	Horizontal Scroll Bar

•	Vertical Scroll Bar

•	Wide Scroll Bar


General page (OCX, listbox, combobox, spinbox, progress bar, and trackbar object properties)
General page (object properties)

The following General properties are available for ActiveX controls and listbox, combobox, spinbox, progress bar, and trackbar objects:

•	Name

•	Color

•	Add Custom Color


General page (text object properties)
General page (object properties)

The following General properties are available for text objects:

•	Name

•	Color

•	Transparent

•	Add Custom Color

•	Design Sizing

•	Vertical Scroll Bar

•	Wide Scroll Bar


General page (field object properties)
General page (object properties)

The following General properties are available for field objects:

•	Name

•	Color

•	Transparent

•	Add Custom Color

•	Display Type

•	Define Values (available only if Drop-Down Edit, List, Radio Buttons, or Check Box is chosen within Display Type)

•	Horizontal Scroll Bar

•	Vertical Scroll Bar

•	Wide Scroll Bar


General page (button object properties)
General page (object properties)

The following General properties are available for button objects:

•	Name

•	Type

•	Style

•	Flat look

•	Center Label


General page (table frame object properties)
General page (object properties)

The following General properties are available for table frame objects:

•	Name

•	Color

•	Transparent

•	Add Custom Color

•	Attached Header

•	Repeat Header

•	Horizontal Scroll Bar

•	Vertical Scroll Bar

•	Wide Scroll Bar


General page (notebook object properties)
General page (object properties)

The following General properties are available for notebook objects:

•	Name

•	Tabs On Top

•	Square Tabs

•	Scrolling Tabs

•	Tabs Across

•	Number Of Pages


General page (report band, page band, and record band properties)
General page (band properties)

The following General properties are available for report bands, page bands, and record bands:

•	Name

•	Precede Page Header	(Report Band only)

•	Print On 1st Page	(Page Band only)

•	Start Page Number	(Record Band only)


General page (group band properties)

The following General properties are available for group bands:

•	Name

•	Header

•	Sort Order

•	Start Page Number


General page (form properties)

The following General properties are available for a form (when you right-click the form's title bar):

•	Name

•	Color

•	Add Custom Color

•	Size To Fit

•	Horizontal Scroll Bar

•	Vertical Scroll Bar


General page (report properties)

The following General properties are available for a report (when you right-click the report's title bar):

•	Name

•	Size To Fit

•	Standard Menu

•	Remove Group Repeat

•	Horizontal Scroll Bar

•	Vertical Scroll Bar


General page (Table window properties)

The following General properties are available for tables and table grids:

•	Color

•	Add Custom Color

•	Complete Display


General page (multiple objects in table frames or multi-record objects)
General page (object properties)

The following General properties are available when you CTRL+right-click a table frame or multi-record object:

•	Color

•	Transparent

•	Horizontal Scroll Bar

•	Vertical Scroll Bar

•	Wide Scroll Bar

•	Field Display Type

•	Button Type

•	Button Style


Grid page (crosstab and table frame object properties)
Grid page (object properties)

The following Grid properties are available for crosstab and table frame objects:

•	Grid Style

•	Color

•	Record Divider


Grid Lines page (Table window properties)

The following Grid properties are available for a table's grid:

•	Heading Lines

•	Column Lines

•	Row Lines

•	Spacing

•	Query Look

•	Line Style

•	Color


Inactive Color page (notebook page properties)
Inactive Color page (object properties)

The following Inactive Color properties are available for notebook page objects:

•	Color

•	Add Custom Color


Line Style page (ellipse object properties)
Line Style page (object properties)

The following Style properties are available for ellipse objects:

•	Line Color

•	Line Style

•	Line Thickness


Magnification page (graphic and OLE object properties)
Magnification page (object properties)

There is one Magnification property available for graphic and OLE objects.


Pattern page (forms, reports, and box, ellipse, text, field, table frame, multi-record object, and record object properties)
Pattern page (object properties)

The following Pattern properties are available for forms and reports (when you right-click the title bar), form pages, and for box, ellipse, text, field, table frame, multi-record object, and record (within a multi-record object) objects:

•	Pattern Color

•	Pattern Style


Picture page (field object properties)
Picture page (object properties)

The following Picture properties are available for field objects:

•	Current Picture

•	Add Custom Picture


Raster Operation page (graphic object properties)
Raster Operation page (object properties)

There is one following Raster Operation property available for graphic objects.


Record Layout page (multi-record object properties for forms)
Record Layout page (object properties for forms)

The following Record Layout properties are available for multi-record objects:

•	Number

•	Separation

•	Fill Order


Record Layout page (multi-record object properties for reports)
Record Layout page (object properties for reports)

The following Record Layout properties are available for multi-record objects:

•	Number

•	Separation

•	Fill Order


Record Marker page (Table window properties)

The following Record Marker properties are available for a table's grid:

•	Line Color

•	Show Record Marker

•	Line Style


Run Time page (object properties for forms)

The following Run Time properties are available for form pages and all form objects except field and button objects:

•	Visible

•	Read Only

•	Tab Stop

•	No Echo

•	Complete Display

If a property is not available for an object, it is disabled.

The properties available from the Run Time page take effect only when you run the form.


Run Time page (field and button object properties for forms)
Run Time page (object properties for forms)

The following Run Time properties are available for field and button objects:

•	Visible

•	Read Only

•	Tab Stop

•	No Echo

•	Complete Display

•	Choose the Next Tab Stop

If a property is not available for an object, it is disabled.

The properties available from the Run Time page take effect only when you run the form.


Run Time page (object properties for reports)

The following Run Time properties are available for report, record, and group bands and all report objects except text, table frame, and multi-record objects: If a property is not available for an object, it is disabled.

The properties available from the Run Time page take effect only when you run the report.

•	Pin Horizontal

•	Pin Vertical

•	Fit Width

•	Fit Height

•	Breakable

•	Shrinkable

•	Invisible

•	Delete When Empty

•	Show All Records

•	Print At Group	(object must be in group band)

•	Print At Page	(object must be in group band)

If a property is not available for an object, it is disabled.

The properties available from the Run Time page take effect only when you run the report.


Run Time page (text object properties for reports)
Run Time page (object properties for reports)

The following Run Time properties are available for text objects in reports:

•	Pin Horizontal

•	Pin Vertical

•	Fit Width

•	Fit Height

•	Breakable

•	Shrinkable

•	Invisible

•	Orphan/Widow

•	Field Squeeze

•	Line Squeeze

•	Print At Group	(object must be in group band)

•	Print At Page	(object must be in group band)

The properties available from the Run Time page take effect only when you run the report.


Run Time page (table frames and multi-record object properties for reports)
Run Time page (object properties for reports)

The following Run Time properties are available for table frames and multi-record objects on reports:

•	Pin Horizontal

•	Pin Vertical

•	Fit Width

•	Fit Height

•	Breakable

•	Shrinkable

•	Invisible

•	Delete When Empty

•	Show All Columns

•	Show All Records

•	Print At Group	(object must be in group band)

•	Print At Page	(object must be in group band)

 If a property is not available for an object, it is disabled.

The properties available from the Run Time page take effect only when you run the report.


Style page (line object properties)
Style page (object properties)

The following Style properties are available for line objects:

•	Line Type

•	Line Ends

•	Line Style

•	Line Thickness


Text page (text and field object properties)
Text page (object properties)

The following Text properties are available for text and field objects:

•	Alignment

•	Spacing

•	Word Wrap

If a property is not available for an object, it is disabled.


Alignment property (charts)
Alignment property (field or table object)

You can align values in a field or table object, text in a text object, and text in the edit region of a field object.

Right-click the object, choose Properties. Choose an alignment setting from the Text property page.

Left	Lines up text at the left, with the right edge ragged.

Center	Clusters text in the middle of the object.

Right	Lines up text at the right, with the left edge ragged.

Justify	Spreads out text so both left and right margins are straight.


Detach Header property (charts)
Attached Header property

You can separate the header area (the labels) from the body of a table in a table frame. You can then move the header wherever you want (in a report, this includes moving it to another band, or delete the header to suppress the labels.

A detached table and header align with each other automatically.

Right-click the header of a table-frame object and choose Properties. Disable the Attached Header check box on the General property page. To attach the header, enable the Attached Header property check box.


Auto-Append property (charts)
Auto-Append property

Right-click a table in the data model dialog box, or in the Data Model Designer choose Auto-Append. When the Auto-Append check box is enabled (the default), you can move to the end of a form in Edit mode and automatically insert new records simply by typing.

When Auto-Append is off, you can still insert records by choosing Record, Insert.


Breakable property (charts)
Breakable property

When creating a report, you might place some objects too close to the bottom to fit on the page. Or an object might grow too large to fit entirely on a page (a table with many records or a very large memo field, for example).

You can make the object split, so the first part is on one page and the second part is on another. Right-click the object and choose Properties. Enable the Breakable check box on the Run Time property page.

To make the object stay intact and be pushed to the next page when it does not fit, disable the Breakable property box.

Some objects (charts and graphics) are never breakable.

If an object is not breakable and does not fit on one page, Corel Paradox pushes it to the next page. If it still does not fit on the second page, Corel Paradox displays an error box indicating the report contains an object too large to fit.

If you are previewing a report and see a blank page unexpectedly, look at the next page to see if the object was pushed or cannot fit.


Button Type property (charts)
Button Type property

A button's type controls its functionality. You can change a button's type. Right-click on the button and choose Property. Enable one of the Button Style check boxes.

Push	A labeled rectangular button that carries out an action described by an ObjectPAL method. When the button is pressed, its value is True. When the button is not pressed, its value is False. Push is the default Button Type.

All button types execute their PushButton() event allowing ObjectPAL code to run. However, push buttons are more generally used for this.

Radio	A labeled round or diamond-shaped button that provides an option. Each time a user clicks the button, it toggles between being empty and being darkened. Each click also toggles its value between False and True.

Check Box	A labeled square button that indicates a yes/no state. Each time a user clicks the button, it toggles between being enabled and disabled. Each click also toggles its value between False and True.

Field objects as radio buttons and check boxes

You can also create a group of radio buttons or a check box from a field object. The advantage of using a field instead of a button is that a field object can post a value (the button or check box the user chooses) to the table the form is bound to. To post a value to a table with a button object, you must use ObjectPAL.


Center Label property (charts)
Center Label property

You can instruct a push button or notebook page to automatically keep its label centered. Right-click on the button or page and choose Property. Enable the Center Label check box on the General property page.

If you move the label away from a centered position, this property is automatically turned off.


Next Tab Stop property (charts)
Choose The Next Tab Stop property

You can specify the tab order of objects at Run Time. Right-click the object and choose Properties. Enable the Next Tab Stop check box on the Run Time property page.

From the list, choose the name of the next design object that you want to receive focus when the user presses TAB. This property is available only if the Tab Stop property is enabled. Otherwise, the object's name does not appear on the Next Tab Stop list for any other object. By default Tab Stop is not enabled for pushbuttons.


Color palette

Use the Color palette to specify the color of an object and to create custom colors. To open the Color palette, right-click an area of the chart and choose Color. Click a color on the palette.


Column Lines property (charts)
Column Lines property

In a Table window you can hide or display the lines between columns in Table View. You can also choose the line style and spacing for these lines.

Right-click a line to open the Grid Properties dialog box.  When Column Lines is enabled (the default), the lines show. Disable Column Lines to hide the lines.

To change the grid lines when they are hidden, click Format, Properties, Grid.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose the color on the General property page. To change the color of the lines, choose the color from the Grid Lines property page.


Complete Display property (charts)
Complete Display property

You can have a memo and formatted memo field display all the record values all the time. In a Table window, right-click on the memo field and choose Properties. Enable the Complete Display check box on the General property page. In a Design Window, the Complete Display check box is on the Run Time property page.

Corel Paradox stores memo and formatted memo fields in a separate file (with the .MB extension), not in the table itself. The table contains a portion of the field (this is the size you specify from the Create Table dialog box), and a pointer to the .MB file.

Disable Complete Display to display only the value of the current field. Corel Paradox moves through records more quickly when Complete Display is disabled because it does not have to access the .MB file.

Memos in dBASE tables

If you're working with a dBASE memo field, Corel Paradox does not store any memo data in the .DBF file. Because of this, when you disable Complete Display on dBASE memo fields, you do not see any of the memo. Instead, you see a marker indicating the memo field contains data. When you select the field, Corel Paradox displays the memo value from the .DBT file.

Displaying a memo while running a form

When you run a form with a memo field, you'll see only as many characters displayed in the memo as are specified in the table's structure. These characters are followed by an ellipsis (…) to indicate that there is more information. To view the full memo, move to it and enter Field View. Corel Paradox locates the rest of the memo in the .MB file and displays it.


Conditional property (charts)
Conditional property

You can print a specific object in a report's group header at the beginning of each group, at the top of the page when the group continues across a page break, or both. Right-click the object, Choose Properties, and enable one of the Print Option check boxes.

Print at Group displays the object at the beginning of each group, but not at the top of each page (unless a group begins at the top of the page).

Print at Page displays the object at the top of the page whenever a group breaks across pages. The object is never displayed on the first page of the report. This setting is useful for a text object that indicates that a group has been continued to the next page.

The Conditional property affects only the specified object. To control how an entire group band prints, use its Header property.


Contain Objects property (charts)
Contain Objects property

When one object exists completely within the borders of another, it can be contained by the outside object. Contained objects move when you move their containers, and are deleted when you delete their containers. When users tab between objects on a form, they tab to all objects within a container before tabbing to any objects outside the container.

You can ensure that objects contained inside are moved when you move their surrounding object. Right-click the container object and choose Properties. Enable the Contain Objects check box on the Design property page. When this option is enabled, objects inside the container can be dragged out of it, but you cannot move the container without moving its contained objects. Properties applied to the container, however, still affect only the container, not the objects in it (unless you use CTRL+ Right-click). If you want to delete an object but not the objects it contains, disable Contain Objects and then press DELETE.

 Note

•	You cannot resize an object smaller than the objects it contains.


Date Format property (charts)
Date Format property

Undefined and date fields have a Date Format property. You can change the format in which Corel Paradox displays dates in the selected field. Right-click on the field an choose Properties. Click the Date button on the Format property page to see a list of available predefined date formats. Choose a format to apply to the selected field, or click Create New Format to define your own.


Delete When Empty property (charts)
Delete When Empty property

The Delete When Empty property is only available for objects containing data in reports.

You can instruct Corel Paradox not to show a report's design object if it holds no data. Right-click the object and choose Property. Enable the Delete When Empty check box on the Run Time property page. The object does not appear when the report is previewed or printed.

When Delete When Empty is disabled, the object appears even if it shows no data.


Design property (charts)
Design properties

You can change the design of objects in Form or Report Design windows. Right-click the object, choose Properties, and click the Design tab. All design objects have the Design property page available, but the Design choices available differ depending on the object. For example, Contain Objects is not available for a line because a line is incapable of containing another object. On the other hand, some objects (like tables) are always containers, and you cannot disable the Contain Objects property.

Pin Horizontal prevents the object from moving left or right across the design, while Pin Vertical prevents the object from moving up or down.

Size To Fit causes an object to expand or contract automatically in the design window based on the object's contents.

Contain Objects causes objects within the selected container to move with their container.

Selectable allows the object to be selected with a mouse click.


Design Sizing property (charts)
Design Sizing property

The way you create a text object determines how Corel Paradox initially sets its sizing option, but you can override the automatic setting. Right-click the text object and choose Properties. You have three Design Sizing choices on the General page:

Fixed Size	Fixed Size objects do not grow (or shrink) horizontally or vertically to fit the amount of text they contain.

Click the Text tool, then drag to place a frame in the design area. As you type, Corel Paradox automatically wraps the text at the right border of the frame. When you reach the bottom of the frame, Corel Paradox scrolls the text upward so you can view the text you are entering.

To change the size of the object, select it and resize it manually. In a fixed-size text object, Word Wrap must be enabled on the Text property page. To make all the text available when the form is run, add scroll bars.

Fit Text	Fit Text objects grow or shrink to fit the amount of text they contain.

If you enable Fit Text and Word Wrap for a text object, the object grows or shrinks vertically to fit the amount of text it contains. Text wraps at the right side of the frame.

If you enable Fit Text without Word Wrap, the object can only be one line. It grows or shrinks horizontally to fit the amount of text it contains.

Click the Text tool, then click in the design area and begin typing. Corel Paradox creates a single-row text object that expands to the right until you press ENTER, moving the insertion point to a new line. As you continue typing, the text wraps automatically at the right border that you defined by pressing ENTER. The text expands downward until you finish typing. The text object shrinks in height if you remove text. Otherwise, the text object grows and shrinks horizontally with the text.

 If you try to resize this type of text object with Word Wrap on, you can resize it only horizontally. If Word Wrap is off, you cannot resize the text object at all. Right-click the object and choose the Fixed Size property before resizing it.

There are two resizing restrictions with Fit Text. You cannot resize a text object horizontally if Fit Text is enabled and Word Wrap is disabled, and you cannot resize a text object vertically if Fit Text is enabled.

Grow Only	Grow Only objects grow but do not shrink to fit the amount of text they contain.

If you enable Grow Only and Word Wrap for a text object, the object grows vertically to fit the amount of text it contains. Text wraps at the right side of the frame.

If you enable Grow Only without Word Wrap, the object can only be one line. It grows horizontally to fit the amount of text it contains.

Click the Text tool, then click in the design area and begin typing. Corel Paradox creates a single-row text object that expands to the right until you press ENTER, moving the insertion point to a new line. As you continue typing, the text wraps automatically at the right border that you defined by pressing ENTER. The text expands downward until you finish typing. Unlike Fit Text, the Grow Only text object never shrinks unless you manually resize it.


Display Type property (charts)
Display Type property

You can set the display type of a field object on a document. Right-click the field object and choose Properties. Choose a one of the following display types from the Display Type list box:

Labeled	A field with its field label displayed, along with the value of the current record. The label and edit region cannot be removed or deleted from the field.

Unlabeled	A field without a label.

Drop-Down Edit	A list of values users can select from or type in their own value. The list box drops down when the user selects the arrow. (This property is available only for forms.)

List	A list of values users can select from. This type of list has no type-in box. List is always in full view.

To enter the values for the list items, click the Define Values button after choosing the display type

Radio Buttons	A list of values with a round or diamond-shaped button beside each value. Users click a button to select a value. Only one value can be selected at a time.

Changing the text in the label of a button does not alter its value. To alter the value of the button, click the Define Values button after choosing the display type.

Check Box	A check box that has one value when the user enables it and another value when the user disables it.

Changing the label of the check box does not alter its value. To alter the value of the check box, click the Define Values button after choosing the display type.


Editing property (charts)
Editing property

In ObjectPAL, this read-only property of a manager or TV window indicates whether you are in Edit mode.


Field Squeeze property (charts)
Field Squeeze property

You can push or pull an embedded object in a text object. Right-click the text object and choose Properties. Enable the Field Squeeze check box on the Run Time property page. When you run the report, Corel Paradox extracts the text value of the field and wraps it in its position within the line of text within the text object. The text following the field value is correctly spaced.

Field Squeeze is available only inside a text object in a report.


Fields property (charts)
Fields property

Right-click a table or query in the data model to you see a list of the fields in that table or query. The list also shows the field type.


Filter property (charts)
Filter

You can apply a filter to a field or field object. Right-click the field and choose Filter. The Field Filter dialog box appears.


Fit Height property (charts)
Fit Height property

You can instruct Corel Paradox to expand objects in a report vertically to show all of their contents when you run the report. Right-click an object in a Report Design window and choose Properties. Enable the Fit Height check box on the Run Time property page.

The result depends on the type of object.

A text object fits font height when Word Wrap is not enabled. It expands to fit all the text and contained objects when Word Wrap is enabled. Extra lines can be added. Even if all text fits at design time without scroll bars, if the text object has contained objects that grow or shrink, this can cause the text object to change size.

A field object expands to fit the data (whether it is text or graphic or OLE). If the field is a button-style field (radio or check box), it expands to show all buttons.

A record, box, or ellipse expands to show all contained objects (for example, a table or a text object that expands). If the contained objects are Fit Height, the container tries to maintain white space from the bottom of the lowest object to the bottom of the container.

If you disable the Fit Width or Fit Height of an object, be sure the object itself is big enough to show all that you want it to. It's a good idea to preview the report, then resize the object in the Report Design window to get its sizing right.

 Tip

•	Disabling Fit Height for an object in a report can speed up previewing.


Fit Width property (charts)
Fit Width property

You can instruct Corel Paradox to expand objects in a report horizontally to show all of their contents when you run the report. Right-click an object in a Report Design window and choose Properties. Enable the Fit Width check box on the Run Time property page.

The result depends on the type of object.

A text object grows or shrinks to exactly fit the size of its text and contained objects. Fit Width is available for text objects only when Word Wrap is not enabled.

A field object fits the width of the text or graphic stored in the database. If the field is a button-style field (radio or check box), it expands to show all buttons.

A record, box, or ellipse expands to show all contained objects. If the contained objects are Fit Width, they can cause this object (the container) to widen, maintaining the white space from the rightmost object to the rightmost edge.

If you disable the Fit Width or Fit Height property of an object, be sure the object itself is big enough to show all that you want it to. It's a good idea to preview the report, then resize the object in the Report Design window to get its sizing right.

 Tip

•	Disabling Fit Width for an object in a report can speed up previewing.


Font palette

You can use the Font palette to specify typeface, size, and style. Click the snap at the top of any font menu. The Font palette stays on the Desktop until you click the snap again to close it.

To change a font using the Font palette, select the field or text object you want to change, and choose the options you want from the palette. The selected text changes as you choose options.

Choose	To

Typeface	Select the typeface you want. The typefaces available reflect the fonts you installed on your system. Typefaces preceded by a 'TT' are True Type fonts. Typefaces preceded by a mini printer are printer fonts.

Size	Select the point size you want.

Style	Change the text style. Choose from the following options:

Normal: Removes all style attributes from the text.

Bold: Displays the text in a heavier style.

Italic: Displays the text at a slanted angle.

Strikeout: Displays the text with a horizontal line running through it.

Underline: Displays the text with a horizontal line beneath it.


Frame property (charts)
Frame property

Many objects are surrounded by a frame. You can change its color, style or thickness. Right-click the object, and choose Properties. Choose the attributes you want from the Frame property page.

Color displays color palette for choosing the color of the frame.

Style displays the types of frames available.

Thickness displays a Thickness palette if your design document is designed for the screen, or a thickness menu if it is designed for the printer.

From each palette, click on a frame property to select it. Corel Paradox changes the frame of the selected object(s).

 Notes

•	Frame styles that are unavailable are dimmed on the palette. Some line and frame styles can be applied only when the line or frame is set to the thinnest choice.

•	Text objects have no frame by default. Before you customize the color or thickness of a text object frame, choose a frame style. Then the color and thickness settings will take effect.


Frame Palette

Right-click a chart area and choose Frame, Style. The Frame palette appears, in which you can select the frame style.

Corel Paradox changes the frame of the selected object(s) and removes the palette from the screen. Frame styles that are unavailable are dimmed on the palette. Some line and frame styles can be applied only when the line or frame is set to the thinnest choice.


Full Size property (charts)
Full Size property

The Full Size property is a read-only property telling you how big the object would be if all of it showed.  An object's full size may be bigger than the frame; in which case, you can scroll or (in the case of bitmap and OLE) pan across it. Nonscrollable objects generally have full size smaller than size.

In reports, if you set Fit Height or Fit Width, the object will expand so that the full size fits inside the frame in the indicated dimension.


Grid property (charts)
Grid property

You can configure the grid in a table frame or crosstab. Right-click a grid line in a table frame or crosstab, and click the Grid tab. On the Grid property page you can change the grid style or color, and specify whether you want record dividers (they will appear at run time, in table frames only).


Grid Lines property (charts)
Grid Lines property

You can customize the grid in numerous ways. Right-click on a grid line and click the Grid Lines tab.

You can control what lines are displayed by enabling one or more of the Position check boxes. Heading Lines displays the horizontal lines in the heading. Column Lines  displays the vertical lines of the grid. Row Lines displays horizontal lines between the records of the table. You can also specify what the lines look like. Query Look makes the header of a table have the same style as that found in queries. Line Style specifies the type of lines. Color changes the color of the lines. Spacing specifies the number of lines between each column or row. You can display single, double, triple, 3D, or no lines.

On table objects or crosstab objects, Grid Style can be single, double, triple, 3D, or None. Corel Paradox applies your chosen style to the whole object. Click None for reports, because printing the grid can take a long time on many printers.


Heading Lines property (charts)
Heading Lines property

In a Table window you can hide or display the grid lines under all column headings. Right-click a grid line on a table and click the Grid Lines tab. Enable the Heading Lines check box on the Grid Lines page to show a line under your column headings.

You can choose the line style and spacing for these lines.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns. To change the color of the space, choose a color from the General property page. To change the color of the lines, choose a color from the Grid Lines property page.


Header property (charts)
Header property

You can print a group heading at the beginning of each group, at the top of the page when the group continues across a page break, or both. Right-click the group band, and choose Properties. Enable one of the print options on the General property page.

On Page And Group prints the group heading at the beginning of each group and at the top of a page when the group is continued across page breaks.

Individual objects in headings marked Page And Group can appear at the start of groups, at the page continuation, or both, depending on the setting of their Conditional property.

On Group Only prints the group heading at the beginning of each group, but not at the top of a page when the group is continued across page breaks.

The Header property affects the entire group band. To control how a specific object prints, use its Conditional property.


Horizontal Scroll Bar property (charts)
Horizontal Scroll Bar property

Horizontal Scroll Bar places a horizontal scroll bar at the bottom of a crosstab, table, graphic, or OLE object. Right-click on the object and choose Properties. Enable the Horizontal Scroll Bar check box on the General property page.


Invisible property (charts)
Invisible property

You can suppress the display of an object at run time. Right-click the object and choose Properties. Enable the Invisible check box on the Run Time property page.

Using invisible objects in designs

Invisible objects can be used to control the growing and shrinking of other objects. When you want an object that grows to push other objects that are not directly beneath or beside it, you can add a line beneath or beside it that extends far enough to push the other object.

This behaves like any other line, but you do not want to see it (it is only for formatting), so you make it invisible. This is the same as placing a transparent white color on the line, but you can see it at design time, and it is slightly more efficient at run time.

Similarly, you might want to take advantage of the formatting properties of a box (for example, grouping some objects that should all go on the same page and putting them in an unbreakable box) but not see the box. Again, this is the same as a transparent white frame, but you can see it at design time, and it is more efficient at run time.

When you enable the Invisible check box, Corel Paradox hides the object, but not any objects it contains.


Line Ends property (charts)
Line Ends property

You can place arrows on the ends of lines. Right-click on the line object, and choose Properties. Enable the Line Ends check box on the Style property page.

No Arrow	Does not place an arrow at either end of the line. (This is the default choice. It is also the only choice for a line that has the Line Type, Curved property enabled.)

On One End	Places an arrow on one end of the line. Because you create a line by clicking and dragging with the mouse, Corel Paradox places the arrow on the end of the line where you released the mouse. The arrow points in the direction you dragged to create the line.

On Both Ends	Places arrows on both ends of the line.


Line Spacing property (charts)
Line Spacing property

In text or memo fields, Line Spacing specifies how far apart lines of text are spaced. You can choose the number of lines separating each column or row. Right-click a text field and choose Properties. Enable one of the Spacing check boxes on the Text property page. The choices are 1, 1.5, 2, 2.5, or 3 lines.


Line Squeeze property (charts)
Line Squeeze property

In a text object, you can blank out an entire line of text that contains a blank field (this option works only if a single field is embedded in a text object and the field value is blank). Right-click the text object and choose properties. Enable the Line Squeeze  check box on the Run Time property page.

Line Squeeze is available only inside a text object in a report.


Line Type property (charts)
Line Type property

Corel Paradox gives you the option of drawing straight or curved lines. A straight line is the default. This is what you see when you click the Line tool, then drag across the design.

If you want the drawn line to be curved, choose Curved from the Line Type area of the Style property page. Corel Paradox curves the line. (You can only choose this property if the No Arrow property is enabled for the Line Ends.)


List property (charts)
List property

Choose List to modify the contents of a list object. Corel Paradox opens the Define List dialog box. Fields that have a display type of List or Drop-Down Edit contain list objects.


Logical Format property (charts)
Logical Format property

dBASE logical fields have the Logical Format choice on their menu. Choose it to select which values to accept in the logical field. Choose one of the pairs in the list of predefined logical formats or click the top of the list to open a dialog box where you can define your own custom formats.


Magnification property (charts)
Magnification property

You can size a graphic or OLE object to fit in its container. Corel Paradox proportionally resizes the object. Right-click the object and choose Properties. Enable the appropriate Magnification check box on the Magnification property page.

25% or 50% shrinks the displayed object, while 200% or 400% expands it.

100% restores the object to its original size.

Best Fit shrinks the object to fit in the field while retaining the proportions of the original object. When you choose Best Fit, changing the column width or row height changes the size of the object.

 Tip

•	For fastest performance, display graphic and OLE objects at 100%. Best Fit usually gives the slowest performance.


Methods property (charts)
Methods property

Choose Methods to apply ObjectPAL code to an object. This is how you assign functionality to the object.


No Echo property (charts)
No Echo property

You can instruct Corel Paradox not to display the contents of a field. Right-click the field and choose Properties. Enable the No Echo check box on the Run Time property page.

No Echo is useful for a field where users type in a password. They can enter data, but it is not displayed.


Object Name property (charts)
Object Name property

An object's name appears at the top of its menu. When the object is selected, its name appears on the status bar. Corel Paradox names an object with its type and a number. For example, #ellipse32 or #box3.

Why name objects?

The name of a selected object appears on the status bar and in some error messages. Naming objects can help you determine which object is selected in a complicated design.

In a form, all design objects can have ObjectPAL methods attached to them. ObjectPAL refers to objects by name. If the name of an object begins with the pound character (#), then you need not name the object explicitly when referring to its children in ObjectPAL.

Object names cannot begin with a number or symbol. Also, if you name an object in a function or a method and change its name, your method or function will fail.

Automatic numbering of design objects

Corel Paradox numbers objects within a design document sequentially, from the first object created to the most recent. For example, when you create a form, the form itself is #1, and the page is #2. The first design object you place on a form is #3.

Suppose you create a new form and place a labeled field object on it. Because a labeled field object is made up of three parts, you can right-click it in three different places, as shown in the following figure. Each part of the labeled field is a separate object and has a different sequential number.


OLE Command property (charts)
OLE Command property

You can manipulate an object in an OLE container. Right-click the OLE Object and choose an OLE command. The ways you can manipulate an object depend on the kind of OLE server associated with the object.

For example, if the OLE container contains a word processing document, two commands are available: Edit Document and Open Document. Edit opens the document for in-place editing, and Open opens the document by launching the word processor.

If you insert the word document and link it, the OLE menu commands change to Edit Document Link and Open Document Link.


Orphan/Widow property (charts)
Orphan/Widow property

An orphan is a single line of text at the bottom of a page that has been separated from the paragraph it begins.

A widow is a single line of text at the top of the page that has been separated from the paragraph it ends.

If a text object is breakable, you will probably encounter orphans and widows.  You can avoid orphans and widows. Right-click the text object and choose Properties. Enable the Orphan/Widow check box on the Run Time property page.


Picture (Field Object) property (charts)
Picture (Field Object) property

You can specify a character string that acts as a template for the values that can be entered in this field object. Right click the field object, and choose properties. Click the Picture tab, and choose a standard picture from the Current Picture list box (you can also click Add Custom Picture to open the Picture Assistance dialog box and create a custom picture).

This property is not available in reports, for field objects bound to BLOB or autoincrement fields, nor for summary, calculated, or special field objects. It is also unavailable for field objects with a Display Type of List, Check box, or Radio Button, or if the field object is bound to a field that has a picture.


Pin Horizontal property (run time for charts)
Pin Horizontal property (run time)

You can establish the location of objects at run time (when you view or print the document). Right-click the report and choose properties. Enable the Pin Horizontal check box on the Run Time property page to pin an object to its horizontal position relative to its container. This means that expanding or contracting objects cannot move the pinned object horizontally.

To speed up previewing of a report, pin as many objects as possible.


Pin Horizontal property (design window for charts)
Pin Horizontal property (design window)

You can prevent an object from moving left or right by accidental mouse moves. It can still be moved by choosing Align from the menu. Right-click an object and choose Properties. Enable the Pin Horizontal check box on the Design property page.

When you pin an object horizontally, you can move it up or down across the design, but Corel Paradox prohibits you from moving it left or right. Also, the object does not automatically become contained by other objects that surround it.


Pin Vertical property (run time for charts)
Pin Vertical property (run time)

You can establish thelocation of objects at run time (when you view or print the document). Right-click the report and choose properties. Enable the Pin Vertical check box on the Run Time property page to pin an object to its vertical position relative to its container. This means that expanding or contracting objects cannot move the pinned object vertically.

To speed up previewing of a report, pin as many objects as possible.


Pin Vertical property (design window for charts)
Pin Vertical property (design window)

You can prevent an object from moving up or down by accidental mouse moves. It can still be moved by choosing Align from the menu. Right-click an object and choose Properties. Enable the Pin Vertical check box on the Design property page.

When you pin an object vertically, you can move it left or right on the design, but Corel Paradox prohibits you from moving it up or down. Also, the object does not automatically become contained by other objects that surround it.


Precede Page Header property (charts)
Precede Page Header property

You can print a report's header before its page header. Right-click the report band and choose Precede Page Header on the General page. If Precede Page Header is disabled, the report header appears after the page header.

This is not visible in the Report Design window because the bands themselves do not move. When you preview or print the report, the report band and page band will be in the order you choose from the report band's menu.


Print On 1st Page property (charts)
Print On 1st Page property

You can print the contents of a page band on the first page of a report. Right-click the page band and enable the Print On First Page check box on the General property page.

You can set this separately for the page header and footer.


Query Look property (charts)
Query Look property

You can give the header of a table the same style as that found in queries. Right-click on a grid line, and enable the Query Look check box on the Grid Lines property page.


Raster Operation property (charts)
Raster Operation property

When you define a graphic object, you identify a source graphic (a file) to be placed in a destination (your computer's screen). Most often, Corel Paradox assumes you want an unchanged copy of the source placed on the screen.

Suppose, however, you want the source graphic and the screen to interact. You might want to make the source graphic transparent, so the color of the page shows through it, or you might want to invert the color of the source graphic. When you want to achieve these types of effects, use the graphic object's Raster Operation properties.

Raster operations define how Corel Paradox combines the source graphic with the destination, inverting, combining, including or excluding colors to your specifications. Corel Paradox uses the Boolean AND, OR, and XOR comparison operators to combine individual pixels of color during raster operations.

Right-click a graphic object, and choose Properties. Choose the appropriate raster operation, choose it from the Raster Operations property page.

Demonstration

To see the effects of these raster operations, open RASTEROP.FSL in your SAMPLE subdirectory (or wherever you installed the ObjectPAL sample applications).

Source Copy	Copies an unchanged source graphic to the destination

Source Paint	Combines the source graphic and the destination using the Boolean OR operator

Source And	Combines the source graphic and the destination using the Boolean AND operator

Source Invert	Combines the source graphic and the destination using the Boolean XOR operator

Source Erase	Inverts the colors of the destination and combines it with the source graphic using the Boolean AND operator

Not Source Copy	Inverts the colors of the source graphic and copies it to the destination

Not Source Erase	Combines the source graphic and the destination using the Boolean OR operator

Merge Paint	Inverts the colors of the source graphic and combines it with the destination using the Boolean OR operator

To see an example of using raster operations, see Example of creating a mask for a graphic.


Read Only property (charts)
Read Only property

In a table

Read Only prevents a table from being edited. Read Only tables can be viewed but not edited. In the Data Model dialog box or in the Data Model Designer, right-click the table and choose Read Only.

For non-master tables in a one-to-one data model relationship, Read Only is the default setting. Read Only is also the default setting for all SQL tables.

The Read Only setting is available for any table.

In a field

Right-click the field and choose Read Only on the field's Run Time property page to prevent the data in a field from being changed.

Read Only fields can be viewed but not edited.


Record Divider property (charts)
Record Divider property

You can place horizontal lines between records of a table frame. Right-click the table frame and choose Properties. Enable the Record Divider check box on the Grid Lines property page. The lines help you scan across the records of large table frames.


Record Layout property (charts)
Record Layout property

Right-click the multi-record object and choose Properties. Click the Record Layout tab and specify the layout of records. You can choose the number of records across and down, the vertical and horizontal spacing between the records, and the fill order in which the records appear.


Record Marker property (charts)
Record Marker property

You can choose to display or hide a record marker in a table to display a horizontal line beneath the current record, and you can customize the lines color and thickness.

Right-click a grid line and choose Properties. Click the Record Marker page and choose the appropriate attributes.

Show Record Marker	When Show is enabled on the Grid Lines property page, the record marker is visible.

Line Style	Displays the Line Style palette. When you choose a line style, Corel Paradox displays the record marker in that style.

Color	When you choose a color, Corel Paradox displays the record marker in that color.


Remove Group Repeats property (charts)
Remove Group Repeats property

You can retain or suppress repeated group values within a record band. Click Format, Properties, and enable the Remove Group Repeats check box on the report's General property page.

When Remove Group Repeats is not enabled, Corel Paradox displays the value of the grouped field for each record, including duplicates, in the record band.

When Remove Group Repeats is enabled, Corel Paradox prints the value for the first record of the group only.

Remove Group Repeats requires a group band in the report design, even if you know the records are ordered because the table is keyed or you've used Sort Record Band. But you can add a group band, then delete all the objects in it, and shrink its header and footer to nothing. This gives nearly the same effect [image] except that now the table breaks on group changes.


Repeat Header property (charts)
Repeat Header property

When a table breaks across several pages or several groups, you can repeat the table header at the top of each page or group. Corel Paradox enables a table frame's Repeat Header property by default.

To prevent the header from repeating at the top of each page or group, right-click the table frame, choose Properties, and disable Repeat Header on the General property page. This property is not available for a table frame with a detached header.


Row Lines property (charts)
Row Lines property

In a Table window you can hide or display the lines between records.

Right-click a line to open the Grid Properties dialog box. When Row Lines is disabled (the default), no lines appear between the records. Enable the Row Lines check box on the grid's Grid Lines property page to display lines between all records in the table.

You can choose the line style and spacing for these lines.

Color

You can change the color of all the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose a color from the grid's General property page.

To change the color of the lines, choose a color from the grid's Grid Lines property page.


Scale property (charts)
Scale property

Choose Scale to multiply the number by a given power of 10. Choose a negative value to divide the number by a given power of 10.


Selectable property (charts)
Selectable property

You can make an object selectable. Right-click the object and choose Properties. Enable the Selectable check box on the Design property page to make it selectable. Disable Selectable to prevent the object from being selected by a mouse click. You can still select any objects that the object contains, and you can still right-click the object or click it in the Object Explorer.

Selectable is on by default.


Show property (charts)
Show Record Marker property

You can display a line under a record to indicate the current record. Right-click on a grid line, and choose properties. Enable the Show Record Marker check box on the Record Marker property page

You can also choose the line style and color for this line from the Line Style and Color palettes on the Record Marker property page.


Show All Columns property (charts)
Show All columns property

When you view data in a table frame, you can have the table frame expand to show all columns of the table. Right-click the table frame and choose Properties. Enable the Show All Columns check box on the Run Time property page.

When this property is not enabled, the table frame behaves like a fixed-width table when you are viewing data.


Show All Records property (charts)
Show All Records property

Table frames and multi-record objects both have the Run Time property Show All Records for reports. You can use this property to expand the object vertically down the page, creating as many pages as necessary to show all records of the table.

Right-click the table frame and choose Properties. Enable the Show All Records check box on the Run Time property page.

When Show All Records is enabled and you are viewing data, a table frame or multi-record object will keep expanding, until all data in the group is displayed.

A table frame expands vertically. On a multi-record object, the way in which the object expands is determined by the options you choose on the Record Layout property page. If you choose Top Down, then Left-Right, Corel Paradox creates additional columns. If you choose Left-Right, then Top-Town, Corel Paradox creates additional rows.

When Show All Records is not enabled, the table frame or multi-record object can still expand, but you will see a fixed number of records when viewing data. To keep the table frame or multi-record object from expanding, disable the record object's Fit Height property on the Run Time property page.

Show All Records applies only to tables and multi-record objects.


Shrinkable property (charts)
Shrinkable property

Sometimes, when an object in a report (such as a box or a report band) begins near the bottom of a page, it has enough room for all contained objects, but not for the whitespace below the last object.

You can instruct Corel Paradox to ignore this final whitespace. Right-click the object, and choose Properties.  Enable the Shrinkable check box on the Run Time property page. The object shrinks it to fit on the current page by clipping off the whitespace.

When Shrinkable is enabled, it takes precedence over Breakable (when enabled), andFit Height (when disabled).


Size To Fit property (charts)
Size To Fit property

You can make fields, tables, graphic, and OLE objects in design documents  automatically grow or shrink to fit the size of its contents. Right-click the object, and choose Properties. Enable the Size To Fit check box on the Design property page.

For example, suppose you create a small field object, then define it as Customer No. If Size To Fit is enabled, the field label and edit region automatically resize to fit the definition, and the whole field object resizes around them. If you redefine it as Qty, the field automatically shrinks to fit the smaller definition.

Size To Fit can work slightly differently on different objects.

Field objects

Choose Size To Fit if you want a field to expand or contract in the design window as a result of the its contents getting larger or smaller. (This can happen when you make changes to the field object properties such as display type, font, or size.)

For example, suppose a labeled field needs more room than an unlabeled field. If you change display types from an unlabeled field to a labeled field without enabling Size To Fit, the field remains the same size and the label object and field object compete for space. If you change display types and enable Size To Fit, the field object expands to accommodate the new label.

When Size To Fit is enabled, the field resizes when you change display type, redefine the field, change the font or frame, or move or resize anything contained in the field.

If you manually resize the field, it stays that size until you do one of the above four actions.

It is a good idea to have Size To Fit on if you resize a field label or redefine the field.

Table objects

Size To Fit causes a table frame to expand to fit all fields in the table. If you leave this disabled, the table frame retains the size and shape you created when you placed it.

Corel Paradox automatically places a horizontal scroll bar and disables Size To Fit when you manually resize the table, or add more fields to the table than will fit in the form.

Graphic and OLE objects

Use Size To Fit with graphic and OLE objects to make them fit the data they are designed to display. To resize graphic and OLE objects, you must first disable Size To Fit.

Window objects

When Size to Fit is enabled on the General property page for a form or report, Corel Paradox automatically sizes the window to fit the size of the design.

The effect of choosing Size To Fit might not be apparent unless your page size is smaller than your screen display size.


Sort Order property (charts)
Sort Order property

You can specify the sort order of groups in a band. Right-click the group band and choose Properties. Enable the appropriate Sort Order check box on the General property page.

Ascending prints the groups in A to Z or numeric order.

Descending prints the groups in Z to A or reverse numeric order.

Sort Order is not available for a group band that is defined on a number of records.


Spacing property (charts)
Spacing property

You can choose what kind of spacing you want for the grid lines separating table columns. You can choose Single, Double, Triple, 3D, or No spacing. Corel Paradox applies your selection to the whole table.

Right-click a grid line in the table, and choose Properties. Enable the appropriate spacing option on the Grid Lines property page.

To hide the line under all column headings or between columns, disable the Heading Lines or Column Lines  check box.

To display lines between records, enable the Row Lines check box.

To change the line style, choose a Line Style.

Color

You can change the color of the space around rows and columns in a table, as well as the color of any grid lines marking rows and columns.

To change the color of the space, choose a color from the grid's General property page.

To change the color of the lines, choose a color from the grid's Grid Lines property page.


Standard Menu property (charts)
Standard Menu property

Reports have the Standard menu property which instructs Corel Paradox to display the standard Report window menu when you are viewing data. Right-click the report's title bar and choose Properties. Enable the Standard Menu check box on the General property page. Standard Menu is enabled by default. This property is useful primarily if you are manipulating this document using ObjectPAL and want to display your own menu while the document is previewed.


Start Page Numbers property (charts)
Start Page Numbers property

You can begin a new page and reset the page number to one when a specified band is reached. Right-click on a page band, and choose Properties. Enable the Start Page Numbers check box on the General property page.

When you choose to restart page numbers for each group, Corel Paradox changes to a page number format that shows page within group (1-1, 1-2, 1-3...2-1, 2-2, 2-3...). You can not modify this format.


Strict Translation property (charts)
Strict Translation property

You can limit the characters available to the DOS character set supported by a table's language driver. These are characters common to both the OEM and ANSI character sets.

In a table window, click Format, Strict Translation.

Strict Translation can be set for a form in the Data Model dialog box or the Data Model Designer. Right-click the table frame, and choose Strict Translation.

When Strict Translation is enabled, you cannot move off a field where you have entered a character that is not a member of the table's DOS character set.

When Strict Translation is not enabled, you can enter a character not in the set, but when you move off the field that character changes to a character that does occur in the DOS character set supported by the table's language driver.

It is also possible that a table that has been edited with a DOS application may contain characters not found in the Windows ANSI character set. If you use Corel Paradox to edit such a table with Strict Translation enabled, a warning is issued whenever you enter Field View (in Edit mode) in a field containing non-ANSI characters. If you leave the field without editing, the characters are not changed; if you edit the field, the characters are converted to ones that are common to both the ANSI and OEM character sets.


Tab Stop property (charts)
Tab Stop property

Users can tab from one object to another on a form.

Right-click an object and choose Properties. Enable the Tab Stop check box on the Run Time property page to include the object in the tab sequence. Fields, buttons, charts, and OLE objects have a Tab Stop property.

When Tab Stop is enabled, users can move to the object by using the Tab key, arrow keys, or ObjectPAL . They can copy a chart and the data in an edit field to the Clipboard, using the object's right-click menu or the keyboard. When users tab to a field in Edit mode, they can edit it. When they tab to a chart, they can scroll it, and when they tab to a button, they can press ENTER to activate the button.

Users must tab to all objects within a container before they can tab to any objects outside the container.


Text property (charts)
Text property

The Text property page is available for any design object that includes text. This property defines the alignment, line spacing, and word wrap properties of the text object.

Right-click the text area and choose Properties. Choose the appropriate options from the Text Property page.


Time Format property (charts)
Time Format property

Undefined and time fields have a Time Format property. You can change the format in which Corel Paradox displays the time in the selected field. Right-click a field (not the column header), and choose Properties. Choose a time format from the list on the Format property page.

When you choose Time, Corel Paradox displays a list of available predefined time formats. Choose a format to apply to the selected field, or click Create New Format to open a dialog box for defining your own customized format.


Timestamp Format property (charts)
Timestamp Format property

Undefined and time fields have a Timestamp Format property. You can change the format in which Corel Paradox displays the timestamp in the selected field. Right-click the field and choose Properties. Choose the appropriate format from the Format property page.

Choose a predefined timestamp format to apply to the selected field, or click Create New Format to open a dialog box for defining your own customized format.


Variable Height (Columnar) property (charts)
Variable Height (Columnar) property

You can instruct Corel Paradox to expand or contract individual records in a multi-record object when you print or preview reports. This means that the multi-record object does not display the records in a fixed-size grid, and you can usually fit more records on a single page than you can without this property.

Right-click the multi-record object and choose Properties. Enable the Variable Height (Columnar) check box on the Record layout property page.

 Note

•	Variable Height (Columnar) is only available when the Top-Down, Then Left-Right setting is enabled.


Vertical Scroll Bar property (charts)
Vertical Scroll Bar property

Vertical Scroll Bar places a vertical scroll bar at the bottom of a crosstab, table, graphic, or OLE object. Right-click on the object and choose Properties. Enable the Vertical Scroll Bar check box on the General property page.

On table and crosstab objects, vertical scroll bars scroll through data, not the underlying image. That's why the vertical scroll bar does nothing when you click it in a design window. When you are viewing data, the vertical scroll bar acts like the navigation buttons on the Toolbar to move forward and backward through records or sets of records.


Visible property (charts)
Visible property

You can make objects on a form can be visible or invisible at Run Time. Right-click the object and choose Properties. Enable the Visible check box on the Run Time property page.

Visible is enabled by default. If you disable it, Corel Paradox hides the object (and all objects contained by it) when you run (view) the form. This feature is useful mainly for ObjectPAL developers who want to create forms in which objects are visible only when needed.

Unlike the Run Time property Invisible (used in reports on lines and boxes), Visible makes the children of the object disappear, as well as the object itself.


Wide Scroll Bar property (charts)
Wide Scroll Bar property

You can make a design object's horizontal and vertical scroll bars wider. Right-click the object and choose Properties. Enable the Wide Scroll Bar check box on the General property page.


Word Wrap property (charts)
Word Wrap property

You can change the way the text wraps in field objects and text boxes. Right-click the field object or text box and choose Properties. Enable the Word Wrap check box on the Text property page.

Fields	 Word Wrap splits the contents of a field (all fields except graphic and OLE) to display it in more than one line when it exceeds the width of the field object.

Text	All text objects have the Word Wrap option on their menus. Choose this if you want Corel Paradox to wrap text automatically at the text object's frame. If Word Wrap is turned off, you can have only one line of text in the text object. Pressing ENTER does not create a new line.


Debugger

The ObjectPAL Debugger lets you interactively test and trace execution of commands in your methods.

Using the Debugger, you can

•	Set breakpoints so you can execute instructions up to a certain point, then stop and see what has happened.

•	Inspect or watch variables to make sure values are being manipulated as you intended.

•	Execute a method one line at a time (called single-stepping), or step over methods and procedures that you know are bug-free.

•	List, and optionally view, the methods and procedures on the call stack; that is, those called since your form started running.

The Debugger environment

The debug environment includes the Debugger window, and the Watches, Breakpoints, Tracer, and Call Stack windows. You can position and size these windows to your liking and then click Properties, Save Debug State.

You can set preferences for the Debugger in the Developer Preferences dialog box. For example, you can choose to have the Debugger open automatically when you are in design mode, or when you are running a form.

To set your developer preferences

•	Click Tools, Settings, Developer Preferences.

Starting the Debugger

Although you can open the Debugger window before running code by clicking the Debugger Window button from the Editor Toolbar, you can use the Debugger only when execution is suspended at a breakpoint. To suspend execution and run code in the Debugger, you must either

•	Set a breakpoint in the Editor before you run the code

•	Use the DEBUG statement in your code and run it with Properties, Compile With Debug turned on

Once execution is suspended in the Debugger, Program, Compile With Debug must be turned on if you want to step through, instead of stepping over, code in a form, library, or script called from the code in the Debugger.

To start the Debugger by using breakpoints,

1.	Open the Editor window for the method or procedure you want to debug.

2.	Set a breakpoint on the line or lines where you want to suspend execution.

3.	Run your form.

When the breakpoint is reached, the debugger window opens and displays the method with the breakpoint. A method or built-in procedure executes until it reaches a breakpoint [image] the line containing the breakpoint does not execute. The gray triangle indicates which line will execute next.

While execution is suspended at a breakpoint, the pointer turns into a stop sign whenever you move it over the form being debugged. The stop sign is a reminder that you are in debug mode for that form and can only proceed under the control of the Debugger.

The Debugger pop-up menu

Right-click anywhere in the Debugger window to display the Debugger pop-up menu. This menu contains most of the commands from the Program menu.

 Related Topics


Edit|Save Debug State
Save Debug State command

Saves the Debugger environment in its current state. The Debugger environment includes the Debugger window, and the Watches, Breakpoints, Tracer, and Call Stack windows.

Any of the  windows you have open when you click Edit, Save Debug State are automatically opened whenever you start the Debugger. Corel Paradox saves the size and position of these windows, whether or not they were open when the debug state was saved. The debug state is saved to the registry and is reinstated each time you start Corel Paradox.


View|Source
Source command

Displays another method’s code in an Editor window. This is a quick way to move to a specific method for a specific object. Select one of the methods listed in the Method List dialog box to load it in the Debugger.


Program|Run
Run command

Runs the current form or script.


Program|Run to Cursor
Run to Cursor command

Continues execution to the insertion point.


Program|Run to EndMethod
Run to EndMethod command

Continues execution to the end of the current method, disregarding any additional breakpoints.


Program|Step Over
Step Over command

Single-steps through a method, treating procedures and custom methods as single steps. This command is available only when execution stops at a breakpoint.


Program|Step Into
Step Into command

Single-steps through every line in a method and every line in the procedures and custom methods the method calls. This command is available only when execution stops at a breakpoint.


Program|Stop Execution
Stop Execution command

Halts the Debugger execution. A dialog box appears stating that execution is stopped. Click OK to return to view mode. Click the Design button to return to design mode.

This command is available only when execution is suspended at a breakpoint.


Program|Inspect
Inspect command

Allows you to inspect variables and constants when execution is halted at a breakpoint, and optionally change a variable's value. You can also click the Inspect button or press CTRL+L. You can inspect Library, Form, Script, or Report variable types.

If the insertion point is next to or inside an assigned variable, a dialog box opens displaying the current value of that variable. If you want to change the variable, type a new value.

If the insertion point is not currently in an assigned variable, a dialog displays the variable nearest to the breakpoint. Click OK to inspect the variable shown, or type in the name of the variable you want to inspect. You can also drag the mouse to select an item to inspect.


Program|Add Watch
Add Watch command

Adds a watch to a variable. You can then track the variable’s value in the Watches window while the form or method executes.


Program|Toggle Breakpoint
Toggle Breakpoint command

Sets a breakpoint in a method to suspend execution at a specified line of code.


Program|Origin
Origin command

Displays the method containing the current breakpoint with the insertion point on the line containing the breakpoint.

When Corel Paradox suspends execution at a breakpoint, the Debugger displays the method containing the breakpoint. At this time, you can navigate through your code in the Debugger window, or even display another method in the Debugger.

This command is also useful when you want to return quickly to the breakpoint where execution was halted, and is available only when execution is suspended at a breakpoint.


Tracer window
ObjectPAL	Commands

The ObjectPAL Tracer lists each ObjectPAL statement as it executes, providing a record of what happened and when. By default, the Tracer lists only methods and procedures that you have attached code to. However, you can choose to trace any or all of a form's built-in event methods, whether or not they have ObjectPAL code attached.

 Related Topics


ObjectPAL

tracerClear

tracerHide

tracerOff

tracerOn

tracerSave

tracerShow

tracerToTop

tracerWrite


Tracer Window menu commands
ObjectPAL

File, Close

File, Save

File, Save As

File, Print

File, Printer Setup

File, Print

File, Clear

Properties, Trace On

Properties, Built in Events

Properties, Show Code

 Related Topics


File|Clear
Clear command

Deletes all tracer output generated so far.


File|Close
Close command

Closes the Tracer window.


File|Save
Save command

Saves the contents of the Tracer window.


File|Save As
Save As command

Saves the contents of the Tracer window under a different name.


File|Print
Print command

Opens the Editor Print Layout dialog box, from which you can print the contents of the Script, Tracer, and Method windows.


File|Printer Setup
Printer Setup command

Allows you to select a printer or change other Windows printer settings.


Tracer Properties|Trace On
Trace On command

Turns tracer output off and on without closing the Tracer window.

When you have the Properties, Show Code command enabled, tracer output consists of each line of code executed in all methods, procedures, and libraries. When you have the Properties, Show Code command disabled, tracer output consists only of messages output from tracerWrite statements and any built-in event methods enabled in the Select Built-in Event Methods For Tracing dialog box.


Tracer Properties|Built-in Events
Built-in Events command

Displays a dialog box listing all the built-in event methods. Enable a built-in method to display information about the method in the Tracer window as it executes.

Enabling a built-in method indicates that you want that method traced; disabled methods are not traced. It does not matter whether or not the method has code attached to it [image] if it is enabled Corel Paradox will trace it.

When the Form Prefilter check box is enabled, methods are traced as they execute for the form and the intended target object; otherwise methods are traced only for the target object.


Properties|Show Code
Show Code command

Controls whether each line of code is listed in the Tracer as it executes. With Show Code disabled, tracer output consists only of messages output from tracerWrite statements and any built-in event methods enabled in the Select built-in Event Methods For Tracing dialog box.


Watches window

The Watches window lets you inspect a variable's value in the Watches window while the form or method executes.

Watching a variable is similar to inspecting a variable, except you can watch a variable's value change as your code executes. You can watch simple types; more complex types, like arrays, must be inspected. You watch variables of the Form, Script, and Report types, but you cannot changes their values.

To watch a variable,

1.	In the Debugger window, place the insertion point next to or inside a variable name.

2.	Click Program, Add Watch, or click the Add Watch button. The Watch window opens.

Using the Watches window

Right-click anywhere in the Watches window to display its menu. From this menu you can add or remove variables you want to watch, edit the name of a variable being watched, or change the value of a watched variable. You must use the menu to perform any of these actions. Typing anything in the Watches window opens the Change Value dialog box for the selected variable.

•	To add a variable to watch, click the New button and type the name of the variable you want to watch.

•	To edit the name of a watched variable, click the Edit button and change the name of the watched variable.

•	Click the Change button to change the value of a variable. The Change Value dialog box opens. Type a new value for the variable.

•	Click the Remove button to remove the currently selected variable from the Watches window.

•	Click the Remove All button to remove all variables from the Watches window.

 Related Topics


New
New command

Adds a variable to watch.


Edit
Edit command

Changes the name of the watched variable.


Change
Change command

Changes the value of a variable.


Remove
Remove command

Removes a watched variable from the Watches window.


Remove All
Remove All command

Removes all watched variables from the Watches window.


Breakpoints window

The Breakpoints window lists all the breakpoints in your code for the active form, library, or script.

Right-click a breakpoint to remove one or all breakpoints.

 Related Topics


Remove
Remove command

Removes the breakpoint.


Remove All
Remove All command

Removes all breakpoints.


Call Stack window

The Call Stack window lists the methods and procedures containing custom code that were called before the current breakpoint was reached. This list is referred to as the call stack. The most recently called routine is listed first, followed by its caller and so on, all the way back to the first method or procedure.

Any method or procedure on the call stack can be viewed in the Debugger. Just right-click the method or procedure and choose Inspect Context. If you have the Watches window open, the watched variables are updated to reflect their values at that scope.

 Related Topics


Inspect Context
Inspect Context command

Allows you to view any method or procedure listed in the Call Stack window in the Debugger.


Data Model Designer (current data model)

Use the Data Model Designer to modify the data model of a design document and to save, load and print data models.

Click Tools, Data Model Designer to open the Data Model Designer.

If you click View, Current Data Model so that a check mark appears beside the option, the Data Model Designer displays the data model of the active form or report.

For information on using the Data Model Designer, see the following topics:

 About data models

 About the Data Model Designer

 Adding a table to the data model

 Viewing two data models at one time

 Saving a data model in the Data Model Designer

 Related Topics


Data Model Designer (reference model)

Use the Data Model Designer to modify the data model of a design document and to save, load and print data models. Choose Tools, Data Model Designer to open the Data Model Designer.

If you click View, Reference Model so that a check mark appears beside the option, the Data Model Designer displays a data model that you can modify and save to disk independently of a form or report. This data model can be a reference when you're working with other data models in the Form Design window or Report Design window. You can view the data model, borrow from it, or use it directly in a design document.

For information on using the Data Model Designer, see the following topics:

 About data models

 About the Data Model Designer

 Adding a table to the data model

 Viewing two data models at one time

 Saving a data model in the Data Model Designer

 Data Model Designer (split view)

 Related Topics


Data Model Designer (split view)

Use the Data Model Designer to modify the data model of a design document and to save and load data models. Click Tools, Data Model Designer to open the Data Model Designer.

If you click View, Current Data Model and View, Reference Control so that check marks appear beside the options, the Data Model Designer displays the following two panes:

•	The top pane shows the currently loaded reference data model.

•	The bottom pane shows the data model of the active form or report.

With both panes displayed, you can drag and drop tables from the Reference Model pane to the Current Data Model pane.

For information on using the Data Model Designer, see the following topics:

 About data models

 About the Data Model Designer

 Viewing two data models at one time

 Copying items from the reference data model

 Adding a table to the data model

 Loading a data model

 Saving a data model in the Data Model Designer

 Note

•	From this view, only the data model of the active form or report can be modified. To change the reference data model, click View, Reference Model only, then click File, Open, or, right-click the pane background.

 Tip

•	If you have difficulty seeing the Reference Model pane, enlarge the pane by dragging the border between the panes down, or by resizing the Data Model Designer window.

 Related Topics


Data Model Designer menu commands

File, Open

File, Close

File, Save

File, Save As

File, Print

Edit, Delete

View, Current Data Model

View, Reference Model

View, Reference Control

Design, Add Table

Design, Unlink

Design, Link

Design, Accept Changes

Design, Cancel Changes

Design, Save As Default

Design, Restore Default

Design, Current Table

 Related Topics


File|Open
Open command

Loads a previously saved data model into the Data Model Designer.

If the View, Current Data Model option is enabled

Corel Paradox loads a data model, replacing the data model of the active form or report. Click Design, Accept Changes to change the data model of the active form or report. Click Design, Cancel Changes to cancel the changes.

If the View, Reference Model option is enabled

Corel Paradox loads a reference data model.

Right-click the background of the window and choose a data model from the list.

If the View, Reference Control option is enabled

Corel Paradox loads the data model file in the current data model pane.


File|Save
Save command

Saves a data model to disk.

If the View, Current Data Model option is enabled

Corel Paradox opens the Save File As dialog box, which you can use to save the form's or report's data model.

If the View, Reference Model option is enabled

Corel Paradox saves changes you have made to the currently loaded data model.

If the View, Reference Control option is enabled

Corel Paradox saves the changes made to the current data model pane.


File|Save As
Save As command

Saves a copy of a data model under a different name. Corel Paradox opens the Save File As dialog box.

If the View, Current Data Model option is enabled

Use the Save File As dialog box to save the data model. Specify the file name and directory where you want to create the new reference data model.

If the View, Reference Model option is enabled

Use the Save File As dialog box to specify the file name and directory where you want to copy the currently loaded reference data model. After saving the data model, if you want to use it as your reference data model, click Design, Save As Default.

If the View, Reference Control option is enabled

The File, Save As operation applies only to the Current Data Model pane.


File|Close
Close command

Closes the Data Model Designer.


File|Print
Print command

Prints the currently loaded data model.


Edit|Delete
Delete command

Removes a selected table from the data model. For a table to be deleted, it must not be linked to another table. (First select the detail table and click Design, Unlink if the table you want to remove is linked.)


View|Current Data Model
Current Data Model command

Displays the data model of the active form or report.


View|Reference Model
Reference Model command

Displays a reference data model.


View|Reference Control
Reference Control command

Places a check mark beside the option to split the Data Model Designer into two panes. The bottom pane of the window shows the data model of the active form or report. The top pane of the window shows the currently loaded reference data model.

 Notes

•	From this view, only the data model in the bottom pane can be modified. All menu commands and Toolbar buttons apply only to the data model in the bottom pane.

•	You can only enable the View, Reference Control option when the View, Current Data Model option is also enabled.


Design|Accept Changes
Accept Changes command

Changes the data model for the active form or report after you finish making changes. This menu command is available only when the View, Current Data Model option is enabled.


Design|Add Table
Add Table command

Adds tables to the data model. Corel Paradox opens the Select File dialog box.


Design|Unlink
Unlink command

Unlinks a selected detail table.


Design|Link
Link command

Allows you to view or modify the link between two tables.


Design|Cancel Changes
Cancel Changes command

Undoes changes you have made to a data model.


Design|Save As Default
Save As Default command

Saves the default appearance of the Data Model Designer. Choose this command when you want the Data Model Designer to always appear the way it does now. The data model you save as a default acts as a reference when you're working with other data models in the Form Design or Report Design windows.

When you click Design, Save As Default, Corel Paradox records

•	The name of the reference data model

•	The size and position of the Data Model Designer

•	Which commands from the View menu are enabled

Then, whenever you click Tools, Data Model Designer, the Data Model Designer appears as it did when you saved the defaults.


Design|Restore Default
Restore Default command

Restores the appearance of the Data Model Designer to the appearance it had when you last clicked Design Save As Default. This command is equal to restoring the default, or reference data model.


Design|Current Table
Current Table command

Allows you to view and change properties of the selected table.


Object Explorer window

The Object Explorer is your entryway to the ObjectPAL Editor. It also lets you view an object tree for the current form, and, in addition, gives you a developer's interface to properties, which you can change in the explorer.

The two panes share four menus:

•	The File menu, for closing the Object Explorer

•	The Edit menu containing editing commands such as Undo, Cut, Copy, Paste and Delete.

•	The View menu, used to specify what part of the Object Explorer to view, whether to hide the main menu, and whether to temporarily pin the Object Explorer to the Desktop.

•	The Help menu, for getting help on using the Object Explorer.

The Object Explorer has two panes: an object tree pane and a tabbed pane that shows the object's methods, properties and events. You can display the panes side-by-side or you can display each pane individually. These choices are available on the Object Explorer View menu. You can also adjust the size of the panes by dragging the border between the two.

The object tree displays information for the current document; the tabbed pane displays information for the selected object. If you select another object or document, the contents of the Object Explorer change to reflect the new object or document.

The object tree

The object tree shows the hierarchical relationships among objects in the current form. It works like the Windows Explorer: click on a plus (+) icon to expand that node of the tree; click on a minus (-) icon to collapse it. When fully expanded the object tree shows all objects you've placed in the current form. You can move and copy objects in the object tree using the right-click menu. You can also right-click the objects in the object tree to change their properties.

For information on using the object tree, see About the object tree in the ObjectPAL Reference help.

The tabbed pane

The tabbed pane contains separate pages to show what methods, events, and properties and appearances are attached to an object. It lets you change the properties for an object and open individual Editor windows to edit methods and events.

For information on using the tabbed pane, see About the tabbed pane in the ObjectPAL Reference help.

 Related Topics


File|Close
Close command

Closes the Object Explorer window.


Edit|Undo
Undo command

Cancels a deletion if you just deleted a design object from the object tree.

 Note

•	Undo is NOT available from the tabbed pane of the Object Explorer. Any deletion you perform from the Methods or Events page you cannot undo.


Edit|Cut
Cut command

Deletes the selected design object in the object tree and place it on the Clipboard.


Edit|Copy
Copy command

Places a copy of the selected object in the object tree on the Clipboard.

 Note

•	Copy is not available from the tabbed pane of the Object Explorer.


Edit|Paste
Paste command

Inserts the contents of the Clipboard to the selected object in the object tree.

If the container object cannot accept the object because of containership rules, or because the object is too big, you'll hear a beep, and the paste will not be done. If the object selected to be the container object is not an appropriate container for the object you want to paste, then Paste is not available.


Edit|Delete
Delete command

Deletes the selected object from the object tree or deletes the method or event selected on a Methods or Events page. A deletion from a Methods or Events page is permanent. A deletion from the object tree can be undone (click Edit, Undo).


View|Object Tree
Object Tree command

Hides the tabbed pane of the Object Explorer and displays only the object tree.


View|Tabbed Pane
Tabbed Pane command

Hides the object tree and displays only the tabbed pane of the Object Explorer.


View|Both
Both command

Displays both sides of the Object Explorer: the object tree and the tabbed pane.


View|Hide Menu
Hide Menu command

Hides the menu across the top of the Object Explorer. To display the menu again, click Show Menu from the Object Explorer's Control menu (upper left corner).


View|View All
View All command

When enabled, shows you all built-in event methods appropriate to the objects you select. When disabled, only a "beginner's" subset of built-in event methods is shown. The setting applies only to the current session and temporarily overrides the ObjectPAL Level setting in the Developer Preferences dialog box (Tools, Settings menu).


View|Pin Explorer
Pin Explorer command

Keeps the Object Explorer pinned to the Desktop (open on the Desktop) while you work in the Form Design window or an Editor window during your work on the current form or until you click View, Pin Explorer so that there is no check mark beside the option. When you make another form active, Pin Explorer is automatically disabled, and the Object Explorer closes.

If Pin Explorer is disabled, the Object Explorer closes when you move focus outside the Form Design window, unless you have enabled the Keep Pinned preference in the Explorer page of the Developer Preferences dialog box (Edit menu).


Help|Object Explorer Help
Object Explorer Help command

Opens a Help topic that explains the Object Explorer.


The ObjectPAL Editor

When you open an Editor window, some default text appears. By default, keywords appear in bold and comments in italics.

Customizing the Editor

You can customize the Editor by clicking Tools, Settings, Developer Preferences and choosing your preferences on the various pages of the Developer Preferences dialog box. Many options are available, such as color highlighting, incremental search, smart tab indent, and so on. You can also choose BRIEF or Epsilon keymaps, instead of the Corel Paradox default.

Getting Help on the ObjectPAL Editor

For help on any element of the ObjectPAL language, place the cursor in an ObjectPAL word and press F1. If there is only one Help topic for the word, the topic opens. If there is more than one, you'll get a list of topics to choose from.

For a listing of keystrokes that correspond to the keymap you choose in the Developer Preferences dialog box, place the insertion point on a blank space in the Editor and hold down SHIFT+F1.

Keystroke mappings

You can choose from three keystroke mappings in the ObjectPAL Editor:

•	The default Paradox keymap

•	BRIEF

•	Epsilon

Of the three, the default is the only CUA keymap. The BRIEF and Epsilon mappings do not allow standard menu access through hotkeys, and standard MDI keys are not available.

Menus

Using the BRIEF and Epsilon keymaps, you can access the menus by pressing F10 or by pressing and releasing the ALT key. This moves the focus to the menu. Then press the shortcut key for the wanted menu.

The Default keymap allows menu access as for BRIEF and Epsilon, but in addition the menus can be reached by the standard ALT+Key combination, for example, ALT+E for the Edit menu.

Standard MDI system keys

Standard MDI system keys are only available for the Default keymap. Examples of these keys are:

CTRL+F6	The MDI window toggle

ALT+F6 	The SDI window toggle

CTRL+F4	Closing an MDI window

For more information about the Editor, see About the Editor.

 Related Topics


Paradox default keymap

If you're using the Paradox default keystroke mapping (Developer Preferences dialog box, Display page) the keystrokes in the left column will perform the actions shown on the right.

Left Arrow	Moves the cursor left one column

Right Arrow	Moves the cursor right one column

Up Arrow	Moves the cursor one line up

Down Arrow	Moves the cursor one line down

HOME	Moves the cursor to the start of the line

END	Moves the cursor to the end of the line

Page Up	Moves the cursor up one page

Page Down	Moves the cursor down one page

BACKSPACE	Deletes the character to the left of the cursor

DELETE	Deletes the character to the right of the cursor. (On the cursor if it is a box-shaped cursor)

INSERT	Toggles between insert and typeover modes

TAB	Inserts a tab, or indents to the indent of the previous line if smart-tab is turned on

CTRL+Left Arrow	Moves the cursor left one word

CTRL+Right Arrow	Moves the cursor right one word

CTRL+Up Arrow	Scrolls the window up one line

CTRL+Down Arrow	Scrolls the window down one line

CTRL+HOME	Moves the cursor to the start of the editor

CTRL END	Moves the cursor to the end of the editor

CTRL+Page Up	Moves the cursor to the top of the screen

CTRL+Page Down	Moves the cursor to the bottom of the screen

CTRL+BACKSPACE	Deletes the word to the left of the cursor

CTRL+DELETE	Deletes the word to the right of the cursor

CTRL+TAB	Smart tab, indents to the indent of the previous line

SHIFT+Left Arrow	Selects from the character to the left of the cursor

SHIFT+Right Arrow	Selects from the character to the right of the cursor

SHIFT+Up Arrow	Selects from one line up

SHIFT+Down Arrow	Selects from one line down

SHIFT+HOME	Selects to the start of the line

SHIFT+END	Selects to the end of the line

SHIFT+Page Up	Selects to the previous page

SHIFT+Page Down	Selects to the next page

SHIFT+TAB	Moves the cursor back one tab position

CTRL +SHIFT+Left Arrow	Selects from the word to the left of the cursor

CTRL+SHIFT+Right Arrow	Selects from the word to the right of the cursor

CTRL+SHIFT+HOME	Selects from start of the editor

CTRL+SHIFT+END	Selects from the end of the editor

CTRL+SHIFT+Page Up	Selects from the start of the screen

CTRL+SHIFT+Page Down	Selects from the end of the screen

CTRL+INSERT	Copies to the Clipboard

SHIFT+DELETE	Cuts to the Clipboard

SHIFT+INSERT	Pastes from the Clipboard

CTRL+C	Copies to the Clipboard

CTRL+X	Cuts to the Clipboard

CTRL+V	Pastes from the Clipboard

ALT+BACKSPACE	Undoes the last action

ALT+DELETE	Redoes the last action

CTRL+]	Finds matching parenthesis

F1	Invokes context sensitive Help

F2	Saves the source into the form. Nothing is saved to disk.

F3	Inspects the variable at the cursor (Debugger only)

F5	Go To Line command

F7	Step Over (Debugger only) command

F8	Run

F9	Checks syntax

SHIFT+F2	Saves the source and closes the editor

SHIFT+F3	Views the callstack (toggle). Toggles Object Explorer tabs

If no breakpoint is set.

SHIFT+F7	Step Into command (Debugger only)

SHIFT+F8	Run to cursor command (Debugger only)

SHIFT+F9	Compiles the form

CTRL+F3	Toggles the breakpoint

CTRL+F5	Next Warning

CTRL+F8	Run to endMethod command (Debugger only).

CTRL+F9	Delivers

CTRL+A	Find next command

CTRL+B	Toggles the breakpoint

CTRL+D	Delivers

CTRL+G	Go To line command

CTRL+I	Inspects the variable at the cursor (Debugger only)

CTRL+L	Replace All command

CTRL+N	Next warning command

CTRL+R	Replace next command

CTRL+S	Incremental search command

CTRL+W	Add watch of variable at cursor command

CTRL+Y	Deletes the current line.

CTRL+Z	Find first.

CTRL+SHIFT+I	Indents the block

CTRL+SHIFT+U	Outdents the block

CTRL+SHIFT+R	Records the key macro

CTRL+SHIFT+P	Plays back the key macro

CTRL+SHIFT+Z	Replaces first

CTRL+SHIFT+ 0	Sets the bookmark number to 0

CTRL+SHIFT+ 1 	Sets the bookmark number to 1

CTRL+SHIFT+ 2 	Sets the bookmark number to 2

CTRL+SHIFT+ 3 	Sets the bookmark number to 3

CTRL+SHIFT+ 4 	Sets the bookmark number to 4

CTRL+SHIFT+ 5 	Sets the bookmark number to 5

CTRL+SHIFT+ 6 	Sets the bookmark number to 6

CTRL+SHIFT+ 7 	Sets the bookmark number to 7

CTRL+SHIFT+ 8 	Sets the bookmark number to 8

CTRL+SHIFT+ 9 	Sets the bookmark number to 9

CTRL+ 0	Goes to bookmark number 0

CTRL+ 1	Goes to bookmark number 1

CTRL+ 2	Goes to bookmark number 2

CTRL+ 3	Goes to bookmark number 3

CTRL+ 4	Goes to bookmark number 4

CTRL+ 5	Goes to bookmark number 5

CTRL+ 6	Goes to bookmark number 6

CTRL+ 7	Goes to bookmark number 7

CTRL+ 8	Goes to bookmark number 8

CTRL+ 9	Goes to bookmark number 9

CTRL+K+B	Sets the start of the block (Persistent blocks must be enabled)

CTRL+K+C	Copies the block to the Clipboard

CTRL+K+E	Changes the word under the cursor to lowercase

CTRL+K+F	Changes the word under the cursor to uppercase

CTRL+K+H	Hides the block

CTRL+K+I	Indents the block

CTRL+K+K	Sets the end of the block (Persistent blocks must be enabled)

CTRL+K+L	Marks the current line

CTRL+K+N	Uppercase block

CTRL+K+O	Lowercase block

CTRL+K+R	Reads the block from the file

CTRL+K+S	Saves the form

CTRL+K+T	Marks the word under the cursor

CTRL+K+U	Outdents the block

CTRL+K+V	Move the block (Persistent blocks must be enabled)

CTRL+K+W	Writes the block to file

CTRL+K+Y	Deletes the current block.

CTRL+O+C	Sets the column block

CTRL+O+G	Go To line command

CTRL+O+I	Sets an inclusive block

CTRL+O+K	Sets a non inclusive block

CTRL+O+L	Sets a line block

CTRL+O+O	Toggles the case of the block

 Related Topics


BRIEF keymap

If you selected the BRIEF keystroke mapping in the Display page of the Developer Preferences dialog box (Edit menu) the keystrokes in the left column will perform the actions shown on the right.

Left Arrow	Moves (or extends the selection) one column to the left of the cursor

Right Arrow	Moves (or extends the selection) one column to the right of the cursor

Up Arrow	Moves (or extends the selection) one line up from the cursor

Down Arrow	Moves (or extends  the selection) one line down from the cursor

HOME	Moves (or extends the selection) to start on the line, then the start of the screen, then the start of the editor

END	Moves (or extends the selection) to end of the line, then to the end of the screen, then to the end of the editor

Page Up	Moves (or extends the selection) one page up

Page Down	Moves (or extends the selection) one page down

BACKSPACE	Deletes the character to the left of the cursor

DELETE	Deletes the character to the right of the cursor. (On the cursor if it is a box-shaped cursor)

TAB	Inserts a tab, or indents a block if a block exists

CTRL+Left Arrow	Moves (or extends the selection) one word to the left of the cursor

CTRL+Right Arrow	Moves (or extends the selection) one word to the right of the cursor

CTRL+HOME	Moves (or extends the selection) to the top of the screen

CTRL+END	Moves (or extends the selection) to the bottom of the screen

CTRL+Page Up	Moves (or extends the selection) to the start of the editor

CTRL+Page Down	Moves (or extends the selection) to end of the editor

CTRL+BACKSPACE	Deletes the word to the left of the cursor

ALT+BACKSPACE	Deletes the word to the right of the cursor

SHIFT+HOME	Moves (or extends the selection) to the left of the screen

SHIFT+END	Moves (or extends the selection) to the right of the screen

SHIFT+TAB	Moves back to the previous tab; or, outdents the block if a block exists

INSERT	Pastes from the Clipboard

Minus (Num Keypad)	Cuts the block to the Clipboard; cuts the current line if no block is selected

Plus (Num Keypad)	Copies the block to the Clipboard; copies the current line if no block is selected

Star (Num keypad)	Undoes the last action

F1	<Not assigned. Reserved for later use>

F5	Finds first

F6	Replaces first

F7	Records the key macro

F8	Plays back the key macro

F9	Run

F10	Selects the menu

F11	Step over command (Debugger only)

F12	Step into command (Debugger only)

ALT+F2	Zooms the window

ALT+F3	Inspects the variable at the cursor (Debugger only)

ALT+F5	Reverse search first

ALT+F6	Reverse replace first

ALT+F7	Run to cursor command (Debugger only)

ALT+F8	Run to endMethod command (Debugger only)

ALT+F10	Syntax check

CTRL+F3	Views the callstack

CTRL+F4	Add watch of variable at cursor command

CTRL+F5	Toggles the case sensitive in search

CTRL+F6	Toggles the advanced match in search

CTRL+F8	Toggles the breakpoint

CTRL+F9	Run

CTRL+F10	Compiles the form

SHIFT+F5	Searches for the next occurrence of an item

SHIFT+F6	Replaces the next occurrence of an item

CTRL+B	Scrolls the current line to the bottom of the window

CTRL+C	Scrolls the current line to the center of the window

CTRL+D	Scrolls the window one line down

CTRL+E	Scrolls the window one line up

CTRL+K	Deletes to the beginning of the line

CTRL+M	ENTER key

CTRL+N	Displays the next warning

CTRL+S	Incremental search command

CTRL+T	Scrolls the current line to the top of the window

CTRL+U	Redoes the last action

ALT+A	Starts non-inclusive block marking

ALT+C	Starts column marking

ALT+D	Deletes the line

ALT+E	Views the Object Explorer

ALT+G	Go To line command

ALT+H	Help

ALT+I	Toggles the insert / typeover modes

ALT+K	Deletes to the end of the line

ALT+L	Starts line marking

ALT+M	Starts inclusive block marking

ALT+O	Save form as command

ALT+R	Reads the block from the file

ALT+S	Searches for the first occurrence of an item

ALT+T	Replaces the first occurrence of an item

ALT+U	Undoes the last action

ALT+W	Writes the block to file; or, if there is no block, saves the form to disk

ALT+X	Closes the editor without saving the code

ALT+ 0	Sets the bookmark number to 0

ALT+ 1 	Sets the bookmark number to 1

ALT+ 2 	Sets the bookmark number to 2

ALT+ 3 	Sets the bookmark number to 3

ALT+ 4 	Sets the bookmark number to 4

ALT+ 5 	Sets the bookmark number to 5

ALT+ 6 	Sets the bookmark number to 6

ALT+ 7 	Sets the bookmark number to 7

ALT+ 8 	Sets the bookmark number to 8

ALT+ 9 	Sets the bookmark number to 9

ALT+J+ 0	Goes to bookmark number 0

ALT+J+ 1	Goes to bookmark number 1

ALT+J+ 2	Goes to bookmark number 2

ALT+J+ 3	Goes to bookmark number 3

ALT+J+ 4	Goes to bookmark number 4

ALT+J+ 5	Goes to bookmark number 5

ALT+J+ 6	Goes to bookmark number 6

ALT+J+ 7	Goes to bookmark number 7

ALT+J+ 8	Goes to bookmark number 8

ALT+J+ 9	Goes to bookmark number 9

CTRL+Q+[	Finds matching parenthesis

CTRL+Q+]	Finds matching parenthesis

CTRL+O+O	Toggles the case of the block

 Related Topics


Epsilon keymap

If you selected the Epsilon keystroke mapping in the Developer Preferences dialog box (Display page) the keystrokes in the left column will perform the actions shown on the right.

Left Arrow	Moves the cursor one column to the left

Right Arrow	Moves the cursor one column to the right

Up Arrow	Moves the cursor up one line

Down Arrow	Moves the cursor down one line

HOME	Moves the cursor to the top of screen

END	Moves the cursor to the bottom of screen

Page Up	Moves the cursor up one page

Page Down	Move cursor down one page

BACKSPACE	Deletes the character to the left of the cursor

DELETE	Deletes the character to the right of the cursor. (On the cursor if box-shaped cursor)

INSERT	Toggles insert / typeover modes

TAB	Inserts a tab; or, indents to the indent of the previous line if smart-tab is enabled

CTRL+Left Arrow	Moves the cursor one word to the left

CTRL+Right Arrow	Moves the cursor one word to the right

CTRL+HOME	Moves the cursor to the start of the editor

CTRL+END	Moves the cursor to the end of the editor

ESCAPE+Left Arrow	Moves the cursor to the start of the line

ESCAPE+Right Arrow	Moves the cursor to the end of the line

F1	Context sensitive Help

F2	Saves the source into the form. Nothing is saved to disk.

F3	Inspects the variable at the cursor (Debugger only)

F5	Go To Line command

F6	Add watch of variable at cursor command

F7	Step Over command (Debugger only)

F8	Run

F9	Undoes the last action

SHIFT+F2	Saves the source and closes the editor

SHIFT+F3	Views the callstack (toggle)

SHIFT+F7	Step into command (Debugger only)

SHIFT+F8	Run to cursor command (Debugger only)

SHIFT+F9	Compiles the form

CTRL+F3	Toggles the breakpoint

CTRL+F5	Next Warning command

CTRL+F8	Run to endMethod command (Debugger only)

CTRL+F9	Undoes the last action

CTRL+F10	Redoes the last action

CTRL+A	Moves the cursor to the start of the line

CTRL+B	Move the cursor one column to the left

CTRL+D	Deletes the character to the right of the cursor. (On the cursor if it is a box-shaped cursor)

CTRL+E	Moves the cursor to the end of the line

CTRL+F	Moves the cursor one column to the right

CTRL+H	Deletes the character to the left of the cursor

CTRL+K	Deletes the current line and copy/append to Clipboard

CTRL+L	Scrolls the current line to the center of the window

CTRL+M	ENTER

CTRL+N	Moves the cursor one line down

CTRL+P	Moves the cursor one line up

CTRL+S	Incremental search

CTRL+T	Switches the 2 characters on each side of the cursor

CTRL+V	Moves the cursor down one page

CTRL+W	Deletes the block and copies/appends it to the Clipboard

CTRL+Y	Pastes from the Clipboard

CTRL+Z	Scrolls one line up

CTRL+_	Context sensitive Help

CTRL+X,  (	Records the key macro

CTRL+X,  )	Records the key macro

CTRL+X,  E	Plays back the key macro

CTRL+X,  G	Go To line command

CTRL+X,  I	Reads the block from the file

CTRL+X,  U	Undoes the last action

CTRL+X,  W	Writes the block to the file

CTRL+X,  TAB	Indents the block

CTRL+X,  CTRL+F	Views the method explorer (toggle)

CTRL+X,  CTRL+I	Indents the block

CTRL+X,  CTRL+N	Next warning

CTRL+X,  CTRL+R	Redoes the last action

CTRL+X,  CTRL+S	Saves the form

CTRL+X,  CTRL+T	Switches the current and previous lines

CTRL+X,  CTRL+U	Undoes the last action

CTRL+X,  CTRL+W	Writes the block to the file

CTRL+X,  CTRL+X	Exchanges the cursor and the block marker

ALT+B	ESCAPE, B	Moves the cursor one column to the left
ALT+C	ESCAPE, C	Changes the word to uppercase
ALT+D	ESCAPE, D	Deletes the word and copies/appends it to the Clipboard
ALT+F	ESCAPE, F	Moves the cursor one word to the right
ALT+L	ESCAPE, L	Changes the word to lowercase
ALT+M	ESCAPE, M	Moves the cursor to the first character on the current line
ALT+T	ESCAPE, T	Switches the words before and after the cursor
ALT+U	ESCAPE, U	Changes the word to uppercase
ALT+V	ESCAPE, V	Moves the cursor to the previous page
ALT+W	ESCAPE, W	Copies the block to the Clipboard
ALT+Z	ESCAPE, Z	Scrolls the window one line down
ALT+ ,	ESCAPE,  ,	Moves the cursor to the top of the window
ALT+ .	ESCAPE,  .	Moves the cursor to the end of the window
ALT+ \	ESCAPE, \	Deletes the white space on both sides of the cursor
ALT+ )	ESCAPE, )	Finds the matching parenthesis
ALT+ <	ESCAPE, <	Moves the cursor to the start of the editor
ALT+ >	ESCAPE, >	Moves the cursor to the end of the editor
ALT+ ?	ESCAPE, ?	Invokes the context sensitive Help
ALT+ %	ESCAPE, %	Replace first
ALT+ *	ESCAPE, *	Replaces the first occurrence of an item (advanced match)
ALT+ &	ESCAPE, &	Replaces the first occurrence of an item (match string)
ALT+ @	ESCAPE, @	Sets the marker to the current cursor position
ALT+BACKSPACE	ESCAPE, BACKSPACE	Deletes the word to the left of the cursor and copies/ appends it to the Clipboard
ALT+TAB	ESCAPE, Tab	Indents to the indent of the previous line
ALT+CTRL+B	ESCAPE, CTRL+B	Finds matching parenthesis
ALT+CTRL+F	ESCAPE, CTRL+F	Finds matching parenthesis
ALT+CTRL+H	ESCAPE, CTRL+H	Deletes the word to the left of cursor and copies/appends it to the Clipboard
ALT+CTRL+R	ESCAPE, CTRL+R	Searches for the first occurrence of an item (backward, advanced match)
ALT+CTRL+S	ESCAPE, CTRL+S	Searches for the first occurrence of an item (forward, advanced match)
ALT+CTRL+W	ESCAPE, CTRL+W	Appends to the keyboard (until the next non Clipboard action)
ALT+CTRL+ \	ESCAPE, CTRL+ \	Indents the block
 Related Topics


If the directory you want has an alias, you can select it in the Alias drop-down list. The name of the selected directory appears in the Look In drop-down list and the files in that directory appear in the file list.


View the Form opens the form in its view window.


Edit the Form Design opens the form in its design window.


Print the Report prints the form as a report if you also choose Open as Report.


Open as a Report opens the form as a report. This is a quick way to use a form layout to specify the layout of a report.


Run the Query runs the query and displays the Answer table.


Edit the Query opens the query in its design window.


View the Report opens the report in its view window.


Edit the Report Design opens the report in its design window.


Print the Form prints the report as a form if you also choose Open as Form.


Open as a Form opens the report as a form. This is a quick way to use a report layout to specify the layout of a form.


Run the Script runs the script.


Edit the Script opens the script in its design window.


Run the Query runs the query and displays the Answer table.


Edit the Query opens the query in its design window.


Opens a form or report using a different master table [image] a different table from the one on which it was originally designed. When you choose Change Table, Paradox opens the Select File dialog box, where you specify the new master table.


Box tool

Use the Box tool [image] to place a box of any size or shape on a form or report.


Button tool

Use the Button tool [image] to place a button on a form. You can add ObjectPAL code to control the behavior of the button when a user clicks it, or let the Button Expert create code for you for commonly-used pushbutton actions.

The Button tool is available only in the Form Design window.


Chart tool

Use the Chart tool [image] to place a chart on a form or report. Run the Chart Expert to guide you in creating your graphs.


Combo Box tool

Use the Combo Box tool [image] to place a combo box on a form. A combo box is a list box with a drop-down edit region.

The Combo Box tool is a native Windows control that behaves like an OLE Control.


Crosstab tool

Use the Crosstab tool [image] to place a crosstab on a form or report.


Ellipse tool

Use the Ellipse tool [image] to place a circle or ellipse on a form or report.


Field tool

Use the Field tool [image] to place a field object on a form or report, and bind it to a field from a table. The Field Expert will guide you in creating and defining your field.


Graphic tool

Use the Graphic tool [image] to place a graphic on a form or report.

You can paste a graphic from the Windows Clipboard, or choose a .BMP, .PCX, .TIF, .GIF, or .EPS file.


Line tool

Use the Line tool [image] to place horizontal, vertical, and diagonal lines on a form or report.


List Box tool

Use the List Box tool [image] to place a list box on a form.

The List Box tool is a native Windows control that behaves like an OLE Control.


Multi-Record tool

Use the Multi-record tool [image] to place a multi-record object on a form or report.

A multi-record object is a repeating pattern of fields. You specify the layout for one record, then tell Paradox how many times across and down the page you want the pattern to repeat, and Paradox lays out your data for you.


OLE tool

Use the OLE tool [image] to place an OLE object on a form or report.


Progress Bar tool

Use the Progress Bar tool [image] to place a progress bar on a form. A progress bar displays the progress of a process.

The Progress Bar tool is a native Windows control that behaves like an OLE Control.


Spin Box tool

Use the Spin Box tool [image] to place a spin box on a form. A spin box is a box with an edit region containing Up and Down buttons to increment or decrement a value.

The Spin Box tool is a native Windows control that behaves like an OLE Control.


Notebook tool

Use the Notebook tool [image] to place a notebook object on a form.


Table Frame tool

Use the Table Frame tool [image] to place a table frame object on a form or report. You can associate the table object to a table that contains data by right-clicking the table object and selecting the Define Table option.


Text tool

Use the Text tool [image] to place a text object in the design of your form or report. You create a frame which will contain your text. Let theText Expert guide you in setting the properties of the text such as typeface, size, color, justification, special effects, and so on.


Trackbar tool

Use the Trackbar tool [image] to place a trackbar on a form. A trackbar is a mouse-controlled slider.

The Trackbar tool is a native Windows control that behaves like an OLE Control.


Help button

Clicking the Help button is the same as pressing F1.


Join Tables button

To join two tables using the Join Tables [image] button,

1.	Click the Join Tables button. When you move the pointer over a query image, the pointer changes to a join symbol.

2.	Click the corresponding field of each table. Paradox places example elements that join the tables.

After you click the two corresponding fields, Paradox returns the mouse pointer to normal behavior. To return the mouse pointer to normal behavior without joining the tables, click the Join Tables button again.


Typeface

Choose the typeface you want for the selected text.

The typefaces available from the drop-down font list depend on the fonts installed on your system. In a form or report, they also depend on whether you are designing for the screen or for the printer. Standard typefaces include Helvetica, Times Roman, Courier, and System.

 Note

•	If you are designing for the printer, the font displayed on the screen is a best match to a printer font on the selected printer. The screen font may not match the printer font exactly, which may result in letters which are unevenly spaced or difficult to read on screen.


Font size

Choose the font size you want for the selected text from the drop-down list of point sizes.


Align Text Left

Aligns the text to the left edge of the object.


Center Text

Centers the text between the left and right edges of the object.


Align Text Right

Aligns the text to the right edge of the object.


Justify Text

Aligns the text at both the left and right edges of the object.


Line Spacing

In text or memo fields, Line Spacing specifies how far apart lines of text are spaced. You can choose the number of lines separating each column or row. The choices are 1, 1.5, 2, 2.5, or 3 lines.


Bold

Applies the Bold style to the selected text.


Italic

Applies the Italic style to the selected text.


Underline

Applies the Single Underline style to the selected text.


Strikeout

Applies the Strikeout style to the selected text.


Adjust To Minimum Width

Adjusts the size of multiple design objects to the width of the narrowest object. You must select more than one object to use this feature.


Adjust To Maximum Width

Adjusts the size of multiple design objects to the width of the widest object. You must select more than one object to use this feature.


Adjust To Minimum Height

Adjusts the size of multiple design objects to the height of the shortest object. You must select more than one object to use this feature.


Adjust To Maximum Height

Adjusts the size of multiple design objects to the to the height of the tallest object. You must select more than one object to use this feature.


Adjust Horizontal Spacing

Adjusts selected design objects so that the horizontal space between the objects is exactly the same.

 Note

•	Design, Adjust Spacing overrides any Pin Horizontal or Pin Vertical properties you've set for the selected objects.


Adjust Vertical Spacing

Adjusts selected design objects so that the vertical space between the objects is exactly the same.

 Note

•	Design, Adjust Spacing overrides any Pin Horizontal or Pin Vertical properties you've set for the selected objects.


Align Objects To Left

Moves selected design objects so each object's left side aligns with the left side of the leftmost object. You must select multiple objects to use this feature.


Align Objects to Centers

Moves selected design objects to align their midpoints vertically. You must select multiple objects to use this feature.


Align Objects to Right

Moves selected design objects so each object's right side aligns with the right side of the rightmost object. You must select multiple objects to use this feature.


Align Objects To Top

Moves selected design objects so each object's top aligns with the top of the highest object. You must select multiple objects to use this feature.


Align Objects To Midlines

Moves selected design objects to align their midpoints horizontally. You must select multiple objects to use this feature.


Align Objects To Bottom

Moves selected design objects so each object's bottom aligns with the bottom of the lowest object. You must select multiple objects to use this feature.


About keyboard commands

Most Corel Paradox mouse operations have keyboard equivalents. These keyboard commands usually have an abbreviated series of keystrokes called shortcuts.

General Keys

Menu command keys

Application access keys

Control menu keys

Help system keys

Dialog box keys

Keys in the Editor and Debugger windows

Shortcuts in Tables and Forms

Navigation and selection keys

Table operation shortcuts

Form window shortcuts

Edit mode keys

Memo View keys

Function Key Actions

Function keys in tables

Function keys when viewing data in Form windows

Function keys in Form Design windows

Function keys in queries

Special Procedures

Rotating columns in a table

Selecting multiple fields

Super Tab operations


Menu command keys

Use the following keys to access the menus in Corel Paradox.

Shortcut	Action

ALT	Selects the Menu Bar

ALT+ Hyphen	Opens the child window Control Menu.

ALT+SPACEBAR	Opens the Corel Paradox Control Menu

Arrow keys	Select menu items

ENTER or 	Opens the selected menu

ESCAPE	Exits from a menu without choosing a command

Each menu name has an underlined letter. To open a menu, press ALT plus the underlined letter. For example,

ALT+F	Opens the File menu

ALT+M	Opens the Format menu

To choose a command from a menu, select it with the arrow keys and press ENTER. Or press the underlined letter (also referred to as the access key) in the command name. For example, when the File menu is open, press the letter O to open a file, S to save a file, or X to exit Corel Paradox and unload it from memory.


Application access keys

Shortcut	Action

ESCAPE	Closes a Control menu but leave the Control-menu box selected. Press ESCAPE a second time to deselect the Control-menu box.

ALT+ESCAPE	Displays the next application on the Windows desktop. This will restore a minimized application. The name of the application will not be shown before displaying it.

CTRL+ESCAPE	Accesses the Start button on the task bar.

ALT+Hyphen	Opens the active window's Control Menu.

ALT+SPACEBAR	Opens the Corel Paradox Control menu which allows you to Restore, Move, Size, Minimize, Maximize or Close Corel Paradox. The Restore option is available only if the Corel Paradox window has been minimized.

ALT+TAB	Displays the next application on the Windows desktop. This will restore a minimized application. The icons of all loaded applications are displayed in a box. Hold down ALT and press TAB repeatedly until the icon you want is selected.


Control menu keys

The Control menu opens when you click the icon at the left end of a window title bar.

Shortcut	Action

ALT+Hyphen	Opens the active window's Control menu.

ALT+SPACEBAR	Opens the Corel Paradox Control menu which allow you to Restore, Move, Size, Minimize, Maximize or Close Corel Paradox. The Restore option is available only if the Corel Paradox window has been minimized.

ALT+F4	Closes the window. Windows prompts you for confirmation if your current work is unsaved.

ESCAPE	Closes a Control menu but leave the Control-menu box selected. Press ESCAPE a second time to deselect the Control-menu box.

CTRL+ESCAPE	Access the Start button on the task bar.


Help system keys

To access Help, press the F1 key. Depending on the current context,

When	Press F1 to display help for

In a menu	The selected command.

In a dialog	That dialog.

In a child window	That window.

Empty desktop	Corel Paradox User's Guide Help topics.

ObjectPAL Editor	The language element that the cursor is in, if help is available.

When a help topic is displayed, you may use the keys listed below to navigate within a Help topic, between topics, and within the Help system,

Shortcut	Action

ESCAPE	Closes the current Help window.

TAB	Moves to the next hypertext link. Press ENTER to either jump to the topic or display the pop-up.

SHIFT+TAB	Moves to the previous hypertext link. Press ENTER to either jump to the topic or display the pop-up.

Scrolls down one line (if a vertical scrollbar is displayed).

Scrolls up one line (if a vertical scrollbar is displayed).

PgUp, PgDn	Scrolls the Help window (if vertical scrollbars are displayed).

ALT+C	Displays the Help Contents for the current Help topic.

ALT+B	Returns to the last Help screen you viewed.

ALT+I	Searches for a particular term in the Help index.

 Related Topics


Dialog box keys

Shortcut	Action

ESCAPE	Cancels a dialog box, leaving the settings unchanged. Same as the Cancel button.*

SPACEBAR	Selects. (The same as clicking with the mouse.) Depending on the context, pressing the SPACEBAR:

Toggles a selected check box.

Sets a selected option button.

Selects an item in a list or list box.

Activates a push button.

CTRL+SPACEBAR	Selects non-contiguous items in a multi-select list box. (Same as CTRL+click.)

SHIFT+SPACEBAR	Selects a contiguous group of items in a multi-select list box. (Same as SHIFT+click.)

ENTER	Activates a selected command button.

TAB	Moves to the next named option or group of options. Or press ALT plus an underlined letter in the option name to choose that option directly.

SHIFT+TAB	Moves to the previous named option or group of options.

 and 	Depending on the context, the up and down arrows can:

Selects a radio button.

Highlights a selection list item. Or press the first letter of the item name to select the first item in the list beginning with that letter.

Moves to another check box inside a group of check boxes.

ALT	Opens the selected list box.

F1	Displays context-sensitive Help on the dialog box.

ALT+F4	Closes the dialog box.

F3	Super Back Tab. In multi-region dialog boxes, Super Back Tab moves backward from panels with tables in them to other panels. (TAB and SHIFT+TAB move among objects or fields within the region.)

F4	Super Tab. In multi-region dialog boxes, Super Tab moves forward from panels with tables in them to other panels. (TAB and SHIFT+TAB move among objects or fields within the region.)

* If there is no Cancel button, ESC will not close the dialog. Use the Close or OK buttons as appropriate instead.


Rotating columns in a table

You can rotate the order of columns in a Table window and when viewing data in table frames in a Form window.

To rotate the order of a table's columns with the keyboard

1.	Select the column to move.

2.	Press CTRL+R.

This moves the selected column to the last place on the right of the table.

 Related Topics


Selecting multiple fields

You can select multiple fields across rows and columns in a Table window by dragging a box around the ones you want. Fields selected this way must be adjoining.

To select a group of fields using the keyboard

1.	Select the field where you want to begin (do not enter Field View).

2.	Hold down SHIFT while using the arrow keys to place a box around the fields you want.

To select all fields in the table (the entire table)

•	Click Edit, Select All. Corel Paradox places a box around the whole table.

 Note

•	You can select multiple fields in a Table window only.

 Related Topics


Function keys in tables

Shortcut	Action

F1	Displays Help for the Table window

F2	Activates Field View

SHIFT+F2	Activates Memo View**

CTRL+F2	Activates Persistent Field View

CTRL+F3	Refreshes the window

F5	Locks the selected record

SHIFT+F5	Posts the selected record

CTRL+F5	Posts the record and maintains a lock on the record

F6	Displays the current field's right-click menu

SHIFT+F6	Displays the penetrating properties

F9	Toggles Edit mode

SHIFT+F10	Displays the current field's right-click menu

F11	Moves to the previous record

SHIFT+F11	Moves up one record set (screen full)

CTRL+F11	Moves to the first record in the table

F12	Moves to the next record

SHIFT+F12	Moves down one record set (screen full)

CTRL+F12	Moves to the last record in the table

*When viewing SQL data, you must press CTRL+F3 to perform a data refresh. Changes made by others do not automatically refresh the screen.

**For alpha fields containing DDE links or OLE fields containing OLE information, SHIFT-F2 launches the server application.

For additional keys, see

•	Table Operation Shortcuts

•	Navigation and Selection Keys

•	Keyboard Actions in Table Windows

 Related Topics


Function keys when viewing data in Form windows

Key	Action

F1	Displays Help

F2	Activates Field View

SHIFT+F2	Activates Memo View (& OLE)

CTRL+F2	Activates Persistent Field View

F3	Super Back Tab

CTRL-F3	Refreshes the window*

SHIFT+F3	Moves to the previous page

F4	Super Tab

SHIFT+F4	Moves to the next page

F5	Locks the selected record

SHIFT+F5	Posts the selected record

CTRL+F5	Posts the record and maintains the lock

F6	Displays the current object's right-click menu

F7	Activates Table View

F8	Opens the form in the Design window

F9	Toggles Edit Mode

F10 	Activates the Menu

SHIFT+F10	Displays the current object's right-click menu

F11	Moves to the previous record

CTRL+F11	Moves to the first record

SHIFT+F11	Moves up one set of records (screen full)

F12	Moves to the next record

CTRL+F12	Moves to the last record

SHIFT+F12	Moves down one record set (screen full)

*When viewing SQL data, you must press CTRL+F3 to perform a data refresh. Changes made by others do not automatically refresh the screen.

For additional keys, see

•	Form window shortcuts

•	Function keys in form Design windows

 Related Topics


Function keys in form Design windows

Key	Action

F1	Displays Help

SHIFT+F3	Displays the previous page

SHIFT+F4	Displays the next page

F6	Displays the current object's right-click menu

SHIFT+F6	Displays properties

F8	Displays the form data

F9	Displays form data and activates Edit mode*

F10 	Menu

SHIFT+F10	View current object's right-click menu

CTRL+SPACEBAR	Object Explorer

*If you press F9 in the Form Design window, Corel Paradox opens the form in Edit mode. This is a shortcut to pressing F8 (View Data) followed by F9 (Edit Data).

For additional keys, see

•	Form window Shortcuts

•	Function keys viewing data in form windows

 Related Topics


Function keys in queries

Key	Action

F1	Displays Help

F2	Activates Field View

CTRL+F2	Activates Persistent Field View

F3	Moves to the previous table image

F4	Moves to the next table image

F5	Tells Corel Paradox that you are about to define an Example element

F6	Enable/disable toggle [image]. The check type (Check or CheckPlus) is specified on the Query page of the Preferences dialog. If pressed when in the column on the far left, F6 enables/disables all fields in the table.

SHIFT+F6	Cycle checks [image], [image], [image], [image] and

F8	Runs the selected query

F10	Activates the menu

 Related Topics


Keys in the Editor and Debugger windows

The Editor supports the following keystroke mappings:

•	The default Corel Paradox keymap

•	BRIEF keymap

•	Epsilon keymap

For more information on customizing the Editor, see the Editor Page in the Developer Preferences dialog box.

 Related Topics


Super Tab operations

Use Super Tab (F4) and Super Back Tab (F3) to move among panels in multi-region windows and dialog boxes.

Create/Restructure dialog box

The Field Roster is one panel in a multi-region dialog box. You use TAB or SHIFT+TAB to move from column to column in the Field Roster. The Table Properties panel [image] its list boxes and buttons [image] is another panel in this multi-region dialog box. TAB and SHIFT+TAB move through all the objects in the Table Properties panel, then through all other buttons in the dialog box.

•	Press Super Back Tab (F3) to move from the Field Roster panel to the Help button.

•	Press Super Tab (F4) to move from the Field Roster panel to the Table Properties panel.

•	To return to the Field Roster panel from the Table Properties panel, press SHIFT+TAB until you get back (you see no insertion point or highlighted box in the Table Properties panel). Or TAB forward through all objects in the Table Properties panel and the dialog box until you reach the Field Roster panel.

Query images

In multi-table queries, use Super Tab (F4) to move forward among the query table images. (Tab and SHIFT+TAB move right and left among fields within a query image.) Use Super Back Tab (F3) to move backward.

Multi-table forms

In multi-table forms, use Super Tab (F4) to move forward among the table objects. (TAB and SHIFT+TAB move right and left among fields within a table object.) Use Super Back Tab (F3) to move backward.

Other multi-region dialog boxes

In dialog boxes that contain embedded table images, Super Tab and Super Back Tab move you out of the table. (TAB and SHIFT+TAB move right and left among fields within a table.)

Key	Action

F3	Super Back Tab

F4	Super Tab

 Related Topics


Table operation shortcuts

Key combination	Action

ALT+BACKSPACE	Undoes the last action

CTRL+A	Locates the next occurrence of an item

CTRL+D	Repeats the value in same field as the record above

CTRL+F	Activates Field View (same as F2)

CTRL+G	Change grid properties

CTRL+H	Change heading properties

CTRL+INSERT	Copies selection to the clipboard

CTRL+SHIFT+H	Change properties for all headings

CTRL+L	Locks the current record

CTRL+SHIFT+L	Posts the current record

CTRL+M	Change field properties

CTRL+SHIFT+M	Change properties for all fields

CTRL+R	Rotates table columns

CTRL+T	Activates Memo View

CTRL+Z	Locates the specified value

CTRL+SHIFT+Z	Locates and replaces the specified value

DELETE	Clears or deletes (as appropriate)

SHIFT+DELETE	Cuts to the clipboard

SHIFT+INSERT	Pastes from the clipboard

SPACEBAR	Enters the current date, time, or both in date, time, or timestamp fields. You must press the SPACEBAR for each part of the field's format.

For additional keys, see

•	Keyboard Actions in Table Windows

•	Function Keys in Tables

•	Navigation and Selection Keys

 Related Topics


Form window shortcuts

Key combination	Action

CTRL+A	Locates the next occurrence of an item

CTRL+D	Repeat the value from the same field of the previous record

CTRL+F	Activates Field View

CTRL+INSERT	Copies to the clipboard

CTRL+L	Locks the current record

CTRL+SHIFT+L	Posts changes made to the current record

CTRL+R	Rotates columns (on table frame)

CTRL+T	Activates Memo View

CTRL+Z	Locates the next occurrence of the specified value

CTRL+SHIFT+Z	Locates and replaces the next occurrence of the specified value

DELETE	Clears or deletes (as appropriate)

SHIFT+DELETE	Cuts to the clipboard

SHIFT+INSERT	Pastes from the clipboard

For additional keys, see

•	Function Keys in Form Design Windows

•	Function Keys Viewing Data in Form Windows

 Related Topics


Navigation and selection keys

This table shows the keys you can use to navigate with when you are looking at data in forms and tables. Make sure Num Lock is off when you use ALT in combination with a keypad key. Field view and non-field-view keys are listed.

Key	Non-field view	Field view
PgUp	Moves up one set of records	Moves up one set of records
CTRL+PgUp	Moves one screen to the left	Moves one screen to the left
PgDn	Moves down one set of records (screen full)	Moves down one set of records (screen full)
CTRL+PgDn	Moves one screen to the right	Moves one screen to the right
HOME	Moves to the first field of the record	Moves to the beginning of the selected field
SHIFT+HOME	Selects to the first field of the record*	Selects to the beginning of the field
CTRL+HOME	Moves to the first field of the first record	Moves to the first field of the first record
ALT+HOME	Moves to the first field of the record	Moves to the first field of the record
END	Moves to the last field of the record	Moves to the end of the field
SHIFT+END	Selects to the last field of the record*	Selects to the end of the field
CTRL+END	Moves to the last field of the last record	Moves to the last field of the last record
ALT+END	Moves to the last field of the record	Moves to the last field of the record
	Moves one field to the left	Moves one character to the left
SHIFT	Selects one field to the left	Selects one character to the left
CTRL	Moves to the first column	Moves one word to the left
CTRL+SHIFT	Selects to the first field of the current record	Extends the selection one word to the left
ALT	Moves one field to the left	Moves one field to the left
	Moves one field to the right	Moves one character to the right
SHIFT	Selects one field to the right	Selects one character to the right
CTRL	Moves to the last column	Moves one word to the right
CTRL+SHIFT	Selects to the last field of the record	Extends the selection one word to the right
ALT	Moves one field to the right	Moves one field to the right
	Moves up one field	Moves up one line in a multi-line field or up one record in a single-line field
SHIFT	Selects one field up	Selects up one line within a multi-line field or up one record in a single-line field
ALT	Moves up one field	Moves up one field
	Moves down one field	Moves down one line within a multi-line field or down one record in a single-line field
SHIFT	Selects down one field*	Selects down one line within a multi-line field or down one record in a single-line field
ALT	Moves down one field	Moves down one field
* Multiple selection of fields is available only in tables, not in forms.

 Related Topics


Edit mode keys

This table shows the keys to use while editing. Entering Field View does not change the action of these keys.

Key	Action

INSERT	Inserts a new record

SHIFT+INSERT	Pastes from the Clipboard

CTRL+INSERT	Copies from the Clipboard

DELETE	Deletes the selected text

SHIFT+DELETE	Cuts to the Clipboard

CTRL+DELETE	Deletes the selected record*

BACKSPACE	Deletes one character to the left or deletes the selected text

CTRL+BACKSPACE	Deletes one word to the left

ALT+BACKSPACE	Undoes the last record edit

ESCAPE	Undoes the last field edit

TAB	Posts a value and moves to the next field

SHIFT+TAB	Posts a value and moves to the previous field

ENTER	Posts a value and move to the next field

CTRL+SPACEBAR	Lookup Help (if defined.)**

CTRL+SHIFT+SPACEBAR	Move Help (if applicable).***

*For dBASE tables only, CTRL+DELETE acts as toggle to delete/undelete a record. For more information, see Record Delete/Undelete

**For more information on Table Lookup and Lookup Help, see About Table Lookups.

***For more information on Move Help, see Record Move Help.

 Related Topics


Memo View keys

This table shows the keys to use while editing a memo or formatted memo field.

Key	Action in Memo

TAB	Inserts a tab character in text

ENTER	Inserts a carriage return in text

PgUp	Moves up one screen

CTRL+PgUp	Positions the cursor to the top left of the current screen

PgDn	Moves down one screen

CTRL+PgDn	Positions the cursor to the bottom left of the current screen

HOME	Moves to the beginning of the line

SHIFT+HOME	Selects to the beginning of the line

CTRL+HOME	Moves to the beginning of the memo field

END	Moves to the end of the current line

CTRL+END	Moves to the end of the memo field

SHIFT+END	Selects to the end of the line

Moves one character to the left

SHIFT	Selects one character to the left

CTRL	Selects one word to the left

Moves one character to the right

SHIFT	Selects one character to the right

CTRL	Moves one word to the right

Moves up one line

SHIFT	Selects one line up

Moves down one line

SHIFT	Selects one line down

SHIFT+INSERT	Pastes from the Clipboard

CTRL+INSERT	Copies to the Clipboard

DELETE	Deletes the selected text

SHIFT+DELETE	Cuts to the Clipboard

BACKSPACE	Deletes one character to the left

CTRL+BACKSPACE	Deletes one word to the left

ALT+BACKSPACE	Undoes the last record edit

ESCAPE	Undoes the last memo edit

 Related Topics


Glossary
A

active

alias

alpha field

ANSI

Answer table

arithmetic operators

ascending order

ASCII

asymmetrical outer join

axis

B

band

BDE

binary field

bind

blank field

BLOB

C

cascade

check box

checkmark

client

Clipboard

command

comparison operator

composite key

concatenate

constant

contain

container object

crosstab

Crosstab tool

D

data

data integrity

data model

data type

database

DDE

default

default action

default value

define

dependent tables

descending order

design document

design object

design window

Desktop

detail table

dialog box

E

event

example element

exclusive link

F

field

field type

field value

Field View

file

file name

font

footer

form

function

function keys

G

grid

group (n.)

group (v.)

group band

GroupBy operator

H

handle

header

highlight

I-J

icon

inclusion operator

inclusive link

index

K

key

keycode

keyword

L

library

link

list box

lock

logical operator

logical value

lookup table

M

Main menu

master table

method

multi-record

multi-value relationship

N

normalized data structure

number field

O

object

ObjectPAL

OEM

OLE

OLE container

OLE server

operator

outer join

P

picture

pop-up definitions

primary index

private directory

prompt

properties

prototyping

Q

query

query by example (QBE)

query operators

query statement

R

record

record number

referential integrity

report

reserved words

restructure

S

script

secondary index

selection condition

server

set

set comparison operator

short field

single-value relationship

special field

SQL

string

structure

summary operator

syntax error

T

table

table frame

table header

table language driver

Toolbar

U-V

validity check

variable

W

wildcard operators

working directory

Z

zoom


active, defined
Active

The object or window to which the next keystroke or mouse action will apply.


alias, defined
Alias

A name you assign to a database in addition to its original name. When you use an alias, you don't need to specify the directory path.


align left, defined
Align left

Aligns text to the left edge of the object. This is the most typical alignment type.


align right, defined
Align right

Aligns text to the right edge of the object.


align center, defined
Align center

Centers the text between the left and right edges of the object.


align justify, defined
Align justify

Aligns the text at both the left and right edges of the object.


alpha field, defined
Alpha field

A field containing letters, numbers, or a combination of both.


ANSI, defined
ANSI

American National Standards Institute. The character set supported by Windows.


Answer table, defined
Answer table

A temporary table used to store the results of a query.


arithmetic operators, defined
Arithmetic operators

The +, -, *, /, and ( ) operators used to construct arithmetic expressions in queries and calculated fields.


ascending order, defined
Ascending order

A sort order. In alpha fields it means alphabetic order (most often A to Z case-sensitive, but the order depends on the language driver you are using); in numeric fields it means from lowest to highest (0 to 9); in date fields it means earliest to latest.


ASCII, defined
ASCII

American Standard Code for Information Interchange. A sequence of 128 standard characters.


asymmetrical outer join, defined
Asymmetrical outer join

A query in which an inclusive link is specified for only one of the tables involved.


axis, defined
Axis

The horizontal or vertical line that defines the range of values plotted on a chart. The x-axis is the horizontal line. The y-axis is the vertical line.


band, defined
Band

A repeating horizontal section of a report design. The Report Design window shows the report band, page band, and record band by default. Group bands are optional.


BDE, defined
BDE

Borland Database Engine (formerly IDAPI). Corel Paradox uses this database engine to access and deliver data. BDE maintains information about your PC's environment in the BDE configuration file (usually called IDAPI.CFG). Use the BDE Configuration Utility to change the settings in this configuration file.


binary field, defined
Binary field

A field used to store data that Corel Paradox cannot interpret. A common use of a binary field is to store sound.


bind, defined
Bind

To associate a form or report with one or more tables. The document then takes its data from the table(s) to which it is bound.


blank field, defined
Blank field

A field that does not contain a value.


BLOB, defined
BLOB

Binary large object. Field types that can contain BLOBs include binary, memo, formatted memo, graphic, and OLE. Certain rules apply to these fields as a whole, and they are sometimes discussed collectively as BLOB fields.


cascade, defined
Cascade

To use referential integrity to update child tables when a value changes in the parent table.


check box, defined
Check box

A box you can enable or disable to set an option. You can often enable more than one check box in a set.


checkmark, defined
Check mark

The symbol [image] used in query statements to indicate that a field is to be displayed in the Answer table.


client, defined
Client

The application that starts a Dynamic Data Exchange (DDE) or Object Linking and Embedding (OLE) conversation and usually receives data from the other application, called the server.


Clipboard, defined
Clipboard

A temporary storage area used to copy and paste information from one location to another.


command, defined
Command

A word on a menu or button that you choose to perform an action.


comparison operator, defined
Comparison operator

In a query, the operators (<, >, <=, >=, and =) you can use to compare two values.


composite key, defined
Composite key

A key comprised of two or more fields of a Corel Paradox table which, together, provide a unique value for the table.


concatenate, defined
Concatenate

To combine two or more alphanumeric values using the + operator.


constant, defined
Constant

A specific, unchanging value used in calculations.


contain, defined
Contain

To place one object within another object so that the behavior of the contained object is controlled by the container object.


container object, defined
Container object

An object that completely surrounds and controls the behavior of all objects within it. When you move a container, its contained objects also move; when you delete a container, its contained objects are also deleted.


crosstab, defined
Crosstab

An object that lets you summarize the data in one field by expressing it in terms of two other fields, presenting it in a spreadsheet-like structure.


Crosstab tool, defined
Crosstab tool

A Toolbar tool that creates crosstab objects.


data, defined
Data

The information in a table.


data integrity, defined
Data integrity

The assurance that only valid data can be entered in a field and that links between common fields in separate tables cannot be broken. Data integrity is supported by validity checks and referential integrity.


data model, defined
Data model

A diagram of table relationships in a design document. A data model identifies the tables and defines the relationships between them.


data type, defined
Data type

The kind of data a field can contain. Corel Paradox data types are alpha, number, money, short, long integer, BCD, date, time, timestamp, memo, formatted memo, graphic, OLE, logical, autoincrement, binary, and bytes.


database, defined
Database

An organized collection of information; in Corel Paradox it is a collection of related tables, forms, and reports in a given directory.


DDE, defined
DDE

Dynamic Data Exchange. A way for two or more applications to share data.


default, defined
Default

What Corel Paradox automatically does or looks like in the absence of an overriding command.


default action, defined
Default action

The choice that Corel Paradox determines to be the most logical or safest and the one that will be carried out unless otherwise specified. Default actions are performed by double-clicking an object or its icon.


default value, defined
Default value

In validity checks, the value automatically entered in a field if no other value is entered.


Define

To attach a design object to data from a table. For example, you define a field object in a form as a field in a table.


Descending order

A sort order. In alpha fields it is reverse alphabetical order (most often Z to A, case-sensitive, but the order depends on the language driver you are using); in numeric fields it is highest to lowest (9 to 0); in date fields, it is the latest to the earliest date.


Design document

A Corel Paradox form or report that you create or modify in a design window.


Design object

An object you can place in forms and reports, for example, a button or list box. You create design objects using Toolbar tools in a design window.


dependent tables, defined
Dependent tables

Tables that depend on the current table for referential integrity.


design window, defined
Design window

The window where you create or modify the design of a document. If you are viewing data in a Form or Report window, press F8 or click the Design button to open the corresponding design window for that document.


designed for the printer, defined
Designed for the printer

A form or report for which you have chosen the Printer option from the Page Setup dialog box (File menu). Such forms and reports use printer style sheets that have a filename extension of .FP.


designed for the screen, defined
Designed for the screen

A form or report for which you have chosen the Screen option from the Page Setup dialog box (File menu). Such forms and reports use screen style sheets that have a filename extension of .FT.


Desktop, defined
Desktop

The main window in Corel Paradox.


detail table, defined
Detail table

In multi-table relationships, the table whose records are subordinate to those of the master table. In a data model, the detail table is the one being pointed to by another table. For example, in the following data model, all of the tables except CUSTOMER.DB are detail tables.


dialog box, defined
Dialog box

A box that requests user input or provides information. Many dialog boxes present options to choose among before you can perform an action; others display warnings or error messages.

All dialog boxes require interaction with the user; a modal dialog box, however, keeps the focus until you respond to it.


event, defined
Event

The action that triggers an ObjectPAL method. For example, pushing a button or clicking the mouse are events.


example element, defined
Example element

A character or group of characters that represents a value in a field of a query.


exclusive link, defined
Exclusive link

In a query, the use of an example element to retrieve from one table only those records that match the records in another table.


field, defined
Field

A column of information in a table. A collection of related fields makes up one record.


field type, defined
Field type

The type of data a field can contain. Corel Paradox data types are alpha, number, money, short, long integer, BCD, date, time, timestamp, memo, formatted memo, graphic, OLE, logical, autoincrement, binary, and bytes.


field value, defined
Field value

The data contained in one field of a record. If no data is present, the field is considered blank.


Field View, defined
Field View

A mode that lets you move through a field character by character. Use this mode to view field values that are too large to be displayed in the current field width, or to edit a field value. Pressing F2 puts you into Field View.


file, defined
File

A collection of information stored under one name on a disk. For example, Corel Paradox tables are stored in files.


file name, defined
Filename

When entering a filename, you can simply type the name of the file; or, you can specify the filename combined with a drive, path, alias, or a combination of these elements. Some examples of valid filenames:

File name	Description

MYFILE.DB	Filename

D:\MYFILE.DB	Filename combined with drive

:MYWORK:MYFILE.DB	Filename combined with alias

:MYWORK:\PHONEDIR\MYFILE.DB	Filename combined with alias and path


font, defined
Font

A design applied to all characters. Fonts are typically available in different sizes, measured in points; 1 point equals 1/72 of an inch. Font styles usually include bold, italic, and underline.


footer, defined
Footer

Information that appears at the bottom of every page of a report. Footers are created in the page, report, and group bands of Corel Paradox reports.


form, defined
Form

An alternate presentation of a table's data. A multi-table form can display data from several tables at once.


function, defined
Function

A built-in formula that performs computations or determines the status of ObjectPAL, Corel Paradox, or your computer system.


function keys, defined
Function keys

The 12 keys across the top of the keyboard labeled F1 through F12. (Some keyboards have 10 function keys at the left.) These keys provide fast access to Corel Paradox operations.


grid, defined
Grid

A network of horizontal and vertical lines available in all design windows as aids for placement of design objects. You can show or hide the grid, as well as resize it.


group, defined
Group

In a report or query, a set of records that either

•	Have the same value in one or more fields

•	Fall within a range of values

•	Are displayed in a fixed number of records


group, defined
Group (design objects)

To collectively identify various design objects as a single entity.


group band, defined
Group band

The section of a report that defines the group and repeats for every group of records.


GroupBy operator, defined
GroupBy operator

In a query, the operator (indicated by [image] ) that groups records by a field without displaying the field's values in the Answer table.


handle, defined
Handle

A position on a design object that lets you change an object's size or shape. When you select a design object, handles appear around it. When you pass the pointer over a handle, the pointer changes shape to show the direction of movement possible. Drag the handles to change an object's size or shape.


header, defined
Header

Information that appears at the top of every page of a report. Headers are created in the page, report, and group bands of Corel Paradox reports.


highlight, defined
Highlight

To select by dragging the mouse across a line or lines of text.


icon, defined
Icon

A graphical representation of an object; in Corel Paradox, it often refers to a button on a Toolbar.


inclusion operator, defined
Inclusion operator

The symbol ! used with an example element to include a complete set of records in the Answer table, whether or not they match records in another table.


inclusive link, defined
Inclusive link

A query whose answer includes all the values in a field of one table, whether or not there are matching values in the linked field of another table.


index, defined
Index

A file that determines an order in which Corel Paradox can access the records in a table. A Corel Paradox table's key establishes its primary index.


key, defined
Key

A field or group of fields in a Corel Paradox table that are used to sort records or ensure referential integrity. Establishing a key has three effects:

•	The table is prevented from containing duplicate records.

•	The records are maintained in sorted order based on the key fields.

•	A primary index is created for the table.


keycode, defined
Keycode

A code that represents a keyboard character in ObjectPAL scripts. A keycode can be an ASCII number, an IBM extended keycode number, or a string representing a keyname known to Corel Paradox.


keyword, defined
Keyword

A word reserved for use with certain commands in ObjectPAL.


landscape, defined
Landscape

The object prints from left to right across the longer width of the paper.


library, defined
Library

A Corel Paradox object that stores custom ObjectPAL code. Libraries are useful for storing and maintaining frequently used routines and for sharing custom methods and variables among forms, scripts, and other libraries.


link, defined
Link

To establish a relationship between tables by linking corresponding fields.


list box, defined
List box

A single-line text box that opens to display more choices when you click the arrow beside it.


lock, defined
Lock

A device you place on a table in a multi-user environment that prevents other users from viewing, changing, or locking the table.


logical operator, defined
Logical operator

One of three operators (AND, OR, or NOT) that can be used in queries.


logical value, defined
Logical value

A value (True or False) assigned to an expression when it is evaluated.


lookup table, defined
Lookup table

A table that assures that a value entered in one table matches an existing value in another table.


Main menu, defined
Main menu

The menu bar across the top of the Corel Paradox Desktop.


master table, defined
Master table

In a multi-table relationship, the primary table of your data model. If you have only one table in your data model, that table is the master table. In a multi-table data model, the master table is the one pointing to another table.


method, defined
Method

ObjectPAL code attached to an object that defines the object's response to an event.


modal, defined
Modal

A modal dialog box keeps the focus until you respond to it. You cannot move nor resize a modal dialog box.


multi-record, defined
Multi-record

Refers to an object that displays several records at once in a form or report.


multi-value relationship, defined
Multi-value relationship

A multi-value relationship exists between tables if, for every record in one table, no record, one record, or more than one record from another table is related to it. In a data model, a multi-value relationship is indicated by this symbol: .


normalized data structure, defined
Normalized data structure

An arrangement of data in tables in which each record includes the fewest number of fields necessary to establish unique categories. Rather than using a few redundant fields to provide all possible information within a single table, normalized tables distribute information over many tables, using fewer fields. Normalized tables provide more flexibility in terms of analysis.


number field, defined
Number field

A field that can contain only numbers, a sign, and a decimal point.


object, defined
Object

A table, form, report, query, script, library, or SQL file. All entities that can be manipulated in Corel Paradox are objects.


ObjectPAL, defined
ObjectPAL

The Corel Paradox application language.


OEM, defined
OEM

Original Equipment Manufacturer. This refers to the character set your computer uses.


OLE, defined
OLE

Object linking and embedding. Use OLE to insert files from OLE-compliant application (servers) into Corel Paradox tables or OLE objects.


OLE container, defined
OLE container

An application that requests the services of and cooperates with another OLE-compliant application (server) to enable the user to view and edit objects created by that server. Corel Paradox allows you to embed or link OLE objects (files created by other applications) in tables, forms, and reports.


OLE server, defined
OLE server

An application that provides services to and cooperates with an OLE client to enable the user to view and edit objects created by that server. Corel Paradox can act as a server to other program because Corel Paradox tables can be embedded or linked in other programs that comply with OLE standards. When another program acts as a server, it means you can use that program to create or edit images, files, etc. (OLE objects) in tables, forms and reports. For example, you can use CorelDraw to create a company logo and insert that image into an OLE object on your company reports.


operator, defined
Operator

A symbol that represents an operation to be performed on a value or values. For example, the + operator represents addition, and the * operator represents multiplication.


outer join, defined
Outer join

A type of query that uses the inclusion operator (!) to retrieve all records in a table, whether or not they match records in another table.


picture, defined
Picture

A pattern of characters that defines what you can type into a field during editing or data entry.


pop-up definitions, defined
Pop-up definitions

Introduce you to terms that might be unfamiliar or words that Corel Paradox uses in a special way.


portrait, defined
Portrait

The object prints from left to right across the shorter width of the paper.


primary index, defined
Primary index

An index on the key fields of a Corel Paradox table. A primary index

•	determines the location of records

•	lets you use the table as the detail in a link

•	keeps records in sorted order

•	speeds up operations


private directory, defined
Private directory

A non-shared directory for storing temporary objects, such as Answer tables. The default private directory is PRIVATE, created below the main Corel Paradox directory on your hard drive, or on your network home directory if you have no hard drive. You can use another private directory if you want.


prompt, defined
Prompt

Instructions displayed on the screen. Prompts ask for information or guide you through an operation.


properties, defined
Properties

The attributes of an object. For example, text properties define the font, style, size and color of the characters. You can right-click an object to view or change its properties.


prototyping, defined
Prototyping

A process of application development in which small parts or the general structure of an application are designed and tested interactively. These models are then used as the basis for building the finished system.


query, defined
Query

A way to retrieve data from your tables.


query by example (QBE), defined
Query by example (QBE)

The method of retrieving data by providing an example of what you are looking for.


query operators, defined
Query operators

The reserved words Corel Paradox uses in queries.


query statement, defined
Query statement

One or more completed query images in the Query window. The query image defines the fields and types of information you want to pull from your database.


record, defined
Record

A horizontal row in a Corel Paradox table that contains a group of related fields of data.


record number, defined
Record number

A unique number that identifies each record in a Corel Paradox table.


referential integrity, defined
Referential integrity

A way of ensuring that the ties between like data in separate tables cannot be broken.


report, defined
Report

A Corel Paradox database object that displays data in a format that you specify. Reports, which can contain data from many tables, are flexible, powerful, and easy to use. They can be previewed onscreen before being printed.


reserved words, defined
Reserved words

The names of commands, keywords, functions, system variables, and operators. These words may not be used as ObjectPAL variables or array names.


restructure, defined
Restructure

To change the structure of an existing table. You can change the field names, field types, field order, key, indexes, validity checks, referential integrity, password protection, table language, and table lookups.


script, defined
Script

A Corel Paradox object that consists of ObjectPAL code in its own file that is not attached to a form.


secondary index, defined
Secondary index

An index used for linking, querying, and changing the view order of tables.


selection condition, defined
Selection condition

Expressions typed in the fields of a query image to specify the conditions that records must meet to appear in the Answer table or live query.


server, defined
Server

The application that responds to the calling application, or client, in a DDE or OLE conversation. The server usually sends data to the client. For example, if you embed a CorelDraw image in a report, CorelDraw is the server application; Corel Paradox is the client application.


set, defined
Set

In a query, the specific group of records you intend to query.


set comparison operator, defined
Set comparison operator

One of the reserved words (ONLY, NO, EVERY, EXACTLY) used to compare a defined set of records to other records.


short field, defined
Short field

A Corel Paradox field type that can contain numbers from -32,768 through 32,767 with no decimal values.


single-value relationship, defined
Single-value relationship

A single-value relationship exists between tables if, for every record in one table, no records or only one record from another table is related to it. In a data model, a single-value relationship is indicated by this symbol: .


special field, defined
Special field

A field placed in a form or report that contains information about a table or design. Special fields include Today, Now, and Page Number.


SQL, defined
SQL

Structured Query Language (abbreviated SQL and commonly pronounced "sequel"). The standard language for storing and manipulating data in relational databases.


string, defined
String

An alphanumeric value, or an expression consisting of alphanumeric characters.


structure, defined
Structure

The arrangement of fields in a table.


summary operator, defined
Summary operator

One of the operators (AVERAGE, COUNT, MAX, MIN, or SUM) that retrieves data from groups of records in queries.


syntax error, defined
Syntax error

An error caused by an incorrectly expressed statement.


tab well, defined
Tab well

The tab well is the upper half of the Horizontal Ruler where tabs, margins, and indents are displayed for a text object.


table, defined
Table

A structure made up of rows (records) and columns (fields) that contains data.


table frame, defined
Table frame

A frame representing a table in a form or report design. A table frame looks like its source table, but it is not a table. Create a table frame with the Table tool [image].


table header, defined
Table header

Corel Paradox tables consist of two sections: the header and the data cells. The header contains information about the number of fields, passwords, write protection, sort order, and the version of Corel Paradox that created the table.


table language driver, defined
Table language driver

Determines the table's sort order and available character set. The BDE Configuration Utility lets you set the default language driver for Corel Paradox and dBASE tables.


Toolbar, defined
Toolbar

The set of buttons and tools for frequently performed tasks. The Toolbar is under the menu bar and changes according to the window you are using.


validity check, defined
Validity check

A constraint on the values you can enter in a field.


variable, defined
Variable

A place in memory to store data temporarily.


wildcard operators, defined
Wildcard operators

Special characters Corel Paradox uses to match patterns in queries or when locating values.


working directory, defined
Working directory

The default data directory Corel Paradox uses to open and save files.


zoom, defined
Zoom

To change the scale of a design screen. You can zoom out (decrease the scale and see a larger area) or zoom in (increase the scale and see part of the design up close).


Alias Manager dialog box (SQL Link driver)

Use this Alias Manager dialog box to create or modify aliases for remote database directories, or to connect to or disconnect from the target SQL server.

When you work with an alias for a SQL Link driver, the settings in the Alias Manager dialog box reflect the information stored in your Borland Database Engine (BDE) configuration file. Refer to that documentation for more information about using the driver selected in the Driver Type list box.

 Note

•	If you are working with an ODBC driver connection, some of the options described below are not available.

Public Alias

Enable this check box to make an alias a public alias, i.e. it is available from all applications that use the Borland Database Engine (BDE). Disable the check box to make an alias a project alias, i.e. it is available only to Corel Paradox applications in the current directory.

Database Alias

Enables you to choose an alias from the list. To create a new SQL Link driver alias, click the New button, choose the appropriate driver type, and type the new alias name.

Driver Type

Choose the appropriate driver type to create an SQL Link driver alias. In order to connect to a remote server, you must have th appropriate driver installed. For example, to connect to an MS SQL server, you must instal the Corel Paradox client server version.

Server Name

The name of the target SQL server.

User Name

The default name for accessing the SQL server.

Open Mode

The mode in which SQL Link opens the SQL database, i.e. Read/Write (the default) or Read Only.

Schema Cache Size

The number of SQL tables whose schema information will be stored in cache memory. This can be any whole number from 0 to 32 (the default is 8).

Langdriver

The language driver used to display SQL data to Corel Paradox (U.S. default=blank). Choose the language driver that uses the same character set that the server uses to pass data to Corel Paradox, as well as a collation sequence that matches your server's collation sequence. [more]

SQLqrymode

SQL query mode is the method for handling queries to SQL data. This can be set to Null (the default setting), Server, or Local. [more]

SQLpassthru Mode

SQL pass-through mode specifies whether Corel Paradox users can access the SQL server via both Query By Example (QBE) and the SQL Editor (pass-through SQL) in the same alias connection. Can be Not Shared, Shared Autocommit (default), or Shared No Autocommit. [more]

Password

The password needed to connect to the server. Asterisks (*) represent the characters you type.

Show Public Aliases Only

Enable this option to see only public aliases.

Show Project Aliases Only

Enable this option to see only project aliases.

Show All Aliases

Enable this option to see both public and project aliases.

Connect

Connects you to the server named in the Server Name box using the current user name and password. Depending on the speed of your server, connection times can vary.

Disconnect

Disconnects you from the server specified in the Server Name box.

New

Opens a box in which you can type a new alias name. After you click the New button it becomes the Keep New button.

Keep New

Saves the specified alias as a temporary alias that exists only until you exit. Click OK to close the dialog box. If you click Cancel, whatever you saved with Keep New is deleted.

Click the Keep New button if you are creating several aliases and do not want to reopen this dialog box to create each one. Click Save As to save them as permanent aliases.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box or when you click Save As and overwrite the current file containing the alias.

Save As

Saves the specified alias as a permanent alias that is available every time you run Corel Paradox. Corel Paradox stores aliases in your default BDE configuration file and appends the aliases to the file, without replacing the ones already there.

OK

Saves any changes you have made in the Alias Manager dialog box during the current Corel Paradox session.

Cancel

Cancels only the changes made since you last clicked Save As.

 Related Topics


Alias Manager dialog box (InterBase SQL Link)

Use this Alias Manager dialog box to create or modify aliases for local, network, or remote database directories. You can also choose to connect or disconnect from a server. Most of the options described below are available only if you have installed a Borland SQL Link driver and have chosen the Intrbase option from the Driver Type list.

The settings in this dialog box reflect the information stored in your Borland Database Engine (BDE) configuration file.

Public Alias

Enable this check box to make an alias a public alias, i.e., available from all applications that use BDE. Disable this check box to make an alias a project alias, i.e., available only to Corel Paradox applications in the current directory.

Database Alias

Enables you to choose an alias from the list. To create a new InterBase alias, click the New button, choose the Intrbase driver type, and type the new alias name.

Driver Type

Choose Intrbase to create an InterBase alias.

Server Name

The name of the target InterBase SQL server, usually a path that includes the server name.

User Name

The default name for accessing the InterBase SQL server.

Open Mode

The mode in which SQL Link opens the InterBase database, i.e., Read/Write (the default) or Read Only.

Schema Cache Size

The number of SQL tables whose schema information will be stored in cache memory. This can be any whole number from 0 to 32 (the default is 8).

Langdriver

The language driver used to display SQL data to Corel Paradox (U.S. default=blank). Choose the language driver that uses the same character set that the server uses to pass data to Corel Paradox, as well as a collation sequence that matches your server's collation sequence. [more]

SQLqrymode

SQL query mode; the method for handling queries to SQL data. This can be set to Null (the default setting), Server, or Local. [more]

SQLpassthru Mode

SQL pass-through mode specifies whether Corel Paradox users can access the InterBase SQL server via both Query By Example (QBE) and the SQL Editor (pass-through SQL) in the same alias connection. This can be set to Not Shared, Shared Autocommit (default), or Shared No Autocommit. [more]

Schema Cache Time

The time (in seconds) that a table list is cached. A value of -1 causes the schema list to be cached until the database is closed and reopened.

Password

The password needed to connect to the server. Asterisks (*) represent the characters you type.

Show Public Aliases Only

Enable this option if you want to see only public aliases.

Show Project Aliases Only

Enable this option if you want to see only project aliases.

Show All Aliases

Enable this option if you want to see both public and project aliases.

Connect

Connects you to the server name typed in the Server Name box, using the current user name and password. Depending on the speed of your server, connection times can vary.

Disconnect

Disconnects you from the server named in the Server Name box.

New

Opens a box in which you can type a new alias name. After you click the New button, it becomes the Keep New button.

Keep New

Saves the specified alias as a temporary alias that exists only until you exit Corel Paradox. Click OK to close the Alias Manager dialog box.

Click the Keep New button if you are creating several aliases and do not want to re-open this dialog box to create each one. Click Save As to save them as permanent aliases.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box or when you click Save As and overwrite the current file containing the alias.

Save As

Saves the specified alias as a permanent alias that is available every time you run Corel Paradox. Corel Paradox stores aliases in your default BDE configuration file and appends the aliases to the file, without  replacing the ones already there.

OK

Saves any changes you have made in the Alias Manager dialog box during the current Corel Paradox session.

Cancel

Cancels only the changes made since you last clicked Save As.

 Related Topics


Alias Manager dialog box (Informix SQL Link)

Use this Alias Manager dialog box to create or modify aliases for local, network, or remote database directories. You can also choose to connect or disconnect from a server. Most of the options described below are available only if you have installed a Borland SQL Link driver and have chosen the Informix option from the Driver Type list.

The settings in this dialog box reflect the information stored in your Borland Database Engine (BDE) configuration file.

Public Alias

Enable this check box to make an alias a public alias, i.e., it is available from all applications that use BDE . Disable the check box to make an alias a project alias available only to Corel Paradox applications in the current directory.

Database Alias

Enables you to choose an alias from the list. To create a new Informix alias, click the New button, choose the Informix driver type, and type the new alias name.

Driver Type

Choose Informix to create an Informix database alias.

Server Name

The name of the target Informix SQL server.

Database

The name of the target Informix database.

User Name

The default name for accessing the Informix SQL server.

Open Mode

The mode in which SQL Link opens the Informix database, i.e., Read/Write (the default) or Read Only.

Schema Cache Size

The number of SQL tables whose schema information will be stored in cache memory. This can be any whole number from 0 to 32 (the default is 8).

Langdriver

The language driver used to display SQL data to Corel Paradox (U.S. default=blank). Choose the language driver that uses the same character set that the server uses to pass data to Corel Paradox, as well as a collation sequence that matches your server's collation sequence. [more]

SQLqry Mode

SQL query mode is the method for handling queries to SQL data. This can be set to Null (the default setting), Server, or Local. [more]

Date Mode

The format in which the Informix driver sends dates to the server. This setting must match the Informix server's DBDATE environment variable: 0 (MDY the default) or 1 (DMY).

Password

The password needed to connect to the server. Asterisks (*) represent the characters you type.

Show Public Aliases Only

Enable this option if you want to see only public aliases.

Show Project Aliases Only

Enable this option if you want to see only project aliases.

Show All Aliases

Enable this option if you want to see both public and project aliases.

Connect

Connects you to the server named in the Server Name box, using the current user name and password. Depending on the speed of your server, connection times can vary.

Disconnect

Disconnects you from the server named in the Server Name box.

New

Opens a box in which you can type a new alias name. After you click the New button, it becomes the Keep New button.

Keep New

Saves the specified alias as a temporary alias that exists only until you exit Corel Paradox. Click OK to close the Alias Manager dialog box.

Click the Keep New button if you are creating several aliases and do not want to reopen this dialog box to create each one. Click Save As to save them as permanent aliases.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box or when you click Save As and overwrite the current file containing the alias.

Save As

Saves the specified alias as a permanent alias that is available every time you run Corel Paradox. Corel Paradox stores aliases in your default BDE configuration file and appends the aliases to the file without replacing the ones already there.

OK

Saves any changes you have made in the Alias Manager dialog box during the current Corel Paradox session.

Cancel

Cancels only the changes made since you last clicked Save As.

 Related Topics


Alias Manager dialog box (Oracle SQL Link)

Use this Alias Manager dialog box to create or modify aliases for local, network, or remote database directories. You can also choose to connect or disconnect from a server. Most of the options described below are available only if you have installed a Borland SQL Link driver and have chosen the ORACLE option from the Driver Type list.

The settings in this dialog box reflect the information stored in your Borland Database Engine (BDE) configuration file.

Public Alias

Enable this check box to make an alias a public alias, i.e., it is available from all applications that use BDE . Disable the check box to make an alias a project alias, i.e., it is available only to Corel Paradox applications in the current directory.

Database Alias

Enables you to choose an alias from the list. To create a new Informix alias, click the New button, choose the ORACLE driver type, and type the new alias name.

Driver Type

Choose ORACLE to create an Oracle alias.

Server Name

The name of the target Oracle server.

User Name

The default name for accessing the Oracle server.

Net Protocol

Network transport used to communicate with the database server. [more]

Open Mode

The mode in which SQL Link opens the Oracle database, i.e.,  Read/Write (the default) or Read Only.

Schema Cache Size

The number of SQL tables whose schema information will be stored in cache memory. This can be any whole number from 0 to 32 (the default is 8).

Langdriver

The language driver used to display SQL data to Corel Paradox (U.S. default=blank). Choose the language driver that uses the same character set that the server uses to pass data to Corel Paradox, as well as a collation sequence that matches your server's collation sequence. [more]

SQLqry Mode

SQL query mode is the method for handling queries to SQL data. This can be set to Null (the default setting), Server, or Local. [more]

SQLpassthru Mode

SQL pass-through mode specifies whether Corel Paradox users can access the Oracle SQL server via both Query By Example (QBE) and the SQL Editor (pass-through SQL) in the same alias connection. This can be set to Not Shared, Shared Autocommit (the default), or Shared No Autocommit. [more]

Password

The password needed to connect to the server. Asterisks (*) represent the characters you type.

Show Public Aliases Only

Enable this option if you want to see only public aliases.

Show Project Aliases Only

Enable this option if you want to see only project aliases.

Show All Aliases

Enable this option if you want to see both public and project aliases.

Connect

Connects you to the server named in the Server Name box, using the current user name and password. Depending on the speed of your server, connection times can vary.

Disconnect

Disconnects you from the server named in the Server Name box.

New

Opens a box in which you can type a new alias name. After you click the New button, it becomes the Keep New button.

Keep New

Saves the specified alias as a temporary alias that exists only until you exit Corel Paradox. Click OK to close the Alias Manager dialog box.

Click the Keep New button if you are creating several aliases and do not want to reopen this dialog box to create each one. Click Save As to save them as permanent aliases.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box or when you click Save As and overwrite the current file containing the alias.

Save As

Saves the specified alias as a permanent alias that is available every time you run Corel Paradox. Corel Paradox stores aliases in your default BDE configuration file and appends the aliases to the file without replacing the ones already there.

OK

Saves any changes you have made in the Alias Manager dialog box during the current Corel Paradox session.

Cancel

Cancels only the changes made since you last clicked Save As.

 Related Topics


Alias Manager dialog box (Sybase SQL Link)

Use this Alias Manager dialog box to create or modify aliases for local, network, or remote database directories. You can also choose to connect or disconnect from a server. Most of the options described below are available only if you have installed a Borland SQL Link driver and have chosen the SYBASE option from the Driver Type list.

The settings in this dialog box reflect the information stored in your Borland Database Engine (BDE) configuration file.

Public Alias

Enable this check box to make an alias a public alias, i.e., that is available from all applications that use BDE. Disable the check box to make an alias a project alias, i.e., it is available only to Corel Paradox applications in the current directory.

Database Alias

Choose an alias from the list. To create a Sybase or Microsoft SQL Server alias, click the New button, choose the SYBASE driver type, and type the new alias name.

Driver Type

Choose ORACLE to create an Oracle alias.

Server Name

The name of the target Oracle server.

User Name

The default name for accessing the Oracle server.

Open Mode

The mode in which SQL Link opens the Sybase database, i.e.,  Read/Write (the default) or Read Only.

Schema Cache Size

The number of SQL tables whose schema information will be stored in cache memory. This can be any whole number from 0 to 32 (the default is 8).

BLOB Edit Logging

Enables or disables the logging of BLOB edits. Settings can be True (the default) or False. A False value helps minimize BLOB space requirements and increase performance.

Langdriver

The language driver used to display SQL data to Corel Paradox (U.S. default=blank). Choose the language driver that uses the same character set that the server uses to pass data to Corel Paradox, as well as a collation sequence that matches your server's collation sequence. [more]

SQLqry Mode

SQL query mode is the method for handling queries to SQL data. This can be set to Null (the default setting), Server, or Local. [more]

Password

The password needed to connect to the server. Asterisks (*) represent the characters you type.

Show Public Aliases Only

Enable this option if you want to see only public aliases.

Show Project Aliases Only

Enable this option if you want to see only project aliases.

Show All Aliases

Enable this option if you want to see both public and project aliases.

Connect

Connects you to the server named in the Server Name box, using the current user name and password. Depending on the speed of your server, connection times can vary.

Disconnect

Disconnects you from the server named in the Server Name box.

New

Opens a box in which you can type a new alias name. After you click the New button it becomes the Keep New button.

Keep New

Saves the specified alias as a temporary alias that exists only until you exit Corel Paradox. Click OK to close the Alias Manager dialog box.

Click the Keep New button if you are creating several aliases and do not want to reopen this dialog box to create each one. Click Save As to save them as permanent aliases.

Remove

Tags the selected alias for removal. The alias is removed when you exit the dialog box or when you click Save As and overwrite the current file containing the alias.

Save As

Saves the specified alias as a permanent alias that is available every time you run Corel Paradox. Corel Paradox stores aliases in your default BDE configuration file and appends the aliases to the file, without replacing the ones already there.

OK

Saves any changes you have made in the Alias Manager dialog box during the current Corel Paradox session.

Cancel

Cancels only the changes made since you last clicked Save As.

 Related Topics


Langdriver settings

Long driver name	Short name	Character set	Collation seq.
Corel Paradox 'ascii'	ascii	DOS code page 437	Binary
Corel Paradox 'intl'	intl	DOS code page 437	Corel Paradox 'intl'
Corel Paradox 'intl' 850	intl850	DOS code page 850	Corel Paradox 'intl' 850
Corel Paradox 'nordan'	nordan	DOS code page 865	Corel Paradox 'nordan'
Corel Paradox 'nordan40'	nordan40	DOS code page 865	Corel Paradox 'nordan40'
Corel Paradox 'swedfin'	swedfin	DOS code page 437	Corel Paradox 'swedfin'
Corel Paradox ANSI INTL	ANSIINTL	ISO8859.1 (ANSI)	Corel Paradox 'intl'
Corel Paradox ESP 437	SPANISH	DOS code page 437	Corel Paradox ESP 437
Corel Paradox ISL 861	iceland	DOS code page 861	Corel Paradox ISL 861
Pdox ANSI INTL850	ANSII850	ISO8859.1 (ANSI)	Pdox 'intl' 850
Pdox ANSI NORDAN40	ANSINOR4	ISO 8859.1 (ANSI)	Pdox 'nordan40'
Pdox ANSI SWEDFIN	ANSISWFIN	ISO 8859.1 (ANSI)	Pdox 'swedfin'
Pdox ESP ANSI	ANSISPAN	ISO 8859.1 (ANSI)	PDox ESP437
SQL Link ROMAN8	BLROM800	ROMAN8	Binary
Borland ENU Latin-1	BLLT1US0	ISO 8859.1 (ANSI)	Binary


SQLQRYMODE settings

Setting	Meaning

Null (default setting)	Server-local mode (default). The query is first sent to the server. If the server is unable to perform the query, the query is performed at the desktop.

Server	Server-only mode. The query is sent to the server. If the server is unable to perform the query, the query fails.

Local	Local-only mode. The query is always performed at the desktop.


SQLPassthru Mode settings

Not Shared

(blank setting) (Default for InterBase, Oracle, Sybase) Pass-through SQL and non-pass-through SQL do NOT share the same connection.

Shared Autocommit

(Default for Informix) Pass-through SQL and non-pass-through SQL will share the same connection, and (as long as you are not in an explicit client transaction or batch mode) pass-through SQL are automatically committed.

Shared Noautocommit

Pass-through SQL and non-pass-through SQL share the same connection, but pass-through statements are not be automatically committed.


Net Protocol settings

Value	Description

3270	IBM 3270 protocol

APPC	IBM APPC LU 6.2 protocol

ASYNC	Asynchronous (dial-up) access protocol

DECNET	Digital Equipment Corporation DECnet protocol

NAMED PIPES	Named Pipes protocol, as used by OS/2

NETBIOS	NetBios protocol, as used by LAN Manager and other PC LANs

SPX/IPX	SPX/IPX protocol, as used by Novell NetWare

TCP/IP	Transport Control Protocol/ Internet Protocol, as used by Unix and VAX workstations

VINES	Banyan VINES protocol


Database Information dialog box

Use the Database Information dialog box to view or modify the connection parameters you set for accessing remote servers. You need to modify these parameters when

•	you connect to a server for the first time in a session

•	you change connections to access data in a different location

Corel Paradox displays the parameter settings you entered in the Alias Manager dialog box. In most cases, all you need to add or modify is the user name and password.

Database Alias

Corel Paradox displays the alias name you entered in the Alias Manager dialog box or specified when you tried an operation against a remote database.

Server Name

The full path of the database specified in the alias. If necessary, type a new path for the database, including the name of the server.

User Name

The name of the user recognized by the database server.

 Related Topics


Default Borland Database Engine (BDE) configuration file

The BDE configuration file used at Corel Paradox startup. The default configuration file is listed in the Windows registry.

The BDE configuration file that comes with Corel Paradox is called IDAPI32.CFG. However, you can give your BDE configuration file any name, as long as it ends with the extension .CFG and contains no more than 12 characters.


ODBC driver connection

A connection from your Borland Database Engine (BDE) application to an ODBC driver. The connection requires your BDE application, a vendor-supplied ODBC driver, the Microsoft ODBC Driver Manager, a BDE alias on the workstation side, and an ODBC data source on the server side. You must have the appropriate drivers installed in order to link to a remote database. For example, to link connect to a MS Access table, you must have installed the ODBC drivers.

Once you create an ODBC driver connection, it appears on the list of available drivers in the BDE Administrator. This enables you to set up an alias for the target ODBC data source and connect to it through your BDE application.


About SQL

SQL (Structured Query Language) [image] descended from SEQUEL (or Structured English QUEry Language) [image] is a language for constructing relational database management systems (RDBMS) on any hardware platform. It is now the standard language for network queries across different hardware and software platforms.

SQL servers  run on local area network (LAN) file-server systems, minicomputers, and mainframes. They handle requests in logical units of work called transactions. Transaction processing protects your data against conflicts that may arise when more than one person is working on a table at the same time.

In SQL, all transactions can be explicitly ended with a command to either accept or discard the changes. Once you are satisfied that no errors occurred during the transaction, you can end that transaction with the Commit command. The database then changes to reflect the operations you have just performed. If an error occurs, you can abandon the changes with the Rollback command.

 Related Topics


Transaction

A group of related operations that must all be performed successfully before the database management system will finalize any changes to the database.


SQL terminology

SQL	Corel Paradox	Description
Table	Table	A structure of rows (records) and columns (fields) that contains information
Row	Record	A group of columns (fields) in a table that contain related information about a single record
Column	Field	A category of information (column) in a table that cuts across all rows in the table
 Related Topics


Preparing to connect to an SQL database

Before you begin to access an SQL database, do the following :

Action to complete	Description

Enable SQL database access	Make sure you have a valid user ID and password on the SQL server, and at least Read access privileges for the SQL database. See your database administrator for more information.

Install necessary client software	Install any client software libraries required to communicate with the SQL server. Test software is usually included. Make sure this test software can successfully connect to the SQL server before using an SQL alias.

Install an SQL driver 	Install an SQL driver for your SQL server; Corel Paradox supports Borland SQL Links as well as ODBC.

Configure the SQL driver	When you first install the SQL driver it uses all the default driver settings. Make sure these default settings are right for your server installation before you create any aliases for your SQL database. For more information, see Help for the Borland Database Engine (BDE) Administrator, installed in the Corel Paradox Program Group.

Create at least one SQL alias	Your SQL database alias includes your user name and password on the target SQL server and is required to access any SQL data. A generic SQL alias is automatically created the first time you modify the default link driver parameters after installation. See the Borland SQL Links Help or Help for the BDE Administrator.

 Related Topics


Connecting to the SQL server

The first time you query or view a table in your SQL database through Corel Paradox, the Database Information dialog box appears.

To connect to the server

•	Type your password in the Database Information dialog box.

If the connection to the server is successful, Corel Paradox continues with the operation you requested. The connection remains until you exit Corel Paradox or manually disconnect.

Connecting manually

If you want to connect to a database without first performing a database action, you can connect manually through the Alias Manager:

1.	Click Tools, Alias Manager to open the Alias Manager dialog box.

2.	Choose an alias from the Database Alias list box. Corel Paradox displays the alias and its connection parameters.

3.	If necessary, modify the alias connection parameters.

4.	 Type your password and click the Connect button.

If the connection is successful, the Alias Manager displays Connection is successful. Database is open.

Disconnecting manually

•	To disconnect from the SQL server without exiting Corel Paradox, open the Alias Manager dialog box, select the alias, and click the Disconnect button.

Note

•	If you connect to an SQL database and then move to another project, that alias is still available until you manually disconnect from the database. If you have used aliases with the same name in both projects, you may want to disconnect from the SQL database before you work in another project to avoid confusion.

 Related Topics


Changes in the Desktop (SQL)
Changes in the desktop

Since Corel Paradox supports the use of SQL operations against local (Corel Paradox or dBASE) tables, the SQL Editor is visible in the toolbar even if an SQL driver is not installed. When an SQL driver is installed, Corel Paradox is said to be SQL-enabled and the desktop changes in the ways described below.

New icons

Whenever you access the SQL server, you see the SQL hourglass.

Working directories

Since you cannot store objects such as documents, queries, reports, and forms on SQL servers, you cannot set an SQL server as the location for your working directory.

You might want to set up a local directory to hold all the forms, reports, .TVS files, and queries you use when you work with a particular SQL database. After you connect to that database you can open the local directory. You can also easily apply the tools across other SQL databases.

Refreshing data displays

When you are using local tables, all users see their view of the data refreshed as soon as one user makes a change to a shared database. However, when you are working on an SQL server, this does not occur.

If you are working with indexed SQL tables, you can update the active window by pressing CTRL + F3 periodically. CTRL + F3 shows any updates made to a table while you are viewing it.

 Related Topics


Using Table windows with SQL data
Using Table windows

When Corel Paradox is SQL-enabled, Table windows change in the following general ways:

•	Table windows of SQL data do not display record numbers; the scroll box is always in the center of the Vertical scroll bar.

•	Because of the differences in how indexing functions in an SQL environment, there are minor differences in the Filter Tables dialog box:

If an SQL table has any indexes, the is always sorted based on the specified indexdered by some index (you can select which one). This allows fast and reliable updates.

Filter expressions on SQL tables can include arithmetic operators.

•	When you query an SQL table using Query By Example (QBE), Corel Paradox stores the SQL table properties in a file with the extension .TVS. This helps distinguish them from Table window property files for Corel Paradox tables (.TV) and dBASE tables (.TVF).

 Note

•	TVS files for SQL tables are not automatically deleted when you delete the SQL table. Also, if you change your private directory the table will no longer be displayed with the properties you set.

•	If you try to view an SQL table when someone else is editing data, you may have to wait until the other user is finished editing.

 Related Topics


Using Form windows with SQL data
Using Form windows

When Corel Paradox is SQL-enabled, Form windows change in the following ways:

•	Because of the differences in how indexing functions in an SQL environment, there are minor differences in the Filter Tables dialog box.

•	Since the SQL driver record locking rules are different from those in Corel Paradox or dBASE, editing and posting of changes to SQL data is different.

 Related Topics


Changes in QBE (SQL)
Changes in Query By Example (QBE)

The characteristic behavior of SQL update queries means that updates to SQL data are either performed completely or not at all. When you use QBE to perform updates on SQL data, Corel Paradox does not generate any of the following auxiliary tables:

CHANGED.DB	INSERTED.DB

DELETED.DB	ERRORCHG.DB

ERRORINS.DB	ERRORDEL.DB

For information about using QBE to query and update SQL data, see About querying SQL data.

 Related Topics


About querying SQL data

Corel Paradox provides several different ways to perform operations against SQL data:

•	Users who are unfamiliar with SQL can frame queries to SQL tables in QBE through Corel Paradox forms or by setting up reports. They can also view and edit data directly through Table windows and Form windows.

•	Users who are familiar with SQL can pass SQL statements directly to the database through the SQL Editor window.

•	ObjectPAL programmers can use ObjectPAL methods that support SQL, embedding SQL statements if necessary.

 Note

•	You can also use the SQL Editor window to perform SQL operations against local (Corel Paradox or dBASE) data. For information, see About Local SQL.

 Related Topics


Using QBE to query SQL data
Using Query By Example (QBE) to query SQL data

QBE provides you with a graphical format that helps you show the kind of information you want in your Answer table. When you use QBE to query a table in an SQL database, Corel Paradox attempts to translate your query to an equivalent SQL statement and pass it to the SQL server. If successful, the server processes your query, then passes the answer set back to you through the SQL driver. The SQL Editor lets you view the equivalent SQL statement for the query at any time during query construction or after it is processed.

 Note

•	If the SQL database does not support an equivalent SQL statement for a QBE query, a message confirms that the query is processing in the QBE environment.

Querying an SQL table works exactly the same way as querying a local table in Corel Paradox:

1.	Click File, New.

2.	In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box.

3.	Double-click the New Query icon.

4.	In the Select File dialog box, select the Alias to the SQL server you want to query from the Alias list box.

5.	In the File Name box, type the name of the SQL table you want to query.

6.	Click the Open button.

7.	Create the query as required.

8.	Click Query, Run Query.

 Note

•	As long as the SQL hourglass is visible, you cannot interrupt a query while it is processing. The size of the SQL table determines query retrieval time.

Borland SQL Links also supports the use of queries that join SQL tables with local tables or with SQL tables from different SQL databases (heterogeneous queries). Heterogeneous queries are always processed according to QBE rules.

When you are familiar with the syntax of SQL queries, you may prefer to use the SQL Editor to write SQL statements and send them directly to your server. This type of query is always processed by the rules of your SQL server. For more information, see Using pass-through SQL.

 Note

•	QBE queries sent to an SQL server are automatically placed under transaction control. However, if you run the SQL equivalent of a QBE query, those SQL statements are not under automatic transaction control. Non-QBE transactions must be explicitly begun and either committed or rolled back.

To view the SQL translation for a query you constructed using QBE

1.	Connect to the SQL database as described in Connecting to the SQL server.

2.	Use QBE to construct a query to the SQL database.

3.	Click View, Show SQL to open the SQL Editor window.

Depending on the type of query you just created, the SQL translation will be one of the following types of statements:

Desired result of query	Equivalent SQL statement

Display specific data	SELECT

Add new data	INSERT

Change existing data	UPDATE

Remove existing data	DELETE

 Related Topics


Using pass-through SQL

Programmers familiar with SQL can use the SQL Editor window to directly enter, execute, or save an SQL statement on a remote SQL server. In Corel Paradox, this is called "using pass-through SQL." The remote SQL server performs all error or syntax checking. You can save the SQL statement (the SQL Editor automatically saves the file with the extension .SQL), and later load, modify, or execute it.

See the following topics for two alternatives to using pass-through SQL:

 Using QBE to query SQL data

 About Local SQL

For information about the SQL Editor, see About the SQL Editor.

 Related Topics


Creating an SQL table

When you create an SQL table

•	You can define the table structure (fields and types), specify required fields, and define indexes. Other features of Corel Paradox tables, such as validity checks and referential integrity, are not supported on SQL tables.

•	You name indexes as described in Creating indexes on SQL tables.

•	When you use an SQL table in Corel Paradox, the table should have a unique index. If it does not have a unique index and you insert a record, you may not be able to view the record until you close the table and reopen it. To add a unique index, you must restructure the table and create a secondary index.

•	You can create an SQL table using pass-through SQL in the SQL Editor, as described in Using pass-through SQL.

 Related Topics


Creating indexes on SQL tables

You can use Corel Paradox to create and modify indexes on SQL tables.

To create an index for an SQL table

1.	Open an SQL table.

2.	Click Format, Restructure Table.

3.	Click Define Index.

Corel Paradox displays the Define Index dialog box.

When you use an SQL table in Corel Paradox, the table should have a unique index. If the table does not have a unique index and you insert a record, you may not be able to view the record until you close the table and reopen it.

Naming SQL indexes

With most database servers, index names must be unique for all tables in a database (or in some other predefined workspace). Index names must start with a letter, not a number. When you create an index on an SQL table, Corel Paradox prefixes the index name with the table name to ensure that the index name is unique.

When you create an SQL index, Corel Paradox supplies the prefix "<table>_" for the index name. For example, if you are creating the index "last_name" on the Customer table, Corel Paradox gives the index the name "customer_last_name".

You can include the table name with the index name or omit it:

•	If you type the index name following "<table>_", Corel Paradox prefixes the index name with the table name and an underscore.

•	If you delete "<table>_", Corel Paradox omits the table name from the index name. If the index name is not unique, an error will occur when Corel Paradox saves the table.

This index naming scheme also affects copying and restructuring.

 Note

•	Sybase index names do have to be unique within a database; therefore, Corel Paradox does not prefix Sybase index names with table names.

 Related Topics


Restructuring an SQL table

When you restructure an SQL table using Corel Paradox, you can add, modify, and drop indexes. You cannot otherwise use Corel Paradox to change the structure of a table on a server, unless you use pass-through SQL.

When you use an SQL table in Corel Paradox, the table should have a unique index (key). If it does not have a unique index and you insert a record, you may not be able to view the record until you close the table and reopen it.

Prefixing the index name with the table name

Corel Paradox prefixes some index names with the table name, as described in Creating indexes on SQL tables. These index names are also affected when you restructure an SQL table as follows:

•	If you create an index, Corel Paradox prefixes the index name with the table name unless you delete the string "<table>_"  from the index name.

•	If you modify an index, Corel Paradox does not modify the index name, unless you rename the index as part of your modification.

•	If you click Save As, Corel Paradox renames all index names with the new table name, even if the index names are not prefixed with the current table name. (Otherwise, a duplicate index name would be guaranteed.) For example, suppose the Employee table contains the following indexes:

- Employee_Dept_No

- Employee_Emp_No

- Full_Name

- Job

If you restructure the table and save it as My_Dept, Corel Paradox renames the indexes as follows:

- My_Dept_Dept_No

- My_Dept_Emp_No

- My_Dept_Full_Name

- My_Dept_Job

 Note

•	If, during a restructure operation, you add an index and omit the "<table>_" string or modify an index name in any way, Corel Paradox does not prefix the index name with the table name during the Save As operation. For example, suppose you restructure the InterBase table Employee, which contains an index Empid and while saving the index, you change the index name to Dept105_Empid. When you click Save As, Corel Paradox saves the table and does not prefix the Dept105_Empid index name with the new table name.

 Related Topics


About the SQL Editor

The SQL Editor is a full-featured text editor that includes color highlighting and smart tab indent. It also supports BRIEF- and Epsilon-style editing.

Use the SQL Editor window to directly enter, execute, or save an SQL statement. This is sometimes called pass-through SQL. You specify the SQL statement in your server's dialect and the SQL server performs all error or syntax checking and executes the statement without the help of Corel Paradox.

The SQL Editor appears when you open or create a new SQL file.

By default, keywords appear in bold; comments in italics. You can change colors and text attributes in the Developer Preferences dialog box on the Colors page.

 Note

•	The SQL Editor does not automatically wrap lines of text. A line extends to the right as you type, until you press ENTER to begin a new line.

Customizing the SQL Editor

You can customize the SQL Editor by clicking Tools, Settings, Developer Preferences and specifying your preferences on the various pages of the Developer Preferences dialog box. Many options are available, such as color highlighting, incremental search, smart tab indent, and so on. You can also specify BRIEF or Epsilon keymaps, instead of the Corel Paradox default.

SHIFT + F1 help

For a listing of keystrokes that correspond to the keymap you choose in the Developer Preferences dialog box, place the insertion point on a blank space in the SQL Editor and press SHIFT + F1.

Keystroke mappings

You can choose from three keystroke mappings in the SQL Editor:

•	the default Corel Paradox keymap

•	BRIEF keymap

•	Epsilon keymap

Of the three, the default is the only CUA keymap. The BRIEF and Epsilon mappings do not allow standard menu access through shortcut keys, and standard MDI keys are not available.

Menus

Using the BRIEF and Epsilon keymaps, you can access the menus by pressing F10 or by pressing and releasing  ALT, then pressing the shortcut key for the required menu.

The default keymap allows menu access as for BRIEF and Epsilon, but in addition the menus can be reached by the standard ALT + Key combination, for example, ALT + E for the Edit menu.

Standard MDI system keys

Standard MDI system keys are only available for the Default keymap. Examples of these keys are:

CTRL + F6 — the MDI window toggle

ALT + F6 — the SDI window toggle

CTRL + F4 — closes an MDI window

For more information about keys, see Moving around the SQL Editor with the keyboard.

 Related Topics


Opening the SQL Editor

To open the SQL Editor, do one of the following:

•	To enter (and execute) a new SQL statement, click File, New. In the Create New page of the New dialog box, choose Corel Paradox 8 from the list box and double-click the New SQL icon.

•	From the Project Viewer, right-click the Open SQL Script button and click New.

•	To open an exising SQL file, click File, Open, SQL File. Type the name of the file in the File Name box of the Open SQL File dialog box and click Open.

•	To view the SQL equivalent of an open query, open a query and click View, Show SQL.

 Related Topics


Moving around the SQL Editor with the keyboard

Use the following keys to move around in the SQL Editor:

CTRL+left arrow	Moves the cursor one word to the left

CTRL+right arrow	Moves the cursor one word to the right

HOME	Moves the cursor to the beginning of a line

END	Moves the cursor to the end of a line

CTRL+HOME	Moves the cursor to the beginning of the text

CTRL+END	Moves the cursor to the end of the text

Page up	Moves back one screen

Page down	Moves forward one screen

BACKSPACE	Deletes the character to the left of the cursor

DELETE	Deletes the character to the right of the cursor

INSERT	Has no effect because the SQL Editor is always in INSERT mode. As you type, characters are pushed to the right. You cannot overwrite characters.

CTRL+C	Copies the selected text to the clipboard

CTRL+X	Copies the selected text to the clipboard and deletes it from the window

CTRL+V	Pastes text from the clipboard into your method

TAB	Inserts a Tab character and pushes the text to the right

 Related Topics


Selecting text in the SQL Editor

You can select a word, line or block of text.

To select a word

•	Double-click the word.

To select an entire line

•	Click to the left of the line and drag the insertion point. (The mouse is in position when the I-beam changes to an arrow.)

To select a block of text, do one of the following

•	Click and drag the mouse

•	Hold down SHIFT and use the arrow keys.

•	Click the start of the text you want to select, hold down SHIFT, and click the end of the text.

 Note

•	The keymapping and Overwrite Blocks preferences specified in the Developer Preferences dialog box displayed when you click Tools, Settings, affect selected text.

 Related Topics


Searching for text in the SQL Editor

To find or find and replace text in an SQL Editor window

•	Click Edit, Search, Find, or Edit, Search, Replace.

You can use these two commands to search for text forward from the cursor (or backward if you enable the Backwards button).

The Find and Replace dialog box (displayed when you click Edit, Search, Replace) lets you replace the specified text with a specified value.

 Related Topics


Exiting the SQL Editor
Running an SQL statement and exiting the SQL Editor

To run an SQL statement

•	Click SQL, Run SQL.

To exit the SQL Editor

•	Click File, Close.

For information about saving an SQL statement before you exit the SQL editor, see Saving an SQL statement.

 Related Topics


About SQL statements

SQL statements are the instructions you use to communicate with databases on SQL servers. If you are only accessing one remote server, you can use the particular SQL syntax required by that server. If you are accessing several servers or Corel Paradox and dBASE tables on your local system, you can use Local SQL. For more information, see About Local SQL.

You can create SQL statements by typing them directly in the SQL Editor, or you can run a query using Query By Example (QBE) and display the SQL equivalent of that query in the SQL Editor. For more information, see Viewing the SQL translation of a Query By Example (QBE) query.

 Note

•	Before you can access a database on an SQL server, you must give the database an alias. For more information, see Creating a new alias.

 Related Topics


Specifying an alias in the SQL Editor

Before running an SQL statement, you must specify the alias that the statement will run against.

To specify an alias

1.	Click SQL, Select Alias.

2.	In the Select Alias dialog box, choose an alias from the Alias list box. Corel Paradox allows you to choose any of the aliases you created using either the Alias Manager or the Borland Database Engine (BDE) Administrator.

 Note

•	If you do not specify an alias, Corel Paradox uses the alias :WORK:.

•	If you are using Local SQL, you can include aliases in the text of the SQL statement.

•	If you need to join local and remote tables (in a heterogeneous join), specify a local alias, then include the remote alias in the text of the SQL statement by using Local SQL.

 Related Topics


Entering an SQL statement

To enter an SQL statement

•	Type the statement in the SQL Editor. You can enter multiple SQL statements if your server allows it and you include only one Select statement.

You can include aliases in the text of the SQL statement only if you are using Local SQL.

Use the following Edit menu commands to select, locate, and replace text:

Command	Description

Find	Search for strings of text in your code

Find Next	Search for the next occurrence of the text you specified using the Find 	command

Replace	Search for text and replace it with the value you specify

Replace Next	Replace the next occurrence of the text specified using the Replace 	command

Select All	Select all text in the SQL Editor window

 Related Topics


Running an SQL statement

To run an SQL statement from the SQL Editor

•	Click SQL, Run SQL.

The SQL server performs all error or syntax checking and executes the statement.

If your SQL statement is a query, the query results are displayed in an Answer table.

 Note

•	Before running an SQL statement, click SQL, Select Alias, to specify the alias the statement will run against.

 Related Topics


Saving an SQL statement

To save an SQL statement

•	Click File, Save, or File, Save As.

When you save an SQL statement to your hard drive, Corel Paradox places it in an unformatted text file with the .SQL extension.

 Note

•	If the Prompt To Save option in the Developer Preferences dialog box is disabled, you are not prompted to save your changes when you close an SQL Editor window or run SQL code from an open SQL Editor window.

 Related Topics


Viewing the SQL translation of a QBE query
Viewing the SQL translation of a Query By Example (QBE) query

When you use QBE to query an SQL table, Borland SQL Links attempts to translate your query to an equivalent SQL statement and pass it to the SQL server. The server processes your query, then passes the answer set back to you through SQL Links. Corel Paradox lets you view the equivalent SQL statement for the query at any time during query construction or after it is processed.

Depending on the type of query you create, the SQL translation will be one of the following types of statements:

Desired query result	Equivalent SQL statement

Display specific data	Select

Add new data	Insert

Change existing data	Update

Remove existing data	Delete

To view the SQL translation of a QBE query

1.	Connect to the SQL database as described in Connecting to the SQL server.

2.	Use the QBE method to construct a query to the SQL database.

3.	Click View, Show SQL to display the code in the SQL Editor window.

Corel Paradox opens the SQL Editor and displays the SQL statement for your query.

 Note

•	If the SQL database does not support an equivalent SQL statement for a QBE query, a message confirms that the query is processing in the QBE environment.

 Related Topics


About Local SQL

The Borland Database Engine (BDE) enables access to both local and remote database tables through Local SQL (Structured Query Language). Local SQL, also known as "client-based SQL", is a subset of ANSI-92 SQL that has been enhanced to support Corel Paradox and dBASE (standard) naming conventions for tables and fields (called "columns" in SQL).

Local SQL lets you use SQL to query "local" standard database tables that do not reside on a database server (specifically Corel Paradox or dBASE tables) as well as "remote" SQL servers. Local SQL is also essential to make multi-table queries across both local standard tables and those on remote SQL servers.

Naming conventions

For information about naming conventions for tables and columns, syntax enhancements, and syntax limitations for Local SQL, see Naming conventions.

SQL statements

The SQL statements are broken down into two different categories: Data Manipulation Language (DML) and Data Definition Language (DDL).

•	DML statements are used for selecting, inserting, updating, and deleting table data. Syntax and usage examples are included.

•	DDL statements are used for creating, altering, and dropping tables, and for creating and dropping indexes. The DDL transforms directly into BDE function calls. Syntax and usage examples are included.

For a complete introduction to ANSI-standard SQL, see one of the many third-party books.

 Related Topics


Naming conventions (Local SQL)

ANSI-standard SQL confines each table or column name to a single word comprised of alphanumeric characters and the underscore symbol (_). Local SQL, however, is enhanced to support more comprehensive names.

Tables

Local SQL supports full file and path specifications for table names. Table names with path or filename extensions must be enclosed in single or double quotation marks. For example

SELECT * FROM 'PARTS.DBF'

SELECT * FROM "C:\SAMPLE\PARTS.DBF"

Local SQL also supports BDE aliases for table names. For example

SELECT * FROM ":PDOX:TABLE1"

If you omit the file extension for a local table name, the table is assumed to be the table type specified in the Default Driver setting in the System page of the Borland Database Engine (BDE) Administrator the default driver type for the standard alias associated with the query or table.

Local SQL permits table names to duplicate SQL keywords as long as those table names are enclosed in single or double quotation marks. For example,

SELECT PASSID FROM "PASSWORD"

Columns

Local SQL supports Corel Paradox multi-word column names and column names that duplicate SQL keywords as long as those column names are

•	Enclosed in single or double quotation marks

•	Prefaced with an SQL table name or table correlation name

For example, the following column name is two words:

SELECT E."Emp Id" FROM EMPLOYEE E

In the next example, the column name duplicates the SQL DATE keyword:

SELECT DATELOG."DATE" FROM DATELOG

 Related Topics


About Data Manipulation Language (DML) statements

With some restrictions, Local SQL supports the following statements for data manipulation

•	Select — retrieves existing data

•	Insert — adds new data to a table

•	Update — modifies existing data

•	Delete — removes existing data from a table

The following sections describe functions available to DML statements in Local SQL.

•	Aggregate functions

•	String functions

•	Date function

•	Operators

•	Updateable (live) queries

For additional illustrative examples, see Data Manipulation Language (DML) examples

 Related Topics


Live query views (SQL)

Borland SQL Links offers expanded support for both single-table and multi-table live-query views.

Restrictions on live queries

Single-table queries or views are updateable provided that:

•	There are no JOINs, UNIONs, INTERSECTs, or MINUS operations.

•	There is no DISTINCT key word in the SELECT statement.

•	Everything in the SELECT clause is a simple column reference or a calculated field, no aggregation is allowed.

•	There is no GROUP BY or HAVING clause.

•	There are no subqueries that reference the table in the FROM clause and no correlated subqueries.

•	Any ORDER BY clause can be satisfied with an index.

Restrictions on live joins

Live joins depend upon composite cursors. Live joins may be used only if:

•	All joins are left-to-right outer joins or inner joins.

•	All joins are equi-joins.

•	All join conditions can be satisfied by indexes (for Corel Paradox and dBASE).

•	Output ordering is not defined.

•	The query contains none of the elements listed above that would prevent single-table updating.

Constraints

You can constrain any live-query view by enabling the Constrained Updates check box on the Query page of the Preferences dialog box, (Tools, Settings menu). An error is returned whenever a modify or insert operation would cause a new record to disappear from the result set.

Calculated fields

For live-query views with calculated fields, the calculated field is updated whenever dependent fields are updated.

 Related Topics


Heterogeneous joins

Local SQL enables you to join tables created in different database formats; this is called a "heterogeneous join."

When you perform a heterogeneous join, you may select a local alias.

To select a local alias

•	Click SQL, Select Alias and choose an alias from the Alias list box.

If you have not selected an alias, Local SQL will attempt to find the table in the current directory of the database that is being used. For example, the alias :WORK: might be the database handle passed into the function.

When you specify a table name after selecting a local alias

•	Specify either the alias or the path for local tables.

•	Specify the alias for remote tables.

The following statement retrieves data from a Corel Paradox table and a dBASE table:

SELECT DISTINCT C.CUSTNO, C.STATE, O.ORDERNO

FROM "CUSTOMER.DB" C, "ORDER.DBF" O

WHERE C.CUSTNO = O.CUSTNO

You can also use Borland Database Engine (BDE) aliases in conjunction with table names.

 Related Topics


INSERT

In Local SQL, INSERT can insert a list of values or values can be obtained from a SELECT statement, a query that returns row values.

Examples

The following statement adds a row to a table, assigning values to two columns:

INSERT INTO EMPLOYEEPROJECT (EMPNO, PROJID) VALUES (52, "dgpii");

The next statement uses SELECT to specify values to insert into a table:

INSERT INTO PROJECTS

SELECT * FROM NEWPROJECTS

WHERE NEWPROJECTS.STARTDATE > "6-JUN-1994";

 Related Topics


UPDATE

There are no restrictions on or extensions to the ANSI-standard UPDATE statement.

 Related Topics


DELETE

There are no restrictions on or extensions to the ANSI-standard DELETE statement.

 Related Topics


SELECT

The SELECT statement is used to retrieve data from one or more tables. A SELECT that retrieves data from multiple tables is called a "join." Local SQL supports the following form of the SELECT statement:

SELECT [DISTINCT] column_list

FROM table_reference

[WHERE search_condition]

[ORDER BY order_list]

[GROUP BY group_list]

[HAVING having_condition]

[UNION select_expr]

Except as noted elsewhere, all clauses are handled as in ANSI-standard SQL. Clauses in square brackets are optional.

The column_list indicates the columns from which to retrieve data. For example, the following statement retrieves data from two columns:

SELECT PART_NO, PART_NAME

FROM PARTS

Choose one of the following topics for more information on using SELECT:

 FROM clause

 WHERE clause

 ORDER BY clause

 GROUP BY clause

 HAVING clause

 UNION clause

 Heterogeneous joins

 Related Topics


FROM clause (SELECT statement)

The FROM clause specifies the table or tables from which to retrieve data. Table_reference can be a single table, a comma-delimited list of tables, or can be an inner or outer join as specified in the SQL-92 standard. For example, the following statement specifies a single table:

SELECT PART_NO

FROM "PARTS.DBF"

The next statement specifies a left outer join for table_reference:

SELECT * FROM PARTS LEFT OUTER JOIN INVENTORY

ON PARTS.PART_NO = INVENTORY.PART_NO

 Related Topics


WHERE clause (SELECT statement)

The optional WHERE clause reduces the number of rows returned by a query to those that match the criteria specified in search_condition. For example, the following statement retrieves only those rows with PART_NO greater than 543:

SELECT * FROM PARTS

WHERE PART_NO > 543

The WHERE clause can include the IN predicate, followed by a parenthesized list of values. For example, the next statement retrieves only those rows where a part number matches an item in the IN predicate list:

SELECT * FROM PARTS

WHERE PART_NO IN (543, 544, 546, 547)

 Related Topics


ORDER BY clause (SELECT statement)

The ORDER BY clause specifies the order of retrieved rows. For example, the following query retrieves a list of all parts listed in alphabetical order by part name:

SELECT * FROM PARTS

ORDER BY PART_NAME ASC

The next query retrieves all part information ordered in descending numeric order by part number:

SELECT * FROM PARTS

ORDER BY PART_NO DESC

Calculated fields can be ordered by correlation name or ordinal position. For example, the following query orders rows by FULL_NAME, a calculated field:

SELECT LAST_NAME || ', ' || FIRST_NAME AS FULL_NAME, PHONE,

FROM CUSTOMER

ORDER BY FULL_NAME

 Related Topics


GROUP BY clause (SELECT statement)

The GROUP BY clause specifies how retrieved rows are grouped for aggregate functions.

 Related Topics


HAVING clause (SELECT statement)

The HAVING clause specifies conditions records must meet to be included in the return from a query. It is a conditional expression used in conjunction with the GROUP BY clause. Groups that do not meet the expression in the HAVING clause are ommitted from the result set.

Subqueries are supported in the HAVING clause. A subquery works like a search condition to restrict the number of rows returned.

In addition to scalar comparison operators ( =, <, > ... ) additional predicates using IN, ANY, ALL, EXISTS are supported.

 Related Topics


UNION clause (SELECT statement)

The UNION clause combines the results of two or more SELECT statements to produce a single Answer table.

 Related Topics


Aggregate functions (SQL)

The following ANSI-standard SQL aggregate functions are available to Local SQL for use with data retrieval:

•	SUM(), for totaling all numeric values in a column

•	AVG(), for averaging all non-NULL numeric values in a column

•	MIN(), for determining the minimum value in a column

•	MAX(), for determining the maximum value in a column

•	COUNT(), for counting the number of values in a column that match specified criteria

•	COUNT(*), for counting non-NULL numeric values in a column

Complex aggregate expressions are supported, such as:

SUM( Field * 10 )

SUM( Field ) * 10

SUM( Field1 + Field2 )

 Related Topics


String functions (SQL)

Local SQL supports the following ANSI-standard SQL string manipulation functions for retrieval, insertion, and updating:

•	UPPER(), to force a string to uppercase

•	LOWER(), to force a string to lowercase

•	TRIM(), to remove repetitions of a specified character from the left, right, or both sides of a string

•	SUBSTRING() to create a substring from a string

 Related Topics


substring

SUBSTRING() takes a string and creates a substring of that string.

SELECT SUBSTRING( CUSTNAME FROM 1 FOR 10 ) FROM CUSTOMER

This query return the first 10 characters of the CUSTNAME column.

You can also use the SUBSTRING expression SUBSTRING( CUSTNAME FROM 1), which starts returning characters at the specified number and continues to the end.


Date functions (SQL)
Date functions

Local SQL supports the EXTRACT() function for isolating a single numeric field from a date/time field on retrieval using the following syntax:

EXTRACT (extract_field FROM field_name)

For example, the following statement extracts the year value from a DATE field:

SELECT EXTRACT(YEAR FROM HIRE_DATE)

FROM EMPLOYEE

You can also extract MONTH, DAY, HOUR, MINUTE, and SECOND using this function.

 Note

•	EXTRACT does not support the TIMEZONE_HOUR or TIMEZONE_MINUTE clauses.

 Related Topics


Operators (SQL)

Local SQL supports the following operators:

Type	Operator

Arithmetic	+, –, *, /

Comparison	<, >, =, <>, IS NULL, IS NOTNULL, >=, =<

Logical	AND, OR, NOT

String concatenation	||

String pattern match	LIKE

 Related Topics


DML examples

The DML syntax supports these clauses:

SELECT FROM, WHERE, ORDER BY, GROUP BY, and HAVING

The following aggregates are supported:

SUM, AVG, MIN, MAX, COUNT

The following operators are supported:

+, -, *, /, =, < >, IS NULL, IS NOTNULL, >=, =<, AND, OR, NOT, ||, LIKE

UPDATE, INSERT, DELETE operations are fully supported.

The following examples show DML statements used with standard databases:

Example 1: UPDATE

update goods
set city = 'Santa Cruz'
where goods.city = 'Scotts Valley'

Example 2: INSERT

insert
into goods ( 'part no', city )
values ( 'aa0094', 'San Jose' )

Example 3: DELETE

delete
from goods
where 'part no' = 'aa0093'

Example 4: SELECT used to join

The following example illustrates how the SELECT statement is supported as an equivalent to a JOIN:

select distinct p.'part no', p.quantity, g.city
from parts p, goods g
where p.'part no' = g.'part no'
and p.quantity > 20
order by p.quantity, g.city, p.'part no'

A SELECT statement that contains a join must have a WHERE clause in which at least one field from each table is involved in an equality check.

Example 5: Sub-selects

Sub-select queries are supported. The following example illustrates this syntax:

select p.'part no'
from parts p
where p.quantity in
(select i.quantity
from inventory i
where  i. 'part no' = 'aa9393')

Example 6: GROUP BY

The following examples illustrate the GROUP BY clause:

select part_no, sum(quantity) as PQTY
from parts
group by 'part no'

 Note

•	Aggregates in the SELECT clause must have GROUP BY clause if a projected field is used, as shown in the first example above.

Example 7: ORDER BY

The following example illustrates the ORDER BY with a DESCENDING clause:

select distinct 'customer no'
from c:\data\customer
order by 'customer no' descending

 Related Topics


About Data Definition Language (DDL) statements

Local SQL supports Data Definition Language (DDL) for creating, altering, and dropping tables, and for creating and dropping indexes.

Views are supported.

Local SQL does not permit the substitution of variables for values in DDL statements.

The following DDL statements are supported:

 CREATE TABLE

 ALTER TABLE

 DROP TABLE

 CREATE INDEX

 DROP INDEX

 CREATE VIEW

For additional illustrative examples see DDL examples

 Related Topics


CREATE TABLE

CREATE TABLE is supported with the following limitations:

•	Column definitions based on domains are not supported.

•	Constraints are limited to PRIMARY KEY for Corel Paradox. Constraints are unsupported in dBASE.

For example, the following statement creates a Corel Paradox table with a PRIMARY KEY constraint on the LAST_NAME and FIRST_NAME columns:

CREATE TABLE "employee.db"

(

LAST_NAME CHAR(20),

FIRST_NAME CHAR(15),

SALARY NUMERIC(10,2),

DEPT_NO SMALLINT,

PRIMARY KEY(LAST_NAME, FIRST_NAME)

)

The same statement for a dBASE table should omit the PRIMARY KEY definition:

CREATE TABLE "employee.dbf"

(

LAST_NAME CHAR(20),

FIRST_NAME CHAR(15),

SALARY NUMERIC(10,2),

DEPT_NO SMALLINT

)

Creating Corel Paradox and dBASE tables

You create a Corel Paradox or dBASE table using Local SQL by specifying the file extension when naming the table:

•	".DB" for Corel Paradox tables

•	".DBF" for dBASE tables

If you omit the file extension for a local table name, the table created is the table type specified in the Default Driver setting in the System page of the BDE Configuration Utility.

Data type mappings for CREATE TABLE

The following table lists SQL syntax for data types used with CREATE TABLE, and describes how those types are mapped to Corel Paradox and dBASE types by the Borland Database Enging (BDE):

SQL Syntax	BDE Logical	Corel Paradox	dBASE
SMALLINT	fldINT16	Short	Number (6,10)
INTEGER	fldINT32	Long Integer	Number (20,4)
DECIMAL(x,y)	fldBCD	BCD	N/A
NUMERIC(x,y)	fldFLOAT	Number	Number (x,y)
FLOAT(x,y)	fldFLOAT	Number	Float (x,y)
CHARACTER(n)	fldZSTRING	Alpha	Character
VARCHAR(n)	fldZSTRING	Alpha	Character
DATE	fldDATE	Date	Date
BOOLEAN	fldBOOL	Logical	Logical
BLOB(n,1)	fldstMEMO	Memo	Memo
BLOB(n,2)	fldstBINARY	Binary	Binary
BLOB(n,3)	fldstFMTMEMO	Formatted memo	N/A
BLOB(n,4)	fldstOLEOBJ	OLE	OLE
BLOB(n,5)	fldstGRAPHIC	Graphic	N/A
TIME	fldTIME	Time	N/A
TIMESTAMP	fldTIMESTAMP	Timestamp	N/A
MONEY	fldFLOAT, fldstMONEY	Money	Number (20,4)
AUTOINC	fldINT32, fldstAUTOINC	Autoincrement	N/A
BYTES(n)	fldBYTES(n)	Bytes	N/A
x = precision (default: specific to driver)

y = scale (default: 0)

n = length in bytes (default: 0)

1-5 = BLOB subtype (default: 1)

 Related Topics


ALTER TABLE

Local SQL supports the following subset of the ANSI-standard ALTER TABLE statement. You can add new columns to an existing table using this ALTER TABLE syntax:

ALTER TABLE table ADD column name data type [, ADD column name data type ...]

For example, the following statement adds a column to a dBASE table:

ALTER TABLE "employee.dbf" ADD BUILDINGNO SMALLINT

You can delete existing columns from a table using the following ALTER TABLE syntax:

ALTER TABLE table DROP column name [, DROP column name ...]

For example, the next statement drops two columns from a Corel Paradox table:

ALTER TABLE "employee.db" DROP LASTNAME, DROP FIRSTNAME

ADD and DROP operations can be combined in a single statement. For example, the following statement drops two columns and adds one:

ALTER TABLE "employee.dbf" DROP LASTNAME, DROP FIRSTNAME, ADD FULLNAME CHAR[30]

 Related Topics


DROP TABLE

DROP TABLE deletes a Corel Paradox or dBASE table. For example, the following statement drops a Corel Paradox table:

DROP TABLE "employee.db"

 Related Topics


CREATE INDEX

CREATE INDEX enables users to create indexes on tables using the following syntax:

CREATE INDEX index_name ON table_name (column [, column ...])

Using CREATE INDEX is the only way to create indexes for dBASE tables. For example, the following statement creates an index on a dBASE table:

CREATE INDEX NAMEX ON "employee.dbf" (LAST_NAME)

Corel Paradox users can create only secondary indexes with CREATE INDEX. Primary Corel Paradox indexes can be created only by specifying a PRIMARY KEY constraint when creating a new table with CREATE TABLE.

 Note

•	The index created is non-maintained, non-unique, not case-sensitive, and in ascending order. If the table has a primary key, then a maintained index is created.

 Related Topics


DROP INDEX

Local SQL provides the following variation of the ANSI-standard DROP INDEX statement for deleting an index. It is modified to support dBASE and Corel Paradox file names.

DROP INDEX table_name.index_name | PRIMARY

The PRIMARY keyword is used to delete a primary Corel Paradox index. For example, the following statement drops the primary index on EMPLOYEE.DB:

DROP INDEX "employee.db".PRIMARY

To drop any dBASE index, or to drop secondary Corel Paradox indexes, provide the index name. For example, the next statement drops a secondary index on a Corel Paradox table:

DROP INDEX "employee.db".NAMEX

 Related Topics


CREATE VIEW

A view creates a virtual table from a SELECT statement. You can look at just the data you need within this movable frame or window on the table, while the technical underpinnings are hidden. Instead of entering a complex qualified SELECT statement, the user simply selects a view.

CREATE VIEW describes a view of data based on one or more underlying tables in the database. The rows to return are defined by a SELECT statement that lists columns from the source tables. A view does not directly represent physically stored data. It is possible to perform select, project, join, and union operations on views as if they were tables.

CREATE VIEW enables users to create views on tables by using the following syntax:

CREATE VIEW view_name [ (column_name [, column_name]...)]

CREATE VIEW is supported in conjunction with the Client Data Repository (CDR). The CDR stores the SELECT statement that defines the view.

The "WITH CHECK OPTION" is supported to create a constrained view.

Views of Views are supported. However, the CASCADE/LOCAL view attribute is not supported, because all updateable views CASCADE the constraints.

 Related Topics


DDL examples

The following examples show the use of DDL statements with standard databases.

Example 1a: DDL (DROP TABLE)

When the table name contains a period "." character, enclose the name in quotation marks:

drop table "c:\data\customer.db"

Example 1b: DDL (DROP TABLE)

No quotation marks are used if the table name does not contain the "." character:

drop table clients

Example 2: DDL (CREATE INDEX)

create index part on parts (part_no)

Corel Paradox primary indexes can be created only when creating the table. Secondary indexes are created as case insensitive and maintained, when possible. dBASE indexes are created as maintained. The Index name specified is the tag name.

Example 3: DDL (DROP INDEX)

The syntax for drop index is tablename.indexname:

drop index parts.part_no

For Corel Paradox only, the syntax tablename.primary indicates the primary index:

drop index parts.primary

 Related Topics


Table Repair Utility dialog box

Use the Table Repair utility to repair damaged tables. Depending on the severity of any damage suffered, the utility may not always be able to correct the problem. For this reason, it's a good idea to make regular and frequent backup copies of your important data.

As long as the table's header is not damaged, the Table Repair utility displays structure information automatically. If it is damaged, you may be required to enter additional information on the table's structure as it was when the damage occurred. Do not use the Table Repair utility to make changes to the table's structure other than restoring it to the fields it contained when the damage occurred. (If you want to make other changes, they should be made through the Table Restructure menu option after the table has been successfully repaired.)

This dialog box contains the following pages:

•	Table Information

•	Repair Settings

•	Errors

Select Table Name

Specify the table you want to repair. Or click the Browse button to select the table.

Note:	When a table is specified, the header is verified automatically and the header information is displayed in the Table Information page.

Browse

Click to look for files in other folders.

Verify

Verifies the integrity of the table. For details on verifying a table, see To verify a table's integrity. This option is dimmed if the Select Table Name field is blank.

Rebuild

Reconstructs the table. For details on rebuilding a table, see To rebuild a table. This option is dimmed if the Select Table Name field is blank.


Table Repair Utility dialog box (Table Information page)

The Table Repair utility is initially set to the Table Information page and displays information about the header for the table specified in the Select Table Name field. This page is dimmed if the Select Table Name field is blank. Once you have selected a table, the two panes of this page are automatically filled in with the following information:

Table Details

Displays header information for the table specified by the Select Table Name field (if the header is not damaged).

File Format

The file format of the table. When the table's header is damaged, use File Format to specify the table's format.

Block Size (In 1K Units)

The size of data blocks stored in the table, in kilobytes. (A kilobyte is 1,024 bytes.) Block size is determined by the maximum size of the table. When the table's header is damaged, use Block Size to specify the table's block size. Valid block sizes depend on the file format of the table. For versions 4.5 or earlier, 1K through 4K are valid. For versions 5.0 and later, 1K through 4K, 8K, 16K, and 32K are valid.

Record Size (Bytes)

The size of each record in bytes. Record size is determined by the number and type of fields in the table.

Number Of Records

The number of records in the table.

Number Of Fields

The number of fields in the table.

Password

Indicates whether the table is password-protected. If the table is password-protected, you must enter its password on the Repair Settings page before attempting to reconstruct it.

Note: To recover the table's data, you must enter the correct password if a password is required. If you do not enter a password in the Master Password field of the Repair Settings page, or you enter an incorrect value, the Table Repair utility will result in a table which has no data.

You may retry the Table Repair procedure with the backup copy of the original table. The backup table is automatically created with the name indicated in the Backup Table Name field of the Repair Settings page.

Language Driver

The language driver for the table.

Code Page

The code page used with this table. (Code pages work in conjunction with Language Drivers. Specifying the correct Language Driver value will automatically set the corresponding Code Page.)

Time Stamp

The date and time stamp of the table.

Read Only

Specifies if the table is Read Only. A Read Only table cannot be rebuilt.

Number Of Aux. Passwords

The number of auxiliary passwords associated with the table.

Field Structure

Lets you reconstruct a damaged table or verify its integrity by displaying options regarding the information presented on this page:

View

Displays the fields in the table's structure (field names, field types and key fields). If the table's header is damaged, this button is unavailable.

Edit

Lets you restore the fields in the table structure or enter field information that was lost when the table was damaged.

Note: Do not use the Table Repair utility to make changes to the table's structure other than restoring it to the fields it contained when the damage occurred. If you want, other changes should be made through the Table Restructure menu option after the table has been successfully repaired.

Borrow

Lets you restore the table's structure by borrowing the structure of another table.

Note: Select this option only if the table you are borrowing from has the same file structure as the damaged table.


Table Repair Utility dialog box (Repair Settings page)

Lets you to customize the table names and set other preferences for the Table Repair utility to use while performing the repair. This page is divided into the following two sections:

Backup Table Name

Specify the name to be used as the backup file name.

The Table Repair utility always creates a backup copy of the table before attempting to repair it. If needed, you may retry the Table Repair procedure with the backup copy of the original table.

Master Password

This field is dimmed unless the Table Repair utility determines that a password was used to protect this table. If so, enter the Master Password here.

Note: To recover the table's data, you must enter the correct password. If an incorrect password is entered, the repair operation will result in a table which has no data.

Problems Table Name

The Table Repair utility will attempt to create a Problems table containing data it cannot process. Specify a table name for the problems table.

KeyViol Table Name

Corel Paradox cannot save multiple records that contain duplicate values in the table's key. In cases where duplicates exist, these duplicates are saved to a key violation table. Specify a name for the key violation table.

Display Error Tables

Check this field if you want the Table Repair utility to display the Problems and KeyViol tables that may be generated during the rebuild process.


Table Repair Utility dialog box (Errors page)

Displays a list of errors detected while verifying a table.

Error Code

Displays the error number.

Error Level

All Table Repair utility messages are assigned an error level depending on the severity of the errors detected.

Error Message

This is a text message that describes each error encountered.


Table Repair Utility Error levels

The Error page of the Table Repair dialog box displays a list of errors detected while verifying a table. All errors are assigned a level, as follows:

Level	Description
0	Warning. Table Repair utility continues to verify.
1	Non-critical error. Table Repair utility continues to verify.
2	Critical error. Table Repair utility stops verifying.
3	Header problems. The Table Repair utility stops verifying, because it is unable to repair the header information. You must create a new header or borrow the header from an existing table. For details on rebuilding a table, see To rebuild a table.


Table Rebuild window
To reconstruct a damaged table

To reconstruct a damaged table,

1.	Type the name of the table to reconstruct. If the table's header  is not damaged, the table's header information appears.

2.	If the table's header is damaged, click Edit and enter the table's structure (or choose Borrow to copy the structure from an undamaged table).

Note: This option should be used only to reset the header of the damaged table to the fields it contained when the damage occurred. Any additional changes to the file structure should be made using the Table Restructure menu option after the Table Repair utility has successfully repaired the table.

3.	Enter File Format and Block Size information (if not automatically displayed). You may change the values that are displayed here if you want.

4.	Click Repair Settings page and change the backup table name if you want. By default, the Table Repair utility supplies a backup table name of "Copy of" plus the original table name appended to it. If the table is password-protected, specify the password.

5.	Click Rebuild.

Note: Rebuilt tables are always converted to the version specified in the File Format field of the Table Information page.

If Corel Paradox cannot save certain records because of data violations, it stores them in one of the Auxiliary Tables indicated on the Repair Settings page.

The key violation table contains records that Corel Paradox cannot save in the repaired table due to duplicate values in the table's key. When this occurs, the first occurrence is stored in the repaired table and all duplicates are stored in the key violation table.

Records that violate validity checks and other data-type violations are stored in the problems table.

You can view both tables by choosing Display Error Tables from the Repair Settings page.


Table Verify window
To verify a table's integrity

To verify a table's integrity

1.	Enter the name of the table. If the table's header is not damaged, the table's header information appears.

2.	Choose Verify. If errors are detected, the Table Repair utility prompts whether to display them or not. If specified, it displays the table repair errors.

If errors are encountered, you can choose Rebuild to rebuild the table.


Table header

Corel Paradox tables consist of two sections: the header and the data blocks. The header contains information about the number of fields, passwords, writer protection, sort order, and the version of Corel Paradox that created the table.


Key

A field or group of fields in a Corel Paradox table used to identify a record or ensure referential integrity. Corel Paradox sorts the information in the table based on the key field(s). Corel Paradox does not accept duplicate entries in key fields.


Key violation

A condition that occurs when attempting to save a record containing key field values that are identical to the key field values in another record.


Problems table

The table where Corel Paradox stores records that could not be placed in the repaired table. Records are saved in the problems table when validity checks such as minimum or maximum values are not met, required fields are blank, and so on.