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