CHT (Clarion Handy Tools)
Templates, Classes, Utilities, Apps, Projects

JANUARY 1, 2021

CHT 2021 Build Released
Build 25A.00.00

DEVELOPMENT DIRECTIONS FOR 2021

 ABC Browse Template extended with HMB OR EXPB

 CHT Browse Template, LBX without ABC Browse

 Browses on Local Drives with One-Piece Apps

 Browses on Remote Drives with Two-Piece Apps

 Developing Software Installation Client Apps

 Developing Software Installation Server Apps

 Server Security Features - IP Range Denial

 Server Security Features - Web Request Denial

 Server Security Features - User Agent Denial

 Script-Free HTML - Data Page Generation

New And Revised
Example Applications This Build

HNDISAMPOPFAVHMB.APP

This application demonstrates primarily, the use of a Clarion Handy Tools Template called HandyMarkerBrowse (HMB).

HMB is an extension template that extends a standard ABC browse with some 25+ features including header-click browse column sorting, built-in locators, greenbar support, and much more.

HMB itself can also be extended by adding a variety of extension templates. This application adds PopFavoriteQueries_HMB to provide a way to inject prebuilt queries into the browse to limit the records being displayed.

PopFavoriteQueries_HMB provides a query control, a clear button, a favorites query selection control, a query builder button, a query save button and a query delete button.

HNDISAMPOPFAVEXPB.APP

This application demonstrates primarily, the use of a Clarion Handy Tools Template called ExplorerBrowse (EXPB).

EXPB is an extension template that extends a standard ABC browse with some 25+ features including header-click browse column sorting, built-in locators, greenbar support, and much more.

ExplorerBrowse itself can also be extended by adding a variety of extension templates. This application adds PopFavoriteQueries_EXPB to provide a way to inject prebuilt queries into the browse to limit the records being displayed.

PopFavoriteQueries_EXPB provides a query control, a clear button, a favorites query selection control, a query builder button, a query save button and a query delete button.

The application also illustrates a procedure built with a CHT Jumpstart that allows you to manage and modify or insert pre-built queries.

HNDLBXDM.APP

This application demonstrates a record-marking template, that assists in marking records using ordinary Clarion list boxes. An LBX browse does not require you to first populate an ABC browse. It is a browse template in and of itself 100% CHT.

On local and network applications this browse is blazingly fast. In remote applications where the data is served from a CHT data server browse speed is astoundingly fast.

That template is called ListBoxBrowseExtender or "LBX" for short.

Some Features Illustrated In This Application:
* ListBoxBrowseExtender Has Green Bar.
* LBX has multiple optional Query Control templates (_LBX)
* Optionally use ORDER BY In Query Control For Mult-Column Sort
* ListBoxBrowseExtender Honours Retain-Record.
* ListBoxBrowseExtender Generates Data Queue
* ListBoxBrowseExtender connects update forms
* ListBoxBrowseExtender has queue auto-fill on startup
* LBX has optional pre-filter to limit auto-fill on startup
* LBX has selectable fill-queue methods for local or remote data

Six example procedures illustate some powerful LBX features:

* PROCEDURE:
LBX_1_ListBoxBrowseExtenderInQueueQuery()

This procedure illustrates a query template called InQueueQueryControl_LBX.

InQueueQueryControl_LBX control template filters the records already in the list box queue, into a secondary queue called "the shadow queue" and displays the result in the same browse by swapping out the data queue.

Clearing this filter resets to the starting or "Main" queue and displays the original record set. All of this except the original fill-queue happens without ANY further file access being needed.

* PROCEDURE:
LBX_2_ListBoxBrowseExtenderSortOrderFieldFilter()

This procedure illustrates a template called SortOrderFieldFilter_LBX.

SortOrderFieldFilter_LBX control template requires the user to enter only a string of characters to match something contained in the sort-order column field. As above, matching data are inserted into the shadow queue and are displayed in the same browse.

Also as above, clearing this filter resets to and displays the "Main" queue record set.

* PROCEDURE:
LBX_3_ListBoxBrowseExtenderUniversalQueryControl()

This procedure illustrates a template called UniversalQueryControl_LBX.

UniversalQueryControl_LBX control template, when empty fills the queue with all table/view records unless a pre-filter is added to the template config.

Click the "Queue Data" button to switch to the "Shadow Queue" and enter a query. These records are filtered from the Main queue into the Shadow queue. Click back on the "Queue Data" button and the browse switches back to the Main queue with all original records intact.

* PROCEDURE:
LBX_4_ListBoxBrowseExtenderPopFavoriteQueries()

This procedure populates a template called PopFavoriteQueries_LBX.

PopFavoriteQueries_LBX control template opens a table called PreQueries and scans it for queries designated for the view name defined on the template. Queries may be optionally added, or deleted at run time and can be selected from a popup menu.

The PreQueries table is defined in HNDO.DCT from which it can be imported into your own dictionary. Prequeries may be ISAM or SQL as required by your application.

* PROCEDURE:
LBX_5_ListBoxBrowseExtenderConditionalIconsOneColumn()

