0% found this document useful (0 votes)
85 views177 pages

DEXUTIL

Uploaded by

Henry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views177 pages

DEXUTIL

Uploaded by

Henry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Microsoft Dexterity

Dexterity Utilities
Release 12
Copyright Copyright © 2014 Microsoft Corporation. All rights reserved.

Limitation of liability This document is provided “as-is”. Information and views expressed in this document, including
URL and other Internet Web site references, may change without notice. You bear the risk of using
it.

Some examples depicted herein are provided for illustration only and are fictitious. No real
association or connection is intended or should be inferred.

Intellectual property This document does not provide you with any legal rights to any intellectual property in any
Microsoft product.

You may copy and use this document for your internal, reference purposes.

Trademarks Microsoft, Dexterity, Microsoft Dynamics, and Windows are trademarks of the Microsoft group of
companies. FairCom and c-tree Plus are trademarks of FairCom Corporation and are registered in
the United States and other countries.

All other trademarks are property of their respective owners.

Warranty disclaimer Microsoft Corporation disclaims any warranty regarding the sample code contained in this
documentation, including the warranties of merchantability and fitness for a particular purpose.

License agreement Use of this product is covered by a license agreement provided with the software product. If you
have any questions, please call the Microsoft Dynamics GP Customer Assistance Department at
800-456-0025 (in the U.S. or Canada) or +1-701-281-6500.

Publication date June 2014


Contents
Introduction ................................................................................................................................. 2
What’s in this manual .................................................................................................................. 2
What’s new in Dexterity Utilities ............................................................................................... 2
Symbols and conventions............................................................................................................ 3

Part 1: Basics ............................................................................................................................. 6


Chapter 1: Getting Started .......................................................................................... 7
Basic components ......................................................................................................................... 7
Launching Dexterity Utilities...................................................................................................... 7
Dexterity Utilities terms............................................................................................................... 8
Working with dictionaries ......................................................................................................... 10

Chapter 2: The Dexterity Utilities Interface .............................................. 11


The main menu ........................................................................................................................... 11
The toolbar................................................................................................................................... 12
The menu bar............................................................................................................................... 13

Part 2: Utility Reference ......................................................................................... 16


Utility Summary ......................................................................................................................... 17

Chapter 3: Transfer Utilities .................................................................................... 21


Transferring resources................................................................................................................ 22
Transferring strings and messages ........................................................................................... 29
Transferring windows................................................................................................................ 31
Transferring dictionary modules.............................................................................................. 33
Developer update ....................................................................................................................... 35

Chapter 4: Script Utilities ......................................................................................... 37


Compiling form scripts .............................................................................................................. 38
Compiling global procedures ................................................................................................... 40
Compiling global functions....................................................................................................... 42
Searching and replacing............................................................................................................. 44

DEXTERITY UTILITIES i
C O N T E N T S

Chapter 5: Resource Utilities.................................................................................. 47


Changing the dictionary core ................................................................................................... 48
Updating series resources ......................................................................................................... 50

Chapter 6: Inquiry Utilities........................................................................................ 53


Viewing form information ........................................................................................................ 54
Viewing resource information.................................................................................................. 55

Chapter 7: Dictionary Utilities .............................................................................. 57


Synchronizing a dictionary....................................................................................................... 58
Using the packaging utilities.................................................................................................... 59
Compressing dictionaries ......................................................................................................... 60
Creating chunk dictionaries ..................................................................................................... 61
Comparing dictionaries............................................................................................................. 67
Adding product information.................................................................................................... 69
Extracting .................................................................................................................................... 72
Expanding windows.................................................................................................................. 74
SQL Compatibility ..................................................................................................................... 75
Auto-Chunk ................................................................................................................................ 78
Converting a user interface....................................................................................................... 82
Changing Evaluate After .......................................................................................................... 90

Part 3: Report Reference ........................................................................................ 94


Printing reports .......................................................................................................................... 94
Information about the sample reports .................................................................................... 94
Reports summary....................................................................................................................... 95
Forms Report ............................................................................................................................ 101
Reports Report.......................................................................................................................... 104
Tables Report ............................................................................................................................ 106
Global Functions Report ......................................................................................................... 109
Global Procedures Report ........................................................................................................ 111
Global Resources Report ..........................................................................................................113
Local Resources Report ............................................................................................................116
Resource Lists ............................................................................................................................119
Global Resource Usage Report............................................................................................... 122
Local Resource Usage Report ................................................................................................. 126

ii DE X TE R I T Y U T IL IT IE S
C O N T E N T S

Linked Prompt Report ............................................................................................................. 129


Diagnostics Report (Emergency Diagnostics) ...................................................................... 132
Summary Reports ..................................................................................................................... 137
Cross Link Analysis Report..................................................................................................... 140
Prompt Overflow Report......................................................................................................... 142
Referential Diagnostics Report ............................................................................................... 144
Table Relationships Validation Report .................................................................................. 147
Resource ID Validation Report ............................................................................................... 149

Appendix .................................................................................................................................. 152


Appendix A: Dictionary Structure .................................................................. 153
Parts of a dictionary.................................................................................................................. 154
Types of modules ...................................................................................................................... 155
Dictionary cores ........................................................................................................................ 155
Resources stored in modules................................................................................................... 157
Form modules ........................................................................................................................... 158
Report modules......................................................................................................................... 158

Glossary ..................................................................................................................................... 159

Index............................................................................................................................................... 165

DEXTERITY UTILITIES iii


iv DE X TE R I T Y U T IL IT IE S
INTRODUCTION
Introduction
Welcome to Microsoft® Dexterity Utilities, an integral component of the
Dexterity development system. Dexterity Utilities provides utilities and
reports that help you manage dictionaries created with Dexterity. You’ll use
the various utilities and reports in Dexterity Utilities throughout the
application development process.

What’s in this manual


Following is a list of the parts of the Dexterity Utilities manual, with a short
description of each.

• Part 1, Basics, explains how to get started with Dexterity Utilities and
introduces terms and concepts used in this manual. The Dexterity Utili-
ties interface is also described.

• Part 2, Utility Reference, describes the various transfer, script, resource,


inquiry and dictionary utilities that are available in Dexterity Utilities.

• Part 3, Report Reference, describes the various reports that are available
in Dexterity Utilities.

What’s new in Dexterity Utilities


A scrolling window update feature has been added to the user interface
conversion utility. This utility will properly set the SetChangeFlag property
for scrolling window fields.

The Product Information window and Compare Dictionaries window have


been updated to reflect the new method of updating forms and reports
dictionaries.

New Several other additions and changes available with this version of Dexterity
Utilities are indicated throughout the manual by the New symbol.

2 DE X T E R I T Y U T I L I T I E S
I N T R O D U C T IO N

Symbols and conventions


To help you use the Dexterity Utilities documentation more effectively,
we’ve used the following symbols and conventions within the text to make
specific types of information stand out.

Symbol Description
The light bulb symbol indicates helpful tips, shortcuts
and suggestions.

Warnings indicate situations you should be aware of


when completing tasks with Dexterity Utilities.

Margin notes sum- Margin notes call attention to critical information, and
marize important direct you to other areas of the documentation where
information. a topic is explained.

New The New symbol indicates additions and changes


available with this release of Dexterity Utilities.

Convention Description
Part 1, Basics Bold type indicates the name of a part.
Chapter 4, “Script Quotation marks indicate a chapter name.
Utilities”
Applying formats Italicized type indicates a section name.
RUNTIME.EXE Words in uppercase indicate a file name.
Software Acronyms are spelled out the first time they’re used.
Development Kit
(SDK)
TAB or ALT+M Small capital letters indicate a key or a key sequence.

DEXTERITY UTILITIES 3
4 DE X T E R I T Y U T I L I T I E S
PART 1: BASICS
Part 1: Basics
Use this portion of the manual to become familiar with Dexterity Utilities.
The information is divided into the following chapters:

• Chapter 1, “Getting Started,” describes the components necessary to


run the utilities and explains how to start the utilities. It also includes a
list of the terms used in Dexterity Utilities and describes the different
methods of accessing dictionaries.

• Chapter 2, “The Dexterity Utilities Interface,” describes the toolbar and


menu options available in Dexterity Utilities.

Be sure to review this information before you begin using Dexterity


Utilities. Understanding the basic concepts will help you make better use of
the utilities and reports.

6 DE X T E R I T Y U T I L I T I E S
Chapter 1: Getting Started
You can begin using Dexterity Utilities immediately after you install it. This
chapter describes what files are required to run Dexterity Utilities and
introduces some new terms and concepts. Information is divided into the
following sections:

• Basic components
• Launching Dexterity Utilities
• Dexterity Utilities terms
• Working with dictionaries

Basic components
When you installed Dexterity, you also should have installed Dexterity
Utilities. The following table lists the files that are necessary to run
Dexterity Utilities.

File Description
DEXUTILS.EXE The Dexterity Utilities application.
DEXUTILS.DIC A dictionary used by the Dexterity Utilities
application.
DEX.DIC The dictionary used by Dexterity and the
runtime engine. Dexterity Utilities uses
shared code from this dictionary.
DEXUTILS.CHM The help file for Dexterity Utilities.

If the appropriate files haven’t been installed, refer to the installation


instructions for information about installing Dexterity Utilities.

We recommend that you install Dexterity Utilities in the same location as


Dexterity.

Launching Dexterity Utilities


To ensure that Dexterity Utilities will function properly, the Dexterity
Utilities application, its dictionary, and the DEX.DIC dictionary must be in
the same location. To start Dexterity Utilities, locate and double-click the
Dexterity Utilities icon in the folder where you installed Dexterity.

DEXTERITY UTILITIES 7
PA RT 1 B A S I C S

Dexterity Utilities terms


Several terms specific to Dexterity Utilities are used in this manual. You
may want to familiarize yourself with them before beginning to use this
application.

Block A block is the smallest element of a dictionary. All of the resources


in the dictionary and internal information about the dictionary are
composed of blocks.

Chunk dictionary A dictionary that contains only portions, or


“chunks,” of information from a complete dictionary. Chunk dictionaries
allow large dictionaries to be divided into more manageable pieces for
delivery to customers. The runtime engine “unchunks” or merges the
chunk dictionaries to recreate the complete dictionary. Chunk dictionaries
are also used to update dictionaries.

Compile To run a script through a compiler. A compiler translates script


instructions into a language that the computer can understand. Once the
script has been compiled, the instructions within the script can be
completed.

Compress The process of removing unneeded information (such as


script source) and unused blocks from dictionaries. Dictionaries are
typically compressed before being sent to customers.

Core module A group of related resources in a Dexterity dictionary that


are used by several parts of the application. Resources such as fields, data
types or strings are stored in core modules.

Core resources Resources such as strings, data types or global fields


that are used by several parts of the application.

Destination dictionary The dictionary to which resources, strings and


messages, windows, and dictionary modules will be transferred.

Dictionary module A group of related resources, such as those for a


form or a report, that make up a subset of a larger dictionary. There are
three types of dictionary modules: core modules, form modules and report
modules.

Editable dictionary A dictionary that you can access in a read/write


manner.

8 DE X T E R I T Y U T I L I T I E S
C H A P T E R 1 G E T TI N G S TA R T E D

Extract To copy the resources created for a third-party application from


the Dynamics.dic dictionary to a new dictionary, excluding any main
product resources.

Extracted dictionary The dictionary that is created when third-party


resources are copied from the development dictionary to a new dictionary.

Resource An independent object such as a field, table, window or form,


used to create Dexterity applications.

Series A means of grouping tables, table groups, forms and reports into
categories. Dexterity Utilities allows you to generate reports and specify
resources to work with based upon series.

Series resources Lists containing the names of forms, reports, tables


and table groups in an application dictionary. These lists are used for
security, the Work menu, palettes and table maintenance.

Synchronize The process of checking all relationships between resources


in a dictionary and recalculating buffer sizes.

Source dictionary A read-only dictionary that is used as the source


when transferring resources to a destination dictionary or generating
dictionary reports.

Transfer To copy specified resources from a source dictionary to a


destination dictionary.

DEXTERITY UTILITIES 9
PA RT 1 B A S I C S

Working with dictionaries


To effectively use Dexterity Utilities, you must understand how it works
with dictionaries. A dictionary can be accessed in one of three ways:

• A source dictionary is opened in read-only mode. You’ll open a


dictionary as a source dictionary when you want to generate reports
about the dictionary or when you want to transfer resources from one
dictionary to another dictionary.

• An editable dictionary is opened in read/write mode. You’ll open a


dictionary as an editable dictionary when you want to update or mod-
ify resources in it.

• A destination dictionary is opened in write mode. You’ll open a


dictionary as a destination dictionary when you want to transfer
resources to it from a source dictionary.

You can’t open a dictionary in more than one mode at a time. For instance, you
can’t open the same dictionary as both a source and editable dictionary at the same
time. Also, you can’t open a dictionary with Dexterity Utilities if the dictionary is
in use by another application.

You can close a single dictionary by choosing the appropriate Close option
from the File menu. All dictionaries are closed when you quit Dexterity
Utilities. Dictionaries are also closed automatically when you open a
different dictionary in the same mode. For example, if Dictionary A is open
as a source dictionary, and you choose to open Dictionary B as a source
dictionary, Dictionary A will be closed automatically.

You can use the Dictionaries menu to help keep track of which dictionaries are open.

10 DE X TE R I T Y U T IL IT IE S
Chapter 2: The Dexterity Utilities Interface
This portion of the documentation describes the interface for Dexterity
Utilities. It is divided into the following sections:

• The main menu


• The toolbar
• The menu bar

The main menu


When you start Dexterity Utilities, the main menu will appear. This
window allows you to access all of the utilities and reports that are part of
Dexterity Utilities. The main menu is shown in the following illustration:

The menu bar includes


the standard operating
system menus and the
Dexterity Utilities menus.

The toolbar includes


buttons that allow you to
access the utilities and
reports in Dexterity Utilities.

DEXTERITY UTILITIES 11
PA RT 1 B A S I C S

The toolbar
Each button that appears in the Dexterity Utilities toolbar represents one of
the categories of operations you can perform. The following table lists the
buttons on the toolbar and gives a short description of each:

This button Allows you to do this


Transfer items from a source dictionary to a destination
dictionary.

Compile selected scripts in the dictionary and search and


replace items in scripts.

Generate various reports providing information about the


dictionary.

Work with resources in a dictionary.

View lists of forms, tables and other resources in a dictionary.

Perform various utility procedures on a dictionary.

The individual utilities and reports accessed using these buttons are
described in Part 2, Utility Reference, and Part 3, Report Reference.

The drop-down list on the right side of the toolbar serves two purposes:

• It sets the default series. Any place in Dexterity Utilities where the
series can be specified will default to the same setting as the drop-down
list on the toolbar.

• It specifies the dictionary core in which new core resources will be


created. Refer to Appendix A, “Dictionary Structure,” for more infor-
mation about core resources and dictionary cores.

12 DE X TE R I T Y U T IL IT IE S
C H A P T E R 2 TH E D EX T E R IT Y U TI LIT I ES IN T E R F AC E

The menu bar


This section describes the Dexterity Utilities menu items available.

File: Open Source Dictionary


This menu item allows you to select a dictionary to open as a source
dictionary. Only one source dictionary can be open at a time.

File: Close Source Dictionary


This menu item closes the current source dictionary, if one is open.

File: Open Editable Dictionary


This menu item allows you to select a dictionary to open as an editable
dictionary. Only one editable dictionary can be open at a time.

File: Close Editable Dictionary


This menu item closes the current editable dictionary, if one is open.

File: Open Destination Dictionary


This menu item allows you to select a dictionary to open as a destination
dictionary. Only one destination dictionary can be open at a time.

File: Close Destination Dictionary


This menu item closes the current destination dictionary, if one is open.

File: Create New Dictionary


This menu item allows you to create a new dictionary.

File: Close Window


This menu item closes the currently active window.

File: Exit
This menu item allows you to exit Dexterity Utilities.

Edit: Undo
This menu item will undo the last cut, copy, paste, clear or keyboard entry
in an editable field.

Edit: Cut/Copy/Paste
These menu items allow you to cut, copy or paste text in editable fields.

Edit: Clear
This menu item allows you to remove text from an editable field.

DEXTERITY UTILITIES 13
PA RT 1 B A S I C S

Edit: Select All


This menu item allows you to select the contents of an editable field.

Macro: (all)
This menu allows you to record and play macros in Dexterity Utilities. You
can use macros to automate common utility tasks. Refer to Chapter 34,
“Testing Your Application,” in Volume 2 of the Dexterity Programmer’s
Guide for more information about the macro system.

Windows:
This menu displays a list of the windows currently open in Dexterity
Utilities. Selecting a window from this menu will make the window active.

Dictionaries:
This menu displays a list of the dictionaries currently open in Dexterity
Utilities. Its purpose is only to list the open dictionaries.

Help: Lookup
This menu item opens any lookup window for the current field.

Help: Contents
This menu item displays the contents topic for Dexterity Utilities online
help.

Help: Search for Help On


This menu item displays the search window for the help system, allowing
you to search the Dexterity Utilities online help.

Help: Window Help


This menu item displays help for the current window in Dexterity Utilities.

Help: How to Use Help


This menu item displays help information describing how to use the help
system.

Help: Online Manuals


This menu item lists the online manuals available for Dexterity. The
manuals are in Adobe Acrobat Portable Document (PDF) format.

Help: About Dexterity Utilities


This menu item displays the About Dexterity Utilities window.

14 DE X TE R I T Y U T IL IT IE S
PART 2: UTILITY REFERENCE
Part 2: Utility Reference
Use this portion of the documentation to learn about the various utility
procedures in Dexterity Utilities. The information is divided into the
following chapters:

• Chapter 3, “Transfer Utilities,” describes the utilities used to transfer


resources, strings and messages, windows, and dictionary modules
from one dictionary to another. It also describes how to transfer third-
party resources from a Dynamics.dic dictionary to a newer version of
the dictionary.

• Chapter 4, “Script Utilities,” describes how to compile selected form


scripts, procedures and functions in your application. It also describes
how to search for and replace specified text in scripts.

• Chapter 5, “Resource Utilities,” describes how to change the core for


core resources and update series resources.

• Chapter 6, “Inquiry Utilities,” explains how to display information


about forms and other resources in a dictionary.

• Chapter 7, “Dictionary Utilities,” explains how to synchronize and


compress dictionaries. Utilities to extract third-party resources from a
Dynamics.dic dictionary, add product information to a dictionary, cre-
ate chunk dictionaries for installation, and compare dictionaries are
described. In addition, utilities used to create an international version
of an application, test for SQL compatibility, and update your applica-
tion’s interface are described.

16 DE X TE R I T Y U T IL IT IE S
P A R T 2 U TI LI TY R E FE R E N C E

Utility Summary
The following table summarizes the utilities available for various resources.

Category Action Utility to use


Composites Transferring between Transfer Resources utility. Select
dictionaries. Composites as the resource type.
Constants Transferring between Transfer Resources utility. Select
dictionaries. Constants as the resource type.
Data Types Transferring between Transfer Resources utility. Select Data
dictionaries. Types as the resource type.
Dictionaries Adding product information. Product Information utility.
Comparing two dictionaries. Compare Dictionaries utility.
Compressing dictionaries. Compress Dictionary utility.
Creating chunk dictionaries. Auto-Chunk utility or the Create Chunk
Dictionary utility.
Diagnosing dictionary Referential Diagnostics utility.
problems.
Extracting third-party resources Extract utility.
from the Dynamics.dic
dictionary.
Preparing an application for SQL Compatibility utility.
use with SQL.
Preparing a dictionary for an Compare Dictionaries utility.
update.
Transferring an extracted Developer Update utility.
dictionary back into the
Dynamics.dic dictionary.
Fields Transferring between Transfer Resources utility. Select Fields
dictionaries. as the resource type.
Formats Transferring between Transfer Resources utility. Select
dictionaries. Formats as the resource type.
Forms Displaying information about. Form Inquiry utility.
Transferring between Transfer Resources utility. Select
dictionaries. Forms as the resource type.
Functions Compiling global functions. Compile Global Functions utility.
Compiling form-level functions. Compile Form Scripts utility.
Searching function scripts. Search and Replace utility.
Transferring between Transfer Resources utility. Select
dictionaries. Global Functions as the resource type.
Global Variables Transferring between Transfer Resources utility. Select
dictionaries. Global Variables as the resource type.

DEXTERITY UTILITIES 17
PA RT 2 U T I L I T Y R E F ER EN C E

Category Action Utility to use


Messages Transferring between Transfer Resources utility. Select
dictionaries. Messages as the resource type.
Updating for international Transfer Strings and Messages utility.
applications.
Metafiles Transferring between Transfer Resources utility. Select
dictionaries. Metafiles as the resource type.
Pictures Transferring between Transfer Resources utility. Select
dictionaries. Generic Pictures as the resource type.
Procedures Compiling global procedures. Compile Global Procedures utility.
Compiling form-level Compile Form Scripts utility.
procedures.
Searching procedure scripts. Search and Replace utility.
Transferring between Transfer Resources utility. Select
dictionaries. Global Procedures as the resource
type.
Reports Transferring between Transfer Resources utility. Select
dictionaries. Reports as the resource type.
Resources Changing core series of core Change Core utility.
resources.
Removing unused resources Global Resource Usage report
from a dictionary. or
Local Resource Usage report.
Updating series resource lists. Series Resources utility.
Scripts Compiling form scripts. Compile Form Scripts utility.
Compiling global functions. Compile Global Functions utility.
Compiling global procedures. Compile Global Procedures utility.
Searching scripts. Search and Replace utility.
Transferring global functions Transfer Resources utility. Select
between dictionaries. Global Functions as the resource type.
Transferring global procedures Transfer Resources utility. Select
between dictionaries. Global Procedures as the resource
type.
Strings Transferring between Transfer Resources utility. Select
dictionaries. Strings as the resource type.
Updating for international Transfer Strings and Messages utility.
applications.
Tables Transferring between Transfer Resources utility. Select
dictionaries. Tables as the resource type.
Table Groups Transferring between Transfer Resources utility. Select Table
dictionaries. Groups as the resource type.

18 DE X TE R I T Y U T IL IT IE S
P A R T 2 U TI LI TY R E FE R E N C E

Category Action Utility to use


Windows Expanding the size of windows Expand Windows utility.
and fields.
Transferring between Transfer Window utility.
dictionaries.
Updating a user interface. User Interface Conversion utility.

DEXTERITY UTILITIES 19
20 DE X TE R I T Y U T IL IT IE S
Chapter 3: Transfer Utilities
The Transfer utilities allow you to transfer resources, strings and messages,
windows, and dictionary modules between dictionaries. You can also
transfer third-party resources from a Dynamics.dic development dictionary
to a newer version of the dictionary.

To perform a transfer, Before beginning a transfer, you must choose a source and a destination
open a source and a dictionary. To open a source dictionary, choose Open Source Dictionary
destination dictionary from the File menu and select the appropriate dictionary in the dialog box
by choosing each item that will appear. To open a destination dictionary, choose Open Destination
from the File menu and Dictionary from the File menu and select a dictionary using the same
selecting the method.
appropriate dictionary.
If you want to transfer resources, strings and messages, windows, or
dictionary modules into a new dictionary, choose Create New Dictionary
from the File menu and specify the name and location of the dictionary in
the dialog box that will appear. Then choose Open Destination Dictionary
from the File menu and select the new dictionary.

Transferring items only copies them from the source dictionary to the destination
dictionary. Transferring doesn’t remove items from the source dictionary.

The following topics are discussed:

• Transferring resources
• Transferring strings and messages
• Transferring windows
• Transferring dictionary modules
• Developer update

DEXTERITY UTILITIES 21
PA RT 2 U T I L I T Y R E F ER EN C E

Transferring resources
Resources are elements of application dictionaries, such as forms, tables
and data types, that you’ve created using Dexterity. Transferring resources
allows you to save time by copying a resource from one dictionary to
another, instead of re-creating it in the destination dictionary.

To begin a transfer, select a source and a destination dictionary, then choose


Resources from the Transfer menu to display the Transfer Resources
window, shown in the following illustration.

These are the options


for the transfer.

These drop-down lists


specify the series and type
of resource to transfer.

The resources to transfer


will appear in this list.

1. Mark transfer options.


Mark the appropriate transfer options for the resources you want to
transfer. The selections you make will be applied to all transferred
resources.

Skip Related Tables Mark this option if you are transferring tables,
and you want to transfer only the selected tables. Dexterity Utilities
won’t transfer tables related to the selected tables.

22 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Replace Referenced Resources This applies only to global fields,


global data types and formats that are referenced by other resources. If
this option is marked and the resources you’re transferring reference
global fields, global data types or formats that already exist in the
destination dictionary, these referenced resources will be replaced. If
this option isn’t marked, only resources with names that are different
from resources in the destination dictionary will be added; the existing
referenced resources in the destination dictionary won’t be replaced.

If you replace referenced resources, be sure the Synchronize Dictionary option


is marked. This will ensure any updated resources will be referenced properly
in the destination dictionary.

As an example, suppose you’re transferring a form that uses the


