ibi™ WebFOCUS® App Studio Online Help
  Introducing ibi™ WebFOCUS® App Studio
    What is ibi WebFOCUS App Studio?
    Launching ibi WebFOCUS App Studio
    Documentation Overview
  Navigating in ibi™ WebFOCUS® App Studio
    The ibi WebFOCUS App Studio Interface
    Initiating ibi WebFOCUS App Studio
    Opening the Hamburger Menu of File-Related Commands
    Accessing Frequently Used Commands
    Developing Applications in the Canvas Area
    Accessing Features With the Ribbon
    Working With the Environments Tree Panel
    Working With the Environments Detail Panel
    Viewing File and Folder Properties
    Editing Areas of Functionality Using the View Tabs
    Customizing the Panels
  Creating Reports
    Building Reports Overview
    Report Types
    Launching the Report Wizard
    Accessing Reporting Components
    Creating Reports Using the Report Canvas
    Creating Precision Reports
    Joining Data
    Blending Data
    Styling Reports
    Linking Reports with Auto Linking and Auto Drill
    Reporting Syntax Summary
  Creating Charts and Visualizations
    Chart Types
    Launching the Chart Wizard
    Creating Visualizations
  Creating Procedures
    Using the Procedure View Panel
    Using Dialogue Manager
    Displaying Data Sources
  Creating HTML Pages
    Launching the HTML/Document Wizard
    Accessing HTML Page Components
    Creating a Widget to Autoplay Control Values
    Using Parameters
    Viewing Object Attributes
    Modifying Object Population Settings
    Using Tasks & Animations
    Working with Requests & Data Sources
    Displaying Applications in Different Languages
    Specifying Browser Defaults
    Chaining in the HTML Canvas
    Using JavaScript Code with HTML Canvas Pages
    Creating Responsive Web Pages
    Designing Content for Smartphones
    Cascading Style Sheet Class Mapping List
  Creating Documents
    Launching the HTML/Document Wizard
    Accessing Document and In-Document Analytic Dashboard Components
    Previewing the Document Canvas
    Editing Document Canvas Properties
     Supporting Template Masters and Slide Layouts in ibi WebFOCUS App Studio-Generated Presentations
  Creating Maintain Data Applications
    Using the Maintain Data App
    Using the Tasks & Animations Panel
    Using the Maintain Data Editor
    Using Functions in Procedures
    Using Variables in Procedures
    Using Data Source Stacks in Procedures
    Using Import Modules
    Executing Other Procedures
    Persistent and Non-Persistent Maintain Data Applications
     Asynchronous Maintain Data Applications
    Migrating Legacy Maintain Procedures to Maintain Data
  Creating Esri Maps
    Illustrating Trends
    Using the ibi WebFOCUS Esri HTML5 Viewer
    Creating an Esri Component on an HTML Page
    Using Unified Geographic Roles
    Configuring a Map Data Layer
    Adding a Demographic Layer to a Map
    Adding an RSS Feed to an Esri Map
    Using Map Widgets
    Configuring the Map Menu
    Using IbComposer Functions to Invoke Map Menu Options
    Configuring Layer Visualizations
    Configuring Symbology for a Data Layer
    Configuring Symbology for a Point Data Layer
    Configuring Symbology for a Polygon Data Layer
    Configuring Symbology for a Line Data Layer
    Summary of Symbology and Visualizations by Layer Type
    Refreshing Markers on an ESRI Map Without Refreshing the Entire Map
    Retrieving the Esri Map Viewer Current Extent Coordinates as Variables
    Configuring Maps to Interact With Other Components
    Adding Before Load and After Load Events
    Configuring Geographic Information
    Adding an Esri Proxy URL
    Installing and Configuring Esri on Premise
  Working With Source Control
    Using Source Control in ibi WebFOCUS App Studio
    Microsoft Team Foundation Server Requirements and Configuration
  Creating, Viewing, and Editing Source Syntax
    Accessing the Text Editor
  Selenium Browser Support
    Selenium Browser Tiers
    Updating the Selenium Software and Driver Executables
  Troubleshooting
    Troubleshooting Tips
    Troubleshooting Tools
  Simplified Analytic Functions
    PARTITION_AGGR: Creating Rolling Calculations
    PARTITION_REF: Using Prior Field Values in Calculations
  Character Functions
    Character Function Notes
    ARGLEN: Measuring the Length of a String
    BITSON: Determining If a Bit Is On or Off
    BITVAL: Evaluating a Bit String as an Integer
    BYTVAL: Translating a Character to Decimal
    CHKFMT: Checking the Format of a String
    CTRAN: Translating One Character to Another
    CTRFLD: Centering a Character String
    EDIT: Extracting or Adding Characters
    GETTOK: Extracting a Substring (Token)
    LCWORD: Converting a String to Mixed-Case
    LCWORD2: Converting a String to Mixed-Case
    LCWORD3: Converting a String to Mixed-Case
    LJUST: Left-Justifying a String
    LOCASE: Converting Text to Lowercase
    OVRLAY: Overlaying a Character String
    PARAG: Dividing Text Into Smaller Lines
    PATTERN: Generating a Pattern From a String
    POSIT: Finding the Beginning of a Substring
    REVERSE: Reversing the Characters in a String
    RJUST: Right-Justifying a Character String
    SOUNDEX: Comparing Character Strings Phonetically
    SPELLNM: Spelling Out a Dollar Amount
    SQUEEZ: Reducing Multiple Spaces to a Single Space
    STRIP: Removing a Character From a String
    STRREP: Replacing Character Strings
    SUBSTR: Extracting a Substring
    TRIM: Removing Leading and Trailing Occurrences
    UPCASE: Converting Text to Uppercase
  Simplified Character Functions
    CHAR_LENGTH: Returning the Length in Characters of a String
    CONCAT: Concatenating Strings After Removing Trailing Blanks From the First
    DIGITS: Converting a Number to a Character String
    LAST_NONBLANK: Retrieving the Last Field Value That is Neither Blank nor Missing
    LOWER: Returning a String With All Letters Lowercase
    LPAD: Left-Padding a Character String
    LTRIM: Removing Blanks From the Left End of a String
    POSITION: Returning the First Position of a Substring in a Source String
    REGEX: Matching a String to a Regular Expression
    REPLACE: Replacing a String
    RPAD: Right-Padding a Character String
    RTRIM: Removing Blanks From the Right End of a String
    SPLIT: Extracting an Element From a String
    SUBSTRING: Extracting a Substring From a Source String
    TOKEN: Extracting a Token From a String
    UPPER: Returning a String With All Letters Uppercase
  Simplified Conversion Functions
    PHONETIC: Returning a Phonetic Key for a String
    TO_INTEGER: Converting a Character String to an Integer Value
    TO_NUMBER: Converting a Character String to a Numeric Value
  Data Source and Decoding Functions
    DECODE: Decoding Values
    LAST: Retrieving the Preceding Value
  Date Functions
    AYM: Adding or Subtracting Months
    AYMD: Adding or Subtracting Days
    CHGDAT: Changing How a Date String Displays
    DA Functions: Converting a Legacy Date to an Integer
    Overview of Date Functions
    Using Standard Date Functions
    Using Legacy Date Functions
    DATEADD: Adding or Subtracting a Date Unit to or From a Date
    DATECVT: Converting the Format of a Date
    DATEDIF: Finding the Difference Between Two Dates
    DATEMOV: Moving a Date to a Significant Point
    DATETRAN: Formatting Dates in International Formats
    DMY, MDY, YMD: Calculating the Difference Between Two Dates
    DOWK and DOWKL: Finding the Day of the Week
    DPART: Extracting a Component From a Date
    DT Functions: Converting an Integer to a Date
    FIQTR: Obtaining the Financial Quarter
    FIYR: Obtaining the Financial Year
    FIYYQ: Converting a Calendar Date to a Financial Date
    GREGDT: Converting From Julian to Gregorian Format
    JULDAT: Converting From Gregorian to Julian Format
    TODAY: Returning the Current Date
    YM: Calculating Elapsed Months
  Date-Time Functions
    Using Date-Time Functions
    HADD: Incrementing a Date-Time Value
    HCNVRT: Converting a Date-Time Value to Alphanumeric Format
    HDATE: Converting the Date Portion of a Date-Time Value to a Date Format
    HDIFF: Finding the Number of Units Between Two Date-Time Values
    HDTTM: Converting a Date Value to a Date-Time Value
    HGETC: Storing the Current Local Date and Time in a Date-Time Field
    HHMMSS: Retrieving the Current Time
    HHMS: Converting a Date-Time Value to a Time Value
    HINPUT: Converting an Alphanumeric String to a Date-Time Value
    HMIDNT: Setting the Time Portion of a Date-Time Value to Midnight
    HNAME: Retrieving a Date-Time Component in Alphanumeric Format
    HPART: Retrieving a Date-Time Component as a Numeric Value
    HSETPT: Inserting a Component Into a Date-Time Value
    HTIME: Converting the Time Portion of a Date-Time Value to a Number
    HTMTOTS or TIMETOTS: Converting a Time to a Timestamp
    HYYWD: Returning the Year and Week Number From a Date-Time Value
  Simplified Date and Date-Time Functions
    DT_CURRENT_DATE: Returning the Current Date
    DT_CURRENT_DATETIME: Returning the Current Date and Time
    DT_CURRENT_TIME: Returning the Current Time
    DTADD: Incrementing a Date or Date-Time Component
    DTDIFF: Returning the Number of Component Boundaries Between Date or Date-Time Values
    DTPART: Returning a Date or Date-Time Component in Integer Format
    DTRUNC: Returning the Start of a Date Period for a Given Date
  Format Conversion Functions
    ATODBL: Converting an Alphanumeric String to Double-Precision Format
    EDIT: Converting the Format of a Field
    FTOA: Converting a Number to Alphanumeric Format
    HEXBYT: Converting a Decimal Integer to a Character
    ITONUM: Converting a Large Binary Integer to Double-Precision Format
    ITOPACK: Converting a Large Binary Integer to Packed-Decimal Format
    ITOZ: Converting a Number to Zoned Format
    PCKOUT: Writing a Packed Number of Variable Length
    PTOA: Converting a Packed-Decimal Number to Alphanumeric Format
  Numeric Functions
    ABS: Calculating Absolute Value
    BAR: Producing a Bar Chart
    CHKPCK: Validating a Packed Field
    DMOD, FMOD, and IMOD: Calculating the Remainder From a Division
    EXP: Raising e to the Nth Power
    EXPN: Evaluating a Number in Scientific Notation
    INT: Finding the Greatest Integer
    LOG: Calculating the Natural Logarithm
    MAX and MIN: Finding the Maximum or Minimum Value
    NORMSDST and NORMSINV: Calculating Normal Distributions
    PRDNOR and PRDUNI: Generating Reproducible Random Numbers
    RDNORM and RDUNIF: Generating Random Numbers
    SQRT: Calculating the Square Root
  Simplified Numeric Functions
    CEILING: Returning the Smallest Integer Value Greater Than or Equal to a Value
    EXPONENT: Raising e to a Power
    FLOOR: Returning the Largest Integer Less Than or Equal to a Value
    MOD: Calculating the Remainder From a Division
    POWER: Raising a Value to a Power
  System Functions
    FGETENV: Retrieving the Value of an Environment Variable
    GETUSER: Retrieving a User ID
  Legal and Third-Party Notices
  Launch PDF
  Introducing ibi™ WebFOCUS® App Studio
    What is ibi WebFOCUS App Studio?
    Launching ibi WebFOCUS App Studio
    Documentation Overview
  Navigating in ibi™ WebFOCUS® App Studio
    The ibi WebFOCUS App Studio Interface
    Initiating ibi WebFOCUS App Studio
    Opening the Hamburger Menu of File-Related Commands
    Accessing Frequently Used Commands
    Developing Applications in the Canvas Area
    Accessing Features With the Ribbon
    Working With the Environments Tree Panel
    Working With the Environments Detail Panel
    Viewing File and Folder Properties
    Editing Areas of Functionality Using the View Tabs
    Customizing the Panels
  Creating Reports
    Building Reports Overview
    Report Types
    Launching the Report Wizard
    Accessing Reporting Components
    Creating Reports Using the Report Canvas
    Creating Precision Reports
    Joining Data
    Blending Data
    Styling Reports
    Linking Reports with Auto Linking and Auto Drill
    Reporting Syntax Summary
  Creating Charts and Visualizations
    Chart Types
    Launching the Chart Wizard
    Creating Visualizations
  Creating Procedures
    Using the Procedure View Panel
    Using Dialogue Manager
    Displaying Data Sources
  Creating HTML Pages
    Launching the HTML/Document Wizard
    Accessing HTML Page Components
    Creating a Widget to Autoplay Control Values
    Using Parameters
    Viewing Object Attributes
    Modifying Object Population Settings
    Using Tasks & Animations
    Working with Requests & Data Sources
    Displaying Applications in Different Languages
    Specifying Browser Defaults
    Chaining in the HTML Canvas
    Using JavaScript Code with HTML Canvas Pages
    Creating Responsive Web Pages
    Designing Content for Smartphones
    Cascading Style Sheet Class Mapping List
  Creating Documents
    Launching the HTML/Document Wizard
    Accessing Document and In-Document Analytic Dashboard Components
    Previewing the Document Canvas
    Editing Document Canvas Properties
     Supporting Template Masters and Slide Layouts in ibi WebFOCUS App Studio-Generated Presentations
  Creating Maintain Data Applications
    Using the Maintain Data App
    Using the Tasks & Animations Panel
    Using the Maintain Data Editor
    Using Functions in Procedures
    Using Variables in Procedures
    Using Data Source Stacks in Procedures
    Using Import Modules
    Executing Other Procedures
    Persistent and Non-Persistent Maintain Data Applications
     Asynchronous Maintain Data Applications
    Migrating Legacy Maintain Procedures to Maintain Data
  Creating Esri Maps
    Illustrating Trends
    Using the ibi WebFOCUS Esri HTML5 Viewer
    Creating an Esri Component on an HTML Page
    Using Unified Geographic Roles
    Configuring a Map Data Layer
    Adding a Demographic Layer to a Map
    Adding an RSS Feed to an Esri Map
    Using Map Widgets
    Configuring the Map Menu
    Using IbComposer Functions to Invoke Map Menu Options
    Configuring Layer Visualizations
    Configuring Symbology for a Data Layer
    Configuring Symbology for a Point Data Layer
    Configuring Symbology for a Polygon Data Layer
    Configuring Symbology for a Line Data Layer
    Summary of Symbology and Visualizations by Layer Type
    Refreshing Markers on an ESRI Map Without Refreshing the Entire Map
    Retrieving the Esri Map Viewer Current Extent Coordinates as Variables
    Configuring Maps to Interact With Other Components
    Adding Before Load and After Load Events
    Configuring Geographic Information
    Adding an Esri Proxy URL
    Installing and Configuring Esri on Premise
  Working With Source Control
    Using Source Control in ibi WebFOCUS App Studio
    Microsoft Team Foundation Server Requirements and Configuration
  Creating, Viewing, and Editing Source Syntax
    Accessing the Text Editor
  Selenium Browser Support
    Selenium Browser Tiers
    Updating the Selenium Software and Driver Executables
  Troubleshooting
    Troubleshooting Tips
    Troubleshooting Tools
  Simplified Analytic Functions
    PARTITION_AGGR: Creating Rolling Calculations
    PARTITION_REF: Using Prior Field Values in Calculations
  Character Functions
    Character Function Notes
    ARGLEN: Measuring the Length of a String
    BITSON: Determining If a Bit Is On or Off
    BITVAL: Evaluating a Bit String as an Integer
    BYTVAL: Translating a Character to Decimal
    CHKFMT: Checking the Format of a String
    CTRAN: Translating One Character to Another
    CTRFLD: Centering a Character String
    EDIT: Extracting or Adding Characters
    GETTOK: Extracting a Substring (Token)
    LCWORD: Converting a String to Mixed-Case
    LCWORD2: Converting a String to Mixed-Case
    LCWORD3: Converting a String to Mixed-Case
    LJUST: Left-Justifying a String
    LOCASE: Converting Text to Lowercase
    OVRLAY: Overlaying a Character String
    PARAG: Dividing Text Into Smaller Lines
    PATTERN: Generating a Pattern From a String
    POSIT: Finding the Beginning of a Substring
    REVERSE: Reversing the Characters in a String
    RJUST: Right-Justifying a Character String
    SOUNDEX: Comparing Character Strings Phonetically
    SPELLNM: Spelling Out a Dollar Amount
    SQUEEZ: Reducing Multiple Spaces to a Single Space
    STRIP: Removing a Character From a String
    STRREP: Replacing Character Strings
    SUBSTR: Extracting a Substring
    TRIM: Removing Leading and Trailing Occurrences
    UPCASE: Converting Text to Uppercase
  Simplified Character Functions
    CHAR_LENGTH: Returning the Length in Characters of a String
    CONCAT: Concatenating Strings After Removing Trailing Blanks From the First
    DIGITS: Converting a Number to a Character String
    LAST_NONBLANK: Retrieving the Last Field Value That is Neither Blank nor Missing
    LOWER: Returning a String With All Letters Lowercase
    LPAD: Left-Padding a Character String
    LTRIM: Removing Blanks From the Left End of a String
    POSITION: Returning the First Position of a Substring in a Source String
    REGEX: Matching a String to a Regular Expression
    REPLACE: Replacing a String
    RPAD: Right-Padding a Character String
    RTRIM: Removing Blanks From the Right End of a String
    SPLIT: Extracting an Element From a String
    SUBSTRING: Extracting a Substring From a Source String
    TOKEN: Extracting a Token From a String
    UPPER: Returning a String With All Letters Uppercase
  Simplified Conversion Functions
    PHONETIC: Returning a Phonetic Key for a String
    TO_INTEGER: Converting a Character String to an Integer Value
    TO_NUMBER: Converting a Character String to a Numeric Value
  Data Source and Decoding Functions
    DECODE: Decoding Values
    LAST: Retrieving the Preceding Value
  Date Functions
    AYM: Adding or Subtracting Months
    AYMD: Adding or Subtracting Days
    CHGDAT: Changing How a Date String Displays
    DA Functions: Converting a Legacy Date to an Integer
    Overview of Date Functions
    Using Standard Date Functions
    Using Legacy Date Functions
    DATEADD: Adding or Subtracting a Date Unit to or From a Date
    DATECVT: Converting the Format of a Date
    DATEDIF: Finding the Difference Between Two Dates
    DATEMOV: Moving a Date to a Significant Point
    DATETRAN: Formatting Dates in International Formats
    DMY, MDY, YMD: Calculating the Difference Between Two Dates
    DOWK and DOWKL: Finding the Day of the Week
    DPART: Extracting a Component From a Date
    DT Functions: Converting an Integer to a Date
    FIQTR: Obtaining the Financial Quarter
    FIYR: Obtaining the Financial Year
    FIYYQ: Converting a Calendar Date to a Financial Date
    GREGDT: Converting From Julian to Gregorian Format
    JULDAT: Converting From Gregorian to Julian Format
    TODAY: Returning the Current Date
    YM: Calculating Elapsed Months
  Date-Time Functions
    Using Date-Time Functions
    HADD: Incrementing a Date-Time Value
    HCNVRT: Converting a Date-Time Value to Alphanumeric Format
    HDATE: Converting the Date Portion of a Date-Time Value to a Date Format
    HDIFF: Finding the Number of Units Between Two Date-Time Values
    HDTTM: Converting a Date Value to a Date-Time Value
    HGETC: Storing the Current Local Date and Time in a Date-Time Field
    HHMMSS: Retrieving the Current Time
    HHMS: Converting a Date-Time Value to a Time Value
    HINPUT: Converting an Alphanumeric String to a Date-Time Value
    HMIDNT: Setting the Time Portion of a Date-Time Value to Midnight
    HNAME: Retrieving a Date-Time Component in Alphanumeric Format
    HPART: Retrieving a Date-Time Component as a Numeric Value
    HSETPT: Inserting a Component Into a Date-Time Value
    HTIME: Converting the Time Portion of a Date-Time Value to a Number
    HTMTOTS or TIMETOTS: Converting a Time to a Timestamp
    HYYWD: Returning the Year and Week Number From a Date-Time Value
  Simplified Date and Date-Time Functions
    DT_CURRENT_DATE: Returning the Current Date
    DT_CURRENT_DATETIME: Returning the Current Date and Time
    DT_CURRENT_TIME: Returning the Current Time
    DTADD: Incrementing a Date or Date-Time Component
    DTDIFF: Returning the Number of Component Boundaries Between Date or Date-Time Values
    DTPART: Returning a Date or Date-Time Component in Integer Format
    DTRUNC: Returning the Start of a Date Period for a Given Date
  Format Conversion Functions
    ATODBL: Converting an Alphanumeric String to Double-Precision Format
    EDIT: Converting the Format of a Field
    FTOA: Converting a Number to Alphanumeric Format
    HEXBYT: Converting a Decimal Integer to a Character
    ITONUM: Converting a Large Binary Integer to Double-Precision Format
    ITOPACK: Converting a Large Binary Integer to Packed-Decimal Format
    ITOZ: Converting a Number to Zoned Format
    PCKOUT: Writing a Packed Number of Variable Length
    PTOA: Converting a Packed-Decimal Number to Alphanumeric Format
  Numeric Functions
    ABS: Calculating Absolute Value
    BAR: Producing a Bar Chart
    CHKPCK: Validating a Packed Field
    DMOD, FMOD, and IMOD: Calculating the Remainder From a Division
    EXP: Raising e to the Nth Power
    EXPN: Evaluating a Number in Scientific Notation
    INT: Finding the Greatest Integer
    LOG: Calculating the Natural Logarithm
    MAX and MIN: Finding the Maximum or Minimum Value
    NORMSDST and NORMSINV: Calculating Normal Distributions
    PRDNOR and PRDUNI: Generating Reproducible Random Numbers
    RDNORM and RDUNIF: Generating Random Numbers
    SQRT: Calculating the Square Root
  Simplified Numeric Functions
    CEILING: Returning the Smallest Integer Value Greater Than or Equal to a Value
    EXPONENT: Raising e to a Power
    FLOOR: Returning the Largest Integer Less Than or Equal to a Value
    MOD: Calculating the Remainder From a Division
    POWER: Raising a Value to a Power
  System Functions
    FGETENV: Retrieving the Value of an Environment Variable
    GETUSER: Retrieving a User ID
  Legal and Third-Party Notices
  Launch PDF
