User Interface Editor Guide
User Interface Editor Guide
Contents 3
Customizing a CeFO Application . . . . . . . . . . . . . . . . . . . . . . . . 32
Customizing with the UI Editor . . . . . . . . . . . . . . . . . . . . . . 32
Customizing the CeFO Web Client . . . . . . . . . . . . . . . . . . . . 33
Customizing with the Data Dictionary Editor. . . . . . . . . . . 33
Customizing with the ddcomp Utility . . . . . . . . . . . . . . . . . 34
Customizing with ClearBasic . . . . . . . . . . . . . . . . . . . . . . . . . 34
Customizing with Policies and Customers . . . . . . . . . . . . . 34
Customizing a Mobile Implementation . . . . . . . . . . . . . . . . 34
Recommended Flow for Customization. . . . . . . . . . . . . . . . 35
4 Contents
Creating Child Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Exporting and Importing Forms . . . . . . . . . . . . . . . . . . . . . . . . . 75
Creating a New Parent Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Form Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Adding an Item to a Context-Sensitive Menu . . . . . . . . . . . . . . 80
CeFO-Supplied Customizations . . . . . . . . . . . . . . . . . . . . . . . . . 81
Form License Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Template Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Contents 5
Chapter 6 Display Controls
The ActiveX Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Sharing ActiveX Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
ActiveX Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
The Animation Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Animation Control Properties . . . . . . . . . . . . . . . . . . . . . . . 113
The Bitmap Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Bitmap Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 114
The Graph Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Specifying Graph Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Graph Appearance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Graph Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
The Group Box Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Group Box Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
The Label Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Using HyperLinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Label Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
The Line Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Line Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
The Progress Bar Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Progress Bar Control Properties. . . . . . . . . . . . . . . . . . . . . . 125
6 Contents
Tab Controls for Multipane Forms . . . . . . . . . . . . . . . . . . . 147
Tab Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
The Treeview Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Keyboard Navigation with the Treeview Control. . . . . . . 151
Treeview Control Properties. . . . . . . . . . . . . . . . . . . . . . . . . 151
Contents 7
The Slider Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Keyboard Navigation with the Slider Control. . . . . . . . . . 189
Slider Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
The Updown Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Keyboard Navigation with the Updown Control . . . . . . . 190
Using the Updown to Rotate Through Tabs . . . . . . . . . . . 191
Updown Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . 191
8 Contents
Chapter 11 Using the Extended Contextual Object Editor
About Extended Contextual Objects . . . . . . . . . . . . . . . . . . . . . 244
The Extended Contextual Objects Window . . . . . . . . . . . . . . . 244
Extended Contextual Objects and Contextual Objects . . . 245
Listing Methods and Properties . . . . . . . . . . . . . . . . . . . . . . 247
Displaying Key/Value Pairs. . . . . . . . . . . . . . . . . . . . . . . . . 247
Navigating the Extended Contextual Object Treeview . . 248
Context Menus in the Extended Contextual Object Window
250
Copy Special and Paste Special . . . . . . . . . . . . . . . . . . . . . . 250
Configuring Extended Contextual Objects. . . . . . . . . . . . . . . . 251
Adding Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Adding Methods to Extended Contextual Objects . . . 253
Using Method Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Types of Method Templates . . . . . . . . . . . . . . . . . . . . . . . . . 255
Steps to Add and Use Templates . . . . . . . . . . . . . . . . . . . . . 255
Contents 9
Chapter 13 Using the Code Editor
About the Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Code Editor Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
The Code Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Text Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Auto-Indenting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Automatic Statement Completion . . . . . . . . . . . . . . . . . . . . 280
Creating Form Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Creating Global Code Modules . . . . . . . . . . . . . . . . . . . . . . . . . 283
Appendix A Examples
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Customizing the WIPbin and Queue Windows . . . . . . . . . . . 296
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Find Caller Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Adding Custom Find Caller Fields to the Database . . . . . 300
Adding Find Caller Filters to the New Case Window . . . 301
Using the Find Caller Customize Feature . . . . . . . . . . . . . 302
Adding Multi-Field Filtering to a Form . . . . . . . . . . . . . . . . . . 302
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Only Some Forms Can Use Multi-Field Filtering . . . . 303
Multi-Field Filtering vs. Select CBX. . . . . . . . . . . . . . . . 303
Database Objects Used by NEW_FILTER. . . . . . . . . . . 303
Limitations on Multi-Field Filtering . . . . . . . . . . . . . . . 304
How Multi-Field Select Operates. . . . . . . . . . . . . . . . . . . . . 304
Adding Fields to the NEW_FILTER Contextual Object . . 305
Adding Filters to a Select Window . . . . . . . . . . . . . . . . . . . 305
Adding Filters to the Select Contracts Window . . . . . . . . 306
Adding Fields to a “Sort by” List. . . . . . . . . . . . . . . . . . . . . 309
Changing the Method of Part Selection for Cases . . . . . . . . . 310
Customizing the New Case Window . . . . . . . . . . . . . . . . . 313
Specifying Required Filters for Part Selection . . . . . . . . . . 316
10 Contents
Adding SQL Controls to the Query Windows. . . . . . . . . . . . . 317
How the SQL Feature Works . . . . . . . . . . . . . . . . . . . . . . . . 317
Implementing the SQL Feature . . . . . . . . . . . . . . . . . . . . . . 318
Forms That Use the SQL Feature . . . . . . . . . . . . . . . . . . . . . 318
Adding SQL Controls to Query Windows . . . . . . . . . . . . . 319
Adding KeyPhrases to Part Classes. . . . . . . . . . . . . . . . . . . . . . 324
Adding The KeyPhrase Button to the
Part Class Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Adding the KeyPhrase Button to the
KeyPhrase Selection Window . . . . . . . . . . . . . . . . . . . . . . 327
Passing Login Information to Shell Scripts . . . . . . . . . . . . . . . 329
Creating a Multigrid/MultiCBX Form . . . . . . . . . . . . . . . . . . . 329
Step 1: Create the Form and Add the Controls . . . . . . . . . 330
Step 2: Define a Resource Configuration . . . . . . . . . . . . . . 332
Step 3: Define Contextual Objects . . . . . . . . . . . . . . . . . . . . 332
Step 4: Define Control Properties. . . . . . . . . . . . . . . . . . . . . 335
Step 5: Define extended contextual object properties . . . . 339
Step 6: Add ClearBasic Code to the Form. . . . . . . . . . . . . . 343
Step 7: Test the Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Contents 11
Appendix C User Interface Editor Commands and Windows
User Interface Editor Commands . . . . . . . . . . . . . . . . . . . . . . . 356
File Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Format Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Window Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
User Interface Editor Windows . . . . . . . . . . . . . . . . . . . . . . . . . 361
Button Actions Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Code Editor Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Code Editor Settings Window . . . . . . . . . . . . . . . . . . . . . . . 365
Format Tab Field Definitions . . . . . . . . . . . . . . . . . . . . . 365
Options Tab Field Definitions . . . . . . . . . . . . . . . . . . . . 366
Control Inspector Window . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Edit Form Contextual Objects Window . . . . . . . . . . . . . . . 367
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Edit Form Extended Contextual Objects Window . . . . . . 369
Left Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Right Pane Field Definitions. . . . . . . . . . . . . . . . . . . . . . 371
Export to File Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Extended Contextual Object Template Window. . . . . . . . 372
Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Field Definitions, Templates Tab . . . . . . . . . . . . . . . . . . 374
Field Definitions, Edit Template Tab. . . . . . . . . . . . . . . 374
Form Merge Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Form Select Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Grid Settings Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Import Dat File Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Insert OLE Control Window . . . . . . . . . . . . . . . . . . . . . . . . 381
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Membership Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Object Type Selection Window . . . . . . . . . . . . . . . . . . . . . . 383
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
12 Contents
Preview Differences Options Window . . . . . . . . . . . . . . . . 384
Propagate Contextual Objects Window . . . . . . . . . . . . . . . 386
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Propagate Contextual Objects Window (Multi). . . . . . . . . 387
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Properties Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Resource Config <title> Window. . . . . . . . . . . . . . . . . . . . . 389
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Save Form As Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Select Resource Config Window . . . . . . . . . . . . . . . . . . . . . 392
Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Index
14 Contents
About This Guide
This guide provides information about the User Interface Editor (UI Editor).
The UI Editor is CeFO’s tool for customizing the user interface in
ClarifyCRM eFrontOffice (CeFO) applications. This guide accompanies the
CeFO software release.
The UI Editor can be purchased with a separate option for ClearBasic, which
gives you the ability to write custom code behind your forms, as well as
additional capabilities within the UI Editor itself.
Some of the tasks described in this guide can only be performed with
ClearBasic installed.
NOTE: This version of the User Interface Editor is for Windows 95 and Windows
NT only.
15
Related Documentation
Related Documentation
In addition to this guide, you can refer to the following manuals in the CeFO
documentation set for information about customizing a CeFO application:
• Setting Up Your Data
• Data Dictionary Editor Online Help
• Data Dictionary Guide
• Managing Email
• ClearBasic Object Reference
• ClearBasic Programmer’s Guide
• ClearBasic Customization Guide
• ClearBasic Control Reference
• ClearSales Implementation Guide
For detailed information about any of the applications you have installed in
addition to the User Interface Editor, see the guide(s) for that application.
If you are customizing portions of the CeFO application that use the new
form layout (ClearSales), you should also read the SFA White Paper that
describes some of the high-level concepts and architecture used for extended
contextual objects. This document is included on the Documentation
CD-ROM.
If you are reading this document as a PDF file online, the cross-references to
other pages in the guide are hypertext links (although cross-references to
other books in the CeFO documentation set are not hypertext links). Use the
hypertext links to move from one page to an associated page for additional
information.
• Chapter 13, Using the Code Editor describes how to use the integrated
Code Editor window to write ClearBasic code.
• Chapter 14, Merging Different Form Versions describes how to combine the
layout and properties of two different versions of a form.
• The Appendixes contain supplemental information:
– Appendix A, Examples
– Appendix B, Customization Guidelines
– Appendix C, User Interface Editor Commands and Windows
Conventions
Notes and picture icons are used in this guide to highlight additional
aspects, to notify you of situations where special care is required, or to point
you to additional sources of information.
More Information: Refers you to other sections of this guide or other documents
for more information.
Typographical Conventions
Monospace is used for the following:
• Programming elements such as code fragments, objects, methods,
parameters, command-line syntax, field and table names, HTML tags,
executable programs, and scripts
• System elements such as file names, directories, paths, or URLS
• Common operating system commands or utilities such as the MS-DOS
dir command
• Windows paths use backslashes as in
C:\Clarify\clarify.exe
• UNIX pathnames use front slashes. For example,
/usr/tech2/salesdev/test/scripts (absolute pathname)
or $SALESDEV/scripts (same path using an environment variable).
In This Chapter
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
How the CeFO User Interface Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Form Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Extended Contextual Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
How the User Interface Is Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Customizing a CeFO Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
21
Overview
Overview
This chapter provides a quick get-started overview of the CeFO user
interface and how it works. A few underlying concepts are also presented
from the standpoint of a user interface designer who needs to customize the
user interface.
Each application has a set of primary workflow objects. For example, you
would use ClearSales to track Opportunities and Leads, but you would use
ClearSupport to track Cases (support calls).
22 Chapter 1
How the CeFO User Interface Works
In addition, there are other related data objects such as Customers, Sites,
Contacts, Accounts, and Employees. These items appear in all CeFO
applications as objects related to the primary workflow object. Thus, a user
reviewing a primary workflow object such as a Case can see the Site and
Contact data related to that Case in an integrated fashion.
Forms
In a CeFO application, a window or dialog box is called a form. Each form is
organized around a focus object such as a Case or Part Request. Some forms
display additional information from other related objects. Figure 2 shows
forms in a CeFO application.
Contact form
Part Request
Query form
Controls
The visual elements on a form are called controls. Text boxes, dropdown lists,
and command buttons are all examples of controls.
Contextual Objects
When users work with any form in a CeFO application, they view and enter
information on their local client machine. To temporarily hold the data on
the client, CeFO applications use spaces in local memory called contextual
objects.
Contextual objects can contain data from several sources. For example, a
contextual object can be directly associated with a CeFO database table, or it
can store a list of records selected from a table. Contextual objects can also
store other values such as calculations. Typically, one of the contextual
objects associated with a form represents the CeFO database table or view
that corresponds to the focus object of the form itself. Figure 3 illustrates
contextual objects.
24 Chapter 1
Form Layouts
Case
CObject
You can also use contextual objects to store calculations, such as the number
of records selected. This value can be passed to a label control for the end
user to see.
Form Layouts
There are two main types of CeFO forms:
• A simple form or single-table form shows data from one database object
or view, which is the focus object of the form. Tabs may allow data from
related objects to appear in child windows on the parent form.
• A multipane form also shows data from a focus object that corresponds to
a database table. However, the grid and CBX controls can dynamically
switch among contextual objects based on user selections, without
having to load a different grid.
Focus object:
Contact
Tab
controls
Multipane Forms
A different form layout and organization applies to CeFO baseline forms
that use the multigrid and multiCBX controls. These controls can store and
switch between displays of multiple contextual objects.
26 Chapter 1
Form Layouts
Focus 1
object
3 List (Grid)
Related
objects 2
5 4 Action
View
Detail
Focus object 1
View
6 Detail
The user navigates the areas of the form, which are as follows:
1. The focus object represents the data object which is the focus of the form.
2. The user clicks on a related object to view more information. A list of
related records displays in the grid.
3. The user clicks a record in the grid.
4. The user chooses an action to apply to the record. The appropriate
information appears in the Detail area.
5. Optionally, the user can select from the View list to display different
portions of the selected record.
6. The Detail pane displays different information depending on user
selections made in the other window areas.
28 Chapter 1
Extended Contextual Objects
1 Focus object 1
tabs
Select related 3
2 object to view 2
treeview 4
5 Related 5
object details
Multigrid
Action to selection:
perform with related object
related object records
Every time you create a contextual object for a form, an extended contextual
object is automatically created to hold the extra information. Figure 8
illustrates extended contextual objects.
Multigrid CObj
Methods Properties
30 Chapter 1
How the User Interface Is Displayed
CeFO
database
Server
Form Specifications
Client
Form (created from specifications)
When you open a form in the CeFO application, the application reads the
form specification from the database (or the cached local file that mirrors the
database information) and uses this information to draw the form on your
client.
NOTE: This manual describes only the User Interface Editor. This version of the
User Interface Editor is for Windows 95 and Windows NT only.
32 Chapter 1
Customizing a CeFO Application
If you need to add a new table or perform other database schema changes
not supported through the Data Dictionary Editor, you can edit the
object.sch schema file and use the Apply Changes command in the Data
Dictionary Editor to apply the changes.
The offline client runs off a local copy of the CeFO database that has been
re-created using Microsoft Access. Because Access does not support certain
database features such as stored procedures, some UI customizations might
need to be implemented differently for the offline clients.
34 Chapter 1
Customizing a CeFO Application
Customize the forms in the development database, and verify that they
operate correctly. After you have tested these forms, you can export each
form to a data file, which you can then import into your production
database.
36 Chapter 1
Chapter 2
Getting Started
In This Chapter
Starting the User Interface Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Opening a Form to Customize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
The User Interface Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Using the Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Context-Sensitive Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Correcting Mistakes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Setting Up the Display Grid Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
37
Starting the User Interface Editor
38 Chapter 2
Starting the User Interface Editor
If you are using the User Interface Editor to edit forms with double-byte
characters, you must add the DOUBLE_BYTE setting to the application’s
clarify.env file. The DOUBLE_BYTE setting tells the application to be
aware of double-byte characters. To use this setting, you would add the
following line to the clarify.env file of the User Interface Editor:
DOUBLE_BYTE=TRUE
If you want to use User-defined Data Types (UDTs), you must also specify
the UDT file name on the command line:
uiedit -cb -c=UDTs_file
You can create a Windows shortcut for the application. Right-click on the
executable file and choose Create Shortcut. Then right-click on the new
shortcut and choose Properties. In the shortcut properties window, select the
shortcut tab and add any appropriate options to the target edit box.
If you are starting from the MS-DOS prompt, specify the appropriate options
in the command line.
IMPORTANT: You must have ClearBasic installed on your system before using the
User Interface Editor with the -cb option. Unexpected results may occur if you
edit forms without ClearBasic installed.
More Information: For more information about ClearBasic and User-defined Data
Types, see the ClearBasic Programmer’s Guide and the ClearBasic Customization
Guide.
Getting Started 39
Opening a Form to Customize
40 Chapter 2
Opening a Form to Customize
You can filter the forms list using one of the criteria listed in Table 2.
Criterion Description
Title The title of the form as it appears on the window title bar seen by
the end user.
Name The name of the form as shown in the Name field of the Properties
window for the form.
ID The unique Window ID (also called Form ID) used to identify
every form.
User Version The user-specified version number of a custom form. All custom
forms derived from the same baseline form will have the same
Form ID but different User Versions.
Description A one-line description of the form. To edit, open the Form > Save
As dialog, edit the text, and replace the form when saving.
Getting Started 41
Opening a Form to Customize
You can specify a list of all forms where the criterion starts with, ends with,
or contains the phrase entered in the last text box to the right.
Searching by Form ID
To search for a CeFO baseline form by form ID, use the information in
Table 3 as a guideline.
42 Chapter 2
The User Interface Editor Window
Getting Started 43
The User Interface Editor Window
Standard toolbar
gives you access
to common
file commands.
The pattern of dots represents the grid guidelines. These grid markings do
not show in Preview mode or in the CeFO application. The title bar, shown
in Figure 13, displays the form title, form ID, CeFO version, and user
version, in that order.
44 Chapter 2
The User Interface Editor Window
Getting Started 45
The User Interface Editor Window
In preview mode,
you can view the
form as it appears
in a CeFO
application.
Note that the form behavior is not identical to what the end user would see,
because the preview cannot show any contextual data. You cannot use the
preview to test form workflow (buttons that lead to other forms), nor will
the Search or Save commands actually execute queries or save data to the
database.
46 Chapter 2
The User Interface Editor Window
Right-click a control.
1
The Properties
3 window is displayed
2 for the selected
control.
Choose Properties
from the context
menu.
Note that the dropdown selection list for the Properties window lists all the
controls on that particular form. To edit the Properties for a different control
or the form itself (called “TheForm”), select it from the list and edit the
control properties.
Getting Started 47
Using the Toolbars
Fixed toolbar
You can also use the left-hand border to slide a toolbar back and forth along
the UI Editor window border.
48 Chapter 2
Using the Toolbars
Show/ View
Open Cut Redo hide Control About
Paste code
form toolbox inspector
Open form Displays the Form Select window from which you
can select a form to open.
Save form Saves the form in the database.
Getting Started 49
Using the Toolbars
Space Same
Show/ Align Align Align evenly
middles height
hide lefts rights across Same Button
grid width Same actions
marks Align Center size
tops Align Align vertically
centers Space
bottoms Contextual
evenly
Center down objects
horizontally
50 Chapter 2
Using the Toolbars
Getting Started 51
Using the Toolbars
For more information about arranging objects, see Layout and Arranging
Controls on page 83.
Command
button Option
button
52 Chapter 2
Using the Toolbars
Getting Started 53
Using the Toolbars
Select CBX (ClearBasic mode only) Lets you add a control which
provides database filtering functionality to a grid.
ActiveX Use this command to add ActiveX controls to the
form.
Some examples of controls are shown in the next section. For more
information about using controls, see Working with Controls on page 97.
54 Chapter 2
Using the Toolbars
Examples of Controls
Figure 20 Examples of controls
Check box Option button
Text box
Label
List box
Grid
Tabs
Treeview (ClearSales)
Getting Started 55
Context-Sensitive Menus
Context-Sensitive Menus
Use the left mouse button for standard selection tasks. Use the right mouse
button to display the context-sensitive menu (also called the shortcut menu)
associated with an item. This menu displays the common commands that
you can apply to the item, as shown in Figure 21.
Table 7 describes the various functions available when using the mouse with
keys on the keyboard.
Table 7 Mouse clicks with Shift and Control keys
56 Chapter 2
Correcting Mistakes
Correcting Mistakes
You can cancel the effects of most commands by choosing Edit > Undo.
There is an almost unlimited undo memory in the User Interface Editor; you
can undo almost all the operations you performed, in reverse order, by
repeatedly using the Undo command.
Grid markings shown in edit form Preview form does not show grid
NOTE: Grid markings are not the same as the grid control, which is used on a form
to show a list of selected records to the end user.
Getting Started 57
Setting Up the Display Grid Layout
58 Chapter 2
Chapter 3
In This Chapter
About Forms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
About Resource Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Defining a Resource Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
Exporting Resource Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
Modifying Existing Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
Creating Child Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Exporting and Importing Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Creating a New Parent Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Form Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
Adding an Item to a Context-Sensitive Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
CeFO-Supplied Customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
59
About Forms
About Forms
Forms are the building blocks of your user interface.
With the User Interface Editor, you can save many different versions of the
same form. A resource configuration associates a group of users to a set of
form versions.
You can also export saved versions of a form to a data file. This makes the
form portable between databases. For example, you might set up custom
forms in a test database and verify that the customization works properly. To
bring the forms from the test database to the production database, you can
export the forms to data files and then import the data files into your
production database.
A child form is accessed either through a tab control (to show on parent
form) or a frame button control (to show in a separate window). You do not
need ClearBasic to create a new child form.
You can modify existing CeFO baseline parent and child forms without
ClearBasic.
• For information on creating child forms as tabs, see The Tab Control on
page 139.
• For information on creating child forms that open separately from the
parent form, see Using Frame Buttons on page 133.
60 Chapter 3
About Resource Configurations
The CeFO baseline resource configuration and forms are used for change
control during CeFO upgrades.
Each user must belong to only one resource configuration. By default, new
employees use the baseline version of forms.
You do not need to create custom versions of every form every time you add
a new resource configuration. If no custom form is available, users who are
members of that resource configuration will see the baseline version of the
form instead.
3. In the Configuration Title field, type a name for the new resource
configuration.
4. In the Description field, type a description of the new resource
configuration.
5. Click Add, then click Done.
62 Chapter 3
Defining a Resource Configuration
64 Chapter 3
Defining a Resource Configuration
Search string
Form filter
List button
4. Use the first dropdown list box to select one of the following criteria:
Title - Form title
ID - Form ID, assigned by the UI Editor
User Version - Your versioning of the baseline form
CeFO Version - CeFO-supplied version referencing the CeFO software
release in which this form was introduced
5. Use the second dropdown list box to select the filter operation to
perform.
For all except ID, the search criteria Starts With, Ends With, Contains,
or Not Equal To.
If the “List forms whose” selection has Form ID selected, the second
dropdown list shows the following choices:
= (equals)
> (greater than)
< (less than)
>= (greater than or equal to)
<= (less than or equal to)
!= (does not equal)
6. Enter a search string in the text field and click the List button.
The Database list on the left displays all forms in the database meeting
your filter criteria, as shown in Figure 28. This list includes any
customized versions of forms that you create.
7. (Optional) List the custom forms that are already in this resource
configuration.
By default, the Resource Config list on the right shows all forms that are
in the resource configuration, both baseline and custom. Because each
new resource configuration automatically includes all the baseline forms
until they are replaced by custom versions, it is difficult to see which
custom forms are already in the resource configuration unless you select
the Custom option button.
Selecting the Custom option button filters the Resource Config list.
66 Chapter 3
Defining a Resource Configuration
8. Select a custom form to add to the resource configuration, and click Copy.
You cannot add baseline forms to another resource configuration.
Therefore, the Copy button only activates when you select a custom
version of a form, as shown in Figure 29.
To change the version of a form in the resource configuration, select the
new version from the Database list and click Copy.
The form appears in the Resource Config list on the right.
Choose Custom to
list only custom
forms in this
resource
configuration.
Forms (and
versions) in
All forms already
the database
associated
are listed here.
with this
resource
configuration
are listed
here.
After the form is read from the database, the form specifications are stored in
a cache file on the client. If changes are made to the form in the database, the
CeFO application reads the new version of the form to the client:
• During login if the form is pre-loaded
• When the Update Desktop command is selected
To specify a form as preloaded
1. Add the form to the resource configuration as described in To add a form
to a resource configuration on page 63, but do not close the Resource
Configuration window.
2. Select the form from the Resource Config list to the right and click the
Pre-Load button, as shown in Figure 30.
68 Chapter 3
Defining a Resource Configuration
3. Scroll to the right in the Resource Config button to verify the results.
An X appears in the Pre-Load column for every form that is currently
specified as pre-loaded.
4. Click Replace and then Done to save changes and close the Resource
Config window.
70 Chapter 3
Exporting Resource Configurations
2. Click Membership.
The Membership window appears, as shown in Figure 32.
3. Click Copy.
NOTE: Only the forms that are different from the baseline forms are exported when
you export a custom resource configuration.
72 Chapter 3
Modifying Existing Forms
4. Enter the name for the data file and click OK.
To modify a form
1. Use the Form Select window to open the form.
2. Make your changes.
These changes may include any of the following:
• New controls
• Modification to existing control properties
• New contextual objects
• Changes to the form layout
• Changes to the ClearBasic code associated with the form (requires
ClearBasic installed)
3. Choose File > Save As from the menu.
The Save Form As window (page 74) appears.
4. Specify a User Version and a Description, and click Save.
To save a form:
1. Choose File > Save Form As.
The Save Form As window appears, as shown in Figure 35.
2. In the User Version text box, type the version of the form.
74 Chapter 3
Creating Child Forms
76 Chapter 3
Creating a New Parent Form
IMPORTANT: Creating a new form can be fairly complex, particularly if the form
uses the multigrid or multiCBX control features. You must be familiar with
ClearBasic, the existing CeFO user interface, and with the CeFO data model before
attempting to design and create your own parent forms.
After you are satisfied with the form, you can export the form and import it
into your target or production database. See Exporting and Importing Forms
on page 75.
78 Chapter 3
Form Properties
Form Properties
Form properties are used to define basic characteristics of the form, such as
versioning, associated context-sensitive help topic, context menu, and
background color. The properties available for the form itself are listed in
Table 8.
Table 8 Form properties
80 Chapter 3
CeFO-Supplied Customizations
CeFO-Supplied Customizations
This section outlines a few areas where CeFO has included some commonly
requested customization options as part of the baseline product.
Template Forms
CeFO has supplied some optional controls (with ClearBasic code behind
them) that you can copy and paste to use on your own forms, even if you
don’t have ClearBasic. These controls are kept on special “template” forms.
The forms themselves are not used in the CeFO application. They are just a
holding place for the controls.
Each template form goes with a particular baseline form. Use only the
controls from the correct template form when modifying the baseline form.
Table 9 lists the CeFO-supplied template forms.
CAUTION: Do not copy and paste CeFO-supplied controls from other forms onto
your own forms. Some of these controls contain code that will not function properly
on other forms.
82 Chapter 3
Chapter 4
In This Chapter
Selecting Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Moving Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Resizing Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Deleting Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
Copying and Pasting Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Aligning Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
Spacing Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
Resizing the Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
Viewing the Properties Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
Changing the Value of a Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
83
Selecting Controls
Selecting Controls
When you place a new control on a form, it is automatically selected. You
can select different controls to change their properties or to move them
around the form. You can select one control or many controls.
When you select a control, a bounding box with handles appears around the
control to indicate that it has been selected, as shown in Figure 39.
To select a control, click the Select tool in the Object toolbox; then click the
control.
To select a group of controls in the same area, click outside the area and drag
diagonally around them, as shown in Figure 40. This selects any control that
is even partially inside the selection rectangle.
To add a control to a selection, hold down the Shift key while you click the
new control.
84 Chapter 4
Selecting Controls
If you are using the Same Height or Same Width commands, all controls in
the selection group will be resized to match the dimensions of the reference
control. When you use the Align commands, all controls are aligned with the
reference control.
Moving Controls
You can quickly move a control by dragging it, or you can make small
position changes by moving the control with the arrow keys.
• To quickly move a control, select the control and drag it.
• To move a control in small increments, select the control and hold the
Control key while pressing an arrow key.
NOTE: When snap to grid is enabled, objects move to the next grid unit. Turn off
the snap to grid feature to move objects a pixel at a time.
Resizing Controls
When you resize a control, the status bar displays the dimensions of the
control, as shown in Figure 42.
86 Chapter 4
Resizing Controls
To resize a control
1. Select the control.
2. Drag one of the handles, as shown in Figure 43.
NOTE: You can also resize a control by selecting it and holding the Shift key while
pressing an arrow key.
1 2 3 Right-click, 4
select Size,
blue and then
select Same
Height. (You
green can also select
Both.)
These controls are When you select the Button height is now
mismatched. controls, select the the same.
reference control last.
It will have green
selection handles.
5 6 7 8
Right-click Right-click,
again; select select Align,
Size > Same and then
Width. select Lefts.
Deleting Controls
You can easily delete a control or group of controls by selecting the control(s)
and pressing the Delete key.
88 Chapter 4
Copying and Pasting Controls
Copy Ctrl-C
Paste Ctrl-V
Redo Ctrl-Y
Controls remain on the Clipboard until you choose Copy or Cut again.
Aligning Controls
You can align objects along a horizontal line by specifying the top, middle,
or bottom alignment. (See Figure 45.)
You can align objects along a vertical line by specifying the left, center, or
right alignment. (See Figure 46.)
Controls are aligned with respect to the last control you select. Different
colored handles appear on the bounding box of the last selected object to
show which is the reference control. (See Figure 47.)
90 Chapter 4
Spacing Controls
NOTE: You can change the reference control even after your group of controls has
been selected. Press the Control key and click the control that you want to be the
new reference.
To align controls
1. Select the controls.
Select the control to which you want the others aligned last.
2. Choose Format > Align, and choose the alignment you want.
Spacing Controls
You can move (distribute) controls so that they have an equal amount of
space between them. You can distribute controls horizontally and vertically,
as shown in Figure 48.
When you distribute controls horizontally, the left and right objects stay in
place, and the other controls are spaced with equal distance. When
distributing controls vertically, the top and bottom objects stay in place, and
the other controls are spaced with equal distance.
To distribute controls
1. Select the controls.
You can select the controls in any order.
2. Choose one of the following options:
a. Format > Space Evenly > Down
• Format > Space Evenly > Across
When a user resizes a form in CeFO applications, the size and position of the
form are kept in local memory as part of the user’s display preferences.
These preferences are saved in the user’s local cache file.
If the CeFO application was started with the -save_geom option, these
preferences are saved to the database when the user logs out of the CeFO
application. The user’s display preferences always override any size and
position changes made in the User Interface Editor.
92 Chapter 4
Viewing the Properties Window
Gray = noneditable
94 Chapter 4
Changing the Value of a Property
If you accidentally enter the wrong value, use the Undo command to revert
to the previous value.
96 Chapter 4
Chapter 5
In This Chapter
Types of Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Adding Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Common Properties of Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Changing the Tab Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Adding Context-Sensitive Menus for Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
97
Types of Controls
Types of Controls
This guide groups the controls available through the UI Editor into the
following types, which are explained in the next few chapters:
• Display Controls such as labels or animations are used to display
information to the user, but do not allow direct user interaction.
Although some display controls are dynamically populated, they do not
execute actions within CeFO, and ActiveX controls execute third party
applications within CeFO.
• Navigation and Action Controls assist the user in navigating through a
form, and/or take the user to a different form as a result of an action.
• Input Controls such as text boxes and dropdown list boxes accept user
selection or input for filtering or data entry.
• The Grid and CBX Controls are special controls whose complexity requires
special attention. They handle list and filtering functions for groups of
records.
Adding Controls
All controls are added to a form using the same general steps.
98 Chapter 5
Common Properties of Controls
Command
button Option
button
2. Position the cursor where you want the control and click the left mouse
button.
After the control has been placed, you can do the following:
• Resize or move the control.
• Edit the properties of the control.
• Add another control.
The following sections describe the controls and their properties.
A few of these, such as Caption, are not available for all controls. For
example, the Select CBX control does not use a caption. However, their use is
similar for all controls that do use them.
100 Chapter 5
Common Properties of Controls
For a list of each control’s specific properties, see the entry for that control
elsewhere in this manual.
CASE_ID
WIPBIN_NAME
LABEL18
LABEL14
ComboBox17
FILTER_BY SELECT
CANCEL_BTN OK_BTN
102 Chapter 5
Changing the Tab Order
Control ID Numbers
The Control ID is distinct from the Window ID. The Window ID uniquely
identifies the form and distinguishes it from all other forms in the database.
The Control ID number identifies the sequence of the control within the
form.
You can change the order in which the Tab key moves between controls by
changing the ID numbers of the controls.
To view the tab order, choose View > Control Inspector or Edit > Tab Order.
Numbers
indicate the
tab ordering
in the form.
A black box
indicates the
selected
control.
You can change the tab ordering with either the Control Inspector or the Tab
Order command.
104 Chapter 5
Changing the Tab Order
The tab
number in the
black box
indicates the
The cursor selected
changes to control.
show a TAB
icon.
NOTE: When you add custom menu items to a control, the control automatically
adds a separator between any application-defined menu items and your custom
menu items.
106 Chapter 5
Adding Context-Sensitive Menus for Controls
3. Select an empty row and add the menu item information for a new menu
item. Repeat the process for each new item you want to add.
For each menu item, you must specify the following information:
• Item label
• Name of the item (used to generate menu events)
• Name of the application menu (if any) to which the item belongs
• Type of item
4. Click OK to save the items.
NOTE: The menu event used in ClearBasic has been renamed from
myControl_MenuName() to
myControl_ContextMenu.Select(MenuName). Although the former
event name is still supported, it is recommended that you use the new naming
convention wherever possible.
108 Chapter 5
Chapter 6
Display Controls
In This Chapter
The ActiveX Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
The Animation Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
The Bitmap Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
The Graph Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
The Group Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
The Label Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
The Line Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
The Progress Bar Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
109
The ActiveX Control
Calendar ActiveX
object placed in the
Site Notes tab form.
Properties unique to
the ActiveX control are
listed here.
When you add an ActiveX control to a form, the Insert OLE Control window
appears and displays all the ActiveX controls that are installed on your
machine. Figure 58 shows an example of this window.
110 Chapter 6
The ActiveX Control
ClearBasic code needs to be generated in order to pass data to and from the
ActiveX control. Otherwise, the ActiveX control functions independently
from the CeFO application.
For example,
regsvr32 c:\winnt\system32\msacal70.ocx
Store the batch file along with the COM component in a shared directory. In
the User Interface Editor, open the property sheet for the ActiveX control.
Click the Installation Path property and select the batch file you just created.
The control displays the path to this batch file in the Install From property.
For example, suppose the .bat file is called active.bat and is located on
the C: drive of Pc_Gary. Place the ActiveX control on the form and open the
Properties window. Click the Installation Path property and locate the
active.bat file. When you select the file, the path
(\\Pc_gamma\shared\active.bat) appears in the Install From
property.
Specifying a registration script allows the user to use the ActiveX control
locally without downloading it. When a window containing an ActiveX
control is opened on a machine that does not have the proper COM
component installed, the user is asked to register the component. If you do
not provide a registration script, the user must locate and install the ActiveX
control manually.
NOTE: The first time the user opens a window with an ActiveX control, the control
is not displayed. The user must install the component either manually or using the
provided registration script. After installation, the user must either quit and restart
the CeFO application or choose Desktop > Update Desktop to see the ActiveX
object.
ActiveX Properties
Table 12 lists special properties of the ActiveX control. (For a list of the
common properties supported by all controls, see Common Properties of
Controls on page 99.)
112 Chapter 6
The Animation Control
The animation control can play only simple AVI clips. The following is a list
of requirements for clips displayed by the animation control:
• There must be exactly one video stream and it must have at least one
frame.
• There is a maximum limit of two streams in the file. The AVI file cannot
have more than that. (Typically the other stream, if present, is an audio
stream.)
NOTE: The animation control ignores all audio information. It will play only
video streams.
More Information: In ClearBasic, use the Play method of the Animation object to
initiate the playback of an AVI clip file. This method lets you specify which frames
of the clip file to play. See the ClearBasic Control Reference for more information on
this method.
114 Chapter 6
The Bitmap Control
When you create a new bitmap control, the UI Editor displays the Bitmap
Dialog window so that you can select a bitmap file. The name of the file you
choose is placed in the Picture property. To modify the file name, click the
Picture property in the Properties dialog box and select a new bitmap from
the Bitmap Dialog window.
In the Bitmap Dialog window, click the Load button to display the standard
file browsing window. From this window, you can select the bitmap file you
want do display in the control.
NOTE: The bitmap file you select must reside on the client’s machine, and the path
relative to the UI Editor application (and the CeFO application) must be 80
characters or less. One way to ensure that your bitmaps are included is to create a
subdirectory for bitmaps in the CeFO application folder.
In the Bitmap Dialog window, you can also select a color from the
Transparent dropdown list, to make a particular bitmap color transparent.
For example, if you select red from the dropdown list, all instances of red in
your bitmap become transparent, letting whatever is underneath it show
through. Figure 59 shows the Bitmap Dialog window.
The graph control supports many different graph styles, including different
types of bar charts, pie charts, and statistical plots. When you create a graph
control, you must decide which graph style is most appropriate for the data
you expect to display.
Normally, the data points you specify must be numerical values. However,
you can also specify strings by setting the Aggregate property of the graph
control to Yes. Using aggregation, the graph control groups identical strings
together and assigns them a specific number. The control then uses the
assigned number to plot the data.
Graph Appearance
At run time, the graph control generates a bitmap from the given data and
displays that bitmap in the control’s rectangle. The exact appearance of the
bitmap depends on the current values on the control’s Property sheet.
However, most graphs have three main elements: data points, graph labels,
and a graph legend.
Each data point is displayed on the graph control’s bitmap using a graphical
element, such as a rectangle or pie shape. The value of the data point directly
affects the size and shape of the graphical element.
The graph legend and labels identify the groups to which each data point
belongs. The graph legend identifies elements of a particular data set using a
unique color. Graph labels identify related elements of one or more data sets.
Figure 60 shows the graph elements, labels, and legend associated with a
graph control.
116 Chapter 6
The Graph Control
Data Legend
Points
Labels
Graph Properties
Table 15 lists the special properties of the graph control. (For a list of the
common properties supported by all controls, see Common Properties of
Controls on page 99.)
Graph controls deal exclusively with numerical data. If you want to use
strings as data points, you must set the Aggregate property of the control to
Yes. When you do this, the Graph control groups identical strings together
and then enumerates the resulting string data points.
118 Chapter 6
The Group Box Control
Group box
control
You can define the “label” that appears in the group box control, or use a
contextual object as the source of the text string to display.
Labels
You can also use label controls to show calculated values. For example, a
select window in ClearSupport can show the number of cases selected by a
particular query operation. Figure 63 shows how the New Case window
uses a label to display the number of open cases for a site.
120 Chapter 6
The Label Control
This label
uses the
OPEN_TEXT
contextual
object as the
text string to
display.
Because a label control can display only string values, non-string values
must be converted to string before loading them into the control. You can
use ClearBasic to convert an integer value to a string.
More Information: For more information about using ClearBasic to convert values
to strings, see the ClearBasic Language Reference and the ClearBasic Control
Reference.
Using HyperLinks
HyperLinks allow a label to serve as a link to either a URL or a file path. If it
is a URL, then the specified location opens in the user’s default Internet
browser. If it is a file, and an application is associated with that file type, the
application starts and opens the file. If the file specified in the HyperLink is
itself an executable, then the application opens.
Label Properties
Table 17 lists the special properties of the label control. (For a list of the
common properties supported by all controls, see Common Properties of
Controls on page 99.)
122 Chapter 6
The Label Control
Line Properties
Table 18 lists the special properties of the line control. (For a list of the
common properties supported by all controls, see Common Properties of
Controls on page 99.)
Property Description
PenStyle Draws a solid or dashed line.
PenWidth Width of the line (in points.)
ForeColor Selects a color for the line. The default color is Nil, which draws a black line (no color).
Height Determines the number of vertical pixels between the endpoints. Set to 1 for a horizontal
line.
Width Determines the number of horizontal pixels between the endpoints. Set to 1 for a vertical
line.
124 Chapter 6
The Progress Bar Control
You can set a range for data using the Max and Min properties.
126 Chapter 6
Chapter 7
In This Chapter
The Button Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
The Tab Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
The Treeview Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
127
The Button Control
Buttons
IMPORTANT: Do not define a default button for forms that contain multiline text
boxes, because this will prevent users from using carriage returns in those fields.
128 Chapter 7
The Button Control
IMPORTANT: CeFO buttons access special routines in the code associated with the
name of the button. Do not reuse CeFO button names or change the name of a
CeFO button. See Figure 70 for a list of reserved names.
Assigning Mnemonics
Some buttons can be accessed with a keyboard shortcut. For example, the
Add button in the Part Request Detail form can be accessed by pressing the
modifier key and the A key. For example, if the Alt key is the modifier, the
keyboard shortcut would be Alt-A.
NOTE: On the PC, the modifier key is the Alt key. On a Sun workstation, the
modifier key is the Meta key.
For example, to assign the mnemonic “D” for a button labeled “Details,”
enter “&Details” as the text property. To assign the letter “v” as the
mnemonic for a button labeled “Availability,” enter “A&vailability” as the
text property. You can use alphabetic or numeric characters as mnemonics;
special characters are not allowed.
130 Chapter 7
The Button Control
If you assign the same mnemonic character to more than one button, the
action taken when that mnemonic key is pressed depends on the following
conditions:
• Order of the control IDs
The control with the lowest ID number (assigned the mnemonic) is
used.
• Whether the associated button is enabled or disabled
Mnemonics assigned to disabled buttons are ignored.
Choose Edit > Verify Form to check that you have no duplicate mnemonics.
Mnemonic Precedence
You can reuse characters that are used as accelerator keys on menus. An
accelerator is a key or combination of keys that invoke a function (often a
menu item) without displaying the menu, associated forms, or dialogs.
NOTE: Accelerator keys take precedence over mnemonics. If the same character is
used as a mnemonic on the active form and as an accelerator key on a menu, the
accelerator key on the menu takes precedence; the mnemonic action is ignored.
132 Chapter 7
The Button Control
More Information: For more information about using Form Init buttons, see
Chapter 12, Using the Action Editor.
NOTE: The difference between child forms (frames) and parent forms is that you
can open a child form without writing ClearBasic code.
134 Chapter 7
The Button Control
The names DONE and CLOSE are special because the CeFO application looks
for these buttons when the user clicks the window close icon or uses a
standard keyboard shortcut like Control-F4 to close the window. If your
form does not have them, the window close icon will not work.
More Information: For more information about frames, see The Group Box Control
on page 118.
IMPORTANT: When adding a frame command button to a custom form, make sure
that the name you assign to the button is not used by any other control on the
parent or child windows. If the control name is not unique, the button may not link
correctly to its child frame.
136 Chapter 7
The Button Control
12. In the Dialog ID property, enter the Form ID of the parent form.
13. In the Dismiss property, select 1 - Yes.
Setting the Dismiss property to Yes causes the child form to close when a
user clicks this button to return to the parent form.
Dial 1148
Lookup 1158
More 1160
Next 1162
Previous 1166
Date 1168
Up 1170
Down 1172
Button Properties
lists the special properties of the button control. (For a list of the common
properties supported by all controls, see Common Properties of Controls on
page 99.)
138 Chapter 7
The Tab Control
See Tab Controls for Multipane Forms on page 147 for more information on
using tabs with hidden titles.
Tabs
140 Chapter 7
The Tab Control
All tabs in a form must have the same set of contextual objects as the parent
form. Never add new contextual objects to an existing child form. Instead,
you should add the new contextual objects to the parent form and then use
the Propagate command to copy those contextual objects to the child form.
Tab Restrictions
The following is a list of rules for using tabs.
• Forms must share the same set of contextual objects. (You can propagate
contextual objects from a parent form to a tab using the Propagate
Contextual Objects command. See Propagating Contextual Objects on
page 238 for more information.)
• Only one row of tabs is allowed.
• A tab control can only be used to post a child form, but not a parent form.
• Select CBX controls must reside on the parent form.
• The color of the Tab label text cannot be changed.
• Tab background text cannot be changed. The color is determined by the
form background resource.
• The Tab label text is displayed in 12-point Helvetica font only.
• The order in which tabs appear is determined by the control ID. The
order in which the Tab key navigates through tabs is also determined by
control ID. The order is from left to right beginning with the lowest
number.
• Tabs cannot be nested (a tab cannot contain other tabs).
• Keyboard mnemonics cannot be assigned to tabs.
• It is recommended that you place required text boxes and dropdown list
boxes in the default tab.
• User-defined dropdown lists must reside on the parent form or the
default tab.
NOTE: If you are planning on using this version of the User Interface Editor with
forms imported from a previous version of CeFO, use the tab naming convention
set by the previous version for those forms.
142 Chapter 7
The Tab Control
NOTE: For best results, specify a width that is equal to the width of the first tab
control’s frame plus 25. Also, specify a height that is equal to the height of the first
tab control’s frame plus 45.
144 Chapter 7
The Tab Control
Tab Sizes
For a form such as the one shown in Figure 73, the size of the bounding
boxes of other tab controls is not important because all the tab controls
inherit the size of the first tab control. Other tab controls can be placed
anywhere in the form, but it is a good idea to place them inside the
bounding box of the default tab control.
Tab Order ID 13 14 15 16 17 18 19
The procedure for reordering tabs is just like changing the tab order between
controls. See Changing the Tab Order on page 103.
NOTE: The Control ID property for each tab is different from the Tab Order ID
shown when changing the tab order. However, both IDs re-number when you
change the tab order.
146 Chapter 7
The Tab Control
Each tab is
fronted using the
View menu
Tab
area
Tab Properties
Some of the tab control properties only appear on the properties window of
the first tab control created on the form. If you create a set of tab controls,
then delete the first tab, the second tab shows the properties listings
formerly shown for the first tab.
If you want the extra properties to appear for a different tab without having
to delete the first tab, you can reorder the tabs to give the new tab the lowest
tab order within the group of tab controls. See Changing the Tab Order on
page 103.
Table 20 lists the special properties of the tab control. (For a list of the
common properties supported by all controls, see Common Properties of
Controls on page 99.)
148 Chapter 7
The Tab Control
Figure 77 shows the treeview control from the Lead Manager form as it
appears in the CeFO application, and then as it appears in the UI Editor
application.
150 Chapter 7
The Treeview Control
NOTE: You must have a ClearBasic license in order to add or modify treeview
controls.
Option Displays
tvwTextOnly (default) Text only
tvwPictureText Image and text
tvwPlusMinusText Plus/minus signs and text
tvwPlusPictureText Plus/minus signs, image, and
text
tvwTreelinesText Lines and text
tvwTreelinesPictureText Lines, image, and text
tvwTreelinesPlusMinusText Lines, plus/minus signs, and text
tvwTreelinesPlusMinusPictureText Lines, plus/minus signs, image,
and text
Font Font Specify font to use for treeview listings.
152 Chapter 7
Chapter 8
Input Controls
In This Chapter
The Check Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
The Option Button Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
The Text Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
The Multiline Text Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
The List Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
The Dropdown List Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
The Dropdown Combo Box Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
The Slider Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
The Updown Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
153
The Check Box Control
Check boxes
A check box control can have a source and destination link to contextual
object fields.
• The optional source link can display a character string stored in a
contextual object field as the text label next to the check box.
• The destination link writes the value of the check box to the contextual
object. If the check box is selected, a 1 is written. If the check box is not
selected, a 0 is written.
154 Chapter 8
The Option Button Control
Option buttons.
Caption property
holds the text
associated with
each option
button.
156 Chapter 8
The Option Button Control
Grouped option buttons should also be placed next to each other, to help the
user understand the association.
Make sure the Group Items property of the buttons contains the same value.
Adding the buttons sequentially should ensure this.
158 Chapter 8
The Text Box Control
You can also use an text box to display a value. For example, you can use a
text box to display a count of records. Be sure to make the text box read-only.
However, often a label is a better control to use for cases such as this.
NOTE: To be set as required, a text box must be on the parent form or the
default tab. For example, you cannot make the District text box (located on the
Support Info tab of the Site form) a required text box.
• Read-only: A read-only text box prevents users from typing into the
field. Users can, however, copy information from read-only text boxes
and paste them into other fields or applications.
• Password: A password text box hides the entered text. Asterisks (*)
appear instead of the actual text.
• Type: The type of the text box determines what kind of data the text box
accepts and how that data is displayed. See Text Box Types on page 160 for
more information.
Text box
DateTime
text box
with dropdown
Calendar
To set the type of data (formatted or unformatted) accepted by the text box
control, choose the appropriate value from the Type property’s dropdown
list. The following sections describe how the text box behaves for each type
of formatted data.
160 Chapter 8
The Text Box Control
At run time, the user can choose to convert information from the local
currency to a different currency using the application interface. When this
happens, the application converts all of the values in the relevant currency
text boxes to the new local currency. After a conversion, many form-related
controls are disabled to prevent the modification of the converted values.
However, you can set the Enable On Currency Convert property of a control
to enable it after a conversion.
After you set the text box Type property to DateTime, you can set up the text
box to show either the date only or both date and time. In addition, you can
specify whether it has a dropdown calendar or not.
• To enable or disable the dropdown calendar, set the Calendar property to
Yes or No.
• The Destination Data Type property determines whether the text box has
the date only, or the date and time. This is a text entry field which only
accepts values “date” or “date only display”.
NOTE: Entering text in the Text property field displays default text within the
User Interface Editor, but it does not appear in a CeFO application.
See the Data Dictionary Editor Online Help for more information on using the
CeFO Data Dictionary Editor.
162 Chapter 8
The Text Box Control
NOTE: There is a 32K limit for text box controls within CeFO forms. Even if you
set the Max Length property to 0, this 32K limit still applies to CeFO users.
The position properties define the size and position of the control. See
Common Properties of Controls on page 99 for a complete list of these
properties.
NOTE: You can concatenate two fields as long as they are from the same contextual
object. For example, you can concatenate part number and model number. You
cannot, however, concatenate part name and part number in the New Case window
because they are fields from different contextual objects.
164 Chapter 8
The Text Box Control
where:
%^ indicates a field delimiter
fieldn is the contextual object field name
$s indicates the field is a string format
For example,
%^first_name$s%^middle_name$s%^last_name$s
returns
JohnAndrewDoe
You can place characters, such as a comma or a space, between the fields. For
example,
%^last_name$s, %^first_name$s %^middle_name$s
returns
Doe, John Andrew
When constructing your input mask, you must know the maximum number
of characters the user may need to type. Each formatting character
corresponds to a single character. Thus, to specify a 10-digit telephone
number (including area code), you could specify the following mask string:
(###) ###-####
If the user does not have an extension, then the last four digits can be
omitted. Thus, the text box might display something like the following:
(919) 321-6186 [ ]
The parenthesis and hyphen in the preceding examples are literals that
appear only in the text box control. The user does not need to type these
literals and they are not part of the value stored in the contextual object.
Their only purpose is to provide visual formatting for the data entered by
the user.
Although the input mask limits the types of characters a user can type, it
does not validate the data entered by the user. Thus, if you have an input
mask of the form ##/##/## for specifying dates, the input mask allows the
user to enter a value such as 99/99/99. Your application is responsible for
validating the contents of the text box and for reporting appropriate errors.
166 Chapter 8
The Multiline Text Box Control
IMPORTANT: Do not define a default button for forms that contain multiline text
boxes, because this will prevent users from using carriage returns when entering
text in those fields.
NOTE: To be set as required, a multiline text box must be on the parent form
or the default tab’s child form. For example, you cannot make the District text
box (located on the Support Info tab of the Site form) a required field.
NOTE: You need the richedit20.dll in order to use the find and replace
feature (it is not enabled or disabled with a property). Contact your system
administrator for more information about obtaining this .dll file.
To search for a string, click in the multiline text box, click the right mouse
button, and then click Find. In the window that appears, enter your search
criteria and click Find Next.
168 Chapter 8
The Multiline Text Box Control
1
In the CeFO application,
right-click in the multiline text box.
2
Choose Find.
170 Chapter 8
The List Box Control
A list box allows users to select an item from a scrollable list. List boxes do
not allow multiple selection of items; the user can select only a single item.
List box
A list box has no self-labeling abilities. If you need to label this control, you
must place a label control next to it.
You can use the List Items property to define the items in the list, as shown
in Figure 85, or use a source contextual object.
Figure 85 Using the List Items property to define the items in the list
1
Right-click the list
box to show the
Properties
window.
2
In the Properties window,
click the ellipsis (...) next to
List Items to define the
items in the list.
3
Enter the items to be
displayed in the list.
4
Select an item and click Up
or Down to change the
order.
The Case Query Edit has a Property list box used as part of the query
function, as shown in Figure 86.
172 Chapter 8
The List Box Control
Query
property is set
to Yes.
174 Chapter 8
The Dropdown List Box Control
IMPORTANT: Do not edit any CeFO list or Static list dropdown list boxes that
currently exist in CeFO forms. Both types have inherent logic behind them and
may not function properly if changed.
Figure 88 shows CeFO dropdown list boxes in the New Change Request
form, as seen in the CeFO application.
176 Chapter 8
The Dropdown List Box Control
More Information: For more information about the Policies and Customers
application, see the ClarifyCRM Policies and Customers Help.
ClearBasic code can be written to fill the CeFO list dropdown list box with
values.
1. Choose
Static List as
the list type.
3. Enter the list values in the
2. Click List Items. Item column.
NOTE: When changing a dropdown list box to a static list, relations previously
supported by the dropdown list box are no longer supported.
178 Chapter 8
The Dropdown List Box Control
The Item column lists what the user sees when they click this dropdown list
box. The User Data column lists the data that is used (or stored) when a user
chooses an item. In this example, if the user sorts by Administrator, then
contract2admin(1):login_name is used as the sorting criteria.
You can also use the User Data column to store values in the database that
are different from the ones displayed. This requires a ClearBasic code
license.
In the example shown in Figure 91, if a user selects “Light Red,” then 06322
is stored in the database.
More Information: For more information about the Policies and Customers
application, see the ClarifyCRM Policies and Customers Help.
The items in the Operating System and System Memory pop-up lists are
based on the item selected in the CPU list. For example, if PC is selected as
the CPU, the operating system choices are Windows 3.0, Windows 3.1, and
Windows 95.
180 Chapter 8
The Dropdown List Box Control
Hierarchical pop-up lists are implemented with two or more dropdown list
boxes. Each dropdown list box represents a specific level. See Figure 93 for
examples of hierarchical pop-up lists.
The list name (Name property of the dropdown list control) is defined in the
User-Defined Pop-Up List window of the Policies and Customers
application. Figure 94 illustrates the correlation between the user-defined
pop-up list items in Policies and Customers, and the dropdown lists on the
New Case form as it appears in the CeFO ClearSupport application.
NOTE: You must have a default value on each level in the Pop-Up List window.
Otherwise you cannot select this level in the User Interface Editor.
182 Chapter 8
The Dropdown List Box Control
There are two methods for determining which item in the list is selected:
• Store the item string in the destination contextual object.
• Use the Long Value property to store the positional index of the entry in
the destination contextual object. The Long Value property is available
only when using the User Interface Editor with the -cb option.
For example, Figure 95 shows a dropdown list box with three entries. The
second entry is selected. If the Long Value property is not used, b is stored in
the contextual object. If the Long Value property is used, 2 is stored in the
contextual object (positional indexes start with 1).
Positional index: 1
Positional index: 2
Positional index: 3
184 Chapter 8
The Dropdown Combo Box Control
Dropdown
combo boxes
A dropdown combo box control can have source and destination links to
contextual object fields.
• The optional source contextual object defines the items in the list. You can
also use the List Items property to define the items in the list if a source
contextual object is not desired.
• The destination contextual object identifies the selected item from the list.
A dropdown combo box has no Caption property associated with it. If you
want to label this control, you must place a Label control next to it.
186 Chapter 8
The Dropdown Combo Box Control
Click Up or Down to
arrange items in the list.
Or click Delete to remove
an item from the list.
You can also use the slider to control the input of values for a given
application. For example, to set a limit on the number of billable hours
charged to clients, use a slider control to select the amount of billable hours
from a given range.
188 Chapter 8
The Slider Control
You link the buddy control to the updown control by setting the
BuddyControl property in the Properties window. The buddy control must
be a text box control.
190 Chapter 8
The Updown Control
192 Chapter 8
Chapter 9
In This Chapter
The Grid Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
The Select CBX Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
193
The Grid Control
Grids (also called custom lists or field arrays) are tables that display
information in a series of rows and columns. You can use grids to display
database records or custom data. You can define grids which let the user edit
the data displayed in the grid.
Grids
194 Chapter 9
The Grid Control
In either case, you can’t show data from two tables in the grid at the same
time. If you need to do that, you can create new views in the CeFO database,
and associate the grid with each view using extended contextual objects.
Alternatively, you can use User Defined Types in ClearBasic. See the
ClearBasic Customization Guide for more information.
You must specify different source and destination contextual objects for each
database object or view that is displayed in a multigrid. For multigrids,
some of the properties and definitions that are normally handled through
the Grid control properties window are set through the Extended Contextual
Objects window instead.
Refer to the ClearSales Customization Guide for a description of how CeFO has
implemented multigrids on the baseline multipane forms.
196 Chapter 9
The Grid Control
198 Chapter 9
The Grid Control
You can add or remove columns at any time using the Columns property in
the Grid properties window. When you click it, a dialog box appears as
shown in Figure 106, listing each column and the type of data that column
contains. You can use this dialog box to rearrange, add, update, or remove
columns.
The following procedure shows how to use the grid wizard to create the grid
columns using the address source contextual object as an example. (The
corresponding CeFO database table is table_address.)
200 Chapter 9
The Grid Control
10. Choose address from the pulldown menu and click OK.
The fields in the address contextual object appear as columns in the grid
control, as shown in Figure 111.
If needed, you can rearrange the columns or remove columns from the grid.
202 Chapter 9
The Grid Control
To select an entire
row, click the gray
box.
Select a row
and click Up or
Down to
arrange the
order.
More Information: For information about other column properties, see Column
Properties on page 209.
NOTE: In-place editing requires ClearBasic code to validate and save grid changes.
For more information about programming with ClearBasic, see the various CeFO
documentation titles on ClearBasic.
In-place editing allows the user to select a cell and modify that cell directly,
without posting a separate dialog. When the user selects a cell, the grid
replaces the cell text with a control box that allows the user to modify the cell
contents. When the user is finished, selecting a different cell removes the
control and updates the grid display. Figure 113 shows a grid with a cell
being edited.
Table 28 lists control types that are supported for in-place editing.
204 Chapter 9
The Grid Control
For each column in an editable grid, you must specify the type of control to
use when editing its cells. Depending on which control you select, you may
also need to specify additional options. See Column Properties on page 209 for
more information.
Creating a Multigrid
A multigrid is a grid control that uses multiple contextual objects.
IMPORTANT: If you are creating a custom version of a CeFO form that already
contains an editable multigrid, leave the grid editable in custom form versions.
To create a multigrid
1. Open the form that will display the multigrid.
2. Place a grid control, but don’t add any columns to it.
3. Make a note of the grid name.
4. Set the MultiCobj property to Yes.
This makes the grid into a multigrid. Some of the Properties listings
disappear. (They reappear in the Edit Extended Contextual Objects
window.)
5. Add a set contextual objects to the form for each database table or view to
display in the multigrid.
For each database object or view that the grid displays, create the
following:
• One source contextual object for the table, specifying the table or view
name as the Database Object Type, and Record List as the Sub Type.
• One destination contextual object to hold the indexes of the selected
data, specifying a Database Object Type of List and a Sub Type of
Long.
Unlike a simple grid, you do not specify the source and destination
objects in the grid properties window. Instead, that is done in the
Extended Contextual Objects window. For now, make a note of the
names of each contextual object that will be used for the grid.
6. Locate the extended contextual objects for the grid in the Extended
Contextual Objects window.
With the form open, choose Edit > Extended Contextual Objects or press
F4. You should see one extended contextual object for each contextual
object associated with the form. They are listed in the order in which they
were added to the form, rather than alphabetically.
7. Enable the grid properties for each extended contextual object you want
to associate with the grid.
To enable grid properties, expand the extended contextual object node in
the treeview to show Properties and Methods, as shown in Figure 114.
Under Properties, select the top node with the key icon next to it.
Key
In the right-hand detail panel, select the Grid check box at the bottom, as
shown in Figure 115. This indicates that the extended contextual object is
used in the grid.
206 Chapter 9
The Grid Control
Grid
Icon
10. Modify the field properties using the extended contextual object window.
Select the field node from the treeview to the left. The detail panel on the
right displays the properties for that field. Modify as needed.
11. Repeat Step 7 through Step 10 for each extended contextual object to
display in the multigrid.
12. Add a ClearBasic routine to set a default contextual object when the form
is loaded.
In the Form_Load routine, set the default contextual object of the grid to
load at runtime.
13. Add form controls and associated ClearBasic code so the user can select
the other extended contextual objects associated with the multigrid.
The most likely controls to use would be a treeview or a dropdown list
control. For each of these, modify the ClearBasic code to process he user’s
Click event and set the new contextual object for the multigrid
appropriately.
Refer to Creating a Multigrid/MultiCBX Form on page 329 for a
step-by-step example of this process.
Grid Properties
Table 29 lists the unique properties of the grid control. The properties
associated with individual columns are discussed in Column Properties on
page 209.
208 Chapter 9
The Grid Control
For a list of the common properties supported by all controls, see Common
Properties of Controls on page 99.
Column Properties
Each column in the grid has a set of unique properties that you can use to
adjust the appearance and contents of the column. You can adjust the width
of the column, its text justification, and the control type used to display the
column data. If the grid is editable, the control also indicates the type of
control used to edit the data.
3. Select the field from the extended contextual object Property listing.
The properties for that field are displayed on the right.
In an editable grid, you must specify the control and properties used by each
column of the grid. For a simple grid, you can set the properties of a column
using the Properties window or the Column Properties window.
Table 30 lists the properties that apply to all columns (regardless of which
window you use to set them).
210 Chapter 9
The Grid Control
The Select ClearBasic extension (Select CBX) control is a paged custom list
that adds query capabilities to a form. The Select CBX control supports the
creation of static queries that can be saved in the database and recalled
quickly using a dropdown list. The control also supports the creation of
dynamic queries, called ad hoc queries, which use information in the
associated grid to perform the query.
The Select CBX control works in conjunction with other controls to gather
query information and display the query results to the user. The CBX control
itself is not visible on the form when the CeFO client is run. Rather, it works
behind the scenes to manage and coordinate the functions of other controls
used for the query.
The following list gives a brief description of each of the controls associated
with the Select CBX:
• A “Find” button to initiate a query
• An “Edit Filter” button for users to create and modify filter sets
• A “Filter” dropdown list box containing the user-specified filters
• A “Select List” grid displaying the results of the query
The Select CBX control itself performs the query and coordinates the
interchange of data among these controls.
Figure 117 shows an example of a form with a Select CBX control, as well as
how the same form appears in the UI Editor.
212 Chapter 9
The Select CBX Control
Filter list
Find button
Select list
NOTE: When creating forms that have select functions within tabs, the Select CBX
control must be placed on the parent form.
214 Chapter 9
The Select CBX Control
Label control
Name = lblFindOrg
Grid control
Name = gridOrgList
5. Place a select CBX control anywhere on the form and open the Properties
window for the select CBX control.
6. Click the Find property value and select the control that represents the
Find button (cmdOrgFind), as shown in Figure 120.
216 Chapter 9
The Select CBX Control
Figure 121 Database object and view for select form example
9. For the View property, enter the view/object to be displayed in the grid.
In this example it is the same as the Object property. This can be a
different view as long as the base table of the view is the same as the
Object property.
10. Right-click the grid control and select Grid Wizard.
The Grid Wizard window appears.
11. Select OrgList from the list and click OK.
The grid columns are filled with fields from the OrgList contextual object,
as shown in Figure 122.
218 Chapter 9
The Select CBX Control
12. Open the Properties window for the dropdown list and set the Object
Column and Long Value properties to Yes.
13. Make the following associations between the form’s contextual objects
and the controls you created by setting the properties of the grid and
dropdown list controls:
• Grid destination contextual object: SelectionItem
• Dropdown list:
Source contextual object: FilterSetList
Destination contextual object: FilterSetSelect
14. If desired, preview the form, as shown in Figure 123.
15. Set up the remaining Select CBX properties as desired. See Select CBX
Properties on page 222 for more information.
For any new form, you need to create a minimal amount of code to run that
form. You must use ClearBasic to create a Form_Load procedure and to add
any event handlers needed by your form. However, the operation of the
filter list, Edit button, and Find button is automated by the Select CBX
control—you do not need to write ClearBasic code for these controls.
220 Chapter 9
The Select CBX Control
3. Enter an item name and path for each field you want to add.
The item name is a placeholder used to identify the name in the Filter
Set dialog box. The path contains the name of a field or a qualified path
(a relation in the CeFO database schema) to a field starting from the
object in the Object property of the Select CBX control.
4. Click OK to save the filter properties.
After creating a set of filter properties, you can reorganize them from the
Item Properties window. To move an item up or down, select the row
containing that item and click the Up or Down button, respectively. To delete
an item, select the item and click the Delete button.
Ad hoc querying is enabled by default when you create a new Select CBX
control. The Select CBX control defines three properties related to ad hoc
querying that you can modify to suit your needs. See Select CBX Properties on
page 222 for a complete list of properties.
MultiCBX Controls
If the grid control associated with a CBX control is a multigrid (supports
multiple contextual objects), then you must also make the CBX a multiCBX
control. You do this by setting the multiCobj property to Yes.
Place the grid, dropdown list, Find button, Filter button, and CBX controls
on the form.
Set the MultiCobj property to Yes for both the grid and the CBX.
222 Chapter 9
The Select CBX Control
224 Chapter 9
Chapter 10
In This Chapter
About Contextual Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226
Adding Contextual Objects to a Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
Contextual Objects and Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Propagating Contextual Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
225
About Contextual Objects
CeFO baseline forms already contain a set of links to the contextual objects
needed by the form. If you add controls to the form, you can link them to
existing contextual objects associated with the form, or you can add
contextual objects as necessary. You can also add contextual objects to store
any additional values you calculate in the form’s ClearBasic code.
A source contextual object provides the initial data for a control. When the
control’s form is posted, data is transferred from the contextual object to the
control. The various controls use source contextual objects in different ways:
• List boxes, dropdown list boxes, combo boxes, and grids all support
source contextual objects, and can have an associated source contextual
object which represents the list of data to display.
• Check boxes, command buttons, labels, and option buttons do not
require a source contextual object but support them for dynamic labeling
of the control.
A destination contextual object stores the current value of the control. For
example, the destination contextual object for a dropdown list box contains
the string that the user selects; the destination contextual object for a text box
contains the string the user enters.
Figure 126 shows an example of the use of both source and destination
contextual objects on a form.
226 Chapter 10
About Contextual Objects
A destination
contextual object
stores the case title.
These menus
use source
contextual objects
to display the menu
choices, and
destination contextual
objects to store your
selection.
When you design your form, make sure you analyze your storage needs
thoroughly.
• If the form accesses the CeFO database, you must know which database
objects (tables) or views the form is going to access and provide
contextual objects for them. You need to have ClearBasic installed in
order to add a new contextual object that refers to a database object or
view.
• If your form and controls display or store calculated data, you need
contextual objects to store the calculated values. For example, the
number of subcases associated with a case is calculated when the Edit
Case window is displayed. This number is stored in a contextual object,
not in the database. You need to have ClearBasic installed in order to add
certain types of these values. Figure 127 shows the calculated value in the
Edit Case window.
More Information: For more information about the CeFO database schema, see the
Data Dictionary Guide.
228 Chapter 10
Adding Contextual Objects to a Form
Contextual objects
associated with a
form are listed here.
Controls on this form
can access only the
contextual objects
for the form.
NOTE: If you start the User Interface Editor without the -cb option, you can
select only primitive types (string, long, date, and single) from the Edit Form
Contextual Objects window.
More Information: For more information about the Properties window, see
Viewing the Properties Window on page 93.
230 Chapter 10
Adding Contextual Objects to a Form
Name
Database Object Type
NOTE: If you are running the User Interface Editor with the -cb option,
different object types are displayed in the list.
5. Click Add.
6. Repeat for each contextual object to be linked to this form.
232 Chapter 10
Adding Contextual Objects to a Form
Be sure to select a data type that is appropriate for the contextual object’s
usage. If you associate the contextual object with a control, make sure the
data type is appropriate for that control. The contextual object data types
required for each control are listed in Contextual Objects and Controls on
page 235.
Long vs. List/Long: The difference between a Database Object Type of Long
and a Database Object Type of List with a Sub Type of Long is that the List/
Long type is used to store the indexes for a list of records, whereas Long
stores a single integer value.
Sub Type
The Sub Type dropdown list is activated only if you have selected a
Database Object Type of a database object or view, or a Database Object Type
of List. It is not used for the other primitive data types.
If you select a Database Object Type of List, the Sub Type choices are:
• Long (destination contextual object for grids)
• Integer
• String
• Decimal
• Record
• None
For Database Object Types that are database tables or views, the Sub Types
are:
• Record
• Record List (source contextual object for grid control)
• None
234 Chapter 10
Contextual Objects and Controls
If you link a form to a contextual object that has a user-defined type and then
link one or more controls to that contextual object, you must remove all
references to the contextual object before you can remove the definition of
the user-defined type. Removing the definition first can prevent you from
reposting that form in the User Interface Editor.
More Information: For more information about database objects, views and fields,
see the Data Dictionary Guide. For more information about contextual objects and
placing data into a form’s contextual objects, see the ClearBasic Programmer’s
Guide. For more information on User Defined Types, see the ClearBasic
Customization Guide.
More Information: For more information about the Property window, see Viewing
the Properties Window on page 93.
Table 31 lists each control type and indicates whether source and destination
contextual objects are supported and their data type.
236 Chapter 10
Contextual Objects and Controls
If you create a child form using the File > New > Child Form command, the
User Interface Editor automatically links the parent’s existing contextual
objects to the child form. However, if you add new contextual objects to a
parent form after creating the child forms, you must manually link the new
contextual objects to the child forms.
The User Interface Editor helps you quickly propagate the contextual objects
of a parent form to a corresponding child form. The Propagate Contextual
Objects command links the contextual objects of the parent to the designated
child forms. This command works only with forms that are already linked
through a tab or a frame command button.
When you propagate contextual objects from a parent form to a child form,
any contextual objects currently associated with the child form are deleted.
The contextual objects of the parent are then linked to the child form and the
child form is saved.
IMPORTANT: Do not add contextual objects directly to a child form. Add them to
the parent instead, and then use the Propagate Contextual Objects command to
make the contextual objects available to the child form.
238 Chapter 10
Propagating Contextual Objects
240 Chapter 10
Propagating Contextual Objects
242 Chapter 10
Chapter 11
In This Chapter
About Extended Contextual Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
The Extended Contextual Objects Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
Configuring Extended Contextual Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
Using Method Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
243
About Extended Contextual Objects
The multigrid and multiCBX controls use specific Property key/value pairs
to determine the data to read and display.
244 Chapter 11
The Extended Contextual Objects Window
246 Chapter 11
The Extended Contextual Objects Window
For all contextual objects, the Property folder lists object-level properties.
This folder additionally lists field-level properties for contextual objects that
represent tables or views in the CeFO database.
248 Chapter 11
The Extended Contextual Objects Window
250 Chapter 11
Configuring Extended Contextual Objects
To copy and paste the key/value pairs from one property to another
1. Right-click on the property to copy.
2. Select Copy Special from the context menu.
3. Right-click on the property to paste and select Paste Special.
4. Specify values for each key.
You can also copy and paste from one method to another.
3. For each database object to show in the multigrid, add two contextual
objects: one to reference the database table, and one to hold the resulting
list of records.
Press F3 to open the Edit Contextual Objects window. Add the following
for each database table or view you want to display in this grid control:
• A Source contextual object for the database table, selecting the CeFO
database object name as the Database Object Type and with a Sub Type
of “Record List.” This contextual object is typically named lorObject
where Object is usually the database object name.
• A Destination contextual object of Database Object Type List to contain
the selected records with a Sub Type of “Long.” This contextual object
is typically named losObject where Object is again the database object
name.
NOTE: You are not required to use the CeFO naming conventions described
above.
252 Chapter 11
Configuring Extended Contextual Objects
You can add a multiCBX control to allow custom filtering. See the example
Creating a Multigrid/MultiCBX Form on page 329.
Adding Methods
Methods created in the UI Editor are references to custom, user-defined
ClearBasic code functions. They are associated with extended contextual
objects on a form. Therefore, in order to add a method, you must first add
the contextual object to the form. See Adding Contextual Objects to a Form on
page 229.
4. Right-click the Method folder and choose Add Method from the shortcut
menu, as shown in Figure 141.
Because this is a new method, the key/value listing in the detail pane on
the right is empty.
5. Modify the method name and properties as needed.
6. Modify the ClearBasic code for the form to read the method’s key/value
pairs.
254 Chapter 11
Using Method Templates
256 Chapter 11
Using Method Templates
258 Chapter 11
Chapter 12
In This Chapter
About Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
Action Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
How Actions Work with CeFO Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
How Actions Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
Defining an Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Adding a Button to Invoke an Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
259
About Actions
About Actions
The Action Editor gives you the ability to use a command button in a CeFO
application to invoke an operating system command, a predefined script, a
program, or a stored procedure. You can use the command button to invoke
these directly, or you can use the button to have those actions started when
the form is posted (the Form Init option).
NOTE: You can also define the actions for buttons using ClearBasic.
Action Types
The actions that can be invoked depend on the client platform. The
following types of actions are available:
• For X Window System/Motif clients, shell scripts, UNIX commands, or
stored procedures.
• For PC clients, batch scripts, programs, or stored procedures.
After you create the action for your client platform, use the Button Actions
window to specify the name of the action to be invoked, the input
arguments, and the return values.
260 Chapter 12
How Actions Work with CeFO Applications
Actions can pass input and output arguments between the CeFO application
and stored procedures. Unlike the arguments used by command-line
actions, these arguments are not stored in an intermediate file. The values
are passed directly between the CeFO application and the stored procedure
in the database.
If you use a stored procedure, make sure that all users have the correct
permissions to execute the procedure. For example, if you create an action to
invoke a stored procedure in a SYBASE database, make sure to run the isql
command on the stored procedure:
grant execute
on stored_procedure_name
to public
Asynchronous Actions
An asynchronous action is a process spawned in the background. The user
can still work with the CeFO application while the asynchronous action is
running.
An asynchronous action can use only input arguments. Because the CeFO
application does not track the invoked process, the application cannot
receive output arguments from the action.
Synchronous Actions
A synchronous action is like a process running in the foreground. While a
synchronous action is running, the CeFO application waits for the
completion of the action. The process must finish before you can use the
CeFO application again.
The Calculate button in the Close Case form is an example of a button that
invokes a synchronous action. In this case, the action is the recalculation of
time and expenses for a case. While calculation is being performed, a busy
cursor is displayed and the user cannot use the CeFO application.
A synchronous action can use both input and output arguments. Since the
CeFO application waits for the completion of the action, the results (the
output arguments) of the action can be returned to the application.
For example, the Save button saves data from a form to the database and
you might write an action to perform data validation. When you associate
this new action with the Save button, you can specify that the new action
(data validation) is executed before the existing action (save data to the
database). This checks the data before it is saved to the database. Thus, the
action can raise an error to abort the Save operation.
262 Chapter 12
How Actions Work
The names of the input and output argument files are randomly generated.
After this command line is generated, the application passes the command
to the operating system for execution.
Any error messages should be written to the output file after the output
arguments are written. If the return status is nonzero (which indicates that
an error occurred), the application displays an error message dialog box
with any error messages found in the output file.
264 Chapter 12
Defining an Action
Defining an Action
When you define an action, take into account the different client platforms
on which the CeFO application runs. You also must decide how to specify
the input and output arguments for the action.
Platform Differences
For each client platform, define the action in terms of that client’s native
operating system:
• On UNIX platforms, use shell scripts or applications to define actions.
• On the PC/Windows platform, use batch files or applications to define
actions.
For example, the UNIX command xterm must be used with the correct
syntax. When the application appends the name of the input file to this
command, the command fails because the input file name is not a supported
argument for the command.
Output arguments for the action are written to fields in contextual objects
that exist in local memory. As with input arguments, when you define the
output arguments for an action, you can use any field from any contextual
object for the form. (See Figure 144.)
List of contextual
object fields Input
available from arguments
the form
Output
arguments
Stored procedure
name
If the action is defined as a command line, the input arguments that you
specify are written to the input argument file and are separated by carriage
returns (newline characters). Similarly, when the CeFO application reads
output arguments from the output argument file, the application reads each
line as an output argument. The only exceptions are strings which are
enclosed by single quotes, because the strings may contain newline
characters.
Please note the following rules that apply to input and output arguments:
• You cannot specify a collection of objects (such as a list of the entries
displayed in a custom list) as an input or output argument. An input or
output argument must contain a single value.
• If you define an action as a stored procedure (rather than as a command
line), input and output arguments are passed directly between the CeFO
application and the stored procedure. No input or output argument files
are generated.
• If a button action is set to synchronous and another application
(executable) is invoked successfully, any content after the values
corresponding to output arguments are retrieved and displayed in a note
dialog. If the application execution is not successful, the output file is
retrieved and displayed in an error dialog.
266 Chapter 12
Defining an Action
You can also directly specify input arguments as part of the action’s
command line. The syntax for a command-line input argument is:
[contextual_obj_name:field_name]
where:
• contextual_obj_name is the name of the contextual object in the
form.
• field_name is the name of the field in the contextual object.
The argument must be enclosed by brackets, [ ].
For example, the following action invokes the script named svc_check
with the serial_no field of the PRT_INSTALL_OBJ contextual object as an
input argument:
svc_check [PRT_INSTALL_OBJ:serial_no]
NOTE: You cannot specify output arguments directly on the command line. If you
want output values from the action to write to contextual object fields in the CeFO
application, you need to use the output argument file.
Even if you specify all input arguments as part of the action’s command line,
the name of the input file is still passed as an argument. Keep this in mind
when you identify arguments by number in your script or interface.
If you are using an input argument file, the script needs to parse through the
input file to get the input arguments. If you are using an output argument
file, the script needs to use newline characters as field separators when
writing output values.
Although the names of the input and output argument files are randomly
generated, the names are passed as arguments to your script or interface.
The Actions section is used to display existing Form Init actions that have
been defined for your CeFO application, as well as to define new Form Init
actions.
If you modify the standard data model by adding a new relation, and the
object at the other end of the relation uses a field that must be displayed on a
given form when a specific record is displayed, a stored procedure can be
specified as a Form Init action to retrieve the record and display the
necessary fields in the form.
Form Init actions are defined using a hidden command button in the desired
form. The hidden command button is labeled Form Init by the Action Editor
when the Form Init action is created and saved. The control name for the
Form Init action is init_event. The Form Init button appears in the form
when you view it using the User Interface Editor. It does not appear when
the form is opened from within the CeFO application.
More Information: See the Data Dictionary Guide for information about objects
and relations.
268 Chapter 12
Adding a Button to Invoke an Action
Upper Copy
button copies to
Input Arguments
Lower Copy
button copies to
Output Arguments
6. In the Action Name text box, type a name for the action.
7. Choose Command Line or Stored Procedure to specify the type of action
executed.
For more information about action types, see Using Actions to Invoke
Stored Procedures on page 261.
8. From the Platform menu, choose the appropriate client platform for the
action (use DOS for Windows).
270 Chapter 12
Example
Example
In the Expense form, you can record expenses for a case. One of the expenses
that you can log is labor. Suppose your employees charge different rates.
You can store these rates with the employee information in the database and
access this information when recording expenses in the Expense form.
Since the login name of an employee is actually stored in the related user
object, the relation employee2user is used to access the user object. The
stored procedure, which is called find_rate, is described as follows for a
SYBASE database:
create proc find_rate @name varchar(30), \
@rate float output
as
select @rate = table_employee.x_labor_rate from
table_employee, table_user
where login_name = @name
and employee2user = table_user.objid
To ensure that all users can execute this stored procedure, you need to grant
public permission to access the procedure. For a SYBASE database, you can
do this through isql by typing:
grant execute
on find_rate
to public
Before you create the action in the User Interface Editor, verify that this
stored procedure works. For a SYBASE database, you can do this through
isql by typing the following commands:
declare @rate float
exec find_rate login_name, @rate outputl
where login_name is the login name of a user in your database with rate
information already entered.
272 Chapter 12
Example
4. Make sure the Get Employee Rate button is still selected; then click the
Button Action tool in the layout toolbar.
The Button Actions window appears, as shown in Figure 148.
274 Chapter 12
Example
You can now associate this custom form with users through a resource
configuration.
276 Chapter 12
Chapter 13
In This Chapter
About the Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
Code Editor Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
Creating Form Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
Creating Global Code Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
277
About the Code Editor
The control dropdown list box contains the name of each control currently
on the form. When you select a control from this list, the event-handler list
displays the event handlers available for that control. When you select an
event handler, the Code Editor adds a stub for the event handler to the edit
area of the window. You can then add your code to the stub to complete the
event handler.
278 Chapter 13
Code Editor Features
Editing area
In addition to the stubs created by the Code Editor, you can define
additional ClearBasic functions and subroutines by typing the routine in the
form. In this case, you must type the entire routine declaration.
You can place routines anywhere in the Code Editor window. At run time,
the ClearBasic engine reads the code for the form and provides the
appropriate linkage before executing the code.
Text Formatting
As you type, the Code Editor applies text formatting to your code. By
default, the Code Editor simply adds coloring to different portions of your
code. The Code Editor differentiates keywords, identifiers, and comments
by applying a default set of colors to them.
You can change the colors applied to each type of element. You can also
apply different font types and sizes to elements. To specify these settings,
you must use the Settings dialog box, as shown in Figure 151. To open this
dialog box, open a Code Editor window and choose Format > Code Editor
Settings from the menu bar.
To change the setting of a particular element, you must first select it from the
list. You can apply different foreground and background colors for each
element. You can also use the Font and Size dropdown list boxes to apply
different font styles.
Auto-Indenting
In addition to text formatting, the Code Editor automatically moves the
cursor to the appropriate indentation level when you press the Return key.
The Code Editor does not enforce indentation levels, so you can reformat the
code to suit your style after you press Return.
280 Chapter 13
Creating Form Modules
NOTE: The Code Editor does not let you assign code to a form that does not belong
to a valid resource configuration. You can create the code at any time, but you must
save the form and assign it to a resource configuration before you can save the code.
282 Chapter 13
Creating Global Code Modules
6. With the Code Editor window active, choose Save Code from the File
menu to save your changes.
Before saving, UI Editor compiles the code, so you do not need to choose
Compile first. If there are any errors, the code is not saved.
You can view the code for any form that is a member of a resource
configuration. If the form does not have any code associated with it, the User
Interface Editor creates a new form module.
For example, suppose you are customizing the ClearSales application and
you have two global code modules you want to store in the database. You
can assign the strings “clarify” and “clearsales” for the application and
subsystem names of both code modules. For the user labels, you can then
assign “module1” to the first module and “module2” to the second.
If the specified module exists in the database, the UI Editor opens that
module and displays the existing code. If the specified module does
not exist, the UI Editor opens an empty window.
3. Add your code to the Code Editor window.
The Code Editor window displays any routines already defined for the
form. You can modify the existing routines or write new ones.
4. Choose File > Compile to check your code for errors.
A successful compilation is not a guarantee that your code will run as
expected. It is merely an acknowledgment that the syntax of your code
is correct. You may still encounter run-time errors when you test your
form.
5. With the Code Editor window active, choose File > Save Code to save
your changes.
284 Chapter 13
Chapter 14
In This Chapter
Specifying the Forms to Merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
Generating a Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
Merging the Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
285
Specifying the Forms to Merge
In certain situations, you might need to combine the layout and properties of
two different versions of a form. The forms must have the same Form ID.
For example, suppose you customized the New Case form, and CeFO
shipped a new version of the New Case form. You must update your custom
version of the form with the latest changes in the baseline CeFO form.
Ideally, you want a form that combines the new features from the baseline
version with your custom controls from the customized version.
One of the features of the User Interface Editor is the capability to merge two
different versions of a form into a new form.
When you merge two different versions of a form, the User Interface Editor
compares each version. Using the above New Case form as an example, a
new version of the New Case form is generated. It contains CeFO’s latest
updates and your custom changes.
286 Chapter 14
Specifying the Forms to Merge
Form ID and
version numbers
You can merge a custom version of a form with a CeFO baseline, or you can
merge two versions of a custom form. (See Figure 156.)
Figure 156 Identifying the forms to merge in the Form Merge window
After specifying the form version, you can set your preferences for the
merge operation.
Each of the preferences options lets you specify which version to use if the
two forms do not match. If you choose Both, the new form contains a
superset of all the properties and data from each of the two merged forms.
Generating a Report
When you merge two versions of a form, a report lists the differences
between the two versions.
288 Chapter 14
Generating a Report
To change any of the reports (for example, if differences in static text position
are not important), select the appropriate options in the Preview Differences
Options window, as shown in Figure 157.
290 Chapter 14
Merging the Versions
Enter a version
number for the merged
form here.
2. In the Form ID field, type the identification number of the (custom) form
to merge.
For information about form ID numbers, see Specifying the Forms to Merge
on page 286.
3. Type the CeFO version number and user version number of the form in
the First Version CeFO Version and User Version fields.
For information about finding the version numbers, see Specifying the
Forms to Merge on page 286.
4. Select Baseline or Custom as the second form to merge.
Select Baseline to merge your custom version with a baseline CeFO
version of the form.
Select Custom to merge your custom version with a different custom
version of the same form.
5. (optional) If you selected Custom as the second version, type the CeFO
version and user version number of the second form in the CeFO Version
and User Version fields.
6. Enter the (user) version of the new form in the new version field.
7. Select the merge preference options.
For information about merge preference options, see Specifying the Forms
to Merge on page 286.
8. (optional) Click Preview Options or Preview to specify the contents of the
report or to preview a merge report.
For more information about specifying the contents of the report or to
preview a report, see Generating a Report on page 288.
9. Click Merge.
A report of differences between the two versions is automatically
generated as is a new version of the form.
After the merge operation has completed, open the resulting version of the
form in the User Interface Editor. You may need to adjust the layout of the
form or check the tab order if additional controls were added during the
merge process.
You need to open the conflict version of the form, and manually copy and
paste the controls onto the merge version.
Deleting a Form
If for some reason you want to delete a form, select it in the Form Select
window and click Delete, as shown in Figure 160.
292 Chapter 14
Merging the Versions
294 Chapter 14
Appendix A
Examples
In This Chapter
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
Customizing the WIPbin and Queue Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
Find Caller Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
Adding Multi-Field Filtering to a Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
Changing the Method of Part Selection for Cases . . . . . . . . . . . . . . . . . . . . . . . . . .310
Adding SQL Controls to the Query Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
Adding KeyPhrases to Part Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
Passing Login Information to Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
Creating a Multigrid/MultiCBX Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
295
Overview
Overview
This appendix presents examples for customizing various CeFO forms. Most
of the examples concern alternative CeFO functionality that is available for
existing forms.
You can add additional fields to the grids without adding additional joins to
the view. As long as you can find a field of the same data type in an object
that is already part of the view, you can add custom fields, using that unused
field as a placeholder.
For example, you want to add a new column that shows a string value in the
grid. To extend the wip_element or que_element view, you could use
the alt_first_name field, which has a data type of string. Add an
additional column to the wip_element or que_element view with
case.alt_first_name as the source. You have now fulfilled the
requirement of providing a placeholder of the same data type for the grid
column to link to.
Definitions
Definitions related to the procedure are as listed in Table 34.
296 Appendix A
Customizing the WIPbin and Queue Windows
Name Definition
WIPbin window The WIPbin window is selected by title “WIPbin wipname”,
name “cswip” or ID 375 in the User Interface Editor.
Queue window The Queue window can be selected by title “Queue,” name
“csqueue” or ID 376 in the User Interface Editor.
Specific field ID A number associated with an object field in the CeFO data
dictionary. It identifies the index of the field in the object, starting
at 0. Object fields always have a specific field ID.
Generic field ID A number associated with a CeFO database object or view field.
It describes the generic purpose of that field. For example, CeFO
uses generic field ID 2 to identify the title field of objects and
generic field ID 4 to identify the ID number. The specific and
generic field ids for a field are generally different.
Object fields do not necessarily have a generic field ID. However,
all fields that are shown as columns in the WIPbin or Queue
window must have a generic field ID in the appropriate views.
Generic field ids in the range 50 to 149 (inclusive) are reserved
strictly for use by CeFO customers. CeFO never uses generic field
ids in this range. You should use ids in this range.
Generic WIPbin The “wip_element” view is used to bind specific wipbin view
view fields to columns in the WIPbin window. These fields must be
identified by generic field ID. The generic WIPbin view is never
actually read by the application.
Generic Queue The que_element view is used to bind object field to columns in
view the Queue window. Object fields must be identified by generic
field ID. The generic Queue view is never actually used to
perform database queries. It represents a superset of all the object
fields that can be shown as columns in the Queue dialog.
Examples 297
Customizing the WIPbin and Queue Windows
Name Definition
Specific WIPbin Any one of the views that is used in a database query for the
view WIPbin contents:
wipelm_case is a query for Cases
wipelm_subcase is a query for Subcases
wipelm_dtl is a query for Part Requests
wipelm_fnl is a query for Solutions
wipelm_bug is a query for Change Requests
View fields just be identified by generic field ID which maps the
fields onto the generic WIPbin view fields in the definitions of the
columns of the WIPbin form.
Specific Queue Any of the views which is used in a database query fro the Queue
view contents:
queelm_case is a query for Cases
queelm_subcase is a query for Subcases
queelm_dtl is a query for Part Requests
queelm_fnl is a query for Solutions
queelm_bug is a query for Change Requests
View fields must be identified by generic field ID.
Procedure
The following procedure demonstrates how to show a new field as a column
in the WIPbin window. The same procedure can be used to customize the
Queue window.
The tool required for each step is given in parentheses. You are expected to
be familiar with these tools.
More Information: For more information about the Data Dictionary Editor, see the
ClearCustomize Guide to the Data Dictionary Editor.
298 Appendix A
Customizing the WIPbin and Queue Windows
NOTE: It is not necessary to update all the specific WIPbin views if the new field is
to be shown for only one type of object. When other types of objects are shown, the
column for the new field is simply left blank. If the new field is to be shown for all
objects, then all specific WIPbin views should be updated.
Examples 299
Find Caller Customization
You may want to add a new filtering field to speed up and simplify the Find
Caller flow so that it is better customized to your site’s business processes.
For example, you can add an employee ID number or a postal code field to
help your users find a particular contact or site more quickly.
NOTE: This feature can be a powerful tool for simplifying your system’s workflow.
However, to ensure adequate database performance, it is recommended that any
new custom fields be appropriately indexed.
300 Appendix A
Find Caller Customization
IMPORTANT: The control Name for new Find Caller fields must start with
FIND_CALLER in order for this control to work. However, existing filtering fields
do not need to be renamed.
Examples 301
Adding Multi-Field Filtering to a Form
You may want to add a filter field to the Select Contacts form that
corresponds to the new Find Caller filter field. See Adding Multi-Field
Filtering to a Form on page 302 for more information.
Overview
The basis for this feature is a contextual object called NEW_FILTER, which is
included with the CeFO baseline forms listed in Table 35 on page 303. The
NEW_FILTER contextual object provides fields that you can use for custom
multi-field filtering on the the CeFO forms that contain it.
302 Appendix A
Adding Multi-Field Filtering to a Form
Most of the forms listed in Table 35 that contain the NEW_FILTER contextual
object already use the NEW_FILTER fields as part of their filter. However, the
baseline version of the Select Contracts window does not use the
NEW_FILTER fields, although the contextual object is included with the
form. This makes a small difference in how you would add custom filtering
to the Select Contracts window, as opposed to the other forms.
Examples 303
Adding Multi-Field Filtering to a Form
304 Appendix A
Adding Multi-Field Filtering to a Form
The contextual object will automatically detect the added fields, but you
must still use the Destination Field selection list on the Properties window to
specify that new field for a particular control on the appropriate form.
Examples 305
Adding Multi-Field Filtering to a Form
NOTE: If you perform this customization to the Select Contracts window, you will
lose the ability to filter by end date, filter/sort by site name, or filter/sort by site ID.
306 Appendix A
Adding Multi-Field Filtering to a Form
2. Make a note of the current size attributes (under Properties) for this
window.
One of the steps below requires that you temporarily resize the window
and then restore it to its original dimensions.
3. Expand the Select Contracts window and make it larger.
4. Hide the old filter controls by moving them out to the edge of the resized
window.
The controls you want to move are named “WILDCARD,” “FILTER_BY,”
and “SET” (Date/Time button), as shown in Figure 161.
ASC_DESC
dropdown menu
5. Resize the Select Contracts window back to its original size, so that all the
controls you just moved are now hidden.
6. Move the dropdown menu named “SORT_BY_MBT” to the upper right
of the window.
Place it just above the dropdown menu named “ASC_DESC.”
7. Place a label control next to the SORT_BY_MBT dropdown menu.
Enter “Sort by” as the label text.
Examples 307
Adding Multi-Field Filtering to a Form
308 Appendix A
Adding Multi-Field Filtering to a Form
To add a new field to a “Sort by” list for Select Contacts or Select Sites
1. In the UI Editor, open the appropriate Select window.
2. Open the dropdown list box named “SORT”.
It should have a label next to it that says “Sort by.”
3. Open the List Items window.
Double-click the control to open the Properties window and click the
ellipsis (...) next to the List Items property.
4. Add a field to this list for sorting that will correspond to any text box
filter fields you want to add to the form.
In the “Item” field, enter the text to display in the menu. In the “User
Data” field, enter the exact name of the field prefixed by its view name
using the syntax view_name.field_name.
Each field added to the sorting list must correspond directly to a field
used as an edit control field.
5. Click Add.
6. Add other desired sort by attributes.
7. Add a text box control for each of the sort by attributes, as described in
the section titled To add a new filtering field on page 305.
Examples 309
Changing the Method of Part Selection for Cases
310 Appendix A
Changing the Method of Part Selection for Cases
To make this list of installed parts available in ClearSupport, you must use
the Site Configuration Manager to configure each site with the parts
purchased by the customer.
This process not be efficient for your company. Your support organization
might require that case information include only the related part number,
not the specific instance of the installed part at the site.
With the User Interface Editor, you can change the way in which parts are
associated with cases. Rather than restrict the user to selecting instances of
parts installed at the site, you can allow the user to select from a global list of
all part numbers. Users can associate any part with a case, regardless of
whether the part is installed or not.
To provide for this wider selection, you can allow users to choose a part for
the case from the Select Part Numbers form, rather than from the Site
Configuration Manager form. (See Figure 163.)
Examples 311
Changing the Method of Part Selection for Cases
Figure 163 Listing parts installed at a site versus listing all parts
You can change the method for selecting the part for a case to:
• Select from a list of all part numbers.
• Select from a list of installed parts or all part numbers.
312 Appendix A
Changing the Method of Part Selection for Cases
Additional forms for the New Case and Case Edit forms contain the controls
for implementing these methods. These forms are never visible to the user.
They are intended to be a palette for use with the UI Editor. The sole purpose
of the forms is to hold controls that can be copied to the New Case and Case
Edit forms. (See Figure 164.)
The controls on this form include a set of option buttons with which users
can select from either installed parts or a list of all part numbers. It also
includes text boxes in which users can specify search criteria and view
information about part numbers.
Also, there are additional buttons that can be added to the form.
Examples 313
Changing the Method of Part Selection for Cases
314 Appendix A
Changing the Method of Part Selection for Cases
Examples 315
Changing the Method of Part Selection for Cases
Repeat the same procedure to customize the Case Edit form. Rather than
opening the Additional Feature Options form with ID=415, use ID=422.
The users will now have to enter some data in at least the number of filters
you specified in the Caption field above.
316 Appendix A
Adding SQL Controls to the Query Windows
Examples 317
Adding SQL Controls to the Query Windows
NOTE: See Adding SQL Controls to Query Windows on page 319 for specific
instructions on implementing this feature.
318 Appendix A
Adding SQL Controls to the Query Windows
Examples 319
Adding SQL Controls to the Query Windows
3. Add a multiline text box to an open area of the Case Query Prompt
window.
Figure 169 shows the Case Query Prompt window with all three new
controls.
320 Appendix A
Adding SQL Controls to the Query Windows
Figure 169 The Case Query Prompt Window With New Controls
New command
buttons
New multiline
text box
4. Open the Properties window for the multiline text box and enter the
following information:
• Name: SQL_STATEMENT_EDT
• Destination Contextual Object Name: sql_statement
• Destination Field Name: sql_statement
Figure 170 shows the proper information for the properties of the new
multiline text box.
Examples 321
Adding SQL Controls to the Query Windows
Figure 170 Properties for the Show SQL multiline text box
5. Add two command buttons to an open area on the form. Figure 169
shows the Case Query Prompt window with two new command buttons
added to it.
6. Label the first command button “Show SQL” or something similar.
This button will show CeFO users the SQL statements for the current
query.
7. Label the second command button “Exec SQL” or something similar.
This button will execute a query according to the SQL statements
displayed in the new multiline text box.
8. Open the Properties window for the “Show SQL” command button and
enter SHOWSQL_BTN in the Name field, as shown in
Figure 171.
IMPORTANT: In order for this feature to work, the name of the command
button must be entered with the name exactly as specified.
322 Appendix A
Adding SQL Controls to the Query Windows
9. Open the Properties window for the “Exec SQL” command button and
enter EXECSQL_BTN in the Name field, as shown in
Figure 172.
IMPORTANT: In order for this feature to work, the name of the command
button must be entered with the exact same name listed in the step above.
Examples 323
Adding KeyPhrases to Part Classes
10. If necessary, adjust the location and sizes for the command buttons. (You
may have to adjust the size of the buttons to make the labels appear
correctly.)
11. Close the Properties window and save the form.
NOTE: You may want to further refine this customization by limiting this form
version to a specific Resource Configuration.
To activate this feature, you need to add new command buttons to the Part
Class window and the KeyPhrase Selection window.
324 Appendix A
Adding KeyPhrases to Part Classes
Examples 325
Adding KeyPhrases to Part Classes
3. Open the Properties window for the new button and enter the following
information, as shown in Figure 174:
• Name: CLASSKP
• Text: KeyPhrase
• Button type: Command
NOTE: In order for this feature to work, the name of the button must be typed with
exactly the text specified.
326 Appendix A
Adding KeyPhrases to Part Classes
With the addition of the Class KeyPhrases button in the KeyPhrase Selection
window, a user can search for all KeyPhrases associated with that part
number’s part class.
Examples 327
Adding KeyPhrases to Part Classes
3. Open the Properties window for the button and enter the following
information as shown in Figure 176:
• Name: CLS_KP_BTN
• Text: Class KeyPhrases
• Button Type: Command
NOTE: In order for this feature to work, the name of the button must be shown
with exactly the text specified.
328 Appendix A
Passing Login Information to Shell Scripts
These variables can be accessed on the command line of the button action as
arguments to the script or executable. The variable names must be enclosed
in braces {}. The following is an example command line:
scriptname -u {login_name} -p {db_password}
-db {db_name} -s {db_server}
Examples 329
Creating a Multigrid/MultiCBX Form
330 Appendix A
Creating a Multigrid/MultiCBX Form
Button 1 Button 2
Dropdown 1 Dropdown 2
CBX
Grid
Button 3
Examples 331
Creating a Multigrid/MultiCBX Form
332 Appendix A
Creating a Multigrid/MultiCBX Form
Examples 333
Creating a Multigrid/MultiCBX Form
334 Appendix A
Creating a Multigrid/MultiCBX Form
mCBX7
mGrid1
CLOSE
Examples 335
Creating a Multigrid/MultiCBX Form
336 Appendix A
Creating a Multigrid/MultiCBX Form
This dropdown list will select which contextual object to display in the
grid. You will need to write a ClearBasic event handler to change the
contextual object based on user selection, using the “User Data” value.
5. Set the properties for the second dropdown list box.
This is the list labeled “Dropdown 2” in Figure 178 to select the filterset
for the CBX.
Change properties as follows:
Name ddl_Filter_List
List Type Clarify List
Dest CObj losFilterSet
Src CObj lorFilterSet
Src Field title (Title field from the list of filterset records
read by the CBX)
Long Value Yes
Object Column Yes
Examples 337
Creating a Multigrid/MultiCBX Form
338 Appendix A
Creating a Multigrid/MultiCBX Form
Examples 339
Creating a Multigrid/MultiCBX Form
Select the Grid and CBX check boxes to activate the Value columns.
340 Appendix A
Creating a Multigrid/MultiCBX Form
Examples 341
Creating a Multigrid/MultiCBX Form
6. Enable the Grid and CBX check boxes and enter key/value pairs for
lor_site.
Under Grid Properties:
Grid NamemGrid1
Destination Contextual Object Namelos_site
Under CBX Properties:
CBX NamemCBX7
Objectsite
Viewsite
As before, ignore the CBX Filter Properties... key/value item. Select fields
from the lor_site object to display in the grid.
342 Appendix A
Creating a Multigrid/MultiCBX Form
In the next section, we will add the ClearBasic code necessary to operate the
form.
NOTE: If you had any controls on the form selected, the window will show the
code prompts for the control item instead of the form. Select Form from the
dropdown list to display the sub Form_Load() text.
Examples 343
Creating a Multigrid/MultiCBX Form
344 Appendix A
Creating a Multigrid/MultiCBX Form
This selects the Employee list item from the dropdown list control we
specified earlier in Step 3 on page 336.
This dropdown list had the Name ddl_Object_Select. In Step 4 of
that same series, we had specified this dropdown list as a Static List type;
in Step 5, we entered three list items: Employee, Site, and None.
3. Add code for the Close button.
Sub CLOSE_Click()
Me.Close
End Sub
4. Add code for the first dropdown selection list.
This code links the entries from the Static List (“Employee,” “Site,” and
“None”) to user selections and specifies which contextual object is set by
each user selection. The CBX control is referred to by its Instance Name
property (in this case, Use_This) rather than its name (mCBX7).
Sub ddl_Object_Select_Click()
Dim selItem As String
selItem = ddl_Object_Select.Selected
Select Case selItem
Case "Employee"
CBX_Use_This.SetCobj "lor_employee"
Case "Site"
CBX_Use_This.SetCobj "lor_site"
Case Else
CBX_Use_This.SetCobj ""
End Select
End Sub
5. Save the code and close the View Code window.
Next we will add a global code module.
6. Open a code window that is not associated with the form by choosing
File > New > Code Editor.
Here you should create ClearBasic code as part of the InitializeApp
routine. This should add a menu item to the CeFO application, which
will display this form. Replace the Form ID referenced below (1007) with
the Form ID from Step 3 on page 330.
Examples 345
Creating a Multigrid/MultiCBX Form
Sub Initialize_App
Dim CSMenu As New AppMenu
CSMenu.MenuBarId=1002
CSMenu.AddItem “Select”, “Employee/Site”,
“menuEmplSite”
App.ShowDefaultMenu
End Sub
Sub menuEmplSite_Click
Dim MyForm as New Form
MyForm.Show 1007, cbFrontIfUp
End Sub
346 Appendix A
Appendix B
Customization Guidelines
In This Chapter
Adjusting the Form Size for Smaller Monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
User Version Numbering for Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Guidelines for CeFO Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
Default Control Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
347
Adjusting the Form Size for Smaller Monitors
To resize a form, click on the lower-right corner of the form with your mouse
and drag the form to its new shape. After the form is the correct size, save
the form under a different version name.
The user’s display preferences always override any size and position
changes made in the User Interface Editor.
348 Appendix B
User Version Numbering for Forms
If you use this methodology, the same version number is always the same
revision of the form in all databases in which that form/version is stored.
For example, suppose you want to customize the baseline New Case form.
You would complete the steps described in the following example.
Grid Settings
• In the User Interface Editor application, choose View > Grid Settings and
select Snap to Grid and Display Grid. Set Grid Width and Grid Height to
8.
Form Size
• Form size should be 500 x 400 to allow for translation of the form into
other languages. The maximum form size is 748 x 471, assuming a screen
resolution of 800 x 600.
• When designing forms to be used on smaller displays (for example, 640 x
480 VGA), form size should be 400 x 300 to allow for translation of the
form into other languages. The maximum form size is 588 x 351.
• Smaller forms should be centered in the display when posted, not in the
upper-left corner of the CeFO application window.
• To ensure readability, set the margins to:
Top: 8 pixels
Bottom: 8 pixels
Left: 8 pixels
Right: 8 pixels
• For tabbed forms only: if a form is larger than needed for controls, leave
the excess space on the right and bottom sides.
Label Controls
• Text used to label other controls should be appended with a
colon (:). For example, Main Phone:
• Labels placed to the left of edit fields or combo boxes should be middle
aligned with the control, with the control being the reference.
350 Appendix B
Guidelines for CeFO Forms
• When buttons are aligned in a column, the width of all buttons should be
the same.
• Buttons aligned in a column or in a row should be distributed with equal
distance between them.
• When command button controls post a form, a keystroke mnemonic
should be assigned to the button.
• All commands that post forms should be appended with
three dots (...). For example, Request Details...
Tab Controls
• Tab controls should be sized to show the largest child frame they contain.
• To account for the automatic addition of borders in the tab panel area, tab
controls should be at least 32 pixels wider and 40 pixels taller than the
largest child frame they contain.
NOTE: When laying out a form that contains a tab control, determine the size
of the tab control first. Then subtract 32 and 40 from the tab’s width and
height to determine the child frame dimensions.
• Child frames appearing in the same tab control should be the same size.
Tab Ordering
• Tab navigation should proceed from left to right and top to bottom
through the controls.
• When a form is posted, the cursor should be initially placed in the top left
corner of a form.
352 Appendix B
Default Control Dimensions
354 Appendix B
Appendix C
In This Chapter
User Interface Editor Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
User Interface Editor Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
355
User Interface Editor Commands
This appendix describes the commands and windows that appear in the
User Interface Editor.
File Menu
The following commands are available on the File menu.
Open > Child Form Opens a child form or displays a list of child
forms associated with the parent form.
356 Appendix C
User Interface Editor Commands
Edit Menu
The following commands are available on the Edit menu.
View Menu
The following commands are available on the View menu.
358 Appendix C
User Interface Editor Commands
Toolbars > Form Editor Displays or hides the Form Editor (also called
the layout) toolbar.
Format Menu
The following commands are available on the Format menu.
Align > Tops Aligns selected controls along their top edges.
Align > Lefts Aligns selected controls along their left edges.
Align > Snap to Grid Moves selected controls to the nearest grid
unit.
Space Evenly > Across Spaces selected controls with equal distance
horizontally.
Space Evenly > Down Spaces selected controls with equal distance
vertically.
Size > Same Width Resizes selected controls to have the same
width.
Size > Same Height Resizes selected controls to have the same
height.
Size > Fit to Text Resizes controls, based on the length of the text
or number of lines of text in the control.
Window Menu
The following commands are available on the Window menu.
360 Appendix C
User Interface Editor Windows
Help Menu
The following commands are available on the Help menu.
The Button Actions window appears when you click the Button Actions tool
in the Layout toolbox, or choose Edit > Button Actions. Figure 186 shows
the Button Actions window.
More Information: For more information about assigning button actions, see
Chapter 12, Using the Action Editor.
Command line
Field Definitions
Button Action Objects Displays the button action name when it is
saved. You can have more than one action
assigned to a button.
362 Appendix C
User Interface Editor Windows
Command Line Enter the syntax for this action. You can type
up to 256 characters in this field.
Editing area
364 Appendix C
User Interface Editor Windows
Field Definitions
Control list Use to select a control associated with the
form.
More Information: For more information about the arranging tab order between
controls, see Working with Controls.
Control list
366 Appendix C
User Interface Editor Windows
Field Definitions
Control list The first time you open the Control Inspector
after Saving a form, the control list displays all
controls in the form, arranged from the lowest
control ID number to the highest. (Except for
label controls, which display at the end of the
list)
The Edit Form Contextual Objects window appears when you choose Edit >
Contextual Objects or click the Edit Contextual Objects property in the
Properties window.
More Information: For more information about contextual objects, see Chapter 10,
Understanding Contextual Objects.
Field Definitions
Contextual Object Name Enter a name for the contextual object in this
field. You can type up to 20 characters.
Database Object Type Opens the Object Type Selection window, used
to select the database type for the contextual
object. For more information about the
window, see Object Type Selection Window on
page 383.
Contextual Objects list Lists the contextual objects linked to this form.
368 Appendix C
User Interface Editor Windows
Left Pane
Left pane shows an expandable treeview. Every contextual object associated
with the form has an associated extended contextual object listing in this
treeview.
Table 39
Extended contextual object
370 Appendix C
User Interface Editor Windows
Table 39
Indicates key properties associated with the extended
contextual object.
Indicates that this node contains some user-defined
General properties.
Indicates a field to be displayed in a grid control.
The Export to File window appears when you click the Export button in the
Form Select window, choose File > Export, or click Export in the Resource
Config window.
More Information: For more information about the Form Select window, see Form
Select Window on page 377.
Field Definitions
Save in Use to specify the directory to which the file is
to be saved.
Save as type Use to specify the file type. You can only select
dat files as the export file type.
To open this window, choose Edit > Edit Template File from the main menu
bar. If you have the Extended Contextual Objects window open, you can
right-click on a method or property in the treeview and select Edit Template
from the context menu that appears.
372 Appendix C
User Interface Editor Windows
Tabs
This window has two tabs: Template and Edit Template. Figure 193 shows
the Templates tab on the Extended Contextual Object template window.
Figure 194 shows the Edit template tab.
374 Appendix C
User Interface Editor Windows
The Form Merge window appears when you choose File > Merge Form.
More Information: For more information about merging forms, see Chapter 14,
Merging Different Form Versions.
Field Definitions
1st Version Form ID Enter the identification number of the form to
merge.
1st Version CeFO Version Enter the name of the form to merge.
1st Version User Version Enter the user version number of the form to
merge.
2nd Version CeFO Version If merging against a baseline version, enter the
baseline version.
2nd Version User Version If merging against a custom version, enter the
user version.
Place results in version Enter the user version number of the merged
form.
Use listbox data from Determines the version to use if the items in
the list box controls do not match.
Use grid column data from Determines the version to use if the items in
the grid controls do not match.
376 Appendix C
User Interface Editor Windows
Use cbx data from Determines the version to use if the items in
the Select CBX controls do not match.
Use activex data from Determines the version to use if the items in
the ActiveX controls do not match.
The Form Select window appears automatically when you start the User
Interface Editor or when you choose File > Open Form.
Form list
Field Definitions
Form properties Use to define the search criteria.
378 Appendix C
User Interface Editor Windows
This window appears when you choose View > Grid Settings. You can also
click the Toggle Grid tool on the Layout toolbox to display or hide grid dots.
Field Definitions
Show Grid Displays or hides the grid marks in the form
edit window.
The Import Dat File window appears when you choose File > Import.
File list
Field Definitions
Look in Use to select the directory where the data file is
located.
380 Appendix C
User Interface Editor Windows
This window appears when you click the ActiveX tool on the Object toolbox.
Field Definitions
Object Type list Lists the ActiveX controls found on your hard
disk.
Membership Window
Use the Membership window to specify the CeFO users that belong to a
resource configuration. Figure 200 shows the Membership window.
More Information: For more information about the Resource Config window, see
Resource Config <title> Window on page 389.
List criteria
Database
user list
Resource
user
list
Field Definitions
List users Use to define what type of users to search.
Database user list Lists all CeFO users in the database who match
the search criteria.
382 Appendix C
User Interface Editor Windows
The Object Type Selection window appears when you click Database Object
Type in the Edit Form Contextual Objects window.
More Information: For more information about the Edit Form Contextual Object
window, see Edit Form Contextual Objects Window on page 367.
Field Definitions
Object criteria Use to define the search criteria.
The Form Merge Preview Differences Options window appears when you
click Preview Options in the Form Merge window.
More Information: For more information about the Form Merge window, see Form
Merge Window on page 375. For more information about merging forms, see
Chapter 14, Merging Different Form Versions.
384 Appendix C
User Interface Editor Windows
386 Appendix C
User Interface Editor Windows
Field Definitions
Form ID Displays the ID of the parent form.
Field Definitions
Form ID ID of the parent form from which to propagate.
Child Forms Lists all child forms that are part of this
resource configuration.
388 Appendix C
User Interface Editor Windows
Properties Window
Use the Properties window to view or define control and form properties. To
view this window, right-click on a form or a control, or choose View >
Properties Window. Figure 205 shows the Properties window.
Field Definitions
The properties displayed depend on which control is selected. For more
information about properties, see Viewing the Properties Window on page 93
and Chapter 5, Working with Controls.
The Resource Config window appears when you click the Open button in
the Select Resource Config window.
More Information: For more information about the Select Resource Config
window, see Select Resource Config Window on page 392. For more information
about using resource configurations, see Defining a Resource Configuration on
page 62.
Field Definitions
Configuration Title Enter a name for the resource configuration.
You can type up to 20 characters in this field.
390 Appendix C
User Interface Editor Windows
Field Definitions
Name/ID (read-only) Displays the CeFO name and ID
number of this form.
392 Appendix C
User Interface Editor Windows
The Select Resource Config window appears when you choose File > Open >
Resource Configuration.
More Information: For more information about using resource configurations, see
Defining a Resource Configuration on page 62.
Configuration
Configuration value
Field Definitions
Configuration Use to define the search criteria.
394 Appendix C
Index
A controls to a form 98
About command 50 fields to filter properties 220
action controls 98, 127–152 forms to a resource configuration 63–67
Action Editor 259–275 grids to forms 197–199
Form Init actions 268 items to menus 80–81
actions KeyPhrases to part classes 324
adding buttons to invoke 269–271 method templates 255
adding command buttons 273 methods, extended contextual objects 253
asynchronous 261 multi-field filtering 302–309
button control 262 option button groups 157
command-line syntax 263 tabs 142
defining 265–269 users to a resource configuration 70
example 271–275 additional documentation 16
execution 264 adjusting tab order 146
Form Init 268 alignment
function with CeFO applications 260 commands 51
how they work 262–264 controls 90
infinite loops 262 Animation command 53
input/output arguments 265–267 animation control 113
invoking stored procedures 261 properties 113
platform differences 265 appearance, graphs 116
synchronous 261 applications, user interface 22
types 260 arguments, input and output 265–267
ActiveX command 54 arranging controls 83–96
ActiveX controls 110–112 asynchronous actions 261
properties 112 attributes of controls 93
sharing 111 auto-indenting 280
ad hoc queries 221 automatic statement completion 280
adding AVI clips 113
buttons to invoke actions 269–271
B
code modules to forms 281
baseline forms 24, 61, 73
command button actions 273
Bitmap command 52
context-sensitive menus for controls 106–108
bitmap control 114
contextual objects to forms 230–232
bounding boxes 84
buddy controls 190
395
Button Actions code
command 51 adding to a form 281
window 361–364 adding to forms 343
button control 128–139 creating global modules 283
actions 262 customizing CeFO 34
command buttons 129–132 editing 283
form init button 133 saving 283
frame buttons 133–137 Code Editor
icons 137 adding code modules to forms 281
mnemonics 129–132 auto-indenting 280
multiline text boxes 167 automatic statement completion 280
picture buttons 137–138 colors 279
properties 138 features 278–281
reserved names 138 Settings window 365
types of buttons 128 using 277–284
window 278, 364
C colors, Code Editor 279
cb option 39 columns
CBX controls 98 adding to grids 200
CeFO application links 196
customizing 35 modifying 203
defined 15 Command button command 53
CeFO Web client, customizing 33 command buttons 129–132
centering commands 51 assigning mnemonics 129–132
centering controls 86 controls 351
changing command-line syntax, actions 263
property values 95 commands
tab order 103–105 Edit menu 357
Check box command 53 File menu 356
check box control 154–155 Format menu 359
child forms 60, 133 Help menu 361
adding contextual objects 238 UI Editor 356–361
Close/Done buttons 135–137 View menu 358
creating 75, 142 Window menu 360
dismissing 134 Compile command 50
extended contextual objects 239 concatenation 164
ClearBasic, See code configuration, resource 61
client-server architecture 24 configuring
Close/Done buttons, child forms 135–137 baseline resources 61
extended contextual objects 251–254
396 Index
conflicts, resolving for mergers 292 bitmap 114
context-sensitive menus 56, 106–108 buddy 190
adding items 80–81, 106 CBX 98
extended contextual objects 250 centering 86
handling events 108 changing tab order 103–105
modifying 107 check box 154–155
contextual objects 24, 195, 225–241 command button 351
adding to child forms 238 control ID numbers 103
adding to forms 230–232 copying and pasting 89
compared to extended contextual objects 245 default dimensions 353
Contextual objects command 51 deleting 88
data types 233 deselecting 85
defining 332 display 98, 109–125
definition 226 distributing 91
designing 227 dropdown combo box 185–188
destination 226 dropdown list box 175–179
extended, See extended contextual objects examples 55
how they work 25 forms 350
linking controls to 235–237 graph 116–118
linking to a form 229–232 grid 98, 194–211
names 233 group box 118–119
propagating 238–241 input 98, 153–192
simple grids 195 label 120–124
source 226 layout and arranging 83–96
sub types 234 line 124
types 196 linking to contextual objects 235–237
user-defined types 235 list box 171–174, 351
control ID property 103 moving 86
Control Inspector command 50, 104 multiCBX 222
Control Inspector window 366 multiline text box 167–170
control properties 99–103 naming conventions 102
defining 335 navigation 98, 127–152
viewing 46 option button 155–158
controls pop-up list dropdown list box 180–184
action 98, 127–152 progress bar 125
adding 98 reserved names 102
adding context-sensitive menus 106–108 resizing 86
aligning 90 select CBX 212–224
animation 113 selecting 84
attributes 93 selection order 85
Index 397
slider 188 recommended flow 35
spacing 91 using Data Dictionary Editor 33
SQL, adding to queries 317–324 WIPbin window ??–299
tab 103–105, 139–149, 352 Cut command 49, 89
text box 159–166
treeview 150–152
D
types 98, 236 Data Dictionary Editor
updown 190–192 using 33
user interface 24 data types
working with 97–108 definition 233
conventions used in this guide 18 specifying 233
Copy command 49, 89 data, user interface 22
copying extended contextual objects 250 database customization 32
correcting mistakes 57 date/time text boxes 161
creating ddcomp utility 34
child forms 75 default
form modules 281 control dimensions 353
forms 350 tabs, setting 147
global code modules 283 text, entering 162, 168
multiCBX forms 329–346 defining
multigrid controls 251 actions 265–269
multigrids 205–208, 329–346 Form Init actions 268
parent forms 77 input/output arguments 265–267
resource configurations 62–71 resource configurations 62–71
slider controls 188 stored procedures 272
currency text boxes 161 deleting
custom lists 194 controls 88
customizing forms 292
CeFO database 32 deselecting controls 85
CeFO Web client 33 designing
ClearBasic 34 contextual objects 227
ddcomp utility 34 tab layout 142
Find Caller 300, 302 destination contextual objects 226
forms 24, 74 difference reports
guidelines 347–352 merging forms 288
mobile implementation 34 previewing 290
opening forms 40 dimensions of controls 353
Policies and Customers application 34 disabling automatic statement completion 280
Queue window ??–299 dismissing child forms 134
398 Index
displaying Extended Contextual Object Template window
display controls 98, 109–125 372–375
display grid layout 57 extended contextual objects 29, 239
key/value pairs 247 adding methods 253
pictures in buttons 137 compared to contextual objects 245
user interface 31 configuring 251–254
distributing controls 91 context menus 250
DOS prompt, starting UI Editor 39 Copy Special 250
Dropdown Combo box command 53 defining properties 339
dropdown combo box control 185–188 editor, using 243–258
list items property 187 nodes 248
properties 186 overview 244
Dropdown List box command 53 Paste Special 250
dropdown list box control 175–179 properties and methods 247
labeling 175 treeview navigation 248
limit per form 175 window 244
properties 184
F
static lists 177
field arrays 194
types 176
File menu commands 356
duplicate mnemonics 132
filters
E adding custom filters 302–303
Edit Form Contextual Objects window 367–369 Find Caller customizations 300
Edit Form Extended Contextual Objects window properties 220
369 required 316
Edit menu commands 357 find and replace, using 168
editing Find Caller feature, customizing 300–302
code 283 fixed toolbars 48
controls 89 flags 81
edit fields 159 focus objects 23
filter properties 220 Form Editor toolbar 50
forms 43 form ID ranges 42
grids 203 Form Init actions 268
entering default text 162, 168 form init button 133
examples of customizing 295–329 form license dependencies 81
executing actions 264 Form Merge window 375–377
Export to File window 371 form modules, creating 281
exporting Form Select
forms 75 filter criteria 41
resource configurations 71 window 377–379
Index 399
Format menu commands 359 on-demand 68
formatting opening 40
characters, input masks 165–166 overview 60
format property 164 parent 60, 77, 133
text, Code Editor 279 previewing 45
forms 23 previewing difference reports 290
adding code 281 properties 79
adding contextual objects 230–232 query 172
adding controls 98 recommended sizing 93
adding grids 197–199 reconciling different versions 285–293
adding to a resource configuration 63–67 removing from a resource configuration 69
adjusting size 348 resizing 92
baseline 24, 61 resolving merging conflicts 292
changing names 101 saving 47, 74
child 60, 75, 133, 134–137, 142 searching by ID 42
code, adding 343 select, creating 214–220
command button controls 351 simple 25, 26, 29
comparison of simple and multipane 29 single-table 25
contextual objects 24 size 350
creating 350 specifying as pre-loaded 68
creating multigrid/multiCBX 329–346 SQL feature 318
custom 24 template 82
customizing 347–352 testing 346
deleting 292 text box controls 351
difference reports 288 user version numbering 348
displaying information 31 using Form Select window 41
editing window 43 working with 59–82
examples of customizing 295–329 form-specific code 278
grid settings 350 frame buttons 133–137
importing and exporting 75 frames
label controls 350 tab controls 352
layouts 25 tab ordering 352
linking contextual objects 229–232 free-floating toolbars 48
list box controls 351
making changes available to users 32
G
merging 285–293 global code modules 278
modifying 73 Code Editor window 278
multiCBX 329–346 creating 283
multigrid 329–346 identifying strings 283
multipane 25–29, 147 Graph command 54
400 Index
graph control 116–118 Import Dat File window 380
graph appearance 116 importing forms 75
properties 117–118 input
specifying graph data 116 arguments, actions 265–267
Grid command 53 controls 98, 153–192
grid controls 98, 194–211 masks 165–166
adding columns 200 Insert OLE Control window 381
adding grids to forms 197–199 Inspector command 104
column display 199 Inspector window 366
column links 196 invoking
column properties 209 actions 269–271
creating multigrids 205–208 stored procedures 261
making grids editable 203
modifying columns 203
K
multigrids 194 key/value pairs 30
properties 208–211 copying and pasting 250
simple grids 194 displaying 247
using the grid wizard 200–202 using method templates 254–258
grid markings keyboard
command 51 navigation, treeview control 151
setting up 57 shortcut buttons 129–132
Grid Settings window 379 KeyPhrases, adding to part classes 324
grid settings, forms 350 L
grid wizard 200–202
Label command 52
Group box command 53
label control 120–124
group box control 118–119
forms 350
properties 119
properties 122
grouping option buttons 157
layouts
guide conventions 18
controls 83–96
H forms 25
handles, bounding boxes 84 grid markings 57
handling menu events 108 tab control 142
Help menu commands 361 licensing options 81
hide toolbox command 49 Line command 53
hierarchical pop-up lists 180 line control 124
how to use this guide 16 linking
contextual objects 229–232
I controls to contextual objects 235–237
ID, forms 42 List box command 53
identifying strings, code modules 283
Index 401
list box control 171–174, 351 moving
labeling 171 controls 86
pop-up list 180–184 toolbars 48
properties 174 multiCBX
used in query forms 172 controls 222
listing properties and methods 247 forms, creating 329–346
login dialog box 38 multi-field filtering
login information, shell scripts 329 adding 302–309
Long Value property 183 adding to a Sort By list 309
adding to Select Contracts window 306–308
M database objects 303
mask edit text boxes 162 described 304
Membership window 382–383 windows using 303
menus multigrids 194
context-sensitive, See context-sensitive menus column properties 209
shortcut 56 creating 205–208, 329–346
merging forms 285–293 creating controls 251
generating reports 288 Multiline text box command 53
resolving conflict 292 multiline text box control 167–170, 351
specifying 286–288 entering default text 168
methods find and replace 168
adding, extended contextual objects 253 properties 167, 169
extended contextual objects 30, 247 types 167
part selection, changing 310–316 multipane forms 25–29
templates 254–258 tab control 147
mistakes, correcting 57
mnemonics N
assigning to buttons 129–132 names
duplicates 132 contextual objects 233
limitations 132 name property 101
precedence 132 naming conventions 102
tab control 141 reserved 102
mobile implementation, customizing 34 reserved for buttons 138
modifying navigation
context-sensitive menus 107 controls 98, 127–152
forms 73 extended contextual objects 248
grid columns 203 slider controls 189
monitors, adjusting form size 348 New Case window 313
mouse, using 56 New form command 49
402 Index
NEW_FILTER contextual object Paste Special command 89
adding custom fields 305 pasting extended contextual objects 250
database objects used 303 pathnames 19
list of windows containing 303 picture buttons 137–138
using for custom filtering 302 planning for tabs 142
nodes platform differences, actions 265
extended contextual objects 248 Play form command 49
treeview control 150 Policies and Customers application 34
numbering pop-up list dropdown list boxes 180–184
control ID 103 pre-loaded forms 68
forms 348 Preview Differences Options window 384–386
previewing forms in UI Editor 45
O Print command 50
Object Type Selection window 383–384 Progress bar command 53
objects progress bar control 125
contextual 24 Propagate Contextual Objects command 238
extended contextual 29 Propagate Contextual Objects window 386–388
focus 23 propagating contextual objects 238–241
related 23 properties
workflow 22 ActiveX controls 112
.ocx extension 110 animation control 113
on-demand forms 68 button control 138
opening changing the value of 95
forms 40 control ID, using 101
global code modules 284 control, viewing 46
Open form command 49 controls 99–103
Option button command 53 correcting mistakes 95
option button control 155–158 dropdown combo box 186
adding option buttons 157 dropdown list box control 184
grouping 157 extended contextual objects 30, 247
passing values 156 filter, editing 220
properties 158 forms 79
ordering tabs 146, 352 graph control 117–118
output arguments, actions 265–267 grid controls 208–211
P label control 122
line control 124
parent forms 60, 133
list box control 174
adding tab controls 143–146
multiline text box control 167, 169
creating 77
name, using 101
part selection methods, changing 310–316
option button control 158
Paste command 49, 89
Index 403
progress bar control 125 defining 332
Properties command 49 definition 60
select CBX control 222 exporting 71
slider control 189 how it works 61
tab control 148 removing forms 69
text box control 159, 163 removing users 70
treeview control 151 users 61
updown control 191 restrictions, tab control 141
Properties window 94, 389
S
Q Same height command 51
queries Same size command 51
ad hoc 221 Same width command 51
adding SQL controls 317–324 Save Form As window 392
forms, using list boxes 172 saving
SQL feature use in forms 318 code 283
Queue window, customizing ??–299 customized baseline forms 74
forms 47
R Save form command 49
radio buttons 155 searching by form ID 42
Redo command 49 See also multi-field filtering
reference Select CBX command 54
additional documentation 16 select CBX control 212–224
controls 85, 87 ad hoc queries 221
related objects 23 adding custom filters 303
removing users from a resource configuration 70 creating select forms 214–220
reports filter properties 220
generating for merged forms 288 properties 222
parameters 289 Select ClearBasic extension, See Select CBX control
previewing 290 select forms, creating 214–220
required Select Resource Config window 392–394
filters, specifying 316 selecting
reserved button names 138 cancelling control selection 85
resizing controls 84
controls 86 Select command 52
forms 92 selection order controls 85
Resource Config window 389–391 setting default tabs 147
resource configuration 32 setting up grids 57
adding forms 63–67 sharing ActiveX controls 111
adding users 70 shell scripts, login information 329
creating 62–71
404 Index
shortcut menus 56, 106–108 sub types, contextual objects 234
shortcuts 129–132 synchronous actions 261
Show/hide toolbox command 49 syntax, command-line 263
shown/hidden tab titles 139
simple forms 25, 26, 29
T
simple grids 194 Tab command 53
column properties 209 tab control 139–149, 352
single-level pop-up lists 180 adding to parent form 143–146
single-table forms 25 adjusting ordering 146
size creating child forms 142
adjusting for forms 348 layout 142
forms 350 multipane forms 147
sizing forms 93 planning 142
tabs 146 properties 148
Slider command 54 restrictions 141
slider control 188 setting the default 147
creating 188 shown/hidden tab titles 139
navigation 189 sizes 146
properties 189 using updown control 191
small monitors, resizing forms for 348 tab order
snap-to-grid option 57 changing 103–105
source contextual objects 226 standard format 352
spacing commands 51 Tab Order command 105
spacing controls 91 templates
specifying forms 82
forms to merge 286–288 method 254–258
graph data 116 testing forms 346
required filters for part selection 316 Text box command 53
SQL controls 317–324 text box control 159–166
standard toolbar 48 entering default text 162
starting the UI Editor 38 format property 164
ClearBasic mode 39 forms 351
static lists 177 input masks 162, 165–166
stored procedures properties 159, 163
defining 272 types 160–162
invoking with actions 261 text concatenation 164
login information 329 text formatting 279
storing values 179 toolbars
fixed 48
Form Editor 50
Index 405
free-floating 48 controls 24
moving 48 description 21–35
standard 48 extended contextual objects 29
toolbox 52 form layouts 25
UI Editor 48–54 forms 23
Treeview command 54 how it is displayed 31
treeview control 150–152 overview 22
navigation 151 workflow objects 22
properties 151 user version numbering for forms 348
types of controls 98 user-defined contextual objects 235
typographical conventions 19 User-defined Data Types 39
using
U Code Editor 277–284
UDTs 39 command buttons 129–132
UI Editor the mouse 56
commands 48–52, 356–361
controls 55 V
creating global code modules 283 values
customizing guidelines 347–352 passing from options 156
customizing the CeFO database 32 properties 95
examples of customizing 295–329 slider control 188
form editing window 43 storing 179
opening forms 40 versioning
starting 38 difference reports for forms 288
starting from a DOS prompt 39 numbering, forms 348
starting with the cb option 39 View code command 50
toolbars 48–54 View form command 50
windows 361–394 View menu commands 358
uiedit 39 viewing
Undo command 49, 89 contextual object lists 229
undo command 57 control properties 46
UpDown command 53 Properties window 94
updown control 190–192
keyboard navigation 190
W
properties 191 Window menu commands 360
rotating through tabs 191 windows
user data column, static lists 178 Button Actions 361–364
user interface Code Editor 278, 364
applications and data 22 Code Editor Settings 365
contextual objects 24 Control Inspector 366
Edit Form Contextual Objects 367–369
406 Index
Edit Form Extended Contextual Objects 369
Export to File 371
Extended Contextual Object Template 372–375
extended contextual objects 244
Form Merge 375–377
Form Select 41, 377–379
Grid Settings 379
Import Dat File 380
Insert OLE Control 381
Membership 382–383
New Case, customizing 313
Object Type Selection 383–384
Preview Differences Options 384–386
Propagate Contextual Objects 386–388
Properties 94, 389
Resource Config 389–391
Save Form As 392
Select Resource Config 392–394
UI Editor 361–394
WIPbin window, customizing ??–299
workflow objects 22
writing code 278
Index 407
408 Index