Here are is some esoteric information that advanced users may be interested in. This is interesting stuff that is not in the manual or help file. We do not provide technical support on these features. We recommend making a backup of your entire LOGic 5 folder before attempting any modifications!
Upon startup, LOGic allocates a percentage of available for itself.
You can control how much memory it allocates. To do this, create a file in the UPDATES folder inside LOGic 5. This file may have any name, but with a .PRG extension. For example, STARTUP.PRG
Copy and paste the following information into the file. Edit the memory figures to your liking.
wait window "Setting memory" nowait * third parameter is bytes sys(3050,1,64000000) && foreground sys(3050,2,16000000) && background
You may easily add indexes to your application. Indexes speed access and allow the data to be displayed in the log form in index order. The log file, as shipped from the factory, has two indexes: Callsign and Date/Time. As you probably know, you can Get on call or date/time for instantaneous search. You can also view the log in callsign or chronological order by double-clicking the column heading.
Suppose that you added an index on Name. The Name column of the browse grid will no be marked with "*", indicating that you may double-click the heading to view the log in name order. The Get form does not change, you cannot Get on name, but the new index will affect the Filter function, making retrieval on Name instantaneous. Also, you may now use the Incremental Search feature on the Name column. Also, any select criteria in the report writer or elsewhere that searches on Name will be greatly speeded up.

Indexes are maintained in tools/advanced/index setup info. This is the form that PDA uses to maintain the indexes needed by your application. These are marked by us as a "Factory index" and cannot be removed or changed. The Sort indicator determines which order the database is physically arranged when you select the Sort option from database maintenance. You cannot add any sort indexes of your own.
To add the name index, add a new record, and enter the data as shown above. Some notes on individual fields:
File: This form maintains all indexes used by the application, not just the Log file. So the File field specifies which file the index is for.
Index Tag: This must match the internal name of the column in the browse form. To determine this, right-click the column heading in the browse window of the Log form.
Index expression: This is the value to be indexed. Typically it is merely the name of the field in the log file. When you right-click the column header in a browse window, the expression used to create the column contents is displayed. Usually, you may use that exact expression here.
It is possible to create an index on user-defined fields. However, an index on a user-defined field will not speed searching or do anything other than allow you to view the data in order by the user-defined field. In other words, if you index CQ Zone, you can double-click the CQZ column of the browse window, and view your log in order by CQ Zone.
As always, the Index Tag is determined by right-clicking the header of the column. The tag will be USER1, USER2, etc.
In most cases you can copy the expression verbatim. However, user-defined character fields have an undefined length in the database. Use the PADR(expr, len) function to make sure the index expression is a fixed length. The PADR function pads assures that a character expression is the specified length. If the length of expr is less than len, it is padded on the right with spaces.
PADR(TAG_VAL("IOTA:", USERFIELDS, "C"), 6)
This example assures that the length of the index expression is always 6.
LOGic displays all data in the browse window as character-type data for maximum speed. (Dates in particular are time-consuming to display in the proper format, so LOGic just displays the date in its raw YYYYMMDD format).
However, when indexing numeric fields, the straight character expression is not satisfactory. It will sort Zone 2 before Zone 10. So, just make the index value an Integer.
TAG_VAL("CQZ:",USERFIELDS, "I")
See the TAG_VAL() function documentation in Help.
© 27-Sep-02 18:34 http://166.102.242.15/radio/support/logic5/faq/Advanced.htm