<?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 2011-01-28</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 2011-01-28</p> <a name="version20110128" /> <h2>Version 2011-01-28</h2> <p>This is a minor release with various bug fixes and minor enhancements.</p> <ul> <li><span class="nav">Navigation Treelist</span> - Allows expanding / contracting nodes without opening the associated window.</li> <li><span class="nav">Deleting Files and Folders</span> - Developers now have more control over deleting files and folders.</li> <li><span class="nav">Omnis Studio 5.x</span> - This release should be fully updated and compatible with unicode and Omnis Studio 5.x</li> </ul> <p>To update to this new release:</p> <ol> <li>Quit Omnis Studio.</li> <li>Backup your application! </li> <li>Install Omnis Studio 5.x.</li> <li>Replace the <span class="file">studioworks</span> folder.</li> <li>Open your application and test.</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="swbase4" /> <h3>swBase4</h3> <p><span class="code">oConstants/$:AppMode</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oConstants/$:RuntimeMode</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oConstants/$:RuntimeMode.$assign</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oConstants/$initialize</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oDBAdminMethods_abstract/$_syncTableAndColumns</span> <span class="moddateby">(2010-08-13 Josh L. as per Andy H.)</span><br /> Added a statement object parameter to $retSQLAddColumn for SQLServer (not used otherwise)</p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_AddColumn</span> <span class="moddateby">(2010-08-13 Josh L. as per Andy H.)</span><br /> Added the pStmntObj parameter</p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_SQLDataType</span> <span class="moddateby">(2010-08-13 Josh L. as per Andy H.)</span><br /> Sometimes the DAM returns something it's not supposed to, change it based on the column datatype.</p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_SQLDataType</span> <span class="moddateby">(2010-08-13 Josh L.)</span><br /> introduced error checking as this method may produce an error that won't be caught otherwise.</p> <p><span class="code">oDBSessionMethods_base/$#About</span> <span class="moddateby">(2010-12-10 Josh L. as per Andy H.)</span><br /> Changed ckStateError_NotInitialized from 'notinitilized' to 'notinitialized'</p> <p><span class="code">oEmail/$initialize</span> <span class="moddateby">(2011-01-06 Josh L.)</span><br /> Use security. It will only be used if authentication is true.</p> <p><span class="code">oEmail/$initialize</span> <span class="moddateby">(2011-01-06 Josh L.)</span><br /> Use verification. It will only be used if security is true.</p> <p><span class="code">oEmail/$sendEmail</span> <span class="moddateby">(2011-01-06 Josh L. as per Doug K.)</span><br /> Trying to connect to the mail server before sending the email takes too much time.</p> <p><span class="code">oEmail/$sendEmail</span> <span class="moddateby">(2011-01-06 Josh L.)</span><br /> Added the Secure and Verify options to SMTPSend while using authentication.</p> <p><span class="code">oErrorHandler/$#About</span> <span class="moddateby">(2010-08-13 Josh L. as per Andy H.)</span><br /> The Error log table can now contain NULL and {} (empty string or set) in the LibraryClassMethod field and {} in the Mssg field.</p> <p><span class="code">oErrorHandler/$initialize</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oFunctions/$deleteEnclosedFiles</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added the method $deleteEnclosedFiles to only delete files, not folders. It also has more control over the files you delete.</p> <p><span class="code">oFunctions/$deleteEnclosedFilesAndFolders</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added an include hidden files parameter to the method called. This method will now remove ALL files and folders from the enclosing folder down in the directory structure.</p> <p><span class="code">oFunctions/$deleteEnclosedFolders</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added the method $deleteEnclosedFolders which only deletes folders, not files and provides more control over the folders deleted. NOTE If there are still files in a folder to be deleted this method will exit with an error.</p> <p><span class="code">oFunctions/$isOmnisDeveloper</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oFunctions/$retEnclosedFilesList</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added an include hidden files parameter to this method and the method called</p> <p><span class="code">oFunctions/$retEnclosedFoldersList</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added the $retEnclosedFoldersList method with the same parameters as $retEnclosedFilesList</p> <p><span class="code">oFunctions/$retOmnisLicense</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Created a method to lump all the sys(2) calls together so there is only one place to change them when omnis changes the method.</p> <p><span class="code">oFunctions/retEnclosedFilesList</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Can choose to include hidden files or not, depending on whether they want all files and the directory structure removed.</p> <p><span class="code">oFunctions/retEnclosedFoldersList</span> <span class="moddateby">(2010-07-22 Josh L.)</span><br /> Added the option to keep hidden folders in the list to be returned.</p> <p><span class="code">oLocalPrefs/$:ShowProgrammerPingButtons</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oMetaDataSchemaClass_Model/update_hasdefaultwininsts</span> <span class="moddateby">(2010-09-29 Josh L.)</span><br /> Finished and tested this method correctly on June 29, 2010</p> <p><span class="code">oObjectClassErrorHandlerMethods/logError</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oPaths_StudioWorks/$:HTMLFilesList</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oPrepareNewDatabase/$prepareNewDatabase</span> <span class="moddateby">(2010-11-30 Josh L. as per Chuck M.)</span><br /> Sync the database without constraints first, then insert default and empty records, then sync with constraints.</p> <p><span class="code">oRebuildCachedLists/$rebuildAllCachedLists</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oRebuildCachedLists/$saveSharedAppPrefs</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oRebuildCachedLists/getTablesOwnerLogonInfo</span> <span class="moddateby">(2010-12-01 Josh L.)</span><br /> Changed the $readfile to $readcharacter(kunitypeauto,... so it will work with Omnis 5.x</p> <p><span class="code">oSQLLists/$initialize</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskDefaultMethods/$_setReportDefaults</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskDefaultMethods/$constructMethod</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskDefaultMethods/$signIn</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskDefaultMethods/openLibraries</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskVarsTool/$initializeAfterSignIn</span> <span class="moddateby">(2010-11-30 Josh L. as per Andy H.)</span><br /> Replaced the call to initialize last selected</p> <p><span class="code">oStartupTaskVarsTool/$initializeAfterSignIn</span> <span class="moddateby">(2010-12-20 Josh L.)</span><br /> Moved the $initialize_refs call here from $setTaskVarPropertiesAfterSignIn because it's used in stb.$retDatabaseStringTables</p> <p><span class="code">oStartupTaskVarsTool/$initialize_last_selected</span> <span class="moddateby">(2010-11-30 Josh L. as per Andy H.)</span><br /> Removed the X_ prefix from this method so it can be called in $initializeAfterSignIn</p> <p><span class="code">oStartupTaskVarsTool/$initialize_local_prefs</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn</span> <span class="moddateby">(2010-12-20 Josh L.)</span><br /> Moved the $initialize_refs call to $initializeAfterSignIn as it is used in stb.$retDatabaseStringTables</p> <p><span class="code">oTableClassMethods_base/$dodeletesBatch</span> <span class="moddateby">(2010-09-09 Josh L.)</span><br /> Composite (multiple columns used in) primary keys work for the "normal" case for me. If you are using anything other than a schema, the special case WON'T work.</p> <p><span class="code">oTableClassMethods_base/$dodeletesBatch</span> <span class="moddateby">(2010-09-09 Josh L.)</span><br /> What you're really doing is saying "Don't bother deleting rows with composite primary keys."</p> <p><span class="code">oTableClassMethods_base/$setDefaults</span> <span class="moddateby">(2010-08-13 Josh L. as per Andy H.)</span><br /> Moved the block of code below into the if statement to take advantage of the error handling earlier in the method.</p> <p><span class="code">wDBAdminTables/$event</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">wDBAdminTables/$event</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">wLogFileViewer/$construct</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <span class="code">wSecurityTimeoutSignIn/$construct</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future. <a name="swdocs4" /> <h3>swDocs4</h3> No modifications <a name="swgui4" /> <h3>swGui4</h3> <p><span class="code">mCommands/$construct</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">mMainMenu/$construct</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oConcretizer/$initialize</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oConcretizer/setRuntimeFieldsAndFieldPropertiesList</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">oFieldHandlerLookupTypeAhead/event_evAfter</span> <span class="moddateby">(2011-01-18 Josh L.)</span><br /> When deleting a value in a lookup list, there is no list lines or values set.</p> <p><span class="code">oMenus/$installMainMenu</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">wBase_ToolbarTitlebar_abstract/$_constructEnabledCmndsCSV</span> <span class="moddateby">(2011-01-10 Josh L.)</span><br /> Only try to replace the 'edit' command if there is an edit command present in the enabled commands csv.</p> <p><span class="code">wEditList_abstract/$eventClose</span> <span class="moddateby">(2010-11-17 Josh L. as per Andy H.)</span><br /> Changed from if iList.$linecount()=0 to if iList.$linecount()=1 because of a few lines below about the single modified record.</p> <p><span class="code">wEdit_abstract/$newRecordCopy</span> <span class="moddateby">(2010-07-21 Josh L. as per Mike M.)</span><br /> Took out the code prepending 'Copy Of' to the first text column in the schema.</p> <p><span class="code">wHeadedList_autoconfig/buildListObjFromMetaData</span> <span class="moddateby">(2010-07-29 Josh L.)</span><br /> The int value doesn't take decimal numbers into consideration eg (0.5=0) just had to take out the int() part.</p> <p><span class="code">wList_autoconfig/$new</span> <span class="moddateby">(2010-12-20 Josh L.)</span><br /> Added the parameter pbOpenNewWindow which allows the override of #SHIFT</p> <p><span class="code">wList_autoconfig/$newCopy</span> <span class="moddateby">(2010-12-20 Josh L.)</span><br /> Added the parameter pbOpenNewWindow which allows the override of #SHIFT</p> <p><span class="code">wMainWindow/$eventClose</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">wMainWindow_NoShowHideNavList/$eventClose</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future.</p> <p><span class="code">wNav_Treelist/$event</span> <span class="moddateby">(2010-12-09 Josh L.)</span><br /> ADded the trapping of the evTreeCollapseExpandFinished event and the instance variable ibExpandCollapseTree Changed the On evMouseDown to On evMouseUp so we can trap the expand / collapse event before the mouse event. Added in the if conditional to the mouse event so we can 'discard' the mouse up if the tree is only being expanded / collapsed. In this way users can expand / collapse the tree wihtout opening the window associated with the node clicked but can still open windows if wanted.</p> <p><span class="code">wPromptFindMultiCriteria/$initialize</span> <span class="moddateby">(2011-01-06 Josh L.)</span><br /> Commented out the sort so the search criteria is in the same order as the searchbar</p> <p><span class="code">wPromptInput/_addFieldAtPos</span> <span class="moddateby">(2010-11-09 Josh L.)</span><br /> Added an attempt to translate each individual radio button's label.</p> <p><span class="code">wPromptInput/_addLabelWithWidth</span> <span class="moddateby">(2010-11-09 Josh L.)</span><br /> Added a clause to the translation of labels to try and translate labels without a '.' character in them by prepending 'mn.' to the string.</p> <p><span class="code">wPromptInput/addFieldsAndLabels</span> <span class="moddateby">(2010-07-21 Josh L.)</span><br /> Modified the workaround for Snow Leopard which actually returns a negative value.</p> <p><span class="code">wPromptShell/$_setScrollbars</span> <span class="moddateby">(2010-08-17 Josh L.)</span><br /> Added if ... cando for the $:Preferred methods in case the subwindow doesn't have them.</p> <p><span class="code">wPromptShell/$_setWindowSizeAndLocation</span> <span class="moddateby">(2010-08-06 Josh L.)</span><br /> Modified the positioning of the prompt window to be always directly inside or overtop of the top window.</p> <p><span class="code">wPromptShell/$_setWindowSizeAndLocation</span> <span class="moddateby">(2010-08-06 Josh L.)</span><br /> Adjust the position to be on the visible portion of the screen. (using both the lower and upper bounds).</p> <p><span class="code">wPromptShell/$_setWindowSizeAndLocation</span> <span class="moddateby">(2010-08-17 Josh L.)</span><br /> Added the if ... cando so that the method won't break if the subwindow doesn't have those $:Preferred methods.</p> <span class="code">wSignIn/$construct</span> <span class="moddateby">(2010-10-14 Josh L.)</span><br /> Consolidating all sys(2) function calls so they are easy to change in the future. <a name="swicons4" /> <h3>swIcons4</h3> No modifications <a name="swrefs4" /> <h3>swRefs4</h3> No modifications <a name="swreports4" /> <h3>swReports4</h3> No modifications <a name="swweb4" /> <h3>swWeb4</h3> <p><span class="code">oCreateWebPage/$createSignInPage</span> <span class="moddateby">(2011-01-06 Josh L. as per Doug K.)</span><br /> Changed $writecharacter(,kunitype.. to $writecharacter(kunitype..</p> <p><span class="code">oHTMLDataBroker/$_copyParamsValuesToRowCols</span> <span class="moddateby">(2010-09-15 Josh L. as per Andy H.)</span><br /> Added a DateTimeVar and a clause to handle its assignation below.</p> <p><span class="code">oHTMLDateStringParse/$convertDateStringToDataVar</span> <span class="moddateby">(2010-09-15 Josh L. as per Andy H.)</span><br /> Altered the message to include a DateTimeVar so a date &amp;amp; time can be converted and handling it.</p> <p><span class="code">oHTMLDateStringParse/_calcDateVarFromParseRowVar4Cols</span> <span class="moddateby">(2010-09-15 Josh L.)</span><br /> Added this method for date-time conversion.</p> <p><span class="code">oHTMLDateStringParse/calcDateVarFromParseRowVar</span> <span class="moddateby">(2010-09-15 Josh L. as per Andy H.)</span><br /> Added the condition for 4 columns (date &amp;amp; time).</p> <p><span class="code">oHTMLDateStringParse/calcDateVarFromParseRowVar</span> <span class="moddateby">(2010-09-15 Josh L. as per Andy H.)</span><br /> Added the condition to check for the date time var and assign to a new date time parameter passed in.</p> <span class="code">oHTMLTools/$convertRowToHTMLEditTable</span> <span class="moddateby">(2010-09-15 Josh L. as per Andy H.)</span><br /> Change simply looking for DisplayOnlyAlways, look for both DisplayOnly and DisplayOnlyAlways as displayonly has replaced displayonlyalways in most places. <p class="footer">StudioWorks Documentation - Copyright 2005 Vencor Software </p></div> </body> </html>