TWEeT #15: The Alias Dictionary
Thor TWEeT #15: The Alias Dictionary
There have been some improvements in the handling of table aliases since the earlier TWEet onIntellisenseX: Aliases for VFP Tables.
The difficulty in what was described there is that the solutions do not go far enough. The first example shows that IntellisenseX recognizes aliases create by USE statements:
But this alias is only recognized by IntellisenseX within the same procedure as the USE statement. If this table were opened in the LOAD event of a form, the alias would be available there – and in no other methods.
And the #Alias directive has the same limitation – to be of value, it must be inserted into every single method referencing the table.
The solution offered by the Alias Dictionary is that there is a table (maintained by Thor) that containsglobal definitions of tables (or objects – but we will get to that later on).
You can add records to this table by executing Thor tool Browse Table/Object Alias List, which does exactly that – it opens a browse window where you can add records (or edit existing records), like this:
Henceforward, whenever you enter “SomeAlias” and invoke IntellisenseX as you always do, by pressing the dot (or hot key), it will open table “PartsListFields”.
Note well: This is truly a global definition for “SomeAlias”. It is not relative to the current form, class, folder, project, or application, or anything else.
For the table name you can enter also enter full path or relative paths.
As noted earlier, you can also add entries to this table that correspond to global objects. To do this, you can enter “=” followed by an executable expression in the Table field.
There are a few points of interest worth noting:
- NewObject() is used in this example, instead of CreateObject(), because NewObject() accepts a third parameter of zero so that the INIT method does not fire.
- If CreateObject() would in fact return the correct object, you can supply an empty (‘’) second parameter to NewObject().
There are two alternatives that can be used instead of calling NewObject():
- You can copy a LOCAL statement and paste it directly into the table.
- You can enclose the class name and class library name in curly braces, such as{ClassName,ClassLib.VCX}. The class library name is optional if CreateObject() would in fact return the correct object.
Actually, any executable expression (preceded by '”=”) will work, as long as the result is one of these:
- an object
- the alias of an open table
- the alias of a table that Thor can open
- an object containing an array named ‘aList’. This array may have up to three columns and the contents of the array will populate the drop down list.
Nested Objects in the Alias Field
The alias field may also contain references to nested objects. Consider, for instance, the sample below, where oData is actually understood to be populated (at run time) by a Scatter from the Jobs table.
This is achieved by the entry shown below.
All of the discussion above describing the various combinations that can be used in the Table field apply equally well when using a nested object in the alias field. Below we have the the definition of “oApp.oAdmin” so that it will present the list of properties from the Admin object defined in the Table field. (Note that any of the values in the Table field for “dataAdmin”, “dataAdmin2”, or “dataAdmin3” would have worked just as well.)
Wildcards in the Alias Field
You can also use a single “*” as a wildcard in the Alias field.
This allows you to see the PEMs for the this particular object any time that it is referenced, regardless of the parent object that owns it.
Finally, the characters that the wildcard represents can be used in the Table field; simply use <*> (as shown below)
Thus, in this example, “*” replaces the text “PartsList”, so the fields from the PartsList table are displayed.
And similarly for the Customer table ….
If you happen to name your objects consistently, you can pass the extracted text as a parameter to your own UDF, which should return the object as a result. (Note the necessary use of quote marks around <*>.)
The following shows how ‘PartsList’ is passed as a parameter to my UDF “MyLookerUpper”, which returns the object for ‘PartsList’ as a result. As noted before, UDF “MyLookerUpper” should call NewObject() with a third parameter of zero so that its INIT does not execute.
See also History of all Thor TWEeTs andthe Thor Forum.
Previous headlines
#26, 2014-02-17 TWEeT #14: IntellisenseX for Objects
#25, 2014-02-10 TWEeT #13: New (hidden) IntellisenseX Feature
#24, 2014-02-03 TWEeT #12: IntellisenseX by Dot or by Hot Key?
#23, 2014-01-27 TWEeT #11: IntellisenseX: Aliases for VFP Tables
#22, 2014-01-20 TWEeT #10: IntellisenseX: Field Names from SQL Server Tables
#21, 2014-01-13 TWEeT #9: Extract to Variable and Extract to Constant
#20, 2014-01-05 TWEeT #8: Creating Properties and Methods (#3)
#19, 2013-12-18 TWEeT #7: Creating Properties and Methods (#2)
#18, 2013-08-26 Thor Version 1.40 released: Thor ToolBar
#17, 2013-06-23 New VFPX Project: Finder
#16, 2013-03-31 New Video: 50 Ways to Run a Thor Tool
#15, 2012-03-05 New Thor Tool: AutoComplete
#14, 2012-01-16 Thor videos available from Thor menu
#13, 2012-01-05 Thor's Tool Launcher: The one tool youmust use
#12, 2012-11-16 Thor menus provide access to Discussion Forums and Change Logs
#11, 2012-11-10 Online FoxPro Users Group (OFUG) created
#10, 2012-10-14 New VFPX Project: FoxcodePlus
#9, 2012-10-06 Easy access to all VFPX home pages
#8, 2012-09-30 IntellisenseX released as a VFPX project
#7, 2012-09-19 All VFPX projects can be downloaded from Thor
#6, 2012-09-16 Use the Thor discussion group
#5, 2012-09-10 IntellisenseX released
#4, 2012-09-09 Data Explorer is now a Thor tool
#3, 2012-09-04 New VFPX Projects: Dynamic Forms & Data Explorer
#2, 2012-08-30 Join the Thor Beta discussion group
#1, 2012-08-25: Introducing Thor News
Thor Version 1.40 released: Thor ToolBar
Added the Thor ToolBar. Tools may be added to the Toolbar may using the checkbox shown in the Thor Configuration form, below (and also available in theTool Launcher.)
When you add a tool to the Thor Toolbar, you can select a caption for the tool or select an image to represent it. In the sample below, abbreviated captions are used.
The toolbar’s size, positioning, and docking, persist from one session to the next. (Truth be told, persisting the docking has been problematic.)
New VFPX Project: Finder
The new VFPX project Finder is a powerful search tool to find forms and classes. It searches either a project or folder (with sub-folders) for names of files or classes.
Files or classes can be opened by double-clicking and there are numerous other options available from the context menu for rows in the grid.
When Class Search is used, the classes found can be dragged/dropped onto forms or classes being edited.
See the Finder Home Page and watch theFinder introductory video (11:25).
Thor videos available from Thor menu
There are already a number of videos explaining features of Thor and there are more to come. Follow the link from the Thor menu to the list of all Thor videos.
Thor's Tool Launcher: The one tool you must use
Thor’s Tool Launcher uses a simple screen that allows you to browse through all the Thor tools by keyword, to read their descriptions or visit their home pages, to set their options, and, most importantly, to run them. It also helps you to organize the tools that you use most to make them easily accessible.
Thor suffers from an over-abundance of tools – there are so many that it may seem impossible to find which tools are of interest to you. The Tool Launcher simplifies that search.
Watch this short video (7:57) to learn all about it.
Thor menus provide access to Discussion Forums and Change Logs
The Thor menu has been changed to provide access to a number of related Discussion Forums.
These forums are the preferred form of communication about these tools, rather than private emails, or using the Universal Thread, Foxite, or any other on-line forums.
Change logs for the various tools and components of Thor are now available, as well as a link to the never ending list of Thor ERs.
Online FoxPro Users Group (OFUG) created
A new Online Foxpro User Group is starting up. For more information, join the Google group athttps://groups.google.com/forum/?fromgroups#!forum/ofug.
Meetings will be held the 3rd Tuesday of each month at 8:30 Eastern Standard Time via GotoMeeting.com or equivalent.
Details about how to join the meeting will be published on the group forum (see link above) immediately before the meeting is to start.
We intend to record the meeting and make it available on-line for those unable to attend.
Next Meeting: Tuesday, November 20th, 8:30 PM Eastern Time (0130 UTC Wednesday, November 21)
Presenters:
- Matt Slay - Dynamic Forms
- Jim Nelson - PEM Editor and related tools
New VFPX Project: FoxcodePlus
The new VFPX project FoxcodePlus (Beta 1) is available from Check For Updates.
This project is not related to IntellisenseX, another VFPX project, although both provide Intellisense enhancements. FoxCodePlus provides a wider range of features and includes some of the features provided by IntellisenseX. Although not yet tested, it appears that the two may be used concurrently.
After downloading (which includes both the code and documentation), you can use the Thor menu pad in the system menu to open the folder in which these components are installed:
Easy access to all VFPX home pages
Thor now provides ready access to the home pages for all VFPX projects, available from the Thor menu pad.
IntellisenseX released as a VFPX project
IntellisenseX has been released as a VFPX project.
IntellisenseX refers to a suite of Thor Tools that provide functionality similar to native Intellisense. These tools display lists of available variable names, field names, or members (properties, events, methods, and objects) while you type code, just like Intellisense. However, they cover those areas that Intellisense forgot (such as the list of field names in a table when editing in a code window) and provide new capabilities, available through customization, such as displaying the list of field names in an SQL table.
Visit the IntellisenseX home page and also watch the Intellisense training videos.
IntellisenseX is available from Check For Updates.
All VFPX projects can be downloaded from Thor
The current version of all VFPX projects can now be downloaded directly from Check For Updates.
The projects listed in Check For Updates are listed alphabetically within these five groups:
- Projects that you have already downloaded for which there is a more current version. (see #4)
- Projects that you have not downloaded which have had updates in the last three months
- All other projects that you have not downloaded
- Projects that you have already downloaded and which are current
- All projects marked as “never update”. This takes precedence over any of the categories above.
Use the Thor discussion group for comments,
suggestions, bug reports, etc.
Use the “Community / Discussions” menu item in the Thor menu pad to send comments, suggestions, bug reports, and so on to the Thor Discussion Group. You are invited to become a member of the group so that you can see what is going on in the land of Thor.
Two things of note:
- You can email discussion questions (with screenshots) directly to:
- When reporting bugs, please provide as much information as possible, including screenshots. Any information you can provide (such as an image of the debugger, etc.) will be greatly appreciated.
IntellisenseX released
IntellisenseX refers to a suite of Thor Tools that provide functionality similar to native Intellisense. These tools display lists of available variable names, field names, or members (properties, events, methods, and objects) while you type code, just like Intellisense. However, they cover those areas that Intellisense forgot (such as the list of field names in a table when editing in a code window) and provide new capabilities, available through customization, such as displaying the list of field names in an SQL table, as shown below. For a full description, see the IntellisenseX Home Page.
Data Explorer is now a Thor tool
Data Explorer 3 is now available as a Thor Tool. This means that you can choose to access it by hot key by assigning the hot key in the Thor configuration form.
New VFPX Projects: Dynamic Forms & Data Explorer
Two new VFPX projects have been created in the last few days and are available from Check For Updates:
After downloading, you can use the Thor menu pad in the system menu to open the folder in which these components are installed:
Join the Thor Beta discussion group.
The Thor Beta discussion group is intended for discussions of features currently under development for Beta versions of Thor, the Thor Repository, and PEM Editor.
All other Thor issues should be directed to the Thor discussion group.
To use the Beta version for Thor, download Thor Repository Beta Updater.Zip and unzip it into this sub-folder of the folder where you have installed Thor:Thor\Tools\Updates\My Updates
Thereafter, you will see a record for "Thor Repository Beta" when you run "Check For Updates".
Introducing Thor News.
This is the first installment of the Thor News, which will notify you of changes and updates to Thor. It will also, from time to time, explore some of the more interesting tools found in Thor.
The latest news will be brought to you:
- each time that you run Check For Updates
- once a week when you execute RunThor.
You can change these settings in the Thor Configuration form: