<?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 2009-04-30</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 2009-04-30</p> <a name="version20090430" /> <h2>Version 2009-04-30</h2> <p>This is a minor release with various bug fixes. No major enhancements.</p> <ol> <li><span class="nav">$:UserKey</span> - Caching the current userkey value in the <span class="code">tBase/oTableClassMethods</span> objects give problems if you want to temporarily switch the current user without doing a full signin. The table class methods have been modified to fetch the current <span class="code">$:UserKey</span> from <span class="code">oSecurity</span> when needed. The <span class="code">$UserKey.$assign</span> method has been deprecated in <span class="code">tBase</span> and <span class="code">oTableClassMethods_abstract</span>. There is virtually zero performance impact.</li> </ol> <p>To update to this new release:</p> <ol> <li>Quit Omnis Studio.</li> <li>Backup your application! </li> <li>Replace the <span class="file">studioworks</span> folder.</li> <li>Open your application and test it.</li> <li>If you hit any snags, email me a zip of your application with instructions on when and where you are running into problems.</li> </ol>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="myappmain" /> <h3>myAppMain</h3> No modifications <a name="mysysadmin" /> <h3>mySysAdmin</h3> No modifications <a name="swbase4" /> <h3>swBase4</h3> <p><span class="code">oDBAdminMethods_POSTGRESQL/retTableOID</span> <span class="moddateby">(2009-02-05 Josh L. &amp; Doug K.)</span><br /> Select the lines which match the tablename (case insensitive) and take the last one. if there are no lines returned, log an error.</p> <p><span class="code">oDBSessionMethods_SQLSERVER/$tables</span> <span class="moddateby">(2009-03-26 Doug K per Frank Bradley.)</span><br /> Overrode the superclass method and changed 'iSessionRow.tablesownername' to 'dbo'</p> <p><span class="code">oEmail/pingSMTPServer</span> <span class="moddateby">(2009-03-31 Doug K per Mike Matthews.)</span><br /> Commented out TCPReceive as the Windows version gets hung up waiting for a reply from a disconnected socket.</p> <p><span class="code">oErrorHandler/$logProgramError_InvalidParameter</span> <span class="moddateby">(2009-04-06 Josh L.)</span><br /> 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)</p> <p><span class="code">oFunctions/$replaceallCaseInsensitive</span> <span class="moddateby">(2009-02-10 Doug K.)</span><br /> Increased variables length to 1000000 characters to avoid truncating any text.</p> <p><span class="code">oFunctions/$retListFromTextString</span> <span class="moddateby">(2009-03-26 Doug K per Mike Matthews)</span><br /> Bug fix. Changed con(kCr+kLf) to con(kCr,kLf).</p> <p><span class="code">oMetaDataSchemaClass_Model/update_extrasqltext_tableandcolname</span> <span class="moddateby">(2009-02-10 Doug K.)</span><br /> Increased variables length to 1000000 characters to avoid truncating any text.</p> <p><span class="code">oMetaDataSchemaClass_Model/update_extrasqltext_tablename</span> <span class="moddateby">(2009-02-10 Doug K.)</span><br /> Increased variables length to 1000000 characters to avoid truncating any text.</p> <p><span class="code">oMetaDataSchemaClass_Model/update_servertablename</span> <span class="moddateby">(2009-02-09 Doug K.)</span><br /> Added a bunch of checks for len(OldBaseTable), len(NewBaseTable), len(pOldServerTableName), len(pNewServerTableName) so that empty values don't get updated.</p> <p><span class="code">oMetaDataSchemaCol_Model/syncColumnsForSQLClass_full</span> <span class="moddateby">(2009-02-09 Doug K.)</span><br /> Only send an $updateStringTableRow message if StbName and StbID are not empty.</p> <p><span class="code">oSQLChildRecords/$doesRestrictedDeleteChildRecordExist</span> <span class="moddateby">(2009-02-17 Doug K.)</span><br /> Log error message if flag false.</p> <p><span class="code">oSQLLists/$:USERKEY.$assign</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Deprecated the $:UserKey.$assign method. Cached values are a problem.</p> <p><span class="code">oSQLLists/$retDefinedList</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Removed the code which gets the $:UserKey from oSecurity and sets it in the defined list's table class instance.</p> <p><span class="code">oSecurity/$:UserTimeoutMinutes</span> <span class="moddateby">(2009-04-30 Doug K per Tom Maher)</span><br /> Bug fix. Added '.securityinforow.' to the calculations.</p> <p><span class="code">oSecurity/$:UserTimeoutSignOffTime</span> <span class="moddateby">(2009-04-30 Doug K per Tom Maher)</span><br /> Bug fix. Added '.securityinforow.' to the calculations.</p> <p><span class="code">oSecurity/$quickSignIn</span> <span class="moddateby">(2009-02-13 Doug K.)</span><br /> 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.</p> <p><span class="code">oSecurity/$retGroupUsersList</span> <span class="moddateby">(2009-04-30 Doug K per bug reported by Will Adkin)</span><br /> Refetch the users list every time since the groups they are included could have changed.</p> <p><span class="code">oStartupTaskVarsTool/$reloadModuleData</span> <span class="moddateby">(2009-02-05 Doug K.)</span><br /> Added method to reload the module data. This is needed if using the VCS after updating an oModuleData class which another developer has modified.</p> <p><span class="code">oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Removed the code which gets the $:UserKey from oSecurity and sets it in the defined list's table class instance.</p> <p><span class="code">oStringTables/$reloadModuleData</span> <span class="moddateby">(2009-02-05 Doug K.)</span><br /> Added method which just reloads the cached list from the oModuleData objects.</p> <p><span class="code">oTableClassMethods_SQLSERVER/$doinsertsBatch</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_SQLSERVER/$insertEmptyRecord</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_SQLSERVER/$insertRow</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_base/$:USERKEY.$assign</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Deprecated the $:UserKey.$assign method. Cached values are a problem.</p> <p><span class="code">oTableClassMethods_base/$doinsertsBatch</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_base/$doupdatesBatch</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_base/$insertEmptyRecord</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_base/$insertRow</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <p><span class="code">oTableClassMethods_base/$setDefaults</span> <span class="moddateby">(2009-02-04 Doug K.)</span><br /> Send a $setDefaults message to oCheckData if it has a recipient method.</p> <p><span class="code">oTableClassMethods_base/$updateRow</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Get the $:UserKey from oSecurity, rather than using the cached iUserKey. Cached values are such a hassle.</p> <span class="code">tBase/$:USERKEY.$assign</span> <span class="moddateby">(2009-02-11 Doug K.)</span><br /> Deprecated the $:UserKey.$assign method. Cached values are a problem. <a name="swdocs4" /> <h3>swDocs4</h3> No modifications <a name="swgui4" /> <h3>swGui4</h3> <p><span class="code">oFieldDecorator_click/$decorateField</span> <span class="moddateby">(2009-04-07 Doug K.)</span><br /> Enable the default context menu in case it was disabled by 'displayonly' decorator.</p> <p><span class="code">oFieldDecorator_displayonly/$decorateField</span> <span class="moddateby">(2009-04-07 Doug K.)</span><br /> Disable the default context menu for security reasons. Omnis Studio 4.3 fault that doesn't trap evClipChangedData for the default context menu.</p> <p><span class="code">oFieldDecorator_normal/$decorateField</span> <span class="moddateby">(2009-04-07 Doug K.)</span><br /> Enable the default context menu in case it was disabled by 'displayonly' decorator.</p> <p><span class="code">oFieldHandlerController/$event</span> <span class="moddateby">(2009-04-07 Doug K per Will Adkin)</span><br /> Added pEventCode=evClipChangedData to the events being trapped. Need this for security on displayonly fields.</p> <p><span class="code">oWindows/$reloadModuleData</span> <span class="moddateby">(2009-02-05 Doug K.)</span><br /> Added method to reload the module data.</p> <p><span class="code">wEdit_abstract/$eventClose</span> <span class="moddateby">(2009-04-07 Doug K. per Will Adkin.)</span><br /> Changed "Set ibModified to kFalse" to "Do $cinst.$:Modified.$assign(kFalse)" so that the code will work if $:Modified is overridden by a developer.</p> <p><span class="code">wHeadedListSimple_autoconfig/$attachHeadedListEventsObserver</span> <span class="moddateby">(2009-04-30 Doug K. per Will Adkin)</span><br /> 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.</p> <p><span class="code">wHeadedListSimple_autoconfig/$control</span> <span class="moddateby">(2009-04-30 Doug K per Will Adkin)</span><br /> Added $notify events observers to the evClick and evDoubleClick events.</p> <p><span class="code">wHeadedListSimple_autoconfig/$detachHeadedListEventsObserver</span> <span class="moddateby">(2009-04-30 Doug K. per Will Adkin)</span><br /> Added method to allow a registerd events observer to detach itself.</p> <p><span class="code">wPromptDateCalendar/$control</span> <span class="moddateby">(2009-04-30 Doug K per Birger Ragnarson)</span><br /> Added $control method for issuing 'Done' for enter or return key press.</p> <p><span class="code">wPromptShell/$event_ButtonPressed</span> <span class="moddateby">(2009-04-28 Doug K.)</span><br /> 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.</p> <p><span class="code">wSearchbar_abstract/$find</span> <span class="moddateby">(2009-03-26 Doug K per Andy H)</span><br /> 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.</p> <p><span class="code">wShell_Lookup/$event</span> <span class="moddateby">(2009-04-28 Doug K.)</span><br /> Don't let the user change tabs using the tab bar. They must either cancel or save to close lookup tabbar windows.</p> <p><span class="code">wShell_Lookup/$showSubWin</span> <span class="moddateby">(2009-04-28 Doug K.)</span><br /> Set ibIgnoreEvents to true while setting the current tab.</p> <span class="code">wWindowInstancesListEditor_View/runtimizeSelectedWinInstIDs</span> <span class="moddateby">(2009-02-27 Josh L.)</span><br /> Added the @DEBUG-NOTE comments so Doug can figure out why the errors are coming up whenever a window is runtimized. Then someone tries to access metadata without oModule Data being checked out. <a name="swicons4" /> <h3>swIcons4</h3> No modifications <a name="swrefs4" /> <h3>swRefs4</h3> No modifications <a name="swreports4" /> <h3>swReports4</h3> <span class="code">rReportFields_template/$#About</span> <span class="moddateby">(2009-04-30 Doug K per Andy H)</span><br /> Made the maximum width of any field 18cms to work with A4 paper. <a name="swweb4" /> <h3>swWeb4</h3> No modifications <p class="footer">StudioWorks Documentation - Copyright 2005 Vencor Software </p></div> </body> </html>