Sw4   >   About   >   About (All Contents)
StudioWorks version 4 is an exciting new release of StudioWorks.
Writing the StudioWorks version 4 release took close to two man years. (In addition to several man years invested in the earlier versions of StudioWorks.)
Omnis Studio version 4 provided some great new features which could be utilized in StudioWorks version 4.
One example is the addition of a $userinfo property which was added to every class and object in Omnis Studio. StudioWorks version 4 stores meta-data for each schema class column in a row variable which is then stored in the $userinfo property of the schema class column.
Many new time saving developer tools have been added to make StudioWorks version 4 a truly rapid application development framework.The schema classes in Omnis are used to map list and row variables in your application to the SQL database. Each schema class is mapped to a database table and the schema class columns are mapped to database table's columns.
The Omnis schema classes keeps track of the column name, datatype, whether on not the column is a primary key column, and whether or not null values are allowed. However, the Omnis schema classes are not able to keep track of whether or not the column is indexed, if it is a foriegn key and if so what table and column the foreign key references, and other column constraints.
The allows you to store addition information (meta-data) about each schema class column. The meta-data is kept in a row variable which is stored in the $userinfo of each schema class column.

Setting up and keeping your database in sync with your Studio application can be a lot work. The Database Administrator tool makes it easy. Using the SQL meta-data the Database Administrator can intelligently add tables, add columns, alter column datatypes, add indexes, add primary and foreign keys, set constraints, and collations.

StudioWorks provides you with a prebuilt Sign-In (Logon) window.

The code that is included with the Sign-In window supports using the DBMS users security as well as the list of application users which you store a table in the database. The application users table is where you would store the user's formal name, group memberships, user security settings, email address, etc.
The Sign-In window defaults to the last session. Users can change session settings.Getting the session settings correct for different DBMS back ends can be difficult for developers, let alone end users. The StudioWorks Session Manager assists both developers and end users.

Templates are provided for each DAM with text explaining what information to fill in which field. If the Omnis DAM is select the fields which don't apply are hidden and the host name field is resized accordingly.

StudioWorks reduces development and maintenance time by generating window instances on the fly based on the SQL meta-data. Lists, entry files, labels, and tooltips are added to windows the instance they are opened.
The disadvantage of generating window instances on the fly is that window instantiation time suffers. There is a performance hit which the user experiences. To overcome this the creates 'concrete window classes' for each of the window instances. Prior to releasing a runtime version you 'runtimize' the window instances. The runtimized window classes are put in a separate library which is then released with the development libraries. If a runtimized class is available it will be used.

Object-oriented programming places code in visual and non-visual classes. Visual classes are windows, menus, toolbars, reports, and remote forms. Non-visual classes are table classe, object classes, and task classes. By making a clear separation between visual and non-visual classes your classes can be much more reuseable. Non-visual classes used by a window class can also be used by a remote form, or even a web page that communicaes with a remote task. Non-visual classes can not have prompts, okay messages, working messages, or error messages. The dilema we run into is what to do inside a non-visual class method when it hits an error. How can it easily communicate the error back to the visual class that called the method in the non-visual class. The call quite often will have been passed through several different methods.
One solution is to develop a large series of error codes and return the appropriate error code back to sender, however developing and remembering a table of error codes is a lot of work to create and maintain. And how do pass an error code back to a method which is expecting a list or a result value?
The solution to all of this in StudioWorks is the error handler object. The error handler sits on the sidelines waiting for any method to log an error. The first parameter sent the log message is a reference to the method where the error occurred. Additionally the error message text, optional details, and an optional error code are sent by the method where the error occurred. The method where the error occured return false or null as may be appropriate to its sender. The error handler immediately writes the error to a log file and stores the error in a list. When the visual object where the request originated receives a returned false or null value it sends a message to the error handler asking it for the last error which was logged. The visual object then prompts the user with the error or makes an appropriate decision based on the error code.
By making a clear distinction between visual and non-visual classes and using the StudioWorks error handler you are able to easily develop non-visual classes which can be used by different visual classes.Finding the icon you need in the Omnis icons can be tedious and time consuming. Keeping track of icons you create or trying to share icons among different libraries is a hassle. Remembering the icon by its number isn't much fun.
The solves all of the above.
![]()
The icons are stored in a single library. You assign a name and number to each icon. You can also assign search words and synonyms in a search list. When you need to find an icon, you open the Icons Browser, enter a search word, and hit return. The Icons Browser displays a list of icons which march or are related to your search word.
An icons object in the StudioWorks icons library can be instantiated by any of your application's libraries. You can ask the icons object to return to you the iconid of any named icon.
Do oIcon.$retIconID('BookPencil') Returns IconID ;; The iconid 2143 will be returned.
The StudioWorks icons library makes it easy for StudioWorks members to add icons and share icons.Most applications need to store various user preferences on the local client computer. It make for a nicer user experience if your application remembers the last user ID, the last session settings, the last language, etc. when the user reopens your application.
The StudioWorks preferences object provides you with this functionality. You simply add the preferences you wish to store on the local client computer to the preferences schema list definition. StudioWorks adds the appropriate getter and setter methods to the preferences object. When you close your application StudioWorks looks for a local preferences Omnis data file, and if necessary creates it, and then saves the preference values to the file. When you reopen your application StudioWorks loads the preferences from the local Omnis data file into the preferences object where they can easily be access by the your application code.
The local preferences data file is stored away from your application to that reinstalling the application or updating it won't wipe out the user's preferences.The built in OK, Yes/No, No/Yes, Prompt for input prompts which come with Omnis Studio are a bit behind the times. With a 255 character limit your messages are often truncated. If you want to prompt the user with list, radio buttons, check boxes, mutliple inputs... you have to create your own prompt windows.
StudioWorks version 4 has flexible prompt window which supports unlimited length text message, an option for including additonal message details in small text, list prompts, any mix of radio buttons, check boxes, and multiple inputs in a single prompt. Often used prompts such as Delete Record? or Save Changes? are already built for you and designed to look good on multiple platforms.

