What’s New in LANSA Version 12 SP1?

Build Rich and Dynamic Web Sites with Enhanced WAMs | With enhanced WAMs you can build LANSA for the Web applications using a modern UI and an effective set of tools.
Store All Application Resources in the Repository | You can now enroll all resources (images, CSS and JavaScript files, VLF/RAMP screen definition xml files etc.) associated with an application in the Repository. This enables efficient management of the delivery of completed applications.
Install or Upgrade LANSA for iSeries into IASPs | It is now possible to install LANSA for iSeries into an IASP (Independent Auxiliary Storage Pool) and to upgrade a LANSA for iSeries system already installed into an IASP.
Latest Visual LANSA Framework | A new version of the Visual LANSA Framework with cross-browser support and various other enhancements is now available.
Latest LANSA Integrator | A new version of LANSA Integrator is available.
EPC859 Enhancements | EPC859 is included in this Service Pack.

To find out latest changes to LANSA, visit Version 12 Release and Installation Notes at the LANSA web site.

Note: If you have already installed LANSA Version 12, use the new option on the main V12 Install dialog to Update LANSA V12 to SP1.

Edition Date November 16, 2011

© 2011 LANSA


Build Rich and Dynamic Web Sites with Enhanced WAMs

LANSA for the Web WAMs have been extended to support the building of web sites using jQuery/jQuery UI and to return JSON responses for AJAX requests. This makes it easy to build rich and dynamic web sites with WAMs.

The major features included are:

· Shipped jQuery Library and jQuery UI Support

· New jQuery and AJAX Enabled Weblets

· AJAX Support with JSON Responses

· jQuery UI Themes and Themelets

· LANSA Themed Weblets

· id Attribute on <div> Tags

· Web Application Layout Manager Wizard

· Create Your WAM Layouts Based On Your Default Site Layout Weblet


Shipped jQuery Library and jQuery UI Support

The jQuery library is automatically included if you use the jQuery based weblets or the new Themed layouts.

WAMs are shipped with eight jQuery UI ThemeRoller themes:

· Redmond

· Pepper Grinder

· Cupertino

· Smoothness

· UI darkness

· UI lightness

· Blitzer

· South Street

You can also create and enroll your own jQuery ThemeRoller Themes (currently manually).


Redmond

Redmond is the default theme for all new WAMs.


Pepper Grinder


Cupertino


Smoothness


UI darkness


UI lightness


Blitzer


South Street


New jQuery and AJAX Enabled Weblets

A new set of jQuery UI-based and AJAX-enabled weblets is now available. They are:

· Date

· Time

· Datetime

· Autocomplete

· Dynamic Drop-Down

· Google Chart

· Rich Text Editor

· Menu Bar

· Treeview


Date

Date (std_datepicker) weblet with jQuery theming:


Time

Time (std_timepicker) weblet with jQuery theming:


Datetime

Datetime (std_datetimepicker) with jQuery theming:


Autocomplete

Autocomplete (std_autocomplete) weblet using Ajax:

Note the WAM Editor provides a context menu option (Create AJAX Webroutine) for autocomplete weblets once they have been dropped onto a web form to generate a skeleton webroutine for the JSON response. The relevant properties are also updated. See AJAX Support with JSON Responses.


Dynamic Drop-Down

Dynamic drop-down (std_dynamic_select) weblet using Ajax:


Google Chart

Google Chart weblets with jQuery theming:

Bar chart (std_gbar_chart)

Line chart (std_gline_chart)

Pie chart (std_gpie_chart)


Rich Text Editor

Rich Text Editor (std_ckeditor) weblet uses the open source CKEditor with jQuery theming:


Menu Bar

Menu bar (std_menubar) weblet replaces the DHTML menu weblet with jQuery theming support:


Treeview

Treeview (std_treeview_v2) weblet with jQuery theming support:


AJAX Support with JSON Responses

WAMs can output their response in JSON format:

· WEB_MAP commands have a *JSON option for working lists (JSON lists). JSON lists simplify creating UI widgets driven by JavaScript (for example, charts and trees).

