Sw4   >   About   >   Version 2007-01-31

Version 2007-01-31

The following is a summary of the changes include in this release:

  1. Field Handler Lookup Type Ahead - What started out as adding the feature to filter out inactive records from the lookup droplist turned into an overhaul of the oFieldHandlerLookupTypeAhead object class and the wLookupList window class.

    If there is an active admin column type included in the lookup list SQL class the active=0 records will be filtered out of the lookup droplist and an Inactive button will appear in the lookup list footer. Clicking the Inactive button unfilters the list, revealing any inactive records. This makes the active admin column type more useful. Old discontinued lookup records can be set to active=0 and by default they will not show up in the lookup droplists.

    Event handling and user interface has been cleaned up for the lookup type ahead field handling and the lookup combo button.

    The lookup list buttons now use string tables, so they support multiple languages.

    A myLookupDemo library has been added to the StartNewApp libraries. A demo and information has been provided on Refs lookups, normal lookupus, and inactive lookup records.
  2. Lookup Edit Button - An edit lookup button is now automatically placed next to the lookup combo button in any autoconfig edit windows and new developerized windows. Clicking the edit lookup button opens the lookup records in a tab pane edit mode subwindow.
  3. MySQL Synchronize - Synchronize is now working for foreign keys with MySQL.
  4. Calendar Button - The prompt for input window now automatically adds a calendar picker button next to any date fields.
  5. Admin Column Types Documenation - Documentation about meta-data and the various admin column types has been added under the SQL section of the StudioWorks documentation. A tip on toggling the active status for multiple selected records in a headed list is included with the documentation.
  6. Default Context Menu - This is the Undo, Cut, Copy, Paste context menu that appears when you right-click on a kEntry or kMultilineEntry field. I noticed that the $disabledefaultcontextmenu property was being set to kTrue for autoconfig and developerized windows. The code that was doing this has been removed. A new Programmer Menu item has been added which will set $disabledefaultcontextmenu to kFalse in all of your application's libraries. You should run this method after you backup your libraries.
  7. Search Bar - This search bar which can be made to appear in headed list window has been improved with respect to how it remembers the search value entered by the user. If a user enters a search value, the search value text will not be changed if they change to a different search column of the same datatype, or if they change the operator. If they switch to a search column that is a different datatype (e.g. from a character column to a number column) the last number search value will be recalled. If they then switch to a search column that is a character datatype, the previously entered search value for a character column will be used. The stored search values are isolated to each instance of the search bar.

To update to this new release:

  1. Backup your application.
  2. Replace your old studioworks folder and contents with the new studioworks folder included with this release.

Each library and the modifications in the release are listed below. The modifications are compiled from the @MOD tag comments found in the methods of the classes in the library.

swBase4

oCodeTools/$setEntryFieldsToAllowDefaultContextMenu (2007-01-19 Doug K.)
Added method to set the $disabledefaultcontextmenu to true for all kEntry and kMultilineEntry fields. This is to be able to fix existing developerized window classes. Call this method from the Programmer menu.

oDBAdmin/$dropIndex (2007-01-11 Doug K.)
Added missing parameters, pTableName & pbClearLogs.

oDBAdminMethods_FRONTBASE/$dropIndex (2007-01-11 Doug K.)
Added missing parameter pbClearLogs.

oDBAdminMethods_MYSQL/$#About (2007-01-19 Doug K.)
The MYSQLDAM bug that was not returning views has been fixed. The overridden $retDAMTablesAndViewsList method has been inherited from the superclass again.

oDBAdminMethods_MYSQL/$_moveData (2007-01-15 Doug K.)
MySQL changes 'zero' pkey to a different value, so we have to update the inserted record.

oDBAdminMethods_MYSQL/$retForeignKeysList (2007-01-12 Doug K.)
Got the $retForeignKeysList method working for MySQL!

oDBAdminMethods_MYSQL/$retForeignKeysList (2007-01-19 Doug K.)
Bug fix. Set current line to last line in the list, not the first line.

oDBAdminMethods_SQLSERVER/$dropIndex (2007-01-11 Doug K.)
Fixed parameters order, pbClearLogs to be the 3rd parameter.

oDBAdminMethods_abstract/$_syncForeignKeys (2007-01-19 Doug K.)
Removed the early exits.

oDBAdminSQLText_MYSQL/$retSQL_DropIndex (2007-01-11 Doug K.)
Modified SQLText for dropping an index for MySQL which requires the index name AND the table name.

oEmail/$initialize (2007-01-31 Doug K.)
Remove pinging the SMTP server from the $initialize method because if it fails the StudioWorks startup is stopped. The $sendEmail method pings the SMTP server each time anyway so no need to do this during the startup.