Customer Number field. If the Customer Number field doesn’t exist in
the destination dictionary, it will be added to the destination dictionary.
If the Customer Number field already exists in the destination
dictionary, and Replace Referenced Resources isn’t marked, the
Customer Number field won’t be replaced in the destination dictionary.
If the Customer Number field already exists in the destination
dictionary, and Replace Referenced Resources is marked, the field will
be replaced in the destination dictionary.

In the previous example, you would mark the Replace Referenced


Resources option if you had made changes to the Customer Number
field, data type or format and wanted these changes transferred to the
destination dictionary and used for the Customer Number field that
already existed there.

If you’re transferring resources that don’t already exist in a destination


dictionary or if the global fields, global data types or formats referenced
by the resources you’re transferring haven’t changed, don’t mark
Replace Referenced Resources. In these cases, transferring referenced
resources won’t serve any purpose and the transfer could take much
more time.

If you mark the Replace Referenced Resources option, all referenced resources
for the items you’re transferring will be replaced. If you want to replace
referenced resources for only a certain resource such as an individual field,
transfer the resources individually.

DEXTERITY UTILITIES 23
PA RT 2 U T I L I T Y R E F ER EN C E

Create Series Resources Mark this option if you want to have


series resources automatically created after the transfer and compile
processes are completed. Series resources are lists of the forms, reports,
tables and table groups in an application. These lists are used for
security, palettes, table maintenance and the Work menu. Series
resources are discussed in further detail in Chapter 5, “Resource
Utilities.”

Synchronize Dictionary Mark this option if you want to


automatically synchronize the destination dictionary as the final
process in the transfer. Synchronizing a dictionary will recalculate
buffer sizes, check all relationships between resources and ensure the
proper data types and fields are referenced throughout the dictionary.
Synchronizing is especially necessary if you’ve replaced referenced
resources in the destination dictionary.

If this option isn’t marked, you should synchronize the dictionary once
the transfer is complete by choosing Synchronize from the Utilities
menu.

Compile Scripts Mark this option if you want all the scripts for the
transferred items to be compiled after they’ve been transferred to the
destination dictionary. If you mark the Compile Scripts option, a
message will be displayed indicating whether all of the scripts
compiled. If all scripts weren’t compiled, refer to the transfer report that
will be created for a list of the compiler errors that occurred.

Because resources could be renumbered when they’re transferred, any scripts


transferred must be compiled when they’re transferred to avoid “Not Found”
errors when you attempt to use the destination dictionary. If any scripts will be
transferred, be sure to mark the Compile Scripts option.

If the Compile Scripts option isn’t marked, the transferred scripts can
be compiled using the Compile Form Scripts, Compile Global
Procedures and Compile Global Functions utilities, which are discussed
in Chapter 4, “Script Utilities.”

24 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Compiler Errors Only Mark this option if the only status messages
you want printed on the transfer report are compiler errors. If this
option isn’t marked, all status messages will be printed, including
compiler error messages.

Compile Debug Mark this option to include debugging information


in scripts, and to compile the debug and assert statements in your code.
If you don’t mark this option, you won’t be able to use the Script
Debugger, and the debug and assert statements won’t be executed. We
recommend unmarking this option in the final version of your
application to ensure optimal script performance.

2. Select a series and resource type.


Select the series to which the resources being transferred belong. For
example, if the resources to be transferred are part of the Sales series,
select Sales and the existing Sales series resources will appear in the
Resources list.

You can set a default series prior to opening the Transfer Resources window.
Select the appropriate series from the Series list located on the toolbar. Once
specified, the selected series will appear as the default whenever a series can be
selected in a window.

Select the resource type that you want to transfer from the Resource
Type list. Once the type is selected, you can select specific resources of
that type to transfer.

You can transfer resources from different series and of different types at
the same time. Insert the appropriate resources, as described in the next
step, then select a different series or type.

Use the Show drop-down list to specify whether main product, third-
party, or all resources are displayed in the Resources list.

3. Select resources to transfer.


Select the resource you want to transfer by highlighting the resource in
the Resources list and clicking Insert to display it in the Selected
Resources list. Double-clicking the selection will perform the same
function. Click the Insert All button to transfer all listed resources. You
can use the Remove and Remove All buttons to remove items from the
Selected Resources list.

DEXTERITY UTILITIES 25
PA RT 2 U T I L I T Y R E F ER EN C E

Resources are transferred based upon their names. If a resource of the


same type with the same name exists in the destination dictionary, it
will be replaced. The resource ID for the replaced resource in the
destination dictionary will not change. If the resource doesn’t exist in
the destination dictionary, it will be added and will be assigned the next
available resource ID for that type of resource. It is very likely that the
resource ID of the resource in the destination dictionary will be
different than it was in the source dictionary.

When selecting the resources to transfer, keep in mind that many


resources related to the resource you’re transferring will also be
transferred. For example, when you transfer a field resource, the data
type, composite, format and static picture resources for the field are
transferred as well; you don’t have to transfer the related resources
individually. The following table lists the additional resources that are
transferred when you transfer a specific resource.

Resource being transferred Additional resources transferred


Composites Fields and data types for fields in the
composite
Constants None
Data types Composite for data type
Format for data type
Static pictures or text
Fields Data type for field
Composite for data type
Format for data type
Static pictures or text
Forms Windows
Global fields used in the form
Data types for global fields\
Composites for data types
Formats for data types
Static pictures or text
Local data types and local fields
Strings in windows
Pictures and native pictures
Form, window and field scripts
Form functions
Form procedures
Form menus and scripts
Scrolling windows and scripts
Tables attached to the form
Any tables related to attached tables

26 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Resource being transferred Additional resources transferred


Formats None
Functions None
Generic pictures None
Globals Global field for the global variable
Data type for field
Composite for data type
Format for data type
Messages None
Metafiles None
Procedures None
Reports Strings used for the report
Tables attached to the report
Table relationships
Any related tables
Strings None
Tables Global fields in the table
Data types for global fields
Composites for fields
Formats for fields
Table relationships
Any related tables *
Keys for the table
Restrictions applied to the table
Table groups Tables in the table group
Table relationships
Any related tables
* If the Skip Related Tables option is not marked

4. Set the series list on the toolbar.


Refer to Appendix A, The series list on the right side of the toolbar indicates the dictionary
“Dictionary Structure,” core in the destination dictionary in which any new core resources will
for information about be created. Set this list to indicate the appropriate dictionary core. The
dictionary cores and dictionary core any new core resources are created in won’t affect
core resources. whether the transfer is successful, but it’s a good idea to create the core
resources for your application in one dictionary core because they’ll be
easier to manage.

DEXTERITY UTILITIES 27
PA RT 2 U T I L I T Y R E F ER EN C E

5. Transfer the selected resources.


Click the Transfer button to transfer the resources in the Selected
Resources list to the destination dictionary. The Report File Name
dialog box will appear. Enter the name and location for the Transfer
Resource Status Report file, then click OK to continue the transfer
process, or click Cancel to return to the Transfer Resources window.

6. Use the status report to verify the transfer.


Search the Dexterity Once the transfer is complete, the status report will be printed to a text
online help for file. This report will list everything that was transferred and whether it
Compiler messages to was simply added to the destination dictionary or whether it replaced
see a list of compiler an existing resource in the destination dictionary. It also will list any
error messages. compiler errors that occurred if you chose to compile scripts that were
transferred.

The most common problem when transferring resources is errors


compiling scripts. Use the Transfer Resource Status Report to track
compiling errors. Common reasons for compiling errors include:

Refer to Chapter 4, • You haven’t transferred all necessary resources to the destination
“Script Utilities,” for dictionary, such as constants, global variables, or other forms.
information about Transfer these additional resources and then use the Compile Form
using the Compile Scripts, Compile Global Procedures and Compile Global Functions
Form Scripts, Compile utilities to compile scripts.
Global Procedures and
Compile Global • You used the Save Source menu item while in the script editor, so
Functions utilities. only the script source was saved. Determine whether you trans-
ferred any scripts for which only source was saved. If these scripts
contain any errors, they won’t be compiled properly.

28 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Transferring strings and messages


A string is any static text that appears as a prompt, static text value,
window display name, and so on. A message is created using the Messages
window in Dexterity and referenced using the getmsg() function.

This utility is used only The Transfer Strings and Messages utility is used to transfer all strings and
for making interna- messages in a dictionary to a separate dictionary so they can be updated for
tional versions of an international versions of an application. After they’ve been updated, the
application. strings and messages are transferred back into the application dictionary
using this same utility.

Refer to Chapter 23, The resource IDs of the strings and messages, not the string or message
“Strings,” in Volume 1 content, are used to determine whether a string or message exists in the
of the Dexterity destination dictionary. Also, string and message resources aren’t
Programmer’s Guide renumbered when they’re transferred using the Transfer Strings and
for information about Messages utility. For these reasons, we recommend that you use this utility
the Strings resource. only to transfer strings and messages from an application dictionary to a
separate dictionary for updating using the Strings resource, and then back
into the original application dictionary. If you want to transfer strings or
messages from one dictionary to another for other purposes, use the
Transfer Resources utility.

To begin a transfer, select a source and a destination dictionary, then choose


Strings and Messages from the Transfer menu to display the Transfer
Strings and Messages window, shown in the following illustration.

These lists select the type


of resources to transfer
and how the resources
will be transferred.

1. Select resources to transfer.


Specify whether you want to transfer strings, messages or both by
making the appropriate selection from the Transfer Resources list.

DEXTERITY UTILITIES 29
PA RT 2 U T I L I T Y R E F ER EN C E

2. Select a transfer type.


Use the Transfer Type list to specify whether only new strings or
messages will be added to the destination dictionary, or whether
existing strings or messages will be replaced and new ones added. If
you select Add Only, only those strings and messages without
corresponding strings and messages (those with the same resource IDs)
in the destination dictionary will be transferred. If you select Replace
and Add, any string or message in the destination dictionary that has
the same resource ID as one being transferred will be replaced, and any
new strings or messages will be added.

3. Transfer the selected resources.


Click Transfer to transfer the strings, messages or both from the source
dictionary to the destination dictionary. The Report File Name dialog
box will appear. Enter the name and location for the Transfer Strings
and Messages Status Report file, then click OK to continue the transfer
process, or click Cancel to return to the Transfer Strings and Messages
window.

4. Use the status report to verify the transfer.


Once the transfer is complete, the status report will be printed to a text
file. The report lists everything that was transferred and whether it was
simply added to the destination dictionary or replaced an existing
string or message.

30 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Transferring windows
Dexterity Utilities allows you to transfer a single window from a form in a
source dictionary to a form having the same name in a destination
dictionary. This utility allows new windows in multi-window forms that
are prototyped by one programmer to be transferred to the dictionary of
another programmer without affecting any other work that may have been
done in the destination dictionary.

If the window exists in the destination dictionary, it will be replaced;


otherwise, it will be added to the form it belongs to. After a window is
transferred in this manner, use the Compile Form Scripts utility described
in Chapter 4, “Script Utilities,” to compile any window or field scripts that
were transferred.

To begin a transfer, select a source and a destination dictionary, then choose


Window from the Transfer menu to display the Transfer Window window,
shown in the following illustration.

The window selected in


this list will be transferred
to the destination
dictionary.

1. Select the window to transfer.


From the Forms list, select the form containing the window you want to
transfer. The windows in the form will appear in the Windows list.
Select the window you want to transfer.

DEXTERITY UTILITIES 31
PA RT 2 U T I L I T Y R E F ER EN C E

2. Transfer the selected window.


Click the Transfer button to transfer the selected window to the
destination dictionary. The Report File Name dialog box will appear.
Enter the name and location for the Transfer Window Status Report file,
then click OK to continue the transfer process, or click Cancel to return
to the Transfer Window window.

Refer to Chapter 4, When you transfer a window, you’re also transferring any scrolling
“Script Utilities,” for windows, global fields, global data types, local fields, local data types,
information about composites, formats, strings and pictures used for the window that
compiling window and don’t already exist in the destination dictionary. Any window, scrolling
field scripts. window or field scripts will be transferred as well, though they won’t
be compiled. Use the Compile Form Scripts utility to compile these
scripts.

If a window exists in the destination dictionary with the same name as the one
being transferred, that window will be replaced when the transfer occurs. For
that reason, we recommend that you be aware of the windows included in each
dictionary before performing the transfer. The Forms option in the Inquiry
menu allows you to view names of windows associated with different forms
within a dictionary.

3. Use the status report to verify the transfer.


Once the transfer is complete, the status report will be printed to a text
file. The report lists everything that was transferred and whether it was
added to the destination dictionary or replaced an existing resource.

32 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Transferring dictionary modules


Refer to Appendix A, The transfer dictionary module utility is useful when creating a “subset”
“Dictionary Structure,” dictionary without the slower process of transferring and compiling.
for information about
dictionary modules For example, you may want to create a version of an application dictionary
and the structure of a that doesn’t include certain forms or reports. To do so, you would use this
dictionary. utility to transfer all dictionary modules from the source dictionary to a
newly created destination dictionary, with the exception of the form
modules and report modules for the items you’re not including.

This utility is not intended to be used as a general-purpose tool to transfer


resources between dictionaries. It can be used to transfer modules between
dictionaries only if the resource IDs for all resources are the same in both the
source and destination dictionaries.

The transfer dictionary module utility is also used when creating


applications that integrate with Microsoft Dynamics™ GP. This utility is
used to transfer the dictionary modules for modified forms and reports
from the Dynamics.dic dictionary to a third-party extracted dictionary.
Refer to the Integration Guide for more information about using this utility.

To begin a transfer, select a source and a destination dictionary, then choose


Dictionary Module from the Transfer menu to display the Transfer
Dictionary Module window, shown in the following illustration.

These lists specify the series


and module type of the
modules displayed in the
Source Dictionary Modules list.
The Transfer button copies
the selected module to the
destination dictionary.
The Delete button removes
the selected module from the
destination dictionary.

1. Select a series and module type.


Select the appropriate series from the Series list, then select the module
type you want to transfer from the Dictionary Module Type list. The

DEXTERITY UTILITIES 33
PA RT 2 U T I L I T Y R E F ER EN C E

modules of the specified type in that series will appear in the Source
Dictionary Modules list.

You can set a default series prior to opening the Transfer Dictionary Module
window. Select the appropriate series from the Series list located on the toolbar.
Once specified, the selected series will appear as the default whenever a series
can be selected in a window.

2. Transfer dictionary modules.


Select a module and click Transfer to transfer it to the destination
dictionary. Double-clicking a module also transfers it.

Clicking Transfer or All performs the actual transfer. To cancel the transfer,
you must individually delete any modules transferred to the destination
dictionary.

If you want to delete a module from the destination dictionary, select


the module name and click Delete.

The Dictionary Module Size and Total Size fields at the bottom of each
list show the size of the selected module, and the combined sizes of all
modules in the list.

3. Click Close to complete the transfer process.


Clicking Close will synchronize core tables in the destination dictionary
and close the Transfer Dictionary Module window. Synchronizing core
tables creates an internal directory in the destination dictionary so
resources can be accessed.

34 DE X TE R I T Y U T IL IT IE S
C H A P T E R 3 T R A N S F E R U T I L I T I E S

Developer update
The Developer Update utility is used to transfer third-party resources (all
those with resource IDs of 22,000 or greater) from an extracted dictionary
back into the Dynamics.dic dictionary. This can be useful if you have an
extracted dictionary that you created with the Extract utility, but no longer
have the development dictionary you used to create your third-party
product.

The Developer Update utility is no longer used to move integrating applications to


new versions of Microsoft Dynamics GP. You must now use the source code control
capabilities in Dexterity to update your integrating applications. Refer to Chapter
52, “Updating an Application,” in the Integration Guide for a complete description
of this process.

When you transfer an extracted dictionary back into the Dynamics.dic


dictionary, it’s essential that you are transferring resources into exactly the
same version of the Dynamics.dic dictionary that they were extracted from.
If the versions of the dictionary aren’t the same, you will encounter errors in
your application, such as incorrect strings being displayed.

When transferring an extracted dictionary, the Developer Update utility can


also remake any modifications you’ve made to alternate forms in Microsoft
Dynamics GP. To use this capability, you must have an original, unaltered
version of the Dynamics.dic dictionary available.

To begin an update, select the extracted dictionary containing third-party


resources as the source dictionary and the corresponding version of the
Dynamics.dic dictionary as the destination dictionary. Then choose
Developer Update from the Transfer menu to display the Developer Update
window, shown in the following illustration.

DEXTERITY UTILITIES 35
PA RT 2 U T I L I T Y R E F ER EN C E

1. Select alternate forms (optional).


If you made modifications to Microsoft Dynamics GP forms and want
those changes transferred to the destination dictionary, mark the
Alternate Forms option. A file dialog will appear, asking you to select
an editable dictionary. Select an unmodified Dynamics.dic dictionary
that is the same version as the dictionary containing your
modifications. The utility will use this unmodified dictionary as a
baseline to find out what modifications you made.

After a moment, the names of all the forms you modified will appear in
the Alternate Forms list. Select each form for which you want
modifications transferred and click Insert to display it in the Selected
Forms list.

2. Perform the transfer.


Click the Transfer button to transfer the third-party resources to the
destination dictionary and make modifications to any alternate forms
you have selected. The Report File Name dialog box will appear. Enter
the name and location for the Developer Update Status Report file, then
click OK to continue the process, or click Cancel to return to the
Developer Update window.

3. Use the status report to verify the transfer.


Once the transfer is complete, the status report will be printed to a text
file. This report lists all resources that were transferred to the
destination dictionary and any errors that occurred while updating
alternate forms.

Refer to Chapter 4, In most cases, your third-party application will work after it has been
“Script Utilities,” for transferred back into the Dynamics.dic dictionary. If your application
information about the can’t locate some resources, you may have to recompile your scripts in
Compile Form Scripts, the destination dictionary using the Compile Form Scripts, Compile
Compile Global Global Procedures and Compile Global Functions utilities.
Procedures and
Compile Global
Functions utilities.

36 DE X TE R I T Y U T IL IT IE S
Chapter 4: Script Utilities
The script utilities allow you to compile all scripts for a specific form or
compile the global procedures or global functions in an application
dictionary. You can also search for a specific text string and replace it with a
new string or you can simply search for a text string to find where it occurs
in scripts.

Before using the script utilities, you must choose an editable dictionary. To
open an editable dictionary, choose Open Editable Dictionary from the File
menu and select the appropriate dictionary in the dialog box that will
appear.

The following topics are discussed:

• Compiling form scripts


• Compiling global procedures
• Compiling global functions
• Searching and replacing

DEXTERITY UTILITIES 37
PA RT 2 U T I L I T Y R E F ER EN C E

Compiling form scripts


This utility compiles all scripts associated with a form, including form
procedure scripts, form function scripts, form pre and post scripts, window
scripts, scrolling window scripts, and all field scripts. Use this utility in the
following situations:

• If you used the Transfer Window utility to transfer a window into a dic-
tionary, use the Compile Form Scripts utility to compile the scripts for
the window.

• If you transferred forms into a dictionary using the Transfer Resources


utility, but didn’t have the Compile Scripts option marked, you’ll use
the Compile Form Scripts utility to compile those scripts.

• If you transferred resources into a dictionary using the Transfer


Resources utility, but some scripts didn’t compile because resources
were missing from the destination dictionary, use the Compile Form
Scripts utility to compile the uncompiled scripts after the missing
resources have been included.

• Before you send out an application, it’s a good idea to compile all
scripts using the Compile Form Scripts utility. This ensures that all
resources referenced by scripts are included in the dictionary, that the
latest version of scripts are being used, and that scripts don’t contain
syntax errors.

To begin compiling scripts for a form, select an editable dictionary, then


choose Compile Form Scripts from the Scripts menu to display the Compile
Form Scripts window, shown in the following illustration.

This list specifies the series


of the forms displayed in
the Forms list.

This is a list of the forms


in the specified series.

The scripts for the forms


in this list will be
compiled.

38 DE X TE R I T Y U T IL IT IE S
C H A P T E R 4 S C R I P T U T I L I T I E S

1. Select a series.
Select the series that includes the form for which scripts are being
compiled. The forms in that series will appear in the Forms list.

You can set a default series prior to beginning the compiling process. Select a
series from the Series list located on the toolbar. Once specified, the selected
series will appear as the default whenever a series can be selected in a window.

2. Select compiling options.


The following options control how the scripts will be compiled.

Compiler Errors Only Mark this option to include only compiler


error messages in the status report that is printed after the scripts are
compiled. Otherwise, all status messages will be saved to the report.

Compile Debug Mark this option to include debugging information


in scripts, and to compile the debug and assert statements in your code.
If you don’t mark this option, you won’t be able to use the Script
Debugger, and the debug and assert statements won’t be executed. We
recommend unmarking this option in the final version of your
application to ensure optimal script performance.

3. Select scripts to compile.


Select the scripts you want to compile by selecting each form name and
clicking Insert to add it to the list of selected forms. Double-clicking
your selection will perform the same function. You can select and
compile scripts from several series at one time. If you want to compile
scripts for all forms in the selected series, click the Insert All button.
You can use the Remove and Remove All buttons to remove forms from
the Selected Forms list.

4. Compile scripts.
Click the Compile button to compile the scripts for the selected forms.
The Report File Name dialog box will appear. Enter the name and
location for the Compile Form Scripts Status Report file, then click OK
to continue the compiling process, or click Cancel to return to the
Compile Form Scripts window.

5. Use the status report to verify that scripts compiled.


Search the Dexterity Once compiling is complete, the status report will be printed to a text
online help for file. This report lists each script along with a message that indicates
Compiler messages to whether the script was compiled successfully. If the script wasn’t
see a list of compiler compiled successfully, the message will indicate the compiler error that
error messages. occurred. If you mark Compiler Errors Only, only information about
scripts that couldn’t be compiled will appear in the report.

DEXTERITY UTILITIES 39
PA RT 2 U T I L I T Y R E F ER EN C E

Compiling global procedures


Refer to Compiling This utility is used to compile specified global procedures in an application
form scripts on dictionary. If your application uses global procedures, you may need to use
page 38 if you want to this utility under the following circumstances:
compile form
procedure scripts. • If you transferred global procedures using the Transfer Resources util-
ity, but didn’t have the Compile Scripts option marked, use the Com-
pile Global Procedures utility to compile those global procedures.

• If you transferred global procedures into a dictionary using the Transfer


Resources utility, but some global procedures couldn’t be compiled
because resources were missing from the destination dictionary, use the
Compile Global Procedures utility to compile the uncompiled global
procedures after the missing resources have been included.

• Before you send out your application, it’s a good idea to compile all
global procedures using the Compile Global Procedures utility. This
ensures that all resources referenced by the global procedures are
included in the dictionary, that the latest version of scripts are being
used, and that the global procedures don’t contain any syntax errors.

To begin compiling global procedures, select an editable dictionary, then


choose Compile Global Procedures from the Scripts menu to display the
Compile Global Procedures window, shown in the following illustration.

This list specifies the series


of the global procedures
displayed in the Scripts list.
This is a list of the global
procedures in the
specified series.

The global procedures in


this list will be compiled.

40 DE X TE R I T Y U T IL IT IE S
C H A P T E R 4 S C R I P T U T I L I T I E S

1. Select a series.
Select the series that includes the global procedures being compiled.
The global procedures in that series will appear in the Scripts list.

You can set a default series prior to beginning the compiling process. Select a
series from the Series list located on the toolbar. Once specified, the selected
series will appear as the default whenever a series can be selected in a window.

2. Select compiling options.


The following options control how the scripts will be compiled.

Compiler Errors Only Mark this option to include only compiler


error messages in the status report that is printed after the global
procedures are compiled. Otherwise, all status messages will be saved
to the report.

Compile Debug Mark this option to include debugging information


in scripts, and to compile the debug and assert statements in your code.
If you don’t mark this option, you won’t be able to use the Script
Debugger, and the debug and assert statements won’t be executed. We
recommend unmarking this option in the final version of your
application to ensure optimal script performance.

3. Select scripts to compile.


Select the global procedures to compile by selecting each one and
clicking Insert to add it to the list of selected scripts. Double-clicking a
script performs the same function. You can select and compile
procedures from several series at one time. To compile all global
procedures in the selected series, click Insert All. Use the Remove and
Remove All buttons to remove scripts from the Selected Scripts list.

4. Compile scripts.
Click the Compile button to compile the selected global procedures.
The Report File Name dialog box will appear. Enter the name and
location for the Compile Global Procedures Status Report file, then click
OK to continue the compiling process, or click Cancel to return to the
Compile Global Procedures window.

5. Use the status report to verify that scripts compiled.


Search the Dexterity Once compiling is complete, the status report will be printed to a text
online help for file. This report lists each global procedure along with a message that
Compiler messages to indicates whether it was compiled successfully. If the global procedure
see a list of compiler wasn’t compiled successfully, the message indicates the compiler error
error messages. that occurred. If you mark Compiler Errors Only, only information
about scripts that couldn’t be compiled will appear in the report.

DEXTERITY UTILITIES 41
PA RT 2 U T I L I T Y R E F ER EN C E

Compiling global functions


Refer to Compiling This utility is used to compile specified global functions in an application
form scripts on dictionary. If your application uses global functions, you may need to use
page 38 if you want to this utility under the following circumstances:
compile form function
scripts. • If you transferred global functions using the Transfer Resources utility,
but didn’t have the Compile Scripts option marked, use the Compile
Global Functions utility to compile those global functions.