· WEBROUTINE commands can specify RESPONSE(*JSON) for working lists and fields. JSON Responses (sent with content type: application/json) enable dynamic UI changes using AJAX techniques.

AJAX is Asynchronous communication between the browser application and the server, JSON (JavaScript Object Notation) is a lightweight data-interchange format.


jQuery UI Themes and Themelets

jQuery UI themes are a set of styles for controlling the appearance of jQuery UI weblets. The weblet will take on the font and font-size defined in the theme and when appropriate it may take on other theme elements as well. Eight jQuery UI themes are shipped with LANSA.

jQuery themed layout weblets (Themelets) are available in two layout styles. These layout styles both have an associated set of CSS (Cascading Style Sheets) files, one for each of the eight jQuery UI themes. Both styles are available for one, two or three content areas.

The two layout styles use the same HTML markup and the CSS files are used to modify the look and feel of the layout. An example of the two styles using the default jQuery Redmond theme are:

The shipped Themelets are named:

· std_themelet1_1col – one content area, the default for new WAMs (Redmond theme)

· std_themelet1_2col – two content areas

· std_themelet1_3col – three content areas

For each of the shipped jQuery UI themes, there are CSS files named std_style.css, std_themelet1_style1.css and std_themelet1_style2.css, the latter two for each layout style.

A new WAM layout will usually consist of:

· A Themelet or Site Layout weblet

· The jQuery library

· The jQuery UI and

· A theme CSS.

Weblets can reference the new External Resources objects stored in the Repository to aid in the deployment of web applications. For example, all jQuery UI themes are shipped as External Resource objects in the Repository. Note that all weblets can nominate the CSS and JavaScript files they need using External Resources, not just jQuery weblets.

The jQuery themed layout weblets and all new weblets work in IE7, IE8, IE9, Chrome, Firefox and Safari.


LANSA Themed Weblets

Existing LANSA shipped weblets have been updated to adopt jQuery UI themes for:

· Grid, List

· Treeview (AJAX Enabled)

· Menu bar

· Tabs

· Clickable Image


id Attribute on <div> Tags

Weblets now also include an id attribute for <div> tags which specifies a unique id for an HTML element in an HTML page. This can be used by JavaScript or by CSS to make changes or style the HTML element.


Web Application Layout Manager Wizard

The new Web Application Layout Manager Wizard simplifies the creation of a site layout using the new jQuery weblets and themes.

Start Creating the WAM Layout

Choose Site Layout

Choose the jQuery UI Theme

Generate the Demonstration WAM

Choose Application Content


Start Creating the WAM Layout

Choose the Web Application Layout Manager Wizard. It is possible to re-run the Wizard to change the jQuery Theme and/or Style of the site layout.


Choose Site Layout

Generate your site layout weblet based on either of the new shipped themelets (jQuery themed layouts). Also choose the Generate a WAM using this Site Layout option:


Choose the jQuery UI Theme

You can choose one of the eight shipped jQuery UI themes:


Generate the Demonstration WAM

LANSA ships with Sample webroutines to demonstrate the use of themes with standard HTML controls, LANSA weblets and new LANSA jQuery weblets. Choose the Sample webroutines to show themed Weblets option in the Wizard to generate a demonstration WAM:


Choose Application Content

The Wizard provides the ability to choose one (default), two or three content areas with a fixed or fluid width:

Click Finish and then Generate to generate the site layout.


Create Your WAM Layouts Based On Your Default Site Layout Weblet

After you have created your default site layout weblet, you can base your WAM layouts on it:


Store All Application Resources in the Repository

New RDMLX Repository object named External Resource provides the ability to enroll all resources associated with an application in the Repository. This enables better management of the delivery of completed applications.

External resources include:

· Images

· CSS files

· JavaScript files for a Web application

· VLF/RAMP screen definition xml files

· Etc.

External Resource objects are stored internally within LANSA as BLOBs. They can be checked in and checked out, task tracked and deployed.

The Visual LANSA IDE detects when the physical file has changed so it can be re-saved, and it provides the ability to publish/recover files from the Repository to the file system.

LANSA for the Web uses this to ship:

· Themelets