The above prompt was opened with the following line of code:
Do prmpt.$promptSave('Save Changes?) Returns ButtonPressedOften times in application development you need a simple lookup with optional or mandatory values which the user can enter in a field. (e.g. Mr, Ms, Mrs, Dr, Lord, Duke,...) Hard coding these into your application is not a a good idea. Creating a table in your database for each of these is overkill.
Another scenario is that you might need a counter to keep track of the last purchase order, last invoice number, last customer ID, or last primary key assigned in each table.
The References module is the solution for these and many more situations.
You simply declare a unique group/subgroup combination of values (e.g. PO/PONum), a datatype (integer), and a reference type (counter). When you need the next PO number you simply an appropriate message to the references object:
Do refs.$retNextNum('PO','PONum') Returns NextPO
or for a lookup list of name titles
Do refs.$retLookupList('NameTitles','UK') Returns UKNameTitlesList
There's plenty more than you can do with the references library. Store user preferences for reports, user defined businesss rules, soft coded SQL query text for reports,... the list goes on and on.Making end user reports can be a time consuming job. Adding fields to a report class, positioning, sizing, and setting the field properties, adding report titles and column headings... use up your valuable time doing rather low level work. Time better spent elsewhere.
The report builder object is able to generate reports on the fly for you. The StudioWorks Report Builder creates a report class and based the SQL meta-data of the schema or query class used to fetch the report records it adds the fields, labels, and titles to the report class and then prints the report. The developer can further customize the report class after it has been generated by the report builder.
The column heading labels use the same text as the headed list heading which is all sources from the meta-data.Most applications require some form of security. Control over which users can access which windows and what reports. Which users can view, edit, insert, or delete records in which tables. If the DBMS supports grant and revoke privileges keeping your application's users in sync with the database privileges can be a lot work.
Administering security on a user by user basis can be time consuming and require constant updating. Being able to put users into groups and then administernig security on a group by group basis is simpler and more practical.
The StudioWorks Security Manager helps out with all of the above. Users can be added to groups. Both users and groups can be assigned schema class, window instance, and report instance privileges. The schema class privileges can be synchronized with the database. Users who are members of multiple groups are given the highest level of authority for each schema, window, and report for the summary of all the groups they are in.

The Security Manager window provides you with simple user interface and can be instantiated as a subwindow in one of your own window classes.

Report instance security and DBMS synchronization is not yet implemented as of 2005-04-20.
If now or at some point in time you wish to sell your application in another county, or even different region of one country, you'll need to be translate the labels, tooltips, column headings, menus, and window titles throughout your application. This can be a huge job.
StudioWorks utilizes OMST's string tables for the labels, tooltips, column headings, menus, and wnidow titles. For the first language you develop the text is stored in the SQL meta-data.

When it comes time to translate your application to another language you simply export all of the string table IDs and the current language text to a tab delimited file. The translator simply needs to add a column for each additional language and enter the translated text in that column. The file with the additional columns of translated text is added to the startupsettings folder and loaded by StudioWorks during startup.
End users can localize your StudioWorks application by changing labels and tooltips to suit their business. One business refers to 'clients', another calls them 'customers'. Localized labels and tooltips are stored directly in the customer's database and loaded during startup.This section covers the steps to follow for getting started with writing a new application using StudioWorks. This quick start tutorial assumes that you have already installed Omnis Studio v4.x and are familiar with creating libraries, classes, and writing notation in Omnis Studio.
If you are not familiar with Omnis Studio read the PDFs that come with Omnis Studio and go through the StudioTips Basics Tutorial.
If are not familiar with SQL (Sequential Query Language) read some books on SQL to learn the basics of SQL.
The StudioWorks framework will jump start writing new applications in Omnis Studio, but you need to know the basics. (Omnis Studio, writing notation, SQL)
Print the StudioTips and StudioWorks . Read them. Keep them handy near your desk. Learning, understanding, and using the StudioWorks naming and coding conventions will make it much easier to follow the code in StudioWorks.
It is highly recommended that you print this tutorial from the on-line version before attemping to do it. You can check off the steps and add your own notes to your printed copy as go through the tutorial.The first step is to set up the files and libraries for your new application.

With multiple library applications it is important that the library name remain consistent. If you don't set the $defaultname property, the library name will change if the user changes the file name. Not a good thing!
To help you get started with StudioWorks the starter app comes with a prepared Omnis data file which has some tables already created and records inserted.

Use the shortcut key combination Shift+Ctrl/Cmnd+Z to open the .

If you wish to change an ID, click the yellow edit pencil in the ID column heading. This enables the ID fields in the grid. Click the pencil again to disable the ID column.
The StudioWorks starter app comes with a set of tables and window classes which links contacts to towns/cities, and town/cities to states/provinces and countries.
For our app we will add a table to store autos which are linked to auto types.
We'll start with the parent table, Autotype.
Create the schema class

The power of StudioWorks lies in the meta-data. The fields in the meta-data editor have tooltips which give more information about the field. If you are unsure about a certain meta-data field hover your mouse over the field and read the tooltip.

You must be very careful to use the correct case for schema class and column names. Omnis Studio is case-sensitive with class names and column names. Naming the schema class sAutotype and then referring to it as sAutoType in another place will not work. Your code will fail if you name a schema column AutoTypeName, but then refer to it as AuotypeName in a calculation.

StudioWorks will default to use the label value for the abbreviation. Abbreviations are used for headed list column headings, report column headings, and pushbuttons.

Entry fields in the meta-data editor with a blue background are default values. If you edit a default value the background will change to white, indicating a non-default value. To revert to a default value, clear the entry field and tab out of the field.
Create the table in the database
Every window instance which you open in your StudioWorks application must first be declared. Each module declares its own window instances.
Each window instance must have a unique wininstid. StudioWorks lets you set properties for each window instance.
The tab of the is where we can view and declare window instances.
We are now ready to test opening the AutotypesList window instance.

Omnis Studio seems to cache the list of database tables when working with the Omnis data file. After you add some new tables you might need to and reopen the application to force Omnis Studio to rebuild the database tables list. This only applies to the Omnis data file. If in the next few steps or later in the tutorial that you get some SQL errors after you've added a new table to the Omnis data file, try quitting Omnis and reopening the app.
In StudioWorks you can map an iconid to a wininstid or a basetable. Mapping an iconid to a basetable is more efficient because multiple window instances that use to the same basetable will immediately be mapped to the same iconid.
For window instances that do not have a basetable (e.g. container windows), or window instances that you want to map to a different iconid, you can map an iconid to the wininstid.

When you add an icon node to the treelist, you are really adding a new row to the sIcons schema class of the parent node library. The is just an interface for editing the sIcons schema classes. The advantage of using the is that you immediately see a represention of the icon which you assigned, and the cached lists affected by your changes are immediately updated. (icons master list, windows master list, navigation menus list)
The is used to add/remove window instances to/from the main window's navigation treelist.
Let's add the window instance to the navigation treelist.
The steps for creating the Auto table are pretty much the same as the steps for creating the Autotype table.
Create the schema class

If the Auto table was going to contain hundreds of records you would not check fetchall.

If cascade delete is checked, child records are automatically deleted when the parent record is deleted. You want to be very careful with cascade deletes!
Create the table in the database
We need to create query classes which joins the child Auto records to their parent Autotype records.
Create the list view query class

Based on the foreign keys meta-data the StudioWorks will make its best guess at calculating the $extraquerytext to join the query class tables as you add or remove query class columns. If the $extraquerytext is not being calculated click the button below the schemas treelist and then click the button to recalculate the $extraquerytext.
Always check, and if needed, correct the $extraquerytext when you have finished changing the columns. You are ultimately responsible for the final $extraquerytext.
WHERE auto.autotype_fkey = autotype.autotype_pkey

The Omnis data file is picky about the order of the foreign key and primary key columns. To help you remember the order think about alphabetic order... fkey comes before pkey.
Create the edit view query class
WHERE auto.autotype_fkey = autotype.autotype_pkey
Map an icon to the Auto table adding it to the icons list.
Add the window to the navigation list.
We are now ready to test opening the AutoList window instance.

The Omnis data file is case-sensitive, so you must type upper case T for this example. For other databases the lookups are case-insensitive.

On evAfter StudioWorks sets the Autotype_fkey column in the qAutoEdit list to the Autotype_pkey of the selected auto type record.
Try the following assignment on your own.
Be sure the $extraquerytext text joins the Auto table to the Contact table.

The labels can be changed to in the AutoList and AutoEdit window instances by changing the name in the class meta-data of the qAutoList and qAutoEdit query classes. The quick start tutorial doesn't cover how to do this, but it is good know that you can create different labels for different query classes with the meta-data.
The StudioWorks framework auto-creates a report when you click the button in the list view toolbar. The report includes all of the columns and records data displayed in the list.
After you print a report you will find an X_ prefixed report class in the same library as the list query class. The report class name is based on the WinInstID of the list view window instance. If you remove the X_ prefix from the report class, the StudioWorks framework will continue to use the report class as the default report for that WinInstID. You can then open the default report class, reposition fields, and make as many modifications as you like. Your changes will be evident the next time you click the button in the list view toolbar.
See the StudioTips > StudioWorks group > tab for information on creating custom reports.You can add menus to any window instance. The menus appear in the toolbar.
To add a menu to the AutoList window instance:

When you add a menu line or change the , StudioWorks automatically adds the menulineid the sMn_stb schema class in that library and updates the string tables. You can further edit the string table text in the .
StudioWorks adds a recipient method with the same name as the menulineid to the observer object class specified for the menu line. If the menuid is Reports, then a recipient method is also added to the oPrintReport object in the same library.
You can click the edit pencil next to the menuclassname to go to the specified menu class. You can click the edit pencil next to the observer objectclassname to go to th observer object method that is called by this menu item.
To add a menu to the AutoList window instance:

The StudioWorks framework will add the object classes oReportsMenuObserver and oPrintReport to a module if they don't exist when the first report menu item has been declared.
The oReportsMenuObserver is classified as a visual object class. If you need to prompt the user to enter/select criteria before printing the report, do the prompts from this visual menu observer object.
The oPrintReport object is classified as a non-visual object which means you should never prompt the user or open any error prompt windows in the oPrintReport object class methods.
By splitting apart the visual code which prompts the user, from the non-visual print report code, you will be able to reuse the non-visual oPrintReport code when you add a web interface to your StudioWorks app. Trust me, it is worth doing. Clearly separating visual class code from non-visual make for cleaner reuseable code.

You can associate an icon with any menu line by mapping an icon to the menulineid in the .
The objective of the StudioWorks framework is to allow quickly move from database design to a basic application that allows you (and your client) to insert and link records, view lists and print simple reports.
If you are converting an existing application you can import data from the old application and then play around with viewing and massaging the imported data in the new application.
Once you get through the database design and generating the basic application you will be into the phase of creating custom windows with added bells and whistles to make data entry and modification easier for the users.
To create a concrete window class from an autoconfig window class:
Using normal Omnis Studio code you can customize your window class by adding field event methods, window objects, etc. to your concrete window class.
The following sample code is from the $event method of the ContactFormalName entry field of the wContactEdit window class.
On evBefore
If len($cobj.$contents)=0
If iList.isHousehold
Calculate SortName as iList.ContactSortName
If pos(',',SortName)
Calculate FirstName as trim(mid(SortName,pos(',',SortName)+1))
Calculate LastName as trim(mid(SortName,1,pos(',',SortName)-1))
Calculate [$cobj.$dataname] as con(FirstName,' ',LastName)
Else
Calculate [$cobj.$dataname] as iList.ContactSortName
End If
Else
Calculate [$cobj.$dataname] as iList.ContactSortName
End If
Do $cobj.$redraw()
End If
Quit event handler (Pass to next handler)
The code copies the ContactSortName to the ContactFormalName if the ContactFormalName is empty. For households the last name and first name are flipped from the ContactSortName to the ContactFormalName.

It is important to end your $event method code with Quit event handler (Pass to next handler) so that the StudioWorks framework's field handler can properly decorate the field on evBefore and evAfter.
Hopefully this quick start tutorial has given you a sense of how the StudioWorks framework can assist you with rapid application development.
We have really only scratched the surface in this tutorial. It is extremely difficult to write a tutorial that satisfies the wants and needs of all developers. Some developers like to have incredible detail, others get bored with too much detail.
The real learning happens when you write your own application and have to deliver it to a client.
Don't try to get too fancy too soon. Follow the pattern of the quick start tutorial by focusing on the database design, meta-data, and auto-generated window instances. Don't get side tracked into building custom window classes too early on. Get some real data into the database and generate some reports before tackling custom window classes.
The farther you can get with using meta-data and auto-generated windows the better off you are.
As you start adding custom features and enhancement to your StudioWorks app you will need to search the StudioWorks documentation, look at the methods and code inside the classes, and ask questions on the StudioWorks members list.
The real learning is about to begin. Omnis Studio, StudioWorks, and SQL are a powerful combination - but you'll need to roll up your sleeves and be very persistent in order to learn how to harness the power.
The StudioWorks members are a great community of developers, but they can't write your application for you (at least not for free). You can ask the questions, but you have to be persistent with the learning.
There may be days you question your decision to invest in StudioWorks, but trust me, there are several man years of code included in the framework and many more years of experience that have been invested into learning Omnis Studio and object-oriented programming techniques. There are tools and features included in the StudioWorks framework which are the combined efforts of several StudioWorks devlopers. You would spend years writing (and debugging) these tools and features on your own.
Working together we all win!
Happy coding,
Doug KuyvenhovenThe following is a recommended list of things to do as you move forward with developing your new StudioWorks application.
The above list might seem daunting. If it was easy, anybody could write custom software solutions. Once you gain the above knowledge and experience you can use Omnis Studio and StudioWorks to create powerful, flexible, and maintainable custom applications in an incredibly short period of time.
The next tutorial, , takes you through adding custom features and code to the meta-data based auto-generated app that you wrote in the .Under the you will see the menu item . By selecting this menu item you toggle the menu checkmark. With this menu item checked a tiny pushbutton (White X in a blue circle) appears in the top left corner of each subwindow.
If you click on the button a ping message tells you information about the subwindow.
If you shift+click on the button you will end up at a breakpoint inside the subwindow. This feature is very helpful when you are debugging and customizing windows.
I use the shift+click on the blue ping button technique for:
If a developer version of Omnis Studio is being used and an error is logged, the error handler opens a debug OK message. The OK message allows the user to break into the code at the error handler. From there, using the toolbar menu you can go back up the method stack to investigate the method which logged the error, and any previous methods currently in the method stack.
Being able to break into the method stack when an error is logged is extremely useful for solving bugs in your code.
Click the Run Demo button in the window to try out the debug OK message.
The debug OK message prompt is not opened for the following errors: check data, data, minor, and user errors.Each main library has its own mProgrammer menu class which is instantiated by the main menu as a cascading menu by the name . AppName is replaced with its string table translation.
This method is helpful to you for experimenting and testing code which you write in StudioWorks. If I have a chunk of code that doesn't work and I want to experiment with variations of the code, I'll often go the the to try out different things. If I have a batch of records I need to fix in the database, I'll often use the to write and run the code.
One of the things that was confusing to me when I got into reading the object-oriented programming books was this thing about sending messages.
In Omnis I was used to the the term method call. If I was explaining code to someone I would say that MethodA does a method call to MethodB even if MethodB was in another class.
Instead of using the words making a method call to another class, the object-oriented programming world uses the word sending a message, which once you get your head adjusted to it, it really is a better word picture of what the code is doing.
So, when we talk to each other about our code (or if we're talking to ourselves), let's talk about class instances sending messages to each other rather than using the term of making method calls.
You can still use the term method call when MethodA and MethodB are in the same class.
So how does this word picture help the developer? Let's use a the real world which all of use can easily relate to.
Do you see how this relates to classes and public methods in Omnis Studio? Let's use a StudioWorks framework example to tell a similar story.
Once you get the picture of instances sending messages to each other, a lot of things gain clarity in Omnis Studio.
When a user clicks on a line in a headed list:
When you open a library, Omnis Studio looks for a task class named Startup_Task. If found Omnis Studio opens an instance of the Startup_Task class and names the instance the same name as the library name. Omnis Studio then sends the task instance a $construct message. If the $construct recipient method exists, the code in the method can open instances of menu classes, toolbar classes, and window classes. All of these instances that are opened are contained within the startup task instance.
Hopefully the above note help you to see more clearly the picture of class instances sending messages to each other. The StudioWorks framework depends heavily on the concept of sending messages between source and target class instances, so it will be good if you think and talk in these terms.One of the keys to using the StudioWorks framework (and Omnis Studio ) is learning to use the . I wrote code using Omnis Studio for about 2 years without using the . Today, I'd be lost without the .
The shows you the public interface to a class, that is, all the class methods which begin with the $ character.
Well built object-oriented programs have a good clean public interface. You write your code using the public interface. The Omnis Studio IDE works very well with the .
If you aren't familar with the and how to use it to write code, let's go through some exercises.
For these exercises you will be writing code in the > . The instructions below assume that you will write the code below the Quit method in the $event method of the Programmer Test Method menu line of the mProgrammer class method.
Get and set the $:AppName property in the oConstants object class instance.

Do not use # hash variables for your real app code.
Your finished code should look like this:
Do cn.$:AppName() Returns #S1
Do cn.$:AppName.$assign('Crazy Drivers')
Now we'll use the to look at the table class methods. List and row variables do not know which table class they are supposed to point to until after you bind them to a table class. In StudioWorks you bind a list or row variable by sending a $retDefinedList to the lsts instance of the oSQLList object class.

The list or row variable is only available after the list or row has been bound to a table class while you are stepping through the code. If you were to clear the method stack and right-click on the list variable the menu line does not appear in the context menu.

Do not use # hash variables for your real app code.
Your finished code should look like this:
Do lsts.$retDefinedList('sCountry') Returns #L1
Do #L1.$:BaseTable Returns #S1
Do #L1.$getAllRecords() Returns #F
The is an important tool for you to use when writing code in Omnis Studio. Documenting all of the classes and methods in the StudioWorks framework would take longer than writing the code... and would end up being a repetition of the information you can find yourself by using the .

From the method editor you can look at the of the class you are in using the IDE toolbar button.
From the you can look at the of any class by right-clicking on the class and selecting .
Take some time and study the public interface of the Startup_Task task variables. These are the key object classes of the StudioWorks framework. Before you spend time writing a custom method, look at the object classes in the StudioWorks core libraries. There are object classes for exporting and importing data, encrypting and decrypting files, opening the client's web browser to a specific URL, preparing an email in the client's email program, etc. If you are unsure, ask a question on the StudioWorks list. Other StudioWorks members might know where to look. One of the benefits of the StudioWorks community is that we can create reuseable object classes which we can share, because we are using a common framework.
If you know the task variable name and have an idea of the public method name you don't have to use the .
Try the following:
To add a toolbar button to the contacts list window:
The HelloWorld button should appear in the toolbar, but you will notice that the text is not translated, it is not enabled, and does not have an icon. To solve these problems:
Do inherited Returns List
Do List.$add('HelloWorld')
Quit method List
There are two ways to remove a toolbar button.
How you write your code is up to you. The following are a list of guidelines which I follow when writing code. These guidelines have evolved over the years.
; Test FlagOK
Do List.$getAllRecords() Returns FlagOK
If FlagOK
; Continue
End If
Quit method FlagOK
; Test return list. Lists and rows you can not test with isnull()
Do lsts.$retDefinedList('sContact') Returns List
If List.$colcount=0
Calculate FlagOK as kFalse
Else
; Continue
End If
Quit method FlagOK
; Test return string
Do fn.$retCSVStringFromList(List) Returns String
If isnull(String)
Calculate FlagOK as kFalse
Else
; Continue
End If
Quit method FlagOK
; Pretend this is a public method of a window class.
Do lsts.$retDefinedList('sContact') Returns List
If List.$colcount=0
Calculate FlagOK as kFalse
Else
Do List.$getAllRecords() Returns FlagOK
If FlagOK
Do List.$smartlist.$assign(kTrue)
Do List.$sendall($ref.Active.$assign(kTrue))
Do List.$doworkBatch() Returns FlagOK
End If
End If
; Wait till the end of the method. Test the flag. Prompt the last error if the flag is false.
If not(FlagOK)
Do errhndlr.$promptonceLastError()
End If

In your Omnis Studio > tab set the $notationhelpertimer property to 50 milliseconds. The notation helper will come up a lot faster and save you loads of keystrokes and typing errors.
If you want to write code that is easy to maintain you must be diligent about writing good error handling into your code.

The error handler takes care of reporting the library/class/method which reported the error. You simply need to report additional helpful error message and details information.
The StudioWorks error handler has specific log error methods which make it easier for you to log certain types of errors. Study the different $log...Error methods in the oErrorHandler object class to become familiar with them. By using the correct method you can save yourself some time, and your user will get an error message with with the appropriate icon and error message information.
In some cases the error is not a program error. For example the user enters an incorrect password. A non-visual class method can send a $logMinorError message to the error handler and return false to the sender. The visual class method then sends a $promptonceLastError message to the error handler and the user is prompted with a non-threatening error message.
Click the button in the window to see a demonstration.

Do not use OK message commands in your non-visual class methods. If you ever try to run your StudioWorks app as web server app the OK message commands will halt your application on the web server preventing it from responding to any further requests. Someone will have to go to the server and click the OK message to allow it to continue. Not a good thing.
When overriding a superclass method in StudioWorks, to avoid duplication, you should normally first Do inherited and then add your subclass specific method code.
; Run the superclass code
Do inherited Returns FlagOK
If FlagOK
; Do the subclass additional code.
End If
Using the 4GL Do inherited command you can get away with not declaring the parameters in the subclass, but if you put a breakpoint on the Do inherited and step up into the superclass method the parameters in the superclass method will be empty. For the superclass code to work while stepping through a Do inherited, the correct parameters must also be declared in the subclass method. If you need any of the parameters in the subclass method, you will need to declare the parameters in the subclass. Sometimes is it easier to copy the entire superclass method, which also copies the parameters to the subclass, and then delete the code from the sublclass method and enter Do inherited at the top of the subclass method. See the steps below for the proper way to copy a superclass method to a subclass.
Running the superclass method isn't always possible. In some cases you will have to copy the superclass method to the subclass and then modify the copied method in the subclass.
Use the following steps to copy a superclass method to the subclass.
Do method setDefaultsAndPrefs Return FlagOK
Quit Method FlagOK
Do inherited Return FlagOK
If FlagOK
; Do the additional stuff you wanted to do
End if
Quit method FlagOK

Background - Private methods give me much more flexibility because they are inside the box where I can still play with them. As soon as a method name has a $ character prefix, I can't mess with the name, the purpose, the parameters, etc. If you are coding from my end, you soon realize how restrictive that is... especially in the early stage of developing an object when you need to refactor the methods and code a few times as it progresses and gains clarity over the course of several releases. -- Doug K.
Only prompt the user from public visual class methods.
In the context of the StudioWorks framework visual classes are:
All other classes should be considered to be non-visual classes and therefore should never prompt the user.
In the context of the StudioWorks framework public methods are:
You have several choices for prompting the user:
If flag trueThe StudioWorks framework uses the table class tBase for all selects, fetches, inserts, updates, and deletes with the database.
The StudioWorks framework makes extensive use of the Omnis Studio $smartlist functions. When you set a list to be a smartlist, Omnis Studio makes a hidden history list. The history list keeps track of lines added, lines changed, and lines deleted from the original list at the time is was set to be a smartlist. The smartlist eliminates all the code you would have to write to keep track of which lines in a list need to be inserted into the database, which lines need to update records in the database, and which lines need to delete records in the database. You simply issue a $dowork and Omnis Studio does the database work for you. (StudioWorks uses a modified version of $dowork which it has named $doworkBatch)
Without the StudioWorks framework you would need to write at least the following code to update a batch of contact records in the database.
Calculate HostName as 'PathToTheOmnisDataFile'
Calculate UserName as 'TheUserName'
Calculate Password as 'ThePassword'
Calculate SessionName as 'TheSessionName'
Do SessionObj.$logon(HostName,UserName,Password,SessionName) Returns FlagOK
If not(FlagOK)
; Log the $logon error here.
Else
Do List.$definefromsqlclass('myAppModule.sContacts')
Calculate List.$sessionobject as SessionObj
Do List.$select() Returns FlagOK
If not(FlagOK)
; Log the SQL error here.
Else
Do List.$fetch(kFetchAll) Returns FetchStatus
If FetchStatus=kFetchError
; Log the SQL error here.
Calculate FlagOK as kFalse
Else
Do List.$smartlist.$assign(kTrue)
For List.$line from 1 to List.$linecount step 1
Calculate List.ColName as 'SomeValue'
Calculate List.ModBy as UserName
Calculate List.ModDateTime as #D
Calculate List.EditNum as List.EditNum+1
End For
Do List.$dowork() Returns FlagOK
End If
End If
End If
Quit method FlagOK
With the StudioWorks framework the following code accomplishes the same thing.
; Ask the oSQLLists object to return a defined list bound to the correct session object.
; If there is an error oSQLLists will log the error for you.
Do lsts.$retDefinedList('sContact') Returns List
If List.$colcount
; Ask the tBase table class to select and get all the records.
; If there is an error tBase will log the error for you.
Do List.$getAllRecords() Returns FlagOK
If FlagOK
Do List.$smartlist.$assign(kTrue)
For List.$line from 1 to List.$linecount step 1
Calculate List.ColName as 'SomeValue'
; Setting the admin columns (EditNum, InsBy, InsDateTime, ModBy, ModDateTime) is handled by tBase.
End For
; A custom dowork method in tBase, $doworkBatch, updates all the admin columns for you.
; If there is an error tBase will log the error for you.
Do List.$doworkBatch() Returns FlagOK
End If
End If
Quit method FlagOK
You can go a long ways with just the above snip of code. The code breaks down to 5 steps:
Do List.$doworkBatch() Return FlagOK
Every window and subwindow that you instantiate in StudioWorks must have a unique window instance ID. We refer to the unique window instance as the WinInstID.
The WinInstID, CountryList, would be a headed list window used for displaying a list of Countries in the Country table.
The WinInstID, CountryEdit would be a window with entry fields used for editing new or existing Country table records.
Default WinInstIDs are automatically generated by StudioWorks for every server table based schema class in each module. The WinInstIDs use the naming convention TablenameList and TablenameEdit, where Tablename is the cap() value of the server table name in the database.
You can declare your own custom WinInstIDs in the $addCustomWinInstIDs method oWindowList in each module.
Information about each WinInstID is gathered from the oWindowsList object in each module. The information is stored in the oWindows object where it can be accessed through the task variable wn. To look at the WinInstID information you would issue:
Do wn.$retWinListRow('CountryList') Return Row
Virtually every WinInstID is instantiated as a subwindow inside of a parent shell window.
The is a subclass of wShell with a navigation treelist subwindow added to it.
The wShell window class is designed so that it can instantiate an infinite number of subwindows. The wShell window class keeps track of the subwindows it instantiates in its own subwindows list and subwindows stack.
When you click a node in the navigation treelist a message is sent from the treelist subwindow to the main window shell asking it to prepare and open a specific WinInstID. The main window checks to see if the WinInstID has already been instantiated. If not, it adds a subwindow field, and based on the information in the windows list, it sets the $classname property of the new subwindow field. This immediately instantiates the window class inside the subwindow field. The subwindow is brought to the front by hiding the previous subwindow and making the new subwindow visible.
Each subwindow in StudioWorks is designed to be self-contained. It can have its own title, toolbar, and pushbuttons. The subwindow has very little dependence on the shell window which instantiates it. For example, the CountryList subwindow constructs its own headed list, toolbar, and search bar. When a user presses on the toolbar a $new message is sent to the subwindow. The subwindow finds out from the meta-data that the WinInstID, CountryEdit, is used for creating new records and it sends a message to its shell asking the shell to prepare a CountryEdit WinInstID. The shell prepares the WinInstID as a subwindow and returns a reference to the $new method which then sends a $newRecord message to CountryEdit. CountryList also attaches itself as an observer to CountryEdit asking to be notified if the database is changed. CountryEdit is self-contained, so it knows what to do.
By making each subwindow as independent as possible, we can more easily use a window class in different situations. If you shift+click on a node in the navigation treelist the same subwindow will be instantiated in a separate shell; where you can click the button and see the very same behavior.The next level in using subwindows is to combine several subwindows inside a container window. Instead of instantiating just a ContactsList window, you might want to have the ContactList subwindow in the top half of the window and the ContactEdit subwindow in the bottom half of the window. Clicking on a contact in the list subwindow triggers displaying the contact details in the edit subwindow. A window which instantiates more than one subwindow is called a container window.
The window is a container window. It has a tab pane interface with each tab being a separate WinInstID.
The StudioWorks framework ships with a number of container window superclasses and templates which you can copy and play around with. These container windows have not been extensively developed or documented so you have to be prepared to do some investigative learning.
The container window attempts to take typical window layouts and use generic code to reduce the amount of code you have to write in order to make them work. If you double-click on the subwindow field, you will find a $:InitialWinInstID property method. Enter the WinInstID you want that subwindow to intially be instantiated as.
Good luck. Feel free to create you own custom container windows. The container windows gets into the realm of your domain because this is where things get very application and developer specific.
From the object-oriented point of view, the shell window sends messages to the container window. The container window is fully responsible for its subwindows. A subwindow should not communicate directly to another subwindow, rather it should send the message to its container, and the container passes the message to the other subwindow.
For example, in the contacts list/edit container window we talked about at the beginning, when the user clicks on a contact in the list, the container window should be sent a message notifying it of this event. The container then sends an $editRecord message to the edit subwindow. Try to avoid having subwindows talk directly to each other. Like a family, the parents usually know best because they see the bigger picture, so it's best to work through the parents.This is a minor release with various bug fixes and minor enhancements.
To update to this new release:
oDBSessionMethods_base/$reconnectSession_IPAddrChanged (2010-07-14 Josh L.)
Replaced the OK Message with a logAction to the error handler so it won't pop up on the Webserver version of Omnis Studio.
oMetaDataSchemaClass_Model/$:hasdefaultwininsts (2010-06-29 Josh L.)
Method added to support deleting default window instances.
oMetaDataSchemaClass_Model/$:hasdefaultwininsts.$assign (2010-06-29 Josh L.)
Method added to support deleting default window instances.
oMetaDataSchemaClass_Model/update_lookupstartchar (2010-07-13 Josh L.)
Let the developer choose when to use contains and at what point the lookup character starts. I also changed the default start lookup char to 2 so the defaults should work with all databases.
oMetaDataSchemaClass_Model/update_lookupstartchar (2010-07-13 Josh L.)
Added an end if at the end of the block of end ifs to line up the code properly.
oTableClassMethods_base/$selectCustom (2010-07-08 Josh L. as per Andy H.)
Added the fixsqltext_like to change like to ilike in PostgreSQL.
wEdit_abstract/$newRecordCopy (2010-07-13 Josh L.)
Moved $setDefaults to before assigning the columns to the new line. Also got the columnslist for the schema and found all columns with a default value of [refscounter] and removed them from the lists cols list. Then assigned the remaining columns from the row to the list. The code assigning foreign keys is no longer necessary.
wHeadedList_autoconfig/setListProperties (2010-07-08 Josh L. as per Andy H.)
Assign the translated values to the columns list fields.
wLookupList/setSize (2010-07-13 Josh L.)
Add a generic whatever has been calculated for the column name as the column name for non-translatable column names.
wLookupList/setSize (2010-07-13 Josh L.)
Try to calculate the actual column name even if it's buried inside a calculation
wSearchbar_abstract/$initialize (2010-07-13 Josh L.)
don't sort by label, the list is already sorted by order of the columns in the schema/query class.
oRefs/$retLookupList (2010-07-09 Josh L. as per Andy H.)
Add the RefsSortOrder column to the Return List so it will sort properly.
This is a minor release with various bug fixes and minor enhancements.
To update to this new release:
oConstants/$:WebAppCSSFolderURL (2009-10-26 Doug K. per Andy H.)
Change from pos('http://') to mid(...1,4) to handle http & https.
oConstants/$:WebAppJavaScriptFolderURL (2009-10-26 Doug K. per Andy H.)
Change from pos('http://') to mid(...1,4) to handle http & https.
oConstants/$:WebAppServerCGI (2009-10-26 Doug K. per Andy H.)
Change from pos('http://') to mid(...1,4) to handle http & https.
oDBAdminMethods_abstract/$_logError (2010-05-12 Josh L.)
Commented out and removed the errhndler.$logError... as that prompts the developer in the middle of the sync.
oMetaDataDefaultProperties/$getQueryColsDefaultsRow (2010-05-12 Josh L.)
Default the stbname to the stbname from the query class rather than that of the schema class. Added the pfQueryColsDataList parameter as well.
oMetaDataQueryCol_Model/$loadData (2010-05-12 Josh L.)
Added the QueryClassDataList so we can default the stbname to the one from the columns Query if it is entered.
oMetaDataQueryCol_Model/syncColumnsForSQLClass_full (2010-05-12 Josh L.)
Added the QueryClassDataList so we can default the stbname to the one from the columns Query if it is entered.
oMetaDataQueryCol_Model/syncColumnsForSQLClass_revert (2010-05-12 Josh L.)
Added the QueryClassDataList so we can default the stbname to the one from the columns Query if it is entered.
oObject_template/$ping (2009-11-03 Doug K per Birger R & Chuck M)
Modifed $ping message to be able to send $ping to various possible subwindows for use by the developer.
oSecurity_DBAccessor_abstract/$_retSecurityUserRowFromDBUserRow (2010-05-11 Josh L as per Andy H.)
Added initialization for iSecurityUsersList and iSecurityInfoRow which aren't initialized when doing an initial db sync.
oStringTables/$rebuildStringTables (2010-05-11 Doug K)
Added method to rebuild string table table (copied and modified from the Programmer Menu) for use by the string tables editor/model objects.
oStringTablesEditor_Model/$addLanguage (2010-05-11 Doug K.)
Test and complete the $addLanguage method code.
oStringTablesEditor_Model/$deleteLanguage (2010-05-11 Doug K.)
Test and complete the $deleteLanguage method code.
oStringTablesEditor_Model/$exportStringTables (2010-05-11 Doug K.)
Write and test the $exportStringTables method code.
oTableClassMethods_base/$:FetchAllWhereRow (2010-05-11 Josh L.)
Added the functionality to use Omnis Date manipulations in the FetchAll where text with guidance from Andy H.
oTableClassMethods_base/$_initialize_SpecialCols (2010-05-12 Josh L as per Will Adkin)
Check to see if an admin column is already specified for each admin column before assigning vars. This results in the first instance of the admin column being chosen rather than the last one.
wDBAdminTables/buildTablesList (2010-05-11 Josh L.)
Add a sort for the tables list so we don't rely on the database returning them in any kind of order.
oConcretizer/addProgrammerDebugButton (2009-11-10 Doug K per Chuck M.)
Add extra $ping calls to other possible subwindow in the ProgrammerDebugButton method. Created _ProgrammerDebugButton_template method to copy the $methodtext from.
oConcretizer/setTextAndTooltipProperties (2010-05-11 Josh L. as per Andy H.)
updated the string table translation to use both stbname and servertablename if they are different.
oMenus/$retWindowMenusList (2009-10-22 Doug K.)
Deleted unused parameter, pMenuID.
oPrompts/$promptInputVars (2010-05-11 Josh L.)
Changed the Input1 - 4 parameters to 100000000 length characters (up from 100).
oWindowInstancesListEditor_Controller/$connectView (2009-10-20 Doug K.)
Modified the controller to initialize the contained window instances list subwindow.
oWindowInstancesListEditor_Controller/$setandsaveContainedWinInstsList (2009-10-22 Doug K.)
Added method to set and save the containedwininstslist for container windows.
oWindowInstances_Model/$:About Window Instances Model (2009-10-20 Doug K.)
Added 'containedwininstslist' properties to sWindows_listdef. This properties allow the developer to specify generic patterns for container windows. This prepares the way for extending StudioWorks to autoconfig container windows, and generate them for HTML and remote forms.
oWindowInstances_Model/$:containedwininstslist (2009-10-20 Doug K.)
Added setter and getter methods for 'containedwinintslist' property.
oWindowInstances_Model/$initialize (2009-10-20 Doug K.)
Modified method to instantiate and initialize the contained window instances model object.
oWindowInstances_Model/$setandsaveContainedWinInstsList (2009-10-22 Doug K.)
Added method to set and save the containedwininstslist for container windows.
oWindowInstances_Model/initializeContainedWinInstsListModel (2009-10-20 Doug K.)
Added method to initialize the contained window instances model object.
oWindowInstances_Model/instantiateContainedWinInstsListModel (2009-10-20 Doug K.)
Added method to instantiate the contained window instances model object.
oWindowInstances_Model_ContainedWinInstsList/$#About ContainedWinInstsList (2009-10-20 Doug K.)
Added new object class to model the containedwininstslist property.
oWindowInstances_Tool/$retDefinedContainedWinInstsList (2009-10-20 Doug K.)
Added a method that returns a defined containedwininstslist.
oWindowInstances_Tool/$retWinTypesList (2009-10-20 Doug K.)
Added wintypes: container_horzsplit, container_tabsplit, container_vertsplit These are new wintypes for describing the patterns of different generic container window instances. Also added wintype 'grid' for describing an autoconfig complex grid with list/edit capabilities.
oWindowInstances_Tool/retDefinedContainedWinInstsList (2009-10-20 Doug K.)
Added a method that returns a defined containedwininstslist.
wBase_ToolbarTitlebar_abstract/$_constructToolbar (2010-05-10 Josh L.)
Took out the final else calculate toolbar.$visible as kfalse because it is no longer needed.
wBase_abstract/$_retActiveCmndsList_winslist (2010-04-23 Josh L.)
Added a case for view if edit is in the list as 'view' isn't enabled if the user doesn't have edit abilities.
wContainer_Edit_ListChildren_abstract/$viewRecord (2010-05-10 Josh L.)
Added Quit method FlagOK so this method can actually be used without producing an error
wContainer_abstract/$_constructToolbar (2010-04-08 Josh L.)
Copied this method from wBase_Toolbar_Titlebar_abstract which works much better. The OldCode at the bottom is this window's initial method.
wLookupList/setSize (2010-05-07 Josh L as per Andy H.)
Show the column headers if there are multiple columns.
wPromptFindMultiCriteria/$initialize (2010-05-11 Josh L.)
Updated the string table translation to use both stbname and servertablename if they are different
wPromptInput/addFieldsAndLabels (2010-05-11 Josh L.)
Updated this method to only calculate the left part of the label for Radio button Strings.
wPromptInput/addFieldsAndLabels (2010-05-11 Josh L.)
Workaround for Mac and Omnis <5 to use Arial 11pt font to calculate the size.
wSearchbar_abstract/$initialize (2010-05-11 Josh L. as per Andy H.)
updated the string table translation to use both stbname and servertablename if they are different.
wShell_Lookup/$event (2010-05-07 Josh L.)
Let the user change tabs, prompt to save if closing modified tabs.
wWindowInstancesListEditor_View/$#About Window Instances List Editor (2009-10-20 Doug K.)
Added tab pane object and a second tab with a subwindow for editing the containedwininstslist.
This is a minor release with various bug fixes and minor enhancements.
To update to this new release:
oEmail/$sendEmail (2009-10-06 Doug K per Mike M.)
If first SMTPSend fails, give it one more try.
oEncryptDecrypt/$decryptList (2009-10-07 Doug K.)
Changed from $decrypt to $decryptchar for Omnis 5 blowfish object.
oEncryptDecrypt/$decryptString (2009-10-07 Doug K.)
Changed from $decrypt to $decryptchar for Omnis 5 blowfish object.
oEncryptDecrypt/$encryptList (2009-10-07 Doug K.)
Changed from $encrypt to $encryptchar for Omnis 5 blowfish object.
oEncryptDecrypt/$encryptString (2009-10-07 Doug K.)
Changed from $encrypt to $encryptchar for Omnis 5 blowfish object.
oExportImportData/$importReturnList (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
oFunctions/$isNumber (2009-10-01 Doug K.)
Replaced old method code with the new isnumber() function. This also solves the localization problem with German decimal separator as noted by Matthias H.
oMetaDataQueryCol_Model/$updateQueryCols_addschemacolname (2009-08-27 Doug K.)
Bug fix. Set rClass in the loop.
oMetaDataQueryCol_Model/$updateQueryCols_moveschemacolname (2009-08-27 Doug K.)
Bug fix. Set rClass in the loop.
oOpenLibraries/retPathStudioWorksFolder (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
oPaths_StudioWorks/$:PathStudioWorksFolder (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
oPaths_StudioWorks/$retStartupItemsFilePropertiesList (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
oPrimaryKeys/$getNextPrimaryKey (2009-10-01 Doug K per Andy H.)
Added an isclear(pfRetNextKey) test if FlagOK=kTrue, just to be sure a valid pkey value is returned.
oStartupSettingsFile/loadStartupItemsFilePropertiesList (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
wLogFileViewer/loadLogFileContents (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
wSQLQueryBuilder/$duplicateClass (2009-10-02 Doug K per Mike M request.)
Enhanced method to allow duplicate a query to a different library.
oPaths/$:PathStudioWorksFolder (2009-10-03 Doug K.)
Changed FileOp.$readfile to $readcharacter(kUniTypeAuto,String). $readfile into string breaks in Omnis Studio 5.
oFieldHandlerLookupTypeAhead/$fetchMore (2009-10-02 Doug K.)
Send bScrollToEndofList=kTrue to setLookupListField method.
oFieldHandlerLookupTypeAhead/event_evMouseDown_LookupsList (2009-10-01 Doug K per Chuck M.)
$setLookup is being called twice when the user clicks on the lookup list. To avoid the double call, set ibModified in this handler to kFalse after calling 'selectLookupListFieldLine'.
oFieldHandlerLookupTypeAhead/setLookupListField (2009-08-08 Doug K.)
Added helpful OK message with debug hint if the lookup list window reference hasn't been set.
oFormatPhoneNumber/$:DefaultPrefix (2009-08-29 Doug K.)
Added telphone prefix property
oFormatPhoneNumber/$formatPhoneNumber (2009-08-29 Doug K.)
Added code to allow use of a telphone prefix.
oNavigationMenu_Model/$updateIcon (2009-10-07 Doug K.)
Modified code to search for pos(low(pNewIconName) and pos(low(pOldIconName) so that it has better chance of catching wininstids that need their icon recalculated.
oWindowInstancesListEditor_Controller/$loadData (2009-08-21 Josh L.)
Save any changed data before loading new data. Loading new data will not change anything in the lists, and to do this, I have to make sure all previous changes are saved.
oWindowInstances_Model/$rebuildData (2009-08-21 Josh L.)
rebuilding the window instances list now only takes out the lines that are not in the rebuilt list and adds in new lines.
wEdit_abstract/$control (2009-08-07 Josh L. as per Chuck M.)
Tested if the mode is view, then keypresses and mouse-clicks shouldn't set the window as modified ... mainly because they shouldn't modify the data.
wList_autoconfig/$attachHeadedListEventsObserver (2009-08-28 Doug K.)
Added method to allow others to attach themselves as observers directly to the headed list events.
wLookupList/$set (2009-10-02 Doug K per Chuck M)
Added parameter pbScrollToEndOfList and code to execute this. This is used when the user clicks the "More" button.
wPromptInput/$:PreferredHeight (2009-08-27 Josh L.)
Add instance var to keep spacer height the same across methods and provide a single place to change it according to application.
wPromptInput/_addFieldAtPos (2009-08-27 Josh L.)
Add instance var to keep spacer height the same across methods and provide a single place to change it according to application.
wPromptInput/addFieldsAndLabels (2009-08-20 Josh L.)
I noticed there were some prompts with very long labels which were getting cut off. This precalculates the label width and field left so the prompt displays correctly NOTE: This only works if the template label and field have a valid font and size > 0. (On my test mac this is not the case so it uses the template label width) Added Note: Tested this in Omnis Studio 5 and the $wintextwidth function now works with Mac OS X theme fonts.
wPromptInput/addFieldsAndLabels (2009-08-27 Josh L.)
Add instance var to keep spacer height the same across methods and provide a single place to change it according to application.
wPushbuttons/$resize (2009-10-03 Doug K.)
Bug fix. Changed 'type' to 'objtype' to correct spacing problem.
wToolbar/$#About (2009-10-01 Doug K.)
Moved IconWidth local variable to class variable and renamed as ckIconWidth.
wToolbar/$#About (2009-10-01 Doug K.)
Moved iSpacerWidth instance variable to class variable and renamed as ckSpacerWidth.
wToolbar/$#About (2009-10-01 Doug K.)
Created class variable ckGap=16 to replace place in code where '16' is hard coded in.
wToolbar/$addButton (2009-10-06 Doug K.)
Set the icon to k16x16. In Omnis Studio 5 one of the icons was showing up as 32x32.
wToolbar/$removeButton (2009-10-01 Doug K per Andy H)
Recalc iCurrWidth when removing a button.
oHTMLSecurity/decryptSessionID (2009-10-03 Doug K.)
Added binfromhex() function so that CGIDecode actually works.
oHTMLSecurity/retEncryptedSessionID (2009-10-03 Doug K.)
Added bintohex() function so that CGIEncode actually works.
This is a minor release with various bug fixes. No major enhancements.
To update to this new release:
oDBAdminMethods_FRONTBASE/$_syncTableAndColumns (2009-06-11 Doug K.)
Overrode this superclass method and added code to remove the fkey and pkey constraints from the constraints list. This change might be worthwhile pushing up to the superclass, but more extensive testing is needed.
oDBAdminMethods_FRONTBASE/$syncDatabaseTablesToSchemas (2009-06-11 Doug K per Will Adkin.)
Added a few extra 'setTransactionIsolationLevel_alter' calls as it seems to be getting unset when syncing tables.
oDBAdminMethods_FRONTBASE/syncCollations (2009-06-11 Doug K per Will Adkin)
Add 'StmntObj' parameter to the log error.
oDBAdminMethods_abstract/$insertEmptyRecords (2009-06-09 Doug K.)
Commented out "Do Row.$:UserKey.$assign(UserID)", The "$:UserKey.$assign" method has been deprecated.
oIconsList_Model/$deleteIcon (2009-06-09 Doug K.)
After the line is deleted and the next line is selected, correctly reset irSchema.
oMetaDataSchemaCol_Model/update_schemacolname (2009-07-22 Doug K per Will Adkin)
Bug fix. Incorrect parameters were being sent to oQueryClassModel.$updateQueries_schemacolname so queries columns were not being update.
oSQLLists/$:USERKEY.$assign (2009-06-09 Doug K.)
Deleted iUserKey from the ivars.
oSQLLists/$retDefinedList (2009-06-09 Doug K.)
Added iDefinedLists ivar and code which caches defined list for runtime versions only, and only for the current session.
oSQLLists/addListToDefinedLists (2009-06-09 Doug K.)
Added new method.
oTableClassMethods_base/$:USERKEY.$assign (2009-06-09 Doug K.)
Deleted the iUserKey ivar.
tBase/$#About (2009-05-07 Josh L.)
Set all Task and Instance vars to include library prefix which didn't already have it. Necessary for subclassing ease.
wBase_ToolbarTitlebar_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wBase_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wComplexGrid_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wComplexGrid_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_Edit_Edit_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_Edit_ListChildren_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_Edit_ListChildren_abstract/$subwinCmnd (2009-06-03 Josh L.)
Added a new part to the case 'newrecordcopy' that was not previously there.
wContainer_Edit_ListChildren_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_ListChildren_Edit_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_ListChildren_Edit_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_List_Edit_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_List_Edit_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_List_ListChildren_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_List_ListChildren_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_TabEdit_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_TabEdit_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_TabListSpecific_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_TabList_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_TabList_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_Tab_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_Tab_template/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wContainer_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wEditList_abstract/$newRecordCopy (2009-06-11 Doug K per Will Adkin)
Added code to make sure the foreign key values match the copy row. Removed early exits and cleaned up error handling.
wEditList_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wEdit_abstract/$newRecordCopy (2009-06-11 Doug K per Will Adkin)
Added code to make sure the foreign key values match the copy row. Removed early exits and cleaned up error handling.
wEdit_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wEdit_autoconfig/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wHeadedListSimple_autoconfig/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wHeadedList_autoconfig/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wListMini_autoconfig/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wList_abstract/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wList_autoconfig/$ping (2009-06-09 Doug K per Birger R)
Added extra $ping message to various possible subwindows for use by the developer.
wPromptShell/$event (2009-05-07 Doug K.)
Added ibIgnoreButtonPressed to prevent QueueOK from changing the value.
wPromptShell/$event_ButtonPressed (2009-05-07 Doug K.)
Further problems with button pressed getting changed. Rewrote method and added ibIgnoreButtonPressed to prevent QueueOK from changing the value.
wShell/$prepareSubWin (2009-06-09 Doug K. per Birger R.)
Added parameter bInvisible=kTrue when adding subwindow field instead of setting $top to -10000 pixels.
wShell_Lookup/$closeSubWin (2009-06-09 Doug K per Andy H.)
Removed animator code to speed up remote performance.
wShell_Lookup/$showSubWin (2009-06-09 Doug K per Andy H.)
Removed animator code to speed up remote performance.
oHTMLSecurity/decryptSessionID (2009-06-11 Doug K. per Andy H.)
Added 'CGIDecode' to solve the problem with funky encryption characters that mess up HTML.
This is a minor release with various bug fixes. No major enhancements.
To update to this new release:
oDBAdminMethods_POSTGRESQL/retTableOID (2009-02-05 Josh L. & Doug K.)
Select the lines which match the tablename (case insensitive) and take the last one. if there are no lines returned, log an error.
oDBSessionMethods_SQLSERVER/$tables (2009-03-26 Doug K per Frank Bradley.)
Overrode the superclass method and changed 'iSessionRow.tablesownername' to 'dbo'
oEmail/pingSMTPServer (2009-03-31 Doug K per Mike Matthews.)
Commented out TCPReceive as the Windows version gets hung up waiting for a reply from a disconnected socket.
oErrorHandler/$logProgramError_InvalidParameter (2009-04-06 Josh L.)
The if statement was never true, so changed it to test length. Changed calculation of Dtls from con(pDtls_opt,kcr,kcr,pDtls_opt) to con(Dtls,kcr,kcr,pdtls_opt)
oFunctions/$replaceallCaseInsensitive (2009-02-10 Doug K.)
Increased variables length to 1000000 characters to avoid truncating any text.
oFunctions/$retListFromTextString (2009-03-26 Doug K per Mike Matthews)
Bug fix. Changed con(kCr+kLf) to con(kCr,kLf).
oMetaDataSchemaClass_Model/update_extrasqltext_tableandcolname (2009-02-10 Doug K.)
Increased variables length to 1000000 characters to avoid truncating any text.
oMetaDataSchemaClass_Model/update_extrasqltext_tablename (2009-02-10 Doug K.)
Increased variables length to 1000000 characters to avoid truncating any text.
oMetaDataSchemaClass_Model/update_servertablename (2009-02-09 Doug K.)
Added a bunch of checks for len(OldBaseTable), len(NewBaseTable), len(pOldServerTableName), len(pNewServerTableName) so that empty values don't get updated.
oMetaDataSchemaCol_Model/syncColumnsForSQLClass_full (2009-02-09 Doug K.)
Only send an $updateStringTableRow message if StbName and StbID are not empty.
oSQLChildRecords/$doesRestrictedDeleteChildRecordExist (2009-02-17 Doug K.)
Log error message if flag false.
oSQLLists/$:USERKEY.$assign (2009-02-11 Doug K.)
Deprecated the $:UserKey.$assign method. Cached values are a problem.
oSQLLists/$retDefinedList (2009-02-11 Doug K.)
Removed the code which gets the $:UserKey from oSecurity and sets it in the defined list's table class instance.
oSecurity/$:UserTimeoutMinutes (2009-04-30 Doug K per Tom Maher)
Bug fix. Added '.securityinforow.' to the calculations.
oSecurity/$:UserTimeoutSignOffTime (2009-04-30 Doug K per Tom Maher)
Bug fix. Added '.securityinforow.' to the calculations.
oSecurity/$quickSignIn (2009-02-13 Doug K.)
Added 'quick sign-in' method which lets you switch the current user without changing any permission. This can be useful when sharing a workstation with several users that have the same security settings. Needed to do this for a shipping/receiving workstation in a warehouse. Want to track who entered things, but not require full sign-in.
oSecurity/$retGroupUsersList (2009-04-30 Doug K per bug reported by Will Adkin)
Refetch the users list every time since the groups they are included could have changed.
oStartupTaskVarsTool/$reloadModuleData (2009-02-05 Doug K.)
Added method to reload the module data. This is needed if using the VCS after updating an oModuleData class which another developer has modified.
oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn (2009-02-11 Doug K.)
Removed the code which gets the $:UserKey from oSecurity and sets it in the defined list's table class instance.
oStringTables/$reloadModuleData (2009-02-05 Doug K.)
Added method which just reloads the cached list from the oModuleData objects.
oTableClassMethods_SQLSERVER/$doinsertsBatch (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_SQLSERVER/$insertEmptyRecord (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_SQLSERVER/$insertRow (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_base/$:USERKEY.$assign (2009-02-11 Doug K.)
Deprecated the $:UserKey.$assign method. Cached values are a problem.
oTableClassMethods_base/$doinsertsBatch (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_base/$doupdatesBatch (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_base/$insertEmptyRecord (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_base/$insertRow (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oTableClassMethods_base/$setDefaults (2009-02-04 Doug K.)
Send a $setDefaults message to oCheckData if it has a recipient method.
oTableClassMethods_base/$updateRow (2009-02-11 Doug K.)
Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.
oFieldDecorator_click/$decorateField (2009-04-07 Doug K.)
Enable the default context menu in case it was disabled by 'displayonly' decorator.
oFieldDecorator_displayonly/$decorateField (2009-04-07 Doug K.)
Disable the default context menu for security reasons. Omnis Studio 4.3 fault that doesn't trap evClipChangedData for the default context menu.
oFieldDecorator_normal/$decorateField (2009-04-07 Doug K.)
Enable the default context menu in case it was disabled by 'displayonly' decorator.
oFieldHandlerController/$event (2009-04-07 Doug K per Will Adkin)
Added pEventCode=evClipChangedData to the events being trapped. Need this for security on displayonly fields.
oWindows/$reloadModuleData (2009-02-05 Doug K.)
Added method to reload the module data.
wEdit_abstract/$eventClose (2009-04-07 Doug K. per Will Adkin.)
Changed "Set ibModified to kFalse" to "Do $cinst.$:Modified.$assign(kFalse)" so that the code will work if $:Modified is overridden by a developer.
wHeadedListSimple_autoconfig/$attachHeadedListEventsObserver (2009-04-30 Doug K. per Will Adkin)
Added method to allow events observers to be attached to the headed list. Added this to change the prompt headed list behavior so that evDoubleClick can Queue OK.
wHeadedListSimple_autoconfig/$control (2009-04-30 Doug K per Will Adkin)
Added $notify events observers to the evClick and evDoubleClick events.
wHeadedListSimple_autoconfig/$detachHeadedListEventsObserver (2009-04-30 Doug K. per Will Adkin)
Added method to allow a registerd events observer to detach itself.
wPromptDateCalendar/$control (2009-04-30 Doug K per Birger Ragnarson)
Added $control method for issuing 'Done' for enter or return key press.
wPromptShell/$event_ButtonPressed (2009-04-28 Doug K.)
Changed Queue cancel to Queue OK to stop continuous loop in Omnis Studio 4.3.1.4 on Mac OS X. This doesn't affect ButtonPressed value.
wSearchbar_abstract/$find (2009-03-26 Doug K per Andy H)
Calculate the WhereRow value column as "Value" instead of iRow.[ColName] so that if search operator is 'contains' the % character suffix won't get truncated off when a long search value is entered by the user.
wShell_Lookup/$event (2009-04-28 Doug K.)
Don't let the user change tabs using the tab bar. They must either cancel or save to close lookup tabbar windows.
wShell_Lookup/$showSubWin (2009-04-28 Doug K.)
Set ibIgnoreEvents to true while setting the current tab.
These version notes cover the minor releases from 2009-01-01 to 2009-01-31
To update to this new release:
oMainco_DBAccessor/$#About (2009-01-19 Doug K.)
Set the $superclass to the abstract super class in swBase4 and deleted the subclass methods.
oDBAdminMethods_POSTGRESQL/$_syncTableAndColumns_getAddAlterColsLists (2009-01-19 Doug K.)
Added code to check for timestamp subtype. Change from date to timestamp was being missed for alter columns.
oDBSessionMethods_base/$transactionmode.$assign (2009-01-16 Doug K.)
If the session is being set to manual transactions, automatically issue a $begin.
oEmail/pingSMTPServer (2009-01-12 Doug K per Mike Matthews.)
Check for port # appended to IP address and if so, use the specified port.
oFunctions/$dragdropmoveLinesInList (2009-01-19 Doug K.)
Using pDragField when removing old lines doesn't work. Use pfListVar instead.
oIconsList_Model/$loadData (2009-01-02 Doug K.)
Reset the smartlist after remove and merge of icons from a schema class. Otherwise all the items are status deleted and inserted.
oModuleDataTool/$canModifyData (2009-01-15 Doug K.)
Added @DEBUG message to assist with tracking down incorrect oModuleData checks.
oSecurity/$:UserCustomInfoRow (2009-01-19 Doug K.)
Get the custominforow from the current user row rather than the users list.
oSecurity/$_UPDATEUSERANDREBUILDLIST (2009-01-19 Doug K.)
Deprecated this method. We don't want to be rebuilding the users list in the oSecurity object. (slows performance)
oSecurity/$_retSecurityInfoRow_user (2009-01-07 Doug K.)
Always reload the users list from the database in case the sysadmin changed security settings or other info.
oSecurity/$_retSecurityInfoRow_user (2009-01-19 Doug K.)
Just refetch the specified user to improve performance. (Avoid reloading all the users)
oSecurity/$_retSecurityInfoRow_user (2009-01-19 Doug K.)
Just update the current user if it matches. Don't bother with iUsersList.
oSecurity/$addUserToGroups (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$getUserKey (2009-01-19 Doug K.)
Modified the method to not use the iUsersList.
oSecurity/$retGroupUsersList (2009-01-19 Doug K.)
Call $:UsersList to get the list of users.
oSecurity/$saveCustomInfoRow (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$saveUserPasswordInfoRow (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$saveUserPasswordInfoRow (2009-01-19 Doug K.)
Removed the use of iUsersList from the method.
oSecurity/$saveUserPrefs (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$saveUserSchemaSecurity (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$saveUserWindowSecurity (2009-01-19 Doug K.)
Call $_updateUser rather than $_updateUserAndRebuildLists to improve performance.
oSecurity/$signin (2009-01-19 Doug K.)
Created a new $signin method that does NOT load the iUsersList. This was done to speed up the sign-in security check. The users list is only loaded if $:UsersList is called by a public method.
oSecurity_DBAccessor_abstract/$:GroupsList (2009-01-19 Doug K.)
Get the pkey column name from the table class. Use a variable for the PKeyColName.
oSecurity_DBAccessor_abstract/$:UsersList (2009-01-19 Doug K.)
Get the pkey column name from the table class. Use a variable for the PKeyColName.
oSecurity_DBAccessor_abstract/$_retDBUserRow (2009-01-19 Doug K.)
Added method to fetch a single user database row. Method is needed to speed up security signin.
oSecurity_DBAccessor_abstract/$_retSecurityUserRowFromDBUserRow (2009-01-19 Doug K.)
Added method to convert a user database row to an StudioWorks security row. Method is used by various StudioWorks methods.
oSecurity_DBAccessor_abstract/$retSecurityUserRow_pUserID (2009-01-19 Doug K.)
Added method to fetch a single user security row based on UserID. Method is needed to speed up security signin.
oSecurity_DBAccessor_abstract/$retSecurityUserRow_pUserKey (2009-01-19 Doug K.)
Added method to fetch a single user security row based on UserKey. Method is needed to speed up security signin.
oSessionsManager/$:DefaultSessionRow (2009-01-12 Doug K.)
Default 'pingtimeoutseconds' to zero (0).
oStartupTaskDefaultMethods/$_setDefaultsAndPrefs (2009-01-19 Doug K.)
Experiencing Omnis crashes. Wondering if setting $maxcachedclasses to 2000 is causing it. Modify code to use 200.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2009-01-19 Doug K.)
Removed saving last search, last selected, last display, last window properties from local_prefs. Not necessary as they are stored in the user profile in the main database and loaded on sign-in.
oStartupTaskVarsTool/retStartupSessionRow (2009-01-12 Doug K.)
If pingdbserver is zero(0) set pingtimeoutseconds to zero as well.
oStringTablesSchemasEditor_Model/$:caneditClass (2009-01-02 Doug K.)
Added property method to return the value of ibCanEditClass.
oTableClassMethods_base/$setDefaults (2009-01-06 Doug K.)
Only set default values for columns which are part of the base schema.
@00 Error Handler/@41 Error Handler Coding for Prompt Methods (2009-01-22 Doug K.)
Added documentation on a technique for error handler coding with prompt methods.
@50 Lookups/@25 Intercepting Lookups (2009-01-21 Doug K.)
Added documentation for $:LookupOrderBy
oFieldDecorator_click/$decorateField (2009-01-06 Doug K.)
For checkbox field, do nothing when it is set to 'click' decorator type.
oFieldHandlerController/$event (2009-01-02 Doug K.)
The lookup field handler was getting called on 'displayonly' fields. Added check for type <> displayonly.
oFieldHandlerLookupTypeAhead/event_evAfter (2009-01-07 Doug K.)
Clear iLookupList if the lookup field is empty when the user leaves the field.
oFieldHandlerLookupTypeAhead/event_evAfter (2009-01-15 Doug K per Mike Matthews.)
If the lookup list is empty, the $line value can still sometimes be 1, so also check the $linecount.
oFieldHandlerLookupTypeAhead/updateLookupList (2009-01-08 Doug K.)
If no last selected lookup line was found, then preselect the first line in the lookup list.
oNavigationMenu_Model/removeDuplicateNavMenuLines (2009-01-02 Doug K.)
Modify method to remove duplicate nav menu lines from the main library rather then the module.
oWindowMenus_Model/$:caneditData (2009-01-15 Doug K.)
Added parameter bLogErrorIfNot=kFalse, since this is only a check.
wBase_abstract/$:Modified.$assign (2009-01-16 Josh L.)
Changed ibModified to pbModified for the check.
wComplexGrid_abstract/$eventClose (2009-01-09 Doug K.)
Copied $eventClose method from wEdit_abstract to wComplexGrid as the method is needed for complex grids which allow users to 'edit'.
wComplexGrid_abstract/$eventClose (2009-01-14 Doug K.)
Set ibModified to kFalse if the user selects "Don't Save".
These version notes cover the minor releases from 2008-10-16 to 2008-12-31
To update to this new release:
oErrorHandler/$getonceLastError (2008-11-03 Doug K.)
Return False if no error was fetched.
oMetaDataQueryClass_Model/$:fetchall.$assign (2008-10-23 Josh L.)
When changing the value of fetchall to true, the fetchallwhere field wasn't being enabled.
oMetaDataQueryCol_Model/$:listcolname.$assign (2008-11-11 Doug K.)
Removed 'End if' in the wrong spot.
oMetaDataQueryCol_Model/$:lookupsqlclasseslist (2008-11-24 Doug K.)
Added a special line to the top of the lookupsqlclasses list named '---NO_LOOKUP---' Developers can use this if they want to prevent StudioWorks from doing lookups on a field that would normally be a lookup field.
oMetaDataQueryCol_Model/$:lookupsqlclassname.$assign (2008-11-24 Doug K.)
Removed code that set the decoratortype to 'displayonly' if lookupsqlclassname was left empty.
oMetaDataQueryCol_Model/$updateQueryCols_treatasboolean (2008-11-06 Doug K.)
Bug fix. Setting treatasboolean to kTrue was not setting zeroallowed to kTrue. Fixed.
oMetaDataSchemaCol_Model/$:refdtablename.$assign (2008-10-24 Josh L.)
Took out the ColName parameter as it is not specified in the definition of the called method.
oMetaDataSchemaCol_Model/$:refdtablename.$assign (2008-10-24 Josh L.)
Put this bit of code back in so that the refdcolnames list would be updated with colum names from the specified schema.
oMetaDataSchemaCol_Model/update_foreignkey (2008-10-24 Josh L.)
Edit Allowed on Foreign Keys?? This is a big no no Doug. Users should not be able to view foreign keys and if someone needs it changed they can do it by legal means.
oMetaDataSchemaCol_Model/update_foreignkey (2008-11-17 Doug K.)
Reversed the previous change. The 'enterallowed' property is the property which prevents users from directly editing the fkey field. The 'editallowed' property is enforced at the table class level. It prevents the value from ever being changed. Not something we want to enforce on fkeys. Setting 'editallowed' to kFalse makes sense for a number of the admin columns. (editnum, insby, insdatetime, modby, moddatetime)
oMetaDataSchemaCol_Model/update_hidden (2008-10-27 Josh L)
If a column is hidden it can't be entered. (if this is wrong, then enterallowed should NOT be calculated as ktrue when not hidden)
oMetaDataSchemaCol_Model/update_hidden (2008-10-27 Josh L.)
Primary Keys and Foreign keys should not be editable at any time. They are intrinsic to the database's integrity.
oMetaDataSchemaCol_Model/update_treatasboolean (2008-11-06 Doug K.)
Bug fixes. Setting value to treatasboolean=kTrue was not setting zeroallowed to kTrue and nullallowed to kFalse. No setting it correctly.
oMetaDataTool_OldVersionMetaData/$#About (2008-11-04 Doug K.)
Created this object class to contain all the methods related to the old version meta-data that was stored in the SQL classes.
oMetaDataTools/$#About (2008-11-04 Doug K.)
Moved all of the methods related to the old version meta-data that was stored in the SQL classes to oMetaDataTools_OldVersion.
oModuleDataTool/$canModifyData (2008-10-20 Josh L.)
Changed the initial value of the parameter pbLogErrorIfNot to ktrue because it wasn't logging any errors.
oModuleDataTool/$saveNavMenuList (2008-11-24 Doug K.)
Revert the method to respect the 'homelibname' and only save nav list menu lines from the list belong to the specified pLibName.
oOpenLibraries/openLibrariesInFolder (2008-11-03 Doug K per Andy H.)
Use the Omnis command "Open Libraries" instead of $libs.$add notation since the command has options that allow runtime to convert libraries.
oSQLLists/$saveChangedData_commit (2008-11-05 Doug K.)
Commented out the @DEBUG breakpoints.
oStartupTaskDefaultMethods/autoSignIn (2008-11-14 Doug K.)
The 'Clear method stack' is killing multiple webapps which need to automatically sign-in and startup on web servers.
oTableClassMethods_base/$doworkBatch (2008-10-21 Josh L.)
The table class instance doesn't need a reference to itself to execute the method.
wSQLMetaDataSchemaColsEditor_View/$event (2008-10-20 Josh L.)
Commented out the OK message. Shouldn't be in there for release.
wSQLQueryBuilder/$refreshField (2008-11-17 Doug K.)
Modified the code to correctly inform the user if the query class and/or oModuleData object need to be check out of the VCS.
wSQLQueryBuilder/eventDrop (2008-11-17 Doug K.)
Added code to the $event evDrop to check if edit is allowed. If not, prompt user with an OK message.
oFieldHandlerController/$setMode (2008-11-04 Doug K.)
Added parameter pbForceResetFields to allow the sender to force the field handler controller to reset all the field, even if the mode didn't change.
oFieldHandlerLookupTypeAhead/event_evKey_arrow (2008-11-20 Doug K.)
Use irLookupListWin instead of irWin.$wind().$:LookupListFieldRef
oFieldHandlerLookupTypeAhead/initialize (2008-11-20 Doug K.)
Send a $:LookupListFieldRef.$cando message to the subwindow to see if it has its own wLookupList window instance. This was added to make it easier to correctly position the lookup list in nested subwindows.
oFieldHandlerLookupTypeAhead/selectLookupListFieldLine (2008-11-20 Doug K.)
Use irLookupListWin instead of irWin.$wind().$:LookupListFieldRef
oFieldHandlerLookupTypeAhead/setLookupListField (2008-11-20 Doug K.)
Commented out "Do irWin.$wind().$:LookupListFieldRef() Returns irLookupListWin" since irLookupListWin is set by the initialize method.
oFieldHandlerLookupTypeAhead/updateLookupList (2008-11-20 Doug K.)
Use irLookupListWin instead of irWin.$wind().$:LookupListFieldRef
oFieldHandlerPropertiesList/$#About (2008-11-24 Doug K.)
Reverted to the pre-2008-11-10 changes version. Those changes to setupLookupProperties caused problems to existing lookups.
oFieldHandlerPropertiesList_20081110_BAD/$retFieldPropertiesList (2008-10-24 Josh L.)
Added kcheckbox and kradio so they would be included in the Fields list if they had a dataname in the columns list. The checkbox and radio button fields were allowing a user to change the data even in 'view' mode of the windows.
oFieldHandlerPropertiesList_20081110_BAD/setLookupProperties (2008-11-11 Doug K per Josh L.)
If a direct matching schema/column can't be found between the main record field and the lookup list, then try finding a match based on the column name. This change was made to accomodate an query column alias matching a special view with a matching column. In case we need to reverse this change, the original method was copied and named 'setLookupProperties_20081110'.
oNavigationMenu_Model/$initialize (2008-11-04 Doug K.)
Only search for an load data if there are lines in the data list.
oNavigationMenu_Model/getGroupsList (2008-11-12 Doug K.)
Bug fix. pLibName parameter was missing.
oNavigationMenu_Model/getNavMenuList (2008-11-20 Doug K - bug reported by Chuck M.)
Modified code so that apps which were partly converted during the beta process keep their nav menu lines list intact.
oNavigationMenu_Model/getNavMenuList (2008-11-24 Doug K.)
Modified the code so that nav menu lines are saved to their respective library module data objects.
oNavigationMenu_Model/getSubGroupsList (2008-11-12 Doug K.)
Bug fix. pLibName parameter was missing.
oNavigationMenu_Model/recalcHomeLibNames (2008-11-24 Doug K.)
Added method which recalcs the homelibname to match the homelibname of the wininstid.
oScreenCoordinates/$getScreenOverallHeightAndTop (2008-11-20 Doug K.)
Problems with positioning caused by the developer IDE toolbars and custom toolbars instantiated outside of window instances. Added a method to check for screen toolbars. Found it safest to use the main monitor height for height calcuations.
oWindowInstances_Model/$:modified.$assign (2008-10-30 Josh L.)
Overrode this method because the moddatetime used for deciding whether a toolbar is visible or not is not being set.
oWindowMenus_Model/$:caneditData (2008-10-30 Josh L.)
Overrode this method because the inherited one returns kfalse all the time
oWindowMenus_Model/$moveMenuLine (2008-11-17 Doug K (bug reported by Josh))
Sort the menu lines list before and after moving menu lines.
oWindowMenus_Model/retWinMenuLinesListForLibName_oldversion (2008-11-12 Doug K.)
Set the menulinetext when fetching the old version window menu lines.
wBase_ToolbarTitlebar_abstract/$_constructToolbar (2008-10-30 Josh L.)
Combined the two checks for toolbar visibility because it would never be visible if there were no commands. Toolbars need to be visible if there are menu items (special and report) for the window, even if there are no commands. The way it works now is: if the Window Module Data has been modified (moddatetime) then use the Window Module Data toolbarvisible property. Otherwise, if there are a toolbar class name and commands the toolbar is visible, if there is no toolbar class name or commands it is not visible. Also had to fix the moddatetime in the Window Instance Model to update when the data was modified.
wDatabaseTablesEditor/$:SQLClassName.$assign (2008-11-04 Doug K.)
Modified the method to work with the new field handler controller.
wEdit_abstract/$:LookupListFieldRef (2008-11-20 Doug K.)
Added method which finds/adds an instance of wLookupList to the edit window. This is done to make it easier to correctly position the lookup list to the lookup entry field.
wHeadedList_autoconfig/$:SortClause (2008-11-04 Doug K.)
Modify method so that it add the 'ORDER BY ' prefix after the loop, and only if order by text was build in the loop.
wPromptFindMultiCriteria/$event (2008-11-13 Josh L.)
On evClose, the window was being moved off screen on a Runtime version because of performance issues. It is not so much of an issue now and it was preventing Omnis from closing properly.
wWindowMenusListEditor_View/$refreshField (2008-10-30 Josh L.)
Overrode the Model's $:CanEditData method to use the Current Library Name as a parameter because it was returning kfalse all the time. Sending it the CurrentLibraryName from here because I couldn't see any way to get it from the Model.
oMainWindow/$:NavMenuLineList (2008-11-12 Doug K.)
$retNavMenusLinesList method name is deprecated. Changed to $retNavMenuLinesList.
This release moves the StudioWorks framework to directly updating the various cached lists negating the need for 'Rebuilding Lists'.
To update to this new release:
Startup_Task/$#About (2008-07-25 Doug K.)
Removed all the extra 'Do errhndlr.$promptOnce" code. This is only needed at the end of $construct and $destruct.
Startup_Task/closeLibrariesInFolder (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oOpenLibraries/openLibrariesInFolder (2008-09-04 Doug K.)
Added search and remove of hidden files.
oOpenLibraries/retEnclosedFolderPath (2008-09-04 Doug K.)
Added search and remove of hidden files.
Startup_Task/$construct (2008-07-08 Doug K.)
Instantiate the 'Programmer_Task' which was created for tracking code performance times.
mContext/attachMenuLineObserver (2008-06-03 Doug K.)
Modified method so that it can handle object reference type observer instances.
oAppPrefs/$initialize (2008-07-17 Doug K.)
Changed oAppPrefs to save the app prefs row to the oModuleData object of the main library rather than a separate app_prefs.df1 file. Removed parameters no longer needed.
oCheckData_base/checkData_metadata (2008-05-21 Doug K per Jim Creak.)
Removed 'Jump to start of loop' which could cause an infinite loop.
oCheckData_base/checkData_metadata (2008-07-01 Doug K.)
Set the ColTitle text to the current oStringTables translated value for the column rather than using the 'label' column.
oCheckData_base/checkData_uniqueindex (2008-07-01 Doug K.)
Set the CurrLabel and Mssg text to the current oStringTables translated value for the column rather than using the 'label' column.
oCheckData_base/checkData_uniqueindex (2008-07-21 Doug K. per Andy H.)
Bug fix. Deselect the columns before the loop. The method was only checking the first unique index.
oCodeTools/$addPropertyMethodsToObjectClass (2008-05-28 Doug K.)
Added method to oCodeTools which adds property methods to an object for each column in a row variable.
oConstants/$:AppLibsList (2008-05-26 Doug K.)
Discovered that the $:AppLibsList property is called numerouse times adding overhead. Added ivar iAppLibsList and only rebuild if empty or pRebuild=kTrue.
oConstants/$:AppMode (2008-05-13 Doug K.)
Changed sys(2)=1 to mod(sys(2),2) for unicode version of Omnis Studio.
oConstants/$:Platform (2008-09-14 Doug K per Andy H.)
Bug fix. Changed Sys6 lvar from number to character.
oConstants/$:RuntimeMode (2008-05-13 Doug K.)
Changed sys(2)<>1 to not(mod(sys(2),2)) for unicode version of Omnis Studio.
oConstants/$:RuntimeMode.$assign (2008-05-13 Doug K.)
Changed sys(2)<>1 to not(mod(sys(2),2)) for unicode version of Omnis Studio.
oCreateLibrary/$createNewModule (2008-07-30 Doug K per Matthias H.)
Rebuild the $:AppLibsList so that the new module is added to the list.
oCreateLibrary/$createWebModule (2008-07-30 Doug K per Matthias H.)
Rebuild the $:AppLibsList so that the new module is added to the list.
oCreateLibrary/$renameLibrary (2008-07-30 Doug K.)
Added method which renames a library and its file name.
oCreateLibrary/createSubLibClasses (2008-07-30 Doug K.)
Removed adding of sSchema_template, oWindowList, oMenusList, oReportsList classes to the new library. These classes are not longer needed or useful in the modules.
oDBAdminMethods_abstract/$_syncConstraints_rangevalues (2008-05-29 Doug K.)
Do not include 'treatasboolean' with the 'rangevalues' meta-data search as that is set by $_syncConstraints_treatasboolean.
oDBAdminMethods_abstract/$_syncConstraints_rangevalues (2008-09-12 Josh L.)
Calculate Range as SchemaColsList.rangevalues because it wasn't being calculated.
oDBAdminMethods_abstract/$_syncNulls (2008-05-03 Doug K.)
Removed early exits, cleaned up error checking.
oDBAdminMethods_abstract/$_syncView (2008-09-09 Doug K per Will Adkin.)
Drop and readd the view if it exists.
oDBAdminMethods_abstract/$copyData (2008-05-03 Doug K. per Chuck Martin.)
Bug fix. Removed '=)' typo in the code and incorrect location of ')'
oDBAdminSQLText_MYSQL/$retSQL_AddCheck_notNull (2008-05-03 Doug K.)
Added missing NOT NULL to the MySQL alter table statement syntax.
oDBSessionMethods_MYSQLDAM/$_prepareForLogon (2008-07-21 Doug K per Chuck M per Thad Bogert)
Overrode the superclass method, Do inherited, then set the $blobsize to 2500000.
oDBSessionMethods_MYSQLDAM/$_prepareForLogon (2008-09-16 Doug K per Chuck M.)
Set the MYSQLDAM session object $blobsize to 16777215 which is the MEDIUMBLOB maximum size for MySQL.
oDBSessionMethods_MYSQLDAM/$logonOK_continue (2008-07-24 Doug K.)
Commented out special MySQL code from Matthias. Was not allowing me to change the user passwords.
oDBSessionMethods_base/$_logon (2008-05-23 Doug K.)
Added setting of $emptydateisnull, $transactionmode, $charmap, and initialstatement from the session row after successful logon.
oDBSessionMethods_base/executeInitialStatement (2008-05-23 Doug K.)
Added method to execute the initialstatement from the session row after successful logon.
oErrorHandler/$:PromptUsingTraceLog (2008-08-30 Doug K.)
Added property method and property assign method. Setting this property to true will cause the $promptonceLastError method to send the last error to the trace log and then open the trace log. This is important for web apps to prevent halting the web app server.
oErrorHandler/$OPENLOGFILEVIEWER (2008-05-01 Doug K.)
Redirect deprecated method to new $openErrorLogViewer method.
oErrorHandler/$setDatabaseSession (2008-05-03 Doug K.)
Changed the sErrorlog character columns to max of 2500 characters for SQLServer compatibility.
oErrorHandler/calcErrorMessageParts (2008-08-27 Doug K.)
Modfied method to handle compiling multiple unprompted errors.
oErrorHandler/calcErrorMessageParts (2008-10-01 Doug K.)
Modified method to removed duplicate errors, so that the same text isn't repeated in the error message.
oErrorHandler/defineErrorHandlerList (2008-08-27 Doug K.)
Define the errors list using 'sErrorLog' instead of 'sErrorHandler_listdef' Added a 'hasbeenprompted' column to the error list in memory to indicate whether or logged errors have been reported. This is added to allow multiple errors to be logged and then reported together in a single error message.
oFunctions/$canModifyClass (2008-09-19 Doug K.)
Corrected the error message. It was specifying 'schema' class.
oFunctions/$construct (2008-06-07 Doug K.)
Added objdatacolname column to the iTemplateObjsList.
oFunctions/$isOmnisDeveloper (2008-07-23 Doug K.)
Added function which returns whether or not the current version of Omnis Studio is a developer or runtime version. The simply sys(2)=1 test does not work for the unicode version of Omnis Studio.
oFunctions/$parseStringToWords (2008-09-19 Doug K.)
Change "len(RightString)>2" to "len(RightString)>1" so the loop will parse the last two characters.
oFunctions/$replaceallCaseInsensitive (2008-06-19 Doug K.)
Added function which does a case-insensitive replaceall(). Useful for renamed columns in the meta-data .
oFunctions/$retContainedObjs (2008-06-03 Doug K.)
Omnis bug workaround. The $dataname property of kCheckbox fields incorrectly being returned.
oFunctions/$retContainedObjs (2008-06-03 Doug K.)
Move code to private method and self call retContainedObjs for container fields, so that the method can drill down recursively.
oFunctions/$retContainedObjs (2008-06-07 Doug K.)
Calculate objcolname column for the field objects which have a $dataname property.
oFunctions/$retNumeric (2008-06-18 Doug K.)
Added method which returns only numbers from a string. Used for the oFormatPhoneNumber object.
oFunctions/$retWinInstClassRef (2008-06-07 Doug K.)
Added method which returns a reference to the class of a window or subwindow instance. The method has optional parameters which return the classname and the libname.
oFunctions/retEnclosedFilesList (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oFunctions/retEnclosedFoldersList (2008-09-04 Doug K.)
Added search and remove of hidden folders.
oIcons/$:IconsList (2008-07-17 Doug K.)
Return the icons list from the new icons model object.
oIcons/$initialize (2008-07-15 Doug K.)
Modify the oIcons object to use the new icons model object.
oIconsList_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oIconsList_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oIconsList_Model/$syncIconsListToSchemaClasses (2008-10-07 Doug K.)
Added method to sync the icons list to the sIcons schema classes.
oIconsList_Model/loadCachedList (2008-08-20 Doug K.)
Set the icons list to be a smartlist.
oIconsList_Model/saveChangedData (2008-08-19 Doug K.)
Modified method to use pbAutoCommit parameter.
oLocalPrefs/$:LastLanguageID (2008-05-08 Doug K.)
Added $:LastLanguageID property methods.
oLocalPrefs/$:ShowProgrammerPingButtons (2008-05-13 Doug K.)
Changed sys(2)=1 to mod(sys(2),2) for unicode version of Omnis Studio.
oLogon_adapter_to_db1sess/$newstatement (2008-05-05 Doug K.)
Call db1sess.$getStatementObject rather than db1sess.$newstatement
oMainco_DBAccessor_abstract/$#About (2008-06-18 Doug K.)
Added oMainco_DBAccessor_abstract and _template to swBase4 for use by the SysAdmin module. By using a subclass of oMainco_DBAccessor_abstract in the SysAdmin module, bug fixes can be made in the swBase4 object and automatically work in the SysAdmin module with new releases.
oMetaDataDefaultProperties/$#About (2008-05-14 Doug K)
Created oMetaDataDefaultProperties object class. Developers can copy this object to their main library to set their own default meta-data properties.
oMetaDataDefaultProperties/getSchemaDefault_WinInstIDs (2008-08-09 Doug K.)
Modified method to use the schema class name rather than the servertablename for the base text of the default wininstids.
oMetaDataDefaultProperties/retDefaultLookupSQLClassName (2008-08-09 Doug K.)
Modified method to use the schema class name rather than the servertablename for finding the default query class.
oMetaDataDefaultProperties/setSchemaColsDefaults_admincoltype (2008-07-31 Doug K.)
Added method to set the admincoltype defaults based on the colname.
oMetaDataDefaultProperties/setSchemaColsDefaults_admincoltype (2008-08-01 Doug K per Matthias H.)
Set defaultvalue to 1 for active admincoltype.
oMetaDataDefaultProperties/setSchemaColsDefaults_admincoltype (2008-08-18 Doug K. per Will Adkin)
Default admincoltype to blank to avoid null value for non-admincoltypes. Default editallowed to kTrue for most settings for more admin columns to avoid oCheckData errors.
oMetaDataDefaultProperties/setSchemaColsDefaults_admincoltype (2008-09-10 Doug K.)
Bug fix. Error in the calculating the defaultvalue=1 for 'active' admintype column.
oMetaDataDefaultProperties/setSchemaColsDefaults_admincoltype (2008-10-02 Doug K.)
Default 'active' admincoltype to be included in lists, prompts, and searches.
oMetaDataQueryClass_Model/$#About Query Class Model (2008-06-20 Doug K.)
Created oMetaDataQueryClass_Model object. This IS the cached SQL class list for the query class meta-data.
oMetaDataQueryClass_Model/$:extraquerytext.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryClass_Model/$:fetchall.$assign (2008-10-02 Doug K.)
Added VCS sensitive code.
oMetaDataQueryClass_Model/$:fetchallwhere.$assign (2008-10-02 Doug K.)
Added VCS sensitive code.
oMetaDataQueryClass_Model/$:sqlclassdesc.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryClass_Model/$:stbname.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryClass_Model/$:wininstidnew.$assign (2008-10-09 Doug K.)
Bug fix. Colname was set to wininstlist. Changed to wininstnew.
oMetaDataQueryClass_Model/$createSQLClass (2008-07-30 Doug K.)
Added method which creates a new query class and adds it to the meta-data list.
oMetaDataQueryClass_Model/$duplicateSQLClass (2008-07-30 Doug K.)
Added method which creates a new schema class and adds it to the meta-data list. The sSchema_template class is copied for the new class.
oMetaDataQueryClass_Model/$loadData (2008-10-01 Doug K.)
Added code to test if we can edit meta-data, before making any changes to the meta-data.
oMetaDataQueryClass_Model/$renameSQLClass (2008-07-30 Doug K.)
Added method which renames a SQL class.
oMetaDataQueryClass_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oMetaDataQueryClass_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oMetaDataQueryClass_Model/$syncMetaDataWithQueryClass (2008-07-31 Doug K.)
Added method which syncs the meta-data list with the SQL classes in the specified library.
oMetaDataQueryClass_Model/$syncMetaDataWithQueryClass (2008-08-25 Doug K.)
Bug fix. ClassName was not being calculated.
oMetaDataQueryClass_Model/$syncMetaDataWithQueryClass (2008-10-01 Doug K.)
Check to make sure we can modify the meta-data before running this method.
oMetaDataQueryClass_Model/$syncMetaDataWithQueryClasses (2008-09-29 Doug K.)
Added code to check for and delete any extra SQL classes from the meta-data.
oMetaDataQueryClass_Model/$syncMetaDataWithQueryClasses (2008-10-01 Doug K.)
Check to make sure we can modify the meta-data before running this method.
oMetaDataQueryClass_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to work with pbAutoCommit.
oMetaDataQueryCol_Model/$:decoratortype.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:hidden.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:includeinlists.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:includeinprompts.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:includeinsearches.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:includeintotals.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:listalign.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:listcalculation.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:listcolname.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:listwidth.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:lookupcaninsert.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:lookupcontains.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:lookupsqlclassname.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:lookupstartchar.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:lookupwhere.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:sortcolumn.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$:sortdescending.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataQueryCol_Model/$loadData (2008-10-01 Doug K.)
Added code to test if we can edit meta-data, before making any changes to the meta-data.
oMetaDataQueryCol_Model/$renameSchemaLibNameInQueryColumns (2008-07-30 Doug K.)
Added method which renames the sqlclasslibname for all of the meta-data.
oMetaDataQueryCol_Model/$saveChangedData_commit (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oMetaDataQueryCol_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oMetaDataQueryCol_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oMetaDataQueryCol_Model/$syncMetaDataWithQueryClass (2008-08-09 Doug K.)
Added method which syncs the meta-data list with a single SQL class.
oMetaDataQueryCol_Model/$syncMetaDataWithQueryClass (2008-10-01 Doug K.)
Check if we can modify the meta-data before running the sync.
oMetaDataQueryCol_Model/getQueryColsDataListFromOldVersionMetaData (2008-07-30 Doug K.)
Don't report errors if the classes list or columns list is empty. There might not be any SQL classes in the library yet.
oMetaDataQueryCol_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to work with pbAutoCommit.
oMetaDataQueryCol_Model/setNonEditColumnsInDataRowToCurrDefaultRowValues (2008-09-03 Doug K per Matthias H.)
Bug fix. querycolorder was being calculated as schemacolorder.
oMetaDataQueryCol_Model/setNonEditColumnsInDataRowToCurrDefaultRowValues (2008-09-30 Doug K.)
Bug fix. lookupwhere was being set to empty.
oMetaDataQueryCol_Model/setNonEditColumnsInDataRowToCurrDefaultRowValues (2008-10-03 Doug K per Mike M.)
Bug fix. Set lookupsqlclassname if it is empty and the default value is not empty.
oMetaDataSchemaClass_Model/$#About Schema Class Model (2008-06-20 Doug K.)
Created oMetaDataSchemaClass_Model object. This IS the cached SQL class list for the schema class meta-data.
oMetaDataSchemaClass_Model/$:controltable.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:fetchall.$assign (2008-07-31 Doug K per Matthias H.)
Bug fix. The tablename was not being set in the WHERE tablename.Active=1 when $fetchall was assign to true.
oMetaDataSchemaClass_Model/$:fetchall.$assign (2008-09-15 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:fetchallwhere.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:labelplural.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:labelsingular.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:lookupcaninsert.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:lookupcontains.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:lookupsqlclassname.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:lookupstartchar.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:servertablename.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:sqlclassname.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:wininstidedit.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:wininstidlist.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$:wininstidnew.$assign (2008-09-17 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaClass_Model/$createSQLClass (2008-07-30 Doug K.)
Added method which creates a new schema class and adds it to the meta-data list. The sSchema_template class is copied for the new class.
oMetaDataSchemaClass_Model/$createSQLClass (2008-09-12 Doug K.)
Updated the method to respect VCS, and to update string tables.
oMetaDataSchemaClass_Model/$deleteSQLClass (2008-07-30 Doug K.)
Added method which deletes schema class AND removes its columns from query classes.
oMetaDataSchemaClass_Model/$deleteSQLClass (2008-09-12 Doug K.)
Updated the method to respect VCS and remove string table entries.
oMetaDataSchemaClass_Model/$duplicateSQLClass (2008-07-30 Doug K.)
Added method which duplicates a SQL class and copies the meta-data list. The method can be used to copy a SQL class and its meta-data to a different library.
oMetaDataSchemaClass_Model/$duplicateSQLClass (2008-09-11 Doug K.)
Update the string tables when the SQL class is duplicated.
oMetaDataSchemaClass_Model/$loadData (2008-10-01 Doug K.)
Added code to test if we can edit meta-data, before making any changes to the meta-data.
oMetaDataSchemaClass_Model/$renameSQLClass (2008-07-30 Doug K.)
Added method which renames a SQL class.
oMetaDataSchemaClass_Model/$renameSQLClass (2008-09-12 Doug K.)
Added VSC sensitive code.
oMetaDataSchemaClass_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oMetaDataSchemaClass_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClass (2008-07-31 Doug K.)
Added method which syncs the meta-data list with a single SQL class.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClass (2008-10-01 Doug K.)
Check to make sure we can modify the meta-data before running this method.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClass (2008-10-01 Doug K.)
Removed updating the string tables if the SQL class already exists in the meta-data.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClasses (2008-07-31 Doug K.)
Added method which syncs the meta-data list with the SQL classes in the specified library.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClasses (2008-09-29 Doug K.)
Added code to check for and delete any extra SQL classes and columns from the meta-data.
oMetaDataSchemaClass_Model/$syncMetaDataWithSchemaClasses (2008-10-01 Doug K.)
Check to make sure we can modify the meta-data before running this method.
oMetaDataSchemaClass_Model/loadModuleData (2008-08-09 Doug K per Chuck M.)
Remove any _template appened schema classes from the list.
oMetaDataSchemaClass_Model/retSchemaClassesList (2008-08-09 Doug K per Chuck M.)
Remove any _template appended schema classes from the list.
oMetaDataSchemaClass_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to work with pbAutoCommit.
oMetaDataSchemaClass_Model/updateStringTables_labelplural (2008-07-24 DougK.)
Bug fix. Changed 'labelsingular' to 'labelplural' for Tblpural update.
oMetaDataSchemaClass_Model/updateStringTables_labelsingular (2008-07-24 DougK.)
Bug fix. Changed 'labelsingular' to 'labelplural' for Tblpural update.
oMetaDataSchemaCol_Model/$:abbrev.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:admincoltype.$assign (2008-07-31 Doug K per Mike M.)
Added 'endby' to the switch/case for setting its default values.
oMetaDataSchemaCol_Model/$:admincoltype.$assign (2008-07-31 Doug K per Mike M.)
Set 'hidden' to kTrue whenever a column is set to admin type, except for 'active' column.
oMetaDataSchemaCol_Model/$:admincoltype.$assign (2008-09-19 Doug K.)
Added VCS sensitive code. Set defaultvalue=1 for admincoltype=active
oMetaDataSchemaCol_Model/$:blankallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:calculatevalue.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:cascadedelete.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:columnslist (2008-10-03 Doug K. per Matthias H.)
Commented out the breakpoint used for beta testing.
oMetaDataSchemaCol_Model/$:decoratortype.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:defaultvalue.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:editallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:editallowed_canedit (2008-08-18 Doug K. per Will Adkin.)
Allow edit for foreignkey field.
oMetaDataSchemaCol_Model/$:enterallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:foreignkey.$assign (2008-09-19 Doug K.)
Added VCS sensitive code. Allow enter and edit for foreign key field.
oMetaDataSchemaCol_Model/$:foreignkeycolumnslist (2008-08-29 Doug K)
Do a case-insensitive search for the server table name.
oMetaDataSchemaCol_Model/$:foreignkeytableslist (2008-07-25 Doug K per Matthias H.)
Remove views from the foreignkeytableslist.
oMetaDataSchemaCol_Model/$:foreignview.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:formatmode.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:formatstring.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:hidden.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:includeinlists.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:includeinprompts.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:includeinsearches.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:includeintotals.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:indexname.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:inputmask.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:isadmincol.$assign (2008-07-31 Doug K per Mike M.)
Added 'endby' to the if/else for setting its default values.
oMetaDataSchemaCol_Model/$:isadmincol.$assign (2008-07-31 Doug K per Mike M.)
Added 'endby' to the if/else for setting its default values.
oMetaDataSchemaCol_Model/$:isadmincol.$assign (2008-09-19 Doug K.)
Only set the admincoltype from this method, by calling $:admincoltype.$assign from this method.
oMetaDataSchemaCol_Model/$:ispassword.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:label.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:listalign.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:listcalculation.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:listwidth.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:negativeallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:nonuniqueindex.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:nullallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:primarykey.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:rangevalues.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:refdcolnames.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:refdtablename.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:schemacoldesc.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:schemacolname.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:schemacolsublen.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:schemacolsubtype.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:schemacoltype.$assign (2008-09-23 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:sortcolumn.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:sortdescending.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:treatasboolean.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:uniqueindex.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:uppercase.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:validaterefsgroup.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:validaterefsmandatory.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:validaterefssubgroup.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:zeroallowed.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$:zeroshowempty.$assign (2008-09-19 Doug K.)
Added VCS sensitive code.
oMetaDataSchemaCol_Model/$deleteColumn (2008-09-10 Doug K.)
Modified method to support cascade deletes with VSC support.
oMetaDataSchemaCol_Model/$loadData (2008-08-27 Doug K.)
Removed sync and save from the $loadData. Sync of column is not the responsibilty of the $loadData method.
oMetaDataSchemaCol_Model/$loadData (2008-10-01 Doug K.)
Added code to test if we can edit meta-data, before making any changes to the meta-data.
oMetaDataSchemaCol_Model/$newColumn (2008-09-11 Doug K.)
Added code to cascade update query classes which include the entire schema class.
oMetaDataSchemaCol_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oMetaDataSchemaCol_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oMetaDataSchemaCol_Model/$syncMetaDataWithSchemaClass (2008-08-09 Doug K.)
Added method which syncs the meta-data list with a single SQL class.
oMetaDataSchemaCol_Model/$syncMetaDataWithSchemaClass (2008-08-18 Doug K.)
Call the _full sync method rather than the basic sync method.
oMetaDataSchemaCol_Model/$syncMetaDataWithSchemaClass (2008-10-01 Doug K.)
Check to make sure we can modify the meta-data before running this method.
oMetaDataSchemaCol_Model/$updateSchemaCols_duplicatecolsmetadata (2008-09-11 Doug K.)
Sync columns and update the string tables when the SQL class is duplicated.
oMetaDataSchemaCol_Model/checkfixDataRowValues (2008-08-27 Doug K.)
Updated/fixed the method to check and set all schema column meta-data values.
oMetaDataSchemaCol_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to work with pbAutoCommit.
oMetaDataSchemaCol_Model/syncColumnsForSQLClass_full (2008-09-08 Doug K.)
Update the string tables when a new column is added during the sync operation.
oMetaDataTool_OldVersionMetaData/getSchemaClassMetaDataRows (2008-07-24 Doug K.)
Fixed setting lookupstartchar value. If metadata value is null or zero, set to default of 1.
oModuleDataTool/$saveNavMenuList (2008-10-06 Doug K.)
Modify the method to ignore 'homelibname' and simply save the entire nav menu list to the specified pLibName. The sender is responsible to specify pLibName as $ctask.$lib().$name
oModuleDataTool/setList_homelibname (2008-07-30 Doug K.)
Bug fix. Changed pfList type from List to Field Reference.
oModuleDataTool/setList_source (2008-07-30 Doug K.)
Bug fix. Changed pfList type from List to Field Reference.
oObservers_events/$#About (2008-07-04 Doug K.)
Created observer object which specializes in observing field events.
oOpenLibraries/openLibrariesInFolder (2008-09-04 Doug K.)
Added search and remove of hidden files.
oOpenLibraries/retEnclosedFolderPath (2008-09-04 Doug K.)
Added search and remove of hidden files.
oOpenLibraries/retPathStudioWorksFolder (2008-09-04 Doug K.)
Added search and remove of hidden files.
oPaths_StudioWorks/$:HTMLFilesList (2008-05-13 Doug K.)
Changed If sys(2)=1 to If mod(sys(2),2) for unicode version of Omnis Studio.
oPaths_StudioWorks/$:PathLocalDataFile (2008-09-04 Doug K.)
Added search and remove of hidden files.
oPaths_StudioWorks/$:PathOmnisSharedFolder (2008-07-30 Doug K.)
Bug fix. The method was calling a private method that did not exist.
oPaths_StudioWorks/$:PathOmnisStartupFolder (2008-09-04 Doug K.)
Added search and remove of hidden files.
oPaths_StudioWorks/$:PathStudioWorksFolder (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oPaths_StudioWorks/$_retEnclosedFolderPath (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oPaths_StudioWorks/$initialize (2008-09-04 Doug K.)
Added search and remove of hidden files.
oPaths_StudioWorks/retEnclosedFilesList (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oPrefs_abstract/$_init_syncPropertyMethods (2008-07-17 Doug K.)
Added "Do $cinst.$savePrefs" to $assign methods for auto-saving of assigned values.
oPrepareNewDatabase/$prepareNewDatabase (2008-07-25 Doug K.)
Do a $reconnectSession after the sync operation. This is need for the Omnis data file to load the tables into the session.
oPrepareNewDatabase/rebuildCachedLists (2008-05-03 Doug K.)
Rebuild SQL lists rather than rebuild all lists. Reload string tables was running into an error on reload string tables from database.
oPrimaryKeys_abstract/$#About (2008-09-09 Doug K per Andy H.)
Changed the default minimum pkey value to 1 million.
oPrimaryKeys_abstract/$getNextPrimaryKey (2008-07-30 Doug K.)
Bug fix. Call to private method that had been renamed.
oPrimaryKeys_abstract/$setPrimaryKeyCounter (2008-09-14 Doug K per Andy H.)
Added SET EditNum = ",List.EditNum+1 for the UPDATE and a second attempt to update if the first attempt failed.
oSQLChildRecords/$deleteCascadeDeleteChildRecords (2008-07-330 Doug K.)
Bug fix. Extra End if in the For loop.
oSQLLists/$#About (2008-06-21 Doug K.)
Create a new oSQLLists object which uses the new schema and query class model objects. The public methods of oSQLLists remains unchanged. What goes on behind the scences has changed dramatically.
oSQLLists/$#About (2008-07-23 Doug K.)
Removed the language text related methods and the iLanguageID ivar since oSQLLists no longer caches language text.
oSQLLists/$makeWhereRowFromList (2008-05-22 Doug K.)
Removed the early exit.
oSQLLists/$retDefinedList (2008-08-27 Doug K.)
Bug fix. pos(_listdef...)>1 rather than =1 in the Else if test.
oSQLLists/$retSQLClassCustomInfoRow (2008-05-22 Doug K.)
Modified the get the 'custominforow' for the specified SQL class from the oMetaDataTools object.
oSQLLists/$retSQLColCustomInfoRow (2008-05-22 Doug K.)
Modified the get the 'custominforow' for the specified SQL class from the oMetaDataTools object.
oSQLLists/removeClasses_listdef (2008-07-24 Doug K.)
Added method to remove the _listdef classes from lists. Added calls to this method to all the $:Database... property methods.
oSQLLists/retDefinedListForCurrLine (2008-08-15 Doug K.)
Check if there is a table class in the schema's library that matches the schema class name less the 's' prefix.
oSQLLists/retDefinedListForCurrLine (2008-09-12 Doug K per Josh L)
Bug fix. Change mid(...,1) to mid(...,2)
oSQLLists_ForeignKeys/$#About (2008-05-22 Doug K.)
Created oSQLLists_ForeignKeys object class and moved all of foreign keys related method and code to this specialist object.
oSQLLists_ForeignKeys/$:ForeignKeyScoresList (2008-08-09 Doug K per Will Adkin.)
Bug fix. Update the method to work with the new schema class model.
oSQLLists_ForeignKeys/$:ForeignKeyScoresList (2008-09-12 Doug K.)
Use the iFkeyScoreList ivar for storing the foreign key scores rather than the schema class model data list.
oSQLLists_ForeignKeys/calcForeignKeyScoresList (2008-08-09 Doug K.)
Updated the method to work with the new models setup.
oSQLLists_ForeignKeys/calcForeignKeyScoresList (2008-09-12 Doug K)
Updating the foreignkeyscore in the schema class model data list is a problem for the VCS and module data objects. Decided to keep the fkeyscore list in memory. The first time it is called by DBAdmin the fkey score has to be calculated.
oSecurity/$getUserPassword (2008-07-24 Doug K.)
Method was returning false. Added preset FlagOK=kTrue.
oSecurity/$isMemberOfGroup (2008-05-20 Josh L.)
The method $retUserGroupsList requires a User Key to find the correct groups as a parameter.
oSecurity/$signIn (2008-07-23 Doug K.)
Added isnull test on the pPassword parameter to prevent a null value from passing the comparison.
oSecurity/$signIn (2008-09-08 Doug K. per Mike M.)
If the user enters and incorrect ID or password, just give them a general error message "Incorrect user ID or password".
oSecurity_DBAccessor_abstract/$#About (2008-06-18 Doug K.)
Added oSecurity_DBAccessor_abstract and _template to swBase4 for use by the SysAdmin module. By using a subclass of oSecurity_DBAccessor_abstract in the SysAdmin module, bug fixes can be made in the swBase object and automatically work in the SysAdmin module with new releases.
oSecurity_DBAccessor_abstract/$:GroupsList (2008-07-30 Doug K.)
Added missing End if.
oStartupSettingsFile/loadStartupItemsFilePropertiesList (2008-10-08 Doug K.)
If an error occurs, send it to the trace log as the error handler won't yet be initialized.
oStartupTaskDefaultMethods/$constructMethod (2008-05-13 Doug K.)
Changed If sys(2)=1 to If mod(sys(2),2) for unicode version of Omnis Studio.
oStartupTaskDefaultMethods/$destructMethod (2008-05-13 Doug K.)
Changed If sys(2)=1 to If mod(sys(2),2) for unicode version of Omnis Studio.
oStartupTaskDefaultMethods/$initializeTaskVar (2008-06-17 Doug K.)
Added $cando test and default flag ktrue.
oStartupTaskDefaultMethods/$logoffDatabase (2008-06-18 Doug K.)
Test 'db1sess' for $validref before attempting to send a $logoff message. Always return kTrue from this method.
oStartupTaskDefaultMethods/$signIn (2008-05-13 Doug K.)
Changed If sys(2)=1 to If mod(sys(2),2) for unicode version of Omnis Studio.
oStartupTaskDefaultMethods/$signInOKContinue (2008-07-07 Doug K.)
Add parameter bOpenMainWindow=kFalse to prevent the $intallMenus method from opening the main window.
oStartupTaskDefaultMethods/_closeLibrariesInFolder (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oStartupTaskDefaultMethods/_openLibrariesInFolder (2008-05-30 Doug K.)
Commented out setting library $mouseevents to true. Testing to see the effect of not turning on mouse events for the libraries.
oStartupTaskDefaultMethods/_openLibrariesInFolder (2008-09-04 Doug K.)
Added search and remove of hidden files and folders.
oStartupTaskDefaultMethods/_openLibrariesInFolder (2008-10-08 Doug K.)
Send errors to the trace log since the error handler is not likely initialized at this point.
oStartupTaskDefaultMethods/autoSignIn (2008-07-01 Doug K.)
Initialize the oSecurity object after logging onto the database and before attempting to $signIn to oSecurity.
oStartupTaskDefaultMethods/openLibraries (2008-05-13 Doug K.)
Changed If sys(2)=1 to If mod(sys(2),2) for unicode version of Omnis Studio.
oStartupTaskVarsTool/$changeLanguage (2008-05-08 Doug K.)
Changed $:LanguageColName to $:LanguageID
oStartupTaskVarsTool/$changeLanguage (2008-07-23 Doug K.)
Removed sending a $:LanguageID.$assign message to oSQLLists since it no longer stores language text. Removed sending a $:LanguageID.$assign message to oConcretizer since it no longer stores iLanguageID.
oStartupTaskVarsTool/$constructTaskVars (2008-09-14 Doug K.)
Added parameter, pAdditionalTaskVarsCSV_opt, and append it to the tvars CSV string so that sender can add more tvars to be constructed.
oStartupTaskVarsTool/$destructTaskVars (2008-06-18 Doug K.)
Figured out a smarter way to delete the object reference instances. Each instance is part of a task instance, so we can make a list of all the object reference instances ($listrefs), then select all the lines which belong to our task and just delete those object reference instances. ($deleteref)
oStartupTaskVarsTool/$initializeBeforeSignIn (2008-06-18 Doug K.)
Moved loading of string table to the after loading oSQLLists since oSQLLists object must be initialized before string tables.
oStartupTaskVarsTool/$initializeBeforeSignIn (2008-06-18 Doug K.)
Removed initializing the security object before sign-in. Logon to the database is required before we can initialize security, so that must be done by the SignIn/Logon window immediately after successful $logon.
oStartupTaskVarsTool/$initialize_app_prefs (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_app_prefs (2008-07-17 Doug K.)
Modify method so that it no longer uses an app_prefs.df1 file or the main database for storing app prefs. We are now using the module data object of the main library.
oStartupTaskVarsTool/$initialize_cn (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_conc (2008-05-08 Doug K.)
Changed LanguageColName to LanguageID
oStartupTaskVarsTool/$initialize_conc (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_conc (2008-07-24 Doug K.)
Remove sending pLanguageID to oConcretizer since it no longer stores the current language ID.
oStartupTaskVarsTool/$initialize_db1sess (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_eml (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_errhndlr (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_fn (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_icns (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_icns (2008-07-16 Doug K.)
Eliminated the parameters no longer needed for initializing the oIcons object.
oStartupTaskVarsTool/$initialize_last_selected (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_local_prefs (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_lsts (2008-05-22 Doug K.)
Added getting the cached columns list and passing it as a parameter when initializing oSQLLists.
oStartupTaskVarsTool/$initialize_lsts (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_lsts (2008-07-16 Doug K.)
Eliminated the parameters no longer need for the refactored oSQLLists object.
oStartupTaskVarsTool/$initialize_mn (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_mn (2008-07-16 Doug K.)
Eliminated the parameters no longer needed to send to oMenus.
oStartupTaskVarsTool/$initialize_pths (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_refs (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_rprts (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_rprts (2008-07-16 Doug K.)
Eliminated the parameters no longer need to send to oReports.
oStartupTaskVarsTool/$initialize_secur (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_stb (2008-05-08 Doug K.)
Changed LanguageColName to LanguageID
oStartupTaskVarsTool/$initialize_stb (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_stb (2008-07-16 Doug K.)
Change the parameters to match the new refactored oStringTables object.
oStartupTaskVarsTool/$initialize_wn (2008-05-08 Doug K.)
Call stb.$:LanguageID instead of $:LanguageColName.
oStartupTaskVarsTool/$initialize_wn (2008-06-18 Doug K.)
Store and restore the working message text.
oStartupTaskVarsTool/$initialize_wn (2008-07-03 Doug K.)
Changed the parameters to match the refactored oWindows object which now used oWindowInstances_Model.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-05-08 Doug K.)
Call stb.$:LanguageID instead of $:LanguageColName.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-06-18 Doug K.)
Corrected setting FlagOK. If a user was not logged on it was returning false. Should have been true.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-07-23 Doug K.)
Added $cando tests to avoid notation errors on closing the application in case tvars aren't all constructed.
oStartupTaskVarsTool/getTablesOwnerLogonInfo (2008-09-04 Doug K.)
Added search and remove of hidden files.
oStartupTaskVarsTool/initializeStartupSettingsFileVar (2008-09-04 Doug K.)
Added search and remove of hidden files.
oStartupTaskVarsTool/loadAutoSignInFile (2008-09-04 Doug K.)
Added search and remove of hidden files.
oStartupTaskVarsTool/retStartupSessionRow (2008-05-05 Doug K.)
Set the dbmsvencdor name to 'Omnis' if the damname is OMSQLDAM.
oStringTables/$#About (2008-05-30 Doug K.)
Moved the database string tables related code to oStringTables_Database. Moved the text files string tables related code to oStringTables_TextFiles Moved the meta-data string tables related code to oStringTables_MetaData Moved the string tables functions methods to oStringTablesTools
oStringTables/$:AllLanguagesList (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid'
oStringTables/$:AllLanguagesList (2008-05-20 Doug K. per Jim Creak.)
Added English (New Zealand) en-nz to the all languages list.
oStringTables/$:LANGUAGECOLNAME (2008-05-02 Doug K.)
Make sure that the base language column is NOT set to 'metadata'.
oStringTables/$:LANGUAGECOLNAME (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oStringTables/$:LanguageID (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oStringTables/$:LanguagesList (2008-05-02 Doug K.)
Remove the 'metadata' langauge from the language list that user get to see.
oStringTables/$:LanguagesList (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid'
oStringTables/$SETTEXTTOOLTIPABBREV (2008-05-12 Doug K.)
Added parameter pLanguageID_opt (default 'metadata') to allow the sender to update specific language columns.
oStringTables/$SETTEXTTOOLTIPABBREV (2008-05-26 Doug K.)
If pLanguageID_opt is not provided, default to the current iLanguageID column.
oStringTables/$getTextTooltipAbbrev (2008-05-13 Doug K.)
Modified the method to use the new 'metadata' base columns. 'abbrev' was not being correctly calculated.
oStringTables/$getTextTooltipAbbrev (2008-05-26 Doug K.)
Modified method to ensure that at least the stbid is returned for label and abbrev text.
oStringTables/$getTextTooltipAbbrev (2008-09-30 Doug K.)
Bug fix. abbrev was not being correctly calculated for other languages. This affected headed list column headings.
oStringTables/$getTextTooltipAbbrev_20080717_1 (2008-05-13 Doug K.)
Modified the method to use the new 'metadata' base columns. 'abbrev' was not being correctly calculated.
oStringTables/$getTextTooltipAbbrev_20080717_1 (2008-05-26 Doug K.)
Modified method to ensure that at least the stbid is returned for label and abbrev text.
oStringTables/$loadStringTables (2008-08-09 Doug K.)
Set the empty masterlist to be a smartlist so that all lines will be saved to the cached lists.
oStringTables/$loadStringTables (2008-10-09 Doug K.)
Removed the code which saved changes. This is the reponsibility of the sender.
oStringTables/$reloadMetaData (2008-07-23 Doug K.)
Save the entire cached list after reloading the string tables.
oStringTables/$reloadStringTablesFromTextFilesAndDatabase (2008-10-09 Doug K.)
Removed the code which saved changes. This is the reponsibility of the sender.
oStringTables/$removeLanguage (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid'
oStringTables/$removeLanguage (2008-07-23 Doug K.)
Save the entire cached list after removing a language.
oStringTables/$removeLine (2008-07-23 Doug K.)
Save cached list if the line is found and removed.
oStringTables/$removeLine (2008-09-10 Doug K.)
Added pbCheckCanUpdateOnly parameter and modified method to just check if the proposed change can be made. Removed saving the cached list. That responsibility is with the GUI classes.
oStringTables/$updateStringTableRow (2008-07-23 Doug K.)
Added new (smarter) method which replaces the $setTextTooltipAbbrev method.
oStringTables/$updateStringTableRow (2008-10-14 Doug K.)
Do not issue save changed data from this method. That is the responsibility of the sender. Bug fix. 'abbrev' was not being calculated.
oStringTables/loadCachedList (2008-08-09 Doug K.)
Set the cached masterlist to be a smartlist to simplify saving changes to the cached list.
oStringTables/loadCachedList (2008-08-09 Doug K per Josh L.)
Sort the string table list by stbname/stbid.
oStringTables/loadStringTablesFromMetaData (2008-05-27 Doug K.)
Modified the method so that it can just update string tables for specified libraries. (was always updating all string tables for all libraries)
oStringTables/loadStringTablesFromTextFiles (2008-05-30 Doug K.)
Moved the method code to the oStringTables_TextFiles object.
oStringTables/notifyInsts_recalcLanguageText (2008-07-24 Doug K.)
Added string table method which notifies other instances which store or display language text to $recalcLanguageText Call this method from oStringTables methods which rebuild or change the language text.
oStringTables/notifyInsts_recalcLanguageText (2008-07-30 Doug K.)
Modified method to include parameters pStbName and pStbID to improve performance by only recalculating text as needed.
oStringTables/saveChangedData (2008-08-09 Doug K.)
Use the smartlist to simplify saving changes to the cached list.
oStringTables/saveChangedData (2008-08-29 Doug K.)
Removed the "Do $cinst.$:modified". The method does not exist in this class.
oStringTablesEditor_Controller/$#About___ oStringTablesEditor_Controller (2008-05-01 Doug K.)
Added string tables list editor window controller object for wStringTablesEditor_View window class.
oStringTablesSchemasEditor_Model/$saveData (2008-08-09 Doug K.)
Bug fix. Store the OldStbID of the schema colname before it is changes. Don't use iOldRow var for tracking.
oStringTablesTools/$#About (2008-05-30 Doug K.)
Created oStringTablesTools object and moved various string table functions from oStringTables to the tools object. This simplifies oStringTables and make the functions accessible to other objects.
oStringTablesTools/$sortStringTablesList (2008-07-30 Doug K per Matthias H.)
Removed debug breakpoint in the method. Set current line to zero if current line was not set.
oStringTablesTools/$sortStringTablesList (2008-08-09 Doug K.)
Remove any empty 'homelibname' rows from the string table list. (orphans)
oStringTables_Database/loadStringTablesFromDatabase (2008-07-30 Doug K.)
Bug fix. Was calling private method name that didn't exist.
oStringTables_MetaData/getSchemasLists (2008-08-29 Doug K.)
The _listdef schemas which have a $servertablename are to be treated as database schemas for purpose of the string tables. Remove any _template suffixed schemas from the schemas list.
oStringTables_MetaData/retStringTablesListFromSchema_servertablename (2008-05-27 Doug K.)
Get the meta-data label, tooltip, abbrev, labelsingular, labelplural from the oMetaDataTools object.
oStringTables_MetaData/retStringTablesListFromSchema_servertablename (2008-09-09 Doug K.)
Get the meta-data from the oSQLLists object now that is has the oModuleData meta-data.
oStringTables_MetaData/retStringTablesListFromSchema_servertablename (2008-09-10 Doug K per Matthias H.)
Bug fix. hidden columns were being kept rather than deleted from the columns list. Bug fix. Only set the abbrev column value if the abbrev is different than the label.
oStringTables_MetaData/retStringTablesListFromSchema_stb (2008-09-09 Doug K.)
Modified the method so that it does not attempt to use the old style meta-data buried in $userinfo.
oStringTables_TextFiles/retStringTablesListFromTextFile (2008-07-22 Doug K.)
Changed $cinst.$:LanguageID to stb.$:LanguageID
oTableClassMethods_base/$:SQLText_DateTimeNow (2008-06-11 Doug K.)
Bug fix. @[#D] does not work in a SQL statement. Default return empty '' from this method.
oTableClassMethods_base/$_fixSQLText_ModDateTime (2008-06-11 Doug K.)
Bug fix. Only replace ModDateTime SQL text if iDateTimeNowSQLText has a value in it.
oTableClassMethods_base/$doinsertsBatch (2008-05-08 Josh L.)
Replaced irListRow.$statmentobject with a new StmntObj because the $prepare, $execute gets lost during the $setPrimaryKey
oTableClassMethods_base/$doupdatesBatch (2008-06-11 Doug K.)
Bug fix. Set the iRowOLD variable to tBase so that the row in scope of tBase. Remove extra 'Break to end of loop' so that $execute SQL error is logged.
oTableClassMethods_base/$doworkBatch (2008-10-07 Doug K.)
Call the table class instance $dodeletesBatch, $doupdatesBatch,$doinsertBatch rather than $cinst so that overridden table class methods will be called.
oTableClassMethods_base/$insertEmptyRecord (2008-05-03 Doug K per Chuck Martin.)
Combined all the 'not null' checks into a single loop. Added test for kDate and set to a bogus date. Check for isnull() rather than len()=0 as the latter fails on numeric fields.
oVersions_abstract/$retModsList (2008-05-20 Doug K.)
Remove any '_X' or '_x' suffixed classes from the modifications list. Remove any '_X' or '_x' suffixed methods from the modifications list.
wDBAdminDataMover/$deleteRecordsSelectedTables (2008-05-03 Doug K.)
Remove views from the tables list since we cannot delete records from views.
wDBAdminDataMover/$dropConstraintsSelectedTables (2008-07-30 Doug K.)
Bug fix. Changed End if to End for.
wDBAdminDataMover/syncTables (2008-10-02 Doug K.)
Added code to close and reopen the db1sess session if using the OMSQLDAM.
wDBAdminSyncDatabaseToSchemas/syncDatabaseToSelectedSchemas (2008-10-02 Doug K.)
Added code to close and reopen the db1sess session if using the OMSQLDAM.
wDBAdminTables/$dropTables (2008-07-31 Doug K.)
Bug fix. Dropping a single view would not work as it was calling $dropTable, check for view or table and call correct method.
wDBAdminTables/buildTablesList (2008-07-25 Doug K per Matthias H.)
Remove the 'pkey' table from the table list if it exists so that when sync'd the lists match.
wErrorPrompt/viewLogFile (2008-05-01 Doug K per Chuck Martin.)
Call the newer $openErrorLogViewer method rather than the deprecated $openLogFileViewer method.
wSQLMetaDataEditorShell/$#event mods (2008-08-01 Doug K.)
Save the last mode each time a node is selected. Solved problem of list jumping back to a different node when you leave and come back to the window.
wSQLMetaDataEditorShell/$notifications_windowevents (2008-07-31 Doug K per Mike M.)
Rebuild the treelist when the window comes to the top or switched to via the tab pane.
wSQLMetaDataEditorShell/eventTreelist_evOpenContextMenu (2008-08-09 Doug K.)
Added context menu to allow sync for a single SQL class.
wSQLMetaDataQueryClassEditor_View/$initialize (2008-07-30 Doug K.)
Added missing End if.
wSQLMetaDataQueryColsEditor_View/$event (2008-09-04 Doug K.)
On evAfter set the lookupsqlclassname to the matching SQL classes list line, or if not found to the $cobj contents.
wSQLMetaDataSchemaClassEditor_View/$event (2008-09-04 Doug K.)
On evAfter set the lookupsqlclassname to the matching SQL classes list line, or if not found to the $cobj contents.
wSQLMetaDataSchemaColsEditor_View/$#About (2008-08-04 Doug K per Matthias H.)
Copy desc to tooltip was not working. Fixed.
wSQLQueryBuilder/$#About (2008-08-26 Doug K. per Chuck M.)
Copy the extra query text to the old query text if the extra query text is modified by the developer in the window. so that the last developer edit/modify to the extra query text can be restored.
wSQLQueryBuilder/$deleteClass (2008-09-29 Doug K.)
Use the oSQLLists method so that meta-data is kept in sync.
wSQLQueryBuilder/$duplicateClass (2008-09-29 Doug K.)
Use the oSQLLists method so that meta-data is kept in sync.
wSQLQueryBuilder/$eventWindow (2008-08-28 Doug K.)
Added code to $sync the meta-data with the currently selected query class when the window is hidden.
wSQLQueryBuilder/$eventWindow (2008-10-01 Doug K.)
Added code to check if we can modify meta-data, only sync if we can.
wSQLQueryBuilder/$newClass (2008-09-29 Doug K.)
Use the oSQLLists method so that meta-data is kept in sync.
wSQLQueryBuilder/$renameClass (2008-09-08 Doug K.)
Bug fix. Rename class was not sending the class reference parameter.
wSQLQueryBuilder/$renameClass (2008-09-29 Doug K.)
Use the oSQLLists method so that meta-data is kept in sync.
wSQLQueryBuilder/event_evClick (2008-08-28 Doug K.)
Added code to $sync the meta-data withfor the current query class when the user clicks on a different query class.
wSQLQueryBuilder/event_evClick (2008-10-01 Doug K.)
Added code to check if we can modify meta-data, only sync if we can.
wSQLQueryBuilder/setDisplay (2008-09-08 Doug K per Chuck M.)
Modify method to just toggle the centre container $enabled property rather than $active property so that the fields can still be scrolled.
wSecurity/changeUser (2008-05-07 Josh L.)
Changed the setting of the logn Session to conform with the new DB Session Structure
wSecurity_GroupWindows/$save (2008-10-08 Doug K per Andy H.)
There could be more than one window that uses the same schema class. There use the max() values for setting schema security values.
@00 Menus/@16 Navigation List Editor (2008-10-08 Doug K.)
Updated documentation on the navigation list editor.
@00 Menus/@31 Reports Menus (2008-10-08 Doug K.)
Updated documentation on Reports menus.
@00 Menus/@33 Special Menus (2008-10-08 Doug K.)
Updated documentation on Special menus.
@00 Menus/@35 Other Menus (2008-10-08 Doug K.)
Updated documentation on Other menus.
@00 Menus/@37 Shortcut Keys (2008-10-08 Doug K.)
Updated documentation for menu line shortcut keys.
@00 Menus/@41 Context Menus (2008-10-08 Doug K.)
Added documentation and sample code for context menus.
@00 Reports/@10 Reports Menu (2008-10-08 Doug K.)
Updated the documentation for the new Report Instances Editor tab in the Programmer Workbench.
@00 String Tables/@00 About (2008-05-09 Doug K)
Updated string tables documentation.
@00 Web/@10 Web Apps (2008-08-30 Doug K.)
Added 'Web App' documentation.
@10 StudioWorks + JavaScript/@00 StudioWorks+JavaScript (2008-08-30 Doug K.)
Added 'SW+JavaScript' web app documentation.
@20 Quick Start Tutorial/@00 About (2008-10-02 Doug K.)
Updated the QuickStart Tutorial for the 2008-10 release of StudioWorks. The tutorial is getting shortere and shorter as StudioWorks gets easier and easier. :-)
@20 Startup Settings/@50 Email Settings (2008-10-08 Doug K.)
Removed the note about SMTP passwords not being implemented.
@40 Main Library Startup_Task/@10 Creating a Key Object Subclass (2008-10-08 Doug K.)
Updated documentation to reflect the fact that StartNewApp now has the most of the key object classes subclassed to the main library.
@50 Cached Lists and Module Data/@00 About (2008-07-21 Doug K.)
Added documentation about how cached lists work in the 2008-07-31 release.
@50 Lookups/@25 Intercepting Lookups (2008-05-12 Doug K.)
Added documentation for '$setMainListValues' method to intercept the field handler setting the main list values.
@50 Lookups/@25 Intercepting Lookups (2008-05-26 Doug K. per Chuck M.)
Corrected documentation. '$promptNewMethod' changed to '$promptNewLookupRecord' Corrected documentation. '$promptNewCopyLookup' changed to '$promptNew'CopyLookupRecord'
@50 Performance Testing/@00 About (2008-07-21 Doug K.)
Added documentation on the new Programmer_Task which gives millisecond performance testing for StudioWorks developers.
@50 Programmer Workbench/@00 About (2008-08-19 Doug K.)
Added documentation for my own reference on the structure and strategy for module data and commit/rollback behavior using smartlists.
@50 Programmer Workbench/@70 Module Data (2008-08-19 Doug K.)
Added documentation for my own reference on the structure and strategy for module data and commit/rollback behavior using smartlists.
@50 Programmer Workbench/@71 Cascading Updates (2008-08-19 Doug K.)
Added documentation for my own reference on the structure and strategy for module data and commit/rollback behavior using smartlists.
FieldHandlersFactory_Task/$:TypesList (2008-06-04 Doug K.)
Added 'defaultvalue' decorator type. Used by programmer tools.
FieldHandlersFactory_Task/constructPools (2008-06-04 Doug K.)
Flag false was being returns. Flag was not being set. Add default FlagOK as kTrue.
mCommands/$construct (2008-07-24 Doug K.)
Change call to deprecated conc.$runtimizeMenu to $runtimizeMenuInst
mContext/attachMenuLineObserver (2008-06-03 Doug K.)
Modified method so that it can handle object reference type observer instances.
mContext/attachMenuLineObserver (2008-09-24 Josh L.)
Changed the line Calculate iObserversRow.[rCol().$name] as pfrObserver.$ref to ..$ref() so the dereference worked properly
oAnimator/$doAnimation (2008-09-08 Josh L.)
Changed from using #CT to using abs(#CT) and from using CurrTime-StartTime to using ElapsedTime = abs(CurrTime-StartTime) For those times when #CT is negative...
oConcretizer/$:LANGUAGECOLNAME.$assign (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oConcretizer/$:LANGUAGEID.$ASSIGN (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oConcretizer/$:LANGUAGEID.$ASSIGN (2008-07-24 Doug K.)
Deprecated $:LanguageID.$assign from oConcretizer.
oConcretizer/$addFieldsAndLabels (2008-05-02 Doug K.)
Do not add the edit pencil for 'refs' lookups.
oConcretizer/$createRuntimeWinClass (2008-07-24 Doug K.)
Replace iLanguageID with stb.$:LanguageID
oConcretizer/$initialize (2008-05-13 Doug K.)
Remove early exits.
oConcretizer/$initialize (2008-07-24 Doug K.)
Removed pLanguageID parameter. No longer needed by oConcretizer.
oConcretizer/$runtimizeReportInst (2008-07-01 Doug K.)
Get the 'abbrev' text from oStringTables rather than the columns list.
oConcretizer/$runtimizeWinInst (2008-05-13 Doug K.)
Clear the iCurr... ivars to ensure that the columns list is rebuilt to reflect meta-data changes.
oConcretizer/addField (2008-07-21 Doug K.)
Switch to using the column's 'stbname.schemacolname' from the 'SQLClassName.listcolname' for $tooltip. Speeds up dynamic window instantiation.
oConcretizer/addLabel (2008-07-21 Doug K.)
Switch to using the column's 'stbname.schemacolname' from the 'SQLClassName.listcolname' for label. Speeds up dynamic window instantiation.
oConcretizer/createRuntimeWinClass (2008-07-24 Doug K.)
Replace iLanguageID with stb.$:LanguageID
oConcretizer/retRuntimeFolderRef (2008-07-24 Doug K.)
Replace iLanguageID with stb.$:LanguageID
oConcretizer/setTextAndTooltipProperties (2008-07-01 Doug K.)
Remove the dependency for getting string table text from the SQL columns list. Only get it from oStringTables.
oFieldDecorator_defaultvalue/$decorateField (2008-06-04 Doug K.)
Added decorator object for 'defaultvalue' decoratortype. This is used by the programmer workbench tools.
oFieldDecorator_displayonly/$decorateField (2008-06-04 Doug K.)
Call private method for decorating kCheckbox fields if the field type is kCheckbox.
oFieldDecorator_displayonly/$decorateField (2008-06-04 Doug K.)
Only apply the effect and forecolor decorating to kEntry,kMaskedEntry,kMultilineEntry fields. Default simply enables the field.
oFieldDecorator_displayonly/decorateField_kCheckbox (2008-06-04 Doug K.)
Added method for decorating kCheckbox fields.
oFieldDecorator_normal/$decorateField (2008-06-04 Doug K.)
Call private method for decorating kCheckbox fields if the field type is kCheckbox.
oFieldDecorator_normal/$decorateField (2008-06-04 Doug K.)
Only apply the effect and forecolor decorating to kEntry,kMaskedEntry,kMultilineEntry fields. Default simply enables the field.
oFieldDecorator_normal/decorateField_kCheckbox (2008-06-04 Doug K.)
Added method for decorating kCheckbox fields.
oFieldHandlerController/$INITIALIZEFIELDS (2008-05-03 Doug K.)
Change pfExtraFieldsList_opt from field reference to list data type.
oFieldHandlerController/$addsetFieldDecoratorType (2008-06-04 Doug K.)
Change parameter sent the handler from 'pRowNum_opt' to 'RowNum'.
oFieldHandlerController/$decorateField (2008-06-04 Doug K.)
Bug fix. Changed 'ioDecoratorsRow' to 'iDecoratorsRow'.
oFieldHandlerController/$decorateField (2008-06-04 Doug K.)
Save and restore $norefresh state, in case it has been set to kTrue before running this method.
oFieldHandlerController/$event (2008-05-01 Doug K.)
Added FlagOK default true and return FlagOK for proper error handling.
oFieldHandlerController/$event (2008-05-12 Doug K per Chuck Martin.)
Removed OK message that was used for debug testing.
oFieldHandlerController/$event (2008-09-03 Doug K.)
Fixed problem with lookup inactive not working as reported by Josh. Also discovered that field was being re-decorated every keystroke. Added code to not decorate on evKey.
oFieldHandlerController/$event (2008-10-09 Doug K per Mike M)
Pass evKey events to the field handler decorator objects so that 'displayonly' will discard keystrokes that attempt to modify data.
oFieldHandlerController/$retFieldHandlerType (2008-08-22 Doug K.)
Added method which returns the handlertype for the current mode for the specified field. This method was need enabling the date picker button when the date field was set to the 'click' handler type.
oFieldHandlerController/$showLookupList (2008-06-04 Doug K.)
Remove line which set reference irWin to prWin of the lookup list. The ivar irWin is not used in the field controller.
oFieldHandlerController/convertPrevVersionFieldPropertiesList (2008-06-04 Doug K.)
Changed irWin to irWinInst. irWin is the incorrect ivar to use.
oFieldHandlerGenerateProperties/buildLookupProperties (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
oFieldHandlerLookupTypeAhead/$control (2008-08-06 Doug K per Will Adkin)
If the user hits the enter/return key discard the event queue a tab, but don't queue a return as that causes the default $saveandclose to get called.
oFieldHandlerLookupTypeAhead/initialize (2008-05-12 Doug K.)
Default FlagOK as kTrue.
oFieldHandlerLookupTypeAhead/initialize (2008-07-02 Doug K.)
Check if 'lookuprefs' before setting SQL class related look values.
oFieldHandlerLookupTypeAhead/promptNewRecord (2008-05-26 Doug K per Chuck M.)
Added passing 'pbUseEntryFieldContents' parameter to the entry field $promptNew... methods.
oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2008-08-14 Doug K per Andy H.)
If you have just looked up a field with a refs list for entries, then the test fails. Added isnull() test to solve the problem.
oFieldHandlerLookupTypeAhead/setMainListValues (2008-05-01 Doug K.)
Added $cando test for entry field $setMainListValues method, and if found let the entry field set the main list values. This can be used where you are trying to use the same lookup list for different fields in the same window.
oFieldHandlerPropertiesList/$retFieldPropertiesList (2008-05-09 Doug K per bug report by Chuck Martin.)
Do not add kCombo, kDroplist, kPoplist types of fields to the field properties list. This means that the field handler will igorne these fields.
oFieldHandlerPropertiesList/$retFieldPropertiesList (2008-05-09 Doug K. per bug reported by Josh.)
Remove defaulting to 'normal' any fields with a dataname that is not in the SQL defined columns list.
oFieldHandlerPropertiesList/$retFieldPropertiesList (2008-07-25 Doug K.)
Set irWin to prWin at the beginning of the method so that error messages can include the window instance/class name.
oFieldHandlerPropertiesList/setLookupProperties (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
oFieldHandlerPropertiesList_20081110_BAD/$retFieldPropertiesList (2008-05-09 Doug K per bug report by Chuck Martin.)
Do not add kCombo, kDroplist, kPoplist types of fields to the field properties list. This means that the field handler will igorne these fields.
oFieldHandlerPropertiesList_20081110_BAD/$retFieldPropertiesList (2008-05-09 Doug K. per bug reported by Josh.)
Remove defaulting to 'normal' any fields with a dataname that is not in the SQL defined columns list.
oFieldHandlerPropertiesList_20081110_BAD/$retFieldPropertiesList (2008-07-25 Doug K.)
Set irWin to prWin at the beginning of the method so that error messages can include the window instance/class name.
oFieldHandlerPropertiesList_20081110_BAD/setLookupProperties (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
oFieldHandlerPropertiesList_20081110_BAD/setLookupProperties_20081110 (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
oFieldHandlerTools/$setFieldValue (2008-05-05 Doug K.)
Go up the containers from the field and send a $:Modified.$assign(kTrue) to the first container that will accept this message.
oFieldHandler_notes/$_openNoteEditViewWindow (2008-10-14 Doug K per Mike M.)
Look in the $ctask.$lib rather than $clib for the 'wFieldHandlerNoteEditView' window.
oFieldPropertiesTool/$#About (2008-06-11 Doug K.)
Created a handy dandy object which save and restores field properties on a user by user basis. For most fields you simply pass in the $cinst and $cfield from the $construct and $destruct methods of the field. Properties are saved to the window instances custom properties list.
oFormatPhoneNumber/$#About (2008-06-18 Doug K.)
Added object class which formats an input phone number string to a specified format string.
oMenus/$:LanguageID.$assign (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oMenus/$:NavigationMenuLinesMasterList (2008-07-10 Doug K.)
Get the nav menu lines list from the new oNavigationMenu_Model object.
oMenus/$RETNAVMENUSLINESLIST (2008-07-14 Doug K.)
Deprecated the method. It should be named $retNavMenuLinesList, not $retNavMenusLinesList.
oMenus/$getNavMenuLists (2008-07-14 Doug K.)
Added new method which gets the groups list, subgroups list, and nav menu lines list all at once.
oMenus/$initialize (2008-07-16 Doug K.)
Eliminated the need for any parameters for this method.
oMenus/$recalcIcons (2008-08-09 Doug K.)
Forward the message to the new oWindowMenus_Model object.
oMenus/$recalcLanguageText (2008-07-30 Doug K.)
Modified method to include parameters pStbName and pStbID to improve performance by only recalculating text as needed.
oMenus/$recalcLanguageText (2008-08-09 Doug K.)
Forward the message to the new oWindowMenus_Model object.
oMenus/$retNavMenuGroupsList (2008-07-14 Doug K.)
Added code to use the groups list and groupsortorder property.
oMenus/$retNavMenuLinesList (2008-07-14 Doug K.)
Moved the code to a private method which is accessed by other methods.
oMenus/$retNavMenuSubGroupsList (2008-07-14 Doug K.)
Added method to return the sorted subgroups list for a specified group.
oMenus/$retWindowMenuLinesList (2008-08-09 Doug K.)
Forward the message to the new oWindowMenus_Model object.
oMenus/$retWindowMenusList (2008-08-29 Doug K.)
Added menulibname and menuclassname to the windows menu list being returned from this method.
oMenus/$updateIcon (2008-06-16 Doug K.)
Added method to allow dynamic updating of the icons in the menu lists.
oMenus/$updateIcon (2008-07-10 Doug K.)
Forward the message to the new oNavigationMenu_Model object.
oMenus/$updateIcon (2008-08-09 Doug K.)
Forward the message to the new oWindowMenus_Model object.
oMenus/$updateLanguageText (2008-07-14 Doug K.)
Forward the message to the new oNavigationMenu_Model object.
oMenus/$updateLanguageText (2008-08-09. Doug K.)
Forward the message to the new oWindowMenus_Model object.
oMenus/retNavMenusLinesList (2008-07-10 Doug K.)
Get the nav menu lines list from the new oNavigationMenu_Model object.
oNavigationMenu_Model/$:wininstid.$assign (2008-09-08 Josh L.)
Changed If .. to else if ... so the case would be caught.
oNavigationMenu_Model/$deleteMenuLine (2008-07-22 Doug K.)
Check the homelibname after deleting the menu line. If the new current line doesn't match, shift up one line.
oNavigationMenu_Model/$loadData (2008-10-06 Doug K.)
Store the entire navigation menu list in the main library oModuleData object of the app. The groups and subgroups list are stored in the main library oModule, so it is least complicated for the VCS to store the nav list there as well.
oNavigationMenu_Model/$moveSubGroupAfter (2008-08-18 Doug K.)
Use the new saveChangedSubGroupsData smartlist method.
oNavigationMenu_Model/$newSubGroup (2008-08-18 Doug K.)
Use the new saveChangedSubGroupsData smartlist method.
oNavigationMenu_Model/$recalcIcons (2008-08-18 Doug K.)
Use the new saveChangedGroupsData and saveChangedSubGroupsData smartlist methods.
oNavigationMenu_Model/$recalcLanguageText (2008-07-30 Doug K.)
Modified method to include parameters pStbName and pStbID to improve performance by only recalculating text as needed.
oNavigationMenu_Model/$recalcLanguageText (2008-08-18 Doug K.)
Use the new saveChangedData and smartlist methods. Use the new saveChangedGroupsData and saveChangedSubGroupsData smartlist methods.
oNavigationMenu_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oNavigationMenu_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oNavigationMenu_Model/$updateLanguageText (2008-08-18 Doug K per Josh L.)
Use the smarlist saveChangedData method to avoid saving to all modules. Add parameters to groups and subgroup menus parameters to improve performance.
oNavigationMenu_Model/loadCachedLists (2008-08-09 Doug K.)
Set the data list to be a smartlist to simplify saving changes.
oNavigationMenu_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to include the pbAutoCommit parameter.
oNavigationMenu_Model/saveChangedData (2008-10-06 Doug K.)
Modified the method to save the entire navigation menu lines list to the main library oModuleData object and clear the others.
oNavigationMenu_Model/saveChangedGroupsData (2008-08-18 Doug K.)
Added method to save group data using smartlist properties.
oNavigationMenu_Model/saveChangedGroupsData (2008-08-19 Doug K.)
Modified the method to include the pbAutoCommit parameter.
oNavigationMenu_Model/saveChangedSubGroupsData (2008-08-18 Doug K.)
Added method to save subgroup data using smartlist properties.
oNavigationMenu_Model/saveChangedSubGroupsData (2008-08-19 Doug K.)
Modified the method to include the pbAutoCommit parameter.
oNavigationMenu_Model/saveChangedSubGroupsData (2008-08-28 Josh L.)
Changed iGroupsList to iSubGroupsList so the Modified flag would be set correctly for this method
oNavigationMenu_Model/setSubGroupsListText (2008-08-29 Doug K.)
Bug fix. Changed 'groupid' to 'subgroupid' and 'grouptext' to 'subgrouptext'
oPrompts/$_prompt_constructHeadedList (2008-07-07 Doug K.)
Add bLogError=kFalse to the oSQLLists call to prevent error message.
oReportsMenuObserver_abstract/$redirectToPrintReportObj (2008-09-05 Doug K)
Added $cinst. prefix to Do ioPrintReport so that the subclass ivar can be overridden to point to oPrintReport in the local library, making it easier for the developer to jump to those methods.
oTabPaneController/$:TabsList (2008-05-17 Doug K.)
Added property methods to allow the sender to dynamically change the tab pane setup.
oTabPaneController/$retSubWinRef (2008-05-08 Doug K.)
Added $retSubWinRef method to the oTabPaneController. Returns a reference to a subwindow on a tab pane.
oWindowInstances_Model/$:hascustomcmnds.$assign (2008-08-22 Doug K.)
Omnis bug? For some reason I could NOT calculate cmndslist consistently without first making is #NULL.
oWindowInstances_Model/$rebuildData (2008-10-06 Doug K.)
Recalc the iconid each time this method is run.
oWindowInstances_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oWindowInstances_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oWindowInstances_Model/$setandsaveCustomCmndsList (2008-08-22 Doug K.)
Omnis bug? For some reason I could NOT calculate cmndslist consistently without first making is #NULL.
oWindowInstances_Model/$setandsaveCustomCmndsList (2008-09-08 Doug K. per Chuck.)
Calculate the enabled and toolbar cmnds csv string for default cmnds.
oWindowInstances_Model/$updateIcons (2008-08-09 Doug K.)
Modified method so that is only updates wininstids which match the new or old icon name.
oWindowInstances_Model/loadCachedList (2008-08-09 Doug K.)
Set the datalist to be a smartlist to simplify saving changes.
oWindowInstances_Model/saveChangedData (2008-08-19 Doug K.)
Modified method to use pbAutocommit parameter.
oWindowInstances_Tool/$getWinInstsList (2008-07-09 Josh L.)
A while loop with $first and no $next causes an infinite loop. Fixed that.
oWindowInstances_Tool/$getWinInstsList (2008-07-09 Josh L.)
A badly aligned while loop has quite indeterminate side effects. Moved the End If outside the End While
oWindowInstances_Tool/$retDefaultCmndsList (2008-07-31 Doug K. per Mike M.)
Return one empty command in the cmndslist for 'container' and 'other' wintypes so that custom commands can be added to containers.
oWindowInstances_Tool/addDefaultWinInstID (2008-08-09 Doug K.)
Modify code to use the schema name, less the first letter, rather than the servertablename as the base text for the default wininstid.
oWindowInstances_Tool/addDefaultWinInstID (2008-10-02 Doug K.)
Bug fix. Set toolbarposn as 'top' (was toolbarvisible). Set searchbarvisible default kTrue for 'list' default window instances.
oWindowInstances_Tool/retSchemaClassesList (2008-08-18 Doug K.)
Added search and remove _template appended schema classes.
oWindowInstances_Tool_v200805/setWinTypesInList (2008-07-22 Doug K.)
Changed the deprecated 'lsts.$:MasterList' to 'lsts.$:DatabaseQueriesSchemasAndViewsList'
oWindowMenus_Model/$addMenu (2008-10-02 Doug K.)
Bug fix. Added missing parameter 'MenuID'.
oWindowMenus_Model/$loadData (2008-09-08 Doug K per Mike M.)
Added parameter pMenuLineOrder_opt to ensure correct menu line is loaded if duplicates
oWindowMenus_Model/$recalcLanguageText (2008-07-30 Doug K.)
Modified method to include parameters pStbName and pStbID to improve performance by only recalculating text as needed.
oWindowMenus_Model/$recalcLanguageText (2008-10-02 Doug K.)
Modified the method to search and only update menulineids matching the pStbID_opt.
oWindowMenus_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oWindowMenus_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oWindowMenus_Model/addMenuLine (2008-09-05 Doug K per Mike M.)
Corrected the parameters being passed to the checkaddMenuLineIDtoMenuObserver method.
oWindowMenus_Model/checkaddMenuLineIDtoMenuObserver (2008-09-05 Doug K per Mike M.)
Corrected the parameters being passed to the _checkaddObserver... methods.
oWindowMenus_Model/saveChangedData (2008-08-19 Doug K.)
Modified method to use pbAutoCommit parameter.
oWindowMenus_Model/setMenuLineText (2008-10-02 Doug K.)
Bug fix. Menu line text was not being set if the string table text already existed.
oWindows/$:DefaultDevWinEditRef (2008-07-04 Doug K.)
Redirect this method to the new oWindowInstances_Model object.
oWindows/$:DefaultDevWinListRef (2008-07-04 Doug K.)
Redirect this method to the new oWindowInstances_Model object.
oWindows/$:LANGUAGECOLNAME.$assign (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oWindows/$:LANGUAGEID.$assign (2008-05-08 Doug K.)
Added new property methods for $:LanguageID. Deprecated $:LanguageColName.
oWindows/$:LANGUAGEID.$assign (2008-07-04 Doug K.)
Deprecated method. The windows list does not store any language text.
oWindows/$:WindowsList (2008-07-04 Doug K.)
Redirect this method to the new oWindowInstances_Model object.
oWindows/$openWindow (2008-07-03 Doug K.)
Updated method to use the window instances model object.
oWindows/$prepareSubWin (2008-07-03 Doug K.)
Updated method to use the window instances model object.
oWindows/$retWinClassRef (2008-07-03 Doug K.)
Make some calls from this method directly to the oWindowInstances_Model object.
oWindows/$retWinIconID (2008-07-03 Doug K.)
Redirect the message to the oWindowInstances_Model object.
oWindows/$retWinInstsModelObjRef (2008-07-03 Doug K.)
Added method to return the window instances model object reference. Needed by the window instances editor.
oWindows/$retWindowsListProperty (2008-07-03 Doug K.)
Redirect the message to the oWindowInstances_Model object.
oWindows/$retWindowsListRow (2008-07-03 Doug K.)
Redirect the message to the oWindowInstances_Model object.
oWindows/$updateIcon (2008-06-17 Doug K.)
Added method to dynamically update the iconids in the windows list for a new or changed icon.
oWindows/$updateIcon (2008-07-03 Doug K.)
Redirect the message to the oWindowInstances_Model.
wBase_ToolbarTitlebar_abstract/$_constructMenus (2008-08-29 Doug K.)
Remove dependency on menuclassref being preset. Use menulibname and menuclassname to find the class.
wBase_abstract/$:DataListRef (2008-07-15 Doug K per Will Adkin.)
Considered changing iList.$ref.$ref to iList.$ref but found out the key to calling this method is to include closing parenthesis. Add extra info to the method desc. "When calling this method be SURE to include closing () parenthesis. e.g. Do rWin.$:DataListRef() Returns rList"
wComplexGrid_abstract/$_setMode (2008-07-17 Doug K.)
Copy superclass code 'Calculate iMode as pMode' to the subclass. Not worth stepping up to the superclass method.
wComplexGrid_abstract/$_setMode (2008-07-17 Doug K.)
Send $setMode message to field handler instead of $initializeField.
wComplexGrid_abstract/$construct (2008-07-07 Doug K.)
Send a $initialize message to the new oFieldHandlerController object.
wComplexGrid_abstract/$control (2008-09-24 Josh L.)
Added the $cando around the $event_evOpenContextMenu call as not all parents will have this functionality.
wComplexGrid_abstract/$delete (2008-05-30 Josh L.)
Was deleting records without saving other changes in edit mode. Now works correctly in both view and edit mode.
wComplexGrid_abstract/$event_evOpenContextMenu (2008-05-02 Josh L.)
Added this method so that right-clicking doesn't produce an error.
wComplexGrid_abstract/$viewRecord (2008-05-30 Josh L.)
changed $enableEdit to $disableEdit to make the complex grid behave like a list.
wContainer_Edit_ListChildren_abstract/$editRecord (2008-05-05 Josh L.)
Added the parameter pbActuallyView to enable viewing instead of editing a record in this window.
wContainer_Edit_ListChildren_abstract/$prepareSubWin (2008-09-23 Doug K per Andy H.)
Replaced 'Do inherited' with 'Do $cinst.$inherited.[$cmethod().$name]...'
wContainer_Edit_ListChildren_abstract/$viewRecord (2008-05-05 Josh L.)
Added this method so view functionality can be used in this window.
wContainer_List_Edit_abstract/$showSubWin (2008-07-21 Doug K per Chuck M.)
Added not(isnull(irswEdit)) test before comparing with prSubWin and checking its mode. Also set Init. Val/Calc for irswEdit, irswList, irswListParent to #NULL.
wContainer_TabEdit_abstract/$viewRecord (2008-05-05 Josh L.)
Added this method so view functionality is available to this container window.
wContainer_TabListSpecific_abstract/$_constructTabCaptions (2008-09-03 Doug K.)
Call oWindows.$retWinTitle to figure out the tab caption. If WinInstID is empty, name the tab caption "Tab ##".
wContainer_abstract/$_constructMenus (2008-08-29 Doug K.)
Remove dependency on menuclassref being preset. Use menulibname and menuclassname to find the class.
wDatabaseTablesEditor/$_setMode (2008-07-17 Doug K.)
Send $setMode message rather than $initializeFields message to the oFieldHandlerController. Added parameter bForceResetFields to get the new field handler controller to reset all the field even though the mode doesn't change.
wEditList_abstract/$_setMode (2008-07-17 Doug K.)
Copy the superclass method 'Calculate iMode as pMode' rather than 'Do inherited'. Not worth the extra step.
wEditList_abstract/$_setMode (2008-07-17 Doug K.)
Send a $setMode message to oFieldHandlerController rather than $initializeFields.
wEditList_abstract/$construct (2008-07-17 Doug K.)
Point ivar 'ifld' to the new oFieldHandlerController and sent it an $initialize message from the $construct method.
wEditList_abstract/$construct (2008-09-09 Doug K.)
Added code to load the iWinsListRow row.
wEditList_abstract/$displayLookupFieldDropList (2008-09-09 Doug K.)
Added the $displayLookupFieldDropList to the wEditList_abstract method as it was missing.
wEditList_abstract/$editLookupFieldRecord (2008-09-09 Doug K.)
Added the $editLookupFieldRecord to the wEditList_abstract method as it was missing.
wEdit_abstract/$_fetchControlTable (2008-10-03 Doug K. per Mike Matthews.)
Bug fix. Check len(SQLClassName)>0 rather than not(isnull(SQLClassName))
wEdit_abstract/$_setMode (2008-07-17 Doug K.)
Replace 'Do inherited' with the superclass code 'Calculate iMode as pMode'. No worth the extra step to go up to the superclass method.
wEdit_abstract/$_setMode (2008-07-17 Doug K.)
Point ivar 'ifld' to new oFieldHandlerController' object class. Move $initialize to $construct. Instead just send $setMode to the new field handler from this method.
wEdit_abstract/$close (2008-07-02 Doug K.)
Added code to make sure the lookup list subwindow field is hidden when the edit window is closed.
wEdit_abstract/$construct (2008-07-17 Doug K.)
Send an $initialize message to the new oFieldHandlerController. It only need to be initialized once. In previous versions $initializeFields was repeated from the $_setMode method.
wEdit_abstract/$revert (2008-07-02 Doug K.)
Added code to make sure the lookup list subwindow field is hidden when the edit window is closed.
wEdit_abstract/$revert (2008-07-04 Doug K.)
Removed the code that disabled the window instance if it was in 'new' mode. I'm not sure why it was coded to disable the window.
wHeadedListSimple_autoconfig/$:ListUserPropertiesRow (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid' and stb.$:LangagueColName to $:LangaugeID.
wHeadedListSimple_autoconfig/$:ListUserPropertiesRow.$assign (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid' and stb.$:LanguageColName to $:LanguageID
wHeadedList_autoconfig/$:SQLClassName.$assign (2008-07-01 Doug K.)
Set the label, tooltip, abbrev columns text to the current language text.
wHeadedList_autoconfig/buildListObjFromMetaData (2008-09-30 Doug K.)
Get the abbrev text from oStringTables. The current language text is no longer cached in the SQL meta-data.
wHeadedList_autoconfig/resizeTotals (2008-07-330 Doug K.)
Bug fix. Removed extra End if from For loop.
wHeadedList_autoconfig/saveUserPropertiesList (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid' and stb.$:LanguageColName to $:LanguageID
wHeadedList_autoconfig/setListProperties (2008-07-25 Doug K. per Matthias H.)
Set ivar iText_yes for the treatasboolean column so that other languages can be used.
wHeadedList_autoconfig/setListProperties (2008-09-30 Doug K.)
Call oStringTables for the text for each column heading. The current language text is no longer cached in the SQL meta-data.
wList_abstract/$_constructFetchAll (2008-06-09 Doug K.)
Set iBatchSize to kFetchall if the table is a fetchall table.
wList_abstract/$_retActiveCmndsList (2008-08-01 Doug K>)
Added test for iSQLClassName before sending message to oSQLLists. Avoid error message.
wLookupList/setSize (2008-07-01 Doug K.)
Translate the label, tooltip, abbrev from oStringTables before setting the HeaderTextCSV.
wNav_Treelist/$_event_evClick (2008-10-07 Doug K.)
Use the $ident of the node to select the $line of the iNavMenuList. Solved search problem if duplicate wininstids in the nav list.
wNav_Treelist/$constructTreelist (2008-07-14 Doug K.)
Modified the method to use the new nav menu group/subgroup list supporting the sort order.
wNav_Treelist/$constructTreelist (2008-10-07 Doug K.)
Set the $ident of the wininstid node to the $line of the iNavMenuList. If a wininstid is multiple times in the list, the correct one will be selected based on the line number.
wPromptFindMultiCriteria/$initialize (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
wPromptFindMultiCriteria_subwin/setEntryField (2008-07-21 Doug K per Andy H)
Added 'Case' for kNumber to allow negative values in the search entry field.
wPromptModelessSubWin/_addField_kHeadedListBox (2008-07-01 Doug K.)
Set the columns list label, tooltip, abbrev from oStringTables.
wPromptModelessSubWin/addFieldsAndLabelsUsingConcretizer (2008-07-17 Doug K.)
Switch to $initialize followed by $setMode for the new oFieldHandlerController object.
wPromptShell/$event_ButtonPressed (2008-05-05 Doug K.)
Queue cancel to close the window rather than Queue OK because the OK causes the button pressed to become the OK button.
wPromptShell/$setButtons (2008-05-03 Doug K per Chuck Martin.)
Set the current line after adding a line to the buttons list. Return kTrue at the end of the method.
wSearchbar_abstract/$initialize (2008-06-18 Doug K.)
If there are no 'includeinsearches' columns found, get the 'includeinlists' columns, and if still nothing get the not('hidden') columns.
wSearchbar_abstract/$initialize (2008-07-01 Doug K.)
Set the 'label' column text to the current oStringTables translated value for the column.
wSearchbar_abstract/$setEntryField (2008-09-30 Doug K.)
Set the checkbox field $left to match the entry field $left.
wSearchbar_abstract/$setOperatorList (2008-06-18 Doug K.)
Add FlagOK variable and default to true. The iOperatorList could be empty if there are no search columns specified in the meta-data.
wSignIn/$#About (2008-07-25 Doug K per Mike Matthews.)
Created wSignIn as a subclass of the new wSignIn_abstract. This window class can be copied to the developer's main library and modified.
wSignIn_20071124/event_evClick (2008-05-08 Doug K.)
Changed 'languagecolname' to 'languageid' and stb.$:LanguageColName to $:LanguageID
wSignIn_20080725/$signIn (2008-06-18 Doug K.)
Add initialize security object AFTER successful logon to the database. Because security gets the users from the database we have to after logon to initialize the security object.
wSignIn_abstract/$#About (2008-07-25 Doug K per Mike Matthews.)
Created wSignIn_abstract with just the signin class methods...no fields. This will allow developers to copy wSignIn from swGui4 to their main library and modify the GUI for their own app while still using the sw signin window methods.
wSignIn_abstract/$event_evClick_LanguagesDropList (2008-07-25 Doug K.)
Moved private field method to public class method so it can be used by the subclass.
wSignIn_abstract/$event_evClick_SessionsDropList (2008-07-25 Doug K.)
Moved private field method to public class method so it can be used by the subclass.
wSignIn_abstract/$signIn (2008-06-18 Doug K.)
Add initialize security object AFTER successful logon to the database. Because security gets the users from the database we have to after logon to initialize the security object.
wToolbar/$addButton (2008-06-16 Doug K.)
Set button $mouseevents property to true. (So that $mouseevents does not have to be set to kTrue in the library prefs.)
wToolbar/$addMenu (2008-06-16 Doug K.)
Set button field $mouseevents property to true. (So that $mouseevents does not have to be set to kTrue in the library prefs.)
wToolbar/$initializeButtons (2008-07-0-21 Doug K.)
In some cases the wToolbar subwindow starts out with a $height of 1, but then is set to a different height later. Move the vertical toolbar checking and setting code to the $resize method.
wToolbar/$resize (2008-07-0-21 Doug K.)
In some cases the wToolbar subwindow starts out with a $height of 1, but then is set to a different height later. Move the vertical toolbar checking and setting code to the $resize method.
wToolbar/setVertToolbarButtons (2008-09-10 Doug K per Chuck M.)
For vertical scrollbar, hide the underline line.
wWindowInstancesListEditor/$openWindow (2008-05-05 Doug K.)
Check if the window is an 'edit', 'editnew', or 'new' wintype and if so send a $newRecord message to the current subwin, first test with $cando This makes it possible to directly test and edit/new window instance.
wWindowInstancesListEditor_View/doesDeveloperizedWinClassExist (2008-07-21 Doug K.)
Added method to check if a developer class already exists. Use to prompt developer before re-developerizing a window class.
oRefs/$retRefsDataTypesList (2008-09-22 Doug K per Andy H.)
Name the first column 'DataType' instead of 'RefsDataType'.
oRefs/$retRefsDataTypesList (2008-10-07 Doug K.)
Add Row and Binary datatypes to the list.
oRefs/$saveRefsRecord (2008-05-05 Doug K per Chuck Martin.)
Bug fix. Changed 'Calculate Row as Row' to 'Calculate Row as pfRefsRow'.
oRefs/$saveRefsRecord (2008-05-16 Josh L.)
Commented out lines to assign Row as pfPrefsRow because it is done earlier and if done here will erase any defaults set.
tRefs/$setRefsDisplayTextColumn (2008-10-07 Doug K.)
Fixed code to correctly calculate the RefsDisplayText and clean up the RefsDataType value if it is prefixed with 'Refs'
oReportInstsList_Model/$saveChangedData_commit (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oReportInstsList_Model/$saveChangedData_manualtrans (2008-08-19 Doug K.)
Added method to allow sender to specify when to save changed data and whether or not to commit saves.
oReportInstsList_Model/$saveChangedData_rollback (2008-08-19 Doug K.)
Added method to allow sender to rollback any changes.
oReportInstsList_Model/loadModuleData (2008-07-16 Doug K.)
Added method which loads the reports lists from the module data objects.
oReportInstsList_Model/loadModuleData (2008-08-19 Doug K.)
Set the data list to $smartlist=kTrue.
oReportInstsList_Model/saveChangedData (2008-08-19 Doug K.)
Modified the method to work with pbAutoCommit.
oReports/$:LanguageID.$assign (2008-05-08 Doug K.)
Deprecated $:LanguageColName. Added $:LanguageID property method.
oRemoteTaskMethods/initialize_mn (2008-07-16 Doug K.)
Eliminate the parameters no longer needed for sending to oMenus.
oRemoteTaskMethods/initialize_rprts (2008-07-16 Doug K.)
Simplified the call to initialize oReports. It no longer requires parameters.
This release introduces a few significant structural changes to the framework.
Upgrading to this version of StudioWorks will require some changes to existing StudioWorks applications... but the gains should be worth the pains. If you run into difficulties upgrading you app to this version, zip the app and send it to me with an email explaining the problems you are running into.
To update to this new release:
This section covers upgrading your existing StudioWorks app to this new release.
I got tired of requiring StudioWorks developers to copy the oPaths object class to their main library everytime a new method, enhancement, or fix is made to the oPaths object. Several changes to oPaths were made in this release for the unicode version of Omnis Studio. With this release I've reworked the main library methods to make it possible to subclass oPaths_studioworks from swBase4 to your main library.
In previous versions we used oPaths to tell us the path to the studioworks folder, and then we would open the StudioWorks libraries. This meant that oPaths could not be subclassed from swBase4. This release introduces a self contained oOpenLibraries object who's sole purpose is to find and open the App libraries and find and open the studioworks folder libraries. As soon as swBase4 is open the main library oPaths has its superclass and is ready to use. Under the new structure any code fixes or new method I add to oPaths_studioworks in swBase4 are automatically inherited by the oPaths object in your main library. If a code change or fix is made to oOpenLibraries you will only need to replace that object, which I doubt you will ever need to customize.
This section assumes you have already completed the previous steps in .
To upgrade your existing application code from oLogon to oDBSession:
Startup_Task/$#About (2008-04-14 Doug K.)
Added 'db1sess' tvar and 'db2sess' tvar to the Startup_Task.
Startup_Task/$closeDemoLibraries (2008-04-18 Doug K.)
Send message to 'pths' rather than ioPaths. Delete ioPaths ivar.
Startup_Task/$construct (2008-03-12 Doug K.)
Call the oOpenLibraries object method rather than the Startup_Task method to open the App and StudioWorks libraries. oOpenLibraries is a self-contained object, allowing oPaths in the main library to subclassed from swBase4 rather than copied, making updates affecting oPaths much easier in the future.
Startup_Task/setErrorHandlerDatabaseSession (2008-04-02 Doug K.)
Use the DB session object reference to set the database session in the error handler, rather than the session row.
oOpenLibraries/$#About (2008-03-12 Doug K.)
Created a standalone 'oOpenLibraries' object class to be copied to the main library and called at the start of the $construct method of the Startup_Task. The object has 2 methods: $openAppLibraries and $openStudioWorks libraries. If an error occurs it is sent to the trace log and the trace log is opened.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oSecurity_DBAccessor/$:GroupsList (2008-03-31 Doug K.)
Removed early exit.
oSecurity_DBAccessor/$:GroupsList (2008-04-18 Doug K.)
Changed 'Grp' table name to 'grp'. Changed 'Grp_pkey' column name to 'grp_pkey'.
oSecurity_DBAccessor/$:UsersList (2008-03-31 Doug K.)
Removed early exit.
oSecurity_DBAccessor/$:UsersList (2008-04-18 Doug K.)
Changed 'Usr' table name to 'usr'. Changed 'Usr_pkey' column name to 'usr_pkey'.
oSecurity_DBAccessor/$initialize (2008-03-31 Doug K.)
Do not define the users and groups lists until they are requested.
oSecurity_DBAccessor/$updateGroup (2008-03-31 Doug K.)
Send $retDefinedList message to oSQLLists to define the DBUsersList rather than copying from iDBUsersList as it might not be defined.
oSecurity_DBAccessor/$updateGroup (2008-04-18 Doug K.)
Changed 'Grp_pkey' column name to 'grp_pkey'.
oSecurity_DBAccessor/$updateUser (2008-03-31 Doug K.)
Send $retDefinedList message to oSQLLists to define the DBUsersList rather than copying from iDBUsersList as it might not be defined.
oSecurity_DBAccessor/$updateUser (2008-04-18 Doug K.)
Changed 'Usr_pkey' column name to 'usr_pkey'.
Startup_Task/$#About (2008-04-01 Doug K.)
Added tvar db1sess which points to oDBSession
Startup_Task/$#About (2008-04-01 Doug K.)
Took out the test $construct code which was allowing swBase4's Startup_Task to remain open. Reverted to immediately closing the swBase4 task instance.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
Startup_Task_Module_template/$#About (2008-04-16 Doug K.)
Deleted 'logn' tvar. Added 'db1sess' tvar. Deleted 'timers' tvar.
mContext/$control (2008-04-25 Doug K.)
Copied the $control method from mContext in swGui4.
oAppPrefs/$#About (2008-04-16 Doug K.)
Added sCachedlist_listdef for creating the Cachedlist table using oDBAdmin.
oAppPrefs/$initialize (2008-04-16 Doug K.)
Change 'Do inherited' to 'Do $cinst.$inherited.[$cmethod().$name]' for easier debugging, stepping through code.
oCachedListsUpdater/$#About (2008-04-24 Doug K.)
Added an object class that specialized in getting and setting values in all of the StudioWorks cached lists. This object is used to instantly access and update the cached lists as changes are made in the Programmers Workbench.
oCheckData_base/$#About (2008-04-04 Doug K.)
Added oCheckData_base which can be subclassed to oCheckData_Tablename for custom check data methods.
oCheckData_base/$#About (2008-04-29 Doug K.)
Added missing sDatamssg_stb schema class for the check data messages.
oCreateTablesOwnerLogonFile/$#About (2008-04-19 Doug K.)
Created an object class which specialized in creating the tables owner logon file. The method can now be called from the 'Create Tables Owner Logon File' button in the Sessions Manager edit window.
oDBAdmin/$setUserPassword (2008-04-28 Doug K.)
Added $setUserPassword method for compatability with previous releases. The method simply returns kTrue.
oDBAdminMethods_OMNIS/$renameTable (2008-04-16 Doug K.)
Modified the Omnis data file $renameTable method so that it successfully renames the slot.
oDBAdminMethods_OMNIS/$renameTable (2008-04-16 Doug K.)
The trick was to create file classes for the old and new slot before rename the slot.
oDBAdminMethods_abstract/$#About (2008-04-08 Doug K.)
Massive changes to work with the oDBSession objects. Too many changes to note. This is a complete refactoring. Previous @MOD notes have been removed. This is a fresh start.
oDBAdminMethods_abstract/$#About (2008-04-08 Doug K.)
Moved all 'superuser' and 'users' related methods to the new 'oDBAdminUsers' objects. This simplifies the oDBAdminMethods objects allowing them to specialize on tables, columns, indexes, constraints. FrontBase and SQLServer are the only DBMS vendors we've written 'user' related code for. The Omnis data file doesn't support 'users'. To date 'users' related code has only been written FrontBase and SQLServer. The Omnis data file doesn't support 'users'.
oDBAdminMethods_abstract/$closeSession_TablesOwner (2008-04-28 Doug K.)
Delete the ioTablesOwnerDBSession object ref each time the session is closed.
oDBAdminMethods_abstract/$insertEmptyRecords (2008-04-08 Doug K.)
Pass in the oDBSession object rather than the session row to $retDefinedList
oDBAdminMethods_abstract/$openSession_TablesOwner (2008-04-28 Doug K.)
Set the ioTablesOwnerDBSession object ref $newref each time the session is opened. An object ref is needed so that ioTableOwnerDBSession can be passed to $retDefinedList.
oDBAdminMethods_abstract/$retDAMColsList (2008-04-28 Doug K.)
Using the new oDBSession object to return the table columns list so all the code is in one place
oDBAdminMethods_abstract/$retDAMTablesAndViewsList (2008-04-28 Josh L.)
Using the new oDBSession object to return the tables list so all the code is in one place
oDBAdminSQLText_MYSQL/$retSQL_CreateTable (2008-03-14 Doug K.)
Reversed the @MOD:1 change. Table names are case-sensitive in other SQL statements as well on the Linux platform. Therefore it is up to the developer to use all lower case names in their schema classes to avoid the mysqldump problems. I recommend you include "lower_case_table_names = 1" in the MySQL my.cnf file.
oDBAdminSQLText_abstract/$#About (2008-04-08 Doug K.)
Removed all of the 'user' related SQL text methods. Moved the code to the applicable oDBAdminUsers subclass objects.
oDBAdminSQLText_abstract/$_retDefinedList (2008-04-04 Doug K.)
Added new method which binds the list to the schema class. No need for a table class for this object.
oDBAdminSQLText_abstract/$initialize (2008-04-08 Doug K.)
Discovered that we don't need a 'live' logged on session object for the oDBAdminSQLText methods. Modified the initialize method to set ioSessObj to a static session external object. Parameter changed to pDAMName.
oDBAdminSQLText_abstract/$retSQL_CreateTable (2008-04-08 Doug K.)
Call the new $_retDefinedList method.
oDBAdminSQLText_abstract/$retSQL_SQLDataType (2008-04-08 Doug K.)
Call the new $_retDefinedList method.
oDBAdminUsers/$#About (2008-04-08 Doug K.)
Moved all of the 'database users' related DBAdmin methods to a separater set of oDBAdminUsers set of classes.
oDBAdminUsers_abstract/$#About (2008-04-08 Doug K.)
Moved all 'database users' releated methods from oDBAdminMethods to oDBAdminUsers series objects.
oDBSessionMethods_PGSQLDAM/$tables (2008-04-28 Josh L.)
PGSQLDAM wasn't returning the correct list for kStatementServerAll (0) so to get around that, I accumulated the list of tables and views to make the correct list
oDBSessionMethods_base/$columns (2008-04-28 Doug K.)
Added check to make sure pTableName is not empty.
oEmail/$initialize (2008-03-07 Doug K.)
If a password is provided, automatically set ibUseAuthentication to true.
oEmail/pingSMTPServer (2008-03-07 Doug K.)
Loop the TCPReceive multiple times till we get something into the buffer.
oErrorHandler/$setDatabaseSession (2008-03-14 Doug K.)
Changed the $servertablename in 'sErrorlog' to lowercase 'errorlog'. Lower case table names work best with all databases.
oErrorHandler/$setDatabaseSession (2008-04-02 Doug K.)
Change parameter to pfDBSessionObjectRef from pSessionRow and modify the method to use the new DBSession object.
oErrorHandler/_openDatabaseErrorLogViewer (2008-04-01 Doug K.)
Pass ioDBSessionObjectRef rather than iSessionRow to $retDefinedList
oFunctions/$retListFromTextString (2008-03-10 Doug K per Josh L.)
Added replaceall for kCr+kLF and then kLf for cross-platform compatibility.
oObjectClassErrorHandlerMethods/$#About (2008-03-19 Doug K.)
Added an error handler template methods object class. The methods can be copied to objects which can operate independent of oErrorHandler and 'errhndlr'.
oOpenLibraries/$#About (2008-03-12 Doug K.)
Created a standalone 'oOpenLibraries' object class to be copied to the main library and called at the start of the $construct method of the Startup_Task. The object has 2 methods: $openAppLibraries and $openStudioWorks libraries. If an error occurs it is sent to the trace log and the trace log is opened.
oOpenLibraries/retPathOmnisStartupFolder (2008-03-12 Doug K.)
Call ioPaths_PlatformFolders to get the 'Application' or 'Program Files' folder path.
oPaths_StudioWorks/$:ERRORSTOTRACELOG (2008-03-17 Doug K.)
Deprecated $:ErrorsToTraceLog methods. oPaths_ automatically tests the errhndlr tvar with $cando and sends to trace log if it can't.
oPaths_StudioWorks/$:PathApplicationsFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathOmnisStartupFolder (2008-03-12 Doug K.)
Call ioPaths_PlatformFolders to get the 'Application' or 'Program Files' folder path.
oPaths_StudioWorks/$:PathOmnisStudioFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathProgramFilesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathTempFilesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserDesktop (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserDocuments (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserHome (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserPreferencesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$_logError (2008-03-17 Doug K.)
Call private method 'logError' which automatically tests errhndler and automatically sends error to trace log if errhndlr is not available.
oPrefs_abstract/$#About (2008-04-16 Doug K.)
Switch from using oLogon to oDBSession. Use oDBAdmin for creating tables so that switch/case is not required for different DBMSs.
oPrefs_abstract/$_init_preparePrefsTable (2008-04-16 Doug K.)
Use 'sPrefstable_listdef' and oDBAdmin to get the CREATE TABLE text instead of Switch/Case in this method.
oPrefs_abstract/$_init_preparePrefsTable (2008-04-16 Doug K.)
Check for exact case match table name for Omnis data file. Rename if the case does not match.
oPrefs_abstract/$_retSQLText_CreateTable (2008-04-16 Doug K.)
Added method which prepares the CREATE TABLE text using sPreftable_listdef and oDBAdmin.
oPrefs_abstract/$initialize (2008-04-16 Doug K.)
Check the session row, if the DAM is OMSQLDAM, then make sure the df1 file has been created.
oPrefs_abstract/$initialize (2008-04-18 Doug K.)
Expand the code which calculates the table name based on the schema class name. Go with a lower case table name.
oPrepareNewDatabase/$#About (2008-04-15 Doug K.)
Rewrote the object after overhauling the oDBSession, oDBAdmin, tBase, oPrimaryKeys, oRefs classes in StudioWorks.
oRebuildCachedLists/rebuildRefs (2008-04-02 Doug K.)
Use db1sess instead of logn task variable.
oSQLChildRecords/$DELETECHILDRECORDS (2008-04-07 Doug K.)
Deprecated the $deleteChildRecords method. Superceded by the $deleteCascadeDeleteChildRecords method.
oSQLChildRecords/$deleteCascadeDeleteChildRecords (2008-04-07 Doug K.)
Added a method which will very quickly delete any cascadedelete child records using a statement object and minimal SQL.
oSQLChildRecords/$doesRestrictedDeleteChildRecordExist (2008-04-07 Doug K.)
Added a method which will very quickly find the first cascadedelete child record using a statement object and minimal SQL.
oSQLLists/$:DEFAULTSESSIONROW.$assign (2008-03-31 Doug K.)
Deprecated the $:DefaultSessionRow.$assign method. Superceded by the $:DefaultDBSessionObjectRef.$assign method.
oSQLLists/$:DefaultDBSessionObjectRef (2008-03-27 Doug K.)
Added method for the new oDBSession classes structure.
oSQLLists/$:DefaultDBSessionObjectRef.$assign (2008-03-27 Doug K.)
Added method for the new oDBSession classes structure.
oSQLLists/$SETTABLESESSIONROW (2008-04-01 Doug K.)
Deprecated the $setTableSessionRow method.
oSQLLists/$initialize (2008-03-27 Doug K.)
Added 'sessionobjectref' column to the SQL lists master list. Set the $coltype to kObjectref. This column is used to store the object reference to the session object of any SQL classes that are to use a different session than the default session.
oSQLLists/$retDefinedList (2008-03-31 Doug K.)
Added code to use the oDBSession object reference. The method still supports previous versions using the session row.
oSQLLists/$setTableDBSessionObjectRef (2008-04-01 Doug K.)
Added a method to set the 'dbsessionobjectref' column to a specified 'oDBSession' object reference for a specified table.
oSQLLists/retDefinedListForCurrLine (2008-04-02 Doug K.)
Moved initialization of the defined list to the $retDefinedList method.
oSQLTextJoinTables/retFromTableJoinText (2008-04-24 Doug K. per Andy H.)
Include the table name prefix for all column names, not just non-unique column names. Left a hook for the option to change back in the future, by setting ibAlwaysIncludeTableNamePrefix.
oSecurity/$addDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
oSecurity/$addDefaultSysAdminUser (2008-04-23 Doug K.)
Call $setDefault to make sure the 'usr' columns are set properly.
oSessionsManager/$#About (2008-04-10 Doug K.)
Removed the $openSession and $pingDatabase methods from this object. Those are better handled by oDBSession. Removed the $retOpenSessions method. With session pools session we can't 'see' the sessions anymore.
oSessionsManager/$:DefaultSessionRow (2008-04-09 Doug K.)
Added 'pingtimeoutseconds' column and default to 5 seconds. The 'pingdbserver' column is deprecated.
oStartupTaskDefaultMethods/$logoffDatabase (2008-04-14 Doug K.)
Removed code dealing with a separate 'Refs' session.
oStartupTaskDefaultMethods/autoSignIn (2008-04-19 Doug K.)
Switch to setting the oSQLLists $:DefaultDBSessionObjRef rather than the session row.
oStartupTaskVarsTool/$#About (2008-04-14 Doug K.)
Removed initialization of the oLogon object. Now using oDBSession object.
oStartupTaskVarsTool/$INITIALIZEERRORHANDLER (2008-04-14 Doug K.)
Deprecated the $initializeErrorHandler method.
oStartupTaskVarsTool/$INITIALIZE_LOGN (2008-03-25 Doug K.)
Moved all of the code which figured out the starting session row to a separate method, retStartupSessionRow. so that the code can be used by the new tvar 'db1sess'.
oStartupTaskVarsTool/$_initializeAppPrefs_localdatafile (2008-04-16 Doug K.)
Revised the method so that it passes an OMNISQLDAM sessionrow to oAppPrefs, rather than the path name.
oStartupTaskVarsTool/$_pingVar (2008-03-25 Doug K.)
Added $cando test to avoid notation errors. Removed the OK message as this object is non-visual.
oStartupTaskVarsTool/$constructTaskVars (2008-03-25 Doug K.)
Added 'db1sess' and 'db2sess' to the tvars string.
oStartupTaskVarsTool/$initializeBeforeSignIn (2008-03-25 Doug K.)
Added called to $initialize_db1sess, removed the call to $initialize_logn
oStartupTaskVarsTool/$initialize_db1sess (2008-03-25 Doug K.)
Added new method to initialize the new 'db1sess' task variable if it exists.
oStartupTaskVarsTool/$initialize_local_prefs (2008-03-24 Doug K.)
Check for the unicode version of Omnis Studio, if so, set the local prefs data file name to 'local_prefs_unicode.df1' The local prefs data file is in a common location which could be opened by both unicode or non-unicode versions of the app, so it is important to have separate data files for each or the non-unicode version will fail after the unicode version opens the df1 file.
oStartupTaskVarsTool/$initialize_local_prefs (2008-04-16 Doug K.)
Revised the method so that it passes an OMNISQLDAM sessionrow to oAppPrefs, rather than the path name.
oStartupTaskVarsTool/$initialize_lsts (2008-03-31 Doug K.)
Added setting the $:DBSessionObjectRef if the db1sess.$validref.
oStartupTaskVarsTool/$initialize_refs (2008-04-14 Doug K.)
Initialize the Refs object by passing in the 'db1sess' object rather than a session row.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-03-31 Doug K.)
Check and use the 'db1sess' tvar rather than 'logn' if it exists.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-04-16 Doug K.)
Set the session object ref rather than the session row in the oSQLLists object.
oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn (2008-03-31 Doug K.)
Removed 'logn' based code, replaced with 'db1sess' based code. If 'db1sess' is a validref, then check $state with 'db1sess'.
oStartupTaskVarsTool/retStartupSessionRow (2008-03-24 Doug K.)
To avoid initialization error, check the 'damname' in the session row, if not set, default it to OMSQLDAM.
oStringTables/$#About (2008-04-29 Doug K.)
Overhauled oStringTables to use stringtable file name suffixes. e.g. stringtable_it.txt, stringtables_fr.txt Only the language columns specified by the string table file name suffix will be loaded, others will be ignored. Only exceptions for each additional language need to be included in the string table file. Overhauled oStringTables to save and load database string table lists separately for each language. Only exceptions for each additional language need to be included in the string table saved to the database. Added 'source' column to master list for each language. This tells where the language text came from. Examples of text sources: stringtable_de.txt, database, myAppMain.sMn_stb,
oStringTables/$:LanguagesList_Database (2008-04-30 Doug K.)
Added a property method which returns a list of the string tables languages stored in the database.
oStringTables/$:LanguagesList_TextFiles (2008-04-30 Doug K.)
Added a property method which returns a list of the string tables languages in text files in the startupitems folder.
oStringTables/retStringTablesListFromTextFile (2008-04-29 Doug K.)
Modify the method to remove 'other' language columns, and add a 'source_*' column.
oTableClassMethods_MYSQL/$setPrimaryKey (2008-04-14 Doug K.)
Overrode the $setPrimaryKey method. Check for manual transactions, if so temporarily open an automatic transactions session and pass a statement object from that session to the oPrimaryKey.$getNextPrimaryKey method.
oTableClassMethods_base/$_retSelectWhereSQLText (2008-04-25 Doug K.)
Added setting iExtraBindRow reference in the tBase table class if the extra bind row is used.
oTableClassMethods_base/$_retSelectWhereSQLText (2008-04-29 Josh L.)
Changed ExtraQueryText to ExtraSQL so the column numbers will be processed correctly.
oTableClassMethods_base/$dodeletesBatch (2008-04-07 Doug K.)
Reworked the method so that is only looks for one non-cascadedelete record, and if one is found, logs a check data error.
oTableClassMethods_base/$getActiveRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getAllRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getOperatorRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getPrimaryKeyRecord (2008-04-30 Doug K.)
Added error checking/loging to $select and $fetch.
oTableClassMethods_base/$getWhere (2008-04-29 Doug K.)
Log SQL error if fetch error.
oTableClassMethods_base/$initialize (2008-04-23 Doug K.)
Use the cap() of the table name when looking classname suffix on the oCheckData_Tablename object.
oTableClassMethods_base/$insertEmptyRecord (2008-04-28 Doug K.)
Refactored the method in an attempt to make it stronger.
oTableClassMethods_base/$selectCustom (2008-04-29 Josh L.)
Added a parameter pExtraSQLRowOrString so that GROUP BY, HAVING, etc could be used. Modified the code to process and include it in the right place
oTableClassMethods_base/$selectWhere (2008-04-29 Doug K.)
Added log SQL error because the $sqlerror method has been overridden in tBase to allow $fetchBatch to intercept an error and attempt to retry the select fetch.
oTableClassMethods_base/$setDefaults (2008-04-24 Doug K.)
Added error check on the return value from the ref.$retNextCounterNum
oTableClassMethods_base/$updateRow (2008-04-24 Doug K.)
Bug fix. Change $insertnames to $updatenames
owcStringTablesSchemasEditor/$addNewLine (2008-04-29 Doug K.)
Added method to add a new line. Called by the context menu.
owcStringTablesSchemasEditor/saveColsListChanges (2008-04-29 Doug K.)
Set the colident value after adding a new row to the schema class.
tBase/$_setTableClassExtraBindRowRef (2008-04-25 Doug K.)
Added method for setting the iExtraBindRow reference in the tBase table class if the extra bind row is used.
tBase/$selectCustom (2008-04-29 Josh L.)
Extra SQL so GROUP BY, HAVING can be used
wDBAdmin/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminConstraints/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminDataMover/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin.
wDBAdminDataViewer/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminDataViewer/setDisplay (2008-04-23 Doug K.)
Add exception for OMSQLDAM which doesn't return $rowcount from the statement object.
wDBAdminIndexes/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminInteractiveSQL/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminPrimaryKeys/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSchemas/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSyncDatabaseToSchemas/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSyncUsers/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdminUsers rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminTables/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdmin_abstract/$#About (2008-04-11 Doug K.)
Remove $setDBAdminRef methods and irDBAdmin ivar. Subwindow switched to having their own instance of ioDBAdmin.
wSQLMetaDataColsEditor_abstract/$_fixNullValues (2008-04-29 Doug K.)
Added check for $linecount to prevent infinite loop.
wSQLQueryBuilder/$destruct (2008-04-11 Doug K per Matthias H.)
Changed Queries treelist container so that it can be resized. Added code to save the width to the class on $destruct
wSQLQueryBuilder/addSchemaCols (2008-03-18 Doug K.)
Set LineNum var to pLineNum so that drag and drop for schemas list ends up in the dropped location.
wSQLQueryBuilder/addSchemaCols (2008-03-24 Doug K. per Chuck M.)
Loop through the drop list from end to start so that columns are added in the right order.
wSecurityTimeoutSignIn/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wSessionEdit/$#About (2008-04-10 Doug K.)
Complete overhaul of the session edit subwindow. Made it 'dumb'. Moved the intelligence to the parent window.
wSessionEdit/createTablesOwnerLogonFile (2008-04-19 Doug K.)
Added button and method to wSessionEdit to create a tablesowner logon file.
wSessionList/$#About (2008-04-10 Doug K.)
Overhauled the session lists window. Made it 'dumb'. Move the smarts to the parent.
wSessionPicker_abstract/$#About (2008-04-12 Doug K.)
Created superclass for the session picker series windows.
wSessionsManager/$#About - Sessions Manager (2008-04-10 Doug K.)
Total overhaul of the sessions manager windows. Removed the 'Open Sessions' tab. Session pool sessions are hidden, so there isn't much purpose in having this tab. Removed the 'Open Sessions' tab. Session pool sessions are hidden, so there isn't much purpose in having this tab. Changed the window behavior so that the user is always in edit mode and that changes are automatically saved. Users are no longer required to first press Edit, then Save, before they can Test a session. Changed the parent/subwin structure so that the sessions list is in the parent and the subwindows reference the parent list.
@00 User Documentation/@00 About (2008-03-18 Doug K.)
Added StudioWorks documentation target to end users of applications written using the StudioWorks framework.
@20 Converting Data/@11 Data Converter Demo (2008-04-28 Doug K.)
Added documentation on the new 'db2sess' myDataConverterDemo library.
@20 Converting Data/@15 Data Converter Instructions (2008-04-29 Doug K.)
Added instructions for setting up the data converter library.
@20 Converting Data/@21 Data Conversion Advice (2008-04-28 Doug K.)
Added data conversion advice documentation.
@20 Quick Start Tutorial/@07 Adding a Table (2008-03-24 Doug K per Matthias H.)
Removed the reference to the 'Collate-case-insensitive' checkbox. This has been removed from the meta-data editor.
@20 Quick Start Tutorial/@12 Adding a Child Table (2008-03-24 Doug K per Matthias H.)
Removed the reference to the 'Collate-case-insensitive' checkbox. This has been removed from the meta-data editor.
@31 Database Sessions/@00 About (2008-03-25 Doug K.)
Added documentation on the new oDBSession series of objects which replace the oLogon series objects.
@50 Field Handling/@00 About (2008-03-11 Doug K.)
Added documentation on the new field handling introduced 2008-03
@50 Lookups/@25 Intercepting Lookups (2008-04-29 Doug K.)
Added documentation for '$promptLookupRecordNotFound' method to intercept lookups.
@50 Lookups/@25 Intercepting Lookups (2008-04-29 Doug K.)
Added documentation for '$setMainListValues' method to intercept the field handler setting the main list values.
@61 Database Administration/@00 About (2008-04-17 Doug K.)
Added documentation on the DB Admin tools.
@61 Database Administration/@61 Interactive SQL (2008-04-16 Doug K.)
Added documentation for Interactive SQL window.
@72 Table Class Structure/@00 About (2008-04-02 Doug K.)
1 Added documentation on the oTableClassMethods_DBMSVENDOR series of object classes.
@85 Manual Transactions/@00 About (2008-03-24 Doug K per Chuck M.)
Modified sample code to set the transactionmode back to its original setting.
@85 Manual Transactions/@00 About (2008-04-02 Doug K.)
Updated the sample code to work directly with 'db1sess' instead of 'logn'.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar.
Startup_Task/$initialize (2008-04-29 Doug K.)
Renamed the swDocs4 startup_task $construct method to $initialize as it was causing startup trouble.
Startup_Task/$#About (2008-04-16 Doug K.)
Added the 'db1sess' tvar and removed the 'logn' tvar.
mCommands/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
mCommands/$construct (2008-04-28 Doug K.)
Default the mCommands menu to disabled shortcut keys for developers.
mMainMenu/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oConcretizer/$RUNTIMIZE (2008-03-24 Doug K.)
Get the field properties list from the oFieldHandlerPropertiesList object class of the new field handler classes.
oConcretizer/$addFieldsAndLabels (2008-03-24 Doug K.)
Use the new oFieldHandlerPropertiesList object to build the list.
oConcretizer/addWindowClass (2008-04-21 Doug K.)
Added 'Save class' command in an attempt to solve the problem with inconsistent runtimizing.
oConcretizer/createRuntimeWinClass (2008-04-21 Doug K.)
Added 'Save class' command in an attempt to solve the problem with inconsistent runtimizing.
oConcretizer/retDecoratorTypesList (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/retFieldHandlersFactoryRef (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/retFieldPropertiesList (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2008-03-24 Doug K.)
Remove early exits. Get the field properties list from the oFieldHandlerPropertiesList object class of the new field handler classes.
oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oFieldHandlerLookupTypeAhead/$control (2008-03-11 Doug K.)
Changed code from using On ev... to Switch pEventCode/Case ev.../Case ev.../End Switch. For easier formatting.
oFieldHandlerLookupTypeAhead/$control (2008-03-11 Doug K.)
If the user hits the return key in a lookup field with the lookup list open, discard the event and queue a tab + queue OK to cleaning finish the lookup and then do the default kReturn action.
oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2008-04-29 Doug K.)
Tighten up error checking in the method. Add a prompt last error so that lookup errors won't go unnoticed.
oMenus/$installMainMenu (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oReportsMenuObserver_abstract/$modifyReportProperties (2008-04-24 Doug K.)
Cleaned up error checking.
oWindows/$retWinTitle (2008-04-21 Doug K.)
Use the cap(BaseTable) for the stbid for the window instance title translation.
oWindows/checkRequiredProperties (2008-03-24 Doug K.)
Use mod() function to test for developer version. Removed early exits.
oWindows/setIconIDinRow (2008-04-24 Doug K.)
Added bLogErrors=kFalse to suppress errors which we don't care about.
wComplexGrid_abstract/$#About (2008-04-24 Doug K. per Josh L.)
Added wComplexGrid_abstract class. Copy the wComplexGrid_template to your application to use.
wComplexGrid_abstract/$_removeEmptyLines (2008-04-24 Josh L.)
Removed the body of this method because it could be dangerous to someone who doesn't know about it.
wComplexGrid_abstract/$_setMode (2008-04-21 Josh L.)
Changed from do inherited to the notation with the parameter
wComplexGrid_abstract/$_setNewLineDefaults (2008-04-24 Josh L.)
Added this method to set default on an Extend Event.
wComplexGrid_abstract/$new (2008-04-24 Josh L.)
Added the SetNewLineDefaults here so the defaults are set when a line is added.
wComplexGrid_template/$#About (2008-04-24 Doug K. per Josh L.)
Added wComplexGrid_template a subclass of wComplexGrid_abstract which you would copy to your application to use.
wComplexGrid_template/$event (2008-04-24 Josh L.)
Added the $_setNewLineDefaults method here to apply defaults when a line is added.
wEditList_abstract/$#About (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wEdit_abstract/$#About wEdit_abstract (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wHeadedList_autoconfig/$constructListObj (2008-03-15 Doug K. per Matthias H.)
Set ivar iText_yes for the treatasboolean column so that other languages can be used.
wHeadedList_autoconfig/buildListObjFromMetaData (2008-03-15 Doug K. per Matthias H.)
Use ivar iText_yes in the treatasboolean column rather than 'Yes', so that other languages can be used.
wList_abstract/$fetchRecords (2008-04-22 Doug K.)
Clean up FlagOK error handling. Get rid of promptonce last error.
wList_autoconfig/$find (2008-04-22 Doug K.)
Clean up FlagOK error handling.
wMainWindow/$eventClose (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wMainWindow_NoShowHideNavList/$eventClose (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wNavigationListEditor/$addWinInstIDs (2008-03-17 Doug K.)
Modify method to allow the user to add multiple wininstids to be added to the navigation list at once.
wNavigationListEditor/$addWinInstIDs_continue (2008-03-17 Doug K.)
Modify method to allow multiple wininstids to be added.
wPromptFindMultiCriteria_subwin/$#About (2008-03-11 Doug K.)
Deleted ivar ifld since it was not being used by this window.
wPromptModelessSubWin/$#About (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wPromptShell/$event (2008-04-10 Doug K.)
Make sure there is an OK button before setting the iButtonPressedNamed ivar.
wShell/$_flipSubWin (2008-03-24 Doug K per Andy H.)
Moved the prToWin.$eventShow to AFTER the prToWin.$visible kTrue to solve a problem with setting the scrollbars to redraw correctly.
wShell_Lookup/$showSubWin (2008-03-05 Doug K.)
Added $cando test before sending $:Mode message to the previous subwindow.
wSignIn/$construct (2008-03-24 Doug K.)
Use mod() function to test for runtime version.
wSignIn/$signIn (2008-03-24 Doug K per Matthias H.)
If the only session in the sessions list is the 'EditSessions' row, open the sessions manager window.
wSignIn/$signIn (2008-03-31 Doug K.)
Check for $validref of the 'db1sess' object. If it exists, nothing to do, otherwise set the $:DefaultSessionRow in oSQLLists.
wSignIn/_retUsersList (2008-04-23 Doug K.)
Changed from setting the default session row to setting the session object ref in 'lsts'.
wSignIn/insertDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
wSignIn/loadSessionsList (2008-03-24 Doug K per Matthias H.)
Get language translation for 'EditSessions'. Added 'EditSessions' to sMn_stb_SessionsManager
wSignIn_20071124/insertDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
wWindowInstancesListEditor/$event (2008-04-24 Doug K.)
Add a blank SQL class name line to the top of the list so that the user can clear the sqlclassname property.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oMenusList/$addNavigationMenuLines (2008-03-12 Doug K.)
Commented out the code which was adding the RefsList and RefsLookupList navigation menu items. These window instances are to be added by the developer's SysAdmin module.
oRefs/$#About (2008-04-14 Doug K.)
Overhaul the oRefs object so that it uses oDBSession instead of oLogon and only temporarily opens uses and close a second session for inserts/updates if the specified oDBSession is set to manual transactions.
oRefs/$:DBSessionObjectRef (2008-04-02 Doug K.)
Added new method to return the ioRefsDBSessionObjectRef.
oRefs/$:DBSessionObjectRef.$assign (2008-04-14 Doug K.)
Added new method to set the ioRefsDBSessionObjectRef.
oRefs/$destruct (2008-04-02 Doug K.)
Added $destruct method with code to $deleteref ioRefsDBSessionObjectRef
oRefs/$initialize (2008-04-16 Doug K.)
Receive the DBSession object reference rather than the session row as the parameter. Copy to ioRefsDBSessObjRef.
oRefs/$retListOfDatabaseStringTableLanguages (2008-04-29 Doug K.)
Added method which returns a list of the languages of string tables stored in the database (refs table).
oRefs/$retLookupList (2008-04-02 Doug K.)
Speed the method by just fetching the specified 'lookup' records, not all records. (Some of the other records have large blobs)
oRefs/$retNextCounterNum (2008-04-14 Doug K.)
Check the main session object if manual transactions, then open up our own session and assign it to the Refs Row variable.
oRefs/$retStringTablesList (2008-04-02 Doug K.)
Use ioRefsDBSessionObjectRef instead of ioRefsLogonObj.
oRefs/$retStringTablesList (2008-04-29 Doug K.)
Added pLangaugeID parameter. A stringtable refs records is stored for each language with just the exceptions for that language. The 'RefsSubGroup' column is used to store the pLanguageID.
oRefs/$saveRefsRecord (2008-04-14 Doug K.)
Check the main session object if manual transactions, then open up our own session and assign it to the Refs Row variable.
oRefs/$saveRefsRecord (2008-04-24 Doug K.)
Removed the calls to $_setFixNulls. We should not be calling protected methods.
oRefs/$saveStringTablesList (2008-04-29 Doug K.)
Added pLangaugeID parameter. A stringtable refs records is stored for each language with just the exceptions for that language. The 'RefsSubGroup' column is used to store the pLanguageID.
oRefs/$setCounterNum (2008-04-17 Doug K.)
Added method to allow a sender to set the counter number.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oHTMLTemplates/$:CSSLinks (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oRemoteTaskMethods/$initializeAllTaskVars (2008-04-02 Doug K.)
Added initialize 'db1sess' to the task vars to change/set to object reference type variables
oRemoteTaskMethods/$initializePublicSearchTaskVars (2008-04-02 Doug K.)
Added initialize 'db1sess' to the task vars to change/set to object reference type variables
oWebMonitor/$initialize (2008-04-02 Doug K.)
Modified the code to use 'db1sess' instead of 'logn'.
oWebMonitor/$retWebStatsList (2008-04-02 Doug K.)
Use 'db1sess' instead of 'logn'
rtDispatcher/$#About (2008-04-02 Doug K.)
Added 'db1sess' tvar.
This release is a maintenance release. No new features. Just bug fixes and some code cleanup.
To update to this new release:
Startup_Task/$closeApp (2008-02-06 Doug K.)
Added method which can be called by AutoUpdater to close the StudioWorks app and the StudioWorks core libraries.
oEmail/$:PingTimeout.$assign (2008-02-05 Doug K.)
Added method to allow developers to assign the $:PingTimeout value. If timeout is set to zero then this object skips pinging the server.
oEmail/$initialize (2008-02-05 Doug K per Andy H)
Call the method to define the enclosures list on initialization.
oEmail/$prepareEmail (2008-02-05 Doug K.)
Call oWebBrowser $createEmail, rather than $openURL. The $createEmailMethod has the smarts for proper formating, etc.
oEmail/$retEmptyEnclosuresList (2008-02-05 Doug K.)
Added method which returns a defined empty enclosures list.
oEmail/$sendEmail (2008-02-04 Doug K per Mike Matthews.)
Removed XtraHdrsList from the method. It is messing up HTML content and attachments.
oEmail/$sendEmail (2008-02-04 Doug K per Mike M.)
Added Priority and XtraHdrsList parameters to the non-authenticated SMTPSend. Set Priority to default to 3 (normal) instead of 5 (lowest priority)
oEmail/convertEnclosuresToMIMEList (2008-02-04 Doug K per Mike M.)
Added parameter 'base64' to the 'encoding' column value of each attached file added the MIMEList.
oEmail/convertEnclosuresToMIMEList (2008-02-05 Doug K based on Andy Hilton's code)
Added code to check for and add HTML to the email body if rawhtml is included in the enclosures list.
oEmail/defineEnclosuresList (2008-02-05 Doug K. per Andy H.)
Added method to define the enclosures list.
oEmail/pingSMTPServer (2008-02-05 Doug K.)
If the $:PingTimeout property method returns zero then skip pinging the service and return true.
oWebBrowser/$createEmail (2008-02-05 Doug K.)
Added encoding special character so that the subject and body appear correctly in the prepared email message.
wBase_ToolbarTitlebar_abstract/$_constructToolbar (2008-02-06 Doug K.)
Check the len(iWinsListRow.toolbarvisible) property. If empty default bToolbarVisible to true.
This release is a maintenance release. No new features. Just bug fixes and some code cleanup.
To update to this new release:
oAppPrefs/$_init_prepareCachedlistTable (2007-12-28 Doug K.)
Added case for PGSQLDAM to set the datatype to BYTEA instead of BLOB.
oAppleScripts/$#About (2008-01-02 Doug K.)
Created new object class for applescript methods.
oAppleScripts/$createAliasOnDesktop (2008-01-02 Doug K.)
Created method which creates an alias of any file or folder on the desktop.
oConstants/$:AppLibsList (2007-12-06 Doug K.)
Added option for 'demos' folder to be included inside the libraries folder.
oDBAdminMethods_POSTGRESQL/$retDAMTablesAndViewsList (2008-01-22 Doug K.)
Overrode PostgreSQL method to work around bug. kStatementServerAll only returns tables.
oDBAdminMethods_POSTGRESQL/$setPrimaryKeyCounterValue (2007-12-24 Doug K.)
Use low(TableName) to ensure consistency for the sequence field naming convention.
oDBAdminMethods_SQLSERVER/$_retFKeysList (20070601 whole method added by TBS)
oDBAdminMethods_abstract/$_copyTableData (2007-12-13 Doug K. per Josh L.)
Changed fetch from 1 to 5000. (Was at 1 for testing purposes, I forgot to switch back to 5000)
oDBAdminMethods_abstract/$copyData (2007-12-13 Doug K per Josh L.)
Added error checking for the schema class in case the library is closed or the schema class was removed.
oDBAdminMethods_abstract/$initialize (2008-01-22 Doug K.)
Moved $openSession towards top of the method and $closeSession to the end because some methods depend on an open session.
oDBAdminMethods_abstract/$retDAMTablesAndViewsList (2008-01-22 Doug K.)
Removed the SQLServer bug work around. The bug work around is in the overridden subclass method. Removed early exit and fixed the error message.
oDBAdminSQLText_SQLSERVER/$retSQL_GetFKeys (20070601 method added)
oEmail/$sendEmail (2008-01-21 Doug K.)
Carriage returns were getting messed up in the sent/received email. (Omnis 4.3 with Mac OS X 10.5) Switched to using MIMEList for all emails.
oEmail/$sendEmail (2008-01-30 Doug K.)
Check the MIMEList returned. If an error occurred the list will be undefined.
oEmail/convertEnclosuresToMIMEList (2008-01-30 Doug K. per Mike M.)
Bug fix. Changed pEnclosuresList.filename in the loop to EnclosuresList.filename. Added error checking and logging to the method.
oErrorHandler/$logSQLError (2007-12-13 Doug K.)
Removed $statementobject from the notation. (was accidentally copied from tBase $sqlerror method)
oFunctions/$deleteEnclosedFilesAndFolders (2007-12-18 Doug K.)
Added method which drills deletes enclosed files and folder inside a specified directory.
oFunctions/retEnclosedFoldersList (2007-12-17 Doug K.)
Added FileOps Tool method.
oPaths/$:OmnisName (2008-01-10 Doug K.)
Added assignable $:OmnisName property. This property method value will be used to replace the word 'Omnis' where ever it is used in a folder name by oPaths.
oPaths/$:PREFERENCESPARENTFOLDERNAME (2008-01-10 Doug K.)
Deprecated the $:PreferencesParentFolderName property methods in favor of the $:OmnisName property which has been added.
oPaths/$:PathApplicationsFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.
oPaths/$:PathOmnisSharedFolder (2008-01-10 Doug K.)
Added method to return path to 'Omnis Shared' folder, a subfolder of the 'Program Files' (Win) or 'Applications' (Mac) folder.
oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
If the 'Omnis Startup' folder is not found, automatically create it in the 'Program Files' or 'Applications' folder.
oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory... the tree which which we will search. This ensures that on Vista it will look through the real 'Program Files' directory for the Omnis Startup folder.
oPaths/$:PathOmnisStudioFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory. This ensures that on Vista that we will be in the real 'Program Files' directory for the Omnis Studio executable parent folder.
oPaths/$:PathProgramFilesFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.
oPaths/$:PathUserAppPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which returns the path to an 'AppName' folder located inside the $:UserOmnisPreferences folder.
oPaths/$:PathUserOmnisPreferencesFolder (2008-01-10 Doug K.)
Added $:UserOmnisPreferencesFolder method which returns the path to an 'Omnis' folder located inside the user preferences folder.
oPaths/$:PathUserPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which replaces this method. Redefined this method to return the path to the base user preferences folder.
oPaths/retApplicationsOrProgramFilesFolderPath (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.
oPrefs_abstract/$_init_preparePrefsTable (2007-12-31 Doug K.)
Added cases for MYSQLDAM and PGSQLDAM
oSQLLists/$:ForeignKeyColsList (2008-01-02 Doug K.)
Added parameter pbRebuildIfEmpty default kTrue so that $destructMethod of oStartTaskDefaultMethods can prevent rebuild on shutdown.
oSQLLists/buildForeignKeysList (2008-01-30 Doug K per Will Adkin)
Added 'cascadedelete' and 'listcolname' back to the foreign keys list. These are needed for the oSQLChildRecords object.
oSessionMethods_base/setUniqueSessionName (2007-12-13 Doug K.)
If the sessionname is empty use the first 5 letters of the damname + the first 7 letters of the database name. Use the rpos() function which was introduced in Omnis Studio v4.1
oStartupTaskDefaultMethods/_closeLibrariesInFolder (2008-01-22 Doug K.)
Added code to drill down recursively and close libraries in subfolders as well. Removed early exits.
oStartupTaskDefaultMethods/_openLibrariesInFolder (2008-01-22 Doug K.)
Removed early exits.
oStartupTaskDefaultMethods/autoSignIn (2008-01-02 Doug K.)
Continuing problems with the method stack. Use a timer object to call $signInOKContinue and clear the method stack and quit all methods.
oStartupTaskDefaultMethods/openLibraries (2007-12-06 Doug K.)
Just open libraries in the modules folder rather than the libraries folder. Allows for '/libraries/demos' folder to be left unopened.
oStartupTaskDefaultMethods/saveCachedLists (2008-01-02 Doug K.)
Added parameter bRebuildIfEmpty=kFalse to prevent rebuild of foreign keys list on $destructMethod.
oStringTables/loadStringTablesFromTextFile (2008-01-22 Doug K. per Andy H.)
Corrected the working message to text. Was 'Loading string tables from meta-data' s/b 'from text file'
oStringTables/retStringTablesFromTextFile (2008-01-22 Doug K.)
Bug fix. Moved the default FlagOK as true to the beginning of the method.
oTableMethods/$dodeletesBatch (2007-12-27 Doug K.)
Move $dodeletesBatch method to oTableMethods so that the method can be customized for different backends.
oTableMethods_FRONTBASE/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.
oTableMethods_FRONTBASE/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.
oTableMethods_MYSQL/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.
oTableMethods_MYSQL/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.
oTableMethods_POSTGRESQL/$checkfixSQLText_LIKE (2007-12-24 Josh L.)
Changed pfrTableClassInst to pfSQLText.
oTableMethods_POSTGRESQL/$dodeletesBatch (2007-12-27 Doug K.)
PostgreSQLDAM bug. Prepared statements are lost. Override superclass method and use $execdirect(SQLText) instead of $execute() in the loop.
oTableMethods_POSTGRESQL/$doinsertsBatch (2007-12-27 Doug K.)
Overrode the $doinsertsBatch method and use $execdirect instead of $execute() to work arounnd PostgreSQL bug which loses prepared statements.
oTableMethods_POSTGRESQL/$retNextPrimaryKey (2007-12-24 Doug K.)
Bug fix. len() test missing '=0' Bug fix. Changed sequence field name to con('pkeyseq_',low(basetablename)) to match the DBAdmin method that sets the pkey sequence counter.
oTableMethods_POSTGRESQL/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.
oTableMethods_POSTGRESQL/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.
oWebBrowser/$createEmail (2008-01-30 Doug K.)
Formatting problem fix. Replace special characters in the subject and body with ASCII hex escape characters. The format "mailto:PersonName <email@domain.com>" format was causing trouble. Extract and use the email address only.
tBase/$dodeletesBatch (2007-12-27 Doug K.')
Moved $dodeletesBatch to oTableMethods so that the method could be specifically modified for PostgreSQL
tBase/$dodeletesBatch_20071227 (2007-12-27 Doug K.)
Switched from $execute() to $execdirect(SQLText) to solve a PostgreSQL bug which loses the prepared SQL. This is a compromise on performance to solve the bug. When tBase is restructured this will be isolated to the PostgreSQL table methods object.
@20 Quick Start Tutorial/@07 Adding a Table (2008-01-30 Doug K per Andrew Pavey)
Added tip regarding the 'Class Filter (on)' in case a type of class can't be found.
@50 Observers/@00 About (2007-12-05 Doug K.)
Added a documentation on observers.
oPaths/$:OmnisName (2008-01-10 Doug K.)
Added assignable $:OmnisName property. This property method value will be used to replace the word 'Omnis' where ever it is used in a folder name by oPaths.
oPaths/$:PREFERENCESPARENTFOLDERNAME (2008-01-10 Doug K.)
Deprecated the $:PreferencesParentFolderName property methods in favor of the $:OmnisName property which has been added.
oPaths/$:PathApplicationsFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.
oPaths/$:PathOmnisSharedFolder (2008-01-10 Doug K.)
Added method to return path to 'Omnis Shared' folder, a subfolder of the 'Program Files' (Win) or 'Applications' (Mac) folder.
oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
If the 'Omnis Startup' folder is not found, automatically create it in the 'Program Files' or 'Applications' folder.
oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory... the tree which which we will search. This ensures that on Vista it will look through the real 'Program Files' directory for the Omnis Startup folder.
oPaths/$:PathOmnisStudioFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory. This ensures that on Vista that we will be in the real 'Program Files' directory for the Omnis Studio executable parent folder.
oPaths/$:PathProgramFilesFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.
oPaths/$:PathUserAppPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which returns the path to an 'AppName' folder located inside the $:UserOmnisPreferences folder.
oPaths/$:PathUserOmnisPreferencesFolder (2008-01-10 Doug K.)
Added $:UserOmnisPreferencesFolder method which returns the path to an 'Omnis' folder located inside the user preferences folder.
oPaths/$:PathUserPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which replaces this method. Redefined this method to return the path to the base user preferences folder.
oConcretizer/$createDeveloperWinClass (2007-12-04 Doug K.)
Save the developerized class to that it is permanently written to the disk.
oConcretizer/$createRuntimeWinClass (2007-12-04 Doug K.)
Save the runtime class to that it is permanently written to the disk. Josh was having problems with runtimized classes losing all their fields.
oMenus/$retNavMenusLinesList (2007-12-06 Doug K.)
Remove any menu lines where the homelibname library is not currently open.
oWindows/sortWindowsList (2007-12-04 Doug K.)
Use uppercase sorting.
owcWindowMenusListEditor/setDisplayFields (2008-01-22 Doug K.)
Added VCS warning if the sMn_stb schema class is not checked out in the same library as the observer's home library.
wBase_ToolbarTitlebar_abstract/$_constructToolbar (2008-01-30 Doug K. per Chuck Martin.)
Check the iWinsListRow.toolbarvisible property. If null default bToolbarVisible to true, otherwise use the toolbarvisible property.
wBase_abstract/$_retActiveCmndsList_winslist (2008-01-30 Doug K. per Josh L request.)
Added code to commands which have 'activemodescsv' property and are in the current mode.
wBase_abstract/$updateActiveCmnds (2008-01-30 Doug K per Josh L)
Removed the code which compared the old and new command factors row so that the 'activemodescsv' property would be respected. There might be a slight performance hit. One offset is that the $:CmdFactorsRow property method is no longer called by this method.
wContainer_List_ListChildren_abstract/$setupWindow (2008-01-22 Doug K per Andy H)
Bug fix. Changed rswListChild to irswListChild. (missing the 'i')
wContainer_abstract/$_constructToolbar (2008-01-30 Doug K. per Chuck Martin.)
Check the iWinsListRow.toolbarvisible property. If null default bToolbarVisible to true, otherwise use the toolbarvisible property.
wContainer_abstract/$_retActiveCmndsList_winslist (2008-01-30 Doug K. per Josh L request.)
Added code to commands which have 'activemodescsv' property and are in the current mode.
wContainer_abstract/$updateActiveCmnds (2008-01-30 Doug K per Josh L)
Removed the code which compared the old and new command factors row so that the 'activemodescsv' property would be respected. There might be a slight performance hit. One offset is that the $:CmdFactorsRow property method is no longer called by this method.
wPromptFindMultiCriteria/$initialize (2007=07-11 Doug K.)
Check the columns for hasfetchall and add if required.
wTotals/addField (2008-01-30 Doug K per Chuck M.)
Set $horzscroll to kFalse, just to be sure. If set to true with kRightJst the text will not be visible.
oReportBuilder/$createReportClass (2008-01-22 Doug K. per Andy H.)
Added code to check for an existing report instance and not bother to create a new report if one exists.
The following is a summary of the changes included in this release.
This release includes a series of terrific additions to the window which has now become command central for StudioWorks development. With this release if you make any changes using the the cached lists are dynamically updated. As long as you make changes which affect cached lists using the window you rarely have to rebuild lists!!
The following is a list of the new StudioWorks programmer tools and tools enhancements included with this release.
The following is a list of other significant modifications included with this release:
To update to this new release:
I came to the realization that the menus is only open when a normal StudioWorks window is on top. It is removed whenever an IDE window comes to the front. The shortcut keys in the menu defaulted to being disabled for developers. There is no reason to do this so I changed them to default to being enabled. If there is an mCommands menu class in your main library and it is not subclassed from swGui4 and you want your menu shortcut keys to default to being enabled for developers you can either delete the mCommands menu from your main library or:

As a long time Mac user I have always used Cmnd+. (period character) as the shortcut for the button in dialog windows. I just recently discovered the key does the same thing. Doh! Was the key on the original Mac classic keyboards?
mProgrammer/$#About (2007-11-01 Doug K.)
Deleted the menu item, Create/Update Default Schemas... The menu item is no longer used.
oDBAdmin/$#About (2007-11-23 Doug K.)
Changed to only opening sessions during a request is made through the bridge and immediately closing the session when the request is finished. This solves the problem of 3 or more sessions being opened at once by the oDBAdmin object. Deleted the $:TablesOwnerSessionObj and $:TablesOwnerStmntObj methods from the bridge. Added $openSession and $closeSession to each method in the bridge which requires a DBA session with the database.
oDBAdmin/$#About (2007-11-24 Doug K.)
Removed all of the 'clear logs' code from the implementor methods. Each bridge method first sends a $clearLogs message to the implementor, then calls the implementor method which matches the bridge method name.
oDBAdmin/$#Bridge Design Pattern - Bridge (2007-11-23 Doug K.)
Clarified the role of this object to be a 'Bridge Pattern' object. It is a bridge to the oDBAminMethods_ series of 'Implementor' objects. The bridge does not need to reveal all of the methods of the implementer. The bridge and implementors can be also subclassed to the main library where its methods can be overridden.
oDBAdminMethods_FRONTBASE/$_setUserDefaultSchema (2007-11-23 Doug K.)
Renamed to be a protected method.
oDBAdminMethods_FRONTBASE/$grantAllPrivilegesToUser (2007-11-23 Doug K.)
Renamed to protected method to avoid messing up sessions.
oDBAdminMethods_FRONTBASE/$retDAMIndexesList (2007-11-23 Doug K.)
Renamed to protected method to avoid messing up sessions.
oDBAdminMethods_FRONTBASE/$retForeignKeysList (2007-11-23 Doug K.)
Renamed to protected method so that sessions won't be affected.
oDBAdminMethods_FRONTBASE/$retUsersList (2007-11-23 Doug K.)
Renamed to be a protected method.
oDBAdminMethods_OMNIS/$syncDatabaseTablesToSchemas (2007-11-22 Doug K.)
Added audit for SQL reserved words to the method. Was missed because the superclass method had been overridden.
oDBAdminMethods_OMNIS/$syncDatabaseTablesToSchemas (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when a table is added or updated.
oDBAdminMethods_POSTGRESQL/$_retNextPrimaryKey (2007-11-21 Doug K.)
Overrode method for PostgreSQL
oDBAdminMethods_POSTGRESQL/$_syncNulls (2007-11-23 Doug K.)
Override $_syncNulls for PostgreSQL as it doesn't enforce NOT NULL as 'CHECK constraints'
oDBAdminMethods_POSTGRESQL/$retDAMIndexesList (2007-11-20 Doug K.)
Remove early exit.
oDBAdminMethods_POSTGRESQL/$retForeignKeysList (2007-11-21 Doug K.)
Custom method written to build the foreign keys list for PostgreSQL.
oDBAdminMethods_POSTGRESQL/$retForeignKeysList (2007-11-23 Doug K.)
Renamed to protected method so that sessions won't be affected.
oDBAdminMethods_POSTGRESQL/$setPrimaryKeyCounterValue (2007-11-21 Doug K.)
Overrode method for PostgreSQL
oDBAdminMethods_SQLSERVER/$_retNextPrimaryKey (2007-11-23 Doug K.)
Renamed method from $retNextPrimaryKey to $_retNextPrimaryKey. The method is NOT supposed to be protected, not public.
oDBAdminMethods_abstract/$#About (2007-11-23 Doug K.)
Changed to only opening sessions during a request is made through the bridge and immediately closing the session Added $openSession and $closeSession methods this object which can be called by the bridge.
oDBAdminMethods_abstract/$#About (2007-11-24 Doug K.)
Removed all of the 'clear logs' code from the implementor methods. Added a $clearLogs method which the bridge can call. The decision to clear the logs is made by the bridge, not the implementor.
oDBAdminMethods_abstract/$#Bridge Design Pattern - Implementor (2007-11-23 Doug K.)
Clarified the role of this object to be an 'Implementor' object in the 'Bridge Pattern'. The oDBAmin object is the bridge.
oDBAdminMethods_abstract/$_logSQLError (2007-11-21 Doug K.)
Added method to make it easier for oDBAdmin methods to log a SQL errors when working with a statement object. The second parameter is the statement object, so this method can extract the $nativeerror... and $sqltext.
oDBAdminMethods_abstract/$_retNextPrimaryKey (2007-11-22 Doug K.)
Modified the method to use oRefs if the "$retSQL_SelectPrimaryKeyCounterValue" returns empty.
oDBAdminMethods_abstract/$_retNextPrimaryKey (2007-11-23 Doug K.)
Renamed method from $retNextPrimaryKey to $_retNextPrimaryKey. The method is NOT supposed to be protected, not public.
oDBAdminMethods_abstract/$_syncCollations (2007-11-23 Doug K.)
Only attempt to execute SQLText if a value is returned from '$retSQL_AddCaseInsensitiveCollation'. To date FrontBase is the only one that does this.
oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-20 Doug K.)
Add low() function to do case-insensitive comparison of the datatypes.
oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-21 Doug K.)
Added exception for SQLDataType 'TEXT'. In PostgreSQL there is no 'length' returned for TEXT datatypes.
oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-23 Doug K.)
Use the 'OmnisDataType' from the DAMColsList rather than the SQLDataType for checking matching data types.
oDBAdminMethods_abstract/$auditSchemaForReservedWords (2007-11-22 Doug K.)
Bug fix. The table name was not being passed as a parameter. Bug fix. The column names search was incorrect. Added the upp() function to the column name. Enhancement - Report spaces in the table and column names as errors.
oDBAdminMethods_abstract/$clearLogs (2007-11-24 Doug K.)
Renamed $_clearLogs to $clearLogs. This method is now only called by the bridge, not the implementors.
oDBAdminMethods_abstract/$closeSession_Superuser (2007-11-23 Doug K.)
Created a protected method to close the superuser session.
oDBAdminMethods_abstract/$closeSession_TablesOwner (2007-11-23 Doug K.)
Created a protected method to close the tables owner session.
oDBAdminMethods_abstract/$copyData (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when data is copied in.
oDBAdminMethods_abstract/$insertEmptyRecords (2007-10-16 Doug K.)
Don't insert zero pkey record if it is a control table.
oDBAdminMethods_abstract/$insertEmptyRecords (2007-10-24 Doug K per Mike M.)
Bug fix. Change ColsList.controltable to SchemasList.controltable.
oDBAdminMethods_abstract/$openSession_Superuser (2007-11-23 Doug K.)
Created a protected method to open a session as the superuser.
oDBAdminMethods_abstract/$openSession_TablesOwner (2007-11-23 Doug K.)
Created a protected method to open a session as the tables owner.
oDBAdminMethods_abstract/$retDAMColsList (2007-11-23 Doug K.)
Added protected method so that other method can call it without affecting the sessions (as would happen if the public method was called)
oDBAdminMethods_abstract/$retDAMIndexesList (2007-11-20 Doug K.)
Remove early exit.
oDBAdminMethods_abstract/$retPrimaryKeysList (2007-11-22 Doug K.)
Remove the If DBSetPkey code, always call the $_retNextPrimaryKey method to get the next pkey.
oDBAdminMethods_abstract/$retPrimaryKeysList (2007-11-23 Doug K.)
Only include tables which are in the database.
oDBAdminMethods_abstract/$retUsersList (2007-11-23 Doug K.)
Moved the method to a protected method and call the protected method.
oDBAdminMethods_abstract/$setPrimaryKeyCounterValue (2007-11-22 Doug K.)
Restructured the method to ignore 'dbsetprimarykey'. Instead if the $retSQL_SetPrimaryKeyCounterValue returns empty, this method will default to using oRefs for the next primary key.
oDBAdminMethods_abstract/$setPrimaryKeyCounterValue (2007-11-23 Doug K.)
Rename this method to be a protected method so that it can be called without affecting open sessions.
oDBAdminMethods_abstract/syncDatabaseTablesToSchemas (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when a table is added or updated.
oDBAdminSQLReservedWords/$:SQLReservedWordsList (2007-10-22 Doug K.)
Load the SQL reserved words from the $userinfo property of the object if the linecount is zero.
oDBAdminSQLText_POSTGRESQL/$#About (2007-10-19 Doug K.)
Added new subclass for PostgreSQL DAM.
oDBAdminSQLText_POSTGRESQL/$retSQL_AddCheck_notNull (2007-11-21 Doug K.)
Override SQL text for NOT NULL for PostgreSQL.
oDBAdminSQLText_abstract/$retSQL_SQLDataType (2007-11-20 Doug K.)
Remove the NOT NULL constraint if it exists. For some RDBMSs the NOT NULL constraint is added but it messes up datatype comparisons.
oErrorHandler/$#About (2007-10-24 Doug K.)
Reduced the methodstack column length from 10 million characters to 10000 characters in sErrorlog.
oFunctions/$canModifyClass (2007-11-15 Doug K.)
Added code tool method to oFunctions. The method returns false if a class can not be modified due to VCS settings.
oFunctions/$dragdropmoveLinesInList (2007-10-19 Doug K.)
Added GUI function which handles drag and drop on a list to move lines within a list.
oFunctions/$retAlphaNumeric (2007-11-13 Doug K.)
Added optional parameter pSpecialCharsAllowed, so that the sender can specify special characters to be allowed. e.g. _ underscore
oFunctions/$weekOfYear (2007-11-16 Josh L.)
Created this method because dpart(kweek,...) made some assumptions that didn't work with our application of the method.
oIcons/$deleteIcon (2007-11-05 Doug K.)
Added method to allow dynamic updates of the icons list.
oIcons/$retIconID (2007-11-05 Doug K.)
Modified the method so that if the pIconName includes the icon group, the icon group is parsed from the icon name.
oIcons/$setIcon (2007-11-05 Doug K.)
Added method to allow dynamic updates of the icons list.
oLogon/$:DBSETPRIMARYKEY (2007-11-27 Doug K.)
Deprecated the dbsetprimarykey property method.
oLogon/$:DBSETPRIMARYKEY.$assign (2007-11-27 Doug K.)
Deprecated the dbsetprimarykey property method.
oLogon/$_SETDBSETPRIMARYKEYPROPERTY (2007-11-27 Doug K.)
Deprecated the $_setDBSetPrimaryKey property method.
oLogonMethods/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oLogonMethods_FRONTBASEDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oLogonMethods_MYSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oLogonMethods_OMSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oLogonMethods_OMSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oLogonMethods_PGSQLDAM/$#About (2007-10-19 Doug K.)
Added new subclass for PostgreSQL DAM.
oLogonMethods_PGSQLDAM/$logon (2007-11-20 Doug K.)
Override the superclass method and set the $database property before attempting to logon.
oLogonMethods_PGSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.
oPaths/$:PathUserPreferencesFolder (2007-10-12 Doug K.)
Bug fix. Changed 'len(FolderName)=-' to 'len(FolderName)=0'
oPrepareNewDatabase/$prepareNewDatabase (2007-11-24 Doug K.)
Use $findClass to find the oDBAdmin object in case it has been subclassed to the main library.
oRebuildCachedLists/$buildRuntimeWindows (2007-10-11 Doug K.)
Reduce the method to just do what is advertises. Prior to calling this method you must first rebuild all cached lists.
oRebuildCachedLists/$rebuildAllCachedLists (2007-10-11 Doug K.)
Added parameter pRebuildLibsList_opt and then pass it to each of the applicable methods. Do not load string tables in this method.
oRebuildCachedLists/$rebuildRefs (2007-10-11 Doug K.)
Added method to just rebuild the refs object. Removed the $rebuildSQLListsAnRefs method.
oRebuildCachedLists/$reloadStringTables (2007-10-11 Doug K.)
Complete overhaul of the method reducing it to just do with the method name advertises. Deleted the $reloadStringTablesMetaDataOnly method. No longer required since this method now does less work.
oRebuildCachedLists/$saveSharedAppPrefs (2007-10-11 Doug K.)
Renamed the method to correctly advertise what it does. Removed the pbRuntimeRelease parameter. All cached lists are immediately saved to app_prefs when they are rebuild and assigned to the app_prefs object. This method only needs to be called for saving runtime lists to the main database if $:SharedAppPrefs is being used.
oRebuildCachedLists/$saveSharedAppPrefs (2007-11-27 Doug K per Josh L.)
Added parameter pLibsList_opt which is provided causes this method to ONLY replace the portions in the shared cached lists for the specified libraries. This is important for live updates of just one or two modules by the developer.
oSQLLists/$rebuildSQLClassInfo (2007-11-02 Doug K.)
Added method to rebuild the class info for a SQL class. If the SQL class is not found it is added to the master list. This moves towards dynamic updating of the SQL list master list for the developer.
oSQLLists/$removeForeignKey (2007-11-03 Doug K.)
Added method to allow foreign keys to be dynamically removed.
oSQLLists/$removeSQLClass (2007-11-02 Doug K.)
Added method for remove a SQL class from the master list to allow dynamic updates.
oSQLLists/$renameSQLClass (2007-11-02 Doug K.)
Added method for renaming a SQL class in the master list to allow dynamic updates. The method also searches query classes and undates the $schema property for any query columns which pointed to the schema class.
oSQLLists/$retDefinedList (2007-11-27 Doug K.)
Removed all code dealing with dbsetprimarykey. This will now be the RDBMS if it supports it properly.
oSQLLists/$setForeignKey (2007-11-03 Doug K.)
Added method to allow foreign keys to be dynamically added/updated.
oSQLLists/$setTableSessionRow (2007-11-27 Doug K.)
Removed the code that set the 'dbsetprimarykey' value.
oSQLLists/_calcClassMetaDataListRow_kQuery (2007-10-23 Doug K.)
Check to make sure a column is found in the query class before proceeding. The query class might be empty.
oSQLLists/_calcClassMetaDataListRow_kQuery (2007-11-14 Doug K.)