• If you transferred global functions into a dictionary using the Transfer


Resources utility, but some global functions couldn’t be compiled
because resources were missing from the destination dictionary, use the
Compile Global Functions utility to compile the uncompiled global
functions after the missing resources have been included.

• Before you send out your application, it’s a good idea to compile all
global functions using the Compile Global Functions utility. This
ensures that all resources referenced by the global functions are
included in the dictionary, that the latest version of scripts are being
used, and that the global functions don’t contain any syntax errors.

To begin compiling global functions, select an editable dictionary, then


choose Compile Global Functions from the Scripts menu to display the
Compile Global Functions window, shown in the following illustration.

This list specifies the series


of the global functions
displayed in the Scripts list.
This is a list of the global
functions in the specified
series.

The global functions in


this list will be compiled.

42 DE X TE R I T Y U T IL IT IE S
C H A P T E R 4 S C R I P T U T I L I T I E S

1. Select a series.
Select the series that includes the global functions being compiled. The
global functions in that series will appear in the Scripts list.

You can set a default series prior to beginning the compiling process. Select a
series from the Series list located on the toolbar. Once specified, the selected
series will appear as the default whenever a series can be selected in a window.

2. Select compiling options.


The following options control how scripts will be compiled.

Compiler Errors Only Mark this option to include only compiler


error messages in the status report that is printed after the global
functions are compiled. Otherwise, all status messages will be saved to
the report.

Compile Debug Mark this option to include debugging information


in scripts, and to compile the debug and assert statements in your code.
If you don’t mark this option, you won’t be able to use the Script
Debugger, and the debug and assert statements won’t be executed. We
recommend unmarking this option in the final version of your
application to ensure optimal script performance.

3. Select scripts to compile.


Select the global functions to compile by selecting each one and clicking
Insert to add it to the list of selected scripts. Double-clicking a script
performs the same function. You can select and compile functions from
several series at one time. To compile all global functions in the selected
series, click Insert All. Use the Remove and Remove All buttons to
remove scripts from the Selected Scripts list.

4. Compile scripts.
Click the Compile button to compile the selected global functions. The
Report File Name dialog box will appear. Enter the name and location
for the Compile Global Functions Status Report file, then click OK to
continue the compiling process, or click Cancel to return to the Compile
Global Functions window.

5. Use the status report to verify that scripts compiled.


Search the Dexterity Once compiling is complete, the status report will be printed to a text
online help for file. This report lists each global function along with a message that
Compiler messages to indicates whether it was compiled successfully. If the global function
see a list of compiler wasn’t compiled successfully, the message indicates the compiler error
error messages. that occurred. If you mark Compiler Errors Only, only information
about scripts that couldn’t be compiled will appear in the report.

DEXTERITY UTILITIES 43
PA RT 2 U T I L I T Y R E F ER EN C E

Searching and replacing


This utility allows you to search script source for a specified text string and,
if you wish, replace the text string with another. You can select to search all
forms’ scripts, a selected form’s scripts, any global procedures, any global
functions or a combination of these. This utility is useful if you’ve changed
the name of a resource, such as a field or window, and need to update the
references to the resource in your application’s scripts.

To begin a search, select an editable dictionary, then choose Search and


Replace from the Scripts menu to display the Search and Replace window,
shown in the following illustration.

These lists specify the


type and series of the
resources displayed in the
Resources list.

This is a list of the forms,


global procedures, or
global functions in the
specified series.

The scripts in this list


will be searched.

1. Enter the text to search for.


In the Search For field, enter the text that you want to find. The entry
can be up to 255 characters. Note that the search is case-sensitive.

2. Enter a replacement string (optional).


Enter a replacement string, if desired. The entry can be up to 255
characters. If this field is left blank, the occurrences of the string you’re
searching for will be listed on the status report, but no text will be
replaced.

44 DE X TE R I T Y U T IL IT IE S
C H A P T E R 4 S C R I P T U T I L I T I E S

Use caution when replacing strings using this utility. Any occurrences of the
specified string will be replaced, including partial strings. For instance, if you
replaced “Customer” with “Client”, the field name Customer_Number would
become Client_Number. You may want to search for the specified string and
view the status report first. This will allow you to see which items will be
replaced before you perform the replace operation.

3. Select the series and resource type.


Select the series containing the script to be searched, then select the
appropriate resource type. Select Forms to display a list of all forms in
the selected series. Select Global Procedures to display a list of the
global procedures in the selected series. Select Global Functions to
display a list of the global functions in the selected series.

You can set a default series prior to beginning the search and replace process.
Select a series from the Series list located on the toolbar. Once specified, the
selected series will appear as the default whenever a series can be selected in a
window.

4. Select the scripts to search.


From the Resources list, select the global procedures, global functions
or the forms containing the scripts you want to search and click Insert
to add items to the Selected Scripts list. Double-clicking your selection
will perform the same function. If you want to search all global
procedures, global functions or form scripts in a series, simply click the
Insert All button. You can use the Remove and Remove All buttons to
remove scripts from the Selected Scripts list.

5. Search the selected forms or scripts.


Click the Search button to search for the specified string. The Report
File Name dialog box will appear, allowing you to enter the name and
location for the Search and Replace Report file. Click OK to continue
the search and replace process, or click Cancel to return to the Search
and Replace window. If you continue the search and replace process
and you specified replacement text, any occurrences of the text being
searched for will be replaced.

6. Use the status report to verify the search.


The status report lists all occurrences of the text you searched for. If you
only searched for a string, the report will list what type of script the
string was found in, the script name, the line number and actual line
where the string was found. If you replaced the string, the report will
list the type of script the string was found in, the script name, and the
number of occurrences of the string that were replaced.

DEXTERITY UTILITIES 45
46 DE X TE R I T Y U T IL IT IE S
Chapter 5: Resource Utilities
The resource utilities allow you to perform maintenance actions such as
updating series resource lists. Before performing a resource procedure, you
must choose an editable dictionary. To open an editable dictionary, choose
Open Editable Dictionary from the File menu and select the appropriate
dictionary in the dialog box that will appear.

The following topics are discussed:

• Changing the dictionary core


• Updating series resources

DEXTERITY UTILITIES 47
PA RT 2 U T I L I T Y R E F ER EN C E

Changing the dictionary core


Refer to Appendix A, The Change Core utility allows you to change which dictionary core a core
“Dictionary Structure,” resource is located in. Each core resource is located in one of the seven
for more information dictionary cores:
about core resources
and dictionary cores. • System
• Financial
• Sales
• Purchasing
• Inventory
• Payroll
• Project

Large applications, such as Microsoft Dynamics GP, have thousands of core


resources. Because of limitations in Windows 3.1 and to better manage all of
these core resources, the core resources are grouped into dictionary cores.
These dictionary cores correspond to series for Microsoft Dynamics GP. For
this reason, the dictionary cores are sometimes referred to as “series.” If a
core resource was inadvertently placed in the incorrect dictionary core, the
Change Core utility is used to move it to the proper dictionary core.

The series associated with forms, reports, tables and table groups have no direct
relation to the “series” that correspond to the dictionary cores. The series associated
with forms, reports, tables and table groups are used for the series resource lists,
which are described in the Updating series resources section, later in this chapter.

When you change which dictionary core a table is located in, you also
change the location of the keys and table relationships for that table.
Changing which dictionary core a table is located in doesn’t change the
series marked on the table resource itself as seen in Dexterity. If you change
the dictionary core a field is located in, the location of the physical name
resource that corresponds to that field is changed as well.

Only global fields used in tables require physical names. For this reason, the
physical name for each global field is stored as a separate resource. When a
global field is created, it’s stored in the core specified by the Default Core
drop-down list. If a physical name is added later with the Default Core set
to a different core, the physical name won’t be in the same core as the global
field. The Change Core utility can be used to remedy this situation.

48 DE X TE R I T Y U T IL IT IE S
C H A P T E R 5 R E S O U R C E U T I L I T I E S

To begin using the Change Core utility, select an editable dictionary, then
choose Change Core from the Resources menu to display the Change Core
window, shown in the following illustration.

These drop-down lists specify


the current dictionary core
and the dictionary core to
which the selected resource
will be moved.

The resource selected in


this list will be moved to
the new dictionary core.

1. Select the current core and new core for the resource.
Use the Core drop-down list to select the dictionary core containing the
resource that you want to move to a different dictionary core. Use the
New Core drop-down list to select the dictionary core that you want to
move the resource to.

2. Select the resource type and resource to move.


Select the appropriate resource type; the available resources of that type
will appear in the Resources list. Select the specific resource that you
want to move to the new dictionary core.

3. Move the resource to the new dictionary core.


Click the Change Core button to move the selected resource to the new
dictionary core.

DEXTERITY UTILITIES 49
PA RT 2 U T I L I T Y R E F ER EN C E

Updating series resources


This utility allows you to update the series resource lists in a dictionary.
Series resource lists contain the names of forms, reports, tables and table
groups in the application dictionary, grouped according to their assigned
series. Series resource lists allow the names of resources of a specific type
and series to be retrieved quickly, instead of requiring that a script check
each resource and determine its series. If necessary, you can use this
procedure to manually update the series resource lists.

If you want to update all series resource lists for a dictionary, mark the All Resource
Types and All Series options and click Update. All series resource lists will be
updated. If you want to specify the type and series to be updated, follow the steps in
the following procedure.

To update series resources, select an editable dictionary, then choose Series


Resources from the Resources menu to display the Series Resources
window, shown in the following illustration.

These drop-down lists


specify the resource type
and series of the resources
in the Resources list.

Mark these two options to


update all of the series
resources lists for the
dictionary.

1. Select a resource type and series.


Select the appropriate resource type and series from the respective lists.
You can select from four types of resources: forms, reports, tables and
table groups.

50 DE X TE R I T Y U T IL IT IE S
C H A P T E R 5 R E S O U R C E U T I L I T I E S

Once your selections are made, the Resources list will automatically
display the names of any resources of the specified type and series that
are in the series resource lists. This list is informational only. It indicates
which resources of the specified type and series currently have entries
in the series resource lists. You won’t see additions, deletions or
changes to the series resource lists until you update them.

2. Mark resource options.


The following options allow you to specify how extensive the update
will be.

All Resource Types Mark this option if you want to update the
series lists for all resource types (forms, reports, tables and table
groups) in the selected series.

All Series Mark this option if you want to update the series resource
lists for resources of the selected type for every series.

Mark both options if you want to update all series resource lists.

3. Update the dictionary.


After the resource type and series are selected and you’ve marked your
options, click Update to complete the process.

DEXTERITY UTILITIES 51
52 DE X TE R I T Y U T IL IT IE S
Chapter 6: Inquiry Utilities
The inquiry utilities give you the ability to view summary information
about selected forms and resources. The two options available from this
menu are Forms and Resources. Form inquiry allows you to view all forms
in a dictionary by series, and the windows, menus and tables associated
with each. Resource inquiry allows you to view the resources in a
dictionary by series and resource type, such as table, field or data type.

Before beginning an inquiry, you must choose a source dictionary. To open a


source dictionary, choose Open Source Dictionary from the File menu and
select the appropriate dictionary in the dialog box that will appear.

The following topics are discussed:

• Viewing form information


• Viewing resource information

DEXTERITY UTILITIES 53
PA RT 2 U T I L I T Y R E F ER EN C E

Viewing form information


The Form Inquiry window allows you to list forms by series and view the
windows, menus and tables included in each form.

To perform a form inquiry, select a source dictionary, then choose Forms


from the Inquiry menu to display the Form Inquiry window, shown in the
following illustration.

1. Select a series.
Select the series that includes the form you wish to view. The forms in
the selected series will appear in the Forms list.

You can set a default series prior to beginning the inquiry process. Select the
appropriate series from the Series list located on the tool bar. Once specified, the
selected series will appear as the default whenever a series can be selected in a
window.

2. Select a form.
Select the appropriate form; the names of the windows, menus and
tables for that form will be displayed.

3. Close the Form Inquiry window.


When you’ve finished viewing the displayed information, select a
different form or click Close to close the window.

54 DE X TE R I T Y U T IL IT IE S
C H A P T E R 6 I N Q U I R Y U T I L I T I E S

Viewing resource information


The Resource Inquiry window allows you to view global resources by type
in a single series or all series.

Once you’ve selected a source dictionary, choose Resources from the


Inquiry menu to display the Resource Inquiry window, shown in the
following illustration.

1. Select a series.
Select the series containing the resources for which you want
information. You can select All to display resources from all series in
the dictionary.

You can set a default series prior to beginning the inquiry process. Select the
appropriate series from the Series list located on the tool bar. Once specified, the
selected series will appear as the default whenever a series can be selected in a
window.

2. Select a resource type.


Select the type of resource to display. The resources of the selected type
in the specified series will be displayed in the Resources list.

3. Close the Resource Inquiry window.


Select a different series and resource type to view additional resources,
or click Close to close the Resource Inquiry window.

DEXTERITY UTILITIES 55
56 DE X TE R I T Y U T IL IT IE S
Chapter 7: Dictionary Utilities
The utilities displayed in the Utilities menu allow you to perform a variety
of maintenance procedures on a dictionary. The utilities are primarily used
to prepare an application dictionary to be sent to customers. The compress
utility, for instance, removes source code from the dictionary and
compresses it, removing all unused blocks so that the dictionary will be as
small as possible. Two other utilities allows you to create dictionary
“chunks” that you will use to package your application for delivery to
customers.

The following topics are discussed:

• Synchronizing a dictionary
• Using the packaging utilities
• Compressing dictionaries
• Creating chunk dictionaries
• Comparing dictionaries
• Adding product information
• Extracting
• Expanding windows
• SQL Compatibility
• Auto-Chunk
• Converting a user interface
• Changing Evaluate After

DEXTERITY UTILITIES 57
PA RT 2 U T I L I T Y R E F ER EN C E

Synchronizing a dictionary
Synchronizing a dictionary should be performed if a field’s data type has
changed, or if a data type’s control type has changed. A field’s data type
reference is stored with the window, table, key, report and system variable
resources for faster processing. If the data type changes, synchronizing the
dictionary will ensure all references are correct. The procedure also
recalculates the buffer sizes for tables and windows.

Open an editable dictionary, then choose Synchronize from the Utilities


menu to display the Synchronize Dictionary window, shown in the
following illustration.

1. Synchronize the dictionary.


Click the OK button to begin the synchronization. The time required to
complete this process depends on the size and complexity of your
dictionary. A progress dialog will display the procedure’s progress.

58 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Using the packaging utilities


Refer to Part 11, The Compress, Extract, Compare, Create Chunk Dictionary, and Product
Packaging Information utilities are typically used together when you package your
Applications, in product for distribution. The following chart lists the steps in packaging
Volume 1 of the and updating stand-alone and integrating applications.
Dexterity
Programmer’s Guide Stand-alone Integrating
for information about Packaging 1. Add product information 1. Extract
packaging and 2. Compress 2. Transfer form and report
updating stand-alone 3. Create chunk dictionaries modules
applications. 3. Add product information
4. Compress
Refer to Part 11, 5. Create chunk dictionaries
Packaging Your Updating 1. Compress 1. Source Code Control for
Application, in the 2. Compare update (if core application
Integration Guide for 3. Create chunk dictionaries version has changed)
2. Development changes (if
more information
required)
about packaging and 3. Extract
updating applications 4. Transfer form and report
that integrate with modules
Microsoft Dynamics 5. Add product information
GP. 6. Compress
7. Compare
8. Create chunk dictionaries

These utilities are used to package applications so launch files will be


properly updated when the application is installed. They also ensure that
form dictionaries and report dictionaries will be updated properly when
applications are updated.

DEXTERITY UTILITIES 59
PA RT 2 U T I L I T Y R E F ER EN C E

Compressing dictionaries
The Compress utility can perform two types of compression: total
compression or removing unused blocks. Total compression removes script
source and all unused blocks from a dictionary. Total compression is used
when you’re preparing a dictionary to be distributed. Removing unused
blocks removes only unused blocks from the a dictionary, leaving the script
source intact. As you work with a dictionary, it will accumulate unused
blocks. Typically, the unused blocks are removed several times during the
development process to keep a dictionary from getting unnecessarily large.

When a dictionary is compressed, a separate new dictionary is created. The


compression in no way affects the original dictionary.

To compress a dictionary, select an editable dictionary, then choose


Compress from the Utilities menu to display the Compress Dictionary
window, shown in the following illustration.

1. Select compression options.


You can choose to compress a dictionary completely, or to remove only
unused blocks of space from a dictionary

Total Compression Mark this option to create the smallest version


of a dictionary for distribution. All script source will be removed, as
well as unused blocks and unused space within blocks.

Remove Unused Blocks Mark this option to remove only empty


blocks from the dictionary. This is useful if many resources, especially
large ones like pictures, have been removed from a dictionary.

2. Compress the dictionary.


Click OK to compress the dictionary. The Compressed Dictionary
Name dialog box will appear, allowing you to enter the name and
location for the compressed dictionary. Click OK to create the
compressed dictionary, or click Cancel to return to the Compress
Dictionary window.

60 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Creating chunk dictionaries


This utility allows you to split your extracted or stand-alone application
dictionary into “chunks” that are used to install or update an application.
The dictionary chunks are part of what you deliver to your customer.

Dexterity Utilities has the Auto-Chunk utility, which greatly simplifies the process
of creating a dictionary chunk. For this reason, we recommend that you use the
Auto-Chunk utility, rather than the Create Chunk Dictionary utility.

Installing applications
If you are creating an application that integrates with Microsoft Dynamics
GP, the dictionary chunks are combined to re-create the integrating
dictionary. If you’re creating a stand-alone application, the chunks are
recombined to create the stand-alone dictionary. Chunk dictionaries are
used for two reasons:

• Chunks allow large dictionaries to be divided into more manageable


pieces.

• When an integrating or stand-alone dictionary is installed from


dictionary chunks, the launch file for the application is updated
automatically.

If your application dictionary is small (less than 1 megabyte in size), you


can make a single chunk that contains all of the integrating or stand-alone
dictionary’s resources. If the dictionary is larger than this, you may want to
create several chunks. A common way to divide a dictionary into multiple
chunks is to include core resources in one chunk, forms in another chunk,
and reports in a third chunk.

Updating applications
If you’re updating an application that integrates with Microsoft Dynamics
GP, the dictionary chunks add or change resources in the integrating
dictionary. If you’re updating a stand-alone dictionary, the chunks merge
with the main dictionary to add or change resources. Also, the dictionary
chunks update the core resources in the forms and reports dictionaries
associated with the integrating or stand-alone dictionary.

DEXTERITY UTILITIES 61
PA RT 2 U T I L I T Y R E F ER EN C E

The Extract utility, used To begin creating the chunk dictionary, select a source dictionary. The
to make an extracted source dictionary is the dictionary containing the resources you want to
dictionary, is described transfer to the chunk dictionary. (This is the application dictionary for
later in this chapter. stand-alone applications or the extracted dictionary for integrating
applications.) Next, choose Create Chunk Dictionary from the Utilities
menu.

1. Choose whether to edit an existing chunk dictionary.


A dialog box will appear, asking whether you want to edit an existing
dictionary chunk. If you are adding resources to an existing chunk
dictionary, click Yes. If you’re creating a new chunk dictionary, click No.

If you clicked Yes a dialog box will appear, allowing you to select a
dictionary chunk to edit. If you clicked No, a dialog box will appear,
allowing you to specify the name and location of the new chunk
dictionary.

Due to a historical limitation imposed by early versions of Windows, the name


of the chunk dictionary must not exceed 13 characters, including the .cnk
extension. If the name exceeds 13 characters, the chunk cannot be accessed by
the runtime engine and will not be unchunked.

The Create Chunk Dictionary window will appear, as shown in the


following illustration.

This is the dictionary the


chunk will become part of.

These lists specify the


series and module type of
the modules displayed in
the Source Dictionary
Modules list.

This is a list of all dictionary


modules that will be included
in the dictionary chunk.

62 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

2. Examine the Dictionary field.


It will contain name of the source dictionary from which the dictionary
chunk is being made. The name in this field is the name of the
dictionary that the chunk will become part of. For instance, if you’re
creating a chunk from the stand-alone dictionary RESM.DIC, be sure
that name appears here. If you’re creating a chunk from an extracted
integrating dictionary, be sure that dictionary name appears here.

3. Specify the sequence number.


The sequence number indicates the order in which this chunk will be
read when “unchunked.” If you’re creating a single chunk for the entire
dictionary, specify 1. If you break the application dictionary into several
smaller chunks, the chunks will be merged into the application
dictionary in the order specified by the sequence number.

4. Select a module.
This selection indicates which module the Major Version, Minor
Version and Build Number information is associated with. (These are
the fields below the Module field.) The setting in the Module field is
used when the version numbers and build number are retrieved from
the dictionary.

5. Set the major version, minor version and build number.


Refer to the The Major Version and Minor Version numbers indicate the major and
Runtime_GetModule minor version numbers for your application. The Build Number
Info() function in the indicates the build of the current version of the dictionary. For instance,
Function Library if this is the first build of release 1.3 of your application, enter a 1 for the
Reference manual for major number, 3 for the minor number and 1 for the build number. The
information about version numbers and build number can be retrieved from the
retrieving version and dictionary using the Runtime_GetModuleInfo() function. Typically
build numbers. these numbers are displayed in the application’s About Box.

The values you choose for the major version and minor version are
significant. If the installation folder contains a dictionary for a previous
version of your product dictionary, the dictionary chunk you are
creating will unchunk only if the major version and minor version
numbers in the chunk match those in the existing dictionary. If the
version numbers don’t match, an error indicating the issue will be
written to the InstallErrors.txt file in the installation folder. The
dictionary chunk won’t be deleted.

DEXTERITY UTILITIES 63
PA RT 2 U T I L I T Y R E F ER EN C E

If you have multiple dictionary chunks with the same major version
and minor version values, the build number is used to determine the
order in which the dictionary chunks are unchunked. The chunks with
lower build number values are unchunked first.

If the installation folder contains a dictionary for which the major and
minor version numbers match those of the dictionary chunk, the build
number will be examined. If the build number of the chunk is the same
or greater than the build number of the dictionary, the chunk will be
unchunked. If the build number of the chunk is lower, it will not be
unchunked, and a message indicating the issue will be written to the
InstallErrors.txt file in the installation folder. The dictionary chunk will
be deleted.

6. Select starting and ending scripts.


Refer to the Volume 1 These fields specify which installation scripts (procedures) will be run
of the Dexterity when the chunk is merged into the application dictionary. To specify a
Programmer’s Guide starting or ending script, mark the corresponding check box and then
and the Integration click the lookup button for the starting or ending script. A list of the
Guide for more procedures in the application dictionary is displayed, allowing you to
information about select a script.
writing installation
scripts. The starting and ending scripts run only after all dictionary chunks
have been merged into the application dictionary. All starting scripts
are run in the order the chunks were merged. Then all ending
scripts are run in reverse order. For example, if three dictionary chunks
were merged, the starting and ending scripts would run in the
following order:

• Chunk 1 Starting Script


• Chunk 2 Starting Script
• Chunk 3 Starting Script
• Chunk 3 Ending Script
• Chunk 2 Ending Script
• Chunk 1 Ending Script

To remove the procedure script selected for the starting or ending


script, simply unmark the check box for the starting script or ending
script.

64 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

7. Select a series and dictionary module type.


Select the series from which you want to add resources to the chunk
dictionary. Select the type of resources (Forms, Reports or Core
resources) you want to add to the chunk dictionary. Mark the Shared
option if you want only forms or reports marked as shared to be
displayed in the Source Dictionary Modules list. (Forms are marked as
shared in the Form Definition window. Reports are marked as shared in
the Report Definition window.)

8. Select the dictionary modules to include in the chunk


dictionary.
To add a module to the chunk dictionary, select it from the list, then
click Transfer. If you want to add all modules from the Source
Dictionary Modules list, click All. If you want to delete a module from
the destination dictionary, select the module in the Chunk Dictionary
Modules list and click Delete.

If you’re making a single chunk dictionary, first add all forms and
reports from your dictionary to the Chunk Dictionary Modules list.
Then add all core resources for the series listed from Financial through
System in the Series list. Core resources for the Company through
Report Writer series can be ignored because they contain duplicate
resources from the System series. When you’ve finished, the size of the
chunk dictionary should be nearly the same size as the source
dictionary. (You can see this by viewing the Total fields beneath the
source dictionary and the chunk dictionary lists.)

If you’re making multiple chunk dictionaries, the entry in the


Dictionary name field must be the same for each chunk. Also, each
chunk must contain the [Core] System Core Tables and the [Core]
System Install modules for the dictionary chunks to merge properly. Be
sure that you haven’t forgotten to include these resources in each
dictionary chunk.

If you’re packaging an application, be sure you include all of the


dictionary modules for your application.

The Compare If you’re updating an application, use the report generated by the
Dictionaries utility is Compare Dictionaries utility to determine which dictionary modules
described later in this you need to include in your update chunk. Be sure the update chunk
chapter. contains the [Core] System Core Tables and the [Core] System Install
modules so the update chunk will merge properly.

DEXTERITY UTILITIES 65
PA RT 2 U T I L I T Y R E F ER EN C E

9. Click Close to complete the process.


When you’ve added the necessary resources to the Chunk Dictionary
Modules list, click Close to complete the chunking process.