· jQuery and jQuery UI Libraries

· CSS and Javascript files associated with the new jQuery Weblets.


Install or Upgrade LANSA for iSeries into IASPs

An IASP (Independent Auxiliary Storage Pool), is a collection of disk units used by IBM i that can be brought online or taken offline independent of the rest of the storage on a system, including the system ASP, user ASPs, and other independent disk pools.

There is now support for installing LANSA for iSeries into an IASP and upgrading a LANSA for iSeries system already installed into an IASP.

Refer to the Installing LANSA on IBM i Guide for more information.


Latest Visual LANSA Framework

EPC 868 for the Visual LANSA Framework is included in this Service Pack. Refer to the Visual LANSA Framework guide (lansa048.chm) for a description of the new features in the Framework:


Latest LANSA Integrator

Refer to the LANSA Integrator EPC853 documentation for information about the latest new features.


EPC859 Enhancements

EPC859 is integrated in this Service Pack. The enhancements it introduces include:

· SSL support for all platforms.

· IPv6 support for all platforms.

· IE8 support for WAM development using the WAM Editor.

· IBM i: EPC will now be registered in the EPC log by Product. This change will allow more accurate checking of EPC relationships in the loading and pre-requisites of EPCs and in the EPC checking done in Client/Server connections.

· Various enhancements to the 5250 debugger:

· New function key to select all variables on Choose Variables screen.

· New function key to step next on main debug screen while debugging.

· New function key on main debug screen to hide / show variables so that more lines of RDML can be seen.

· Display variables in character mode by default so more variables can be shown on the breakpoint panel.

· Change F20=Select All to toggle between Select All and Omit All when choosing / reviewing variables to show at breakpoints. Function key is now F20=Sel/OmtAll, and when this function key is used the choose / review variables to show at breakpoints panel is shown with the results of the function key.

· Change F20=Select All to toggle between Select All and Omit All when choosing / reviewing RDML breakpoints. Function key is now F20=Sel/OmtAll, and when this function key is used the choose / review RDML breakpoints panel is shown with the results of the function key.


Appendix: What Was New in LANSA Version 12?

Windows Install and Upgrade | LANSA install/upgrade has been restructured for ease of use. SQL Server 2008 Express is now supported as the Visual LANSA development database.
Easily Transfer Applications to Any Server | You can easily deliver objects or entire applications from your Visual LANSA environment to any server without using check-in.
LANSA Enforcement Triggers | LANSA repository rules can be enforced when a file is accessed by non-LANSA languages.
IBM i Client to a Windows Server | A SuperServer connection can be established from an IBM i Visual LANSA system to a Windows Server.
Unicode Support for Files | Char, String or CLOB fields in files can be stored in Unicode.
Use SQL Views and MySQL Database Tables | SQL views can be loaded as Other Files on both IBM i and Windows, MySQL database tables can be loaded in RDMLX partitions.
Create Tables via SQL | Tables can be created via SQL on IBM i in RDMLX partitions.
Long Userids and Passwords | Long userids and passwords are supported in many LANSA products.
SSL Encryption | SSL is now available for secure encryption of network communications.
Latest LANSA Integrator | Latest LANSA Integrator enhancements.
Latest Framework and RAMP | Latest Visual LANSA Framework and RAMP enhancements.
Other Enhancements | Many other enhancements have been made to make LANSA programming easier.


Windows Install and Upgrade

The new simplified and modernized LANSA Windows Install and Upgrade includes SQL Server 2008 Express as the Visual LANSA development database as well as components of the Visual Studio 2008 Express C++ compiler and runtime.

The installation user interface has been restructured for ease of use:

You can now easily determine the type of system you want to install by answering a few simple questions:

You have the option of installing SQL Server 2008 Express as the database. Adaptive Server Anywhere databases are no longer provided.


Easily Transfer Applications to Any Server

You can specify any server as remote server in your Visual LANSA environment and then easily deliver objects or entire applications to it. Unlike when checking objects into a master system, there is no validity checking of object status or task tracking.

This option is typically used when progressing from development to systems testing for a set of changes using a deployment master Visual LANSA environment.

