<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>StudioWorks - Version 2007-01-31</title> <meta name="keywords" content="omnis studio, raining data, studioworks documentation" /> <link rel="stylesheet" type="text/css" href="http://www.studiotips.net/css/codedoc.css" /> <link rel="stylesheet" type="text/css" href="http://www.studioworks-dev.net/css/codedoc.css" /> </head> <body> <div id="container"> <p><a href = ../index.html > Sw4 </a> &nbsp &gt; &nbsp <a href = index.html > About </a> &nbsp &gt; &nbsp Version 2007-01-31</p> <a name="version20070131" /> <h2>Version 2007-01-31</h2> <p>The following is a summary of the changes include in this release:</p> <ol> <li><strong>Field Handler Lookup Type Ahead</strong> - What started out as adding the feature to filter out inactive records from the lookup droplist turned into an overhaul of the <span class="code">oFieldHandlerLookupTypeAhead</span> object class and the <span class="code">wLookupList</span> window class.<br /> <br /> If there is an <span class="code">active</span> admin column type included in the lookup list SQL class the <span class="code">active=0</span> records will be filtered out of the lookup droplist and an <span class="nav">Inactive</span> button will appear in the lookup list footer. Clicking the <span class="nav">Inactive</span> button unfilters the list, revealing any inactive records. This makes the <span class="code">active</span> admin column type more useful. Old discontinued lookup records can be set to <span class="code">active=0</span> and by default they will not show up in the lookup droplists.<br /> <br /> Event handling and user interface has been cleaned up for the lookup type ahead field handling and the lookup combo button.<br /> <br /> The lookup list buttons now use string tables, so they support multiple languages.<br /> <br /> A <span class="code">myLookupDemo</span> library has been added to the <span class="file">StartNewApp</span> libraries. A demo and information has been provided on Refs lookups, normal lookupus, and inactive lookup records.</li> <li><strong>Lookup Edit Button</strong> - 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.</li> <li><strong>MySQL Synchronize</strong> - Synchronize is now working for foreign keys with MySQL.</li> <li><strong>Calendar Button</strong> - The prompt for input window now automatically adds a calendar picker button next to any date fields.</li> <li><strong>Admin Column Types Documenation</strong> - Documentation about meta-data and the various admin column types has been added under the <span class="nav">SQL</span> 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.</li> <li><strong>Default Context Menu</strong> - This is the <span class="nav">Undo, Cut, Copy, Paste</span> context menu that appears when you right-click on a <span class="code">kEntry</span> or <span class="code">kMultilineEntry</span> field. I noticed that the <span class="code">$disabledefaultcontextmenu</span> property was being set to <span class="code">kTrue</span> for autoconfig and developerized windows. The code that was doing this has been removed. A new <span class="nav">Programmer Menu</span> item has been added which will set <span class="code">$disabledefaultcontextmenu</span> to <span class="code">kFalse</span> in all of your application's libraries. You should run this method after you backup your libraries.</li> <li><strong>Search Bar</strong> - 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 <strong>not</strong> 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.</li> </ol> <p>To update to this new release:<br /> <ol> <li>Backup your application.</li> <li>Replace your old <span class="file">studioworks</span> folder and contents with the new <span class="file">studioworks</span> folder included with this release.</li> </ol></p> Each library and the modifications in the release are listed below. The modifications are compiled from the <span class="code">@MOD</span> tag comments found in the methods of the classes in the library. <a name="swbase4" /> <h3>swBase4</h3> <p><span class="code">oCodeTools/$setEntryFieldsToAllowDefaultContextMenu</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> 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.</p> <p><span class="code">oDBAdmin/$dropIndex</span> <span class="moddateby">(2007-01-11 Doug K.)</span><br /> Added missing parameters, pTableName &amp;amp; pbClearLogs.</p> <p><span class="code">oDBAdminMethods_FRONTBASE/$dropIndex</span> <span class="moddateby">(2007-01-11 Doug K.)</span><br /> Added missing parameter pbClearLogs.</p> <p><span class="code">oDBAdminMethods_MYSQL/$#About</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> The MYSQLDAM bug that was not returning views has been fixed. The overridden $retDAMTablesAndViewsList method has been inherited from the superclass again.</p> <p><span class="code">oDBAdminMethods_MYSQL/$_moveData</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> MySQL changes 'zero' pkey to a different value, so we have to update the inserted record.</p> <p><span class="code">oDBAdminMethods_MYSQL/$retForeignKeysList</span> <span class="moddateby">(2007-01-12 Doug K.)</span><br /> Got the $retForeignKeysList method working for MySQL!</p> <p><span class="code">oDBAdminMethods_MYSQL/$retForeignKeysList</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> Bug fix. Set current line to last line in the list, not the first line.</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$dropIndex</span> <span class="moddateby">(2007-01-11 Doug K.)</span><br /> Fixed parameters order, pbClearLogs to be the 3rd parameter.</p> <p><span class="code">oDBAdminMethods_abstract/$_syncForeignKeys</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> Removed the early exits.</p> <p><span class="code">oDBAdminSQLText_MYSQL/$retSQL_DropIndex</span> <span class="moddateby">(2007-01-11 Doug K.)</span><br /> Modified SQLText for dropping an index for MySQL which requires the index name AND the table name.</p> <p><span class="code">oEmail/$initialize</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> 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.</p> <p><span class="code">oSecurity/$canEdit</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> Bug fix. Changed End if to Else if.</p> <p><span class="code">wDBAdminIndexes/dropIndex</span> <span class="moddateby">(2007-01-11 Doug K.)</span><br /> Bug fix. Added the missing first parameter, TableName.</p> <p><span class="code">wDBAdminSyncDatabaseToSchemas/rebuildTablesList</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> Added method to rebuild the server tables list after synchronizing the database.</p> <p><span class="code">wSecurity_GroupSchemas/$#About</span> <span class="moddateby">(2007-01-10 Doug K.)</span><br /> Changed icons background to kBGThemeContainer so they look better on WinXP.</p> <p><span class="code">wSecurity_UserSchemas/$#About</span> <span class="moddateby">(2007-01-10 Doug K.)</span><br /> Changed icons background to kBGThemeContainer so they look better on WinXP.</p> <span class="code">wSecurity_UserWindows/$#About</span> <span class="moddateby">(2007-01-10 Doug K.)</span><br /> Changed icons background to kBGThemeContainer so they look better on WinXP. <a name="swdocs4" /> <h3>swDocs4</h3> <p><span class="code">@00 Menus/@00 About</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Added documentation for Menus.</p> <p><span class="code">@50 Meta-Data/@00 About</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> Added documentation on meta-data.</p> <p><span class="code">@50 Meta-Data/@50 Admin Column Types</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> Added documentation on admin column types and in particular the 'active' admin column type.</p> <p><span class="code">@71 Table Classes/@25 Bind Variables</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> Update sample code to use row() function, saving 5 lines of code for the example.</p> <span class="code">@71 Table Classes/@50 Set Default Value</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> Added documentation on setting default values in the meta-data. <a name="swgui4" /> <h3>swGui4</h3> <p><span class="code">mMenu/$_addMenuLine</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Added code to set shortcut keys for menu lines if specified in the parameters.</p> <p><span class="code">mMenu/$initialize</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Added 'shortcutkey' to the parameters passed to $_addMenuLine.</p> <p><span class="code">oConcretizer/$addCalendarButton</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> Added public method for adding a calendar button so that the prompt inputs window can access the method.</p> <p><span class="code">oConcretizer/$addFieldsAndLabels</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> Modified method to add an edit lookup button beside each lookup entry field.</p> <p><span class="code">oConcretizer/$initialize</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> Add/set the ivar 'iMultilineEntryMinCharLength' which controls the minimum character length to default to creating a multi-line entry field.</p> <p><span class="code">oConcretizer/addField</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> Remove the line of code that was setting the $disabledefaultcontext menu to true.</p> <p><span class="code">oConcretizer/addLookupFieldComboButton</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> Moved the test for view and enabled to the $displayLookupFieldDropList method.</p> <p><span class="code">oConcretizer/calculateObjTypes</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> If the character length of a field is greater than 'iMultilineEntryMinCharLen' (200), then set the field type to kMultlineEntry.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/$#About</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> 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.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/$promptNewLookupRecord</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> 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.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/$promptSelectLookupRecord</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Check for a $promptSelectLookupRecord entry field method. If found, call it and process no further here.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/$showLookupList</span> <span class="moddateby">(2007-01-15 Doug K.)</span><br /> Added method to better handle the lookup field combo button clicks.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/event_evMouseDown_LookupsList</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> Added a new method to handle evMouseDown on the lookup list. Added a Switch/Case for the new button which show's inactive records.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/promptLookupRecordNotFound</span> <span class="moddateby">(2007-01-31 Doug K per Tom Maher)</span><br /> Removed the option to 'select' from a list of all lookup records. That can be done within the lookup list.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> Only define the lookup master list if it's $sqlclassname property doesn't match the current lookupsqlclassname.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> Added various 'active' column related ivars and call 'setInactiveRecordsVars' method to set them.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> Set the master list to be a smartlist so that we can use $filter &amp;amp; $unfilter to show/hide inactive records.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/setCanInsertVars</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> New method to set the ivars related to whether or not the user can insert lookup records.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/setInactiveRecordsVars</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> New method to set the ivars related to 'active' vs. 'inactive' records.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/showInactiveRecords</span> <span class="moddateby">(2007-01-18 Doug K.)</span><br /> Added method to show inactive records by unfiltering the lookup list.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/updateLookupList</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> Removed early exits. Moved the search for 'last selected' towards the end of the method.</p> <p><span class="code">oMenusList_abstract/$_addOtherMenuLine</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Overhauled the method to automatically add the o...MenuObserver object class and to use the irDefaultMenuClass if non is specified.</p> <p><span class="code">oMenusList_abstract/$_addReportsMenuLine</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Changed pShortCutKey_opt from char to int data type.</p> <p><span class="code">oMenusList_abstract/$_addSpecialMenuLine</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Changed pShortCutKey_opt from char to int data type.</p> <p><span class="code">oMenusList_abstract/addWindowMenuLine</span> <span class="moddateby">(2007-01-31 Doug K.)</span><br /> Added calculation of pShortCutKey to the menu lines list. Change pShortCutKey to an integer value.</p> <p><span class="code">wContainer_Edit_ListChildren_abstract/$subwinCmnd</span> <span class="moddateby">(2007-01-08 Doug K per Andy H)</span><br /> Changed each Case to use lower case letter to work with Switch low(pCmnd).</p> <p><span class="code">wEdit_abstract/$displayLookupFieldDropList</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> 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.</p> <p><span class="code">wEdit_abstract/$editLookupFieldRecord</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> Added method for lookup fields edit pencil button. This method opens the lookup record in a tab pane subwindow.</p> <p><span class="code">wEdit_abstract/$updateLookup</span> <span class="moddateby">(2007-01-16 Doug K.)</span><br /> Added method to update the lookup fields of the current main record with the specified lookup list record.</p> <p><span class="code">wList_abstract/$updateList</span> <span class="moddateby">(2007-01-18 Doug K. per Will Adkin)</span><br /> Check and increment the $linemax if we are at the maximum lines for the list.</p> <p><span class="code">wLookupList/$set</span> <span class="moddateby">(2007-01-17 Doug K.)</span><br /> 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.</p> <p><span class="code">wSearchbar/$#About</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Changed the columns &amp;amp; operators droplists to call the superclass $event_evClick_... method so the code/logic is in the superclass.</p> <p><span class="code">wSearchbar_abstract/$#About</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> 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.</p> <p><span class="code">wSearchbar_abstract/$construct</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Define the search values row variable used to store &amp;amp; recall search values which the user enters.</p> <p><span class="code">wSearchbar_abstract/$event_evAfter_EntryField</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Added superclass event method to store the user entered search value for each data type. (bool, char, int, number, date, datetime, time)</p> <p><span class="code">wSearchbar_abstract/$event_evClick_ColsList</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Added superclass method to handle evClick on the columns droplist for the subwindows.</p> <p><span class="code">wSearchbar_abstract/$event_evClick_OperatorsList</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Added superclass method to handle evClick on the operators droplist for the subwindows.</p> <p><span class="code">wSearchbar_abstract/$initialize</span> <span class="moddateby">(2007-01-19 Doug K.)</span><br /> Sort the search columns list by the 'label'.</p> <p><span class="code">wSearchbar_abstract/$setEntryField</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Use iRowSearchValues to recall the previous search value rather than iPrevValue.</p> <p><span class="code">wSearchbar_abstract/$setOperatorList</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Add code to store and recall the previous operator for each data type.</p> <p><span class="code">wSearchbar_abstract/loadLastCriteria</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Use iRowSearchValues to recall the previous search value rather than iPrevValue.</p> <span class="code">wSearchbar_abstract/retSearchValuesRowColName</span> <span class="moddateby">(2007-01-22 Doug K.)</span><br /> Added method to return the search values row column name based on the the current line in the search columns list. <a name="swreports4" /> <h3>swReports4</h3> <span class="code">rReport_abstract/$_positionObjects</span> <span class="moddateby">(2007-01-23 Doug K.)</span><br /> Added '*100/$cinst.$scale' to the print width calculation to handle scaled printing. <p class="footer">StudioWorks Documentation - Copyright 2005 Vencor Software </p></div> </body> </html>