Maintain Data
  App Studio Maintain Data Getting Started
    Introducing App Studio Maintain Data
      Road Map: Where Should You Go?
      What Is App Studio Maintain Data?
      Overview of Developing App Studio Maintain Data Applications
    App Studio Maintain Data Tutorial
      Before You Begin
      Creating a Domain
      Viewing the Structure of a Data Source in the Requests & Data Sources Panel
      Designing a Form
      Saving Your Work
      Running Your Page Locally
      Using Radio Buttons
      Giving Your Form a New Title
      Writing Data to the Data Source
      Adding a Form to Display Data From a Data Source
      Adding Form Navigation Buttons
      Adding Images to Your Application
    App Studio Maintain Data Concepts
      Set-based Processing
      Controlling the Flow of a Procedure
      Executing Other Maintain Data Procedures
      Forms and Event-driven Processing
      Reading From a Data Source
      Writing to a Data Source
      Transaction Processing
      Classes and Objects
    Creating an Update Application With Update Assist
      Starting Update Assist
      Update Assist: Segment & Field Options
      Update Assist: Navigation Options
      About Your Update Assist Application
      Calling an Update Assist Procedure From an App Studio Report
      Usage Notes
    App Studio Maintain Data Sample Data Sources
      Fannames Data Source
      Users Data Source
      Contact Data Source
    Launch PDF
  App Studio Maintain Data Language Reference
    Language Rules Reference
      Case Sensitivity
      Specifying Names
      Reserved Words
      What Can You Include in a Procedure?
      Multi-Line Commands
      Terminating Command Syntax
      Adding Comments
    Expressions Reference
      Types of Expressions
      Writing Numeric Expressions
      Writing Date Expressions
      Writing Date-Time Expressions
      Writing Character Expressions
      Writing Logical Expressions
      Writing Conditional Expressions
      Handling Null Values in Expressions
    Command Reference
      Language Summary
      BEGIN
      CALL
      CASE
      COMMIT
      COMPUTE
      COPY
      DECLARE
      DELETE
      DESCRIBE
      END
      EXEC
      FocCount
      FocCurrent
      FocError
      FocErrorRow
      FocFetch
      FocIndex
      FocMsg
      GOTO
      IF
      INCLUDE
      INFER
      MAINTAIN
      MATCH
      MODULE
      NEXT
      ON MATCH
      ON NEXT
      ON NOMATCH
      ON NONEXT
      PERFORM
      REPEAT
      REPOSITION
      REVISE
      ROLLBACK
      SAY
      SET
      showLayer
      STACK CLEAR
      STACK SORT
      SYS_MGR
      SYS_MGR.DBMS_ERRORCODE
      SYS_MGR.ENGINE
      SYS_MGR.FOCSET
      SYS_MGR.GET_INPUTPARAMS_COUNT
      SYS_MGR.GET_NAMEPARM
      SYS_MGR.GET_POSITIONPARM
      SYS_MGR.PRE_MATCH
      TYPE
      UPDATE
      Winform
      WINFORM SET
    Ensuring Transaction Integrity
      Transaction Integrity Overview
      Why Is Transaction Integrity Important?
      Defining a Transaction
      Evaluating Whether a Transaction Was Successful
      Concurrent Transaction Processing
      Ensuring Transaction Integrity for FOCUS Data Sources
      Ensuring Transaction Integrity for DB2 Data Sources
    Developing Classes and Objects
      What Are Classes and Objects?
      Defining Classes
      Reusing Classes: Class Libraries
      Declaring Objects
    MNTCON Commands
      MNTCON CDN_FEXINPUT
      MNTCON COMPILE
      MNTCON EX
      MNTCON EXIT_WARNING
      MNTCON MATCH_CASE
      MNTCON RADIO_BUTTON_EMIT_TEXT
      MNTCON REMOTESTYLE
      MNTCON RUN
    Launch PDF
  App Studio Maintain Data Getting Started
    Introducing App Studio Maintain Data
      Road Map: Where Should You Go?
      What Is App Studio Maintain Data?
      Overview of Developing App Studio Maintain Data Applications
    App Studio Maintain Data Tutorial
      Before You Begin
      Creating a Domain
      Viewing the Structure of a Data Source in the Requests & Data Sources Panel
      Designing a Form
      Saving Your Work
      Running Your Page Locally
      Using Radio Buttons
      Giving Your Form a New Title
      Writing Data to the Data Source
      Adding a Form to Display Data From a Data Source
      Adding Form Navigation Buttons
      Adding Images to Your Application
    App Studio Maintain Data Concepts
      Set-based Processing
      Controlling the Flow of a Procedure
      Executing Other Maintain Data Procedures
      Forms and Event-driven Processing
      Reading From a Data Source
      Writing to a Data Source
      Transaction Processing
      Classes and Objects
    Creating an Update Application With Update Assist
      Starting Update Assist
      Update Assist: Segment & Field Options
      Update Assist: Navigation Options
      About Your Update Assist Application
      Calling an Update Assist Procedure From an App Studio Report
      Usage Notes
    App Studio Maintain Data Sample Data Sources
      Fannames Data Source
      Users Data Source
      Contact Data Source
    Launch PDF
  App Studio Maintain Data Language Reference
    Language Rules Reference
      Case Sensitivity
      Specifying Names
      Reserved Words
      What Can You Include in a Procedure?
      Multi-Line Commands
      Terminating Command Syntax
      Adding Comments
    Expressions Reference
      Types of Expressions
      Writing Numeric Expressions
      Writing Date Expressions
      Writing Date-Time Expressions
      Writing Character Expressions
      Writing Logical Expressions
      Writing Conditional Expressions
      Handling Null Values in Expressions
    Command Reference
      Language Summary
      BEGIN
      CALL
      CASE
      COMMIT
      COMPUTE
      COPY
      DECLARE
      DELETE
      DESCRIBE
      END
      EXEC
      FocCount
      FocCurrent
      FocError
      FocErrorRow
      FocFetch
      FocIndex
      FocMsg
      GOTO
      IF
      INCLUDE
      INFER
      MAINTAIN
      MATCH
      MODULE
      NEXT
      ON MATCH
      ON NEXT
      ON NOMATCH
      ON NONEXT
      PERFORM
      REPEAT
      REPOSITION
      REVISE
      ROLLBACK
      SAY
      SET
      showLayer
      STACK CLEAR
      STACK SORT
      SYS_MGR
      SYS_MGR.DBMS_ERRORCODE
      SYS_MGR.ENGINE
      SYS_MGR.FOCSET
      SYS_MGR.GET_INPUTPARAMS_COUNT
      SYS_MGR.GET_NAMEPARM
      SYS_MGR.GET_POSITIONPARM
      SYS_MGR.PRE_MATCH
      TYPE
      UPDATE
      Winform
      WINFORM SET
    Ensuring Transaction Integrity
      Transaction Integrity Overview
      Why Is Transaction Integrity Important?
      Defining a Transaction
      Evaluating Whether a Transaction Was Successful
      Concurrent Transaction Processing
      Ensuring Transaction Integrity for FOCUS Data Sources
      Ensuring Transaction Integrity for DB2 Data Sources
    Developing Classes and Objects
      What Are Classes and Objects?
      Defining Classes
      Reusing Classes: Class Libraries
      Declaring Objects
    MNTCON Commands
      MNTCON CDN_FEXINPUT
      MNTCON COMPILE
      MNTCON EX
      MNTCON EXIT_WARNING
      MNTCON MATCH_CASE
      MNTCON RADIO_BUTTON_EMIT_TEXT
      MNTCON REMOTESTYLE
      MNTCON RUN
    Launch PDF