The server can be any IBM I server which has a host route defined in the LANSA Communications Administrator.

When the remote server has been defined, you can use the Repository tab and right click on the objects to be transferred. The Deliver To option will be displayed in the pop-up menu. Editor Lists can also be selected to deliver the objects associated with the list definition.

For more information see Deliver To Concepts in the Visual LANSA Administrator guide.


LANSA Enforcement Triggers

You can now enforce LANSA repository rules and triggers to be used by non-LANSA programs when they access a LANSA-defined file. This makes the LANSA repository rules available to all I/O done against a file.

LANSA rules can be enforced for database I/O performed for example via 3GLs such as RPG and COBOL, via utilities such as DFU or STRSQL, or from off platform via ODBC or ADO.

LANSA enforcement triggers, called database triggers, are available for files in RDMLX partitions.


IBM i Client to a Windows Server

You may now establish a SuperServer connection from an IBM i Visual LANSA system to a Windows Server using the DEFINE_ANY_SERVER and CONNECT_SERVER Built-in Functions.

This allows IBM i applications to read and update databases on Windows servers.


Unicode Support for Files

The attribute SUNI (Store in Unicode) is used to indicate that Char, String or CLOB fields are to be stored in Unicode (UTF-16) in the database.


Use SQL Views and MySQL Database Tables

You can now load MySQL database tables as Other Files in RDMLX partitions.

You can also load definitions of SQL Views on both IBM i (RDMLX partitions) and Windows. When SQL Views are read-only (for example if defined over more than a single table), RDML database commands will be restricted to SELECT/FETCH commands.


Create Tables via SQL

You can now create tables via SQL rather than DDS on IBM i in RDMLX partitions.

When *SQL_BUILD is placed in data area DC@OSVEROP, and physical and logical files are recreated in an RDMLX partition, the physical file is created with SQL as a table, and logical views are still created with DDS, but as long as there is either no select/omit criteria or select/omit criteria and dynamic select Yes, a logical file will share its access path with an SQL index.

RDML files created in an RDMLX partition when *SQL_BUILD is in data area DC@OSVEROP can be exported to RDML partitions and re-exported to RDML partitions and will remain "SQL built" until they are rebuilt in an RDML partition.


Long Userids and Passwords

Long userids and passwords are now supported in many LANSA products. For example, the CONNECT_SERVER Built-in Function now supports 256 byte User Name and Password.

The products that support long userids and passwords include Visual LANSA IDE, the Host Monitor, SuperServer to Windows and IBM i, LANSA for the Web, LANSA Open and LANSA Open for .NET.

The length of the userid and password is platform-specific and reflects the limitations of the platform. This includes case sensitivity when a platform is case sensitive.

Note that the Visual LANSA IDE security is based on IBM i limitations and thus the userid is limited to 10 characters. The limitations in other circumstances should be self-evident, for example SuperServer to Linux is limited by Linux: 256 byte userid and 256 byte password.


SSL Encryption

OpenSSL Encryption to IBM i for Client/Server communications is now available as a server-side option for secure encryption of network communications.

The handshake between server and client uses anonymous ephemeral Diffie-Hellman keys, with the following data transfers encrypted with a per-session symmetric key. The previous encryption algorithms (DES and Twofish) are still available, but we recommend using SSL instead. Please note that SSL does carry a processing overhead and may reduce transfer speeds.


Latest LANSA Integrator

Refer to the LANSA Integrator EPC835 documentation for information about the latest new features.


Latest Framework and RAMP

See the Visual LANSA Framework guide and the RAMP guide for information about the latest new features.


Other Enhancements