At this point, we recommend that you make backups of your chunk


dictionaries.

66 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Comparing dictionaries
Refer to Chapter 60, At some point after you’ve shipped your application to customers, you may
“Updating an Applica- need to send an update. The extent of changes in your application
tion,” in Volume 1 of determines the method you will use to package your update.
the Dexterity Program-
mer’s Guide for infor- • If you’re adding major new functionality to your application, you
mation about updating should consider having your customers install a new version and
stand-alone applica- migrate data to it from their current version.
tions.
• If you’re including only problem fixes and minor application changes,
you can send your update in the form of a dictionary chunk. To do this,
Refer to Chapter 52,
the Compare Dictionaries utility is used to indicate which resources
“Updating an Applica-
have changed in the updated version.
tion,” in the Integration
Guide for information To determine what to include in the update, you will be comparing the
about updating appli- updated dictionary with the version of the dictionary your customers
cations that integrate currently have. The Dictionary Comparison report generated by the
with Microsoft Dynam- Compare Dictionaries utility lists the dictionary modules that have been
ics GP. added or changed in the updated dictionary. These are the modules that
must be included in the update.

The Extract utility, used To compare two dictionaries, open the original dictionary as a source
to make an extracted dictionary and the dictionary you’ve made changes to (the compare
dictionary, is described dictionary) as an editable dictionary. If your application integrates with
later in this chapter. Microsoft Dynamics GP, you will compare the extracted dictionary from the
original version of your application with the extracted dictionary from the
updated version of your application. When you’ve selected the dictionaries,
choose Compare from the Utilities menu to display the Compare
Dictionaries window, shown in the following illustration.

1. Verify the dictionaries to be compared.


The two dictionaries you selected will appear in the Original Dictionary
and Compare Dictionary fields on the window. Verify that these are the
correct dictionaries to be compared.

2. Click OK to complete the procedure.


Click OK to generate the report comparing the two selected
dictionaries.

DEXTERITY UTILITIES 67
PA RT 2 U T I L I T Y R E F ER EN C E

The comparison report lists the dictionary modules that you need to
include when using the Create Chunk Dictionary window to create the
update chunk. The following illustration shows a report comparing
versions 1 and 2 of the Real Estate Sales Manager application.

Time printed: 10/20/1995 10:31:15

Dictionary Comparison

Source Dictionary : HD1:RESM_V1.DIC


Compare Dictionary : HD1:RESM_V2.DIC

* = New Resource or Name Change


__________________________
In this illustration, boxes Core System Core 1
Table
have been drawn around Seller_Data
* Seller_Data_OLD
the module names. These Key
are the modules you must * Seller_Data_By_ID!
* Seller_Data_By_Name!
include in the update chunk. * Seller_Data_By_Initial Contact
Relation
* 22005
Core System Strings 2
String
* Convert Data
* Initial Contact:
Core System GScript Code/Data 3
Global Script Data
* Convert Data
Global Script Code
* Convert Data
Core System Data Types 6
Data Type
* Date
* STR45
Core System Fields 7
Field
Seller Name
* Initial Contact
* String30
Core System Short Names 8
Field Short Name
* Initial Contact
* String30
Core System GScript Source/Debug 9
Global Script Source
* Convert Data
Global Script Debug
* Convert Data
Core System Core Tables 10
Core Table 3rd
Local core table 1, 2
Local core table 5, 2
Local core table 6, 2

Form Sellers 22003


Form
Sellers
Window
Sellers

The dictionary chunk to update version 1 of the application to version 2


must contain the dictionary modules listed in this report.

Another report, CHANGES.TXT, will also be generated by the


Compare Dictionaries utility. This report contains a list of the forms and
reports that have changed in the updated dictionary.

68 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Adding product information


Refer to Chapter 58, Before you can use a dictionary with the runtime engine, you must use the
“Using Launch Files,” Product Information utility to add product information to the dictionary.
in Volume 1 of the Product information is used when the launch file for the application is
Dexterity created. If dictionaries don’t have product information, the launch file
Programmer’s Guide, created won’t contain the appropriate information about the main product
or to Chapter 50, dictionary and any additional dictionaries being accessed.
“Building An
Application,” in the If you’re developing applications that integrate with Microsoft Dynamics GP, that
Integration Guide for is the main product.
additional information
about using launch To begin entering product information, open an editable dictionary (the
files. dictionary you’re entering product information for), then choose Product
Information from the Utilities menu to open the Product Information
window. The window is shown in the following illustration.

These are the name and ID of the


launch file. If your dictionary
integrates with another application,
you must use the launch file name
and ID for that application.

The Product ID uniquely identifies


your product. If your product is
stand-alone, the product ID and
launch file ID must be the same.

1. Name the launch file.


Enter the name of the launch file in the Launch File field. The name is
limited to eight characters plus a three-character extension. The name
should have the .SET extension.

If you’re entering product information for the main product dictionary,


this name is the default name the launch file will be given when it’s
created. If you’re entering product information for an integrating
dictionary, this should be the name of the launch file for the application
you’re integrating with.

DEXTERITY UTILITIES 69
PA RT 2 U T I L I T Y R E F ER EN C E

2. Enter the launch file ID.


Enter the launch file ID in the Launch ID field. The launch file ID is an
integer that uniquely identifies the launch file. If you’re entering
product information for the main application dictionary, the launch file
ID should be the same as the product ID for the dictionary. If you’re
entering product information for an integrating dictionary, the launch
file ID you use should be the same as the launch file ID for the
application you’re integrating with.

3. Enter the product name.


In the Product Name field, enter the complete name of the product.
This name can be displayed in your application while it is running. For
example, if your product integrates with Microsoft Dynamics GP, the
product name you enter here will appear in various parts of the
application.

4. Enter the product ID.


Enter the product ID of your application in the Product ID field. A
product ID is an integer that uniquely identifies your product. You
obtain a product ID by registering your product with Microsoft
Business Solutions. Products should be registered so they each have a
unique product ID. This minimizes the possibility of conflicts between
different Dexterity applications. If you’re entering product information
for the main application, the product ID must be the same as the launch
file ID.

5. Name the forms and reports dictionaries.


In the Forms Dictionary and Reports Dictionary fields, enter the names
for the forms and reports dictionaries. These are the names the forms
and reports dictionaries will be given when they’re created for the
application. The names are limited to eight characters and should have
the .DIC extension.

You must provide names for the forms and reports dictionaries, even if the
Modifier and Report Writer won’t be used in your application. Otherwise, the
launch file won’t work properly.

6. Enter the compatibility ID and compatibility message.


The Compatibility ID is a string that uniquely identifies the version of
your application. When you launch your application with the runtime
engine, the compatibility ID in the application dictionary is compared
with the compatibility IDs in the forms and reports dictionaries. If they
match, items in the forms and reports dictionaries can be accessed.

70 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

The compatibility message is the message that is displayed when the


compatibility IDs in the forms or reports dictionaries don’t match the
compatibility ID in the main dictionary. You should provide
information in this message describing how to update your forms and
reports dictionaries to make them compatible with the current version
of your application. Refer to Chapter 60, “Updating an Application,” in
the Volume 2 of the Dexterity Programmer’s Guide for more
information about updating forms and reports dictionaries.

7. Click OK to save the information.


When you click OK, the information entered will be saved in the
dictionary. When the dictionary is installed, the product information
will be added to the launch file.

DEXTERITY UTILITIES 71
PA RT 2 U T I L I T Y R E F ER EN C E

Extracting
This utility is used when you develop your application in the Dynamics.dic
dictionary, then want to create a dictionary to operate in multidictionary
mode. The extract utility copies, or “extracts” resources with resource IDs
22,000 or greater from the Dynamics.dic dictionary and places them in a
separate dictionary. The extract process excludes any Microsoft Dynamics
GP resources, since these resource IDs are numbered below 22,000.

The Extract utility only copies resources from the modified dictionary. It doesn’t
remove any resources from the Dynamics.dic dictionary.

To extract resources, select a source dictionary, then choose Extract from the
Utilities menu to open the Extract window, shown in the following
illustration.

1. Click OK.
Click OK to begin the process of creating a new dictionary in which to
store the extracted resources.

2. Specify the name of the extracted dictionary.


A file name dialog box will appear, allowing you to name the extracted
dictionary. The default name will be EXTRACT.DIC; accept that name
or specify a new one.

Because dictionaries can be overwritten by another dictionary with the same


name, choose the name of your dictionary carefully.

The Extract utility will begin creating the new dictionary and extracting
the resources. As the resources are extracted, the types of resources
being processed, such as system strings, and form and report names,
will be displayed in a progress window.

72 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

The only resources extracted will be those with IDs equal to or greater
than 22,000. The numbers within this range are those created for an
integrating application; resources specific to Microsoft Dynamics GP
will be less than 20,000; IDs between 20,000 and 22,000 are reserved for
the runtime Report Writer and Modifier resources.

Modified Microsoft Dynamics GP forms and reports are not transferred


by the Extract utility. You must use the Transfer Dictionary module
utility to transfer modified forms and reports to the extracted
dictionary. Refer to Chapter 50, “Building An Application,” in the
Integration Guide for more information.

You can’t perform any development in the extracted dictionary. Opening the
extracted dictionary with Dexterity and attempting to make changes could
corrupt the dictionary. Instead, you must make changes in the modified
Dynamics.dic dictionary, then re-extract.

DEXTERITY UTILITIES 73
PA RT 2 U T I L I T Y R E F ER EN C E

Expanding windows
This utility is used when you create an international version of your
application. It expands all windows and window fields in your application
by a specified percentage to allow room for international characters.

To expand the windows in a dictionary, open an editable dictionary, then


choose Expand Windows from the Utilities menu to open the Expand
Windows window, shown in the following illustration.

1. Select the amount to scale.


Select the horizontal and vertical amounts to scale all windows and
window fields in the dictionary. The numbers are expressed as a
percentage of the current size. For example, to expand the windows
and fields by 10 percent, enter 110. To reduce the size of windows and
fields by 20 percent, enter 80.

2. Click OK.
A progress window will appear while the windows and fields are being
altered. The windows and fields will appear expanded when you view
them at runtime or edit them in the Dexterity layout window.

74 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

SQL Compatibility
Use this utility when preparing an application dictionary for use with a
SQL database. This utility examines a dictionary for the following
conditions, which would prevent the application from working properly
with SQL:

Refer to Appendix A, • SQL limits that have been exceeded. The following limits are tested: the
“Dexterity Limits,” in number of fields in the table definition, the record size of each table, the
Volume 2 of the Dex- number of keys for each table and the number of segments in each key.
terity Programmer’s
Guide for the specific • Table fields that don’t have physical names.
limit values.
• Table field physical names that are SQL reserved words.

• Table database types that aren’t SQL or Default.

• Tables for which no index is generated.

The SQL Compatibility utility prints the incompatibility information as a


report. It can also make the necessary changes to the application dictionary
to make it compatible for use with SQL.

To check the SQL compatibility of a dictionary, open an editable dictionary,


then choose SQL Compatibility from the Utilities menu to open the SQL
Compatibility window, shown in the following illustration.

DEXTERITY UTILITIES 75
PA RT 2 U T I L I T Y R E F ER EN C E

1. Specify the compatibility categories to examine.


Mark the check boxes in the Category group to specify the
incompatibilities to look for.

Field Physical Names Mark this option to find out which table
fields don’t have physical names.

Reserved Words Mark this option to examine table fields to find out
whether the physical names are SQL reserved words.

Table Database Types Mark this option to examine the database


type of each table in the application dictionary.

Create Index Mark this option to examine the SQL key options for
each key of every table in the application dictionary.

2. Generate a compatibility report or make the dictionary


compatible.
Click Check to generate a report listing the SQL limits exceeded and
any incompatibilities for the categories you specified. Click Make
Compatible to make changes to the application dictionary that will
remove the SQL incompatibilities. When you click Make Compatible, a
report will also be generated that lists the changes made to the
application dictionary.

You may want to generate and examine the report listing any SQL
incompatibilities before you choose to make the dictionary compatible. This
allows you to see the changes that are required before they are actually made.

When you click Make Compatible, the following changes will be made
to remove incompatibilities:

• If you marked the Field Physical Names option, any table field that
doesn’t have a physical name will be given one. The physical name
will be based upon the field name.

• If you marked the Reserved Words option, any table field physical
names that are SQL reserved words will have an integer appended
to the name. The physical name will be truncated, if necessary.

• If you marked the Table Database Types option, any tables that
don’t have SQL or Default as their database type will be changed to
have Default as the database type.

76 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

• The Create Index SQL key option will be marked for each key of
every table in the dictionary.

The Unique SQL key option will also be marked appropriately


for each key, based upon current setting of the Duplicates key option. If
Duplicates is not marked, the Unique key option will
be marked. If Duplicates is marked, the Unique key option will be
unmarked.

While the SQL Compatibility utility can locate and make changes to overcome
certain SQL incompatibilities, its use doesn’t guarantee that an application
will work fully with SQL.

DEXTERITY UTILITIES 77
PA RT 2 U T I L I T Y R E F ER EN C E

Auto-Chunk
Refer to Part 11, Pack- This utility allows you to easily create a single chunk from your extracted or
aging Applications, stand-alone application dictionary. The dictionary chunk is part of what
in Volume 1 of the Dex- you deliver to your customer. The auto-chunk utility automatically
terity Programmer’s performs the following:
Guide for information
about packaging and • If no product information has been added to the dictionary from which
updating stand-alone you are making a chunk, the Product Information window is displayed
applications. automatically, allowing you to add product information.

Refer to Part 11, Pack- • Automatically transfers all dictionary modules from the dictionary you
aging Your Applica- specified to a new chunk dictionary.
tion, in the Integration
Guide for more infor- • Updates series resources in the chunk dictionary automatically.
mation about packag-
ing and updating • Compresses the chunk dictionary based upon the compression option
applications that inte- you specify.
grate with Microsoft
Dynamics GP. To begin creating the chunk dictionary, select an editable dictionary. The
editable dictionary is the dictionary that the chunk dictionary will be
created from. (This is the application dictionary for stand-alone
applications or the extracted dictionary for integrating applications.) Next,
choose Auto-Chunk from the Utilities menu. The Auto-Chunk window will
appear.

Click the Chunk Dictionary


lookup button to specify the
name of the chunk dictionary.
This is the dictionary the
chunk will become.

You can specify one starting


script and one ending script.
These are the
compression options for
the dictionary chunk.

78 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

1. Create a new chunk dictionary.


Click the Chunk Dictionary lookup button. This displays a dialog box
allowing you to name the chunk dictionary. The name will appear in
the Chunk Dictionary field.

Due to a historical limitation imposed by early versions of Windows, the name


of the chunk dictionary must not exceed 13 characters, including the .cnk
extension. If the name exceeds 13 characters, the chunk cannot be accessed by
the runtime engine and will not be unchunked.

2. Examine the Dictionary field.


In the Dictionary field, enter the name the dictionary will have when
the chunk is unchunked. The default name is the same as the name of
the editable dictionary the chunk is being made from. As an example, if
you’re creating a chunk from the stand-alone dictionary RESM.DIC, be
sure that name appears in the Dictionary field. If you’re creating a
chunk from an extracted integrating dictionary, be sure that dictionary
name appears in the Dictionary field.

You can change this name if you want the dictionary created during the
unchunking process to have a different name than the default name.

3. Select a module.
This selection indicates which module the Major Version, Minor
Version and Build Number information is associated with. (These are
the fields below the Module field.) The setting in the Module field is
used when the version numbers and build number are retrieved from
the dictionary.

4. Set the major version, minor version and build number.


Refer to the The Major Version and Minor Version numbers indicate the major and
Runtime_GetModule minor version numbers for your application. The Build Number
Info() function in the indicates the build of the current version of the dictionary. For instance,
Function Library if this is the first build of release 1.3 of your application, enter a 1 for the
Reference manual for major number, 3 for the minor number and 1 for the build number. The
information about version numbers and build number can be retrieved from the
retrieving version and dictionary using the Runtime_GetModuleInfo() function. Typically
build numbers. these numbers are displayed in the application’s About Box.

DEXTERITY UTILITIES 79
PA RT 2 U T I L I T Y R E F ER EN C E

The values you choose for the major version and minor version are
significant. If the installation folder contains a dictionary for a previous
version of your product dictionary, the dictionary chunk you are
creating will unchunk only if the major version and minor version
numbers in the chunk match those in the existing dictionary. If the
version numbers don’t match, an error indicating the issue will be
written to the InstallErrors.txt file in the installation folder. The
dictionary chunk won’t be deleted.

If you have multiple dictionary chunks with the same major version
and minor version values, the build number is used to determine the
order in which the dictionary chunks are unchunked. The chunks with
lower build number values are unchunked first.

If the installation folder contains a dictionary for which the major and
minor version numbers match those of the dictionary chunk, the build
number will be examined. If the build number of the chunk is the same
or greater than the build number of the dictionary, the chunk will be
unchunked. If the build number of the chunk is lower, it will not be
unchunked, and a message indicating the issue will be written to the
InstallErrors.txt file in the installation folder. The dictionary chunk will
be deleted.

5. Select starting and ending scripts.


Refer to Volume 1 of These fields specify which installation scripts (procedures) will be run
the Dexterity when the chunk is unchunked. To specify a starting or ending script,
Programmer’s Guide mark the corresponding check box and then click the lookup button for
and the Integration the starting or ending script. A list of the procedures in the application
Guide for more dictionary is displayed, allowing you to select a script.
information about
writing installation To remove the procedure selected for the starting or ending script,
scripts. simply unmark the check box for the starting script or ending script.

6. Specify the level of compression.


You can choose to compress the chunk dictionary completely, or to
remove only unused blocks of space from the chunk dictionary.

Total Compression Mark this option if you want to create the


smallest version of a chunk dictionary. All script source will be
removed, as well as any empty blocks of space.

Remove Unused Blocks Mark this option if you want to remove


only empty blocks of space from the chunk dictionary.

80 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

7. Click OK to complete the process.


Adding product When you have specified all of the necessary options, click OK to begin
information is the chunking process. If the editable dictionary doesn’t contain product
described in Adding information, you will be prompted to add the product information.
product information on After you’ve added the product information, click OK in the Auto-
page 69. Chunk window to restart the chunking process. When the dictionary
chunk is complete, the Auto-Chunk window will close.

DEXTERITY UTILITIES 81
PA RT 2 U T I L I T Y R E F ER EN C E

Converting a user interface


Use this utility to globally change user interface characteristics of any
Dexterity application. You may want to convert your application’s user
interface to accomplish the following objectives:
• Apply system colors to all your application’s window fields.
• Apply a three-dimensional appearance to certain window fields,
including text boxes, check boxes, radio buttons and list boxes.
• Apply a visual indicator to zoom fields.
• Apply custom colors to alternating lines in scrolling windows.
• Provide custom color support for all prompts and prompt boxes in
your application.
• Reduce the height of drop-down lists and combo boxes in the layout
window to standard height.
• Remove graphical buttons, such as lookups, from a tab sequence.
• Specify alignment for text on push buttons.
• Correct several properties used by the Modifier.
• Update palettes to use the new palette style.
• Set the SetChangeFlag property for all scrolling window fields.

To convert a user interface, open an editable dictionary, then choose


Convert User Interface from the Utilities menu to display the User Interface
Conversion window, shown in the following illustration.

1. Enter a report file name.


Enter the name for the report file that will log the results of the
conversion, or accept the default name (CONVERT.TXT). The report
lists any errors that occurred during the conversion, as well as any
objects that the utility couldn’t convert. Review the report to find which
objects you will need to convert manually.

82 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

2. Select conversion options.


Choose the options you want the conversion to perform. If you choose
not to perform some of the conversion operations now, you can run the
conversion again later to perform those operations.

Refer to Chapter 11, Use System Colors Mark this option to change the FontColor,
“Windows,” in Vol- BackColor and LineColor properties for application objects to System.
ume 1 of the Dexterity Once System becomes the default color, the object will inherit colors as
Programmer’s Guide defined using the operating system’s control panel settings for color.
for more information This utility will perform the following system color conversions:
about using system
colors. Object Conversion information
Push buttons Sets the BackColor and FontColor properties of all push
buttons to System.
Fields Sets the FontColor property of all fields to System.
For all fields whose BackColor property is White or Light Gray,
sets the BackColor property to System (unless the fields are in
a scrolling window).
For all fields whose Editable property is false, sets the
BackColor property to System, and the Appearance property to
3D Border.
Graphics For all graphics (lines, rectangles, rounded rectangles and
circles) whose LineColor property is Medium Gray, sets the
LineColor property to System.
For all graphics in a scrolling window, sets the LineColor
property to System.
Static text Sets the FontColor property to System.
Windows Sets the BackColor property to True.

Use 3D Effects Mark this option to set the Appearance property to


3D Border for the following objects that appear in standard windows.
Items in scrolling windows are not affected.

• List box

• Multi-select list box

• Text

• Non-native list box

• Radio button

DEXTERITY UTILITIES 83
PA RT 2 U T I L I T Y R E F ER EN C E

• Check box

• Line – For adjoining lines that are of equal length, the utility will
delete the bottommost or rightmost line and set the remaining
line’s Appearance property to 3D Border.

• Push buttons – For graphical push buttons, the Border property is


also set to true.

Use Visual Indicator for Zooms Mark this option to add a visual
indicator to zoom field prompts. This utility will search for any static
text overlapping a zoom push button (a push button whose Zoom
property is true) and set the static text item’s Zoom property to true.
You can choose to display the following visual indicators for zoom field
prompts:

Refer to the • Display an underline for all zoom field prompts. You can show or
Field_SetZoom- hide this underline using the Field_SetZoomFormat() function. If
Format() function in you don’t use this function, the application will attempt to use the
the Function Library defaults file setting that specifies this characteristic. If this defaults
Reference manual for file setting doesn’t exist, the prompt will appear underlined.
more information.
• Change the color of all zoom field prompts. You can specify color
using the Field_SetZoomFormat() function. If you don’t use this
function, the application will attempt to use the defaults file setting
that specifies the zoom prompt color. If this defaults file setting
doesn’t exist, the prompt color will be black.

The underline and font color serve as visual cues, indicating the
presence of a zoom field. The following illustration shows how a
converted zoom field’s prompt will look:

84 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Use Custom Colors for Prompts Mark this option to use custom
prompt colors for all cyan prompts (rectangles or single-line entry
fields with their BackColor property set to Cyan) that are 18 pixels high.
The following actions are performed for each cyan prompt box or
single-line entry field:

• Sets the prompt’s Size-Height and Size-Width properties to the


same values as the Size-Height and Size-Width properties of the
cyan rectangle.

• Sets the prompt’s Position-Left and Position-Top properties to the


same values as the Position-Left and Position-Top properties of the
cyan rectangle.

Refer to the Field_Set- • Sets the prompt’s BackColor, FontColor, PatternColor and Pattern
CustomPrompt- properties to Custom. The Custom setting allows you change the
Format() function in color and pattern of prompts using the Field_SetCustomPrompt-
the Function Library Format() function.
Reference manual for
more information. • Sets the Border property to true.

• Deletes the cyan rectangle.

If you don’t use the Field_SetCustomPromptFormat() function to set


custom prompts, your application will attempt to use the defaults file
settings that specify the custom prompt characteristics. If these defaults
file settings don’t exist, the custom prompts will have the following
display characteristics:

Prompt attribute Default display


Back color Turquoise (Cyan)
Font color Black
Pattern 75% Shading
Pattern color White

These defaults do not apply to static text items for controls such as push
buttons, check boxes and radio buttons. Your operating system color
settings control the display characteristics for those objects if you
convert your application using the Use System Colors option.

DEXTERITY UTILITIES 85
PA RT 2 U T I L I T Y R E F ER EN C E

Refer to the Field_Set- Use Custom Colors For Scrolling Windows Mark this option
AltLineColor() func- to globally apply custom color support for scrolling window lines. This
tion in the Function utility will change the AltLineColor property for all scrolling windows
Library Reference man- to true. It also sets the BackColor, FontColor, Pattern and PatternColor
ual for more informa- properties to Custom. Scrolling windows will then display alternating
tion. scrolling window lines in the color you defined using the
Field_SetAltLineColor() function.

If you don’t use the Field_SetAltLineColor() function, the application


will attempt to use the defaults file settings that specify line
characteristics for scrolling windows whose AltLineColor propert is set
to true. If these defaults file settings don’t exist, alternating lines in the
scrolling window will have the following display characteristics:

Attribute Default display


Back color Green
Font color Black
Pattern 75% Shading
Pattern color White

Collapse Drop Down Lists and Combo Boxes Mark this option
to set properties for drop-down list and combo box fields. Drop-down
lists appearing in the control area will be resized to 20 pixels high. All
other drop-down lists will be resized to 18 pixels high. Combo boxes
will be resized to 20 pixels high. Both drop-down lists and combo boxes
will have the VisibleItems property set to 8.

Converting the drawn appearance of these controls makes the


window’s layout appear less cluttered. Modifier users will also benefit
from a more accurate representation of controls as they appear at
runtime.

Remove Fields from Tab Sequence Mark this option to remove


from the tab sequence any button with a picture as the static item (such
as a lookup button or a browse button) by setting its TabStop property
to false. This allows for more efficient data entry, since the tab sequence
includes only fields used for keyboard entry. This option does not
remove from the tab sequence buttons with text as the static item (such
as a Save or Delete button).

