<?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-06-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 2007-06-30</p> <a name="version20070630" /> <h2>Version 2007-06-30</h2> <p>The following is a summary of the changes included in this release.</p> <ol> <li><strong>Prepare New Database</strong> - The code that handles automatically synchronizing the data base with the StudioWorks app if there are no tables in the database when you sign-in has been reviewed, retested, and debugged. Testing has been done with MySQL, FrontBase, and the Omnis data file. Testing has been done with and without the <span class="file">NewData.df1</span> file in the <span class="file">APP/startupitems/</span> folder.</li> <li><strong>Create New StudioWorks App</strong> - Documentation has been added for how to create a new StudioWorks app from scratch. See <span class="nav">StudioWorks > Misc > Create New StudioWorks App</span></li> <li><strong>SQLServer</strong> - The SQLSERVER related objects and code have been updated using the code provided by Andy Hilton. The big change is adding the IDENT code added for setting primary keys. The <span class="code">tBase</span> methods which <em>insert</em> records into the database have been <em>moved</em> to the <span class="code">oTableMethods</span> object class so that those methods could be modified in the <span class="code">oTableMethod_SQLSERVER</span> subclass. (Better code structure.) Existing code is <strong>not</strong> affected by this change.</li> <li><strong>Web App Subfolder</strong> - The <span class="file">swWeb4.lbs</span> libary and related <span class="file">html...</span> folders and files have been moved to a <span class="file">webapp</span> subfolder inside of the <span class="file">studioworks</span> folder. This keeps things simpler for StudioWorks developers who are not doing web apps. The web app documentation has been updated with instructions for moving the files and folders when developing a web app.</li> <li><strong>Method Checker</strong> - Went through all of the StudioWorks libraries using the Omnis Studio Method Checker looking for and fixing code errors. Went through the StudioWorks libraries with StudioWorks Code Tools deleting unused variables and checking unused parameters. Added placeholders for valid unused parameters or deleted invalid unused parameter. <strong>Note:</strong> A mass code cleanup like this could result in a few bugs showing up in this version. Not everything can be tested.</li> <li><strong>Blowfish Encryption</strong> - Fixed a bug in the <span class="code">oEncryptDecrypt</span> object which affected non-Mac platforms. You may need to recreate your tables owner logon file, and your autosignin file if applicable, in order to work with this release.</li> <li><strong>Calling a Superclass Private Method</strong> - Added documentation on the recommended process for doing this.</li> </ol> <p>To update to this new release:<br /> <ol> <li>Quit Omnis Studio.</li> <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> <li>Reopen your StudioWorks app.</li> <li>Test your app.</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="mysysadmin" /> <h3>mySysAdmin</h3> <p><span class="code">oSecurity_DBAccessor/$updateGroup</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Removed the bug workaround code from 2005-02-08 where $dowork was missing updating the security row. Returned to using a smartlist for doing the update. Also removed the early exit points and added bLogErrorIfNotFound to $getPrimaryKeyRecord message.</p> <p><span class="code">oSecurity_DBAccessor/$updateUser</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Removed the bug workaround code from 2005-02-08 where $dowork was missing updating the security row. Returned to using a smartlist for doing the update. Also removed the early exit points and added bLogErrorIfNotFound to $getPrimaryKeyRecord message.</p> <p><span class="code">oSpecialMenu/$createAutoSignInFile</span> <span class="moddateby">(2007-06-04 Doug K per Mike M.)</span><br /> Change to using the password embedded in the security row by calling oSecurity.$getUserPassword.</p> <span class="code">oSpecialMenu/$createAutoSignInFile</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Change EncryptedString variable to EncryptedBinVar to solve the blowfish encryption problem. <a name="swbase4" /> <h3>swBase4</h3> <p><span class="code">oCodeTools/$canModifyClass</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added method that checks whether or not a class can be modified based. Is the VCS used, if so is the class checked out?</p> <p><span class="code">oCodeTools/$find_Domethod$Methods</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Added code tools method to find 'Do method $' lines.</p> <p><span class="code">oCodeTools/$findreplace_Domethod$Method_to_Do$cinst$Method</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Added code tools method to find and replace 'Do method $' with 'Do $cinst.$'</p> <p><span class="code">oConstants/$:RuntimeMode.$assign</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Fixed the 'Calculate as kTrue'. iRuntimeMode was missing from the calculation.</p> <p><span class="code">oCreateLibrary/$addVersionsObjectsToAppLibs</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Adding missing 'End if' in the loop.</p> <p><span class="code">oDBAdminMethods_FRONTBASE/$dropIndex</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Refactored method to handle FlagOK correctly.</p> <p><span class="code">oDBAdminMethods_MYSQL/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-11 Doug K per Andy H)</span><br /> Moved the MySQL specific @MOD:1 to an overridden method in the MYSQL subclass of this superclass.</p> <p><span class="code">oDBAdminMethods_MYSQL/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added SQL reserved words audit at the start of the method. Removed early exits.</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$#About</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Copied the entire oDBAdminMethods_SQLSERVER class from Andy Hilton into StudioWorks.</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$_moveData</span> <span class="moddateby">(2007-06-05 added sections for identity tables - TBS)</span></p> <p><span class="code">oDBAdminMethods_SQLSERVER/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-05 TBS - Andy Hilton)</span><br /> Added an extra situation for identity columns in SQL Server</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added audit of table and column names for SQL reserved words to the beginning of the method. Did NOT remove early exits.</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$dropIndex</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Cleaned up FlagOK code.</p> <p><span class="code">oDBAdminMethods_SQLSERVER/$renameColumn</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added check for SQL reserved word and removed early exits. (Andy please audit this method)</p> <p><span class="code">oDBAdminMethods_SYBASE/$#About</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Copied in the entire oDBAdminMethods_SYBASE class from Andy Hilton. The SYBASE classes are currently beta stage only. Use at your own risk!</p> <p><span class="code">oDBAdminMethods_SYBASE/$dropIndex</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Cleaned up FlagOK code.</p> <p><span class="code">oDBAdminMethods_abstract/$_syncForeignKeys</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added missing 'End if' at the end of the method.</p> <p><span class="code">oDBAdminMethods_abstract/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-11 Doug K per Andy H)</span><br /> Moved the MySQL specific @MOD:1 to an overridden method in the MYSQL subclass of this superclass.</p> <p><span class="code">oDBAdminMethods_abstract/$_syncTableAndColumns</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added SQL reserved words audit at the start of the method. Removed early exits.</p> <p><span class="code">oDBAdminMethods_abstract/$auditSchemaForReservedWords</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added method to check for any SQL reserved words in the column names or the table name in a schema class.</p> <p><span class="code">oDBAdminMethods_abstract/$copyData</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Remove any schemas from the schemas list which do not have a table in the target database. This prevents the method from attempting to move data to a table which doesn't exist, resulting in a SQL error.</p> <p><span class="code">oDBAdminMethods_abstract/$dropTablesAndViews</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Bug fix? Search $ref.isview=0 not working. Yet $ref.isview=kFalse works.</p> <p><span class="code">oDBAdminMethods_abstract/$insertEmptyRecords</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Removed code which set flag to false if no primary key column. No pkey column is no longer considered an error.</p> <p><span class="code">oDBAdminMethods_abstract/$renameColumn</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added check column name for SQL reserved word to the sample code.</p> <p><span class="code">oDBAdminMethods_abstract/$renameTable</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added check table name for SQL reserved word to the sample code.</p> <p><span class="code">oDBAdminMethods_abstract/$renameView</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added check view name for SQL reserved word to the sample code.</p> <p><span class="code">oDBAdminMethods_abstract/$retMaxPrimaryKey</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Removed early exits. Set MaxCount to zero for composite pkey or if no pkey column - not an error.</p> <p><span class="code">oDBAdminMethods_abstract/$retNextPrimaryKey</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Remove early exits.</p> <p><span class="code">oDBAdminMethods_abstract/$retNextPrimaryKey</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Added parameter pPkeyColName to message sent to $retSQL_SelectPrimaryKeyCounterValue.</p> <p><span class="code">oDBAdminMethods_abstract/$retNextPrimaryKey</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> If the RDBMS does not support setting pkeys return the pkey = zero.</p> <p><span class="code">oDBAdminMethods_abstract/$setPrimaryKeyCounterValue</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Get the primary key column name at the start of the method. If composite pkey or no pkey column then just return true, don't consider this an error. Removed early exits.</p> <p><span class="code">oDBAdminMethods_abstract/syncDatabaseTablesToSchemas</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed 'Break to end of loop' (not in a loop) and cleaned up FlagOK code.</p> <p><span class="code">oDBAdminSQLReservedWords/$#About</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added object which stores the SQL reserved words list, returns it to senders, and has other handy public methods.</p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$#About</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Copied the entire oDBAdminSQLText_SQLSERVER class from Andy Hilton into StudioWorks.</p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_CreateTable</span> <span class="moddateby">(2007-06-05 TBS added the whole method to allow for identity columns if DBSetPrimaryKey is set)</span></p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_SelectPrimaryKeyCounterValue</span> <span class="moddateby">(2007-06-05 TBS added method)</span></p> <p><span class="code">oDBAdminSQLText_SQLSERVER/$retSQL_SetPrimaryKeyCounterValue</span> <span class="moddateby">(2007-06-05 TBS method added)</span></p> <p><span class="code">oDBAdminSQLText_SYBASE/$#About</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Copied in the entire oDBAdminSQLText_SYBASE class from Andy Hilton. The SYBASE classes are currently beta stage only. Use at your own risk!</p> <p><span class="code">oEncryptDecrypt/$decryptList</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Added $encrypt length header parameter = kTrue.</p> <p><span class="code">oErrorHandler/$getonceLastError</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Removed the code which sets the log file when this method is called. Not useful here.</p> <p><span class="code">oErrorHandler/$logProgramError_CanNotDoMethod</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added method for logging error when $MethodName.$cando comes back false.</p> <p><span class="code">oErrorHandler/$promptonceLastError</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Removed early exits.</p> <p><span class="code">oLogon/$_bindExtDAMObjToSessionObjVar</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> Added 'Mssg' variable calculation the error messages. It was missing. Added suggestion to check the spelling of the DAM as that is a possible source of error.</p> <p><span class="code">oLogon/$retDBTablesList</span> <span class="moddateby">(2007-06-19 Doug K per Andy H)</span><br /> Added a second attempt at fetching tableslist of none returned as tablesowner.</p> <p><span class="code">oLogonMethods_MYSQLDAM/$logon</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> MySQLDAM bug workaround with fields reporting data truncation. Set the $lobthreshold &amp;amp; $lobchunksize to 100,000,000.</p> <p><span class="code">oPaths/$:HTMTEMP.$assign</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> Added obsolete method for backwards compatibility.</p> <p><span class="code">oPaths/$:PathHtmlTempFolder</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added missing iPathHTMLTempFolder in the Calculate as.</p> <p><span class="code">oPaths/$:URLHTMLTEMP.$assign</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> Added obsolete method for backwards compatibility.</p> <p><span class="code">oPaths/$initialize</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> Added missing ':' character in setting the property method name.</p> <p><span class="code">oPrepareNewDatabase/$prepareNewDatabase</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Removed early exits.</p> <p><span class="code">oPrepareNewDatabase/$prepareNewDatabase</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Moved rebuilding of string tables (and all lists) to the top of the method just after initializing the DBAdmin object.</p> <p><span class="code">oPrepareNewDatabase/$prepareNewDatabase</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Moved setting the pkey counters to just after inserting new data records.</p> <p><span class="code">oPrepareNewDatabase/$prepareNewDatabase</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> If there are no users in the database add the default system admin user to the database.</p> <p><span class="code">oPrepareNewDatabase/_insertEmptyRecords</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Test the schemas list for columns and lines. Log an error if no lines in the schemas list.</p> <p><span class="code">oPrepareNewDatabase/_insertNewDataRecords</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Bug fix. Set flag to true if no 'NewData.df1' file. Not an error.</p> <p><span class="code">oPrepareNewDatabase/_setPkeyCounters</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Test for valid rSchema before attempting to set the primary key counter value.</p> <p><span class="code">oPrepareNewDatabase/_syncEmptyDatabase</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Remove $rebuildSQLLists from this method since the master method is already doing a full rebuild.</p> <p><span class="code">oRebuildCachedLists/$sortSchemaClassCols_Wn_Mn_Icons</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Moved extra 'End if' out of 'For' loop to the end of the method.</p> <p><span class="code">oRebuildCachedLists/$sortSchemaClassCols_stb</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Moved extra 'End if' out of 'For' loop to the end of the method.</p> <p><span class="code">oSQLLists/$initialize</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> The foreign keys list was being rebuilt if no lines. This was causing rebuild during runtime startup for apps with no foreign keys. Switched to check for $colcount=0.</p> <p><span class="code">oSQLLists/$retDefinedList</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> If the user key is missing, default to 999. Null value user key causes new database setup headaches.</p> <p><span class="code">oSecurity/$addDefaultSysAdminUser</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> New method which inserts the default system admin user for use when initializing a new database.</p> <p><span class="code">oSessionsManager/$:DefaultSessionRow_MYSQLDAM</span> <span class="moddateby">(2007-06-19 Doug K per Josh L.)</span><br /> Added default initial statement for MYSQLDAM.</p> <p><span class="code">oStartupTaskDefaultMethods/$signIn</span> <span class="moddateby">(2007-06-13 Doug K.)</span><br /> Check for the sign-in window instance and close if first if already open.</p> <p><span class="code">oStartupTaskVarsTool/$constructTaskVars</span> <span class="moddateby">(2007-06-19 Doug K. per Andy H.)</span><br /> Check for 'swWeb4' library and 'webmon' tvar before adding 'webmon' to the string.</p> <p><span class="code">oStartupTaskVarsTool/$initializeAfterSignIn</span> <span class="moddateby">(2007-06-19 Doug K. per Josh L.)</span><br /> Moved initialization of the 'eml' tvar from before sign-in to after sign-in.</p> <p><span class="code">oStartupTaskVarsTool/$initializeBeforeSignIn</span> <span class="moddateby">(2007-06-19 Doug K. per Josh L.)</span><br /> Moved initialization of the 'eml' tvar from before sign-in to after sign-in.</p> <p><span class="code">oStartupTaskVarsTool/constructObjRefVar</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Removed 'Open trace log' as this causes all subsequent lines of code to be written to the trace log.</p> <p><span class="code">oStartupTaskVarsTool/getTablesOwnerLogonInfo</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Change EncryptedString variable to EncryptedBinVar to solve the blowfish encryption problem. Change len(EncryptedString) to binlength(EncryptedBinVar) to test file contents.</p> <p><span class="code">oStartupTaskVarsTool/loadAutoSignInFile</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Change EncryptedString variable to EncryptedBinVar to solve the blowfish encryption problem. Change len(EncryptedString) to binlength(EncyptedBinVar) to test contents of auto sign-in file.</p> <p><span class="code">oTableMethods/$doinsertsBatch</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved $doinsertsBatch method from tBase to oTableMethods object so that it can be overridden for different RDBMSs. e.g. SQLServer</p> <p><span class="code">oTableMethods/$insertEmptyRecord</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved $insertEmptyRecord method from tBase to oTableMethods object so that it can be overridden for different RDBMSs. e.g. SQLServer</p> <p><span class="code">oTableMethods/$insertEmptyRecord</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Removed debug test code.</p> <p><span class="code">oTableMethods/$insertRow</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved $insertRow method from tBase to oTableMethods object so that it can be overridden for different RDBMSs. e.g. SQLServer</p> <p><span class="code">oTableMethods/$insertRow</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed 'Break to end of loop' and added check for FlagOK.</p> <p><span class="code">oTableMethods_SQLSERVER/$doinsertsBatch</span> <span class="moddateby">(2007-06-11 Doug K per Andy H)</span><br /> Overrode superclass method and added calls to subclass method setIdentityInsert for SQLServer pkeys.</p> <p><span class="code">oTableMethods_SQLSERVER/$doinsertsBatch</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Bug fix. Added replaceall(SQLText,'$cinst.','prcinst.') so that bind variables will be in scope.</p> <p><span class="code">oTableMethods_SQLSERVER/$insertEmptyRecord</span> <span class="moddateby">(2007-06-11 Doug K per Andy H)</span><br /> Overrode superclass method and added calls to subclass method setIdentityInsert for SQLServer pkeys.</p> <p><span class="code">oTableMethods_SQLSERVER/$insertEmptyRecord</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Bug fix. Added replaceall(SQLText,'$cinst.','prcinst.') so that bind variables will be in scope.</p> <p><span class="code">oTableMethods_SQLSERVER/$insertRow</span> <span class="moddateby">(2007-06-11 Doug K per Andy H)</span><br /> Overrode superclass method and added calls to subclass method setIdentityInsert for SQLServer pkeys.</p> <p><span class="code">oTableMethods_SQLSERVER/$insertRow</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed 'Break to end of loop' and added check for FlagOK.</p> <p><span class="code">oTableMethods_SQLSERVER/$insertRow</span> <span class="moddateby">(2007-06-19 Doug K per Andy H.)</span><br /> Bug fix. Added replaceall(SQLText,'$cinst.','prcinst.') so that bind variables will be in scope.</p> <p><span class="code">oTableMethods_SQLSERVER/$retNextPrimaryKey</span> <span class="moddateby">(2007-06-05 Andy H.)</span><br /> Method overwritten by TBS - allows for mix of tables with identity and without.</p> <p><span class="code">oTableMethods_SQLSERVER/setIdentityInsert</span> <span class="moddateby">(2007-06-05 Andy H.)</span><br /> Method added by TBS for SQLServer - allows for mix of tables with identity and without.</p> <p><span class="code">tBase/$dodeletesBatch</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Moved extra 'End if' inside the 'End for' loop to the end of the method.</p> <p><span class="code">tBase/$doinsertsBatch</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved the entire method to oTableMethods so that it can be overridden and modified for a specific RDBMS. e.g. SQLServer</p> <p><span class="code">tBase/$insertEmptyRecord</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved the entire method to oTableMethods so that it can be overridden and modified for a specific RDBMS. e.g. SQLServer</p> <p><span class="code">tBase/$insertRow</span> <span class="moddateby">(2007-06-11 Doug K.)</span><br /> Moved the entire method to oTableMethods so that it can be overridden and modified for a specific RDBMS. e.g. SQLServer</p> <p><span class="code">tbProgrammer/$#About</span> <span class="moddateby">(2007-06-26 Doug K.)</span><br /> Renamed 'tProgrammer' to 'tbProgrammer' to follow StudioWorks class naming conventions.</p> <p><span class="code">wCodeTools/$#About</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Added tab and subwindow for Find/Replace 'Do method $' with 'Do $cinst.$'</p> <p><span class="code">wCodeTools_FindReplaceDoMethod/$#About</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Added code tools subwindow which can find and replace 'Do method $' with 'Do $cinst.$'... quick &amp;amp; easy.</p> <p><span class="code">wCodeTools_FindReplaceDoMethod/buildTreelist_libs</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Changed to listing all of the open libraries regardless of task.</p> <p><span class="code">wCodeTools_UsedVars/buildTreelist_libs</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Changed to listing all of the open libraries regardless of task.</p> <p><span class="code">wDBAdminConstraints/$control</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Do method was calling a method that didn't exist. Fixed.</p> <p><span class="code">wDBAdminDataMover/$dropColumn</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added missing end if and removed early exits.</p> <p><span class="code">wDBAdminDataMover/$renameColumn</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Fixed Do method calling a method that didn't exist and removed early exits.</p> <p><span class="code">wDBAdminDataMover/_moveTableData</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Fixed 'End while' loop. It had an extra 'End if'.</p> <p><span class="code">wDBAdminSQLReservedWords/$#About</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Added DB Admin window which displays the SQL reserved words list.</p> <p><span class="code">wSQLMetaDataSchemaColsEditor/$_buildDefaultList</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added missing End if in the For loop.</p> <span class="code">wSQLMetaDataSchemaColsEditor/$editClass</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added missing End if to the end of the method. <a name="swdocs4" /> <h3>swDocs4</h3> <p><span class="code">@00 Tools ;; About/@50 Encrypt/Decrypt</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Corrected oEncryptDecrypt documentation to use binary variable for the encrypted values.</p> <p><span class="code">@15 StudioWorks Web App Instructions/@00 About</span> <span class="moddateby">(2007-06-13 Doug K.)</span><br /> Updated the instructions to include moving 'swWeb4' libary and the 'html' folder from the webapp folder to the 'studioworks' folder.</p> <p><span class="code">@15 StudioWorks Web App Instructions/@05 Web Server Setup</span> <span class="moddateby">(2007-06-13 Doug K.)</span><br /> Updated the instructions to include the webapp folder in the specified file and folder paths.</p> <p><span class="code">@15 StudioWorks Web App Instructions/@11 Startup Settings</span> <span class="moddateby">(2007-06-13 Doug K.)</span><br /> Added appmode=web and autosignin=TRUE to the startup settings instruction. Included warning about auto sign-in as well.</p> <p><span class="code">@20 Startup Settings/@45 Web App Mode</span> <span class="moddateby">(2007-06-13 Doug K.)</span><br /> Removed reference to installation of mWebMonitor menu. No longer applicable with introduction of webmon tvar and objects.</p> <p><span class="code">@21 Customizing Your App/@31 Calling a Superclass Private Method</span> <span class="moddateby">(2007-06-30 Doug K.)</span><br /> Added documentation on how to call a superclass private method.</p> <span class="code">@50 Create New StudioWorks App/@00 About</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Added documentation for creating a new StudioWorks app from scratch. <a name="swgui4" /> <h3>swGui4</h3> <p><span class="code">mReports/$initialize</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Changed 'Do inherited' to 'Do $cinst.$inherited.[$cmethod().$name](params)' so parameters are not listed as unused in method checker.</p> <p><span class="code">oConcretizer/addField</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed extra 'End if' in the first 'Else if' of the 'Default' case.</p> <p><span class="code">oContactInfoFunctions/$convertFormalNameToSortName</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Change 'End if' to 'End for'</p> <p><span class="code">oFieldHandlerLookupTypeAhead/$promptSelectLookupRecord</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter 'pbLookupContains'.</p> <p><span class="code">oLastSelectedSearchCriteria/$deleteCriteriaList</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed early exit.</p> <p><span class="code">oMenus/$:AppLibsList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter 'pList'.</p> <p><span class="code">oMenus/$initialize</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Removed early exit points. Changed parameter 'pfWindowsList' to 'pfWindowsList_OBSOLETE' since it is no longer used. Deleted ivar iWindowsList since it is no longer used.</p> <p><span class="code">oWindows/$GETCUSTOMWINPROPERTY</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindows/$GETCUSTOMWINPROPERTY</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deprecated method because is should be name $ret... not $get... as it returns the properties list.</p> <p><span class="code">oWindows/$GETLISTPROPERTIESLISTT</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindows/$GETLISTPROPERTIESLISTT</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deprecated method because is should be name $ret... not $get... as it returns the properties list.</p> <p><span class="code">oWindows/$restoreWindowSize</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindows/$retCustomWinProperty</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Renamed the method from $get.. to $ret since this method returns a value.</p> <p><span class="code">oWindows/$retListPropertiesList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Renamed the method from $get.. to $ret since this method returns a value.</p> <p><span class="code">oWindows/$saveWindowSize</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindows/$setCustomWinProperty</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindows/$setListPropertiesList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Replaced 'Do redirect' with actual method call to ioWindowProperties.</p> <p><span class="code">oWindowsProperties/$setListPropertiesList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Change 'Do...$search' to 'If not(...$search'</p> <p><span class="code">wContainer_Edit_ListChildren_abstract/$newRecord</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pfList.</p> <p><span class="code">wContainer_List_ListChildren_abstract/$_setChildRecordsList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pTabNum.</p> <p><span class="code">wContainer_TabListSpecific_abstract/$:DataList</span> <span class="moddateby">(2007-06-14 Doug K per Andy H)</span><br /> Added $cando check, return 'List' from the subwindow and 'Quit method List'.</p> <p><span class="code">wContainer_TabListSpecific_abstract/$:DataListRef</span> <span class="moddateby">(2007-06-14 Doug K per Andy H)</span><br /> Added $cando check, return 'rList' from the subwindow and 'Quit method rList'.</p> <p><span class="code">wContainer_TabList_abstract/$_setParentRecordsList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pTabNum.</p> <p><span class="code">wEdit_abstract/$_setMode</span> <span class="moddateby">(2007-06-20 Doug K.)</span><br /> Removed 3rd parameter iSQLClassName. Not the correct parameter.</p> <p><span class="code">wHeadedListSimple_autoconfig/setListSortColumnAndStatusText</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pfList.</p> <p><span class="code">wHeadedList_autoconfig/$detachHeadedListEventsObserver</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Delete unused parameters pCallBackMethod and pEventCodeCSV.</p> <p><span class="code">wHeadedList_autoconfig/saveUserPropertiesList</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getListPropertiesList to $retListPropertiesList. The $get method was deprecated and renamed.</p> <p><span class="code">wHeadedList_autoconfig/setListProperties</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getListPropertiesList to $retListPropertiesList. The $get method was deprecated and renamed.</p> <p><span class="code">wHeadedList_autoconfig/setListSortColumnAndStatusText</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Delete unused parameter pfList.</p> <p><span class="code">wList_abstract/$listRecords</span> <span class="moddateby">(2007-06-12 Doug K per Andy H.)</span><br /> Set the flag to true if the lists use the same SQL class and we simply copy the incoming list.</p> <p><span class="code">wMainWindow/$goToSubWin</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pbOpenNewWindow.</p> <p><span class="code">wNav_ButtonsTreelist/$FavoritesEvent</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wNav_ButtonsTreelist/$constructButtons</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wNav_ButtonsTreelist/$removeNode</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wNav_ButtonsTreelist/$restoreTreelistState</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wNav_Treelist/$addFavoritesFolder</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wNav_Treelist/$restoreTreelistState</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getCustomWinProperty to $retCustomWinProperty. The $get method was deprecated and renamed.</p> <p><span class="code">wPromptDateCalendar/$construct</span> <span class="moddateby">(2007-06-30 Doug K per Andy H.)</span><br /> Added call to set window location method.</p> <p><span class="code">wPromptDateCalendar/setWindowLocation</span> <span class="moddateby">(2007-06-30 Doug K per Andy H.)</span><br /> Added method to set the prompt calendar window location centred on the top window.</p> <p><span class="code">wPromptFindMultiCriteria/saveSelectedSearch</span> <span class="moddateby">(2007-06-30 Doug K. per Andy H.)</span><br /> Bug fix. Changed column name from 'value' to 'searchtypevalue'.</p> <p><span class="code">wPushbuttons/$construct</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Delete unused parameters 'pIconsOnly, pTextOnly, pButtonName'.</p> <p><span class="code">wSearchbar_abstract/$setEntryField</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Delete unused parameter 'pbKeepPrevValue'.</p> <p><span class="code">wSearchbar_abstract/loadLastCriteria</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getListPropertiesList to $retListPropertiesList. The $get method was deprecated and renamed.</p> <p><span class="code">wSearchbar_abstract/saveLastCriteria</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed $getListPropertiesList to $retListPropertiesList. The $get method was deprecated and renamed.</p> <p><span class="code">wShell/$showSubWin</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed 'Do inherited' to 'Do $cinst.$inherited...' so that method checker doesn't list parameters as unused.</p> <p><span class="code">wSignIn/$event</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Changed 'Do method $signIn' to 'Do $cinst.$signIn' so that overridden subclass method will be called.</p> <p><span class="code">wSignIn/$signIn</span> <span class="moddateby">(2007-06-12 Doug K.)</span><br /> Get the user password from the oSecurity object.</p> <p><span class="code">wWindowInstancesBrowser/_addChildNodes_level2</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter prNode.</p> <span class="code">wWindowInstancesBrowser/rebuildTreelistSelectedWinInstIDs</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Delete unused parameter pRebuildLibsList_opt. <a name="swrefs4" /> <h3>swRefs4</h3> <p><span class="code">oModulePrefs_abstract/$construct</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter prPrefsSchema.</p> <p><span class="code">oRefs/$retStringTablesList</span> <span class="moddateby">(2007-06-19 Doug K. per Chuck Martin.)</span><br /> Check if the Refs table exists before attempting to fetch records. No error if the table doesn't yet exist.</p> <span class="code">wRefsLookupList/$edit</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pbOpenNewWindow. <a name="swreports4" /> <h3>swReports4</h3> <p><span class="code">oPrintReport_abstract/$printDefaultReport</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed the breakpoint and added return FlagOK.</p> <p><span class="code">oReportProperties/$initialize</span> <span class="moddateby">(2007-06-19 Doug K.)</span><br /> Remove early exits and breakpoints and set the flag to true of all went well.</p> <p><span class="code">rReport_abstract/$_calcPrintInfoText</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pbPrintInfoText.</p> <p><span class="code">rReport_abstract/$_findaddalignObj</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Removed breakpoint and early exit.</p> <p><span class="code">wPromptPrintReport/saveReportSettings</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Refactored the method.</p> <span class="code">wPromptPrintReport/switchToReportSettingsPage</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Refactored the method. <a name="swweb4" /> <h3>swWeb4</h3> <p><span class="code">oDeleteTempHTMLFilesTimer/$initialize</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pFileAgeInMinutes_opt.</p> <p><span class="code">oEdit_autoconfig/$_newCopy</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameters pWinInstID, pMode, pfList.</p> <p><span class="code">oEdit_autoconfig/$_newRecord</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameters pWinInstID, pMode, pfList.</p> <p><span class="code">oEdit_autoconfig/$_saveandnew</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameters pWinInstID, pMode, pfList.</p> <p><span class="code">oEdit_autoconfig/$_saveandnewcopy</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameters pWinInstID, pMode, pfList.</p> <p><span class="code">oHTMLDataBroker/$_copyParamsValuesToRowCols</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pPKeyColName.</p> <p><span class="code">oHTMLDataBroker/$deletePKeysListRecords</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added parameter bLogErrorIfNotFound=kTrue to the $getPrimaryKeyRecord message. Better error handling.</p> <p><span class="code">oHTMLDataBroker/$retPKeysListRecords</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added parameter bLogErrorIfNotFound=kTrue to the $getPrimaryKeyRecord message. Simpler error handling.</p> <p><span class="code">oHTMLDataBroker/$updateRecord</span> <span class="moddateby">(2007-06-14 Doug K.)</span><br /> Added parameter bLogErrorIfNotFound=kTrue to the $getPrimaryKeyRecord message. Better error handling.</p> <span class="code">oSignIn/$:SignInPageTitle</span> <span class="moddateby">(2007-06-21 Doug K.)</span><br /> Deleted unused parameter pfList. <p class="footer">StudioWorks Documentation - Copyright 2005 Vencor Software </p></div> </body> </html>