zCodeLibrary provides an editor for Code Libraries used in the Code Editor. This editor uses an A5 table and form to edit the contents, making all the A5 features for editing data available.
To view the Code Libraries from the menubar in the Code Editor, select Task List -> Code Library.
You can create your own Code Library. I've done this, and I refer to it quite frequently. However, I've observed the following limitations with the built-in editing.
- Deleting entries corrupts the Library.
- No way to search the library.
- No easy way to do search and replace in the library.
The following scenario was the impetus for zCodeLibrary. I originally named the parameters for xDialogs the following DialogTtl, Dialog, Code. The documentation will show these variable names used in very early code samples. After some time and conflicts in variable names, I decided a better naming convention would be DlgTitle, DlgBody, and DlgCode. You will also see these conventions used in the documentation code samples. I made the changes in the code snippets I could identify, but without fail, I used a code snippets with the old naming convention. And as luck would have it, the snippets would have seldom used code paths such as error handlers. So, the introduced problem wasn't identified until much later and only after the out-of-date code snippet was used in many other places.
Because I have invested so much time in my Code Library, I figured I could justify some time developing a better way to edit the contents. It took much more time than anticipated, but I also figured out a neat way to package it as a single function that could recreate the required table and form in the current database.
You only need to import the function in zCodeLibrary.txt to use this code. In the Code Tab of the editor, right-click anywhere and select Import from the context menu.
Next, call the function from the Interactive Window with no parameters; enter the following: zCodeLibrary()
This will open the Code Library Editor form. The required table and form will be built into the current database on the first run call to the function. If you are using Code libraries, the form's functionality should be self-explanatory with the following caveat.
When Edit Code is used, the code of the current record is edited as a function named zzCode in a Modeless dialogue. While zzCode is open, you can still interact with the Code Library Editor form. A timed event on the form will look for the closing of the Code Editing dialogue. When it is closed, the saved code version is placed back into the form, but only if the same snippet is selected. So do not move to a different record or change the snippet name until the Save button in zzCode Dialog is used and the zzCode dialogue is closed.
zCodeLibrary can also be installed as an Addin, making it available for any of your projects.
From the Control Panel Menubar in Desktop applications, select Tools->Addin Manager
Click the link: Open Addins Folder
click the button: Open system folder
It is NOT recommended you use: Open user folder
Copy file ZCODELIBRARY.AEX to the folder that is opened.
The addins folder may not be created during the installation of AlphaAnywhere. It will be created the first time you attempt to access it via these menus. But, because the addins folders are under the program folder, they can only be created by alpha5.exe if it is Run as administrator. Right-click on alpha5.exe in the file manager and select Run as administrator from the context menu. Then, follow the steps above.
To make the Addin available from the Code Editor Menubar, Code -> Addins. Copy the file zCodeLibrary.code_editor to the folder c:\Program Files (x86)\a5V12\Control_Panel_Addins\
The Code editor will need to be closed and reopened before the Code -> Addins menu option is visible.
The folder c:\Program Files (x86)\a5V12\Control_Panel_Addins\ contains the file How to Create Control Panel Addin Menus.Txt that further explains the format of the *.code_editor file.
** OUTSTANDING ISSUES **
If you remove the zCodeLibrary table and then attempt to rebuild in the same session using this script you may get errors. Restart Alpha5 before rebuilding the zCodeLibrary table and form.
After initial build of table and form a single mouse click anywhere is required to display the form.
To view the Code Libraries from the menubar in the Code Editor, select Task List -> Code Library.
You can create your own Code Library. I've done this, and I refer to it quite frequently. However, I've observed the following limitations with the built-in editing.
- Deleting entries corrupts the Library.
- No way to search the library.
- No easy way to do search and replace in the library.
The following scenario was the impetus for zCodeLibrary. I originally named the parameters for xDialogs the following DialogTtl, Dialog, Code. The documentation will show these variable names used in very early code samples. After some time and conflicts in variable names, I decided a better naming convention would be DlgTitle, DlgBody, and DlgCode. You will also see these conventions used in the documentation code samples. I made the changes in the code snippets I could identify, but without fail, I used a code snippets with the old naming convention. And as luck would have it, the snippets would have seldom used code paths such as error handlers. So, the introduced problem wasn't identified until much later and only after the out-of-date code snippet was used in many other places.
Because I have invested so much time in my Code Library, I figured I could justify some time developing a better way to edit the contents. It took much more time than anticipated, but I also figured out a neat way to package it as a single function that could recreate the required table and form in the current database.
You only need to import the function in zCodeLibrary.txt to use this code. In the Code Tab of the editor, right-click anywhere and select Import from the context menu.
Next, call the function from the Interactive Window with no parameters; enter the following: zCodeLibrary()
This will open the Code Library Editor form. The required table and form will be built into the current database on the first run call to the function. If you are using Code libraries, the form's functionality should be self-explanatory with the following caveat.
When Edit Code is used, the code of the current record is edited as a function named zzCode in a Modeless dialogue. While zzCode is open, you can still interact with the Code Library Editor form. A timed event on the form will look for the closing of the Code Editing dialogue. When it is closed, the saved code version is placed back into the form, but only if the same snippet is selected. So do not move to a different record or change the snippet name until the Save button in zzCode Dialog is used and the zzCode dialogue is closed.
zCodeLibrary can also be installed as an Addin, making it available for any of your projects.
From the Control Panel Menubar in Desktop applications, select Tools->Addin Manager
Click the link: Open Addins Folder
click the button: Open system folder
It is NOT recommended you use: Open user folder
Copy file ZCODELIBRARY.AEX to the folder that is opened.
The addins folder may not be created during the installation of AlphaAnywhere. It will be created the first time you attempt to access it via these menus. But, because the addins folders are under the program folder, they can only be created by alpha5.exe if it is Run as administrator. Right-click on alpha5.exe in the file manager and select Run as administrator from the context menu. Then, follow the steps above.
To make the Addin available from the Code Editor Menubar, Code -> Addins. Copy the file zCodeLibrary.code_editor to the folder c:\Program Files (x86)\a5V12\Control_Panel_Addins\
The Code editor will need to be closed and reopened before the Code -> Addins menu option is visible.
The folder c:\Program Files (x86)\a5V12\Control_Panel_Addins\ contains the file How to Create Control Panel Addin Menus.Txt that further explains the format of the *.code_editor file.
** OUTSTANDING ISSUES **
If you remove the zCodeLibrary table and then attempt to rebuild in the same session using this script you may get errors. Restart Alpha5 before rebuilding the zCodeLibrary table and form.
After initial build of table and form a single mouse click anywhere is required to display the form.