This procedure populates a template called UniversalQueryControl_LBX as above, but its purpose is primarily to illustrate conditional browse icons.

These are icons on a column or columns which change based on some conditional expression related to the data in that column. In this case columns beginning with A, B, C and D are assigned icons 1, 2, 3, and 4, respectively.

To see the effect of this, set the "Max Pre-Load" value to at least 1000 and click the NAME column to sort from smallest to largest.

* PROCEDURE:
LBX_6_ListBoxBrowseExtenderConditionalIconsTwoColumns()

This procedure populates a template called UniversalQueryControl_LBX as above, but its purpose is primarily to illustrate conditional browse icons.

These are icons on a column or columns which change based on some conditional expression related to the data in that column.

To see the effect, set the "Max Pre-Load" value to at least 1000 and click the SSN or NAME columns to sort from smallest to largest.

HNDLBXSQL.APP

This application demonstrates CHT ListBoxBrowseExtender (LBX) used in an SQL setting.

An ordinary Clarion list box is used to build an ABC-style browse resembling HandyMarkerBrowse. Note that no ABC browse template is used here.

It illustrates these concepts:
*** Fill browse queue directly from a single file
*** Fill browse queue from multiple files with view
*** Fill browse queue manually by embedding
*** Fill browse queue using method SQLSelect
*** Adding Update Form UpdateButtons_LBX
*** A hand-code managed query control

This demonstration application requires the sample data base provided with MICROSOFT ACCESS, called Northwind. The application will find the data base and register it with ODBC if not already registered.

HNDPPLLBX_REMOTE.APP

This application demonstrates CHT's ListBoxBrowseExtender (LBX) browse template applied in building a Clarion browse for remote data access.

The base browse template is ListBoxBrowseExtender (LBX) configured as: "FillFromCHTServer() -- Remote Data Tables". The remote server is CHT demo application called HNDPPLLBX_SERVER.APP which you can configure and run on your own hardware (see below).

For easy testing however, we're running an instance of this same server application on our hardware, located in Toronto, Canada. Instructions that will allow you to connect to our server application are included with the installation instructions in CHTTODO.CLW under the title: "Test Login Setups"

HNDFILCL.APP

This application is designed to act as a starting point for all CHT "Secure File Clients" (eg: installers) intended to provide login-enforced file download services from a CHT TYPE 3 file server application like HNDFILSV.APP.

A TYPE 3 server, is based on secure, encrypted delivery to a set of customers or clients that sign in with individual passwords. The server maintains and authenticates against a server-side customer/client table. See HNDFILSV.DCT for and example customer table design.

This "Basic" version has had all non-essential componentry removed and focusses entirely on CHT templates and classes required to build a fast, efficient CHT secure file client using a 3-piece login.

This client application has a matching demonstration server called HNDFILSV.APP which is configured to provide secure upload and download services.

This client provides both compressed and encrypted file movement services without requiring either pre-compression or pre-encryption of the transported files.

HNDINSTALLMYFILES.APP

This basic installation example illustrates a file installation/acquisition method that provides developers with an easy-to-implement means of building across-the-web installation or updating into their products.

This application first connects to HNDFILSVS.APP to download an installation files list approved at the server end. Next it downloads the listed files and places them in the designated directories below the installer's configured target directory. Files are only downloaded when the CRC value provided for any file is different than the CRC of the file already installed.

The server auto-encrypts and auto-compresses files at the request of this client and files are auto-decrypted and auto-decompressed on arrival. Replaced files are copied to the backup directory before replacement is made. When the download file is an .HZO container (built with HNDSETUP.APP), this client extracts it to the download directory, while honoring the sub-paths indicated by the .HZO contents.

When the .HZO contains .EXE files, the application presents a run button which offers to let the user run the executables available.

A configuration procedure in this application is provided in order to change the installation server as well as the local target and backup directories. The installer always recalls it's last installation log from the config menu.

HNDFILSV.APP

This application is intended as a starting point for developers to build file transfer servers of various sorts that act like FTP servers but utilize the HTTP protocol including encryption and compression. This server (TYPE 3) is a level above CHTTP page server, HNDSLFSV.APP (TYPE 4), in that it incorporates a server members file with unique member access credentials.

Several demo client applications are provided to CHT subscribers, for example: HNDFILCL.APP and HNDINSTALLMYFILES.APP (discussed above).

This server maintains complete control over which files and directories are visible to the client. File transfers are normally compressed and/or encrypted at the behest of the client application.

This is an "Authenticating" server. The client logs in by providing "LastName", "LoginID" and "EmailAddress" values or equivalents. The server, unless reconfigured uses a member file called HNDFILSVMEM.TPS located in the \HNDAPPS\HNDFILSV\ directory. New members may be added as required to customize the users list.

This application is entirely template-built and contains almost no hand-embedded code.

This is a starting-point server from which to build forward. The "file transfer" portion of the server is already installed and working.

Contact Us

Click the link below to contact us by email.
It will start your email client with our email address inserted:

Click To Contact Us