Try OpenEdge Now
skip to main content
Programming Interfaces
External Program Interfaces : Providing Help for OpenEdge Applications : Online help systems

Online help systems

While field-level help in the form of status messages and ToolTips offers a first level of information for end users, the information it provides is limited. A help system can provide much larger amounts of information to the end user with a much more sophisticated delivery mechanism.
From the end user's perspective, there are two general ways to access information in a help system:
*Context sensitivity — Context-sensitive help is information that is primarily accessed "on demand." Typically, the end user clicks a help button in a dialog box, presses a help key (usually F1), or clicks the question mark icon to access a help topic that explains the current status or user interface of an application.
*Navigation — A help file can be opened in such a way that the end user is not immediately presented with a specific help topic. For example, the Help Topics item on the Help menu of an application window opens a help viewer that allows the end user to access help topics in several different ways.
Help topics containing conceptual information or reference information are typically accessible only through navigation.
Individual help topics can also contain links to other topics that provide related information in the form of definitions and other help topics. Also, help viewer windows usually implement features that allow end users to navigate among help topics in various ways.
In a help system, help information is stored in a help file that is external to the application's source code. A help author creates the help file, which is divided into chunks of information called help topics. An application programmer uses the SYSTEM-HELP statement to direct Windows to either display a specific help topic in a help viewer window, or allow the end user to navigate through the help topics via the help file's table of contents or search program.
While a help system should appear to end users as a seamless part of an OpenEdge application, the ABL SYSTEM-HELP statement actually calls a separate Windows application. For Microsoft HTML help (.chm) files it calls hh.exe, which launches the Microsoft HTML Help Viewer.
For information about what you need to create and run Microsoft HTML help applications, go to the Microsoft Developer's Network Web site ( and search for HTML help.
Because help information is stored in an external help file or files, a help system requires a coordinated effort of information design and application programming. The help author codes, compiles, and tests the help files, and the application programmer adds the appropriate ABL code to the application to invoke the help viewer and display the appropriate help topic when the end user requests help.
A help system consists of three elements:
*Help information — Text that assists users so that they can understand and use an application. The help information for an application resides in one or more help files and is displayed in chunks or units of information called help topics. Each help topic contains information about a single subject. For example, a help topic might describe a dialog box in your application, define a term, give instructions on how to perform a task, or describe an ABL language element. Each help topic is associated with a unique identifier, called a topic ID.
Both types of help files are generated by compiling a set of help source files. The HTML Help (.chm) files are compiled HTML files. The Windows Help files (.hlp) are compiled binary files.
For more information on how to organize and write help information, go to the Microsoft Developer's Network Web site (
*Help engine — The executable file (hh.exe for HTML help or winhelp32.exe in Windows Help) displays help topics in a help viewer that allows the user to navigate among help topics in a help file.
For more information about the help engines, go to the Microsoft Developer's Network Web site (
*Help calling interface — The code in an application that allows users to access help information. It calls the help viewer and determines which help topic to display. Users can request and receive help information using a help keystroke, a help button, or a help menu.
The following sections describe in detail how to create a help calling interface for an OpenEdge application.
* The SYSTEM-HELP statement
* Accessing online help from the menu bar
* Calling online help with a Help button
* Accessing online help with the help key
* Quitting help when exiting the application