86 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Adjust Field Alignment Push buttons with static text values now
honor the Alignment property. Mark this option to properly set the
alignment of text that appears on push buttons.

Correct Required, Editable, Visible Properties Mark this


option to correct some internal properties for window fields. These
properties are used by the Modifier only. They do not affect the
appearance of fields.

New Palette Style Mark this option to update palettes to use the
new palette style. The following actions are performed for each palette:

• The positions of the push pin and palette title are exchanged.

• If a separator line exists below the palette title, the Appearance


property is set to 3D Border and the line is moved to position
(0, 18).

• Graphical push buttons are moved from the window and their
Visible property is set to false.

• The visual switch appearing at the bottom of the palette is moved


from the window and its Visible property is set to false.

• Prompt push buttons are widened to the width of the palette win-
dow.

• The prompt fields are positioned three pixels from the left edge of
the palette window.

• The data type used for the prompt button is updated to use native
pictures as the static items, rather than text. Then the following
properties are set for each prompt button:

Property Value
Appearance 3D Highlight
BackColor Transparent
Position-Left 0
Position-Top Current value + 4
Size-Width 128
Visible True

DEXTERITY UTILITIES 87
PA RT 2 U T I L I T Y R E F ER EN C E

The prompt button must be based on a global push button data type for the
button to appear properly. Otherwise, the prompt button won’t appear with the
3D highlight.

• The following properties are set for each prompt string field that
displays the prompt text:

Property Value
BackColor System
Border False
Size-Width 125
Position-Left 3
Position-Top Current value + 4

Set Change Flag Property For Scrolling Windows Mark this


option to set the SetChangeFlag property to True for all scrolling
window fields. In early versions of Dexterity, this property didn’t
default to True for scrolling window fields.

3. Run the conversion.


Click Start to begin the conversion process. When complete, the utility
saves the conversion report to the same location as your dictionary.

4. Review the conversion report.


The conversion text report shows all the objects the utility successfully
converted. If the utility was unable to convert an object on a given form,
it will display the form on the report in the following format:
***Exception*** Form: SY_Company_Options

Examine the forms listed to determine if any need additional changes.

5. Make any necessary changes.


There are a number of user interface changes you may need to make
before you’ve completely converted your application. The following
are the most common issues you will encounter.

Custom prompt colors If you choose the Use Custom Prompt


Colors option, and the utility encounters a prompt that is more than 18
pixels tall, it sets the BackColor property of the item to Custom;
however, an exception will still be logged. This situation can occur if
you’ve used one prompt for multiple fields.

88 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

Refer to the section System colors If you choose the Use System Colors option, all
titled System color windows in your application will inherit system colors as the window
support - automatic in background color. However, bitmaps that appear in these windows will
Chapter 11, “Win- keep their original background color, and the backgrounds may not
dows,” in Volume 1 of match.
the Dexterity Program-
mer’s Guide for infor- To address this problem, you’ll need to use the special background
mation about making color for the bitmap. The RGB values for this color are Red=192,
pictures blend with the Green=192 and Blue=192 on a scale of 255. If you use a paint or draw
window background application that specifies RGB colors as percentages, use the following
color. percentages: Red=75.294%, Green=75.294% and Blue=75.294%.
Changing the background color of the bitmap to this specific color
allows the bitmap’s background color to blend automatically with
whatever window background color the user selects.

DEXTERITY UTILITIES 89
PA RT 2 U T I L I T Y R E F ER EN C E

Changing Evaluate After


This utility allows you to analyze the reports in your application to find out
which use functions that are considered “unsafe.” You can also use it to set
Evaluate After to <any> for each calculated field in reports that don’t use
unsafe functions.

To use the Evaluate After utility, select an editable dictionary. Next, choose
Change Evaluate After from the Utilities menu. The Evaluate After Utility
window will appear.

Use this list to indicate


which functions are safe
and unsafe.

This field indicates which


functions to display.
Use these fields to save
the list of unsafe
functions to a file.

1. Indicate which functions are safe and unsafe.


The user-defined functions available for use in the Report Writer will be
listed. Indicate which are safe and unsafe by selecting a function name,
then clicking Toggle Status. Click All Safe to mark all functions as safe.
Click All Unsafe to mark all functions as unsafe.

If you are checking reports that integrate with Microsoft Dynamics GP, look in
the SDK (Software Development Kit) for a list of the unsafe functions in each
of these products.

2. Save the list of unsafe functions (optional).


When you have indicated which functions are safe and unsafe, you
may want to save the list of functions that are considered unsafe. Do
this by entering a file name in the File field and clicking Save.

90 DE X TE R I T Y U T IL IT IE S
C H A P T E R 7 D IC T I O N A R Y U T I L I T I E S

You can load a list of unsafe functions by clicking Browse and selecting
the text file that contains the list of unsafe functions, then clicking Load.

3. Specify the report options.


Mark the options that indicate what information you want to appear in
the log file generated by the Evaluate After utility. You can include the
following information:

Unsafe Reports that contain calculated fields that use unsafe


functions.

Modified Reports that contain calculated fields that don’t use any
unsafe functions. Evaluate After will be set to <any> for each calculated
field in these reports.

Unchanged Reports that contain calculated fields that don’t use any
unsafe functions. Evaluate After is already set to <any> for these
calculated fields, so no changes are required.

4. Analyze the reports (optional).


If you want to find out which reports contain calculated fields that use
unsafe functions and which will be modified by this utility, click
Analyze. A dialog will be displayed prompting you to enter the name
of the output report.

5. Run the update.


Click Modify to update the reports in the dictionary. All calculated
fields that don’t use unsafe functions will have the Evaluate After field
set to <any>.

DEXTERITY UTILITIES 91
92 DE X TE R I T Y U T IL IT IE S
PART 3: REPORT REFERENCE
Part 3: Report Reference
Use this portion of the documentation to learn about the reports available in
Dexterity Utilities. You may want to print reports from time to time when
developing or modifying a dictionary to keep information about the
dictionary on hand.

Printing reports
Before you can print reports, you must open the dictionary for which you
want information. All reports, with the exception of the Global Resource
Usage and Local Resource Usage reports, require a source dictionary. The
local and global resource usage reports require an editable dictionary.

After opening a dictionary, select the report you want to print from the
Reports menu. A window will appear, allowing you to specify options for
the report. Choose the appropriate options and click Print. All reports
generated by Dexterity Utilities are printed directly to a text file. A dialog
box will appear, allowing you to name the text file. You can open the text
file using any text editor. Reports have the best appearance if displayed in a
monospaced font.

Information about the sample reports


Space does not permit all possible printing options to be illustrated for each
report. To clarify which options are included on the sample reports, the
section titled Options included in this example indicates which options were
selected when the report was printed.

When reviewing the sample reports, keep in mind that information on most
is only a sample of the kind of information you can include on the report.
For example, while you can choose to print script information on several
reports, we’ve chosen to illustrate it on only the Forms report.

94 DE X TE R I T Y U T IL IT IE S
PA RT 3 R E P O R T R E F E R E N C E

Reports summary
The following table summarizes the reports most commonly used to view
information about specific resources.

Category Action Report to use


Composites List the characteristics Global Resources Report. Select Composites as
of a composite. the resource type.
List the unused Global Resource Usage Report. Select
composites in a Composites as the resource type. Select Unused as
dictionary. the resource detail. You can choose to remove the
unused composites.
List the data types that Global Resource Usage Report. Select
a composite is used Composites as the resource type. Select List
with. Occurrences as the resource detail.
Constants List the constants Global Resources Report. Select Constants as the
defined for a resource type.
dictionary.
Data Types List the characteristics Global Resources Report. Select Data Types as the
of global data types. resource type.
List the characteristics Local Resources Report. Choose Local Data Types
of local data types. as the resource type.
List the unused global Global Resource Usage Report. Select Data Types
data types in a as the resource type. Select Unused as the resource
dictionary. detail. You can choose to remove the unused data
types.
List the unused local Local Resource Usage Report. Select Local Data
data types for a form. Types as the resource type. Select Unused as the
resource detail. You can choose to remove the
unused local data types.
Fields List the characteristics Global Resources Report. Select Global Fields as
of global fields. the resource type.
List the characteristics Local Resources Report. Choose Local Fields as
of local fields. the resource type.
List the unused global Global Resource Usage Report. Select Fields as
fields in an application. the resource type. Select Unused as the resource
detail. You can choose to remove the unused fields.
List the unused local Local Resource Usage Report. Select Local Fields
fields for a form. as the resource type. Select Unused as the resource
detail. You can choose to remove the unused local
fields.
List where a specific Global Resource Usage Report. Select Global
global field is used. Fields as the resource type. Select List Occurrences
as the resource detail.

DEXTERITY UTILITIES 95
PA RT 3 R E P O R T R E F E R E N C E

Category Action Report to use


Fields (cont.) List where a specific Local Resource Usage Report. Select Local Fields
local field is used. as the resource type. Select List Occurrences as the
resource detail.
List the fields in a Forms Report. Mark the Window Information check
window. box.
List the field options Forms Report. Mark the Window Information check
for a window field. box.
List the fields without Summary Reports. Select Field Summary report.
physical names.
List the resource IDs Resource Lists. Select [Core] Corename Fields as
for global fields. the dictionary module. Select Field as the resource
type.
List the resource IDs Resource Lists report. Select [Form] Formname as
for the local fields in a the dictionary module. Select Field as the resource
form. type.
List the window fields Linked Prompt Report. Select All Fields and
that are linked to Prompts as the field detail.
prompts.
List the window fields Linked Prompt Report. Select Fields with no
that aren’t linked to a Prompt as the field detail.
prompt.
Print field scripts. Forms Report. Mark the Window Information check
box.
or
Local Resources Report. Choose Local Scripts as
the resource type.
Summarize the global Summary Reports. Select Field Summary report.
fields in the dictionary.
Formats List the characteristics Global Resources Report. Select Formats as the
of a format. resource type.
List the data types Global Resource Usage Report. Select Formats as
where a format is used. the resource type. Select List Occurrences as the
resource detail.
List the unused Global Resource Usage Report. Select Formats as
formats in a dictionary. the resource type. Select Unused as the resource
detail. You can choose to remove the unused formats.

96 DE X TE R I T Y U T IL IT IE S
PA RT 3 R E P O R T R E F E R E N C E

Category Action Report to use


Forms List the form series a Global Resource Usage Report. Select Forms as
form is associated the resource type.
with.
List the forms in a Global Resources Report. Select Form Groups as
specific form series. the resource type.
List the name of a Forms Report.
form.
List the resource ID of a Resource Lists report. Select [Form] Formname as
form. the dictionary module. Select Form as the resource
type.
List the tables attached Forms Report. Mark the File Information check box.
to a form.
List whether the form Global Resource Usage Report. Select Forms as
is used for a lookup. the resource type.
Print form-level Forms Report.
functions. or
Local Resources Report. Select Form Functions as
the resource type.
Print form-level Forms Report.
procedures. or
Local Resources Report. Select Form Procedures
as the resource type.
Print form scripts. Forms Report
or
Local Resources Report. Select Local Scripts as
the resource type.
Global Variables List the system Global Resources Report. Select System Variables
variables in a as the resource type.
dictionary.
Menus List the menus for a Forms Report. Mark the Menu Information check
form. box.
Print menu scripts. Forms Report. Mark the Menu Information check
box.
or
Local Resources Report. Select Local Scripts as
the resource type.
Messages List the messages in a Global Resources Report. Select Messages as the
dictionary. resource type.

DEXTERITY UTILITIES 97
PA RT 3 R E P O R T R E F E R E N C E

Category Action Report to use


Pictures List the generic Global Resources Report. Select Pictures as the
pictures in a dictionary. resource type.
List the Windows Global Resources Report. Select Metafiles as the
metafile pictures in a resource type.
dictionary.
List the unused Global Resource Usage Report. Select Pictures as
pictures in a dictionary. the resource type for generic pictures. Select
Metafiles as the resource type for Windows format
pictures. Select Unused as the resource detail. You
can choose to remove the unused pictures.
List where a picture is Global Resource Usage Report. Select Pictures as
used in a dictionary. the resource type for generic pictures. Select
Metafiles as the type for Windows format pictures.
Select List Occurrences as the resource detail.
Reports List the characteristics Reports Report.
of a report.
List the reports in a Global Resources Report. Select Report Groups as
specific series. the resource type.
Scripts Print field scripts. Forms Report. Mark the Window Information check
box.
or
Local Resources Report. Select Local Scripts as
the resource type.
Print form-level Forms Report.
functions. or
Local Resources Report. Select Form Functions as
the resource type.
Print form-level Forms Report.
procedures. or
Local Resources Report. Select Form Procedures
as the resource type.
Print form scripts. Forms Report.
or
Local Resources Report. Select Local Scripts as
the resource type.
Print global functions. Global Functions Report.
Print global procedures. Global Procedures Report.
Print menu scripts. Forms Report. Mark the Menu Information check
box.
or
Local Resources Report. Choose Local Scripts as
the resource type.

98 DE X TE R I T Y U T IL IT IE S
PA RT 3 R E P O R T R E F E R E N C E

Category Action Report to use


Scripts (cont.) Print window scripts. Forms Report. Mark the Window Information check
box.
or
Local Resources Report. Select Local Scripts as
the resource type.
Strings List the strings used in Global Resources Report. Select Strings as the
a dictionary. resource type.
List the unused strings Global Resource Usage Report. Select Strings as
in a dictionary. the resource type. Select Unused as the resource
detail. You can choose to remove the unused strings.
List where a string is Global Resource Usage Report. Select Strings as
used in a dictionary. the resource type. Select List Occurrence as the
resource detail.
Tables List table Tables Report.
characteristics.
List how many times Global Resource Usage Report. Select Tables as
and where a table is the resource type. Select List Occurrences as the
linked. resource detail.
List the fields in a table. Tables Report. Mark the Fields check box.
List the keys for a table. Tables Report. Mark the Keys check box.
List the table Tables Report. Mark the Relationships check box.
relationships for a
table.
List the tables attached Forms Report. Mark the Table Information check
to a form. box.
List the tables in a table Global Resources Report. Select Table Groups as
group. the resource type.
List the tables in a Global Resources Report. Select Table Lists as the
specific table series. resource type.
List the table groups in Global Resources Report. Select Table Group Lists
a specific series. as the resource type.
List the resource IDs of Resource Lists report. Select [Core] Corename Core
table groups. as the dictionary module. Select Table Group as the
resource type.
List the resource IDs of Resource Lists report. Select [Core] Corename Core
tables. as the dictionary module. Select Table as the
resource type.
Summarize the Summary Reports. Select Table Summary report.
information for a table.
Table Identify invalid table Table Relationships Validation Report.
Relationships relationships.

DEXTERITY UTILITIES 99
PA RT 3 R E P O R T R E F E R E N C E

Category Action Report to use


Windows List characteristics of a Forms Report. Mark the Window Information check
window. box.
List resource ID of a Resource Lists report. Select [Form] Formname as
window. the dictionary module. Select Window as the
resource type.
Print window scripts. Forms Report. Mark the Window Information check
box.
or
Local Resources Report. Choose Local Scripts as
the resource type.

100 DE X TE R I T Y U T IL IT IE S
F O R M S RE P O R T

Forms Report
The Forms Report contains information about a form and the windows,
fields, tables, menus and scripts that are part of the form. This report can
also be used to print the scripts attached to the form and to the windows,
fields and menus for the form.

To use the Forms Report, open a source dictionary and choose Forms from
the Reports menu. The Forms Report window will appear, as shown in the
following illustration.

These are the options


for the report.
This drop-down list
specifies the series of the
forms in the Forms list.

The report will contain


information for forms in
this list.

1. Mark the report options.


Mark the appropriate options to indicate the information you want
included in the report. The selections you make will apply to all forms
for which you print reports.

Scripts Only Mark this option to print only script information. Other
information won’t be included in the report.
Table Information This option allows you to include information
about all tables used by each form selected.
Window Information This option allows you to include details
about all windows within each form.
Menu Information This option allows you to include information
about any menus that are part of each form.

DEXTERITY UTILITIES 101


PA RT 3 R E P O R T R E F E R E N C E

2. Indicate the level of detail for the script and field


information.
The first Script and Field Detail list allows you to specify the level of
script detail to print. Select one of three options:
• No Scripts – Excludes script information from the report.

• Script Names – Includes only script names on the report.

• Script Names and Source – Includes script names and script


source.

Prompts placed on the The second Script and Field Detail list allows you to specify the level of
window using the text field detail to print for each field on a window in the form. Select one of
tool are static window four options:
fields.
• Name Only–All – Lists only the name of all window fields.

• Name Only–Non-static – Lists only names of non-static window


fields, such as string or currency fields.

• Detailed–All – Lists detailed information about all window fields.

• Detailed–Non-static – Lists detailed information for only non-


static window fields, such as string or currency fields.

3. Select the forms you want to print information for.


Select the series containing the form you want to print information for.
The Forms list will be filled with the names of forms in the selected
series. Select each of these forms you want to include and click Insert to
display it in the Selected Forms list. Double-clicking the selection
performs the same function. Click Insert All to select all forms listed.

4. Print the report.


Click Print to print the report for the forms in the Selected Forms list.
The Report File Name dialog box will appear. Enter the name and
location for the Forms Report, then click Save. A sample Forms Report
is shown on the following page.

102 DE X TE R I T Y U T IL IT IE S
F O R M S RE P O R T

Forms Report

Time printed: 11/24/1995 12:06:14

Dictionary: HD1:RESM.DIC
Form Resources
____________________________________________________________________________________
Form : Houses
Series : Sales
Pre-form Script : None
Post-form Script: None
Table Display Name Physical Name Table Group Access
_____________________________________________________________________________________________________________
House_Pictures House Pictures HOUSEPIC House Tables Read/Write
House_Descriptions House Descriptions HOUSEDES House Tables Read/Write
Seller_Data Seller Data SELLDAT Seller Tables Read/Write
House_Data House Data HOUSEDAT House Tables Read/Write

Window Name : Houses


Display Name: Houses
Window Type : Standard
Options:
Close Box
Auto Open
Auto Link
Background Color
Link Table : House_Data
Background : [None]
Pre-window Script: Houses_WIN_PRE !255F1255F0!
____________________________________________________________________________________
disable '(L) Delete Button'.
____________________________________________________________________________________

Post-window Script: Houses_WIN_POST !255F1255F1!


____________________________________________________________________________________
local integer reply.

if changed (window Houses) then


set 'reply' to ask("Do you want to save your changes","Yes","No","Cancel").
if reply = ASKBUTTON1 then
{Yes, save the changes}
if required(form Houses) then
{Move from window to table buffer.}
copy from window Houses to table House_Data.

Change-Field Script : [None]


Post-Field Script : [None]
____________________________________________________________________________________

Options included in this example:


Window Information
Table Information
Script Detail: Script Names and Source
Field Detail: Detailed - Non-static

DEXTERITY UTILITIES 103


PA RT 3 R E P O R T R E F E R E N C E

Reports Report
The Reports Report contains information about reports that have been
created in a dictionary.

To use the Reports Report, open a source dictionary and choose Reports
from the Reports menu. The Reports Report window will appear, as shown
in the following illustration.

This drop-down list


specifies the series of the
reports in the Reports list.

The report will contain


information for reports in
this list.

1. Select the reports you want to print information for.


Select the series containing the report you want to print information
for; the Reports list will be filled with the names of reports in the
selected series. Select each report you want to include and click Insert to
display it in the Selected Reports list.

2. Print the report.


Click Print to print the report for the reports in the Selected Reports list.
The Report File Name dialog box will appear. Enter the name and
location for the Reports Report, then click Save. A sample Reports
Report is shown on the following page.

104 DE X TE R I T Y U T IL IT IE S
R E PO RT S RE P O R T

Reports Report

Time printed: 11/24/1995 11:43:35

Dictionary: HD1:RESM.DIC
Report Resources
____________________________________________________________________________________
Report : Seller Report
Series : Sales
Type : Graphics
Options :
First Page Header
First Page Footer
Tables :
Seller_Data using key Seller_Data_By_ID
House_Data(1-M)
Sort :
Restrict :

Report Design Document:

This report prints a list of all individuals who currently have real estate for sale.

Tables used:
Seller_Data is the main table for this report.
House_Data is a related table.

____________________________________________________________________________________

Options included in this example:


Design Documents

DEXTERITY UTILITIES 105


PA RT 3 R E P O R T R E F E R E N C E

Tables Report
The Tables Report contains information about tables in a dictionary. The
report can include the display and physical names of the table, the record
size, information about fields in the table, and the name of the table group
to which the table belongs (if any).

To use the Tables Report, open a source dictionary and choose Tables from
the Reports menu. The Tables Report window will appear, as shown in the
following illustration.

These are the options


for the report.
This drop-down list
specifies the series of the
tables in the Tables list.

The report will contain


information for tables in
this list.

1. Select the report options.


Mark the appropriate options to indicate the information you want
included in the report. The selections you make will apply to all tables
for which you print reports.

Keys Mark this option to list the keys in the table. A list of fields in
each key and the attributes of the key will follow each key name.

106 DE X TE R I T Y U T IL IT IE S
T A B L E S R E P O R T

Fields This option allows you to include the following information


about the table’s fields:

• Name

• Control type

• Keyable and storage lengths

• String field attributes

• Range of values (for currency fields only)

• Number of elements in array fields

• Static values for list boxes, drop-down lists, push buttons, radio
buttons, check boxes and visual switches

Relationships Mark this option to include information about related


tables, including the linked fields.

2. Select the tables you want to print information for.


Select the series containing the tables you want to print information for.
The Tables list will be filled with the names of tables in the selected
series. Select each of these tables you want to include and click Insert to
display it in the Selected Tables list. Double-clicking the selection will
perform the same function. Click Insert All to select all tables listed.

3. Print the report.


Click Print to print the report for the tables in the Selected Tables list.
The Report File Name dialog box will appear. Enter the name and
location for the Tables Report, then click Save. A sample Tables Report
is shown on the following page.

DEXTERITY UTILITIES 107


PA RT 3 R E P O R T R E F E R E N C E

Tables Report

Time printed: 11/24/1995 10:59:15

