Miscellaneous Group

All content on the site should (must?) belong to a group. This group is the catch-all for content that doesn't fit anywhere else.


wSelection.w

This example shows the use the assignQuerySelection and removeQuerySelection functions in the SDO to make use of dynamic query functionality.

added by:
Kimberly Craven


Updateable Browse Enhancements

The Updateable Browse is one of the most important and widely accepted widgets in the GUI environment. It is similar to editable ActiveX Grid controls like Videosofts VsFlex or Microsofts Data Grid found in other GUI programming environments like Visual Basic and Delphi. However, these non-Progress Grids provide some enhanced features not found in the Updateable Browse widget like: drop-down lists (grids) from an updateable cell, or dynamically making an updateable cell non-updateable without making the entire column non-updateable. Well you can do the same in Progress too, and without learning any new non-Progress widget or control (and worrying about memory-leaks!). This Updateable Browse Enhancements implementation uses a GUI Button, Updateable Browse Widget with Free-Form Query, dynamic Browse Widget, and of course Frames.

added by:
Hansdip Bindra


Database Statistics Tool

This tool helps the DBA to detect when the size limit for a storage area is approaching a physical (addressing) limit. The analysis done by the tool provides a conservative view of storage area usage, i.e. there is a built-in safety margin in the reporting. The margin comes from space internal to a storage area that is actually available for the case of deleted and reused record-ids.

The download includes instructions on how to run the tool and interpret its results as well as a white paper, Best Practices For Managing Records-Per-Block Settings, which describes how to set records per block to achieve optimal performance. For more information on size limits for storage areas, see Chapter 3, OpenEdge RDBMS Limits of the OpenEdge Data Management: Database Design handbook.

The information and tools provided herein are provided "as is" without warranty of any kind. Progress Software Corporation disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Progress Software Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Progress Software Corporation or its suppliers have been advised of the possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.

added by:
DB Struct Tool


XML Backbones

How to use Progress for Web Services and the new Service Oriented Architecture from a multi-platform perspective.

added by:
Geoff Crawford


Multi window management app using dynamic Smart Browser w/ Search

This is an example of an application with multiple window management and a dynamic smart browser with the search field option. A customised SDO populates a calculated field and performs some field population when a new row is added or created. Includes the following files: wMain,wOrder.w, wDept.w, dDept.w, dOrder.w

added by:
Kimberly Craven


Bar Graph Drawing on the Web

Bar graph drawing utiliity where you pass in a set of values and a graph is created in GIF format via fly to be referenced in a web page.


added by:
Geoff Crawford


waddwhere.w

This example shows the use the addQueryWhere and setQueryWhere functions in the SDO to make use of dynamic query functionality.

added by:
Kimberly Craven


Crystal OpenClient

This code enables Crystal Reports to connect to a Progress AppServer, run 4GL code on that AppServer, and use the resulting TempTable as data for a report layout. It works with Progress 9 and 10 (OpenEdge), and with Crystal Reports 9 or 10. Minimum requirement is Crystal Reports Advanced, this offers a Java connection.

added by:
Kimberly Craven


wCustomers.w

This example shows the use of the filter in the dynamic toolbar.

added by:
Kimberly Craven


Representing Group/Members Using a Temp-Table Approach

Business Application programming using Relational Data Structures in all environments GUI, Web and CHUI, almost always involve the representation of Groups and its Members. These Group/Member relationships could be a Group of Customers by Sales Region, the Users in a particular Security Group, the States that belong to a Country, etc. There are various approaches to presenting this association between Groups and its Members, depending on the nature of the application, the programming and UI environment, and other user requirements. One of the most common presentation methods, used under GUI, Web and CHUI environments is known as the Left-to-Right method. Under this presentation methodology, the user is presented with a list of all potential Members for a Group on the Left and the current selected Members in the Group on the Right. This article provides an easy to use Temp-Table approach to the Left-to-Right method, whereby the developer can simply replace the custom fields in the Temp-Table (in the example code) to satisfy the needs of his/her application.

added by:
Hansdip Bindra


wDataFilter.w

This example shows the use of the getDataHandle function along with a QUERY-PREPARE method call on the returned handle to set the query within the SDO.

added by: Kimberly Craven


wCustOrder.w

This example shows the use of a dynamic smart filter along with multiple SDO's.

added by:

Kimberly Craven


Comprehensive Approach to Field Level Validation/Security

The Event Driven UI Model is based on Widgets (Fields) Buttons, Fill-Ins, Combo-Boxes, etc., that reside in a Window (in Progress a Field Group, which in turn resides in a Frame, whose parent could be a Window). Thus, the lowest and most comprehensive level of information validation can only be done at the Field Level. Validation encompasses, both, the actual checking of the information, and also the Security associated with the Field. If the user is not allowed to work with certain Fields on the Window, then those Fields should not be enabled for that user, thereby, reducing the possibility of invalid information from entering into the Database. The Field Level Validation/Security Approach presented in the article is based on the use of SUPER-PROCEDURES (Internal Procedures in them) and associating them with the SESSION Handle, Persistent Triggers, Walking the Widget-Tree, PRIVATE-DATA of Widgets, PROGRAM-NAME(), Text Validation Files (.Val), and Temp-Tables.

added by:
Hansdip Bindra


wRepos.w

This example shows the use of the fetchRowIdent function to reposition a row within an SDO.


Profiler Control tool

The Profiler Control tool can be used to perform profiler analysis of a Progress based application. The Profiler Control tool is designed to simplify the profiling and analysis of the performance data that the Progress run-time executable generates. This tool is a complete rewrite of the performance profiling tool that ships with some version of Progress. This tool includes a GUI for simplifying the launching and stopping of procedures. It has the ability to detect whether Progress Dynamics is running and allow the launching of dynamic containers as well as static smart objects and other procedures. It includes all of the same information, but removes much of the complexity of the previous tool by removing the requirement for a database and the timing consuming loading of profile data. In addition to previous execution statics, more information has been added. This tool also includes added functionality that gives the user the ability to perform side-by-side compares and exporting of data to external programs. Refer to the included Profiler_Readme.doc for a complete description.


#
Syndicate content