Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)FrançaisItaliano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Use .NET Classes in ABL Applications

Programming considerations

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Overview
    • General capabilities and limitations
      • Support for .NET in OpenEdge on Windows
        • Changes and limitations with .NET on Windows
        • Migrate from .NET Framework to .NET on Windows
      • Support for .NET in OpenEdge on Linux
        • Migrate from .NET on Windows to Linux
      • Capabilities
      • Limitations
      • Adjust the OpenEdge installation to use a different .NET version
      • Troubleshoot loading of .NET
    • Object model and architecture
      • Incorporation of the .NET object model
        • .NET objects on the session object chain
        • Compile-time access to .NET objects
      • GUI for .NET run-time architecture
      • Performance note
    • Simple example
  • Access .NET Objects
    • Access and manage .NET classes from ABL
      • Support for .NET classes
      • Limitations of support for .NET classes
    • Reference and instantiate .NET classes
      • How .NET organizes types for reference
      • Identify .NET assemblies to ABL
      • Reference .NET class and interface types
        • Reference inner classes and interfaces
        • Reference arrays of objects
        • Reference .NET generic types
      • Use case sensitivity with .NET objects
      • Use unqualified .NET type names
      • Instantiate and manage .NET class instances
        • Instantiate and obtain instances of .NET classes
        • Cast .NET class and interface types
        • .NET class instances and garbage collection
    • Access .NET class members
      • Access members of .NET interfaces
      • Access static members of a .NET class
      • Specify .NET constructor and method parameters
      • Access .NET indexed properties and collections
        • Access .NET indexed properties dynamically
        • Default indexed properties
        • Indexed property overloading
        • Indexed properties in chained references
        • Work with collections
    • Handle .NET events
      • Manage .NET events in ABL
      • Identify the events published by a .NET object
      • Define handlers for .NET events in ABL
        • Identify the signature for an event handler on a third-party .NET object
        • Identify the signature for an event handler on an OpenEdge .NET object
      • Specify handler subscriptions for .NET events
      • Manage .NET events from ABL-extended .NET classes
      • Event handling example
    • Handle .NET exceptions
      • Use the ABL error trapping constructs
      • Use properties and methods on .NET exception objects
      • Unique scenarios when handling errors with .NET objects
        • Raise errors from ABL handlers for .NET events
        • Handle .NET exceptions raised during display of a .NET form
        • Raise errors from overridden .NET methods or implemented .NET interface members
  • Extend .NET Objects
    • Features of ABL-derived .NET classes
    • Derive .NET classes in ABL
      • Access inherited members of a .NET base class
      • Define new ABL members in a class that inherits from a .NET class
      • Override .NET methods
      • Override .NET abstract properties
      • Override .NET virtual properties
      • Override .NET abstract events
      • Get type information (reflection)
    • Manage events for ABL-derived .NET classes
      • Publish inherited .NET events
      • Publish inherited .NET abstract events
      • Handle events on controls contained by ABL-derived .NET classes
    • Features of ABL classes that implement .NET interfaces
    • Implement .NET interfaces in ABL
    • Error handling for ABL-extended .NET classes
  • Use .NET data types in ABL
    • Overview of .NET data types in ABL
      • Value types in ABL
      • Reference types in ABL
    • General ABL support for .NET types
      • Support for .NET mapped object and primitive data types
      • Support for .NET object types
      • Support for .NET value types as objects
    • Implicit data type mappings
      • Implicit array mappings
      • An ABL INTEGER larger than its .NET destination
      • Negative ABL values and unsigned .NET destinations
      • ABL DECIMAL and .NET System.Decimal
      • Default matching ABL and .NET data types
      • An ABL INT64 larger than its .NET System.UInt32 destination
      • An ABL DECIMAL larger than its .NET System.UInt64 destination
      • ABL DECIMAL and .NET System.Double or System.Single
    • Explicit data type mappings
    • Assign between ABL primitive or array types and System.Object
    • Pass ABL data types to .NET constructor and method parameters
      • Indicate explicit .NET data types
      • Data type widening
    • Get .NET data member, property, and method return values
    • .NET boxing support
      • Automatic boxing
      • Manual boxing
    • .NET null values and the ABL Unknown value (?)
    • Support for ADO.NET DataSets and DataTables
    • Access and use .NET enumeration types
      • Enumerations in .NET
      • .NET enumerations in ABL
      • Use the Progress.Util.EnumHelper class
    • Work with .NET generic types
      • Identify generic type parameters
      • Identify constraints on generic type parameters
    • Access and use .NET arrays
      • Access .NET arrays
      • Array mapping: conversion between ABL arrays and .NET arrays
      • Array assignment
      • Example: Map an ABL array to a .NET array
      • Example: Access a .NET array
  • Create and use forms and controls
    • OpenEdge .NET form and control objects
      • Commonly used .NET public form methods and events
        • Common .NET public form methods
        • Common .NET public form events
      • Commonly used .NET public control methods, properties, and events
        • Common .NET public control methods
        • Common .NET public control properties
        • Common .NET public control events
    • ABL support for managing .NET forms and controls
      • Initialize and block on .NET forms
        • Prepare to block on .NET forms
        • Block on and process events for .NET forms
      • Block on non-modal forms
      • Block on modal dialog boxes
      • Access .NET forms using the SESSION system handle
      • Access resource files for .NET forms
    • Create custom .NET forms and controls
      • Sample ABL-derived .NET non-modal form
      • Sample ABL-derived .NET modal dialog box
      • Sample ABL-derived .NET MDI form
      • Sample ABL-derived .NET user control
  • Bind ABL data to .NET controls
    • ABL and .NET data binding models
      • ABL data binding
      • .NET data binding
    • ABL data binding model for .NET
      • Extent of integration with .NET controls
      • Supported .NET controls
      • Supported ABL data sources
    • ProBindingSource
      • Constructors
        • Field lists
        • Bind ProBindingSource to queries
        • Bind ProBindingSource to buffers
        • Bind ProBindingSource to ProDataSets
        • Special case: unbound class instance
      • Properties
        • AutoUpdate and rapid prototyping
      • Methods
      • Events
      • Data binding examples
        • Query binding example
        • Buffer binding example
        • ProDataSet binding example
      • Programming considerations
        • 1-based or 0-based indexes
        • Row transactions
        • Use the Dispose( ) method
        • Support for Visual Designer
        • Bind .NET controls to BLOB fields
        • Bind .NET controls to CLOB fields
        • Use the .NET DataMember property
    • Manage data updates
      • Enable and disable updates
      • Use sorting
        • Use the UltraGrid's BeforeSortChange and AfterSortChange events
        • Sort child tables for a recursive data-relation
        • Use the SortRequest event
      • Maintain currency with the Position property
      • Synchronize data
        • Reopen queries
        • Manipulate result list entries
        • Use the Refresh methods
      • Handle user interface events
        • Check for updates
        • Write screen values to the data source object
        • Find the proper child query in a ProDataSet
        • Use the CreateRow event
        • Use the CancelCreateRow event
        • Use the OffEnd event
        • Use the PositionChanged event
    • Example of an updatable grid
      • Definitions
      • Main block
      • Internal procedures and functions
  • Use .NET forms with ABL windows
    • Features for using forms and windows together
    • ABL session architecture for forms and windows
      • Shadow windows
      • FormProxy objects
      • Embedded windows
    • Parent forms and windows to each other
    • Embed ABL windows in .NET forms
      • Elements of an embedded ABL window
      • Use the ABL features to embed a window
      • Embed a single window in an MDI child form
      • Embed one or more windows in a .NET form
      • Behavior of forms with embedded windows
    • Handle form and window input
      • Common event handling for forms and windows
      • Common focus detection for forms and windows
    • Manage form and window run-time behavior
    • Configure common session features
      • Palette management
      • Font management
      • Regional settings: localization
  • OpenEdge-installed .NET Controls
    • OpenEdge controls
    • Microsoft .NET UI controls
    • OpenEdge Ultra Controls for .NET
  • Notes on using the ProBindingSource
    • Determine what to bind to the ProBindingSource
    • Repopulate data in an ABL data source bound to a ProBindingSource
    • Use the ProBindingSource AddNew( ) and Remove( ) methods
Table of Contents

Programming considerations

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: January 17, 2024
  • 1 minute read
    • OpenEdge
    • Version 12.8
    • Documentation

Programming considerations

The sections that follow discuss other features of the ProBindingSource that you should consider.

Contents
  • 1-based or 0-based indexes
  • Row transactions
  • Use the Dispose( ) method
  • Support for Visual Designer
  • Bind .NET controls to BLOB fields
  • Bind .NET controls to CLOB fields
  • Use the .NET DataMember property
TitleResults for “How to create a CRG?”Also Available inAlert