Progress OPENEDGE GUI User Manual

OpenEdge GUI for .NET Task Map
The following tables list selected tasks that you might need to complete when working with the OpenEdge GUI for .NET and where you can find more information about them.
Visual Designer
The Visual Designer is the tool provided by OpenEdge Architect for building a GUI for .NET application. It opens whenever you create or edit an ABL Form, ABL Dialog, ABL MDI Form, ABL User Control, or ABL Inherited Control object in OpenEdge Architect. Each of these objects is an ABL class that inherits and extends a .NET form or control class. Depending on the object type, Visual Designer allows you to build the class by dragging and dropping components, setting properties, and using wizards, which generates code for the class, and you can switch to code view to add code manually using the OpenEdge Editor. For an introduction to the Visual Designer see, Introducing the OpenEdge Architect Visual
Designer. For a series of video tutorials on working with the GUI for .NET in OpenEdge
Architect, see OpenEdge Architect Videos: Using Visual Designer and GUI for .NET in
OpenEdge Architect.
Task Summary Information Source
Understanding the code generated for an inherited .NET form
Visual Designer automatically generates code when you create a new ABL Form (ABL-derived .NET
Manuals:
GUI for .NET Programming
form). The following information describes some of this generated code.
OpenEdge Architect Online Help:
Code associated with
a Visual Designer component
Creating custom .NET forms and controls
Generated by Clearspace on 2010-12-17-05:00
Video Tutorials:
1
OpenEdge GUI for .NET Task Map
Creating a Form and a
ProBinding Source
Adding a ProBindingSource to a form
Using the assemblies.xml file in development and deployment
For .NET controls that support data binding using a System.Windows.Forms.BindingSource class, you can bind supported ABL data to these controls by adding a Progress.Data.BindingSource (ProBindingSource) instance to any form that contains instances of the controls. The Visual Designer provides several ways to add a ProBindingSource to a form.
Any ABL application that implements a GUI for .NET, or that only references a .NET object type, must have access to an assemblies.xml file that identifies the .NET assemblies defining all .NET objects referenced by the session. OpenEdge Architect automatically creates an assemblies.xml file, which you can update, for any project that references a .NET object.
Manuals:
Introducing the OpenEdge Architect Visual Designer
Data binding
Video Tutorials:
Creating a Form and a
ProBinding Source Building a
ProBindingSource from a ProDataSet Definition
Manuals:
Managing ABL Applications
.NET assemblies
Deploying
application source code
GUI for .NET Programming
Compile-time
access to .NET objects Identifying .NET
assemblies to ABL
OpenEdge Architect Online Help:
Understanding inherited controls and user controls
Generated by Clearspace on 2010-12-17-05:00
Visual Designer allows you to create custom controls for use in designing forms, including ABL-derived .NET controls (ABL Inherited Control) and ABL-derived .NET user controls (ABL User Control). In short, an ABL Inherited Control is an ABL class that inherits and extends a .NET control class; an ABL User Control is an
.NET assemblies and the
Visual Designer
Manuals:
GUI for .NET Programming
Creating
custom .NET forms and controls
2
OpenEdge GUI for .NET Task Map
ABL class that inherits and extends the OpenEdge-extended .NET class, Progress.Windows.UserControl., which is a container for other controls. After creating it, you can add each custom control to the Toolbox, from which you can visually add the control or user control to any ABL-derived form that you create.
Sample ABL-
derived .NET user control
Introducing the OpenEdge Architect Visual Designer
Adding LeftBar.cls
to the project (example ABL User Control) Adding
HelpButton.cls to the Toolbox (example ABL Inherited Control)
OpenEdge Architect Online Help:
Custom user-defined
controls Creating a user control
Creating an inherited
control Reloading the Design
Canvas while using custom controls
Building localized forms
Visual Designer automatically creates a resource (.resx) file to store resources used by a .NET form in a GUI for .NET application. To localize the form, you must translate the labels for the form stored in the resource file using third-party tools.
Video Tutorials:
Creating a Databound
TreeView as an Inherited Control, Part 1 Creating a Databound
TreeView as an Inherited Control, Part 2 Building a Navigation
Panel as an ABL User Control
Manuals:
GUI for .NET Programming
Accessing
resource files for .NET forms
ABL Reference
Generated by Clearspace on 2010-12-17-05:00
3
OpenEdge GUI for .NET Task Map
Progress.Util.ResourceHelper
class
OpenEdge Architect Online Help:
OpenEdge Architect
project and resource data files
Using form and control classes across two or more projects
Setting up company standard templates using form inheritance
To use form and control classes across two or more projects, you must make the class files available to each project. To share control classes across projects, you can set a sharing option that allows you to use a global Toolbox for all projects accessed with the Visual Designer. You can also copy the same toolbox.xml file among different projects or users to share a common Toolbox definition among specific projects of one or more installations of OpenEdge Architect.
You can set up company standard form templates by creating ABL­derived forms (ABL Form objects in Visual Designer) that include ABL­derived user controls (ABL User Control objects in Visual Designer).
OpenEdge Architect Online Help:
Shared AVM preference
page Customizing the Visual
Designer Toolbox Sharing Toolbox settings
Manuals:
GUI for .NET Programming
Creating
custom .NET forms and controls
Generated by Clearspace on 2010-12-17-05:00
OpenEdge Architect Online Help:
Template customization
Customization Editor
4
OpenEdge GUI for .NET Task Map
Run time/Deployment
Deployment involves setting localization options and installing files associated witht the .NET objects you reference.
Task Summary Information Source
Localizing an application using startup parameters and the machine culture setting
Deploying the assemblies.xml file, OpenEdge-installed controls, third-party controls, and your own custom controls
You can localize a GUI for .NET application using a setting of the .NET System.Globalization.CultureInfo class, and you can match other ABL data and display options to this setting using the Internal Code Page (-cpinternal), Date Format (­d), European Numeric Format (-E), and Use OS Locale (-useOsLocale) startup parameters.
When you deploy a GUI for .NET application, you need to locate the assemblies.xml file where OpenEdge can find it and ensure that the assemblies it references are installed appropriately.
Manuals:
GUI for .NET Programming
Startup Command and Parameter Reference
Manuals:
Managing ABL Applications
WebClient Applications
Regional settings
—localization
Internal Code
Page (-cpinternal) Date Format (-d)
European
Numeric Format (­E) Use OS Locale (-
useOsLocale)
Deploying
OpenEdge GUI for .NET applications
WebClient and
OpenEdge GUI for .NET
Data Binding
OpenEdge provides the .NET Progress.Data.BindingSource (ProBindingSource) class to bind ABL data to .NET user-interface controls that support data binding using the System.Windows.Forms.BindingSource class. Typically, a .NET control supports data binding using a BindingSource class if it has a property of type System.Object (typically named DataSource) to assign the data source object instance, including a
Generated by Clearspace on 2010-12-17-05:00
5
OpenEdge GUI for .NET Task Map
ProBindingSource, or it has a property of type ControlBindingsCollection (typically named DataBindings) that you can use to bind data elements from the ProBindingSource to specified properties on the control. For an overview of data binding in the GUI for .NET, see
Binding ABL Data to .NET Controls in GUI for .NET Programming.
Task Summary Information Source
Binding data to lists and individual fields with a ProBindingSource
You can bind the individual fields of database or temp-table buffers to field and list controls. Examples of these controls include the Microsoft Label, TextBox, and ComboBox or the Infragistics UltraTextbox, UltraCombo, and UltraListView.
Manuals:
GUI for .NET Programming
Buffer binding
example (TextBoxes)
Introducing the OpenEdge Architect Visual Designer
Creating the
Purchase Order Window (examples of various label and editor Ultra Controls)
Video Tutorials:
Adding Field-Level
Controls to a Form
Binding both single-level and hierarchical data to a grid with a ProBindingSource
You can bind database tables, temp­tables, queries, and ProDataSets to grid controls. Examples of grid controls include the Microsoft DataGridView and the Infragistics UltraGrid. You can use multiple DataGridView controls to bind hierarchical data from a ProDataSet, or you can use a single UltraGrid control, which supports multi-level data binding.
Generated by Clearspace on 2010-12-17-05:00
Manuals:
GUI for .NET Programming
Introducing the OpenEdge Architect Visual Designer
Query binding
example (UltraGrid) ProDataSet
binding example (UltraGrid)
Creating the
Customer Window (UltraGrid example)
6
OpenEdge GUI for .NET Task Map
Video Tutorials:
Adding a Microsoft
Grid Control to a Form (DataGridView) Building a
ProBindingSource from a ProDataSet Definitio (UltraGrid)
Binding data to a tree control You can bind data to tree controls,
such as the Microsoft TreeView and Infragistics UltraTree control. However, the Microsoft TreeView does not support convenient data binding using a ProBindingSource. Instead, you can create your own ABL data modeling classes and use them as part of an ABL-derived Microsoft TreeView control to bind ABL data to the TreeView.
Binding multiple controls to a single data source
You can bind multiple UI controls to a single data source by binding a specified data element to each control using the DataMember or DataBindings property of each control, or by binding the entire data source attached to the ProBindingSource to each control using its DataSource property (if the control has one).
Manuals:
Introducing the OpenEdge Architect Visual Designer
Creating the
Department Window (UltraTree example)
Video Tutorials:
Creating a Databound
TreeView as an Inherited Control, Part 1 Creating a Databound
TreeView as an Inherited Control, Part 2
Manuals:
GUI for .NET Programming
.NET data binding
Buffer binding
example (TextBoxes) Using the .NET
DataMember property
Batching with a ProBindingSource Batching allows you to set up a
ProBindingSource to automatically retrieve more data when it has reached the end of its current result set and is being asked to get the next data element. You can set up
Generated by Clearspace on 2010-12-17-05:00
Manuals:
GUI for .NET Programming
ProBindingSource
properties (Batching)
7
OpenEdge GUI for .NET Task Map
Sorting data in a control with a ProBindingSource
batching using the ProBindingSource Batch property and OffEnd event.
Sorting data in controls can be accomplished in different ways depending on the native support for sorting in the control. For example, the Infragistics UltraGrid can manage its own sorting operations while the Micrsoft DataGrid relies on its data source (in this case, its ProBindingSource) to do the sorting.
ProBindingSource
events (OffEnd) Using the OffEnd
event (batching)
Manuals:
GUI for .NET Programming
ProBindingSource
properties (AutoSort) ProBindingSource
events (SortRequest) Sorting
Video Tutorials:
Sorting Data with .NET
Controls and a ProBindingSource in Visual Designer, Part 1 Sorting Data with .NET
Controls and a ProBindingSource in Visual Designer, Part 2 Sorting Data with .NET
Controls and a ProBindingSource in Visual Designer, Part 3 Sorting Data with .NET
Controls and a ProBindingSource in Visual Designer, Part 4
Doing CRUD operations with a ProBindingSource
Handling events for a ProBindingSource
The methods, properties, and events of a ProBindingSource support the full range of create, read, update, and delete operations on the records of a database.
The ProBindingSource extends the System.Windows.Forms.BindingSource class with several additional events. These events simplify various
Generated by Clearspace on 2010-12-17-05:00
Manuals:
GUI for .NET Programming
Manuals:
GUI for .NET Programming
ProBindingSource
properties ProBindingSource
methods Example of an
updatable grid
8
OpenEdge GUI for .NET Task Map
operations on ABL data that you bind to a .NET control. During data processing, you work with these events, control events, and any events on the data source (such as a ProDataSet) to manage the data for a GUI for .NET.
ProBindingSource
events Using the
UltraGrid’s BeforeSortChange and AfterSortChange events Using the
SortRequest event Handling user
interface events
Events
ABL supports events as members of a class, including .NET events, which you can process using a form of the WAIT-FOR statement.
Task Summary Information Source
Defining and inheriting events in ABL
Subscribing event handlers and publishing a .NET event
ABL support for class events allows you to both inherit .NET events and implement inherited .NET abstract events.
You can subscribe ABL internal procedures or class methods as handlers for .NET events, depending on their access mode. You can also publish a .NET event if the .NET class that provides the event
Manuals:
Object-oriented Programming
GUI for .NET Programming
ABL Reference
Manuals:
Object-oriented Programming
Events of a class
Defining class
events Defining events
within a class
Overriding .NET
abstract events Implementing .NET
interfaces in ABL
Class events
DEFINE EVENT
statement
Generated by Clearspace on 2010-12-17-05:00
9
OpenEdge GUI for .NET Task Map
also provides a .NET method for publishing the event, and you can publish any ABL event that you define to implement a .NET abstract or interface event.
Publishing and
responding to class events Publishing and
subscribing to class events
GUI for .NET Programming
Handling .NET
events Managing
events for ABL­derived .NET classes
Introducing the OpenEdge Architect Visual Designer
Adding event
handlers in the Visual Designer
ABL Reference
Publish( ) event
method Subscribe( ) event
method Unsubscribe( )
event method
Using the WAIT-FOR statement to display a non-modal MDI, .NET multi-form, or mixed .NET form and ABL window application
You can define only a single WAIT­FOR statement to block for .NET events. However, that one WAIT­FOR statement allows you to handle events for any combination of non­modal .NET forms and ABL windows that you display in an application.
Video Tutorials:
Defining Event
Subscriptions and Event Handlers in Visual Designer, Part 1 Defining Event
Subscriptions and Event Handlers in Visual Designer, Part 2
Manuals:
GUI for .NET Programming
Simple example
Initializing and
blocking on .NET forms Blocking on non-
modal forms Blocking on modal
dialog boxes
Generated by Clearspace on 2010-12-17-05:00
10
OpenEdge GUI for .NET Task Map
Sample ABL-
derived .NET non­modal form Sample ABL-
derived .NET modal dialog box Sample ABL-
derived .NET MDI form Handling
mixed .NET form and ABL window input
ABL Reference
WAIT-FOR
statement (.NET and ABL)
Miscellaneous ABL
Much of the support for the GUI for .NET is in how ABL supports access to .NET types.
Task Summary Information Source
Mapping ABL and .NET data types ABL allows you to access most .NET
objects as classes in ABL, including .NET array objects. However, you can reference .NET primitive data types only as equivalent ABL primitive data types, which ABL implicitly maps from one to the other. In some cases, you must explicitly indicate the .NET primitive type that corresponds to given ABL primitive type and ABL supports mechanisms to do that. ABL also supports an implicit mapping between one­dimensional .NET array objects and ABL arrays (variables or properties defined with an EXTENT) when you assign between one and the other.
Manuals:
GUI for .NET Programming
ABL Reference
Using .NET data
types in ABL Referencing .NET
class and interface types Using
unqualified .NET type names
Data types
Type-name syntax
USING statement
Generated by Clearspace on 2010-12-17-05:00
11
Loading...