Learn More
Search site for:
News »
Scroll Up for Recent News
APPX 5.4.5 Available
APPX 5.4.5 is available for download from..

[Read Full Article]


APPX 5.4.4c Available
APPX 5.4.4c is available for download from..

[Read Full Article]


APPX 5.4.4 Available
APPX 5.4.4 is available for download from..

[Read Full Article]


APPX 5.4.3 Available
APPX 5.4.3 is available for download from..

[Read Full Article]


Amsterdam 2015 Conference Presentations available
We received some good feedback from the..

[Read Full Article]


CWI Announces Amsterdam Appx Training/Conference
We are pleased to announce an Appx Training..

[Read Full Article]


CWI Announces Appx Training
We are pleased to announce an Appx Training..

[Read Full Article]


Appx Software Announces New Price List Effective May 1, 2014
ASI has a price list effective May 1, 2014 ..

[Read Full Article]


Reconnect with Appx - Conference April 7-11
ASI has announced an upcoming conference April 7-11 in Atlanta...

[Read Full Article]


End of Support for 4.2.x Approaching
Due to the difficulty in supporting old releases and ...

[Read Full Article]


Amsterdam Presentations and Pictures Available!
We received some good feedback from the customers...

[Read Full Article]


Amsterdam Conference Registration Open!
Registration is now open for our Amsterdam Conference...

[Read Full Article]


Panama Conference A Success!
The Appx Conference held in Panama Feb 20-22 was well received...

[Read Full Article]


Panama Conference Registration Open!
Registration is now open for our Panama Conference...

[Read Full Article]


Appx Conferences in 2013!
Following the recent release of APPX 5.2, CWI is pleased to announce....

[Read Full Article]


Appx 5.2 Available
ASI has announced the availability of APPX release 5.2....

[Read Full Article]


Supported Releases
Release 5.1 of Appx is well on the way and ....

[Read Full Article]


APPX Conference Update
The Conference and Training session is over now....

[Read Full Article]


APPX 20th Birthday Celebration and Conference
ASI is pleased to announce the APPX 20th Birthday Celebration....

[Read Full Article]


Panama Conference in 2011
The Appx Release 5 Training and Conference was well attended...

[Read Full Article]


ASI Launches new Beta Progam
Appx Software, Inc has launched a new beta program ...

[Read Full Article]


Appx 5.0 Released!
The long awaited Release 5 of Appx is available ...

[Read Full Article]


Appx 5.0 Beta for Windows is Ready!
The Windows version of Appx Release 5.0 Beta is ready...

[Read Full Article]


Appx 5.0 Linux Beta is Ready!
Appx Release 5.0 Beta is ready. This Release includes ...

[Read Full Article]


Caylx Retires from Distribution
Following 33 years of working with the SPEED I, SPEED II and APPX...

[Read Full Article]


Appx Blog
Appx Blog Online
ASI has started a blog! This is an excellent way...

[Read Full Article]


Appx Conference 2007
We're pleased to report that our first European APPX Conference proved to be...

[Read Full Article]


Appx Conference 2007
Still haven't decided if the Appx Conference is for you? First of all, it's a great way...

[Read Full Article]


CWI Hosts European Conference
For some years now, ASI has been hosting tremendously successful APPX conferences in the USA...

[Read Full Article]


4.2.a Patch
ASI announces the APPX 4.2.a Patch Release is now available for download ...

[Read Full Article]


New Registration Format
ASI provides a new format for emailed APPX registrations. Registrations are now being sent as text file attachments to...

[Read Full Article]


Conference Results
Another conference is over, and once again it provided an excellent opportunity to network, learn and socialize with VARs and customers from around the world...

[Read Full Article]


Appx Conference
You are cordially invited to join your APPX colleagues and friends at the newest "episode" of the bi-annual conference, called "APPX EX-ZOO-BERATION 2006"!...

[Read Full Article]


Minicom Joins CWI
CWI is delighted to welcome Minicom Software House Ltda, located in Brazil, to its reseller network!

For over 25 years, Minicom's team of consultants has been involved in the development and...

[Read Full Article]


Sadden Joins CWI
Sadeen Computerized Systems is an integrated solutions provider which has been offering management control software, security systems and access control software to SMEs for a number of years. Now, however...

[Read Full Article]


SWS Joins CWI
CWI is pleased to welcome SWS Software Service in Austria to its reseller network! SWS has been a very successful SPEED II reseller since 1983 and has been working with APPX since...

[Read Full Article]


Sintec Joins CWI
CWI is pleased to welcome Sintec, S.A. de C.V. from Mexico to its reseller network!

[Read Full Article]


Scroll Down for Archived News


A | B | C | D | E |F | G | H | I | J | K | L | M | N | O | P
Q | R | S | T | U | V | W | X | Y | Z


Setting Environment Variables

A little known feature of Appx is the ability to set environment variables from the command line. Just prefix the variable with 2 dashes as follows:
appx --APPX_SQL_LOG=c:\logs\appx.log --APPX_CMD_LOG=0xFFFFFFFF

This will set APPX_SQL_LOG and APPX_CMD_LOG for the duration of this session only.

