1.6.11 LANSA Internal Tables
LANSA does not support the import and use of LANSA internal tables. The table layouts and the meaning of data values in these tables will change from time to time. LANSA does not publish the changes that have been made.
If you wish to provide features that LANSA does not currently provide by accessing the LANSA internal tables directly, you do so entirely at your own risk. When LANSA changes the LANSA internal tables it is entirely your responsibility to alter your application to behave appropriately.
Before you consider making changes to the LANSA internal tables, contact your product vendor to discuss your requirements.
Visual LANSA Developer Guide |
|
1. Introduction to Applications, Fields, Databases and the Repository |
|
1.1 Developer Roadmap |
|
1.1.1 Windows/Linux Development |
|
1.1.2 Web Development |
|
1.1.3 LANSA Mobile App |
|
1.1.4 IBM i Development |
|
1.1.5 Integration |
|
1.1.6 LANSA Open Development |
|
1.1.7 LANSA Client Development |
|
1.2 LANSA Architecture |
|
1.2.1 LANSA Product Architecture |
|
1.2.2 Centralizing Information in a Repository |
|
1.2.3 Repository and RDML |
|
1.2.4 Traditional Application Architecture |
|
1.2.5 Tiered Application Architecture |
|
1.2.6 LANSA Application Architecture |
|
1.2.7 LANSA is an Architecture |
|
1.3 LANSA Repository |
|
1.3.1 What is an Active Repository? |
|
1.3.2 What Goes into the LANSA Repository? |
|
1.3.3 Repository Benefits |
|
1.3.4 Controlling Repository Content |
|
1.4 LANSA RDML |
|
1.4.1 Why a 4GL / RDML? |
|
1.4.2 RDML Structures |
|
1.4.3 Programming Productivity |
|
1.4.4 Where is RDML Used? |
|
1.4.5 LANSA Application Templates |
|
1.4.6 LANSA Built-In Functions (BIF) |
|
1.4.7 "Compiling" RDML |
|
1.4.8 RDML Benefits |
|
1.4.9 RDMLX Benefits |
|
1.5 Creating Fields |
|
1.5.1 Getting Started with Repository Fields |
|
Field Naming Standards |
|
Corporate Data Dictionary Concept |
|
Before You Begin Checklist |
|
1.5.2 Developing with Fields |
|
How are Repository Fields Used? |
|
How to Create New Fields |
|
Steps for Completing Fields in Repository |
|
Copying Versus Reference Fields |
|
Reference Fields |
|
System Fields |
|
Field Considerations |
|
1.5.3 Field Rules and Triggers Development |
|
Types of Field Validation Rules |
|
Validation Rule Levels |
|
Field Rules/Triggers and the Object Access Module |
|
Field versus Table Level Rules |
|
1.5.4 Repository Help Text Development |
|
Types of Help Text |
|
How Help Text Can Be Used |
|
How to Create Field Help Text |
|
How to Create Process/Function/Form Help Text |
|
Repository Help Editor |
|
How to Use Special Characters |
|
How to Use Special Values |
|
1.5.5 System & Multilingual Variables Development |
|
System Variable Concepts |
|
Multilingual Text Variable Concepts |
|
1.5.6 Field Visualization Development |
|
Visualization Types |
|
Defining Field Visualizations |
|
Adding a Visualization |
|
Field with Several Visualizations |
|
Using a Field with Visualization |
|
Using Field Visualization in a List |
|
Differences between Field Visualization on a Form and in a List component |
|
Returning the Value from a Field Visualization |
|
Form Samples |
|
Edit Box |
|
Edit Box with Prompter |
|
Spin Edit |
|
TrackBar |
|
ProgressBar |
|
ComboBox |
|
CheckBox |
|
Image |
|
ImageAndText |
|
ListBox |
|
ButtonSet |
|
Reusable Part |
|
DateTime Picker |
|
Calendar |
|
List Samples |
|
Edit Box |
|
Edit Box with Prompter |
|
Spin Edit |
|
ComboBox |
|
CheckBox |
|
Image |
|
ImageAndText |
|
Reusable Part |
|
Miscellaneous |
|
UsePicklist |
|
NoMatchAction |
|
Field Visualization in Depth |
|
Fields as Components |
|
Field Class list |
|
Field variable values vs. Field Visualization Appearance |
|
Field variable default value vs. Field Visualization Picklist default item |
|
Field Visualization Q & A |
|
Dynamic Visualizations |
|
Visual Hosts and Dynamic Picklists |
|
Interfaces and monitors |
|
Prim_LM - Monitor |
|
Prim_DC.iMonitorSubject |
|
Prim_DC.iDynamicPicklist |
|
Prim_DC.iContextualSubject |
|
Examples of using Visualization Interfaces and Monitors |
|
Example 1 - Simple Hosted Part |
|
Example 2 - Simple Dynamic Picklist |
|
Example 3 – Linking Multiple Visualizations |
|
1.6 Creating Application Databases |
|
1.6.1 Getting Started with Database |
|
Modeling Databases |
|
Table Standards and Guidelines |
|
Before You Begin Checklist |
|
1.6.2 Developing Databases |
|
LANSA Table Concepts |
|
Types of Columns in a Table Definition |
|
How to Create Tables in LANSA |
|
Adding Real Fields to a Table |
|
Steps for Completing a Database in LANSA |
|
Table Definition Attributes |
|
1.6.3 Index Development |
|
Index Concepts |
|
How to Create Indexes |
|
Index Considerations |
|
Examples of Indexes |
|
Select/Omit Concepts |
|
1.6.4 Virtual Column Development |
|
Virtual Column Concepts |
|
Distinction between real and virtual columns |
|
Types of Virtual Columns |
|
Examples of Virtual Column Applications |
|
Input or Output Virtual Columns |
|
Steps to Create Virtual Columns |
|
Virtual Column Considerations |
|
1.6.5 Table Rules & Triggers Development |
|
Rule Concepts |
|
Rule Types |
|
Rule Hierarchy |
|
Understanding Rule Sequence |
|
What is Database Referential Integrity? |
|
Referential Integrity Example |
|
Triggers |
|
Trigger Points - When |
|
Trigger Conditions - If |
|
Trigger Functions |
|
Trigger Design Considerations |
|
LANSA Database Triggers |
|
Database Trigger Architecture |
|
Enable Database Triggers for a table |
|
What happens when a Database Trigger is executed? |
|
What is the database trigger environment user exit program? |
|
What are the limitations with LANSA DB Triggers? |
|
Other observations regarding LANSA Database Triggers |
|
1.6.6 Access Route Development |
|
Access Route Concepts |
|
Access Route Examples |
|
Access Routes in Personnel System Example |
|
Access Route Considerations |
|
1.6.7 Predetermined Join Column Development |
|
Predetermined Join Column Concepts |
|
PJC Examples |
|
Steps to Create a PJC |
|
Access Routes and PJCs |
|
PJC Considerations |
|
1.6.8 Batch Control Development |
|
Batch Control Concepts |
|
Batch Control Examples |
|
Steps for Defining Batch Control |
|
Batch Control Considerations |
|
1.6.9 Compiling Tables |
|
Make a Table Operational |
|
What is an OAM? |
|
What about Data? |
|
What to Recompile |
|
When To Recompile |
|
1.6.10 Imported Table Definitions |
|
Other Table Concepts |
|
Identity columns |
|
Handling of Timestamp or DateTime columns |
|
How BLOB and CLOB columns are handled by Table Import |
|
No additional LOB columns |
|
PC Other Tables |
|
RDML PC Other Table |
|
Handling of NULLs |
|
Handling of columns longer than 256 bytes |
|
Handling of large numeric columns |
|
Handling Unicode |
|
RDMLX Imported Tables |
|
Additional LOB columns |
|
Create RRNO Column |
|
LANSA Tables loaded as Imported tables |
|
Using SuperServer with PC Other Tables |
|
Using DEFINE_DB_SERVER to modify connection details |
|
Database-specific Notes |
|
Microsoft SQL Server |
|
SQL Server Express Limitations |
|
Microsoft Access |
|
Oracle |
|
IBM i RDMLX Other Tables |
|
Setting Other Table Import Options |
|
2. Creating Graphical User Interface Applications |
|
2.1 Introduction to Components and Desktop Applications |
|
2.1.1 You Work in a Graphical Editor |
|
2.1.2 You Create Powerful Graphical Interfaces |
|
2.1.3 You Use a Repository-Based Graphical Designer |
|
2.1.4 The Component Model |
|
2.1.5 RDMLX Is Extended RDML |
|
2.1.6 Move Existing Applications to Visual LANSA |
|
2.2 Component Basics |
|
2.2.1 Visual LANSA's Components |
|
2.2.2 Inheritance |
|
2.2.3 Components and Instances |
|
2.3 Event-Driven Programs |
|
2.3.1 Dynamic and Flexible Programs |
|
2.3.2 What Is Different Between Event-Driven and Procedural Programs? |
|
The Code Is Always Associated With a Component |
|
Modes Are Not Needed because Actions Are Performed Directly |
|
The Code for a Mode Often Becomes an Event Routine |
|
Sequence of Actions Is Free |
|
You Create the Interface Graphically |
|
2.3.3 How Is the Code Different in a Function and a Form? |
|
LANSA Function |
|
Visual LANSA Form |
|
Code Comparison |
|
2.3.4 A LANSA 'Work with' Function and Form |
|
2.3.5 RDML and RDMLX Programs |
|
2.4 Work with Components |
|
2.5 Create an Application |
|
Step 1. Create the Form |
|
Step 2. Create the Interface |
|
Step 3. Write the Code |
|
Step 4. Compile and run the Program |
|
2.6 Create Applications Using Templates |
|
2.7 Enrol Bitmaps and Icons |
|
2.8 Forms |
|
2.8.1 Title Bar Buttons and FrameStyle |
|
2.8.2 Minimizing, Maximizing and Restoring the Form |
|
2.8.3 Form's Position |
|
2.8.4 Icon |
|
2.8.5 Layout Manager |
|
2.8.6 Showing and Closing the Form |
|
2.8.7 Modal Forms |
|
Sample Modal Form |
|
2.8.8 Asking User to Confirm the Closing of a Form |
|
2.9 Controls |
|
2.9.1 Check Box |
|
2.9.2 Group Box |
|
2.9.3 Label |
|
2.9.4 Panel |
|
2.9.5 Push Button |
|
2.9.6 Radio Button |
|
2.9.7 Static |
|
2.9.8 Status Bar |
|
2.9.9 Tab Folder and Tab Sheets |
|
2.9.10 Timer |
|
2.9.11 Toolbar Button |
|
2.9.12 Picture and Sound Controls |
|
2.10 Lists, Tree Views, Grids and Graphs |
|
2.10.1 Combo Box |
|
2.10.2 Grid |
|
2.10.3 List Box |
|
2.10.4 Tree View |
|
Populating Tree Views |
|
Filling a Drill Down Tree View |
|
Filling a Complete Tree View |
|
Filling a Tree View on Demand |
|
Level and KeyPosition in Tree Views |
|
2.10.5 List View |
|
2.10.6 Defining a List-Type Component |
|
Hidden Columns |
|
Specifying the Column Width |
|
Sorting the Lists |
|
2.10.7 Filling a List-Type Component |
|
2.10.8 Working with Items in Lists |
|
Understanding selection and loss of selection in list views |
|
Understanding focus and loss of focus in list views |
|
Run-time Properties of Tree Items |
|
The Value of a List Item Is the Value of the Source Field |
|
Updating the Selected Item in a List |
|
Updating All Items in a List |
|
Deleting an Item from a List |
|
Dynamically Assigning Icons in a List View |
|
Creating a Desktop Menu Using Large Icons in List View |
|
Sorting List Views 1 |
|
Sorting List Views 2 |
|
Saving and Restoring a List from a File |
|
Special Lists: Graph |
|
Special Lists: Multiline Edit Box |
|
Error Handling in a Grid/List |
|
2.11 Tab Folder Framework |
|
2.11.1 Virtual Tab Folders |
|
2.11.2 Undocking and Docking Tab Sheets |
|
2.11.3 Closing a Tab Sheet |
|
2.11.4 Virtual Tab Folder Properties |
|
2.11.5 Autohiding Virtual Tab Folders |
|
2.11.6 Tab Framework Events and Methods |
|
2.11.7 Tab Folder Example Source |
|
2.12 Menus |
|
2.12.1 Creating Menus |
|
2.12.2 Accelerator Keys |
|
2.12.3 Shortcut Keys |
|
2.12.4 Things to Remember about Keyboard Access |
|
2.12.5 Writing the Menu Events |
|
2.12.6 Creating a Standard Menu Automatically |
|
2.12.7 Creating a Popup Menu |
|
2.13 Displaying Messages and Errors |
|
2.13.1 Status Bars |
|
2.13.2 Message Boxes |
|
2.13.3 Visually Showing Error States |
|
2.14 Multi-Form Applications |
|
2.14.1 Basic Rules for Multi-Form Applications |
|
2.14.2 A Two Form Application |
|
2.14.3 Create a Two Form Application |
|
2.14.4 Show Multiple Instances of FRMDETAIL |
|
2.14.5 Communication is always Between an Owner Form and a Member Form |
|
2.14.6 Why Are the Contents of a Form Hidden from Other Forms? |
|
2.14.7 Multi-Form Example Source Code |
|
Work with Employees Form |
|
Work with Employees Form with a Forms Collection |
|
Employee Details Form |
|
2.15 Reusable Parts |
|
2.15.1 Why use Reusable Parts? |
|
2.15.2 What Is Using a Reusable Part Like? |
|
2.15.3 When Should Reusable Parts Be Used? |
|
2.15.4 Create a Reusable Part |
|
Step 1. Create your Test Form |
|
Step 2. Create your Reusable Part |
|
Step 3. Use your Reusable Part in your Test Form |
|
Step 4. Add More Functionality to the Reusable Part |
|
Benefits of Reusable Parts |
|
2.15.5 User-Designed Controls |
|
2.16 Ancestor Components |
|
2.16.1 Form Ancestor |
|
Create an Ancestor Form |
|
Inherit from the Ancestor |
|
Change a Property in the Ancestor |
|
Override the Ancestor's Properties |
|
Redefine the Ancestor's Methods |
|
Customize the Inheriting Form |
|
Remove the Ancestor |
|
#STD_FORM vs #PRIM_FORM |
|
2.16.2 Button Ancestor |
|
Create a Button Reusable Part |
|
Use the Button Reusable Part |
|
Create another Button Reusable Part |
|
Use the Second Button Reusable Part |
|
2.16.3 Date Display Ancestor |
|
Create a Date Display Reusable Part |
|
Use the Date Display Reusable Part |
|
Create another Date Display Reusable Part |
|
Redefine the Ancestor's Methods |
|
Use the Inheriting Date Display Reusable Part |
|
2.16.4 Advanced Inheritance Topics |
|
Inherit User-defined Events, Methods and Properties |
|
Hide/Partly hide User-defined Events, Methods and Properties |
|
#Com_Owner, #Com_Ancestor and #Com_Self |
|
2.17 Collections |
|
2.17.1 Types of Collections |
|
2.17.2 LANSA Collections |
|
2.17.3 Keyed Collections |
|
Example 1: Create a Keyed Collection |
|
Example 2: Collections do NOT need to Be Keyed by Index |
|
Example 3: Collection to Manage Forms |
|
Factory and Collection Style Collections |
|
Example 4: Collection of Menu Items |
|
Example 5: Dynamically Create Buttons |
|
2.17.4 Other Optimized Collections |
|
Array Collection Example |
|
List Collection Example 1 |
|
List Collection Example 2 |
|
Sorted Array Collection Example |
|
2.17.5 Collection Programming Summary |
|
Add Items to Collections |
|
Access Collection Items |
|
FOR/ENDFOR |
|
Collection Properties |
|
Read-Only Access to Collections |
|
Collection Programming Example Source Code |
|
2.18 Referencing |
|
2.18.1 Dynamic Multi-Form Application |
|
Define the Reference |
|
Create the Reference |
|
Destroy the Reference |
|
Check that Reference Has Been Destroyed |
|
Dynamic Reference Forms Source Code |
|
2.19 Data Classes |
|
2.20 Using Common Dialogs |
|
2.20.1 Color Dialog Sample Form |
|
2.20.2 Save Dialog Sample Form |
|
2.20.3 Open Dialog Sample Form |
|
2.21 Property Sheets |
|
2.21.1 Property Sheet Basics |
|
Columns |
|
Rows (Entries) |
|
2.21.2 Picklists |
|
Set Up Picklists |
|
Create an Entry with Picklist |
|
Retrieve the Selected Picklist Item |
|
Picklist Code You Can Copy |
|
2.21.3 Property Sheet Example |
|
2.22 Keyboard and Mouse Components |
|
2.23 Drag and Drop |
|
2.23.1 Payload |
|
2.23.2 Example 1: Move Employees in a Tree |
|
2.23.3 Example 2: Move Employees between Two Forms |
|
2.24 What the Application will look like |
|
2.24.1 Layout Managers |
|
Table Layout Manager |
|
Table Definition |
|
Creating and Modifying a Table Layout Definition |
|
Divisions – Rows, Columns and Dividers |
|
Laying Out a Control |
|
Layout Items |
|
Positioning a control using Row, Column and Alignment |
|
Flowing Controls |
|
Sizing in the Designer |
|
Reusable Parts vs Webpage and Forms |
|
Margins |
|
Row and Column Span |
|
Content Sizing |
|
Multiple Layouts |
|
Nested Layouts, Panels and Reusable Parts |
|
Responsive Applications |
|
Other Layout Managers |
|
Attachment Layout Manager |
|
Flow Layout Manager |
|
Grid Layout Manager |
|
Split Layout Manager |
|
Specify the Layout Manager |
|
Set the Layout Properties |
|
Set the Properties of the Child Components |
|
Display the Layout Manager |
|
The Layout Manager Definitions |
|
Attachment Layout |
|
Split Layout |
|
Grid Layout |
|
Flow Layout |
|
Run Applications with Layout Managers |
|
2.24.2 Themes |
|
System Themes |
|
How Do Themes Work? |
|
Theme Definition |
|
Draw Styles |
|
Defining a Theme |
|
Applying a Theme to an Application |
|
Using Themes |
|
Applying Themes to Controls |
|
Ad Hoc Styles? |
|
2.24.3 DirectX Styles |
|
Defining Styles |
|
Using Styles |
|
MouseOverStyle and MouseOverStyles Properties |
|
PrivateStyle and PrivateStyles Properties |
|
Runtime Styles |
|
2.24.4 Visual Styles |
|
The Scope of Visual Styles |
|
Shipped Visual Styles |
|
Set the Default Visual Style for New Forms |
|
Create or Edit a Visual Style |
|
Set Colors |
|
Preview your Visual Style |
|
2.25 Remember the User's Choices |
|
2.26 Help Text and Documenting Components |
|
2.26.1 Writing Help Text |
|
2.26.2 iHelpHandler Interface |
|
2.26.3 Documenting Components |
|
2.27 GUI Guidelines |
|
2.27.1 Correct Use of Controls |
|
2.27.2 Rules for Navigation |
|
2.27.3 Visual Design |
|
2.27.4 Tab Sequence and Defaults |
|
2.27.5 Hints (ToolTips) |
|
2.27.6 Loading Large Amounts of Data |
|
2.27.7 Casual and Power Users |
|
2.27.8 Plan Your Application |
|
2.28 Converting an Existing Application |
|
2.28.1 Structure |
|
2.28.2 Steps Required for Transforming an Existing Application |
|
2.28.3 Converting a Work with... Type of Application |
|
2.28.4 Showing Objects that Contain Lots of Details |
|
2.29 Repository Resources |
|
2.29.1 ActiveX Controls |
|
Before You Decide to Use an ActiveX Control |
|
Obtain ActiveX Controls |
|
Download and Install an ActiveX Control |
|
Enrol an ActiveX Control in the Repository |
|
Pre-Enrolled ActiveX Components |
|
View the ActiveX Control |
|
ActiveX Terminology |
|
Using an ActiveX Control |
|
ActiveX Error trapping |
|
Integrate with ActiveX-Enabled Applications |
|
Enrol an ActiveX-Enabled Application |
|
Access the Application's Objects |
|
Documents Collection |
|
ActiveDocument Property |
|
Important Note about Syntax with ActiveX Collections |
|
Properties of Type IDispatch |
|
ActiveX Wrapping |
|
Prerequisites |
|
Create an ActiveX Component |
|
ActiveX Examples |
|
General Setup Tasks |
|
ActiveX Example 1 - Show a Form |
|
ActiveX Example 2 - Embed a Reusable Part |
|
ActiveX Example 3 - Use Components as Business Objects |
|
ActiveX Example 4 - Integrating Microsoft Word |
|
Step 1. Reference the Application |
|
Step 2. Set Properties |
|
Step 3. Use the Add Method |
|
Step 4. Use Methods to Insert Text |
|
Step 5. Print Method |
|
Step 6. Show a Word Dialog |
|
Step 7. Get a Return Value |
|
Integrating Microsoft Word Example Source Code |
|
Troubleshooting |
|
Visual Basic 6.0 to Visual Basic.NET Syntax Differences |
|
Add References to the LANSA Objects |
|
Initialize the Session |
|
Create a Visual LANSA Component |
|
Imbed a Visual LANSA Component on a Visual Basic.NET Form |
|
2.29.2 .NET Components |
|
Before You Decide to Use a .NET Component |
|
Restrictions and Naming Conventions for .NET Component Classes |
|
Obtaining .NET Framework Components |
|
Enrol a .NET Framework Component in the Repository |
|
Using a .NET Component |
|
.NET Component Features |
|
.NET Collections |
|
.NET Component Sample Code |
|
Deploying a Component |
|
2.29.3 External Resources |
|
Register Multiple External Resources |
|
Edit External Resources |
|
3. Creating Web Applications with WAMs |
|
4. Creating 5250 Applications |
|
4.1 Getting Started with Function Development |
|
4.1.1 Setting Standards & Practices |
|
4.1.2 Process & Function Naming |
|
4.1.3 RDML Practices |
|
4.1.4 Process & Function Guidelines |
|
4.1.5 Before You Begin Checklist |
|
4.2 Developing with Processes and Functions |
|
4.2.1 What is a Process? |
|
4.2.2 Process Style |
|
4.2.3 What is a Function? |
|
4.2.4 How to Create Processes |
|
4.2.5 How to Create Functions |
|
4.2.6 Steps for Building Function Applications |
|
4.2.7 Attached Processes/Functions Concepts |
|
4.2.8 Function Control Table Concepts |
|
4.2.9 Special Entries Concepts |
|
4.2.10 Process Parameter Concepts |
|
4.2.11 Action Bar Concepts |
|
4.3 Sample RDML Programs |
|
4.3.1 Adding Records to a File (One at a Time) |
|
4.3.2 A Simple Inquiry |
|
4.3.3 Modifying the Simple Inquiry to Do Maintenance |
|
4.3.4 Modifying the Simple Inquiry to Do It All |
|
4.3.4.1 Function ADD - To Add New Records to CUSMST |
|
4.3.5 Browsing and Selecting |
|
4.3.6 A Multiple File Inquiry |
|
4.3.7 Adding Records to a File (Many At a Time) |
|
4.3.8 Minimizing Database I/Os |
|
4.3.8.1 Initial Example |
|
4.3.8.2 First Improved Example |
|
4.3.8.3 Second Improved Example |
|
4.3.9 Using the KEEP_LAST Parameter |
|
4.3.10 Generalized Subroutine |
|
4.3.11 Page At a Time Scrolling (Forward Only) |
|
4.3.11.1 Initial Example |
|
4.3.11.2 More Efficient Example |
|
4.3.12 Page at a Time Scrolling (Backwards & Forwards) |
|
4.4 Producing Reports Using LANSA |
|
4.4.1 Using the DEF_LINE Command |
|
4.4.2 Using the DEF_HEAD Command |
|
4.4.3 Numbering Report Pages |
|
4.4.4 Using the DEF_FOOT Command |
|
4.4.5 Using a Leading DEF_BREAK Command |
|
4.4.6 Using a Trailing DEF_BREAK Command |
|
4.4.7 Printing on Multiple Lines |
|
4.4.8 Submitting Reports to Batch |
|
4.4.9 Reporting Q & A |
|
4.5 Application Templates |
|
4.5.1 Using Application Templates |
|
4.5.1.1 What is a Template? |
|
4.5.1.2 How are Templates Used? |
|
4.5.1.3 LANSA Shipped Templates |
|
4.5.1.4 Steps for Using Templates |
|
4.5.1.5 Tips for Using Templates |
|
4.5.1.6 Modifying Templates |
|
4.5.2 Creating Application Templates |
|
4.5.2.1 Introduction to Template Code |
|
4.5.2.2 Template Commands |
|
4.5.2.3 Template Special Variables |
|
4.5.3 Application Template Program Examples |
|
4.5.3.1 Data Entry Program |
|
4.5.3.2 Header/Detail Style Inquiry Template |
|
Appendix A - ActiveX Example Source Code |
|
Source Code ActiveX Example 1 - Show a Form |
|
Source Code ActiveX Example 2 - Embed a Reusable Part |
|
Source Code ActiveX Example 3 - Using Components as Business Objects |
|