Export/Import I/O Modules and OAMs without Files | On IBM i servers you can now export and import I/O modules and OAMs for a file without the physical or logical file.
Free Format version of the SELECT_SQL command | You can use any SQL that is valid for a particular database engine used at execution time.
Active-X Exception Handling Traps Errors at Runtime | A failed HRESULT value can be accessed and handled.
Wizard to Create Web CRUD Applications | You can create a complete WAM CRUD application by answering some simple questions.
Support for LOBs in WAMs | MIME type and LOB content is returned for WAM webroutines.
SQL Statements are Cached for Re-execution | LANSA now caches up to 50 reusable SQL statements for re-execution to enhance performance.
Faster and More Detailed Information about Objects in Master Repository | Detailed information about objects in the master repository is now available in the Visual LANSA IDE.
Check-in Joblog Viewer | Joblog created on the master for check-in jobs can be viewed in the IDE.
Field Visualization Enhancements | You can set up dynamic visualizations for fields. For example you can add logic to autofill the value of a field, or you can specify that the values of a pick list are to be retrieved from a file at run time.
New Intrinsics in RDMLX | Many more intrinsic functions are available in RDMLX.
Set Value of Unknown Fields in Lists and Grids | You use the SetValue() method and a ValueAt property to set the value of a field without knowing its name in ListBoxes, GridViews, ComboBoxes, Graphs and unlevelled Trees.
Enhanced Image Support | png and jpg images can now be enrolled into the repository.
Multi-Monitor Support | New properties have been added to Visual LANSA applications to support multiple monitors.


Export/Import I/O Modules and OAMs without Files

IBM i export/import allows the export and import of a compiled I/O module and an OAM for a file without the physical or logical files being exported. The file definition will be updated from the export.

Frameworks and Groups can now be omitted when components are exported.


Free Format version of the SELECT_SQL command

The free format version of the SELECT_SQL command allows any SQL that is valid for a particular database engine to be used at execution time. No parsing is performed of the SQL either at compile time or runtime.

The entered SQL command is passed exactly as it is to the database engine. It is the responsibility of the programmer to ensure that the data returned by the database engine matches the list of fields in the FIELDS parameter.

This form of the SELECT_SQL command can only be used in RDMLX functions and components.

For example:

---> SELECT_SQL FIELDS(#PRODUCT #QUANTITY)

| USING('SELECT "PRODUCT", "QUANTITY" FROM "MYDTALIB"."ORDLIN"')

|

| DISPLAY FIELDS(#PRODUCT #QUANTITY)

|

---- ENDSELECT


Active-X Exception Handling Traps Errors at Runtime

Active-X Exception Handling now traps failed HRESULT values in Visual LANSA at runtime so that they do not cause application failures. Access is provided to the HRESULT values.

Details are published in the ActiveX Controls section of the Visual LANSA Developer Guide.


Wizard to Create Web CRUD Applications

Application Wizards are now available from the Tools menu of the Visual LANSA IDE.

The first available Wizard generates Web CRUD applications in RDMLX partitions. You answer a series of simple questions using the Wizard interface after which a complete Web Application Module (WAM) is generated, compiled and optionally executed.


Support for LOBs in WAMs

MIME type and LOB content is now returned for WAM webroutines.

The output of any nominated content file with appropriate http headers is also supported. This is enabled via a new weblet named std_lob and a new Webroutine parameter Response and properties. The option of removing the file once sent is also available.

For example:

Webroutine Name(FETCH_REPORT_PDF) Response(#http1) Desc('BLOB serving WebRoutine')

#http1.ContentFile := #LUSERPTH + 'report.pdf'

#http1.RemoveFile := True

Endroutine


SQL Statements are Cached for Re-execution

Reusable SQL statements are now cached for re-execution to improve performance. By default, up to 50 reusable SQL statements are cached for re-execution. The statements are automatically dropped from the cache when a file is closed.

Use DBSS= parameter to change the maximum number of statements to cache. DBSS=0 will give the same behavior as previously.

Reusable SQL statements previously only included those generated for INSERT, and the SQL generated for re-read of the last record for DELETE and UPDATE commands. This enhancement includes generating reusable DELETE and UPDATE SQL for most files.


Faster and More Detailed Information about Objects in Master Repository

The Repository tab in a slave system's Visual LANSA IDE now provides detailed information about objects in its master repository, such as fields in a file, file versions, field length, type, RDMLX flag, task locked to, etc.

Refreshing the Master repository data is now considerably faster than in the previous version. The data is stored and reloaded each time Visual LANSA is started, and when you refresh the contents of the Repository tab, only information about objects that have changed in the master is retrieved. For more information, see Refresh Master Object List in the Administrator Guide.


Check-in Joblog Viewer

Job logs created on the master for check-in jobs can be viewed in the Check-in Joblog Viewer. The whole file is downloaded to Visual LANSA and displayed one page at a time.

You can save the job logs and search them. Toolbar buttons are provided for paging up or down, or you can enter the specific page number.

You can also navigate around the spool file using the keyboard:

· Page Up – Show the previous page

· Page Down – Show the next page

· Ctrl+Home – Show the first page

· Ctrl+End – Show the last page

Arrow up and down move the cursor up and down. They will also scroll the spool file one line at a time when at the top or bottom of the display area. This means that it is possible to see the bottom of one page and the top of the next.


Field Visualization Enhancements

Reusable Parts as Edit Portion of Field

You can define a reusable part to act as the edit portion of a field. In this way you have all the flexibility of a reusable part while still taking advantage of LANSA Repository features for multilingual descriptions, labels and column headings.

In this example a reusable part has been created to handle autocomplete for a field Department. The part is then associated with the field visualization a visual host:

When the field is used on a form, the label is determined by the field definition, but the edit portion of the field uses the autofill logic created in the reusable part.

Dynamic Pick Lists

You can define dynamic pick lists which use the logic in a reusable part to, for example, load the values in the list from a file at runtime.

For more information see Dynamic Visualizations in the Visual LANSA Developer Guide.


New Intrinsics in RDMLX

~Floating Point Intrinsics

BinaryString Conversions

Integer Intrinsics


Floating Point Intrinsics

The following floating point mathematical intrinsics are now available:

Trigonometric:

sine, arcsine, sineh,

Cosine, arccosine, cosineh

Tangent, arctangent, tangenth, arctangent2

Logs, etc:

Exponential, logarithm, logarithm10

Power, sqrt

Others:

Fabs, fmod,

IsNANorND

Certain intrinsics may return values that are not recognized numbers, such as arccosine(3). The value returned could be either a nan (not a number) or an nd (non-determinate).

Isnanornd() can be used to check if the result is not a number.

Note:

The trigonometric intrinsics assume the input value is in radians, not degrees.

For more information, refer to Floating Point Intrinsic Functions.


BinaryString Conversions

A hexadecimal string cannot be represented in a numeric type, so the Binary String primitive is used as a staging area for the conversion.

Integers can be converted to and from hexadecimal strings by using the following intrinsics:

Given an integer, convert to binary string using #integerValue.AsBinaryString(),

Convert the binary string to a hexadecimal representation using #binaryString.AsHexString(),

Given a binary string containing a hexadecimal value, access as an integer value using #binaryString.AsHexToInt().

These methods work with both integers and long integers.

Example

Define Field(#myRBStr) Type(*BIN) Length(128)

Define Field(#L8Int) Type(*INT) Length(8)

#myRBStr := (9999).AsBinString()

#myRBStr.AsHexString() gives 0F270000

#L8Int := 169999999999

L8Int.AsBinString().AsHexString() gives FF23CA9427000000

on Windows computers.


Integer Intrinsics

Two new Integer intrinsics are available: Mod and Div.

For more information, refer to Integer Intrinsic Functions.


Set Value of Unknown Fields in Lists and Grids

You can set the value of a field without knowing its name in columnar views such as ListBox, GridView, ComboBox, Graph and unlevelled Tree. You use the SetValue() method and a ValueAt property to assign and retrieve the display string by referencing the rows and columns.

PRIM_EVP and PRIM_EVEF primitives can have values assigned using the SetValue() method.

If the value supplied is not allowed for the data type of the targeted element (for example, a string "abc" for a number), the SetValue returns LP_FALSE. If the assignment is successful, LP_TRUE is returned.

In the following examples, the various #OutputValueN are instances of #STD_TEXTL.Visual.

SetValue Examples using Primitives

Define_Com Class(#PRIM_EVP) Name(#evpTmp) Reference(*DYNAMIC)

If (#STD_NUM.SetValue( "a.bc" ) <> True)

#OutputValue1 := "not a number"

Endif

#evpTmp <= #OutputValue2

#evpTmp.SetValue( "def" )

#OutputValue3.Assign( "my value" )

(#OutputValue4 *As #PRIM_EVEF).Assign( "hello" )

Define_Com Class(#PRIM_VAR) Name(#myVariant)

#myVariant.SetValue( "123.45" )

Define_Com Class(#prim_boln) Name(#myBoolean)

#myBoolean.SetValue( "true" )

SetValue Examples using Columnar Views

#TreeV1.SetValue( 1 1 "tv1" )

#TreeV1.Items<2>.SetValue ( 1 "tv1" )

#TreeV1.columns<1>.SetValue ( 3 "tv1" )

#Grid1.SetValue ( 1 1 "11" )

#Grid1.Items<2>.SetValue ( 1 "21" )

#Grid1.columns<1>.SetValue ( 3 "31" )

If (#graph1.SetValue ( 2 1 "abc" ) <> True)

#OutputValue1 := "invalid value for graph"

Endif

#Grid1.Cell<1 1>.SetValue ( "8" )

#Grid1.Cell<1 2>.SetValue ( "9" )

#Grid1.Cell<2 1>.SetValue ( "1" )

#Grid1.Cell<2 2>.SetValue ( "2" )

Restrictions

Only lists/views supporting columnar views provide this functionality. Levelled trees cannot be used: a runtime exception is returned.

Memo lists do not provide this functionality.

Lists must have been previously initialized with row data before assigning new values. For example, Inz_List Named(#TreeView) Num_Entrys(2).

Using indices that are out of bounds result in a runtime error indicating that the index is invalid.

Using ValueAt

Columnar Views provide access to their members using the ValueAt property. This takes the row and column index for the cell as parameters.

Example

This is an example of how SetValue() can be used:

Begin_Loop Using(#myRowIdx) To(3)

Begin_Loop Using(#myColIdx) To(#LBox1.columns.itemcount)

#myStringVal := #LBox1.ValueAt<#myRowIdx #myColIdx>

* do something useful with #myStringVal …

End_Loop

End_Loop


Enhanced Image Support

png and jpg images can now be enrolled into the repository using the Bitmap component:

Further, following image and file types are supported:

· BMP to RGB, BITFIELDS, RLE8 and RLE4 compressions

· JPEG to JFIF and EXIF file types

A bitmap component can now be saved to a file, and BMP images of RGB and BITFIELDS type can be saved as JPEG:


Multi-Monitor Support

New properties have been added to Visual LANSA applications to support multiple monitors.

To cater for the unplugging of a secondary monitor or a corrupt monitor registry setting, you can set the PRIM_FORM.EnsureVisible property to Yes in your forms. When this property is used and a monitor is no longer available when registry values for the form are loaded, the form is moved back into the virtual screen. Note this property has to be set before the form is realized.

An easy means of turning on the EnsureVisible functionality for your whole application is to set the SYS_APPLN.EnsureVisibleForms property to True. In this case you would set the EnsureVisible property of the forms to the default value Application.

Design Time Considerations

To support multiple monitors, a "logical primary monitor" concept has been introduced. The monitor in which the Editor is shown is the logical primary monitor. If the Editor is on a secondary monitor (with a left sample left of -1280), any designed forms will be offset by this amount to ensure the Left and Top properties do not contain incorrect negative values.

So if your Editor is on a secondary monitor, all your forms will also be designed there and their bounds coordinates will be offset so that the runtime values will be correct for the primary monitor.

If you have been operating the Editor from a secondary monitor in an earlier Visual LANSA version, you will need to remove any saved incorrect co-ordinates from the source code for the forms to display properly.

Other Monitor Properties

SYS_APPLN.Monitors provides a collection of all the monitors attached to the desktop

SYS_APPLN.PrimaryMonitor provides the primary monitor attached to the desktop

SYS_APPLN.VirtualScreen properties provide the dimensions of the entire desktop area

You can use these properties if you have a preconfigured and hardwired monitor layout and want to implement your own behavior to ensure forms position correctly.