Dictionary: HD1:RESM.DIC
Table Resources
____________________________________________________________________________________
Table : Seller_Data Record Size : 152
Display Name : Seller Data Physical Name: SELLDAT
Database Type: Default
Series : Sales Table Group : Seller Tables
Options : Use 4 byte header
String Attribute Legend: U-Uppercase A-Alphanumeric #-Numeric Only
Lengths String Currency Range
Field Name Storage Type Keyable Storage Attributes Low High
_____________________________________________________________________________________________________________
Seller ID String 6 8 [ ]
Seller Name String 30 32 [ ]
Address String 30 32 [ ]
City String 20 22 [ ]
State String 2 4 [U A ]
ZIP Code String 9 10 [ #]
Phone String 10 12 [ #]
Agent String 30 32 [ ]

Keys
____________________________________________________________________________________
Seller_Data_By_ID
Seller ID
Key Length: 8
Seller_Data_By_Name
Seller Name
Key Length: 32
Max Key Length: 32
Relationship :
____________________________________________________________________________________
22000
Seller_Data links to many records of table House_Data using key House_Data_By_Seller_ID
Linked fields:
Seller ID

____________________________________________________________________________________

Options included in this example:


Keys
Fields
Relationships

108 DE X TE R I T Y U T IL IT IE S
G L O BA L F U N C T I O N S RE P O R T

Global Functions Report


The Global Functions Report allows you to print the script source for global
functions.

To use the Global Functions Report, open a source dictionary and choose
Global Functions from the Reports menu. The Global Functions Report
window will appear, as shown in the following illustration.

This option determines


whether each script
begins on a new page.

The report will contain the


script source for the global
functions in this list.

1. Mark the report options.


Mark Form Feed After Script to start each global function on a separate
page.

2. Select the global functions you want to print.


Select the series containing the global functions you want to print; the
Functions list will be filled with the names of global functions in the
selected series. Select each function to include and click Insert to
display it in the Selected Functions list.

3. Print the report.


Click Print to print the report for the global functions in the Selected
Functions list. The Report File Name dialog box will appear. Enter the
name and location for the Global Functions Report, then click Save. A
sample Global Functions Report is shown on the following page.

DEXTERITY UTILITIES 109


PA RT 3 R E P O R T R E F E R E N C E

Global Functions Report

Time printed: 11/24/1995 11:59:25

Dictionary: HD1:RANDOM.DIC
Functions
____________________________________________________________________________________
FUNCTION: random() !10093001!
____________________________________________________________________________________
function returns currency random_number.

local long temp, low, hi, test.

{Keep the current seed. This will be used to get the next random number in the
stream.}
set temp to seed of globals.

{Generate the next seed.}


set hi to seed of globals / QUOTIENT.
set low to seed of globals % QUOTIENT.
set test to (MULTIPLIER * low) - (REMAINDER * hi).
if test > 0 then
set seed of globals to test.
else
set seed of globals to test + MODULUS.
end if.
set random_number to temp * (1.0) / MODULUS.
____________________________________________________________________________________

Options included in this example:


Form Feed After Script

110 DE X TE R I T Y U T IL IT IE S
G L O BA L P RO C E D U RE S RE P O R T

Global Procedures Report


The Global Procedures Report allows you to print the script source for
global procedures.

To use the Global Procedures Report, open a source dictionary and choose
Global Procedures from the Reports menu. The Global Procedures Report
window will appear, as shown in the following illustration.

This option determines


whether each script
begins on a new page.

The report will contain the


script source for the global
procedures in this list.

1. Mark the report options.


Mark Form Feed After Script to start each procedure on a separate
page.

2. Select the procedures you want to print.


Select the series containing the global procedures you want to print; the
Global Procedures list will be filled with the names of global
procedures in the selected series. Select each procedure you want to
include and click Insert to display it in the Selected Global Procedures
list.

3. Print the report.


Click Print to print the report for the global procedures in the Selected
Global Procedures list. The Report File Name dialog box will appear.
Enter the name and location for the Global Procedures Report, then
click Save. A sample Global Procedures Report is shown on the
following page.

DEXTERITY UTILITIES 111


PA RT 3 R E P O R T R E F E R E N C E

Global Procedures Report

Time printed: 11/24/1995 13:02:38

Dictionary: HD1:RESM.DIC
Global Procedures
____________________________________________________________________________________
PROCEDURE: Progress_Control !1009155F0!
____________________________________________________________________________________
{--------------------------------------------------------------------------
Script name: Progress_Control
Type: Procedure Script
Description:
This script updates the Progress_Control window based upon the ratio
of the two values passed to this script. The ratio is used to update
a visual switch that shows progress between 0% and 100%.
--------------------------------------------------------------------------}

in long Current_Value.
in long Total_Value.

local integer previous_value, current_display.

set previous_value to Progress_Bar_Status of globals.

{Don't update the Progress_Control form if it isn't open.}


if isopen(form Progress_Control) then
{Progress_Control is open, so update it.}
if Current_Value >= Total_Value then
set Progress_Bar of window Progress_Control of form Progress_Control to 10.
set Progress_Bar_Status of globals to 0.
else
set current_display to ((Current_Value*1.0/Total_Value)*100.0).
if ((current_display - previous_value) >= 10) then
set Progress_Bar of window Progress_Control of form Progress_Control to
(current_display)/10.
set Progress_Bar_Status of globals to previous_value + 10.
end if.
end if.
end if.
____________________________________________________________________________________

Options included in this example:


Form Feed After Script

112 DE X TE R I T Y U T IL IT IE S
G L O B A L RE S O U RC E S RE P O R T

Global Resources Report


The Global Resources Report contains information about global resources
in a dictionary. Typically, it is used to list a specific type of resource, such as
messages.

To use the Global Resources Report, open a source dictionary and choose
Global Resources from the Reports menu. The Global Resources window
will appear, as shown in the following illustration.

This drop-down list specifies


the type of resource for
which information will be
reported.

Select a resource in this


list if you’re printing
information for a specific
resource.

The Printing Options


specify which resources to
include in the report.

1. Select a series for the resource.


From the Series drop-down list, select the series containing the global
resources for which you want to print information.

2. Select a resource type.


From the Resource Type drop-down list, select the type of global
resource for which you want to print information. The following is a list
of the resource types you can select, along with the information printed
for each:

• Composites – Name and the list of components.

• Constants – ID, name and value.

DEXTERITY UTILITIES 113


PA RT 3 R E P O R T R E F E R E N C E

• Data types – Name, control type, keyable length, storage length


and static values.

• Table, Table Group, Form and Report lists – List name, list mem-
bers and their internal and display names.

• Formats – Attributes of the format.

• Global Fields – Name, data type, control type, keyable length, stor-
age length and static values.

• Table Groups – Name, member tables and the table group display
name.

• Pictures, Mac pictures and Metafiles – Name and ID.

• Messages – ID, name and message text.

• Strings – ID, number of occurrences and the actual string.

• System variables – Name and storage type.

3. Specify the printing options.


The printing options specify which resources to include in the report.
Chose one of the following:

• To include all global resources of all types in the report, choose All
Resources. This option may result in a lengthy report.

• To include information about all resources listed in the Resources


list, choose Listed Resources.

• To include a single resource of the specified type, select the resource


in the Resources list and choose the Selected Resource printing
option.

4. Print the report.


Click Print to print the report for the selected global resources. The
Report File Name dialog box will appear. Enter the name and location
for the Global Resources Report, then click Save. A sample Global
Resources Report is shown on the following page.

114 DE X TE R I T Y U T IL IT IE S
G L O B A L RE S O U RC E S RE P O R T

Global Resources Report

Time printed: 11/24/1995 14:02:33

Dictionary: HD1:RESM.DIC
Global Field Resources
____________________________________________________________________________________
Lengths Lookup Form
Field / Data Type Array Storage Type Keyable Storage Values
____________________________________________________________________________________
Address
STR30 String 30 32
Agent
STR30 String 30 32
Air Conditioned
Air Conditioned Radio Group 3 2
1 Yes
2 No
Asking Price
CUR9 Currency 12 10
Baths
INT2 Integer 2 2
Bedrooms
INT2 Integer 2 2
Buyer ID
Buyer_ID String 6 8
Buyer Name
STR30 String 30 32
Buyers Button
PB_Buyers Push Button 13 2
1 [Pict] Buyers Button Up
2 [Pict] Buyers Button Down
City
STR20 String 20 22
Description
Text32000 Text [Var Len] 32000 0
Expand Button
Expand Button Visual Switch 16 2
1 [Pict] Scroll_Win_Expand_Down
2 [Pict] Scroll_Win_Expand_Up
Floor Space
INT5 Integer 5 2

ZIP Code
ZIP_STR9 String 9 10
____________________________________________________________________________________

Options included in this example:


Resource Type: Global Fields
Printing Options: Listed Resources

DEXTERITY UTILITIES 115


PA RT 3 R E P O R T R E F E R E N C E

Local Resources Report


The Local Resources Report contains information about local resources for a
specific form in a dictionary. It allows you to include information about
local data types and local fields, as well as script source for local scripts,
form procedures and form functions.

To use the Local Resources Report, open a source dictionary and choose
Local Resources from the Reports menu. The Local Resources window will
appear, as shown in the following illustration.

Select the form in this list


for which you want to
print information.
This drop-down list specifies
the type of local resource for
which information will be
reported.
Select a resource in this
list if you want to print
information for a specific
resource.

The Printing Options


specify which resources
to include in the report.

1. Select a series and form.


Select a form series; the Forms list will be filled with the names of forms
in the selected series. Select the form for which you want to print local
resource information.

116 DE X TE R I T Y U T IL IT IE S
LO C A L RE S O U RC E S RE P O R T

2. Select a resource type.


From the Resource Type list, select the type of local resource for which
you want to print information. The following is a list of the local
resource types you can select, along with the information printed for
each:

• Form Functions – Script name and source.

• Form Procedures – Script name and source.

• Local Data Types – Name, storage type, keyable length, storage


length, static values and format.

• Local Fields – Name, data type, array size, control type, keyable
length, storage length and static values.

• Local Scripts – Script name and source.

3. Specify the printing options.


The printing options specify which resources to include in the report.
Chose one of the following:

• To include all local resources of all types in the report, choose All
Resources. This option may result in a lengthy report.

• To include information about all resources listed in the Resources


list, choose Listed Resources.

• To include a single resource of the specified type, select the resource


in the Resources list and choose the Selected Resource printing
option.

4. Print the report.


Click Print to print the report for the selected local resources. The
Report File Name dialog box will appear. Enter the name and location
for the Local Resources Report, then click Save. A sample Local
Resources Report is shown on the following page.

DEXTERITY UTILITIES 117


PA RT 3 R E P O R T R E F E R E N C E

Local Resources Report

Time printed: 11/24/1995 15:05:34

Dictionary: HD1:RESM.DIC
Form: Houses
Local Field Resources
____________________________________________________________________________________
Lengths Lookup Form
Field / Data Type Array Storage Type Keyable Storage Values
____________________________________________________________________________________
Amount Financed
Amount Financed Currency 12 10
Calculate
Calculate Push Button 9 2
1 Calculate
Clear Button
Clear Button Push Button 5 2
1 Clear
Closing Cost Percentage
Closing Cost Percentage Currency 6 10
Closing Costs
Closing Costs Currency 10 10
Delete Button
Delete Button Push Button 6 2
1 Delete
Description Button
Description Button Push Button 11 2
1 Description
DownPayment
DownPayment Currency 12 10
Interest_Rate
Interest_Rate Currency 7 10
Match Buyers
Match Buyers Push Button 12 2
1 Match Buyers
Monthly Payment Button
Monthly Payment Button Push Button 10 2
1 Payment...
Monthly_Payment
Monthly_Payment Currency 12 10
Payments_per_Year
Payments_per_Year Integer 4 2

Years
Years Integer 2 2
____________________________________________________________________________________

Options included in this example:


Resource Type: Local Fields
Printing Options: Listed Resources

118 DE X TE R I T Y U T IL IT IE S
R E S O U RC E L I S T S

Resource Lists
The Resource Lists report is used to view the names of resources and their
associated resource ID numbers. It is also useful for identifying the
dictionary core and module in which specific resources are located. Refer to
Appendix A, “Dictionary Structure,” for more information about the
structure of a dictionary.

To use the Resource Lists report, open a source dictionary and choose
Resource Lists from the Reports menu. The Resource Lists window will
appear, as shown in the following illustration.

Select the dictionary


module containing the
resources for which you
want to view information.

This list displays the types The report will contain


of resources in the selected information for the
dictionary module. dictionary modules and
resource types in this list.

1. Select a dictionary module.


From the Dictionary Modules list, select the dictionary module that
contains the resources for which you want to view information. The
Resource Types list will be filled with the resource types that are part of
the selected module.

Each specific module won’t necessarily contain all the types of


resources that can be stored in that module. For example, if you select a
form module that doesn’t have any local data types, you won’t see Data
Type as one of the entries in the Resource Types list.

DEXTERITY UTILITIES 119


PA RT 3 R E P O R T R E F E R E N C E

2. Select the appropriate resource types.


Select a resource type from the Resource Types list and click Insert to
display the resource type in the Selected Resource Types list. Repeat
this process to include information for as many dictionary modules and
resource types as you want. To insert all resource types displayed in the
Resource Types list into the Selected Resource Types list, mark the All
Resource Types check box and click Insert.

To remove an item you’ve inserted in the Selected Resource Types list,


select it and click Remove. Click Remove All to clear the list and begin
again.

3. Print the report.


Click Print to print the report for the resource types in the Selected
Resource Types list. The Report File Name dialog box will appear. Enter
the name and location for the Resource Lists report, then click Save. A
sample Resource Lists report is shown on the following page.

120 DE X TE R I T Y U T IL IT IE S
R E S O U RC E L I S T S

Resource Lists

Time printed: 11/24/1995 16:15:26

Dictionary: HD1:RESM.DIC
Resource Lists
____________________________________________________________________________________

-- Table resources in System Core --


Id # 22000 Name: House_Descriptions
Id # 22001 Name: Seller_Data
Id # 22002 Name: House_Data
Id # 22003 Name: House_Pictures
Id # 22004 Name: Buyer_Data

-- Key resources in System Core --


Id # 22000 Name: House_Descriptions_By_ID
Id # 22001 Name: Seller_Data_By_ID
Id # 22002 Name: Seller_Data_By_Name
Id # 22003 Name: House_Data_By_ID
Id # 22004 Name: House_Pictures_By_ID
Id # 22005 Name: Buyer_Data_By_ID
Id # 22006 Name: Buyer_Data_By_Name
Id # 22007 Name: House_Data_By_Seller_ID
Id # 22009 Name: Buyer_Data_By_Price
Id # 22010 Name: House_Data_By_Price

-- Format resources in System Core --


Id # 22000 Name: Ref_Number
Id # 22001 Name: STR_U
Id # 22002 Name: ZIP_STR9
Id # 22003 Name: STR10_Phone
Id # 22004 Name: CUR
Id # 22005 Name: Interest_Rate

-- Picture resources in System Core --


Id # 22000 Name: GPS Logo
Id # 22001 Name: Progress_Bar_Scale
Id # 22002 Name: RESM_Logo
Id # 22004 Name: RESM About Box Picture

-- Relation resources in System Core --


Id # 22000 Name: 22000

Id # 22013 Name: DexterSys


Id # 22014 Name: RW
____________________________________________________________________________________

DEXTERITY UTILITIES 121


PA RT 3 R E P O R T R E F E R E N C E

Global Resource Usage Report


The Global Resource Usage Report lists how specific global resources are
used throughout a dictionary. The report can include the number of times a
global resource is used or where the resource is used. It can also print a list
of the unused resources in the dictionary (global resources that have been
created but not used by other resources). An option for the report allows
you to remove the unused resources from the dictionary.

To use the Global Resource Usage Report, open an editable dictionary and
choose Global Resource Usage from the Reports menu. The Global
Resource Usage window will appear, as shown in the following illustration.

This drop-down list


specifies the type of
resources to display in the
Resources list.

Select a resource in this


list if you’re printing
information for a specific
resource.

These options indicate what


information will be included in
the report, and whether unused
resources will be removed.

1. Select the series for the resources.


From the Series drop-down list, select the series containing the global
resources for which you want to print information.

122 DE X TE R I T Y U T IL IT IE S
G L O B A L R E S O U RC E U S A G E R E P O R T

2. Indicate the resource detail.


Use the Resource Detail drop-down list to indicate the information to
include in the report. Choose one of the following options.

• Unused – List the unused global resources.

• No. Occurrences – List the number of occurrences of a global


resource.

• List Occurrences – List where a global resource is used.

3. Select a resource type.


From the Resource Type drop-down list, select the type of global
resource for which you want to print information. The following is a list
of the resource types you can select:

• Composites
• Data Types
• Formats
• Forms
• Global Fields
• Mac Pictures
• Metafiles
• Pictures
• Relationships
• Reports
• Strings
• Table Groups
• Tables

4. Indicate whether to remove unused resources.


If you’re printing a list of unused resources, you can mark the Remove
Unused check box to remove the unused resources.

You may want to print and review the report listing the unused resources
before you actually remove them from the dictionary.

Use caution when removing unused global fields. If a global field is used only
as a local variable type in a script, this report will consider it unused and will
delete it from the dictionary.

DEXTERITY UTILITIES 123


PA RT 3 R E P O R T R E F E R E N C E

5. Select the resources to include in the report.


To include a single resource of the specified type, select the resource in
the Resources list. To include all resources listed in the Resources list,
mark the All Resources Listed check box.

6. Print the report.


Click Print to print the report for the selected resources. The Report File
Name dialog box will appear. Enter the name and location for the
Global Resource Usage Report, then click Save. A sample Global
Resource Usage Report is shown on the following page.

If you’re listing unused resources and have marked the Remove


Unused check box, any of the selected resources that are unused will be
removed from the dictionary.

124 DE X TE R I T Y U T IL IT IE S
G L O B A L R E S O U RC E U S A G E R E P O R T

Global Resource Usage Report

Time printed: 11/24/1995 16:51:13

Dictionary: HD1:RESM.DIC
Field Usage
____________________________________________________________________________________
Occurrences of 'House ID':
Table House_Descriptions
Table House_Data
Table House_Pictures
Table Candidate_Houses_List
Key House_Descriptions_By_ID
Key House_Data_By_ID
Key House_Pictures_By_ID
Key Candidate_Houses_List_By_ID
Form : Houses
Window Houses
Window Monthly_Payment
Form : House_Lookup
Window House_Lookup_Scroll [Scrolling Window]

Number of occurrences: 11

Occurrences of 'Description':
Table House_Descriptions
Form : Houses
Window House_Description

Number of occurrences: 2

Occurrences of 'Seller ID':


Table Seller_Data
Table House_Data
Key Seller_Data_By_ID
Key House_Data_By_Seller_ID
Form : Houses
Window Houses
Form : House_Lookup
Window House_Lookup_Scroll [Scrolling Window]
Form : Sellers
Window Sellers
Form : Seller_Lookup

Window Tool_Bar

Number of occurrences: 1

Options included in this example:


Resource Type: Global Fields
Resource Detail: List Occurrences
All Resources Listed

DEXTERITY UTILITIES 125


PA RT 3 R E P O R T R E F E R E N C E

Local Resource Usage Report


The Local Resource Usage Report lists how local resources are used within
a specified form or how many times the resources are used. It can also be
used to print a list of the unused local resources for a form. An option for
the report allows you to remove the unused local resources from the
dictionary.

To use the Local Resource Usage Report, open an editable dictionary and
choose Local Resource Usage from the Reports menu. The Local Resource
Usage window will appear, as shown in the following illustration.

These options indicate what


information will be included
in the report, and whether
unused resources will be
removed.

The report will include


information about local
resources for the form
selected in this list.

Select a resource in this


list if you’re printing
information for a specific
resource.

1. Select a series.
Select the series containing the form for which you want to print
information about local resources.

2. Select a form.
Select the form for which you want to print local resource information.

126 DE X TE R I T Y U T IL IT IE S
LO C A L RE S O U RC E U S A G E RE P O R T

3. Indicate the resource detail.


Use the Resource Detail drop-down list to indicate the information to
include in the report. Choose one of the following options:

• Unused – List the unused local resources.

• No. Occurrences – List the number of occurrences of a local


resource.

• List Occurrences – List where a local resource is used.

4. Select a resource type.


From the Resource Type drop-down list, select the type of local resource
for which you want to print information. The following is a list of the
resource types you can select:

• Local Data Types


• Local Fields
• Local Scripts

5. Indicate whether to remove unused resources.


If you’re printing a list of unused resources, you can mark the Remove
Unused check box to remove the unused resources.

6. Select the resources to include in the report.


To include a single resource of the specified type, select the resource in
the Resources list. To include all resources listed in the Resources list,
mark the All Resources Listed check box.

7. Print the report.


Click Print to print the report for the selected resources. The Report File
Name dialog box will appear. Enter the name and location for the Local
Resource Usage Report, then click Save. A sample Local Resource
Usage Report is shown on the following page.

If you’re listing unused resources and have marked the Remove


Unused check box, any selected resources that are unused will be
removed from the dictionary.

DEXTERITY UTILITIES 127


PA RT 3 R E P O R T R E F E R E N C E

Local Resource Usage Report

Time printed: 11/24/1995 17:00:20

Dictionary: HD1:RESM.DIC
Unused Local Fields
____________________________________________________________________________________
Yes
No
PushButton5
DDL6
____________________________________________________________________________________

Options included in this example:


Resource Type: Local Fields
Resource Detail: Unused
All Resources Listed

128 DE X TE R I T Y U T IL IT IE S
L IN K E D P RO M P T RE P O R T

Linked Prompt Report


The Linked Prompt Report displays fields and the corresponding prompts
the fields have been linked to. The report lists all fields and prompts or lists
only fields that have not been linked to prompts. Refer to the Chapter 11,
“Windows,” of Volume 1 of the Dexterity Programmer’s Guide for
information about linking fields to prompts.

To use the Linked Prompt Report, open a source dictionary and choose
Linked Prompts from the Reports menu. The Linked Prompt Report
window will appear, as shown in the following illustration.

This drop-down list


indicates what
information will be
included in the report.

The report will


contain information
for forms in this list.

1. Select the forms you want to print information for.


Select the series containing the forms you want to print information for;
the Forms list will be filled with the names of forms in the selected
series. Select each form you want to include and click Insert to display
it in the Selected Forms list. Double-clicking the selection will perform
the same function. Click Insert All to select all forms listed.

2. Indicate the report detail.


Use the Report Detail drop-down list to indicate the information to
include in the report. Choose one of the following options.

• Fields with no Prompt – List the fields that have no corresponding


linked prompt.

• All Fields and Prompts – List all fields and prompts, including
fields with no assigned prompt.

DEXTERITY UTILITIES 129


PA RT 3 R E P O R T R E F E R E N C E

3. Print the report.


Click Print to print the report for the selected forms. The Report File
Name dialog box will appear. Enter the name and location for the
Linked Prompt Report, then click Save. A sample Linked Prompt
Report is shown on the following page.

130 DE X TE R I T Y U T IL IT IE S
L IN K E D P RO M P T RE P O R T

Linked Prompt Report

Time printed: 11/24/1995 17:46:43

Dictionary: HD1:RESM.DIC
Linked Prompt Report
____________________________________________________________________________________
Form : Sellers
Window: Sellers
Field Prompt
____________________________________________________________________________________
Seller ID Seller ID:
Seller Name Seller Name:
Address Address:
City City, State, ZIP:
State City, State, ZIP:
ZIP Code City, State, ZIP:
Phone Phone:
Agent Agent:
____________________________________________________________________________________

Options included in this example:


Field Detail: All Fields and Prompts

DEXTERITY UTILITIES 131


PA RT 3 R E P O R T R E F E R E N C E

Diagnostics Report (Emergency Diagnostics)


The Diagnostics Report displays detailed information about a dictionary’s
structure. It can also detect certain types of dictionary corruption.
Specifically, it looks for gaps or overlaps in how resources are stored in the
dictionary. Also, if an unexpected crash occurs while a dictionary is open,
the Diagnostics Report can find discrepancies that can result between the
actual size of the dictionary and the size reported by the operating system.
We recommend that you run the Diagnostics Report when you’re having
problems with a dictionary and before you distribute a dictionary to
customers.

The only difference between the Diagnostics Report and Emergency Diagnostics
Report is that for the Emergency Diagnostics Report, the Diagnostics window isn’t
displayed and all report information is always included.

To use the Diagnostics Report, open a source dictionary and choose


Diagnostics from the Reports menu. The Diagnostics window will appear,
as shown in the following illustration.

If no items appear in the Dictionary Modules list, the section of the dictionary
containing module information may be damaged. In this rare instance, nothing can
be recovered from the dictionary.

132 DE X TE R I T Y U T IL IT IE S
D I A G N O S T I C S R E P O R T ( E M E R G E N C Y D I A G N O S T I C S )

1. Select the information to include in the report.


Mark the appropriate options to indicate the information you want
included in the report.

Block Table Mark this option to include a block table in the report.
The block table lists information about each block in the dictionary,
such as its size and location in the dictionary.

We recommend that you include the block table because if the Diagnostics
Report finds any problems with the dictionary, they will be listed in the block
table section.

Module Table Mark this option to include a module table at the


beginning of the report. The module table includes information about
all modules in the dictionary, such as the quantity of each type of
resource in each module.

2. Select the amount of directory information to include.


Use the Directory drop-down list to include module directory
information. A module directory contains a list of all resources in the
module, including the names of the resources, the resource types and
IDs, the version number assigned to each resource, and the blocks in
the dictionary in which the resources are stored. Select one of the
following options:

• No Directory Information – Don’t include directory information.

• Directory Information for Selected Module – Include directory


information for only the module selected in the Dictionary Mod-
ules list.

• Directory Information for All Modules – Include directory infor-


mation for all modules in the dictionary.

3. Print the report.


Click Print to print the Diagnostics Report. The Report File Name
dialog box will appear. Enter the name and location for the Diagnostics
Report, then click Save. A sample diagnostics report is shown at the
end of this section.

DEXTERITY UTILITIES 133


PA RT 3 R E P O R T R E F E R E N C E

4. Examine the report.


If problems were found, they will be displayed in the block table
section of the Diagnostics Report. To examine the block table for errors,
use a text utility and search for ** Error. Also, at the end of the block
table section, compare the calculated file size and the O/S file size
numbers. They should be the same.

Unused in allocated blocks 25597


Unused in unallocated blocks 99172
Total unused in file 19743913
O/S File size 19743913

These two values at the


end of the block table
should be the same.

Keep in mind that the Diagnostics Report may not find all types of dictionary
corruption.

5. Address any errors that were found.


If you found errors in the block table, or the physical and calculated
dictionary sizes don’t match, the dictionary may be corrupt.

If you found errors in the block table, indicated by ** Error, the


dictionary likely has corrupted resources. Note the block numbers
where the errors were found. If you haven’t already included it in the
Diagnostics Report, print a module directory for all modules. Search
the Dblock (data block) and Nblock (name block) columns in the
module directory for the block numbers of the damaged blocks. When
you find the block numbers in the module directory, the resources in
that block could be corrupted.

You have two options to deal with the corrupt resources: delete the
corrupt resources or transfer the undamaged resources to a new
dictionary.

• If you choose to delete the corrupt resources, make a copy of the


dictionary and delete the resources from the copy. Use Dexterity to
delete the resources.

• If you choose to transfer the undamaged resources to a new dictio-


nary, you can use the Transfer Dictionary Module utility to transfer
the undamaged dictionary modules to a new dictionary.

134 DE X TE R I T Y U T IL IT IE S
D I A G N O S T I C S R E P O R T ( E M E R G E N C Y D I A G N O S T I C S )

If the physical and calculated sizes don’t match, run a disk diagnostic
utility such as Norton Disk Doctor, CHKDSK.EXE or SCANDISK.EXE.
In some cases these utilities can find and repair problems in dictionary
files.

Unexpected crashes can cause the discrepancy between the physical


and calculated file sizes. The sooner you run a disk diagnostic utility
after the corruption occurs, the more likely it is that the problem can be
fixed.

DEXTERITY UTILITIES 135


PA RT 3 R E P O R T R E F E R E N C E

Diagnostics Report

Time printed: 11/24/1995 11:08:52

Dictionary: HD1:RESM.DIC
Module Information
____________________________________________________________________________________
Num mods 32 Num unused 50
Mtype Modid DirBlock Noffset Nlength
2 22000 163 641 10
2 22001 196 46 7
2 22002 213 104 13
2 22003 230 117 8
2 22004 247 125 14
2 22005 264 222 17
2 22006 281 239 10
2 22007 298 249 7
2 22008 315 501 13
3 22000 322 256 14
3 22001 327 594 17
3 22002 332 611 17
3 22003 341 628 13
3 22005 350 651 13
System Core
# Types 13 # Unused type slots 0
# allocated res slots 186 # unallocated res slots 10

Restype # resources # unused resslots


____________________________________________________________________________________
1 5 5
5 10 5
8 6 5
15 4 5
25 3 5
26 1 5
28 28 5
29 26 5
40 9 5
42 3 4
43 9 5
44 9 5
45 9 5
--------------------------------------
122 64 = 186

Number of types: 8
=========================================================================
____________________________________________________________________________________

Options included in this example:


Block Table
Module Table
Directory Information for Selected Module

136 DE X TE R I T Y U T IL IT IE S
S U M M A RY R E PO RT S

Summary Reports
The Summary Reports list information about tables in a dictionary or all
global fields in a dictionary. The table summary report includes the table
name, series, table display name, table physical name and the table group
to which the table belongs (if any). The field summary report includes the
name, array size, physical name and data type used for each field.

To use the Summary Reports, open a source dictionary and choose


Summary Reports from the Reports menu. The Summary Reports window
will appear, as shown in the following illustration.

1. Select the summary report to print.


Choose either the Table Summary Report or the Field Summary Report.

2. Print the report.


Click Print to print the summary report. The Report File Name dialog
box will appear. Enter the name and location for the summary report,
then click Save. Sample Table Summary and Field Summary reports are
shown on the following pages.

DEXTERITY UTILITIES 137


PA RT 3 R E P O R T R E F E R E N C E

Table Summary Report

Time printed: 11/24/1995 11:23:36

Dictionary: HD1:RESM.DIC
Table Resources - Summary
____________________________________________________________________________________
Table Series Display Name Physical Name Table Group
___________________________________________________________________________________________________________
House_Descriptions Sales House Descriptions HOUSEDES House Tables
Seller_Data Sales Seller Data SELLDAT Seller Tables
House_Data Sales House Data HOUSEDAT House Tables
House_Pictures Sales House Pictures HOUSEPIC House Tables
Buyer_Data Sales Buyer Data BUYERDAT Buyer Tables
Candidate_Buyers_List Sales Candidate Buyers List temp [None]
Candidate_Houses_List Sales Candidate Houses List temp [None]

138 DE X TE R I T Y U T IL IT IE S
S U M M A RY R E PO RT S

Field Summary Report

Time printed: 11/24/1995 11:23:50

Dictionary: HD1:RESM.DIC
Field Report - Summary
____________________________________________________________________________________
Field Array Physical Name Datatype Storage Type Format
_______________________________________________________________________________________________________________
Address Address STR30 String
Agent Agent STR30 String
Air Conditioned Air Conditioned Air Conditioned Radio Group
Asking Price Asking Price CUR9 Currency CUR
Baths Baths INT2 Integer
Bedrooms Bedrooms INT2 Integer
Buyer ID Buyer ID Buyer_ID String
Buyer Name Buyer Name STR30 String
Buyers Button PB_Buyers Push Button
City City STR20 String
Description Description Text32000 Text [Var Len]
Expand Button Expand Button Visual Switch
Floor Space Floor Space INT5 Integer
Floors Floors INT2 Integer
Garages Garages INT2 Integer
Heating Type Heating Type Heating_Type Drop Down List
House ID House ID House_ID String
House Type House Type House_Type Drop Down List
Houses Button PB_Houses Push Button
Lookup Button [ 5] PB_Lookup Push Button
Maximum Price Maximum Price CUR9 Currency CUR
Minimum Price Minimum Price CUR9 Currency CUR
Monthly Utility Cost Monthly Utility Cost CUR6 Currency CUR
No No Radio Button
Normal Button Normal Button Visual Switch
Phone Phone STR10_Phone String
STR10_Phone
Picture Picture Picture Picture [Var Len]
Progress_Bar Progress_Bar Visual Switch
Progress_Bar_Status Progress_Bar_Status Integer
Reports Button BDL_Reports Button List
Seller ID Seller ID Seller_ID String
Seller Name Seller Name STR30 String
Sellers Button PB_Sellers Push Button

Yes Yes Radio Button


ZIP Code ZIP Code ZIP_STR9 String ZIP_STR9
____________________________________________________________________________________

DEXTERITY UTILITIES 139


PA RT 3 R E P O R T R E F E R E N C E

Cross Link Analysis Report


The Cross Link Analysis Report examines a dictionary for resources that
improperly reference other resources. Specifically, it checks for the
following conditions:

• A script resource referenced by more than one field.


• A table relationship referenced by more than one table.
• A key resource referenced by more than one table.

These problems could occur under rare circumstances in earlier versions of


Dexterity. Use this utility to determine whether any of these problems have
affected your dictionaries.

To use the Cross Link Analysis report, open a source dictionary and choose
Cross Link Analysis from the Reports menu. The Cross Link Analysis
window will appear, as shown in the following illustration.

1. Analyze the dictionary.


Click OK to check for cross links in the dictionary. The Report File
Name dialog box will appear. Enter the name and location for the Cross
Link Analysis report, then click Save. A sample Cross Link Analysis
report is shown on the following page.

2. Use the Cross Link Analysis report to verify that there are
no cross-linked resources.
If no cross-linked resources are found in the dictionary, the Cross Link
Analysis report won’t contain any entries. If any resources are cross-
linked, you must take measures to fix the problem. Typically, this
involves deleting the incorrect reference to the cross-linked resource
and recreating the script, key or table relationship that should be
referenced.

140 DE X TE R I T Y U T IL IT IE S
C R O S S L I N K A N A L Y S I S R E P O R T

Cross Link Analysis Report

Time printed: 11/24/1998 11:44:40

Dictionary: HD1:RESM.DIC
Cross-link Report
____________________________________________________________________________________
Form: Sellers
FIELD CHANGE script 22000 Sellers l_Save Button_CHG FIELD (L) Save Button
FIELD CHANGE script 22000 Sellers l_Save Button_CHG FIELD (L) Clear Button

FIELD CHANGE script 22000 Sellers l_Save Button_CHG FIELD (L) Clear Button
FIELD CHANGE script 22000 Sellers l_Save Button_CHG FIELD (L) Save Button

DEXTERITY UTILITIES 141


PA RT 3 R E P O R T R E F E R E N C E

Prompt Overflow Report


The Prompt Overflow Report ascertains whether the text in static text
prompts is too long to be displayed properly on forms or reports. This
report is typically run after static text has been changed to create an
international version of an application. In some cases, the translated text is
too long to be displayed properly. This report lists which window and
report static text fields must be adjusted to display the longer text.

To use the Prompt Overflow report, open a source dictionary and choose
Prompt Overflow Report from the Reports menu. A file dialog box will
appear, allowing you to specify the name and location of the Prompt
Overflow Report. A sample Prompt Overflow Report is shown on the
following page.

142 DE X TE R I T Y U T IL IT IE S
P R O M P T O V E R F L O W R E P O R T

Prompt Overflow Report

-------------------- Forms ------------------

Form 'Seller_Lookup' Window 'Seller_Lookup'


Prompt "Seller ID" Position (315,38) (342,56)

Form 'Buyers' Window 'Buyers'


Prompt "Agent:" Position (170,23) (201,44)
Prompt "Floors:" Position (129,188) (159,209)

-------------------- Reports ----------------

Report 'Buyer Report'


Prompt "Buyer Name:" Position (7,84) (63,98)

DEXTERITY UTILITIES 143


PA RT 3 R E P O R T R E F E R E N C E

Referential Diagnostics Report


The Referential Diagnostics Report examines a dictionary for two types of
referential integrity problems: invalid direct references and invalid
transitive references.

• Invalid direct references exist when one resource references a second


resource that doesn’t exist. For example, a field that references a non-
existent data type is an invalid direct reference.

• Invalid transitive references exist when a resource accessed via another


resource doesn’t exist. For example, a report references a table resource
directly. The table resource references field resources. If the report refer-
ences a field from the table, but the field is no longer part of the table,
the result is an invalid transitive reference.

We recommend that you run the Referential Diagnostics Report before you ship
your application to customers. This will alert you to any improperly referenced
resource in the application, which could cause problems not detectable by ordinary
testing.

To use the Referential Diagnostics Report, open a source dictionary and


choose Referential Diagnostics from the Reports menu. A file dialog box
will appear, allowing you to specify the name and location of the
Referential Diagnostics Report.

1. Examine the report.


If any referential integrity problems were found, they will be listed in
the report. If no problems were found, only the report headings will be
included in the report. A sample Referential Integrity Report is shown
on the following page.

2. Address any errors that were found.


If referential integrity problems were found, they should be resolved
before you ship your application. Typically, this involves using
Dexterity to re-establish the references between resources. To do this,
delete the erroneous reference (the [Not Found]) and then re-establish
the reference.

144 DE X TE R I T Y U T IL IT IE S
R E F E R E N T I A L D I A G N O S T IC S R E P O R T

For example, if a data type is deleted, fields that used it will no longer
properly reference a data type. Open the field definition for any field
that referenced the deleted data type and choose another data type.

In other cases, you may have to remove the references to resources that
have been deleted. The following are two common situations:

• Windows and reports contain references to strings that no longer


exist. Typically, these strings are very short, and may be difficult to
locate on the window or report layout. In some cases, they may be
listed in the drop-down list in the Properties window. If this is the
case, you can select them and then choose Clear from the Edit menu
to delete them.

• Invalid string references on report frames. This occurs when the


names of additional headers and footers for a report are inadvert-
ently deleted. Re-add the additional header and footer names to
solve the problem.

DEXTERITY UTILITIES 145


PA RT 3 R E P O R T R E F E R E N C E

Referential Diagnostics Report

Invalid Direct References

Data Type Seller_ID references a non-existent Composite.


Window House_Lookup_Scroll of form House_Lookup references a non-existent String.

Invalid Transitive References

Table Buyer_Data: Key Buyer_Data_By_Name references a field not in this table.


Report Candidate Buyers: Report Candidate Buyers references a field not in table Buyer_Data.
Report Buyer Report: Report Buyer Report references a field not in table Buyer_Data.
Report House Report: Report House Report contains a field from a table not linked to this report.

146 DE X TE R I T Y U T IL IT IE S
T A B LE R E L A T I O N SH I P S V A L I D A T IO N RE P O R T

Table Relationships Validation Report


The Table Relationships Validation Report examines a dictionary for table
relationships that have been defined incorrectly. Each table relationship is
examined to ascertain whether it has any of the following problems:

• The relationship type is set incorrectly. For example, a one-to-one rela-


tionship is set to be a one-to-many relationship.

• The relationship has corresponding key segments that have incompati-


ble data types.

• The relationship has too many segments for the key in the secondary
table.

These problems can be introduced into an application when you change


key or table definitions for existing tables.

We recommend that you run the Table Relationships Validation Report before you
ship your application to customers. This will alert you to any improperly-defined
table relationships in the application.

To use the Table Relationships Validation Report, open a source dictionary


and choose Table Relationships Validation from the Reports menu. A file
dialog box will appear, allowing you to specify the name and location of the
Table Relationships Validation Report.

1. Examine the report.


If any table relationship problems were found, they will be listed in the
report. If no problems were found, only the report heading will be
included in the report. A sample Table Relationships Validation Report
is shown on the following page.

2. Address any errors that were found.


If table relationship problems were found, they should be resolved
before you ship your application. Typically, this involves using
Dexterity to open each table relationship that contains errors. The Table
Relationship Definition Window will automatically set the relationship
type. It will prevent you from setting key segments to incompatible
types, and will also prevent having too many segments for the key in
the secondary table.

DEXTERITY UTILITIES 147


PA RT 3 R E P O R T R E F E R E N C E

Table Relationships Validation Report

Table Relationships Validation Report

Relationship from table "House_Data" to "Seller_Data": Invalid one to many error


Relationship from table "House_Data" to "House_Descriptions": Too many fields error

148 DE X TE R I T Y U T IL IT IE S
RE S O U RC E I D V A L I D A T IO N RE P O R T

Resource ID Validation Report


The Resource ID Validation Report examines two versions of a dictionary
and lists potential resource ID issues. This report is typically used to isolate
problems caused when resource IDs have changed between older and
newer versions of a dictionary.

To use the Resource ID Validation Report, open the original version of the
dictionary as a source dictionary. Open the new (revised) version of the
dictionary as an editable dictionary. Choose Resource ID Validation from
the Reports menu. A file dialog box will appear, allowing you to specify the
name and location of the Resource ID Validation Report.

As the report is generated, all forms, windows, and window items (such as
fields or static text) in the original dictionary are examined. The routine
attempts to locate the corresponding resource in the revised dictionary. The
following conditions are logged:

• If the resource is not found in the revised dictionary, either by its name
or resource ID, it will be reported as “may have been removed”.

• If a resource with the same resource ID is found in the revised dictio-


nary, but the name does not match, it will be reported as “may have
been renamed”. This may also indicate that the resource has been
deleted in the revised dictionary, and another resource of the same type
is now using the resource ID.

• If a resource with the same name is found in the revised dictionary, but
the resource ID does not match, it will be reported as “RESID changed”.

A sample Resource ID Validation Report is shown on the following page.

DEXTERITY UTILITIES 149


PA RT 3 R E P O R T R E F E R E N C E

Resource ID Validation Report

**** Window 'Buyers' of form 'Buyers' ****


Field 'Clear' on form 'Buyers' may have been renamed to 'Restart'.

**** Window 'Houses' of form 'Houses' ****


Field 'Monthly Utility Cost' may have been removed.
Field 'Match Buyers' on form 'Houses': RESID changed from 22017 to 22020.

150 DE X TE R I T Y U T IL IT IE S
APPENDIX
Appendix
This manual has the following appendix:

• Appendix A, “Dictionary Structure,” describes the internal structure of


a Dexterity dictionary.

152 DE X TE R I T Y U T IL IT IE S
Appendix A: Dictionary Structure
This appendix describes the structure of a Dexterity application dictionary.
The information provided here can be useful when you’re attempting to
repair a damaged application dictionary. Information about dictionary
structure is divided into the following sections:

• Parts of a dictionary
• Types of modules
• Dictionary cores
• Resources stored in modules
• Form modules
• Report modules

DEXTERITY UTILITIES 153


A P P E N D I X A D IC T I O N A R Y S T R U C T U R E

Parts of a dictionary
An application dictionary is composed of modules. A module is a collection
of resources. Resources contain information about some specific element of
the application such as a string, field or window. Modules provide a
method of organizing resources. The structure of a dictionary is shown in
the following illustration.

Application
Dictionary Resources

Resources

Resources
Modules
Resources

Resources

Resources

Resources

Resources

Resources

154 DE X TE R I T Y U T IL IT IE S
A P P E N D I X A D IC T I O N A R Y S T R U C T U R E

Types of modules
An application dictionary can have three types of modules:

• Form modules contain resources that are specific to a single form.


Resources such as windows, menus and local fields are stored in form
modules. Each form in an application has a corresponding form mod-
ule in the dictionary.

• Report modules contain resources that are specific to a single report.


Resources such as restrictions are stored in report modules. Each report
in an application has a corresponding report module in the dictionary.

• Core modules contain resources that are used by several parts of the
application. Resources such as strings, table definitions and global
fields are stored in core modules.

Dictionary cores
Large applications can have thousands of core resources. To better manage
core resources, the core modules are grouped into dictionary cores. Each core
module is placed into one of seven dictionary cores:

These dictionary cores • System


are sometimes referred • Financial
to as series. • Sales
• Purchasing
• Inventory
• Payroll
• Project

The dictionary cores correspond to series for Microsoft Dynamics GP. For
instance, the core resources for Inventory are placed in the Inventory core.
The drop-down list on the Dexterity Utilities tool bar and the Default Core
drop-down list in the Dexterity Options window specify the dictionary core
into which core resources will be placed.

DEXTERITY UTILITIES 155


A P P E N D I X A D IC T I O N A R Y S T R U C T U R E

To simply create a functional application, it doesn’t matter which dictionary


core the core resources are created in. However, creating the core resources
for your application in the appropriate dictionary cores will make them
easier to manage.

You can use the Change Core utility in Dexterity Utilities to change the dictionary
core in which a core resource is stored.

The following illustration shows how the core modules for a dictionary are
grouped into the various dictionary cores.

Application
Dictionary

Sales Core Modules

Financial Core Modules

Inventory Core Modules

Project Core Modules

Purchasing Core Modules

System Core Modules

Payroll Core Modules

Form Modules

Report Modules

156 DE X TE R I T Y U T IL IT IE S
A P P E N D I X A D IC T I O N A R Y S T R U C T U R E

Resources stored in modules


This section lists the types of modules and the kinds of resources stored in
them.

Core modules
Several types of core modules are stored in the dictionary. The following
table lists the core module types and which resources can be stored in them.

Core module type Resources stored


Core COM Library
Composite
Constant
External Icon
Format
Form List
Key
Mac Pict
Metafile
Picture
Relationship
Reports List
System Vars
Table
Table Group
Table Group List
Table List
Core Tables Core Table
Core Table 3rd
Core Table Mod
Data Types Data Type (global data type)
Fields Field (global field)
Install Product (product information)
Physical Names Field Physical Name (physical name for global fields)
Strings String
PScript Code Procedure Script Code
Procedure Script Data
PScript Source Procedure Script Debug
Procedure Script Source
FScript Code Function Script Code
Function Script Data
FScript Source Function Script Debug
Function Script Source

DEXTERITY UTILITIES 157


A P P E N D I X A D IC T I O N A R Y S T R U C T U R E

Core module type Resources stored


Messages Message

Form modules
The following is a list of the resources stored in a form module.

Module type Resources stored


Form Command
Data Type (local data type)
Field (local field)
Form
Procedure Script Code
Procedure Script Data
Function Script Code
Function Script Data
Menu
Menu Options
Script Code
Script Data
Window

Report modules
The following is a list of the resources stored in a report module.

Module type Resources stored


Report Expression
Frame
Report
Restriction
String

158 DE X TE R I T Y U T IL IT IE S
Glossary Chunk utility
A function of Dexterity Utilities that
Compress
The process of removing unneeded
allows you to transfer “chunks,” or information, such as script source, and
Accelerator key related pieces of information, from a unused blocks from dictionaries.
A key or set of keys on the keyboard that source dictionary to a chunk dictionary. Dictionaries are typically compressed
can be used as a “shortcut” to select a This utility is useful for updating specific before being sent to customers.
menu or menu option rather than using portions of a dictionary when the
the mouse. dictionary is very large (such as the Control type
Dynamics.dic dictionary). When you’ve The control type is the main characteristic
Alert message modified or added resources in the chunk of a data type, controlling the type of
A message that appears when dictionary, you can merge it back into the information that can be stored in fields
inappropriate, inadequate or unclear source dictionary to implement with the data type, and some aspects of
data or instructions are issued, when data modifications. how the information will be displayed.
is not accessible or when a confirmation Commonly-used control types are push
is required. Compare buttons, integers, check boxes, dates and
To evaluate the variations between two currencies. See also Data type.
Array field dictionaries, using Dexterity Utilities.
A field containing multiple occurrences Core module
of the same type of information. The Compatibility ID A group of related resources in a
individual pieces of information stored A string that uniquely identifies the Dexterity dictionary that can be
by an array field are called elements. For version of your application. You specify referenced by other resources, including
example, a seven-element array field the compatibility ID when you add forms and reports, throughout the
could be used to store daily sales totals product information to a dictionary. dictionary. Each core module contains
instead of seven individual fields. When you launch your application with one or more specific types of resources
the runtime engine, the compatibility ID such as fields, data types and scripts. See
Array index in the application dictionary is compared also Dictionary module, Form module and
The number designating a specific with the compatibility IDs in the forms Report module.
element within an array field. Each and reports dictionaries. If they match,
component field within an array field has items in the forms and reports Core resources
an array index. dictionaries can be accessed. Resources such as strings, data types or
global fields that are used by several
Block Compatibility message parts of the application. When forms and
A specified portion of the dictionary. For The message that is displayed when the reports dictionaries are created, the core
instance, an unused “block” within a compatibility IDs in the forms or reports resources in the application dictionary
dictionary refers to a portion of the dictionaries don’t match the are copied to them.
dictionary that isn’t being used, or a compatibility ID in the main dictionary.
portion that at one time contained If an application uses forms and reports
You specify the compatibility message
information that has been deleted. You when you add product information to a dictionaries, an update should be
can remove unused blocks by using the distributed as a dictionary chunk so the
dictionary.
compress utility of Dexterity Utilities. core resources in the forms and reports
Compile dictionaries will be updated properly.
Chunk dictionary To run a script through a compiler. A Otherwise, the application may not work
A dictionary that contains portions, or compiler translates the script instructions correctly.
“chunks,” of resources from a source into a language that the computer can
dictionary. Chunk dictionaries allow understand. Once the script has been
Cross-linked resources
large dictionaries to be divided into more Resources that improperly reference
compiled, the instructions within the
manageable pieces for delivery to script can be executed. other resources. Specifically, scripts
customers. The runtime engine referenced by more than one field, table
“unchunks,” or merges the chunk Compiler errors relationships referenced by more than
dictionaries to re-create the original Errors generated when a script is one table, and keys referenced by more
dictionary. Chunk dictionaries can also be compiled. than one table are cross-linked resources.
used to deliver updates for an The Cross Link Analysis Report checks
application. for these conditions.

DEXTERITY UTILITIES 159


G L O S S A R Y

Custom dictionaries Dictionary location ID defined in the Dynamics.dic dictionary to


A forms or reports dictionary generated In a launch file, a line that indicates a set a new dictionary.
by the Modifier and Report Writer. of dictionary locations. This set of
dictionary locations includes generic
Extracted dictionary
Data type The dictionary that is created when third-
pathnames for the locations of the
A Dexterity resource that defines the party resources are copied from the
application dictionary, forms dictionary,
characteristics for a field, such as its reports dictionary and any integrating Dynamics.dic dictionary to a new
keyable length, control type (push dictionary using the Extract utility.
dictionaries. A launch file can contain
button, check box, string, and so on) and several sets of dictionary location IDs and
format. A single data type can be applied
Field
dictionary locations. A field contains a single piece of
to several fields, but a field can only have
Dictionary module information used by the application
one data type applied to it. See also
Control type. A group of related resources in a dictionary. A field can be displayed in a
window or stored in a table. The kind of
Dexterity dictionary, which can be
Data types are commonly identified by information the field displays or stores
viewed and transferred using Dexterity
their control type or storage type; for Utilities. There are three types of depends upon the data type associated
instance, a radio button data type, or a with it. See also Global field and Local field.
dictionary modules: core, form and
string data type.
report modules. Form and report File
Debug statement modules contain resources used only on a See Table.
A Dexterity script statement that allows specific form or report, such as local
you to create dialog boxes that will fields, scripts and calculated fields, while Form
appear when an application is run in test core modules contain resources that can A collection of windows, menus, scripts
mode. For example, the messages be used throughout the dictionary. See and tables that function together for a
appearing in the dialog boxes can be used also Core module, Form module and Report common purpose.
to indicate which script is being run or module.
Form function
the value that should be generated at a Display name A user-defined function that’s associated
given point. If debug statements aren’t
One of the names specified for a table. with a specific form.
compiled, the messages can’t be The display name is used when the name
displayed in test mode. Debug statement Form module
of the table is displayed to the user. See
messages never appear in applications A group of related resources that
also Technical name.
executed with the runtime engine. compose a specific form.
Editable dictionary
Destination dictionary A dictionary that you can access and Form procedure
The dictionary to which resources, work with in a read/write manner. A procedure that’s associated with a
strings and messages, windows or specific form.
dictionary modules are transferred, using Ending script
the Dexterity Utilities. One of the two procedures that can be Form scripts
associated with a dictionary chunk. Scripts associated with a specific form.
Dictionary When you create a dictionary chunk, you
A group of Dexterity resources that, Form table
can specify a procedure from the
when interpreted by the runtime engine, A table that has been attached to a form.
application to be the ending script for the
present a complete, functioning Tables must be attached to the form
dictionary chunk. The ending script will before any window in the form can use
application. be run with the other starting and ending
the tables.
Dictionary core scripts after all dictionary chunks have
A group of related core modules. Each been unchunked. See also Starting script Format
core module is placed into one of seven and Installation script. The extra characters, spacing and
dictionary cores: System, Financial, Sales, attributes that can be applied to a data
Extract type when data is entered or displayed.
Purchasing, Inventory, Payroll and A function of Dexterity Utilities that
Project. For Microsoft Dynamics GP,
copies third-party resources (resources
dictionary cores typically correspond to
with IDs of 22,000 or greater) you’ve
Series.

160 DE X TE R I T Y U T IL IT IE S
G L O S S A R Y

Format string Keyable length Physical name


A data “mask” used for string and The number of characters that can be For tables, the name under which a table
composite formats. The format string typed in a field. is stored by the operating system or
allows extra characters to appear in a database.
field without affecting the way data in Launch file
A file that’s used to start your dictionary For global fields, a shortened version of
the field is stored.
with the runtime engine. This file stores the field name that is used as the column
Forms dictionary the location of your application name when the field is used in a SQL
The dictionary that stores user-modified dictionary, the name and location of any table.
resources from a main dictionary. This forms or reports dictionaries and the
dictionary is created when the Modifier is name and location of any integrating
Procedure
A script that isn't associated with a single
accessed for the first time. Only copies of dictionaries.
the main dictionary’s resources are stored window or form but that can be called
Launch file ID from other scripts to perform a common
in the forms dictionary. See also Custom
An integer that uniquely identifies the function. Referred to as a “global script”
dictionaries.
launch file. It appears in the second line prior to Dexterity 3.0.
Global field of the launch file. This number is also the
A field created using the Field Definition product ID of the main product. See also
Product ID
window. Global fields can be displayed Product ID. The ID that’s used to uniquely identify an
application dictionary. Product IDs for
in windows or stored in tables. See also
Local field each product developed with Dexterity
Local field.
A field that’s available only within the must be acquired from Microsoft
Global script form in which it’s created. Local fields are Business Solutions.
A script that isn’t associated with a single used as window fields. See also Global
window or form but that can be called field.
Product information
Information added to a dictionary that
from other scripts to perform a common
Message (resource) allows the runtime engine to create a
function. Renamed “procedure” in
A message that was entered using the launch file properly.
Dexterity 3.0.
Dexterity Messages window and that can
Installation script be referenced by its ID in scripts, using
Record
A complete group of information, such as
A procedure in your application that the getmsg() function. The message can
performs actions such as adding items to be displayed using the ask() function or a customer’s name, address and phone
number, made up of one instance of each
palettes or setting up default pathnames. the warning or error statement.
field in a table. Each record in a table has
Installation scripts are specified as
starting or ending scripts for dictionary Module the same fields.
chunks. When the dictionary chunks are See Dictionary module.
Relations
“unchunked,” the installation scripts will Multidictionary See Table relationship.
run automatically.
A feature of Dexterity that allows the
runtime engine to interpret two or more
Report module
Integrating application A group of related resources in a
A Dexterity application that runs separate application dictionaries at the
Dexterity dictionary that are used to
concurrently with another application same time. This capability allows
define information that is unique to
such as Microsoft Dynamics GP. multiple third-party dictionaries to
function with Microsoft Dynamics GP. reports, such as scripts and calculated
Integrating applications can use fields. Resources that aren’t unique to
Microsoft Dynamics GP resources. Native pictures reports, such as fields and tables, are
Key Picture objects that are specific, or native, stored in core modules and are
to a particular operating system. Native referenced within the report definition.
A field or combination of fields within a
pictures must be used to create pictures See also Core module, Dictionary module
record that is used as a basis by which to
store, retrieve and sort records. that appear on push buttons and button and Form module.
drop lists.
Key segment
One field of a group of fields that
compose a key.

DEXTERITY UTILITIES 161


G L O S S A R Y

Reports dictionary Series resources String resources


The dictionary that stores modified Lists containing the names of forms, Sequences of up to 79 characters used
reports from the main dictionary and reports, tables and table groups in an throughout an application dictionary for
new reports created with the runtime application dictionary. These lists are window names, field prompts, static text
engine’s Report Writer. The reports used for security, palettes and table values and report text.
dictionary is created when the runtime maintenance. Dexterity Utilities can be
engine’s Report Writer is accessed for the used to manually update these lists. Synchronize (Dexterity)
first time. All reports you modify or To specify the native picture on each
create with the runtime engine’s Report Source dictionary platform that should be used as the static
Writer are stored in the reports The dictionary containing the resources value for a single data type. When two
dictionary. See also Custom dictionaries. to be used in transfers, printing reports, pictures are synchronized, Dexterity will
comparing dictionaries or creating chunk assign them the same internal ID.
Resource dictionaries. A source dictionary has Thereafter, when a synchronized picture
An object such as a field, static text, read-only access. is displayed by the application as it runs,
native picture, table, window or script the native picture that’s appropriate to
that can be used to create applications in Stand-alone application the current operating system will be
Dexterity. A Dexterity application that operates displayed.
without integrating with Microsoft
Resource ID Dynamics GP. Synchronize (Dexterity Utilities)
An internal ID applied to each resource A function that checks all relationships
in your application. For each type of Starting script between resources in a dictionary and
resource you create, IDs start at 22,000. One of the two scripts associated with a recalculates all buffer sizes.
For instance, the first data type you create dictionary chunk. When you create a
is data type 22,000; the second is data dictionary chunk, you can specify a Table
type 22,001, and so on. Resource IDs for procedure from the application to be the A collection of related data formatted in
Microsoft Dynamics GP start at 1 and starting script for the dictionary chunk. rows. Each row represents a separate
never exceed 19,999. The starting script will be run with the record, and each column represents a
other starting and ending scripts after all separate field. Although this term
Script dictionary chunks have been originated with relational databases,
A list of instructions an application uses “unchunked.” See also Ending script and Dexterity uses it generically to refer to
to perform tasks. Installation script. both relational database tables and ISAM
database files.
Sequence number Static picture value
When a dictionary is broken into several A picture that’s displayed as part of a Table group
chunk dictionaries, the sequence number data type, such as the picture on a button A group of logically-related tables. For
associated with each dictionary chunk drop list. example, a customer master table, a
indicates the order in which the customer address table and a customer
dictionary chunks will be “unchunked” Static text value history table could all compose a table
and any installation scripts will be run. Text that’s displayed as part of a data group. Table groups are used for security
type, such as the name on a push button and table maintenance.
Series or the items in a list box.
A predefined category to which you can Table relationship
assign forms, tables and reports in your Storage type A link between tables that have fields in
application dictionary. Series allow you One of the standard forms used to store common. These relationships allow the
to more easily organize these resources. If the data in a field. The storage types are: Report Writer to select fields from all of
you’re creating an application that links boolean, integer, long, currency, variable the related tables and use them on a
to Microsoft Dynamics GP, assign the currency, string, text, date and time. The single report. Table relationships are set
appropriate series to your own forms, control type determines which storage up using the Table Relationship
tables and reports based on the resources type is used to store the data in the field. Definition window.
they integrate with. See also Control type and Data type.
Technical name
String The name used within scripts to refer to a
A sequence of up to 255 ASCII characters. table or window. See also Display name.
See also String resources.

162 DE X TE R I T Y U T IL IT IE S
G L O S S A R Y

Transfer
To copy specified resources in a source
dictionary to a destination dictionary.

Unchunking
The process of dictionary chunks being
converted back into a dictionary or being
merged with an existing dictionary.

User-defined function
A script in Dexterity that you write and
use in the same manner as Dexterity’s
built-in functions.

Version numbers (for dictionary


chunks)
A dictionary chunk can have a version
number associated with it. When the
dictionary chunk is “unchunked,” the
version numbers are written to the
application dictionary. The version
numbers can be retrieved from the
dictionary and typically are displayed in
the application’s About Box.

Window
The work area used to enter and display
information in an application.

DEXTERITY UTILITIES 163


164 DE X TE R I T Y U T IL IT IE S
Index charts (continued)
packaging applications 59
compiler errors
search the Dexterity online help for
reports summary 95-100 Compiler messages
Numerics updating applications 59 defined 159
3D effects, user interface conversion 83 utility summary 17-19 printing when compiling scripts
checklists, see procedures 39, 41, 43
A chunk dictionaries printing when performing
About Dexterity Utilities, menu item 14 adding modules to 65 transfers 25
accelerator key, defined 159 attaching installation scripts 64, 80 when compiling scripts 39, 41, 43
alert messages compression 80 when transferring resources 28
search the Dexterity online help for creating, procedure 61-66, 78-81 compiling
alert messages defined 8, 159 assert statements
defined 159 described 61 when compiling scripts 39, 41,
aligning, fields, with user interface editing 62 43
conversion 87 ending scripts 64, 80 when transferring 25
application dictionaries, see modules to include 65 debug statements
dictionaries purpose 61 when compiling scripts 39, 41,
applications selecting a module 63, 79 43
packaging 59 sequence numbers 63 when transferring 25
updating 59, 67 starting scripts 64, 80 defined 8, 159
array indexes, defined 159 version numbers 63, 79 errors 39, 41, 43
arrays, defined 159 chunk utility, defined 159 form function scripts 38
assert statements chunks, see chunk dictionaries form procedure scripts 38
compiling in scripts 39, 41, 43 Clear, menu item 13 form scripts, procedure 38-39
compiling when performing Close Destination Dictionary, menu global functions, procedure 42-43
transfers 25 item 13 global procedures, procedure
Auto-Chunk utility Close Editable Dictionary, menu item 40-41
creating chunk dictionaries 78-81 13 including debugging information
description 78 Close Source Dictionary, menu item 13 25, 39, 41, 43
Auto-Chunk window 78 Close Window, menu item 13 options 39, 41, 43
closing, dictionaries 10 when transferring resources 24
B combo boxes, user interface conversion components of Dexterity Utilities 7
Basics, part 6-14 86 composites
block table Compare Dictionaries window 67 reports for 95
description 133 comparing dictionaries utilities for 17
errors in 134 defined 159 Compress Dictionary window 60
blocks procedure 67-68 compressing
defined 8, 159 purpose 67 chunk dictionaries 80
removing 60 compatibility ID defined 8, 159
defined 159 dictionaries, procedure 60
C described 70 options 60
calculated fields, changing Evaluate
compatibility message purpose 60
After 90-91
defined 159 removing unused blocks 60
Change Core window 49
described 70 total compression 60
changing dictionary core, procedure
Compile Form Scripts window 38 constants
48-49
Compile Global Functions window 42 reports for 95
charts
Compile Global Procedures window 40 utilities for 17
additional resources transferred 26

DEXTERITY UTILITIES 165


I N D E X

Contents, menu item 14 destination dictionaries (continued) dictionaries (continued)


control types, defined 159 working with 10 errors in 134
conventions, in documentation 3 developer update, procedure 35-36 extracting resources from
conversion report, for user interface Developer Update window 35 Microsoft Dynamics GP,
conversion 82 Dexterity Utilities procedure 72
converting, user interfaces 82-89 components 7 list of open dictionaries 14
Copy, menu item 13 main menu 11 opening 10
core destination drop-down list 12, 155 menu bar 13 parts of 154
core modules reports summary table 95-100 source 10
defined 8, 155, 159 starting 7 SQL compatibility 75
resources stored in 157 terms 8 structure 154
core resources toolbar 12 synchronizing, procedure 58
see also resources utility summary table 17-19 utilities for 17
changing dictionary core, Dexterity Utilities Interface, chapter working with 10
described 48 11-14 Dictionaries menu, described 14
defined 8, 159 diagnostics dictionary chunks, see chunk
corruption, in dictionaries 132 for dictionaries 132 dictionaries
Create Chunk Dictionary window 62 for table relationships 147 dictionary cores
Create New Dictionary, menu item 13 referential diagnostics 144 changing location of resources 48
Cross Link Analysis Report Diagnostics Report defined 160
described 140 addressing errors 134 for transferred resources 27
sample report 141 block table 133 list of 48, 155
Cross Link Analysis window 140 described 132 purpose 48, 155
cross-linked resources interpreting 134 dictionary location IDs, defined 160
defined 159 module directory 133 dictionary modules
described 140 module table 133 defined 8, 160
custom colors, user interface sample report 136 size of 34, 65
conversion 85 window 132 transferring, procedure 33-34
custom dictionaries, defined 160 dictionaries Dictionary Structure, appendix 153-158
Cut, menu item 13 see also applications, chunk Dictionary Utilities, chapter 57-91
dictionaries dictionary utilities, described 57
D adding product information, display names, defined 160
data types procedure 69-71 documentation, symbols and
defined 160 chunk dictionaries, creating 61-66, conventions 3
reports for 95 78-81 drop-down lists, user interface
utilities for 17 closing 10 conversion 86
debug statements comparing
compiling in scripts 39, 41, 43 procedure 67-68 E
compiling when performing purpose 67 Edit menu, described 13
transfers 25 compatibility ID 70 editable dictionaries
defined 160 compatibility message 70 defined 8, 160
debugging information, including compressing, procedure 60 working with 10
when compiling 25, 39, 41, 43 corruption 134 Emergency Diagnostics Report 132
default core drop-down list 155 defined 160 ending scripts
deleting, unused resources 122, 126 destination 10 defined 160
destination dictionaries diagnostics 132 for a chunk dictionary 64, 80
defined 8, 160 editable 10

166 DE X TE R I T Y U T IL IT IE S
I N D E X

errors format strings, defined 161 Global Procedures Report window 111
compiling scripts 28, 39, 41, 43 formats Global Resource Usage Report
found by diagnostics 132 defined 160 described 122
found by referential diagnostics reports for 96 sample report 125
144 utilities for 17 Global Resource Usage window 122
found by table relationship forms global resources, see resources
validation 147 defined 160 Global Resources Report
in block table 134 inquiry procedure 54 described 113
Evaluate After, procedure 90-91 reports for 97 sample report 115
Evaluate After Utility window 90 utilities for 17 Global Resources Report window 113
Exit, menu item 13 viewing, form windows and global scripts, defined 161
Expand Windows window 74 menus 54 global variables
expanding windows, procedure 74 forms dictionaries reports for 97
Extract window 72 compatibility ID 70 utilities for 17
extracted dictionary, defined 9, 160 compatibilty message 70
extracting defined 161 H
defined 9, 160 naming 70 Help menu, described 14
purpose 72 Forms Report How to Use Help, menu item 14
third-party resources from described 101
Microsoft Dynamics GP 72 sample report 103 I
Forms Report window 101 IDs, see resource IDs
F functions Inquiry menu, described 12
Field Summary Report 137 reports for 98 inquiry procedure
fields utilities for 17 for forms 54
defined 160 for resources 55
reports for 95 G Inquiry Utilities, chapter 53-55
utilities for 17 Getting Started, chapter 7-10 inquiry utilities, described 53
File menu, described 13 global fields installation, using chunk dictionaries
form functions see also fields 61
compiling 38 defined 161 installation scripts
defined 160 global functions see also starting and ending scripts
reports for 98 compiling procedure 42-43 defined 161
utilities for 17 reports for 98 order of execution 64
Form Inquiry window 54 utilities for 17 integrating applications
form modules when to compile 42 defined 161
defined 155, 160 Global Functions Report extracting from Microsoft
resources stored in 158 described 109 Dynamics GP 72
form procedures sample report 110 packaging 59
compiling 38 Global Functions Report window 109 updating 59
defined 160 global procedures interface conversion, see User Interface
reports for 98 compiling procedure 40-41 Conversion
utilities for 18 reports for 98 internationalization, of applications 29,
form scripts utilities for 18 74
compiling procedure 38-39 when to compile 40 invalid references, for resources 144
defined 160 Global Procedures Report
when to compile 38 described 111 K
form tables, defined 160 sample report 112 key segments, defined 161
keyable length, defined 161

DEXTERITY UTILITIES 167


I N D E X

keys, defined 161 Microsoft Dynamics GP procedures (continued)


extracting third-party resources 72 Compiling global procedures
L transferring an extracted 40-41
launch file ID, described 70 dictionary 35-36 Compressing dictionaries 60
launch files, defined 161 module directory 133 Converting a user interface 82-89
launching, Dexterity Utilities 7 module table 133 Creating chunk dictionaries 61-66
light bulb symbol 3 modules Cross Link Analysis Report 140
Linked Prompt Report see also dictionary modules Developer update 35-36
described 129 adding to chunk dictionaries 65 Diagnostics Report 132-135
sample report 131 transferring, procedure 33-34 Emergency Diagnostics Report
Linked Prompt Report window 129 types of 155 132-135
local fields, defined 161 multidictionary, defined 161 Expanding windows 74
Local Resource Usage Report Extracting resources 72
described 126 N Forms Report 101-102
sample report 128 native pictures, defined 161 Global Functions Report 109
Local Resource Usage window 126 new features in Dexterity Utilities 2 Global Procedures Report 111
Local Resources Report new symbol 3 Global Resource Usage Report
described 116 122-124
sample report 118 O Global Resources Report 113-114
Local Resources window 116 Online Manuals, menu item 14 Linked Prompt Report 129-130
Lookup, menu item 14 Open Destination Dictionary, menu Local Resource Usage Report
item 13 126-127
M Open Editable Dictionary, menu item Local Resources Report 116-117
Macro menu, described 14 13 Referential Diagnostics Report
main menu 11 Open Source Dictionary, menu item 13 144-145
main product, described 70 opening, dictionaries 10 Reports Report 104
margin notes 3 Resource Lists 119-120
menu bar, see menus P Searching and replacing 44-45
menus packaging applications
SQL compatibility 75-77
description of menu items 13-14 chart 59
Summary Reports 137
reports for 97 described 59
Synchronizing a dictionary 58
viewing for a form 54 steps 59
Table Relationship Validation
menus in Dexterity Utilities palettes, user interface conversion 87
Report 147
Dictionaries menu 14 Paste, menu item 13
Tables Report 106-107
Edit menu 13 physical names, defined 161
Transferring dictionary modules
File menu 13 pictures
33-34
Help menu 14 reports for 98
Transferring resources 22-28
Macro menu 14 utilities for 18
Transferring strings and messages
Windows menu 14 printing reports 94
29-30
messages procedures
Transferring windows 31-32
defined 161 Adding product information 69-71
Updating series resources 50-51
reports for 97 Auto-Chunk 78-81
Viewing form information 54
transferring, options 30 Changing dictionary core 48-49
Viewing resource information 55
transferring, procedure 29-30 Changing Evaluate After 90-91
procedures (resource)
utilities for 18 Comparing dictionaries 67-68
see also global procedures and
metafiles Compiling form scripts 38-39
form procedures
reports for 98 Compiling global functions 42-43
compiling 40-41
utilities for 18

168 DE X TE R I T Y U T IL IT IE S
I N D E X

procedures (resource) (continued) reports (continued) Resource Lists window 119


defined 161 summary chart 95-100 Resource Utilities, chapter 47-51
reports for 98 utilities for 18 resource utilities, described 47
utilities for 18 reports dictionaries resources
product IDs compatibility ID 70 see also core resources
defined 161 compatibility message 70 changing dictionary core 48
described 70 defined 162 defined 9, 162
product information naming 70 finding resource ID 119
adding to dictionaries 69-71 reports in Dexterity Utilities in core modules 157
defined 161 Cross Link Analysis Report 140 in form modules 158
launch file ID 70 Diagnostics Report 132 in report modules 158
product ID 70 Emergency Diagnostics Report 132 inquiry procedure 55
product name 70 Field Summary Report 137 invalid references 144
purpose 69 Forms Report 101 removing unused resources 122,
Product Information window 69 Global Functions Report 109 126
product name 70 Global Procedures Report 111 replacing when transferring 25
Prompt Overflow Report Global Resource Usage Report 122 resource ID, finding 119
described 142 Global Resources Report 113 transferring
sample report 143, 150 Linked Prompt Report 129 options 22
prototyping windows 31 Local Resource Usage Report 126 procedure 22-28
Local Resources Report 116 unused resources
R Prompt Overflow Report 142 listing 122, 126
records, defined 161 Referential Diagnostics Report 144 removing 123, 127
referenced resources Reports Report 104 updating series resources, when to
description 22 Resource ID ValidationReport 149 perform 50
example 23 Resource Lists 119 viewing a list of 55
replacing 23 Summary Reports 137 Resources menu, described 12
Transfer Resources option 22 Table Relationship Validation
references, invalid 144 Report 147 S
Referential Diagnostics Report Table Summary Report 137 sample reports, see reports in Dexterity
described 144 Tables Report 106 Utilities
sample report 146 Reports menu, described 12 Script Utilities, chapter 37-45
relations, see table relationships Reports Report script utilities, described 37
removing described 104 scripts
unused blocks 60 sample report 105 compiling
unused resources 122, 126 Reports Report window 104 procedure 38-39, 40-41, 42-43
replacing Resource ID Validation Report, when transferring 24
see also searching and replacing described 149 defined 162
resources when transferring 25 resource IDs errors when compiling 28, 39, 41,
windows, when transferring 32 defined 162 43
report modules finding for a resource 119 not compiling when transferring
defined 155, 161 for third-party resources 72 resources 28
resources stored in 158 validation report 149 reports for 98
Report Reference, part 94-150 Resource Inquiry window 55 searching 44
reports Resource Lists utilities for 18
printing 94 described 119 Scripts menu, described 12
reports for 98 sample report 121

DEXTERITY UTILITIES 169


I N D E X

scrolling windows, user interface static text values, defined 162 tables (continued)
conversion 86 storage types, defined 162 defined 162
Search and Replace window 44 string resources, defined 162 reports for 99
Search for Help On, menu item 14 strings utilities for 18
searching and replacing defined 162 Tables Report
entering text to search for 44 reports for 99 described 106
procedure 44-45 transferring, options 30 sample report 108
selecting script to search 45 transferring, procedure 29-30 window 106
Select All, menu item 14 utilities for 18 technical names, defined 162
sequence numbers strings and messages, transferring 29 terms in Dexterity Utilities 8
defined 162 structure, of dictionaries 154 third-party resources, resource IDs 72
for chunk dictionaries 63 summary toolbars, Dexterity Utilities’ toolbar 12
series of reports 95-100 Transfer Dictionary Module window
see also series resources of utilities 17-19 33
defined 9, 162 Summary Reports Transfer menu, described 12
series list, in the toolbar 12 described 137 Transfer Resources window 22
series resources Field Summary sample report 139 Transfer Strings and Messages window
creating when transferring Table Summary sample report 138 29
resources 24 Summary Reports window 137 Transfer Utilities, chapter 21-36
defined 9, 162 symbols in documentation 3 Transfer Window window 31
updating, options 51 Synchronize Dictionary window 58 transferring
updating, procedure 50-51 synchronizing an extracted dictionary 35-36
when to update 50 defined 9, 162 defined 9, 163
Series Resources window 50 dictionaries, procedure 58 dictionary modules, procedure
size, of dictionary modules 34 purpose 58 33-34
source dictionaries when to perform 58 resources
defined 9, 162 when transferring 24 additional resources
working with 10 system colors, user interface transferred, chart 26
SQL conversion 83 dictionary core for transferred
compatibility resources 27
for dictionaries 75 T options 22
limits examined 75 tab sequence, user interface conversion procedure 22-28
making applications 86 scripts not compiling 28
compatible 76 table groups strings and messages
SQL compatibility utility defined 162 options 30
described 75-77 utilities for 18 procedure 29-30
procedure 75-77 Table Relationship Validation Report windows, procedure 31-32
SQL Compatibility window 75 described 147
stand-alone applications sample report 148 U
defined 162 table relationships unchunking, defined 163
packaging 59 defined 162 Undo, menu item 13
updating 59 diagnostics for 147 unused blocks, removing 60
starting, Dexterity Utilities 7 problems 147 unused resources
starting scripts reports for 99 listing 122, 126
defined 162 Table Summary Report 137 removing 123, 127
for a chunk dictionary 64, 80 tables update chunks
static picture values, defined 162 attached to a form 54 description 61

170 DE X TE R I T Y U T IL IT IE S
I N D E X

update chunks (continued) windows (continued)


dictionary modules to include 67 utilities for 19
updating viewing for a form 54
applications windows in Dexterity Utilities
chart 59 Auto-Chunk 78
described 59 Change Core 49
steps 59 Compare Dictionaries 67
using chunk dictionaries 61 Compile Form Scripts 38
series resources Compile Global Functions 42
options 51 Compile Global Procedures 40
procedure 50-51 Compress Dictionary 60
when to perform 50 Create Chunk Dictionary 62
user interface conversion Cross Link Analysis 140
3D effects 83 Developer Update 35
combo boxes 86 Diagnostics 132
conversion report 82 Evaluate After Utility 90
custom colors 85 Expand Windows 74
described 82 Extract 72
drop-down lists 86 Form Inquiry 54
field alignment 87 Forms Report 101
palettes 87 Global Functions Report 109
procedure 82-89 Global Procedures Report 111
scrolling windows 86 Global Resource Usage 122
system colors 83 Global Resources 113
tab sequence 86 Linked Prompt 129
zooms 84 Local Resource Usage 126
User Interface Conversion window 82 Local Resources 116
user-defined functions Product Information 69
see also global functions and form Reports Report 104
functions Resource Inquiry 55
defined 163 Resource Lists 119
Utilities menu, described 12 Search and Replace 44
utilities summary chart 17-19 Series Resources 50
Utility Reference, part 16-91 SQL Compatibility 75
Summary Reports 137
V Synchronize Dictionary 58
version numbers, for chunk Tables Report 106
dictionaries 63, 79, 163 Transfer Dictionary Module 33
Transfer Resources 22
W Transfer Strings and Messages 29
warning symbol 3 Transfer Window 31
Window Help, menu item 14 User Interface Conversion 82
windows Windows menu, described 14
defined 163 Windows metafiles, see metafiles
expanding 74
replacing when transferring 32 Z
reports for 100 zooms, user interface conversion 84
transferring, procedure 31-32

DEXTERITY UTILITIES 171

You might also like