Reporting Language
  Creating Reports With ibi™ WebFOCUS® Language
    Creating Reports Overview
      Requirements for Creating a Report
      Report Types
      Developing Your Report Request
      Customizing a Report
      Selecting a Report Output Destination
    Displaying Report Data
      Using Display Commands in a Request
      Displaying Individual Values
      Adding Values
      Counting Values
      Expanding Byte Precision for COUNT and LIST
      Maximum Number of Display Fields Supported in a Request
      Manipulating Display Fields With Prefix Operators
      Displaying Pop-up Field Descriptions for Column Titles
    Sorting Tabular Reports
      Sorting Tabular Reports Overview
      Sorting Rows
      Sorting Columns
      Controlling Display of Sort Field Values
      Reformatting Sort Fields
      Manipulating Display Field Values in a Sort Group
      Creating a Matrix Report
      Controlling Collation Sequence
      Specifying the Sort Order
      Ranking Sort Field Values
      Grouping Numeric Data Into Ranges
      Restricting Sort Field Values by Highest/Lowest Rank
      Sorting and Aggregating Report Columns
      Hiding Sort Values
       Sort Performance Considerations
      Sorting With Multiple Display Commands
      Improving Efficiency With External Sorts
      Hierarchical Reporting: BY HIERARCHY
    Selecting Records for Your Report
      Selecting Records Overview
      Choosing a Filtering Method
      Selections Based on Individual Values
      Selection Based on Aggregate Values
      Applying Selection Criteria to the Internal Matrix Prior to COMPUTE Processing
      Using Compound Expressions for Record Selection
      Using Operators in Record Selection Tests
      Types of Record Selection Tests
      Selections Based on Group Key Values
      Setting Limits on the Number of Records Read
      Selecting Records Using IF Phrases
      Reading Selection Values From a File
      Assigning Screening Conditions to a File
      VSAM Record Selection Efficiencies
    Creating Temporary Fields
      What Is a Temporary Field?
      Defining a Virtual Field
      Creating a Calculated Value
      Assigning Column Reference Numbers
      Using FORECAST in a COMPUTE Command
      Calculating Trends and Predicting Values With FORECAST
      Calculating Trends and Predicting Values With Multivariate REGRESS
      Using Text Fields in DEFINE and COMPUTE
      Creating Temporary Fields Independent of a Master File
    Including Totals and Subtotals
      Calculating Row and Column Totals
      Including Section Totals and a Grand Total
      Including Subtotals
      Recalculating Values for Subtotal Rows
      Summarizing Alphanumeric Columns
      Manipulating Summary Values With Prefix Operators
      Combinations of Summary Commands
      Producing Summary Columns for Horizontal Sort Fields
      Performing Calculations at Sort Field Breaks
      Suppressing Grand Totals
      Conditionally Displaying Summary Lines and Text
    Using Expressions
      Using Expressions in Commands and Phrases
      Types of Expressions
      Creating a Numeric Expression
      Creating a Date Expression
      Creating a Date-Time Expression
      Creating a Character Expression
      Creating a Variable Length Character Expression
      Creating a Logical Expression
      Creating a Conditional Expression
    Saving and Reusing Your Report Output
      Saving Your Report Output
      Creating a HOLD File
      Holding Report Output in FOCUS Format
      Controlling Attributes in HOLD Master Files
      Keyed Retrieval From HOLD Files
      Saving and Retrieving HOLD Files
      Using DBMS Temporary Tables as HOLD Files
      Creating SAVE and SAVB Files
      Creating a PCHOLD File
      Choosing Output File Formats
      Using Text Fields in Output Files
      Creating a Delimited Sequential File
      Saving Report Output in INTERNAL Format
      Creating A Subquery or Sequential File With HOLD FORMAT SQL_SCRIPT
      Creating a Structured HOLD File
    Choosing a Display Format
      Report Display Formats
      Preserving Leading and Internal Blanks in Report Output
      Using Web Display Format: HTML
      Using Print Display Formats: PDF, PS
      Using Word Processing Display Formats: DOC, WP
      Saving Report Output in Excel XLSX Format
      Using PowerPoint PPT Display Format
      Saving Report Output in PPTX Format
    Linking a Report to Other Resources
      Linking Using StyleSheets
      Linking to Another Report
      Linking to a URL
      Linking to a JavaScript Function
      Linking to a Maintain Data Procedure
      Multi-Drill Feature With Cascading Menus and User-Defined Styling
      Creating Parameters
      Linking With Conditions
      Linking From a Graphic Image
      Specifying a Base URL
      Specifying a Target Frame
      Creating a Compound Report
      Creating a PDF Compound Report With Drill Through Links
    Navigating Within an HTML Report
      Navigating Sort Groups From a Table of Contents
      Adding the HTML Table of Contents Tree Control to Reports
      Controlling the Display of Sorted Data With Accordion Reports
      Navigating a Multi-Page Report With the WebFOCUS Viewer
      Linking Report Pages
    Bursting Reports Into Multiple HTML Files
      Bursting Reports Overview
    Handling Records With Missing Field Values
      Irrelevant Report Data
      Missing Field Values
      Handling a Missing Segment Instance
      Setting the NODATA Character String
    Joining Data Sources
      Types of Joins
      How the JOIN Command Works
      Creating an Equijoin
      Using a Conditional Join
      Full Outer Joins
      Reporting Against a Multi-Fact Cluster Synonym
      Navigating Joins Between Cluster Synonyms
      Invoking Context Analysis for a Star Schema With a Fan Trap
      Adding DBA Restrictions to the Join Condition: SET DBAJOIN
      Preserving Virtual Fields During Join Parsing
      Displaying Joined Structures
      Clearing Joined Structures
    Merging Data Sources
      Merging Data
      Types of MATCH Processing
      MATCH Processing With Common High-Order Sort Fields
      Fine-Tuning MATCH Processing
      Universal Concatenation
      Merging Concatenated Data Sources
      Cartesian Product
    Formatting Reports: An Overview
      What Kinds of Formatting Can I Do?
      How to Specify Formatting in a Report
      Standard and Legacy Formatting
      Techniques for Quick and Easy Formatting
      Navigating From a Report to Other Resources
    Creating and Managing a WebFOCUS StyleSheet
      Creating a WebFOCUS StyleSheet
      General WebFOCUS StyleSheet Syntax
      Reusing WebFOCUS StyleSheet Declarations With Macros
      WebFOCUS StyleSheet Attribute Inheritance
      Creating Reports With the ENWarm StyleSheet
    Controlling Report Formatting
      Generating an Internal Cascading Style Sheet for HTML Reports
      Selecting a Unit of Measurement
      Conditionally Formatting, Displaying, and Linking in a StyleSheet
      Including Summary Lines, Underlines, Skipped Lines, and Page Breaks
      Conditionally Including Summary Lines, Underlines, Skipped Lines, and Page Breaks
      Controlling the Display of Empty Reports
      Formatting a Report Using Only StyleSheet Defaults
    Identifying a Report Component in a WebFOCUS StyleSheet
      Identifying an Entire Report, Column, or Row
      Identifying Tags for SUBTOTAL and GRANDTOTAL Lines
      Identifying Data
      Identifying a Heading, Footing, Title, or FML Free Text
      Identifying a Page Number, Underline, or Skipped Line
    Using an External Cascading Style Sheet
      What Is a Cascading Style Sheet?
      Why Use an External Cascading Style Sheet?
      Formatting a Report With an External Cascading Style Sheet
      Working With an External Cascading Style Sheet
      Applying External Cascading Style Sheet Formatting
      Combining an External CSS With Other Formatting Methods
      Linking to an External Cascading Style Sheet
      Inheritance and External Cascading Style Sheets
      Using External Cascading Style Sheets With Non-HTML Reports
      Requirements for Using an External Cascading Style Sheet
      FAQ About Using External Cascading Style Sheets
      Troubleshooting External Cascading Style Sheets
    Laying Out the Report Page
      Selecting Page Size, Orientation, and Color
      Setting Page Margins
      Positioning a Report Component
      Arranging Columns on a Page
      Suppressing Column Display
      Inserting a Page Break
      Inserting Page Numbers
      Adding Grids and Borders
      Defining Borders Around Boxes With PPTX and PDF Formats
      Displaying Superscripts On Data, Heading, and Footing Lines
      Adding Underlines and Skipped Lines
      Removing Blank Lines From a Report
      Adding an Image to a Report
      Associating Bar Graphs With Report Data
      Working With Mailing Labels and Multi-Pane Pages
    Using Headings, Footings, Titles, and Labels
      Creating Headings and Footings
      Including an Element in a Heading or Footing
      Displaying Syntax Components in Heading and Footing Objects
      Repeating Headings and Footings on Panels in PDF Report Output
      Customizing a Column Title
      Controlling Column Title Underlining Using a SET Command
      Controlling Column Title Underlining Using a StyleSheet Attribute
      Creating Labels to Identify Data
      Formatting a Heading, Footing, Title, or Label
      Applying Font Attributes to a Heading, Footing, Title, or Label
      Adding Borders and Grid Lines
      Justifying a Heading, Footing, Title, or Label
      Choosing an Alignment Method for Heading and Footing Elements
      Aligning a Heading or Footing Element in an HTML, XLSX, EXL2K, PDF, PPTX, or DHTML Report
      Aligning a Heading or Footing Element Across Columns in an HTML or PDF Report
      Aligning Content in a Multi-Line Heading or Footing
      Positioning Headings, Footings, or Items Within Them
      Controlling the Vertical Positioning of a Heading or Footing
      Placing a Report Heading or Footing on Its Own Page
    Formatting Report Data
      Specifying Font Format in a Report
      Specifying Background Color in a Report
      Alternating Background Color By Wrapped Line
      Specifying Data Format in a Report
      Positioning Data in a Report
    Creating a Graph
      Content Analysis: Determining Graphing Objectives
      The GRAPH Command
      Creating an HTML5 Graph
      Selecting a Graph Type
      Selecting Values for the X and Y Axes
      Creating Multiple Graphs
      Plotting Dates in Graphs
      Refining the Data Set For Your Graph
      Displaying Missing Data Values in a Graph
      Applying Conditional Styling to a Graph
      Linking Graphs to Other Resources
      Adding Labels to a Graph
      Applying Custom Styling to a Graph
      Saving a Graph as an Image File
      Printing a Graph
    Creating Financial Reports With Financial Modeling Language (FML)
      Reporting With FML
      Creating Rows From Data
      Supplying Data Directly in a Request
      Performing Inter-Row Calculations
      Referring to Rows in Calculations
      Referring to Columns in Calculations
      Referring to Rows and Columns in Calculations
      Referring to Cells in Calculations
      Using Functions in RECAP Calculations
      Inserting Rows of Free Text
      Adding a Column to an FML Report
      Creating a Recursive Model
      Reporting Dynamically From a Hierarchy
      Customizing a Row Title
      Formatting an FML Report
      Suppressing the Display of Rows
      Saving and Retrieving Intermediate Report Results
      Creating HOLD Files From FML Reports
    Creating a Free-Form Report
      Creating a Free-Form Report
      Designing a Free-Form Report
    Using SQL to Create Reports
      Supported and Unsupported SQL Statements
      Using SQL Translator Commands
      SQL Translator Support for Date, Time, and Timestamp Fields
      Index Optimized Retrieval
      TABLEF Optimization
      SQL INSERT, UPDATE, and DELETE Commands
    Improving Report Processing
      Rotating a Data Structure for Enhanced Retrieval
      Optimizing Retrieval Speed for FOCUS Data Sources
      Automatic Indexed Retrieval
      Data Retrieval Using TABLEF
      Compiling Expressions
    Master Files and Diagrams
      EMPLOYEE Data Source
      JOBFILE Data Source
      EDUCFILE Data Source
      SALES Data Source
      CAR Data Source
      LEDGER Data Source
      FINANCE Data Source
      REGION Data Source
      EMPDATA Data Source
      TRAINING Data Source
      COURSE Data Source
      JOBHIST Data Source
      JOBLIST Data Source
      LOCATOR Data Source
      PERSINFO Data Source
      SALHIST Data Source
      VIDEOTRK, MOVIES, and ITEMS Data Sources
      VIDEOTR2 Data Source
      Gotham Grinds Data Sources
      Century Corp Data Sources
    Error Messages
      Displaying Messages
    Table Syntax Summary and Limits
      TABLE Syntax Summary
      TABLEF Syntax Summary
      MATCH Syntax Summary
      FOR Syntax Summary
      TABLE Limits
    Referring to Fields in a Report Request
      Referring to an Individual Field
      Referring to Fields Using Qualified Field Names
      Referring to All of the Fields in a Segment
      Displaying a List of Field Names
    Launch PDF
  Describing Data With ibi™ WebFOCUS® Language
    Understanding a Data Source Description
      A Note About Data Source Terminology
      What Is a Data Source Description?
      How an Application Uses a Data Source Description
      What Does a Master File Describe?
      Creating a Data Source Description
      Naming a Master File
      What Is in a Master File?
    Identifying a Data Source
      Identifying a Data Source Overview
      Specifying a Data Source Name: FILENAME
      Identifying a Data Source Type: SUFFIX
      Specifying a Code Page in a Master File
      Specifying Byte Order
      Specifying Data Type: IOTYPE
      Providing Descriptive Information for a Data Source: REMARKS
      Specifying a Physical File Name: DATASET
      Creating and Using a Master File Profile
      Storing Localized Metadata in Language Files
    Describing a Group of Fields
      Defining a Single Group of Fields
      Identifying a Logical View: Redefining a Segment
      Relating Multiple Groups of Fields
      Logical Dependence: The Parent-Child Relationship
      Logical Independence: Multiple Paths
      Cardinal Relationships Between Segments
      One-to-One Relationship
      One-to-Many Relationship
      Many-to-Many Relationship
      Recursive Relationships
      Relating Segments From Different Types of Data Sources
      Rotating a Data Source: An Alternate View
      Defining a Prefix for Field Titles
    Describing an Individual Field
      Field Characteristics
      The Field Name: FIELDNAME
      The Field Synonym: ALIAS
      The Displayed Data Type: USAGE
      The Stored Data Type: ACTUAL
      Adding a Geographic Role for a Field
      Null or MISSING Values: MISSING
      Describing an FML Hierarchy
      Defining a Dimension: WITHIN
      Validating Data: ACCEPT
      Specifying Acceptable Values for a Dimension
      Alternative Report Column Titles: TITLE
      Documenting the Field: DESCRIPTION
      Multilingual Metadata
      Describing a Virtual Field: DEFINE
      Describing a Calculated Value: COMPUTE
      Describing a Filter: FILTER
      Describing a Sort Object: SORTOBJ
      Calling a DEFINE FUNCTION in a Master File
      Using Date System Amper Variables in Master File DEFINEs
      Parameterizing Master and Access File Values Using Variables
      Converting Alphanumeric Dates to WebFOCUS Dates
    Describing a Sequential, VSAM, or ISAM Data Source
      Sequential Data Source Formats
      Standard Master File Attributes for a Sequential Data Source
      Standard Master File Attributes for a VSAM or ISAM Data Source
      Describing a Multiply Occurring Field in a Free-Format Data Source
      Describing a Multiply Occurring Field in a Fixed-Format, VSAM, or ISAM Data Source
      Redefining a Field in a Non-FOCUS Data Source
      Extra-Large Record Length Support
      Describing Multiple Record Types
      Combining Multiply Occurring Fields and Multiple Record Types
      Establishing VSAM Data and Index Buffers
      Using a VSAM Alternate Index
      Describing a Token-Delimited Data Source
    Describing a FOCUS Data Source
      Types of FOCUS Data Sources
      Designing a FOCUS Data Source
      Describing a Single Segment
      GROUP Attribute
      ACCEPT Attribute
      INDEX Attribute
      Describing a Partitioned FOCUS Data Source
      Multi-Dimensional Index (MDI)
    Defining a Join in a Master File
      Join Types
      Static Joins Defined in the Master File: SEGTYPE = KU and KM
      Using Cross-Referenced Descendant Segments: SEGTYPE = KL and KLU
      Dynamic Joins Defined in the Master File: SEGTYPE = DKU and DKM
      Conditional Joins in the Master File
      Comparing Static and Dynamic Joins
      Joining to One Cross-Referenced Segment From Several Host Segments
      Creating a Single-Root Cluster Master File
      Creating a Multiple-Root Cluster Master File
    Creating a Business View of a Master File
      Grouping Business Logic In a Business View
      Business View DV Roles
    Checking and Changing a Master File: CHECK
      Checking a Data Source Description
      CHECK Command Display
      PICTURE Option
      HOLD Option
    Providing Data Source Security: DBA
      Introduction to Data Source Security
      Implementing Data Source Security
      Specifying an Access Type: The ACCESS Attribute
      Limiting Data Source Access: The RESTRICT Attribute
      Controlling the Source of Access Restrictions in a Multi-file Structure
      Adding DBA Restrictions to the Join Condition
      Placing Security Information in a Central Master File
      Summary of Security Attributes
      Hiding Restriction Rules: The ENCRYPT Command
      FOCEXEC Security
    Creating and Rebuilding a Data Source
      Creating a New Data Source: The CREATE Command
      Rebuilding a Data Source: The REBUILD Command
      Optimizing File Size: The REBUILD Subcommand
      Changing Data Source Structure: The REORG Subcommand
      Indexing Fields: The INDEX Subcommand
      Creating an External Index: The EXTERNAL INDEX Subcommand
      Checking Data Source Integrity: The CHECK Subcommand
      Changing the Data Source Creation Date and Time: The TIMESTAMP Subcommand
      Converting Legacy Dates: The DATE NEW Subcommand
      Creating a Multi-Dimensional Index: The MDINDEX Subcommand
    Master Files and Diagrams
      EMPLOYEE Data Source
      JOBFILE Data Source
      EDUCFILE Data Source
      SALES Data Source
      CAR Data Source
      LEDGER Data Source
      FINANCE Data Source
      REGION Data Source
      EMPDATA Data Source
      TRAINING Data Source
      COURSE Data Source
      JOBHIST Data Source
      JOBLIST Data Source
      LOCATOR Data Source
      PERSINFO Data Source
      SALHIST Data Source
      VIDEOTRK, MOVIES, and ITEMS Data Sources
      VIDEOTR2 Data Source
      Gotham Grinds Data Sources
      Century Corp Data Sources
    Error Messages
      Displaying Messages
    Rounding in WebFOCUS
      Data Storage and Display
      Rounding in Calculations and Conversions
    Launch PDF
  Developing Reporting Applications
    WebFOCUS Application Logic
      Three-Tier Application Logic
      Publishing an Application
      WebFOCUS Components
      Section 508 Accessibility in WebFOCUS
    Managing Applications
      What Is an Application?
      Procedures and Metadata on the Application Tree
      Managing Applications and Paths
      Application Commands Overview
      Search Path Management Commands
      Application and File Management Commands
      Output Redirection Commands
      Application Metadata Commands and Catalog Metadata
      APP HELP
      Restricting the Use of APP Commands
      Accessing Metadata and Procedures
      Allocating Temporary Files
      Temporary Space Usage and Location
      Temporary Disk Space Usage for Non-PDS Deployment
      Application Tools
    Coding a User Interface
      Which Tools Can You Use?
      The WebFOCUS Client
      Using the Servlet
      Using a Dynamic Multiselect Drop-Down List
      Enabling Ad Hoc Reporting
      Validating a Form With JavaScript
       WebFOCUS Autoprompt Facility
       Responsive Autoprompt
       HTML Autoprompt
      Autoprompt Considerations
      Defining Parameter-Based Filters
      Customizing the Autoprompt Facility
      Displaying a Report on the Default WebFOCUS Page
      Designing an HTML Page for Report Display
    Enhancing a User Interface
      Displaying a Report in a Helper Application
      Controlling Multiple Reports
      Including CSRF Tokens in an HTML Webpage
      Adding JavaScript for Drill-Down Reporting
      Facilitating Report Manipulation
      Using a Cascading Style Sheet to Standardize Display
      Displaying a Previously Run Report
      Passing a User ID From HTML for a Custom Menu
    Managing Flow of Control in an Application
      Uses for Dialogue Manager
      Dialogue Manager Processing
      Creating a Dialogue Manager Procedure
      Customizing a Procedure With Variables
      Creating a Standard Quote-Delimited String
      Creating and Working With Variables
      Using Numeric Amper Variables in Functions
      Controlling the Execution of a Procedure
      Navigating a Procedure
      Enhancing an HTML Webpage With a Procedure
      Issuing Operating System Commands
      Controlling Passwords With Dialogue Manager
      Sending a Message to the Application
      Testing and Debugging a Dialogue Manager Procedure
      Dialogue Manager Syntax Reference
    Testing and Debugging a Procedure
      Debugging Your Application With Query Commands
      Displaying Combined Structures
      Displaying Virtual Fields
      Displaying the Currency Data Source in Effect
      Displaying Available Fields
      Displaying the File Directory Table
      Displaying Field Information for a Master File
      Displaying Data Source Statistics
      Displaying Current DDNAMEs Assigned With FILEDEF
      Displaying Defined Functions
      Displaying HOLD Fields
      Displaying JOIN Structures
      Displaying National Language Support
      Displaying Explanations of Error Messages
      Displaying the Current Search Path
      Displaying the Release Number
      Displaying the Values of a Remote Server
      Displaying Parameter Settings
      Displaying Graph Parameters
      Displaying the Site Code of the Connected Server
      Displaying Command Statistics
      Displaying StyleSheet Parameter Settings
      Displaying Information About the SU Machine
      Displaying Data Sources Specified With USE
      Displaying Global Variable Values
      Identifying the Files Being Used
      Reporting Dynamically From System Tables
    Accessing a FOCUS Data Source
      The USE Command
      Identifying a FOCUS Data Source
      Using Alternative File Specifications
      Identifying a New Data Source
      Protecting a Data Source
      Concatenating Data Sources
      Displaying the Current USE Options
      Clearing the USE Options
    Customizing Your Environment
      When Do You Use the SET Command?
      Ways to Issue a SET Command
      Coding a SET Command
      Types of SET Parameters
      SET Parameter Syntax
    Defining and Allocating WebFOCUS Files
      Allocating WebFOCUS Files
      Application Files Under Windows
      Extract Files Under Windows
      Work Files Under Windows
      Determining If A File Exists Under Windows
      WebFOCUS Files Under MVS
      Application Files Under MVS
      Extract Files Under MVS
      Work Files Under MVS
      Reviewing Attributes of Allocated Files Under MVS
      Application Files Under UNIX
      Extract Files Under UNIX
      Work Files Under UNIX
      Determining If a File Exists Under UNIX
    Euro Currency Support
      Integrating the Euro Currency
      Converting Currencies
      Creating the Currency Data Source
      Identifying Fields That Contain Currency Data
      Activating the Currency Data Source
      Processing Currency Data
      Querying the Currency Data Source in Effect
      Punctuating Numbers
      Selecting an Extended Currency Symbol
    Launch PDF
  Using Functions
    How to Use This Manual
      Available Languages
      Operating Systems
    Introducing Functions
      Using Functions
      Types of Functions
      Character Chart for ASCII and EBCDIC
    Accessing and Calling a Function
      Calling a Function
      Supplying an Argument in a Function
      Calling a Function From a DEFINE, COMPUTE, or VALIDATE Command
      Calling a Function From a Dialogue Manager Command
      Calling a Function From Another Function
      Calling a Function in WHERE or IF Criteria
      Calling a Function in WHEN Criteria
      Calling a Function From a RECAP Command
      Storing and Accessing an External Function
    Simplified Analytic Functions
      FORECAST_MOVAVE: Using a Simple Moving Average
      FORECAST_EXPAVE: Using Single Exponential Smoothing
      FORECAST_DOUBLEXP: Using Double Exponential Smoothing
      FORECAST_SEASONAL: Using Triple Exponential Smoothing
      FORECAST_LINEAR: Using a Linear Regression Equation
      PARTITION_AGGR: Creating Rolling Calculations
      PARTITION_REF: Using Prior or Subsequent Field Values in Calculations
      INCREASE: Calculating the Difference Between the Current and a Prior Value of a Field
      PCT_INCREASE: Calculating the Percentage Difference Between the Current and a Prior Value of a Field
      PREVIOUS: Retrieving a Prior Value of a Field
      RUNNING_AVE: Calculating an Average Over a Group of Rows
      RUNNING_MAX: Calculating a Maximum Over a Group of Rows
      RUNNING_MIN: Calculating a Minimum Over a Group of Rows
      RUNNING_SUM: Calculating a Sum Over a Group of Rows
    Simplified Character Functions
      CHAR_LENGTH: Returning the Length in Characters of a String
      CONCAT: Concatenating Strings
      DIFFERENCE: Measuring the Phonetic Similarity Between Character Strings
      DIGITS: Converting a Number to a Character String
      GET_TOKEN: Extracting a Token Based on a String of Delimiters
      INITCAP: Capitalizing the First Letter of Each Word in a String
      LAST_NONBLANK: Retrieving the Last Field Value That is Neither Blank nor Missing
      LEFT: Returning Characters From the Left of a Character String
      LOWER: Returning a String With All Letters Lowercase
      LPAD: Left-Padding a Character String
      LTRIM: Removing Blanks From the Left End of a String
      OVERLAY: Replacing Characters in a String
      PATTERNS: Returning a Pattern That Represents the Structure of the Input String
      POSITION: Returning the First Position of a Substring in a Source String
      POSITION: Returning the Position of a Search String in a Source String
      Regular Expression Functions
      REPEAT: Repeating a String a Given Number of Times
      REPLACE: Replacing a String
      RIGHT: Returning Characters From the Right of a Character String
      RPAD: Right-Padding a Character String
      RTRIM: Removing Blanks From the Right End of a String
      SPACE: Returning a String With a Given Number of Spaces
      SPLIT: Extracting an Element From a String
      SUBSTRING: Extracting a Substring From a Source String
      TOKEN: Extracting a Token From a String
      TRIM_: Removing a Leading Character, Trailing Character, or Both From a String
      UPPER: Returning a String With All Letters Uppercase
    Character Functions
      Character Function Notes
      ARGLEN: Measuring the Length of a String
      ASIS: Distinguishing Between Space and Zero
      BITSON: Determining If a Bit Is On or Off
      BITVAL: Evaluating a Bit String as an Integer
      BYTVAL: Translating a Character to Decimal
      CHKFMT: Checking the Format of a String
      CHKNUM: Checking a String for Numeric Format
      CTRAN: Translating One Character to Another
      CTRFLD: Centering a Character String
      EDIT: Extracting or Adding Characters
      GETTOK: Extracting a Substring (Token)
      LCWORD: Converting a String to Mixed-Case
      LCWORD2: Converting a String to Mixed-Case
      LCWORD3: Converting a String to Mixed-Case
      LJUST: Left-Justifying a String
      LOCASE: Converting Text to Lowercase
      OVRLAY: Overlaying a Character String
      PARAG: Dividing Text Into Smaller Lines
      PATTERN: Generating a Pattern From a String
      POSIT: Finding the Beginning of a Substring
      REVERSE: Reversing the Characters in a String
      RJUST: Right-Justifying a Character String
      SOUNDEX: Comparing Character Strings Phonetically
      SPELLNM: Spelling Out a Dollar Amount
      SQUEEZ: Reducing Multiple Spaces to a Single Space
      STRIP: Removing a Character From a String
      STRREP: Replacing Character Strings
      SUBSTR: Extracting a Substring
      TRIM: Removing Leading and Trailing Occurrences
      UPCASE: Converting Text to Uppercase
      XMLDECOD: Decoding XML-Encoded Characters
      XMLENCOD: XML-Encoding Characters
    Variable Length Character Functions
      Overview
      LENV: Returning the Length of an Alphanumeric Field
      LOCASV: Creating a Variable Length Lowercase String
      POSITV: Finding the Beginning of a Variable Length Substring
      SUBSTV: Extracting a Variable Length Substring
      TRIMV: Removing Characters From a String
      UPCASV: Creating a Variable Length Uppercase String
    Character Functions for DBCS Code Pages
      DCTRAN: Translating A Single-Byte or Double-Byte Character to Another
      DEDIT: Extracting or Adding Characters
      DSTRIP: Removing a Single-Byte or Double-Byte Character From a String
      DSUBSTR: Extracting a Substring
      JPTRANS: Converting Japanese Specific Characters
      KKFCUT: Truncating a String
      SFTDEL: Deleting the Shift Code From DBCS Data
      SFTINS: Inserting the Shift Code Into DBCS Data
    Maintain-specific Character Functions
      CHAR2INT: Translating a Character Into an Integer Value
      INT2CHAR: Translating an Integer Value Into a Character
      LCWORD and LCWORD2: Converting a Character String to Mixed-Case
      LENGTH: Determining the Length of a Character String
      LJUST: Left-Justifying a Character String (Maintain)
      LOWER: Converting a Character String to Lowercase
      MASK: Extracting or Adding Characters
      MNTGETTOK: Extracting Tokens From a String Function
      NLSCHR: Converting Characters From the Native English Code Page
      OVRLAY: Overlaying a Character String (Maintain)
      POSIT: Finding the Beginning of a Substring (Maintain)
      RJUST: Right-Justifying a Character String (Maintain)
      SELECTS: Decoding a Value From a Stack
      STRAN: Substituting One Substring for Another
      STRCMP: Comparing Character Strings
      STRICMP: Comparing Character Strings and Ignoring Case
      STRNCMP: Comparing Character Substrings
      STRTOKEN: Extracting a Substring Based on Delimiters
      SUBSTR: Extracting a Substring (Maintain)
      TRIM: Removing Trailing Occurrences (Maintain)
      TRIMLEN: Determining the Length of a String Excluding Trailing Spaces
      UPCASE: Converting Text to Uppercase (Maintain)
    Data Source and Decoding Functions
      CHECKMD5: Computing an MD5 Hash Check Value
      CHECKSUM: Computing a Hash Sum
      COALESCE: Returning the First Non-Missing Value
      DB_EXPR: Inserting an SQL Expression Into a Request
      DB_INFILE: Testing Values Against a File or an SQL Subquery
      DB_LOOKUP: Retrieving Data Source Values
      DECODE: Decoding Values
      FIND: Verifying the Existence of a Value in a Data Source
      IMPUTE: Replacing Missing Values With Aggregated Values
      LAST: Retrieving the Preceding Value
      LOOKUP: Retrieving a Value From a Cross-referenced Data Source
      NULLIF: Returning a Null Value When Parameters Are Equal
    Simplified Date and Date-Time Functions
      DAYNAME: Returning the Name of the Day From a Date Expression
      DT_CURRENT_DATE: Returning the Current Date
      DT_CURRENT_DATETIME: Returning the Current Date and Time
      DT_CURRENT_TIME: Returning the Current Time
      DT_TOLOCAL: Converting Universal Coordinated Time to Local Time
      DT_TOUTC: Converting Local Time to Universal Coordinated Time
      DTADD: Incrementing a Date or Date-Time Component
      DTDIFF: Returning the Number of Component Boundaries Between Date or Date-Time Values
      DTIME: Extracting Time Components From a Date-Time Value
      DTPART: Returning a Date or Date-Time Component in Integer Format
      DTRUNC: Returning the Start of a Date Period for a Given Date
      MONTHNAME: Returning the Name of the Month From a Date Expression
    Date Functions
      Overview of Date Functions
      Using Standard Date Functions
      DATEADD: Adding or Subtracting a Date Unit to or From a Date
      DATECVT: Converting the Format of a Date
      DATEDIF: Finding the Difference Between Two Dates
      DATEMOV: Moving a Date to a Significant Point
      DATETRAN: Formatting Dates in International Formats
      DPART: Extracting a Component From a Date
      FIQTR: Obtaining the Financial Quarter
      FIYR: Obtaining the Financial Year
      FIYYQ: Converting a Calendar Date to a Financial Date
      TODAY: Returning the Current Date
      Using Legacy Date Functions
      AYM: Adding or Subtracting Months
      AYMD: Adding or Subtracting Days
      CHGDAT: Changing How a Date String Displays
      DA Functions: Converting a Legacy Date to an Integer
      DMY, MDY, YMD: Calculating the Difference Between Two Dates
      DOWK and DOWKL: Finding the Day of the Week
      DT Functions: Converting an Integer to a Date
      GREGDT: Converting From Julian to Gregorian Format
      JULDAT: Converting From Gregorian to Julian Format
      YM: Calculating Elapsed Months
    Date-Time Functions
      Using Date-Time Functions
      HADD: Incrementing a Date-Time Value
      HCNVRT: Converting a Date-Time Value to Alphanumeric Format
      HDATE: Converting the Date Portion of a Date-Time Value to a Date Format
      HDIFF: Finding the Number of Units Between Two Date-Time Values
      HDTTM: Converting a Date Value to a Date-Time Value
      HEXTR: Extracting Components of a Date-Time Value and Setting Remaining Components to Zero
      HGETC: Storing the Current Local Date and Time in a Date-Time Field
      HGETZ: Storing the Current Coordinated Universal Time in a Date-Time Field
      HHMMSS: Retrieving the Current Time
      HHMS: Converting a Date-Time Value to a Time Value
      HINPUT: Converting an Alphanumeric String to a Date-Time Value
      HMIDNT: Setting the Time Portion of a Date-Time Value to Midnight
      HMASK: Extracting Date-Time Components and Preserving Remaining Components
      HNAME: Retrieving a Date-Time Component in Alphanumeric Format
      HPART: Retrieving a Date-Time Component as a Numeric Value
      HSETPT: Inserting a Component Into a Date-Time Value
      HTIME: Converting the Time Portion of a Date-Time Value to a Number
      HTMTOTS or TIMETOTS: Converting a Time to a Timestamp
      HYYWD: Returning the Year and Week Number From a Date-Time Value
    Maintain-specific Date and Time Functions
      Maintain-specific Standard Date and Time Functions
    Simplified Conversion Functions
      CHAR: Returning a Character Based on a Numeric Code
      COMPACTFORMAT: Displaying Numbers in an Abbreviated Format
      CTRLCHAR: Returning a Non-Printable Control Character
      DT_FORMAT: Converting a Date or Date-Time Value to an Alphanumeric String
      FPRINT: Displaying a Value in a Specified Format
      HEXTYPE: Returning the Hexadecimal View of an Input Value
      PHONETIC: Returning a Phonetic Key for a String
      TO_INTEGER: Converting a Character String to an Integer Value
      TO_NUMBER: Converting a Character String to a Numeric Value
    Format Conversion Functions
      ATODBL: Converting an Alphanumeric String to Double-Precision Format
      EDIT: Converting the Format of a Field
      FPRINT: Converting Fields to Alphanumeric Format
      FTOA: Converting a Number to Alphanumeric Format
      HEXBYT: Converting a Decimal Integer to a Character
      ITONUM: Converting a Large Binary Integer to Double-Precision Format
      ITOPACK: Converting a Large Binary Integer to Packed-Decimal Format
      ITOZ: Converting a Number to Zoned Format
      PCKOUT: Writing a Packed Number of Variable Length
      PTOA: Converting a Packed-Decimal Number to Alphanumeric Format
      TSTOPACK: Converting an MSSQL or Sybase Timestamp Column to Packed Decimal
      UFMT: Converting an Alphanumeric String to Hexadecimal
      XTPACK: Writing a Packed Number With Up to 31 Significant Digits to an Output File
    Maintain-specific Light Update Support Functions
      IWC.FindAppCGIValue: Retrieving a WebFOCUS Parameter or Variable Value
      IWC.GetAppCGIValue: Importing a WebFOCUS Parameter or Variable
    Simplified Numeric Functions
      ASCII: Returning the ASCII Code for the Leftmost Character in a String
      CEILING: Returning the Smallest Integer Value Greater Than or Equal to a Value
      EXPONENT: Raising e to a Power
      FLOOR: Returning the Largest Integer Less Than or Equal to a Value
      LOG10: Calculating the Base 10 Logarithm
      MOD: Calculating the Remainder From a Division
      POWER: Raising a Value to a Power
      ROUND: Rounding a Number to a Given Number of Decimal Places
      SIGN: Returning the Sign of a Number
      TRUNCATE: Truncating a Number to a Given Number of Decimal Places
    Numeric Functions
      ABS: Calculating Absolute Value
      ASIS: Distinguishing Between a Blank and a Zero
      BAR: Producing a Bar Chart
      CHKPCK: Validating a Packed Field
      DMOD, FMOD, and IMOD: Calculating the Remainder From a Division
      EXP: Raising e to the Nth Power
      EXPN: Evaluating a Number in Scientific Notation
      FMLCAP: Retrieving FML Hierarchy Captions
      FMLFOR: Retrieving FML Tag Values
      FMLINFO: Returning FOR Values
      FMLLIST: Returning an FML Tag List
      INT: Finding the Greatest Integer
      LOG: Calculating the Natural Logarithm
      MAX and MIN: Finding the Maximum or Minimum Value
      MIRR: Calculating the Modified Internal Return Rate
      NORMSDST and NORMSINV: Calculating Normal Distributions
      PRDNOR and PRDUNI: Generating Reproducible Random Numbers
      RDNORM and RDUNIF: Generating Random Numbers
      SQRT: Calculating the Square Root
      XIRR: Calculating the Modified Internal Return Rate (Periodic or Non-Periodic)
    Maintain-specific Script Functions
      IWCLink: Displaying a URL in a Browser or Frame
      IWCSwitchToSecure and IWCSwitchToUnsecure: Turning the Secure Sockets Layer On and Off
      IWCTrigger: Calling a Maintain Function From a Script Handler
      IWC.FindAppCGIValue: Finding a WebFOCUS Parameter or Variable Value
      IWC.GetAppCGIValue: Retrieving a WebFOCUS Parameter or Variable
    Simplified Statistical Functions
      Specify the Partition Size for Simplified Statistical Functions
      CORRELATION: Calculating the Degree of Correlation Between Two Sets of Data
      KMEANS_CLUSTER: Partitioning Observations Into Clusters Based on the Nearest Mean Value
      MULTIREGRESS: Creating a Multivariate Linear Regression Column
      OUTLIER: Identifying Outliers in Numeric Data
      RSERVE: Running an R Script
      STDDEV: Calculating the Standard Deviation for a Set of Data Values
    Machine Learning (Python-based) Functions
      ANOMALY_IF: Detecting Outliers
      CLASSIFY_BLR: Binary Logistic Regression
      CLASSIFY_KNN: K-Nearest Neighbors Classification
      CLASSIFY_RF: Random Forest Classification
      CLASSIFY_XGB: Extreme Gradient Boosting Classification
      REGRESS_KNN: K-Nearest Neighbors Regression
      REGRESS_POLY: Polynomial Regression
      REGRESS_RF: Random Forest Regression
      REGRESS_XGB: Extreme Gradient Boosting Regression
      RUN_MODEL and RUN_MODEL2: Running a Saved Python Model
    Simplified System Functions
      EDAPRINT: Inserting a Custom Message in the EDAPRINT Log File
      ENCRYPT: Encrypting a Password
      GETENV: Retrieving the Value of an Environment Variable
      PUTENV: Assigning a Value to an Environment Variable
      SLACK: Posting a Message to a Slack Channel
    System Functions
      CHECKPRIVS: Retrieving the Privilege State for the Connected User
      CLSDDREC: Closing All Files Opened by the PUTDDREC Function
      FEXERR: Retrieving an Error Message
      FGETENV: Retrieving the Value of an Environment Variable
      FINDMEM: Finding a Member of a Partitioned Data Set
      FPUTENV: Assigning a Value to an Environment Variable
      GETCOOKI: Retrieving a Browser Cookie Value
      GETHEADR: Retrieving an HTTP Header Variable
      GETPDS: Determining If a Member of a Partitioned Data Set Exists
      GETUSER: Retrieving a User ID
      GRPLIST: Retrieving the Group List of the Connected User
      JOBNAME: Retrieving the Current Process Identification String
      MVSDYNAM: Passing a DYNAM Command to the Command Processor
      PUTCOOKI: Submitting a Value to a Browser Cookie
      PUTDDREC: Writing a Character String as a Record in a Sequential File
      SLEEP: Suspending Execution for a Given Number of Seconds
      SPAWN: Creating a Subprocess From a Procedure
      SYSTEM: Calling a System Program
      SYSVAR: Retrieving the Value of a z/OS System Variable
    Simplified Geography Functions
      Sample Geography Files
      GIS_DISTANCE: Calculating the Distance Between Geometry Points
      GIS_DRIVE_ROUTE: Calculating the Driving Directions Between Geometry Points
      GIS_GEOCODE_ADDR: Geocoding a Complete Address
      GIS_GEOCODE_ADDR_CITY: Geocoding an Address Line, City, and State
      GIS_GEOCODE_ADDR_POSTAL: Geocoding an Address Line and Postal Code
      GIS_GEOMETRY: Building a JSON Geometry Object
      GIS_IN_POLYGON: Determining if a Point is in a Complex Polygon
      GIS_LINE: Building a JSON Line
      GIS_POINT: Building a Geometry Point
      GIS_REVERSE_COORDINATE: Returning a Geographic Component
      GIS_SERVICE_AREA: Calculating a Geometry Area Around a Given Point
      GIS_SERV_AREA_XY: Calculating a Service Area Around a Given Coordinate
    SQL Character Functions
      LOCATE: Returning the Position of a Substring in a String
    SQL Miscellaneous Functions
      CHR: Returning the ASCII Character Given a Numeric Code
    Creating a Subroutine
      Writing a Subroutine
      Compiling and Storing a Subroutine
      Testing the Subroutine
      Using a Custom Subroutine: The MTHNAM Subroutine
      Subroutines Written in REXX
    ASCII and EBCDIC Codes
      ASCII and EBCDIC Code Chart
    Launch PDF
  Creating Reports With ibi™ WebFOCUS® Language
    Creating Reports Overview
      Requirements for Creating a Report
      Report Types
      Developing Your Report Request
      Customizing a Report
      Selecting a Report Output Destination
    Displaying Report Data
      Using Display Commands in a Request
      Displaying Individual Values
      Adding Values
      Counting Values
      Expanding Byte Precision for COUNT and LIST
      Maximum Number of Display Fields Supported in a Request
      Manipulating Display Fields With Prefix Operators
      Displaying Pop-up Field Descriptions for Column Titles
    Sorting Tabular Reports
      Sorting Tabular Reports Overview
      Sorting Rows
      Sorting Columns
      Controlling Display of Sort Field Values
      Reformatting Sort Fields
      Manipulating Display Field Values in a Sort Group
      Creating a Matrix Report
      Controlling Collation Sequence
      Specifying the Sort Order
      Ranking Sort Field Values
      Grouping Numeric Data Into Ranges
      Restricting Sort Field Values by Highest/Lowest Rank
      Sorting and Aggregating Report Columns
      Hiding Sort Values
       Sort Performance Considerations
      Sorting With Multiple Display Commands
      Improving Efficiency With External Sorts
      Hierarchical Reporting: BY HIERARCHY
    Selecting Records for Your Report
      Selecting Records Overview
      Choosing a Filtering Method
      Selections Based on Individual Values
      Selection Based on Aggregate Values
      Applying Selection Criteria to the Internal Matrix Prior to COMPUTE Processing
      Using Compound Expressions for Record Selection
      Using Operators in Record Selection Tests
      Types of Record Selection Tests
      Selections Based on Group Key Values
      Setting Limits on the Number of Records Read
      Selecting Records Using IF Phrases
      Reading Selection Values From a File
      Assigning Screening Conditions to a File
      VSAM Record Selection Efficiencies
    Creating Temporary Fields
      What Is a Temporary Field?
      Defining a Virtual Field
      Creating a Calculated Value
      Assigning Column Reference Numbers
      Using FORECAST in a COMPUTE Command
      Calculating Trends and Predicting Values With FORECAST
      Calculating Trends and Predicting Values With Multivariate REGRESS
      Using Text Fields in DEFINE and COMPUTE
      Creating Temporary Fields Independent of a Master File
    Including Totals and Subtotals
      Calculating Row and Column Totals
      Including Section Totals and a Grand Total
      Including Subtotals
      Recalculating Values for Subtotal Rows
      Summarizing Alphanumeric Columns
      Manipulating Summary Values With Prefix Operators
      Combinations of Summary Commands
      Producing Summary Columns for Horizontal Sort Fields
      Performing Calculations at Sort Field Breaks
      Suppressing Grand Totals
      Conditionally Displaying Summary Lines and Text
    Using Expressions
      Using Expressions in Commands and Phrases
      Types of Expressions
      Creating a Numeric Expression
      Creating a Date Expression
      Creating a Date-Time Expression
      Creating a Character Expression
      Creating a Variable Length Character Expression
      Creating a Logical Expression
      Creating a Conditional Expression
    Saving and Reusing Your Report Output
      Saving Your Report Output
      Creating a HOLD File
      Holding Report Output in FOCUS Format
      Controlling Attributes in HOLD Master Files
      Keyed Retrieval From HOLD Files
      Saving and Retrieving HOLD Files
      Using DBMS Temporary Tables as HOLD Files
      Creating SAVE and SAVB Files
      Creating a PCHOLD File
      Choosing Output File Formats
      Using Text Fields in Output Files
      Creating a Delimited Sequential File
      Saving Report Output in INTERNAL Format
      Creating A Subquery or Sequential File With HOLD FORMAT SQL_SCRIPT
      Creating a Structured HOLD File
    Choosing a Display Format
      Report Display Formats
      Preserving Leading and Internal Blanks in Report Output
      Using Web Display Format: HTML
      Using Print Display Formats: PDF, PS
      Using Word Processing Display Formats: DOC, WP
      Saving Report Output in Excel XLSX Format
      Using PowerPoint PPT Display Format
      Saving Report Output in PPTX Format
    Linking a Report to Other Resources
      Linking Using StyleSheets
      Linking to Another Report
      Linking to a URL
      Linking to a JavaScript Function
      Linking to a Maintain Data Procedure
      Multi-Drill Feature With Cascading Menus and User-Defined Styling
      Creating Parameters
      Linking With Conditions
      Linking From a Graphic Image
      Specifying a Base URL
      Specifying a Target Frame
      Creating a Compound Report
      Creating a PDF Compound Report With Drill Through Links
    Navigating Within an HTML Report
      Navigating Sort Groups From a Table of Contents
      Adding the HTML Table of Contents Tree Control to Reports
      Controlling the Display of Sorted Data With Accordion Reports
      Navigating a Multi-Page Report With the WebFOCUS Viewer
      Linking Report Pages
    Bursting Reports Into Multiple HTML Files
      Bursting Reports Overview
    Handling Records With Missing Field Values
      Irrelevant Report Data
      Missing Field Values
      Handling a Missing Segment Instance
      Setting the NODATA Character String
    Joining Data Sources
      Types of Joins
      How the JOIN Command Works
      Creating an Equijoin
      Using a Conditional Join
      Full Outer Joins
      Reporting Against a Multi-Fact Cluster Synonym
      Navigating Joins Between Cluster Synonyms
      Invoking Context Analysis for a Star Schema With a Fan Trap
      Adding DBA Restrictions to the Join Condition: SET DBAJOIN
      Preserving Virtual Fields During Join Parsing
      Displaying Joined Structures
      Clearing Joined Structures
    Merging Data Sources
      Merging Data
      Types of MATCH Processing
      MATCH Processing With Common High-Order Sort Fields
      Fine-Tuning MATCH Processing
      Universal Concatenation
      Merging Concatenated Data Sources
      Cartesian Product
    Formatting Reports: An Overview
      What Kinds of Formatting Can I Do?
      How to Specify Formatting in a Report
      Standard and Legacy Formatting
      Techniques for Quick and Easy Formatting
      Navigating From a Report to Other Resources
    Creating and Managing a WebFOCUS StyleSheet
      Creating a WebFOCUS StyleSheet
      General WebFOCUS StyleSheet Syntax
      Reusing WebFOCUS StyleSheet Declarations With Macros
      WebFOCUS StyleSheet Attribute Inheritance
      Creating Reports With the ENWarm StyleSheet
    Controlling Report Formatting
      Generating an Internal Cascading Style Sheet for HTML Reports
      Selecting a Unit of Measurement
      Conditionally Formatting, Displaying, and Linking in a StyleSheet
      Including Summary Lines, Underlines, Skipped Lines, and Page Breaks
      Conditionally Including Summary Lines, Underlines, Skipped Lines, and Page Breaks
      Controlling the Display of Empty Reports
      Formatting a Report Using Only StyleSheet Defaults
    Identifying a Report Component in a WebFOCUS StyleSheet
      Identifying an Entire Report, Column, or Row
      Identifying Tags for SUBTOTAL and GRANDTOTAL Lines
      Identifying Data
      Identifying a Heading, Footing, Title, or FML Free Text
      Identifying a Page Number, Underline, or Skipped Line
    Using an External Cascading Style Sheet
      What Is a Cascading Style Sheet?
      Why Use an External Cascading Style Sheet?
      Formatting a Report With an External Cascading Style Sheet
      Working With an External Cascading Style Sheet
      Applying External Cascading Style Sheet Formatting
      Combining an External CSS With Other Formatting Methods
      Linking to an External Cascading Style Sheet
      Inheritance and External Cascading Style Sheets
      Using External Cascading Style Sheets With Non-HTML Reports
      Requirements for Using an External Cascading Style Sheet
      FAQ About Using External Cascading Style Sheets
      Troubleshooting External Cascading Style Sheets
    Laying Out the Report Page
      Selecting Page Size, Orientation, and Color
      Setting Page Margins
      Positioning a Report Component
      Arranging Columns on a Page
      Suppressing Column Display
      Inserting a Page Break
      Inserting Page Numbers
      Adding Grids and Borders
      Defining Borders Around Boxes With PPTX and PDF Formats
      Displaying Superscripts On Data, Heading, and Footing Lines
      Adding Underlines and Skipped Lines
      Removing Blank Lines From a Report
      Adding an Image to a Report
      Associating Bar Graphs With Report Data
      Working With Mailing Labels and Multi-Pane Pages
    Using Headings, Footings, Titles, and Labels
      Creating Headings and Footings
      Including an Element in a Heading or Footing
      Displaying Syntax Components in Heading and Footing Objects
      Repeating Headings and Footings on Panels in PDF Report Output
      Customizing a Column Title
      Controlling Column Title Underlining Using a SET Command
      Controlling Column Title Underlining Using a StyleSheet Attribute
      Creating Labels to Identify Data
      Formatting a Heading, Footing, Title, or Label
      Applying Font Attributes to a Heading, Footing, Title, or Label
      Adding Borders and Grid Lines
      Justifying a Heading, Footing, Title, or Label
      Choosing an Alignment Method for Heading and Footing Elements
      Aligning a Heading or Footing Element in an HTML, XLSX, EXL2K, PDF, PPTX, or DHTML Report
      Aligning a Heading or Footing Element Across Columns in an HTML or PDF Report
      Aligning Content in a Multi-Line Heading or Footing
      Positioning Headings, Footings, or Items Within Them
      Controlling the Vertical Positioning of a Heading or Footing
      Placing a Report Heading or Footing on Its Own Page
    Formatting Report Data
      Specifying Font Format in a Report
      Specifying Background Color in a Report
      Alternating Background Color By Wrapped Line
      Specifying Data Format in a Report
      Positioning Data in a Report
    Creating a Graph
      Content Analysis: Determining Graphing Objectives
      The GRAPH Command
      Creating an HTML5 Graph
      Selecting a Graph Type
      Selecting Values for the X and Y Axes
      Creating Multiple Graphs
      Plotting Dates in Graphs
      Refining the Data Set For Your Graph
      Displaying Missing Data Values in a Graph
      Applying Conditional Styling to a Graph
      Linking Graphs to Other Resources
      Adding Labels to a Graph
      Applying Custom Styling to a Graph
      Saving a Graph as an Image File
      Printing a Graph
    Creating Financial Reports With Financial Modeling Language (FML)
      Reporting With FML
      Creating Rows From Data
      Supplying Data Directly in a Request
      Performing Inter-Row Calculations
      Referring to Rows in Calculations
      Referring to Columns in Calculations
      Referring to Rows and Columns in Calculations
      Referring to Cells in Calculations
      Using Functions in RECAP Calculations
      Inserting Rows of Free Text
      Adding a Column to an FML Report
      Creating a Recursive Model
      Reporting Dynamically From a Hierarchy
      Customizing a Row Title
      Formatting an FML Report
      Suppressing the Display of Rows
      Saving and Retrieving Intermediate Report Results
      Creating HOLD Files From FML Reports
    Creating a Free-Form Report
      Creating a Free-Form Report
      Designing a Free-Form Report
    Using SQL to Create Reports
      Supported and Unsupported SQL Statements
      Using SQL Translator Commands
      SQL Translator Support for Date, Time, and Timestamp Fields
      Index Optimized Retrieval
      TABLEF Optimization
      SQL INSERT, UPDATE, and DELETE Commands
    Improving Report Processing
      Rotating a Data Structure for Enhanced Retrieval
      Optimizing Retrieval Speed for FOCUS Data Sources
      Automatic Indexed Retrieval
      Data Retrieval Using TABLEF
      Compiling Expressions
    Master Files and Diagrams
      EMPLOYEE Data Source
      JOBFILE Data Source
      EDUCFILE Data Source
      SALES Data Source
      CAR Data Source
      LEDGER Data Source
      FINANCE Data Source
      REGION Data Source
      EMPDATA Data Source
      TRAINING Data Source
      COURSE Data Source
      JOBHIST Data Source
      JOBLIST Data Source
      LOCATOR Data Source
      PERSINFO Data Source
      SALHIST Data Source
      VIDEOTRK, MOVIES, and ITEMS Data Sources
      VIDEOTR2 Data Source
      Gotham Grinds Data Sources
      Century Corp Data Sources
    Error Messages
      Displaying Messages
    Table Syntax Summary and Limits
      TABLE Syntax Summary
      TABLEF Syntax Summary
      MATCH Syntax Summary
      FOR Syntax Summary
      TABLE Limits
    Referring to Fields in a Report Request
      Referring to an Individual Field
      Referring to Fields Using Qualified Field Names
      Referring to All of the Fields in a Segment
      Displaying a List of Field Names
    Launch PDF
  Describing Data With ibi™ WebFOCUS® Language
    Understanding a Data Source Description
      A Note About Data Source Terminology
      What Is a Data Source Description?
      How an Application Uses a Data Source Description
      What Does a Master File Describe?
      Creating a Data Source Description
      Naming a Master File
      What Is in a Master File?
    Identifying a Data Source
      Identifying a Data Source Overview
      Specifying a Data Source Name: FILENAME
      Identifying a Data Source Type: SUFFIX
      Specifying a Code Page in a Master File
      Specifying Byte Order
      Specifying Data Type: IOTYPE
      Providing Descriptive Information for a Data Source: REMARKS
      Specifying a Physical File Name: DATASET
      Creating and Using a Master File Profile
      Storing Localized Metadata in Language Files
    Describing a Group of Fields
      Defining a Single Group of Fields
      Identifying a Logical View: Redefining a Segment
      Relating Multiple Groups of Fields
      Logical Dependence: The Parent-Child Relationship
      Logical Independence: Multiple Paths
      Cardinal Relationships Between Segments
      One-to-One Relationship
      One-to-Many Relationship
      Many-to-Many Relationship
      Recursive Relationships
      Relating Segments From Different Types of Data Sources
      Rotating a Data Source: An Alternate View
      Defining a Prefix for Field Titles
    Describing an Individual Field
      Field Characteristics
      The Field Name: FIELDNAME
      The Field Synonym: ALIAS
      The Displayed Data Type: USAGE
      The Stored Data Type: ACTUAL
      Adding a Geographic Role for a Field
      Null or MISSING Values: MISSING
      Describing an FML Hierarchy
      Defining a Dimension: WITHIN
      Validating Data: ACCEPT
      Specifying Acceptable Values for a Dimension
      Alternative Report Column Titles: TITLE
      Documenting the Field: DESCRIPTION
      Multilingual Metadata
      Describing a Virtual Field: DEFINE
      Describing a Calculated Value: COMPUTE
      Describing a Filter: FILTER
      Describing a Sort Object: SORTOBJ
      Calling a DEFINE FUNCTION in a Master File
      Using Date System Amper Variables in Master File DEFINEs
      Parameterizing Master and Access File Values Using Variables
      Converting Alphanumeric Dates to WebFOCUS Dates
    Describing a Sequential, VSAM, or ISAM Data Source
      Sequential Data Source Formats
      Standard Master File Attributes for a Sequential Data Source
      Standard Master File Attributes for a VSAM or ISAM Data Source
      Describing a Multiply Occurring Field in a Free-Format Data Source
      Describing a Multiply Occurring Field in a Fixed-Format, VSAM, or ISAM Data Source
      Redefining a Field in a Non-FOCUS Data Source
      Extra-Large Record Length Support
      Describing Multiple Record Types
      Combining Multiply Occurring Fields and Multiple Record Types
      Establishing VSAM Data and Index Buffers
      Using a VSAM Alternate Index
      Describing a Token-Delimited Data Source
    Describing a FOCUS Data Source
      Types of FOCUS Data Sources
      Designing a FOCUS Data Source
      Describing a Single Segment
      GROUP Attribute
      ACCEPT Attribute
      INDEX Attribute
      Describing a Partitioned FOCUS Data Source
      Multi-Dimensional Index (MDI)
    Defining a Join in a Master File
      Join Types
      Static Joins Defined in the Master File: SEGTYPE = KU and KM
      Using Cross-Referenced Descendant Segments: SEGTYPE = KL and KLU
      Dynamic Joins Defined in the Master File: SEGTYPE = DKU and DKM
      Conditional Joins in the Master File
      Comparing Static and Dynamic Joins
      Joining to One Cross-Referenced Segment From Several Host Segments
      Creating a Single-Root Cluster Master File
      Creating a Multiple-Root Cluster Master File
    Creating a Business View of a Master File
      Grouping Business Logic In a Business View
      Business View DV Roles
    Checking and Changing a Master File: CHECK
      Checking a Data Source Description
      CHECK Command Display
      PICTURE Option
      HOLD Option
    Providing Data Source Security: DBA
      Introduction to Data Source Security
      Implementing Data Source Security
      Specifying an Access Type: The ACCESS Attribute
      Limiting Data Source Access: The RESTRICT Attribute
      Controlling the Source of Access Restrictions in a Multi-file Structure
      Adding DBA Restrictions to the Join Condition
      Placing Security Information in a Central Master File
      Summary of Security Attributes
      Hiding Restriction Rules: The ENCRYPT Command
      FOCEXEC Security
    Creating and Rebuilding a Data Source
      Creating a New Data Source: The CREATE Command
      Rebuilding a Data Source: The REBUILD Command
      Optimizing File Size: The REBUILD Subcommand
      Changing Data Source Structure: The REORG Subcommand
      Indexing Fields: The INDEX Subcommand
      Creating an External Index: The EXTERNAL INDEX Subcommand
      Checking Data Source Integrity: The CHECK Subcommand
      Changing the Data Source Creation Date and Time: The TIMESTAMP Subcommand
      Converting Legacy Dates: The DATE NEW Subcommand
      Creating a Multi-Dimensional Index: The MDINDEX Subcommand
    Master Files and Diagrams
      EMPLOYEE Data Source
      JOBFILE Data Source
      EDUCFILE Data Source
      SALES Data Source
      CAR Data Source
      LEDGER Data Source
      FINANCE Data Source
      REGION Data Source
      EMPDATA Data Source
      TRAINING Data Source
      COURSE Data Source
      JOBHIST Data Source
      JOBLIST Data Source
      LOCATOR Data Source
      PERSINFO Data Source
      SALHIST Data Source
      VIDEOTRK, MOVIES, and ITEMS Data Sources
      VIDEOTR2 Data Source
      Gotham Grinds Data Sources
      Century Corp Data Sources
    Error Messages
      Displaying Messages
    Rounding in WebFOCUS
      Data Storage and Display
      Rounding in Calculations and Conversions
    Launch PDF
  Developing Reporting Applications
    WebFOCUS Application Logic
      Three-Tier Application Logic
      Publishing an Application
      WebFOCUS Components
      Section 508 Accessibility in WebFOCUS
    Managing Applications
      What Is an Application?
      Procedures and Metadata on the Application Tree
      Managing Applications and Paths
      Application Commands Overview
      Search Path Management Commands
      Application and File Management Commands
      Output Redirection Commands
      Application Metadata Commands and Catalog Metadata
      APP HELP
      Restricting the Use of APP Commands
      Accessing Metadata and Procedures
      Allocating Temporary Files
      Temporary Space Usage and Location
      Temporary Disk Space Usage for Non-PDS Deployment
      Application Tools
    Coding a User Interface
      Which Tools Can You Use?
      The WebFOCUS Client
      Using the Servlet
      Using a Dynamic Multiselect Drop-Down List
      Enabling Ad Hoc Reporting
      Validating a Form With JavaScript
       WebFOCUS Autoprompt Facility
       Responsive Autoprompt
       HTML Autoprompt
      Autoprompt Considerations
      Defining Parameter-Based Filters
      Customizing the Autoprompt Facility
      Displaying a Report on the Default WebFOCUS Page
      Designing an HTML Page for Report Display
    Enhancing a User Interface
      Displaying a Report in a Helper Application
      Controlling Multiple Reports
      Including CSRF Tokens in an HTML Webpage
      Adding JavaScript for Drill-Down Reporting
      Facilitating Report Manipulation
      Using a Cascading Style Sheet to Standardize Display
      Displaying a Previously Run Report
      Passing a User ID From HTML for a Custom Menu
    Managing Flow of Control in an Application
      Uses for Dialogue Manager
      Dialogue Manager Processing
      Creating a Dialogue Manager Procedure
      Customizing a Procedure With Variables
      Creating a Standard Quote-Delimited String
      Creating and Working With Variables
      Using Numeric Amper Variables in Functions
      Controlling the Execution of a Procedure
      Navigating a Procedure
      Enhancing an HTML Webpage With a Procedure
      Issuing Operating System Commands
      Controlling Passwords With Dialogue Manager
      Sending a Message to the Application
      Testing and Debugging a Dialogue Manager Procedure
      Dialogue Manager Syntax Reference
    Testing and Debugging a Procedure
      Debugging Your Application With Query Commands
      Displaying Combined Structures
      Displaying Virtual Fields
      Displaying the Currency Data Source in Effect
      Displaying Available Fields
      Displaying the File Directory Table
      Displaying Field Information for a Master File
      Displaying Data Source Statistics
      Displaying Current DDNAMEs Assigned With FILEDEF
      Displaying Defined Functions
      Displaying HOLD Fields
      Displaying JOIN Structures
      Displaying National Language Support
      Displaying Explanations of Error Messages
      Displaying the Current Search Path
      Displaying the Release Number
      Displaying the Values of a Remote Server
      Displaying Parameter Settings
      Displaying Graph Parameters
      Displaying the Site Code of the Connected Server
      Displaying Command Statistics
      Displaying StyleSheet Parameter Settings
      Displaying Information About the SU Machine
      Displaying Data Sources Specified With USE
      Displaying Global Variable Values
      Identifying the Files Being Used
      Reporting Dynamically From System Tables
    Accessing a FOCUS Data Source
      The USE Command
      Identifying a FOCUS Data Source
      Using Alternative File Specifications
      Identifying a New Data Source
      Protecting a Data Source
      Concatenating Data Sources
      Displaying the Current USE Options
      Clearing the USE Options
    Customizing Your Environment
      When Do You Use the SET Command?
      Ways to Issue a SET Command
      Coding a SET Command
      Types of SET Parameters
      SET Parameter Syntax
    Defining and Allocating WebFOCUS Files
      Allocating WebFOCUS Files
      Application Files Under Windows
      Extract Files Under Windows
      Work Files Under Windows
      Determining If A File Exists Under Windows
      WebFOCUS Files Under MVS
      Application Files Under MVS
      Extract Files Under MVS
      Work Files Under MVS
      Reviewing Attributes of Allocated Files Under MVS
      Application Files Under UNIX
      Extract Files Under UNIX
      Work Files Under UNIX
      Determining If a File Exists Under UNIX
    Euro Currency Support
      Integrating the Euro Currency
      Converting Currencies
      Creating the Currency Data Source
      Identifying Fields That Contain Currency Data
      Activating the Currency Data Source
      Processing Currency Data
      Querying the Currency Data Source in Effect
      Punctuating Numbers
      Selecting an Extended Currency Symbol
    Launch PDF
  Using Functions
    How to Use This Manual
      Available Languages
      Operating Systems
    Introducing Functions
      Using Functions
      Types of Functions
      Character Chart for ASCII and EBCDIC
    Accessing and Calling a Function
      Calling a Function
      Supplying an Argument in a Function
      Calling a Function From a DEFINE, COMPUTE, or VALIDATE Command
      Calling a Function From a Dialogue Manager Command
      Calling a Function From Another Function
      Calling a Function in WHERE or IF Criteria
      Calling a Function in WHEN Criteria
      Calling a Function From a RECAP Command
      Storing and Accessing an External Function
    Simplified Analytic Functions
      FORECAST_MOVAVE: Using a Simple Moving Average
      FORECAST_EXPAVE: Using Single Exponential Smoothing
      FORECAST_DOUBLEXP: Using Double Exponential Smoothing
      FORECAST_SEASONAL: Using Triple Exponential Smoothing
      FORECAST_LINEAR: Using a Linear Regression Equation
      PARTITION_AGGR: Creating Rolling Calculations
      PARTITION_REF: Using Prior or Subsequent Field Values in Calculations
      INCREASE: Calculating the Difference Between the Current and a Prior Value of a Field
      PCT_INCREASE: Calculating the Percentage Difference Between the Current and a Prior Value of a Field
      PREVIOUS: Retrieving a Prior Value of a Field
      RUNNING_AVE: Calculating an Average Over a Group of Rows
      RUNNING_MAX: Calculating a Maximum Over a Group of Rows
      RUNNING_MIN: Calculating a Minimum Over a Group of Rows
      RUNNING_SUM: Calculating a Sum Over a Group of Rows
    Simplified Character Functions
      CHAR_LENGTH: Returning the Length in Characters of a String
      CONCAT: Concatenating Strings
      DIFFERENCE: Measuring the Phonetic Similarity Between Character Strings
      DIGITS: Converting a Number to a Character String
      GET_TOKEN: Extracting a Token Based on a String of Delimiters
      INITCAP: Capitalizing the First Letter of Each Word in a String
      LAST_NONBLANK: Retrieving the Last Field Value That is Neither Blank nor Missing
      LEFT: Returning Characters From the Left of a Character String
      LOWER: Returning a String With All Letters Lowercase
      LPAD: Left-Padding a Character String
      LTRIM: Removing Blanks From the Left End of a String
      OVERLAY: Replacing Characters in a String
      PATTERNS: Returning a Pattern That Represents the Structure of the Input String
      POSITION: Returning the First Position of a Substring in a Source String
      POSITION: Returning the Position of a Search String in a Source String
      Regular Expression Functions
      REPEAT: Repeating a String a Given Number of Times
      REPLACE: Replacing a String
      RIGHT: Returning Characters From the Right of a Character String
      RPAD: Right-Padding a Character String
      RTRIM: Removing Blanks From the Right End of a String
      SPACE: Returning a String With a Given Number of Spaces
      SPLIT: Extracting an Element From a String
      SUBSTRING: Extracting a Substring From a Source String
      TOKEN: Extracting a Token From a String
      TRIM_: Removing a Leading Character, Trailing Character, or Both From a String
      UPPER: Returning a String With All Letters Uppercase
    Character Functions
      Character Function Notes
      ARGLEN: Measuring the Length of a String
      ASIS: Distinguishing Between Space and Zero
      BITSON: Determining If a Bit Is On or Off
      BITVAL: Evaluating a Bit String as an Integer
      BYTVAL: Translating a Character to Decimal
      CHKFMT: Checking the Format of a String
      CHKNUM: Checking a String for Numeric Format
      CTRAN: Translating One Character to Another
      CTRFLD: Centering a Character String
      EDIT: Extracting or Adding Characters
      GETTOK: Extracting a Substring (Token)
      LCWORD: Converting a String to Mixed-Case
      LCWORD2: Converting a String to Mixed-Case
      LCWORD3: Converting a String to Mixed-Case
      LJUST: Left-Justifying a String
      LOCASE: Converting Text to Lowercase
      OVRLAY: Overlaying a Character String
      PARAG: Dividing Text Into Smaller Lines
      PATTERN: Generating a Pattern From a String
      POSIT: Finding the Beginning of a Substring
      REVERSE: Reversing the Characters in a String
      RJUST: Right-Justifying a Character String
      SOUNDEX: Comparing Character Strings Phonetically
      SPELLNM: Spelling Out a Dollar Amount
      SQUEEZ: Reducing Multiple Spaces to a Single Space
      STRIP: Removing a Character From a String
      STRREP: Replacing Character Strings
      SUBSTR: Extracting a Substring
      TRIM: Removing Leading and Trailing Occurrences
      UPCASE: Converting Text to Uppercase
      XMLDECOD: Decoding XML-Encoded Characters
      XMLENCOD: XML-Encoding Characters
    Variable Length Character Functions
      Overview
      LENV: Returning the Length of an Alphanumeric Field
      LOCASV: Creating a Variable Length Lowercase String
      POSITV: Finding the Beginning of a Variable Length Substring
      SUBSTV: Extracting a Variable Length Substring
      TRIMV: Removing Characters From a String
      UPCASV: Creating a Variable Length Uppercase String
    Character Functions for DBCS Code Pages
      DCTRAN: Translating A Single-Byte or Double-Byte Character to Another
      DEDIT: Extracting or Adding Characters
      DSTRIP: Removing a Single-Byte or Double-Byte Character From a String
      DSUBSTR: Extracting a Substring
      JPTRANS: Converting Japanese Specific Characters
      KKFCUT: Truncating a String
      SFTDEL: Deleting the Shift Code From DBCS Data
      SFTINS: Inserting the Shift Code Into DBCS Data
    Maintain-specific Character Functions
      CHAR2INT: Translating a Character Into an Integer Value
      INT2CHAR: Translating an Integer Value Into a Character
      LCWORD and LCWORD2: Converting a Character String to Mixed-Case
      LENGTH: Determining the Length of a Character String
      LJUST: Left-Justifying a Character String (Maintain)
      LOWER: Converting a Character String to Lowercase
      MASK: Extracting or Adding Characters
      MNTGETTOK: Extracting Tokens From a String Function
      NLSCHR: Converting Characters From the Native English Code Page
      OVRLAY: Overlaying a Character String (Maintain)
      POSIT: Finding the Beginning of a Substring (Maintain)
      RJUST: Right-Justifying a Character String (Maintain)
      SELECTS: Decoding a Value From a Stack
      STRAN: Substituting One Substring for Another
      STRCMP: Comparing Character Strings
      STRICMP: Comparing Character Strings and Ignoring Case
      STRNCMP: Comparing Character Substrings
      STRTOKEN: Extracting a Substring Based on Delimiters
      SUBSTR: Extracting a Substring (Maintain)
      TRIM: Removing Trailing Occurrences (Maintain)
      TRIMLEN: Determining the Length of a String Excluding Trailing Spaces
      UPCASE: Converting Text to Uppercase (Maintain)
    Data Source and Decoding Functions
      CHECKMD5: Computing an MD5 Hash Check Value
      CHECKSUM: Computing a Hash Sum
      COALESCE: Returning the First Non-Missing Value
      DB_EXPR: Inserting an SQL Expression Into a Request
      DB_INFILE: Testing Values Against a File or an SQL Subquery
      DB_LOOKUP: Retrieving Data Source Values
      DECODE: Decoding Values
      FIND: Verifying the Existence of a Value in a Data Source
      IMPUTE: Replacing Missing Values With Aggregated Values
      LAST: Retrieving the Preceding Value
      LOOKUP: Retrieving a Value From a Cross-referenced Data Source
      NULLIF: Returning a Null Value When Parameters Are Equal
    Simplified Date and Date-Time Functions
      DAYNAME: Returning the Name of the Day From a Date Expression
      DT_CURRENT_DATE: Returning the Current Date
      DT_CURRENT_DATETIME: Returning the Current Date and Time
      DT_CURRENT_TIME: Returning the Current Time
      DT_TOLOCAL: Converting Universal Coordinated Time to Local Time
      DT_TOUTC: Converting Local Time to Universal Coordinated Time
      DTADD: Incrementing a Date or Date-Time Component
      DTDIFF: Returning the Number of Component Boundaries Between Date or Date-Time Values
      DTIME: Extracting Time Components From a Date-Time Value
      DTPART: Returning a Date or Date-Time Component in Integer Format
      DTRUNC: Returning the Start of a Date Period for a Given Date
      MONTHNAME: Returning the Name of the Month From a Date Expression
    Date Functions
      Overview of Date Functions
      Using Standard Date Functions
      DATEADD: Adding or Subtracting a Date Unit to or From a Date
      DATECVT: Converting the Format of a Date
      DATEDIF: Finding the Difference Between Two Dates
      DATEMOV: Moving a Date to a Significant Point
      DATETRAN: Formatting Dates in International Formats
      DPART: Extracting a Component From a Date
      FIQTR: Obtaining the Financial Quarter
      FIYR: Obtaining the Financial Year
      FIYYQ: Converting a Calendar Date to a Financial Date
      TODAY: Returning the Current Date
      Using Legacy Date Functions
      AYM: Adding or Subtracting Months
      AYMD: Adding or Subtracting Days
      CHGDAT: Changing How a Date String Displays
      DA Functions: Converting a Legacy Date to an Integer
      DMY, MDY, YMD: Calculating the Difference Between Two Dates
      DOWK and DOWKL: Finding the Day of the Week
      DT Functions: Converting an Integer to a Date
      GREGDT: Converting From Julian to Gregorian Format
      JULDAT: Converting From Gregorian to Julian Format
      YM: Calculating Elapsed Months
    Date-Time Functions
      Using Date-Time Functions
      HADD: Incrementing a Date-Time Value
      HCNVRT: Converting a Date-Time Value to Alphanumeric Format
      HDATE: Converting the Date Portion of a Date-Time Value to a Date Format
      HDIFF: Finding the Number of Units Between Two Date-Time Values
      HDTTM: Converting a Date Value to a Date-Time Value
      HEXTR: Extracting Components of a Date-Time Value and Setting Remaining Components to Zero
      HGETC: Storing the Current Local Date and Time in a Date-Time Field
      HGETZ: Storing the Current Coordinated Universal Time in a Date-Time Field
      HHMMSS: Retrieving the Current Time
      HHMS: Converting a Date-Time Value to a Time Value
      HINPUT: Converting an Alphanumeric String to a Date-Time Value
      HMIDNT: Setting the Time Portion of a Date-Time Value to Midnight
      HMASK: Extracting Date-Time Components and Preserving Remaining Components
      HNAME: Retrieving a Date-Time Component in Alphanumeric Format
      HPART: Retrieving a Date-Time Component as a Numeric Value
      HSETPT: Inserting a Component Into a Date-Time Value
      HTIME: Converting the Time Portion of a Date-Time Value to a Number
      HTMTOTS or TIMETOTS: Converting a Time to a Timestamp
      HYYWD: Returning the Year and Week Number From a Date-Time Value
    Maintain-specific Date and Time Functions
      Maintain-specific Standard Date and Time Functions
    Simplified Conversion Functions
      CHAR: Returning a Character Based on a Numeric Code
      COMPACTFORMAT: Displaying Numbers in an Abbreviated Format
      CTRLCHAR: Returning a Non-Printable Control Character
      DT_FORMAT: Converting a Date or Date-Time Value to an Alphanumeric String
      FPRINT: Displaying a Value in a Specified Format
      HEXTYPE: Returning the Hexadecimal View of an Input Value
      PHONETIC: Returning a Phonetic Key for a String
      TO_INTEGER: Converting a Character String to an Integer Value
      TO_NUMBER: Converting a Character String to a Numeric Value
    Format Conversion Functions
      ATODBL: Converting an Alphanumeric String to Double-Precision Format
      EDIT: Converting the Format of a Field
      FPRINT: Converting Fields to Alphanumeric Format
      FTOA: Converting a Number to Alphanumeric Format
      HEXBYT: Converting a Decimal Integer to a Character
      ITONUM: Converting a Large Binary Integer to Double-Precision Format
      ITOPACK: Converting a Large Binary Integer to Packed-Decimal Format
      ITOZ: Converting a Number to Zoned Format
      PCKOUT: Writing a Packed Number of Variable Length
      PTOA: Converting a Packed-Decimal Number to Alphanumeric Format
      TSTOPACK: Converting an MSSQL or Sybase Timestamp Column to Packed Decimal
      UFMT: Converting an Alphanumeric String to Hexadecimal
      XTPACK: Writing a Packed Number With Up to 31 Significant Digits to an Output File
    Maintain-specific Light Update Support Functions
      IWC.FindAppCGIValue: Retrieving a WebFOCUS Parameter or Variable Value
      IWC.GetAppCGIValue: Importing a WebFOCUS Parameter or Variable
    Simplified Numeric Functions
      ASCII: Returning the ASCII Code for the Leftmost Character in a String
      CEILING: Returning the Smallest Integer Value Greater Than or Equal to a Value
      EXPONENT: Raising e to a Power
      FLOOR: Returning the Largest Integer Less Than or Equal to a Value
      LOG10: Calculating the Base 10 Logarithm
      MOD: Calculating the Remainder From a Division
      POWER: Raising a Value to a Power
      ROUND: Rounding a Number to a Given Number of Decimal Places
      SIGN: Returning the Sign of a Number
      TRUNCATE: Truncating a Number to a Given Number of Decimal Places
    Numeric Functions
      ABS: Calculating Absolute Value
      ASIS: Distinguishing Between a Blank and a Zero
      BAR: Producing a Bar Chart
      CHKPCK: Validating a Packed Field
      DMOD, FMOD, and IMOD: Calculating the Remainder From a Division
      EXP: Raising e to the Nth Power
      EXPN: Evaluating a Number in Scientific Notation
      FMLCAP: Retrieving FML Hierarchy Captions
      FMLFOR: Retrieving FML Tag Values
      FMLINFO: Returning FOR Values
      FMLLIST: Returning an FML Tag List
      INT: Finding the Greatest Integer
      LOG: Calculating the Natural Logarithm
      MAX and MIN: Finding the Maximum or Minimum Value
      MIRR: Calculating the Modified Internal Return Rate
      NORMSDST and NORMSINV: Calculating Normal Distributions
      PRDNOR and PRDUNI: Generating Reproducible Random Numbers
      RDNORM and RDUNIF: Generating Random Numbers
      SQRT: Calculating the Square Root
      XIRR: Calculating the Modified Internal Return Rate (Periodic or Non-Periodic)
    Maintain-specific Script Functions
      IWCLink: Displaying a URL in a Browser or Frame
      IWCSwitchToSecure and IWCSwitchToUnsecure: Turning the Secure Sockets Layer On and Off
      IWCTrigger: Calling a Maintain Function From a Script Handler
      IWC.FindAppCGIValue: Finding a WebFOCUS Parameter or Variable Value
      IWC.GetAppCGIValue: Retrieving a WebFOCUS Parameter or Variable
    Simplified Statistical Functions
      Specify the Partition Size for Simplified Statistical Functions
      CORRELATION: Calculating the Degree of Correlation Between Two Sets of Data
      KMEANS_CLUSTER: Partitioning Observations Into Clusters Based on the Nearest Mean Value
      MULTIREGRESS: Creating a Multivariate Linear Regression Column
      OUTLIER: Identifying Outliers in Numeric Data
      RSERVE: Running an R Script
      STDDEV: Calculating the Standard Deviation for a Set of Data Values
    Machine Learning (Python-based) Functions
      ANOMALY_IF: Detecting Outliers
      CLASSIFY_BLR: Binary Logistic Regression
      CLASSIFY_KNN: K-Nearest Neighbors Classification
      CLASSIFY_RF: Random Forest Classification
      CLASSIFY_XGB: Extreme Gradient Boosting Classification
      REGRESS_KNN: K-Nearest Neighbors Regression
      REGRESS_POLY: Polynomial Regression
      REGRESS_RF: Random Forest Regression
      REGRESS_XGB: Extreme Gradient Boosting Regression
      RUN_MODEL and RUN_MODEL2: Running a Saved Python Model
    Simplified System Functions
      EDAPRINT: Inserting a Custom Message in the EDAPRINT Log File
      ENCRYPT: Encrypting a Password
      GETENV: Retrieving the Value of an Environment Variable
      PUTENV: Assigning a Value to an Environment Variable
      SLACK: Posting a Message to a Slack Channel
    System Functions
      CHECKPRIVS: Retrieving the Privilege State for the Connected User
      CLSDDREC: Closing All Files Opened by the PUTDDREC Function
      FEXERR: Retrieving an Error Message
      FGETENV: Retrieving the Value of an Environment Variable
      FINDMEM: Finding a Member of a Partitioned Data Set
      FPUTENV: Assigning a Value to an Environment Variable
      GETCOOKI: Retrieving a Browser Cookie Value
      GETHEADR: Retrieving an HTTP Header Variable
      GETPDS: Determining If a Member of a Partitioned Data Set Exists
      GETUSER: Retrieving a User ID
      GRPLIST: Retrieving the Group List of the Connected User
      JOBNAME: Retrieving the Current Process Identification String
      MVSDYNAM: Passing a DYNAM Command to the Command Processor
      PUTCOOKI: Submitting a Value to a Browser Cookie
      PUTDDREC: Writing a Character String as a Record in a Sequential File
      SLEEP: Suspending Execution for a Given Number of Seconds
      SPAWN: Creating a Subprocess From a Procedure
      SYSTEM: Calling a System Program
      SYSVAR: Retrieving the Value of a z/OS System Variable
    Simplified Geography Functions
      Sample Geography Files
      GIS_DISTANCE: Calculating the Distance Between Geometry Points
      GIS_DRIVE_ROUTE: Calculating the Driving Directions Between Geometry Points
      GIS_GEOCODE_ADDR: Geocoding a Complete Address
      GIS_GEOCODE_ADDR_CITY: Geocoding an Address Line, City, and State
      GIS_GEOCODE_ADDR_POSTAL: Geocoding an Address Line and Postal Code
      GIS_GEOMETRY: Building a JSON Geometry Object
      GIS_IN_POLYGON: Determining if a Point is in a Complex Polygon
      GIS_LINE: Building a JSON Line
      GIS_POINT: Building a Geometry Point
      GIS_REVERSE_COORDINATE: Returning a Geographic Component
      GIS_SERVICE_AREA: Calculating a Geometry Area Around a Given Point
      GIS_SERV_AREA_XY: Calculating a Service Area Around a Given Coordinate
    SQL Character Functions
      LOCATE: Returning the Position of a Substring in a String
    SQL Miscellaneous Functions
      CHR: Returning the ASCII Character Given a Numeric Code
    Creating a Subroutine
      Writing a Subroutine
      Compiling and Storing a Subroutine
      Testing the Subroutine
      Using a Custom Subroutine: The MTHNAM Subroutine
      Subroutines Written in REXX
    ASCII and EBCDIC Codes
      ASCII and EBCDIC Code Chart
    Launch PDF