documentation.HELP! LANSA Application Design Documentation

8 Processing Arrays

LANSA Application Design

previous page next page

8. Processing Arrays

8.1 Introduction

8.2 Technique 1 - Virtual Fields and a Working List

8.3 Technique 2 - Using the SUBSTRING Command

8.4 Technique 3 - Using the DEF_ARRAY Command

previous page start next page

Menu

  • Homepage

Table of contents

  • Application Design
    • About this Guide
    • 1. Object Naming Standards
      • 1.1 Package Development and Naming Standards
    • 2. The Data Dictionary
      • 2.1 Field Naming Conventions
      • 2.2 Some Dictionary Guidelines
      • 2.3 Portability Considerations
    • 3. The Database
      • 3.1 File Naming Conventions
      • 3.2 Some Database Guidelines
      • 3.3 Portability Considerations
    • 4. Processes and Functions
      • 4.1 Before Coding RDML Processes and Functions
      • 4.2 Process and Function Naming Conventions
      • 4.3 Break Business Functions Down into Processes and Functions
        • 4.3.1 For Traditional Application Systems
        • 4.3.2 For Object/Action Orientated Designs (Action Bar Systems)
      • 4.4 Build Menu Structures
      • 4.5 Use Application Templates
      • 4.6 Use an Exchange List and the OPTION(*ALWAYS) Exchange Option
      • 4.7 A Message for every Situation
      • 4.8 Top Down and Structured Programming Techniques
        • 4.8.1 Paint Screen and Report Layouts Last
      • 4.9 Portability Considerations
    • 5. Producing Reports
      • 5.1 Using Working Lists for Summary Reports
      • 5.2 Producing Multiple Reports in One Pass over a File
      • 5.3 Online and Batch Report Production
      • 5.4 Writing More Flexible Reporting Programs Using the OPEN Command
      • 5.5 Overriding Printer File Attributes using a Report Controller
      • 5.6 Portability Considerations
    • 6. Pop-up Windows
      • 6.1 Locating & Sizing Pop-up Windows
      • 6.2 The + in Pop-up Windows
      • 6.3 Cursor Location in Output Only Pop-up Windows
      • 6.4 Flickering Windows and Program Efficiency for Pop-Up Windows
      • 6.5 Using Multiple Pop-up Windows
    • 7. Prompt Key Processing
      • 7.1 What is PROMPT?
      • 7.2 What Can the Prompt Key Offer to a System Designer
      • 7.3 The PROMPT_KEY Parameter
      • 7.4 Prompt Key Processing Programs
      • 7.5 What Happens When the PROMPT Key is Used
      • 7.6 The Simplest Type of Prompt Key Processing
        • 7.6.1 More Complex Prompt Key Processing
      • 7.7 Even More Complex Prompt Key Processing
    • 8. Processing Arrays
      • 8.1 Introduction
      • 8.2 Technique 1 - Virtual Fields and a Working List
      • 8.3 Technique 2 - Using the SUBSTRING Command
      • 8.4 Technique 3 - Using the DEF_ARRAY Command
    • 9. Action Bars and Pull Down Menus
      • 9.1 What Is an Action Bar & Pull Down Menu?
      • 9.2 Overview of Action Bar Layout And Processing Logic
      • 9.3 Overview of Pull Down Layout And Processing Logic
      • 9.4 CUA 1989 Considerations and Commitments
      • 9.5 The LANSA Implementation of Action Bars
      • 9.6 The Action Bar Control Table
        • 9.6.1 Pull Down Definition (for Each Action Bar Option Defined)
      • 9.7 Invoking an Action Bar as a Process
      • 9.8 Using an Action Bar From a Function
      • 9.9 Exit and Cancel Key Handling in Action Bars
      • 9.10 Switching to/from Action Bar Logic
      • 9.11 Action Bar Accelerator Keys
      • 9.12 Action Bar Help Processing
      • 9.13 Action Bar Security Considerations
      • 9.14 Action Bar Application Design Considerations
        • 9.14.1 Applications Least Suitable for Action Bar Implementation
        • 9.14.2 Applications Most Suitable for Action Bar Implementation
      • 9.15 Architecture of Action Bars
      • 9.16 Action Bar Panel Design Considerations
      • 9.17 Action Bar Programming Considerations
      • 9.18 Action Bar Programming Examples with Frequently Asked Questions
        • 9.18.1 Sample Program: Selecting An Object
        • 9.18.2 Sample Program: Displaying Details of an Object
        • 9.18.3 Sample Program: Changing an Object
        • 9.18.4 Sample Program: All 3 Functions in One Program
      • 9.19 Action Bars: Another Book You Must Read
    • 10. Examples of using LANSA
      • 10.1 Handling Missing Records Simply
      • 10.2 Text String Processing
      • 10.3 Temporary Work Files
      • 10.4 Page at a Time Scrolling
      • 10.5 Left to Right Scrolling / "Subfile" Folding
      • 10.6 Saving and Restoring Field Values
      • 10.7 Validation Subroutines
    • 11. Application Performance on IBM i
      • 11.1 Macro Performance Factors and Micro Performance Factors
      • 11.2 Interactive, Batch and Overnight Processing
      • 11.3 Using Working Lists and the KEEP_LAST Parameter
      • 11.4 Keeping Heavily Used Files Open
      • 11.5 Using the OPEN Command Instead of a Logical View to Order Data
      • 11.6 Other File Opening Considerations
      • 11.7 The FUNCTION Command
      • 11.8 Clean Up Considerations for Heavy Usage Functions
      • 11.9 Using *DBOPTIMIZE / *DBOPTIMISE
      • 11.10 PAG Trimming
      • 11.11 Execution and Security Settings
        • 11.11.1 Setting the System Run Time Locking Setting Off
        • 11.11.2 Turning Function Level Security Checking Off
        • 11.11.3 Turning All Process and Function Security Checking Off
        • 11.11.4 Turning All File Access Security Checking Off
      • 11.12 People and Machine Performance - Some Things to Consider
      • 11.13 Co-ordinate System Settings
      • 11.14 Some Database Design Considerations
      • 11.15 Some Functional Design Considerations
      • 11.16 Some Programming Considerations
      • 11.17 IBM i Authority Checking
      • 11.18 End User And Developer Machines
      • 11.19 Team Sizes
      • 11.20 Education
      • 11.21 Attitude and Commitment
      • 11.22 Work Practices
      • 11.23 Unlearning
      • 11.24 Loss of 3GL Skills
      • 11.25 Signs of Trouble
      • 11.26 Large Numbers - Approach with Caution
      • 11.27 Estimating Application Performance by Running an Application
      • 11.28 Estimating Application Performance by Calculating an ERUF
        • 11.28.1 The Recommended ERUF Ranges are for BUSY Production Machines
        • 11.28.2 ERUF Values are NOT Response Times
        • 11.28.3 Associating ERUF Values With Response Times is a MAJOR Mistake
        • 11.28.4 ERUF Values for Batch Transactions do NOT indicate Elapsed Time
        • 11.28.5 Realistic Estimates are Important
        • 11.28.6 Recommended ERUF Ranges
        • 11.28.7 A High ERUF Value Does Not Mean That Your Transaction Is Invalid
        • 11.28.8 ERUF Calculation Table
      • 11.29 Breakdown of RDML Commands into Resource Groups
      • 11.30 Breakdown of Commonly Used Built-in Functions into Resource Groups
    • 12. IBM i SAA/CUA Implementation
      • 12.1 LANSA SAA/CUA Overview
      • 12.2 SAA/CUA Partitions
      • 12.3 SAA/CUA Panel Elements
      • 12.4 SAA/CUA Panel Element Attributes
      • 12.5 SAA/CUA Function Key Assignments
      • 12.6 SAA/CUA Process Menus
      • 12.7 SAA/CUA Help Text
      • 12.8 SAA/CUA User Defined Panels
      • 12.9 SAA/CUA Function Key Use
    • 13. Generated Code C and SQL/ODBC Considerations
      • 13.1 Overview
      • 13.2 Object Naming Under Windows
      • 13.3 Process Name Truncation and Duplicate Object Names
      • 13.4 Automatic Renaming for SQL/ODBC
      • 13.5 Accessing the Generated C Code
      • 13.6 Handling Relative Record Numbers
      • 13.7 Renumbering Relative Record Numbers
      • 13.8 U_TEXT Strings and .UTX Files
      • 13.9 The SLLLLOOO & DLLLLOOO.DAT Tables
      • 13.10 Things That May Be Different
      • 13.11 ASCII Versus EBCDIC Data Collating Sequences
      • 13.12 Commitment Control
        • 13.12.1 Using Mixed Mode Commitment Control
      • 13.13 SQL/ODBC Grammar: Keyword Conflicts
        • 13.13.1 Reserved Keywords – SQL/ODBC
      • 13.14 General ODBC Driver Limitations
    • 14. Portability Specifics
      • 14.1 Use of Hex Values, Attributes, Hidden/Embedded Decimal Data, *LOVAL and *HIVAL
        • 14.1.1 The Meaning of *NULL
      • 14.2 IBM i Emulated Features
        • 14.2.1 IBM i Defined Data Areas
        • 14.2.2 *AUTONUM and *AUTOALP System Variables (Data Areas)
        • 14.2.3 *DTASSSLLLXXXXXXXXXX System Variables (Data Areas)
        • 14.2.4 Emulation of the *LDA Data Area
        • 14.2.5 Data Areas and Other LANSA Features
        • 14.2.6 The DC@A08 Data Area and the SAVE_LIST Built-In Function
        • 14.2.7 Guidelines, Rules and Limitations that Apply when Using the DASO=F Parameter
        • 14.2.8 Array Index Values and Process/Overlay Handling
      • 14.3 Calling 3GL Programs / DLLs / Shared Objects
      • 14.4 3GL Virtual Code
      • 14.5 Additional Notes
      • 14.6 User Defined Messages
    • 15. LANSA Limits
    • 16. Internationalization with Unicode
      • 16.1 Unicode Support in LANSA
        • 16.1.1 Unicode Field Types
        • 16.1.2 Other Files
        • 16.1.3 Intrinsic Functions
        • 16.1.4 BIFs and Unicode
        • 16.1.5 Web Application Modules (WAMs)
        • 16.1.6 Multilingual Descriptions
      • 16.2 Developing New Applications with Unicode
        • 16.2.1 Field types and Language-specific data
        • 16.2.2 Types of LANSA Applications
      • 16.3 Modifying Existing Applications to use Unicode
        • 16.3.1 RDML Functions
        • 16.3.2 LANSA for the Web
        • 16.3.3 Windows Optimized applications
        • 16.3.4 Other Files with SUNI Fields
    • 17. Client/Server Applications
      • 17.1 The Basic Client Model
      • 17.2 Basic Client/Server Models
      • 17.3 Using ODBC in a Client/Server Model
      • 17.4 Using LANSA SuperServer
      • 17.5 Designing Client/Server Applications
      • 17.6 Client/Server Applications - Myths, Legends and Expectations
      • 17.7 Performance Issues
    • 18. Icons and Bitmaps
      • 18.1 The Importance of Standards and Guidelines for Icons and Bitmaps
      • 18.2 Using Icons and Bitmaps on a Process Menu
      • 18.3 How Icons and Bitmaps are Associated on Process Menus
      • 18.4 Using Icons on a Toolbar
      • 18.5 How Icons Are Associated and Presented on Toolbars
      • 18.6 The X_ICOBMP.DAT Defaulting File
      • 18.7 Frequently Asked Questions about Icons and Bitmaps
    • 19. Create Your Own Built-In Functions
      • 19.1 Create your own 3GL Built-In Functions on IBM i for RDML Functions
        • 19.1.1 3GL Parameters
        • 19.1.2 Naming Conventions for 3GL BIF on IBM i
        • 19.1.3 Steps to Create 3GL Built-In Functions on IBM ii
        • 19.1.4 Example - Define a Built-In Function as a 3GL Program
        • 19.1.5 Example - Define a Built-In Function as a 3GL Subroutine
        • 19.1.6 Package 3GL Built-In Functions for Distribution
        • 19.1.7 Install Other Vendor 3GL Built-In Functions
      • 19.2 Create Your Own 3GL Built-In Functions on Windows/Linux/IBM i
        • 19.2.1 Assumptions
        • 19.2.2 Warnings
        • 19.2.3 Naming Conventions for 3GL BIFs on Windows/Linux
        • 19.2.4 Steps to Create 3GL Built-In Functions on Windows/Linux/IBM i
          • Compile your Built-In Function on Windows
          • Define Built In Functions with a Visual Studio Wizard
            • Install the Wizard
            • Create a Visual Studio Project based on the Wizard
            • Modify DLL Version Information
            • Support in Visual LANSA 13.0 and earlier
            • Support for Visual Studio 2012 and later
          • Compile your Built-In Function on Linux
          • Compile your Built-In Function on IBM i
          • 3GL Program Rules and Guidelines
        • 19.2.5 Example - A Simple Averaging Function
        • 19.2.6 Example - Manipulate an RDML Working List
        • 19.2.7 Example - Manipulate an RDMLX Working List
        • 19.2.8 Shipped U_BIF Macros
        • 19.2.9 U_BIF Macros used in Static or Internal Functions
      • 19.3 Create Your Own RDML Built-In Functions (all platforms)
        • 19.3.1 Conformance Checklist for Built-In Functions written in RDML
        • 19.3.2 RDML Naming Conventions
        • 19.3.3 Built-In Function Argument
        • 19.3.4 Built-In Function Return Value
        • 19.3.5 Steps to Create RDML Built-In Functions
        • 19.3.6 How an RDML Built-In Function defines the BIF
          • Definition File Layouts
            • DC@F47 - Built-In Function Definition
            • DC@F48 - Built-In Function Argument/Return Value Definition
        • 19.3.7 RDML Built-In Function Tips and Techniques
        • 19.3.8 Example - Define a BIF as an RDML Function
        • 19.3.9 Package and Deploy RDML BIFs
          • Package RDML Built-In Functions for Distribution (IBM i only)
          • Install Other Vendor RDML Built-In Functions (IBM i only)
          • Package Built-In Functions for Deployment (Windows/Linux)
      • 19.4 Built-In Function Sample Form
      • 19.5 Built-In Function Skeletons
        • 19.5.1 RPG/400 and ILE Skeleton Program
        • 19.5.2 Control Language (CL) Skeleton
        • 19.5.3 Subroutine Skeleton
        • 19.5.4 C Skeleton Program
    • 20. Application Templates
      • 20.1 Who Should Write Application Templates?
        • 20.1.1 Application template programming
        • 20.1.2 Responsibility
      • 20.2 The Templates Shipped with LANSA
      • 20.3 Application Template Commands

Get in touch

Submit feedback about this site to:

  • [email protected]

© documentation.help. Design: rehmann.co.