Synchronized Lists/Displays

Wouldn't it be nice if you could have APPX automatically display information relating to a parent record when that parent record was selected in a scrolling display? For example, when a user selects a particular customer, have APPX automatically display all orders for that customer in another scrolling popup box, without the operator having to press an Option key. In some environments, this is called a 'synchronised list', i.e., the records in the child window are automatically synchronised to whatever parent record is active. You can do this in APPX using the following technique. First, define an INPUT process to display the information you want to show from the child records. This can only contain one frame, which can be scrolling, or not, depending on your needs. In the Additional Attributes section of the Frame, set the END DISPOSITION to HOLD. This tells APPX to leave this image on the screen even when the child process is ended. Also set the Display Only attribute to "Y" on the frame. Define the Image and put whatever fields you want on the screen. In the parent process attach this new Input process as an optional child with the appropriate constraints and place code similar to the following in the PRE-DISPLAY event point of the frame:

   	IF  --- INTERACTIVE PHASE NE DATA SCROLL
	AND --- INTERACTIVE PHASE NE KEY ENTRY
T       BEG AT 1EX ORDER1 IN 1EX VENDOR NO
T       END AT 1EX ORDER1 IN 1EX VENDOR NO
T       READNEXT 1EX ORDER1 HOLD 0 FAIL 0 KEY IS ORDER1 VENDOR NO
TT      SET --- OPTION = USER 1
All this code does is automatically invoke the child process under the right circumstances. We check the INTERACTIVE PHASE to make sure APPX is not filling a scrolling window, or prompting for a key. The BEG AT/END AT/READNEXT are there so we don't unnecessarily invoke the child. If everything is true, we set OPTION to USER 1 (or whatever optional child number you used when you attached the child to the image), and APPX will automatically run the child process for us. Since our child only contains a display only frame, APPX will end the process as soon as all the records as displayed, and since the END DISPOSITION on the childs' frame is set to HOLD, APPX will leave the records on the users screen. If the user moves to a parent record without any children, APPX magically clears the old child data from the screen.

If there are more child records that will fit in the childs scrolling window, you can also set SCROLL TO END to "Y" in the child to cause APPX to read all the records and leave the last group on the screen, if this is appropriate for your requirements.

NOTE: This technique needs some fine tuning if you are running 4.2. Under 4.2, APPX will rerun the PRE-DISPLAY event point after executing the Optional child, resulting in an infinite loop. You will need to keep track of whether you have run the Optional Child for the current parent or not.

Suggest a Value in Drop Down List

In the data dictionary for alpha fields, we can enter a list of valid values. Once we do that, a new field appears on the 'Additional Attributes' screen - 'Req Table Value?'. This is a Yes/No field and the default behaviour is Yes. This means that the user must choose a value from the list. If we set this field to "N", then the user is not restricted to the values on this list. They will still get a drop down list of choices but they can ignore the choices and enter something else instead.

Select a Record & Run Optional Child with one click

It would be useful if we could put a button on a scrolling display and allow the user to click it to fire the option for that record.

The problem with this approach is that the currently selected record does not change if they click the button on a different record. Any constraints will use the original record, not the one they clicked on.

What we want is a way to move the cursor to the record the user clicked on, as well as fire the option. Then we can use AT FIELD to see if they moved off the current record and take appropriate action. Fortunately, USER 251 to USER 254 are special options that will move the cursor to the selected record (as if the user had pressed the cursor keys) first and then fire the option.

Since Appx moves the cursor then fires the option, we can put the following code in Option Intercept to detect this:

	AT FIELD (AT APPEARANCE # )
F 	IF 	--- OPTION GE USER 251
F 	AND 	--- OPTION LE USER 254
FT 	PUSH 	--- OPTION FIELD
FT 	SET 	--- OPTION = RETURN
	GOSUB 	DMO ENHANCED SCROLLING BEHAVIOUR
If AT FIELD is false and OPTION is between USER 251 – USER 254, we know they clicked the button on some other record. In that case, save the current value of OPTION (via the PUSH statement) and set it to RETURN. The GOSUB DMO ENHANCED SCROLLING BEHAVIOUR will take care of selecting the new record for us.

Then, in Pre-Display, we just add:

	IF 	--- INTERACTIVE PHASE NE DATA SCROLL
T 	POP 	--- OPTION FIELD
If there is anything in the stack for --- OPTION, this will retrieve it. Appx will then process --- OPTION as if the user had clicked the button. In this example, the option will be set to USER 251 and now the optional child will run for the newly selected record. If the stack is empty, the POP statement will not do anything.

String Comparisons with Regular Expressions

You can use the RI/RS tests to quickly determine if a string begins with or ends with a certain string.

To check if a field begins with a string, just preface the string with the caret symbol:

	IF --- TEMP 80 RI ^ABC
T 	true if string begins with ABC/abc/AbC/aBC/ etc.
To check if a field ends with a certain string, append $ to the end of the string:

	IF --- TEMP 80 RI ABC$
T 	true if string ends with ABC/abc/AbC/aBC/ etc.





For additional information, contact tips@cwi-appx.com

[back to top]