Learn More
Search site for:
News »
Scroll Up for Recent News
Nov 2008
Appx 5.0 Beta is Ready!
Appx Release 5.0 Beta is ready. This Release includes ...

[Read Full Article]


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

[Read Full Article]


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

[Read Full Article]


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

[Read Full Article]


August 2007
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]


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

[Read Full Article]


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

[Read Full Article]


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

[Read Full Article]


May 2006
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]


February 2006
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]


July 2005
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]


March 2005
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]


January 2005
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]


December 2004
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


Regular Expressions

In one of the recent releases of APPX, support for Regular expressions was introduced. It was primarily added because it was required by the 0-apps, but we can use it in our own applications. What is a `Regular Expression'? The Wikipedia encyclopedia defines it as "A regular expression (abbreviated as regexp, regex or regxp, with plural forms regexps, regexes or regexen) is a string that describes or matches a set of strings, according to certain syntax rules. Regular expressions are used by many text editors and utilities to search and manipulate bodies of text based on certain patterns. Many programming languages support regular expressions for string manipulation." A full explanation of Regex would take more space than we have available, so we'll just give a few examples and some pointers on where you can get more information.

The Regex operators can be used in an IF, OR or AND statement, in place of the usual EQ, NE, GE, etc. You can also use them in the End User and Designer selections of Queries. There are two operators, RS and RI. RS uses case sensitive matching and RI uses case insensitive matching (tip: S-Sensitive, I-Insensitive).

A simple example: to find all names that match `Cansys', regardless of how it is capitalised, we could use a Record Selection of `RI' `cansys'. Since it is case insensitive, it will match `Cansys',`cANSYS', `CaNsYs', etc. To find all names that begin with A, F or G we would use `RS' `^(A|F|G).*'. This expression means find anything beginning with A or F or G (the `^(A|F|G)'), followed by any character (the period), followed by zero or more occurrences of the previous character (the asterisk). If we omitted the period, the asterisk would apply to the ^(A|F|G), and would mean `anything starting with zero or more occurrences of (A|F|G), which would be everything. If we left out the ^ it would mean match A, F or G anywhere in the string. If we wanted to find names regardless of upper or lower case, we would use the `RI' operator instead of the `RS' operator.

As you can see, the syntax for regular expressions can be difficult to get right. A Regular Expression with syntax errors will result in an `Overflow Error' at runtime. There are a number of different implementations of Regex - APPX uses the GNU Regex library.

For more information on Regular Expressions, try a Google search on `What is a regular expression'. They can be tricky to figure out but they can be extremely useful and it's worth the effort.


Remote Command Execution

In the Windows environment copying files from one folder to another folder on the server can be network intensive and slow if you do it from a workstation on the network. This is because the data has to be sent to your workstation, which promptly sends it back to the server. Ideally, it would be best if you could perform the copy directly on the server, however, in some situations the server is physically secured, and you don't have access to it. This tip shows a technique that allows you to enter commands on your workstation that are executed directly on the server.


Removing Records from a Constrained Scrolling Display

We have found that you can remove a record from a scrolling, constrained display when it no longer meets the constraint by performing a READ with HOLD on the record, and setting OPTION to NEXT RECORD in the option intercept event point. For example, if you have list of Orders constrained by Order Status displayed, and you allow the operator to change the status via an Option key that you intercept yourself, it would be nice if APPX would make the record disappear from the display once your code changes the Order Status, since it no longer meets the constraint. The usual method is to end the process and reinvoke it, causing APPX to refresh the display. There are 2 problems with this, the display starts from the beginning of the file, causing the operator to manually find their position, and it gets complicated if your Input process is invoked from more than one place with different constraints or default keys (you have to keep track of where you came from so you know how to reinvoke the process). By setting Option to NEXT RECORD, APPX will reread the records surrounding the one it was on, and discard the one that doesn't meet the constraint. Presto, the record disappears!

Note that if you issue an ERROR, WARNING or even a MESSAGE command at the same time as you set OPTION = NEXT RECORD, this will not work.





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

[back to top]