oSecurity/$canEdit (2007-01-16 Doug K.)
Bug fix. Changed End if to Else if.

wDBAdminIndexes/dropIndex (2007-01-11 Doug K.)
Bug fix. Added the missing first parameter, TableName.

wDBAdminSyncDatabaseToSchemas/rebuildTablesList (2007-01-19 Doug K.)
Added method to rebuild the server tables list after synchronizing the database.

wSecurity_GroupSchemas/$#About (2007-01-10 Doug K.)
Changed icons background to kBGThemeContainer so they look better on WinXP.

wSecurity_UserSchemas/$#About (2007-01-10 Doug K.)
Changed icons background to kBGThemeContainer so they look better on WinXP.

wSecurity_UserWindows/$#About (2007-01-10 Doug K.)
Changed icons background to kBGThemeContainer so they look better on WinXP.

swDocs4

@00 Menus/@00 About (2007-01-31 Doug K.)
Added documentation for Menus.

@50 Meta-Data/@00 About (2007-01-18 Doug K.)
Added documentation on meta-data.

@50 Meta-Data/@50 Admin Column Types (2007-01-18 Doug K.)
Added documentation on admin column types and in particular the 'active' admin column type.

@71 Table Classes/@25 Bind Variables (2007-01-15 Doug K.)
Update sample code to use row() function, saving 5 lines of code for the example.

@71 Table Classes/@50 Set Default Value (2007-01-15 Doug K.)
Added documentation on setting default values in the meta-data.

swGui4

mMenu/$_addMenuLine (2007-01-31 Doug K.)
Added code to set shortcut keys for menu lines if specified in the parameters.

mMenu/$initialize (2007-01-31 Doug K.)
Added 'shortcutkey' to the parameters passed to $_addMenuLine.

oConcretizer/$addCalendarButton (2007-01-15 Doug K.)
Added public method for adding a calendar button so that the prompt inputs window can access the method.

oConcretizer/$addFieldsAndLabels (2007-01-16 Doug K.)
Modified method to add an edit lookup button beside each lookup entry field.

oConcretizer/$initialize (2007-01-15 Doug K.)
Add/set the ivar 'iMultilineEntryMinCharLength' which controls the minimum character length to default to creating a multi-line entry field.

oConcretizer/addField (2007-01-19 Doug K.)
Remove the line of code that was setting the $disabledefaultcontext menu to true.

oConcretizer/addLookupFieldComboButton (2007-01-18 Doug K.)
Moved the test for view and enabled to the $displayLookupFieldDropList method.

oConcretizer/calculateObjTypes (2007-01-15 Doug K.)
If the character length of a field is greater than 'iMultilineEntryMinCharLen' (200), then set the field type to kMultlineEntry.

oFieldHandlerLookupTypeAhead/$#About (2007-01-18 Doug K.)
Refactored the oFieldHandlerLookupTypeAhead object and the wLookupList window. Added filtering of 'Active' vs. 'Inactive' records. Did a lot of work on event handling, trying to clean up the user interface. Switched to using string tables for the lookup list buttons so that multiple languages are supported. Broke down a number of the longer methods into small private methods. Converted some public methods to private methods to keep a tighter public interface.

oFieldHandlerLookupTypeAhead/$promptNewLookupRecord (2007-01-15 Doug K.)
Added parameter 'pbUseEntryFieldContents' (default kTrue) so the sender can specify not to use the entry field contents. This parameter is used by the lookup list when clicking the 'New' button.

oFieldHandlerLookupTypeAhead/$promptSelectLookupRecord (2007-01-31 Doug K.)
Check for a $promptSelectLookupRecord entry field method. If found, call it and process no further here.

oFieldHandlerLookupTypeAhead/$showLookupList (2007-01-15 Doug K.)
Added method to better handle the lookup field combo button clicks.

oFieldHandlerLookupTypeAhead/event_evMouseDown_LookupsList (2007-01-18 Doug K.)
Added a new method to handle evMouseDown on the lookup list. Added a Switch/Case for the new button which show's inactive records.

oFieldHandlerLookupTypeAhead/promptLookupRecordNotFound (2007-01-31 Doug K per Tom Maher)
Removed the option to 'select' from a list of all lookup records. That can be done within the lookup list.

oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2007-01-16 Doug K.)
Only define the lookup master list if it's $sqlclassname property doesn't match the current lookupsqlclassname.

oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2007-01-17 Doug K.)
Added various 'active' column related ivars and call 'setInactiveRecordsVars' method to set them.

oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2007-01-17 Doug K.)
Set the master list to be a smartlist so that we can use $filter & $unfilter to show/hide inactive records.

oFieldHandlerLookupTypeAhead/setCanInsertVars (2007-01-17 Doug K.)
New method to set the ivars related to whether or not the user can insert lookup records.

oFieldHandlerLookupTypeAhead/setInactiveRecordsVars (2007-01-17 Doug K.)
New method to set the ivars related to 'active' vs. 'inactive' records.

oFieldHandlerLookupTypeAhead/showInactiveRecords (2007-01-18 Doug K.)
Added method to show inactive records by unfiltering the lookup list.

oFieldHandlerLookupTypeAhead/updateLookupList (2007-01-17 Doug K.)
Removed early exits. Moved the search for 'last selected' towards the end of the method.

oMenusList_abstract/$_addOtherMenuLine (2007-01-31 Doug K.)
Overhauled the method to automatically add the o...MenuObserver object class and to use the irDefaultMenuClass if non is specified.

oMenusList_abstract/$_addReportsMenuLine (2007-01-31 Doug K.)
Changed pShortCutKey_opt from char to int data type.

oMenusList_abstract/$_addSpecialMenuLine (2007-01-31 Doug K.)
Changed pShortCutKey_opt from char to int data type.

oMenusList_abstract/addWindowMenuLine (2007-01-31 Doug K.)
Added calculation of pShortCutKey to the menu lines list. Change pShortCutKey to an integer value.

wContainer_Edit_ListChildren_abstract/$subwinCmnd (2007-01-08 Doug K per Andy H)
Changed each Case to use lower case letter to work with Switch low(pCmnd).

wEdit_abstract/$displayLookupFieldDropList (2007-01-16 Doug K.)
Added method which is used by the edit button placed beside lookup fields. This method will trigger opening the lookup record in an edit subwindow.

wEdit_abstract/$editLookupFieldRecord (2007-01-16 Doug K.)
Added method for lookup fields edit pencil button. This method opens the lookup record in a tab pane subwindow.

wEdit_abstract/$updateLookup (2007-01-16 Doug K.)
Added method to update the lookup fields of the current main record with the specified lookup list record.

wList_abstract/$updateList (2007-01-18 Doug K. per Will Adkin)
Check and increment the $linemax if we are at the maximum lines for the list.

wLookupList/$set (2007-01-17 Doug K.)
Added parameter pbInactiveRecordsButton to control whether or not the 'Show Inactive...' button is displayed. The lookup field handler makes this decision based on whether or not there is an 'active' column in the lookup SQL class.

wSearchbar/$#About (2007-01-22 Doug K.)
Changed the columns & operators droplists to call the superclass $event_evClick_... method so the code/logic is in the superclass.

wSearchbar_abstract/$#About (2007-01-22 Doug K.)
Cleaned up the search value field behavior. When the user changed the search column or operator the search value was changed. This was irritating if you entered a search value, then noticed you had the wrong search column or operator and change it, it would wipe out or change your search value. The new behavior does not change the search value, unless the datatype of the search column changes. The search value is stored and recalled for each data type. The operator (begins with, contains, ...) is also stored and recalled in the same fashion.

wSearchbar_abstract/$construct (2007-01-22 Doug K.)
Define the search values row variable used to store & recall search values which the user enters.

wSearchbar_abstract/$event_evAfter_EntryField (2007-01-22 Doug K.)
Added superclass event method to store the user entered search value for each data type. (bool, char, int, number, date, datetime, time)

wSearchbar_abstract/$event_evClick_ColsList (2007-01-22 Doug K.)
Added superclass method to handle evClick on the columns droplist for the subwindows.

wSearchbar_abstract/$event_evClick_OperatorsList (2007-01-22 Doug K.)
Added superclass method to handle evClick on the operators droplist for the subwindows.

wSearchbar_abstract/$initialize (2007-01-19 Doug K.)
Sort the search columns list by the 'label'.

wSearchbar_abstract/$setEntryField (2007-01-22 Doug K.)
Use iRowSearchValues to recall the previous search value rather than iPrevValue.

wSearchbar_abstract/$setOperatorList (2007-01-22 Doug K.)
Add code to store and recall the previous operator for each data type.

wSearchbar_abstract/loadLastCriteria (2007-01-22 Doug K.)
Use iRowSearchValues to recall the previous search value rather than iPrevValue.

wSearchbar_abstract/retSearchValuesRowColName (2007-01-22 Doug K.)
Added method to return the search values row column name based on the the current line in the search columns list.

swReports4

rReport_abstract/$_positionObjects (2007-01-23 Doug K.)
Added '*100/$cinst.$scale' to the print width calculation to handle scaled printing.