|
Bug fixes for the current VMP build This page lists the bug fixes for the current VMP build. The download page always contains the current maintenance release of VMP, and this page contains the bug fix listing from the header comments of XXFWMAIN.PRG. Whenever you encounter what appears to be a bug in VMP, you should always check this page before reporting the bug -- you'll frequently find that the bug has already been reported by someone else, and the fix is listed here. If you do need to report a bug, please do so by following the instructions on the Report a Bug page.
Jan 16, 2010 Build 01 (1/16/2010) XXFwControlBehaviors.VCX/cusDTOTextbox::OwnerKeyPress() method; this resolves the following issue that Peter Huppelschoten reported: trying to [Tab] out of a date-bound textbox whose .Value is .NULL. doesn't work (focus remained in the field). (Thanks to Peter Huppelschoten for bringing this to my attention.) - uncommented the following line in the XXFwUtil.VCX/frmWorkAreasViewer::Show() event-method: llRestore = oUser.oPrefs.RestorePrefs(ThisForm, ThisForm) which had accidentally been commented out in the 2005.12.15.01 build. (Thanks to Ric Unruh for bringing this to my attention.) - resolved the following issue that was in the VM VMP example application: - run 'Tools | Options' from the menu - set language to German - run the Event Log (Administrator | Ereignisprotokoll) - column headers are translated except the current sort column - click on a column header to resort - all column headers now in English (Thanks to Andy Patrick for bringing this to my attention.) - resolved an issue in the XXFw.VCX/frmBase::BorderStyle_Assign() method that "locked up" forms when that event-method was called while invoking a picklist form. (Thanks to Craig McFarlin for bringing this to my attention.) - resolved an issue in the XXFwUtil.VCX/frmWorkAreasViewer.pgfInfo.pagEntireCursor.txtVoyeur::GotFocus() event-method that caused the grid column .ControlSource-s to get re-arranged upon, for example, doing the following: - run the the Work Areas Viewer - go to the 'Entire cursor' tab/page - go to the 'Structure' tab/page - go to the 'Entire cursor' tab/page (Upon arriving to the 'Entire cursor' tab/page the second time, the issue occurred.) - corrected code in the XXFwUtil.VCX/frmWorkAreasViewer::Destroy() event-method. Previously, the code was restoring the SET DELETED setting for *all* data sessions; it now correctly restores the SET DELETE setting for each data session. (Thanks to Mike Potjer for pointing this out.) - resolved the following scenario that Emil Baer reported: - DO XXDTHack WITH 'ntdecus1.scx' - changed BaseClass filter from 'No filter' to 'textbox' - renamed 1st occurrence of class 'txtntbase' to 'textbox' - upon pressing [Tab] to move out of the Class (textbox) into the ClassLoc (textbox), the BaseClass filter continues to display 'textbox' but no longer filters the list by 'textbox' - resolved an issue toward the bottom of the XXFwNTBO.VCX/ctrBusinessObject::UnPackageNonCursorData() method that Mike Potjer reported - replaced the following line in the XXFwFrm.VCX/frmStandBy::Init() event-method: CASE VARTYPE(m.oApp) = 'C' with the following line: CASE VARTYPE(m.oApp) = 'O' (Thanks to Mike Potjer for reporting this issue.) - Resolved the "Data type mismatch" error that VMP developer Peter Huppelschoten got on the following line: USE IN SELECT('JunkCursor') under certain circumstances (e.g., extremely fast CPU and quad processor) after doing something like: SQLEXEC(m.lnTestHandle, m.lcSQL, 'JunkCursor') The resolution (a call to DOEVENTS) can be found at the following locations: a) XXDTES('XXFwLibs.VCX', 'DOEVENTS', 'cusConnectionSvc' , 'TestConnection') b) XXDTES('XXFwNTDS.VCX', 'DOEVENTS', 'cusConnectionBehaviorODBC', 'TestConnection') c) the DOEVENTS line after the following line in XXFwMain.Prg: XXDTES('XXFwMain.Prg', "llValid = SQLEXEC(m.tnStatementHandle, [SELECT 'testconnection'], 'JunkCursor') > 0") - you can no longer get a "Cannot quit Visual FoxPro" error message under the following scenario: click on [X] (the Close commandbutton) on a slow machine and/or slow network and, while the form is shutting down, click [X] again. XXDTES('XXFw.VCX', '_Screen.Closable', 'ctrApp', 'OnShutdown') Thanks to Peter Huppelschoten for reporting this issue and supplying the fix: a) disable the button during the shutdown process and b) restore the close button if the shutdown process terminates - in the XXFwIUDLog.VCX/BO_IUDLog::GenerateIUDLogWHEREClause() method, now only adding "AND" if lcWhereClause is not empty. (Thanks to Mike Potjer for recommending this.) - in the XXFwFrm.VCX/frmChangePassword.txtCurrentPassword::ActionOnValid(), added the alias as a 2nd parameter to the OLDVAL() call. Peter Huppelschoten had indicated that without the alias/2nd parameter, although everything worked fine with Visual FoxPro on the back-end, he experienced a problem when his data was in SQL Server. - resolved an error that occurred when doing the following steps: - fire up the NT Example application development environment - ensure IUD logging is enabled for the example application/database - DO FORM NTDECusC1.SCX - make at least one change to a Customer record to ensure that there is IUD log data for it - [Right-Click] on any data entry control in the form and select the "Display history for this Customer record…" option - [Right-Click] on the IUD history form (not on a control on the form but on the form itself), and select 'Cus_PK' from the menu (Thanks to Mike Potjer for bringing this to my attention.) - resolved an "Cannot insert explicit value for identity column in table 'ERRORLOG' when IDENTITY_INSERT is set to OFF." error that sometimes occurred when running the VMP Upsizing Wizard (Thanks to Peter Huppelschoten for bringing this to my attention.) - resolved an error that occurred in the XXFwIUDLog.VCX/BO_IUDLog::CreateResultCursorAlias() method when trying to display all changes to a record in a table which had memo fields in it (Thanks to Mike Potjer for [a] bringing this to my attention and [b] supplying the code to resolve this.) - resolved an error in the spellchecker whereby if the editbox contains more than one line, the checker did not check the first word of subsequent lines (i.e., lines 2, 3, 4, etc.) (Thanks to Ric Unruh for [a] bringing this to my attention and [b] supplying the code to resolve this.) - resolved bug in the XXFw.VCX/cusAppLibs::LoadDIMember() method that occurs under the following circumstances: 1. Add a page to a pageframe 2. Change the PageOrder of the page so that it precedes a pre-existing page. 3. Use the oLib.LoadDIMember() method to load delayed-instantiation controls on the new page. For example, add a 4th page, which VFP names 'Page4', and set its PageOrder = 3. Now the page named 'Page3' has .PageOrder = 4. When the user clicks on 'Page4' for the first time, the code in the LoadDIMember() method loads the DI container correctly, but then activates 'Page3'. (Thanks to Mike Potjer for [a] bringing this to my attention and [b] supplying the code to resolve this.) - the XXFw.VCX/cusForms::TimeoutAllForms() method now checks the PEMSTATUS() of 'OnTimeoutReached' before the second call to the .OnTimeoutReached() method (thus preventing a problem with forms that do not have that method) (Thanks to Ric Unruh for bringing this to my attention.) - now wrapping DATETIME() calls in the following methods with TRY-CATCH-ENDTRY: - XXFwControlBehaviors.VCX/cusDTOTextbox::OwnerValid() - XXFwControlBehaviors.VCX/cusDTOTextbox::UpdateOwnerControlSource() this resolves errors that occurred when a bad/invalid date was entered into a date/datetime-bound textbox (Thanks to Peter Huppelschoten for bringing this to my attention.) - now SET-ting SAFETY OFF in the DeleteDBC procedure in XXCreateDBCWithRemoteViewsOfVMPSystemTables.Prg; this resolves an issue that Peter Huppelschoten encountered when running a subsequent occurrence of a remote-data application - in the XXFwNT.VCX/cusMessageServices::OpenMsgSvcTable() method, the following line: XXLOGGER('cusMessageServices::OpenMsgSvcTable is about to RETURN .F. because the MsgSvc.DBF cannot be opened', .T.) now displays only if the method is unsuccessful (it used to display whether the method was successful or not) (Thanks to Mike Potjer for bringing this to my attention.) Dec 15, 2008 ================================================= Build 02 (12/18/2008) Build 01 (12/15/2008) method; this "fulfills" the following comment that has been in the latter method for quite a while: "Called from ThisForm.UpdateFormOnAdd(), this method is called at the end of a successful ThisForm.AddAction()" Thanks to Mike Potjer for pointing this out. - resolved the following scenario that Mike Potjer reported on the VMP Message Board: "if XXFwGrd.VCX/grdDataEntry::DeleteBlankRows() is called without first selecting the grid's RecordSource, it will do nothing if the current ALIAS() does not use optimistic table buffering. That's because the following line of code does not specify the alias when checking the buffering, neither does the method include code prior to this condition to explicitly set the work area to the RecordSource: XXDTES('XXFwGrd.VCX', [OR (NOT CURSORGETPROP('Buffering'], 'grdDataEntry', 'DeleteBlankRows')" - resolved the following scenario that Mike Potjer reported: "in the XXDTGenPopCode form, the directory dropdown in step 4 saves a list of folders, but it doesn&'t appear to change folders via the dropdown (listbox). Here’s how to reproduce this: 1. DO XXDTGenPopCode 2. Make sure the directory dropdown contains more than one path. If not, you may need to select a new path, close the form, and re-run XXDTGenPopCode. 3. Using the dropdown in step 4, Select any path other than the path displayed there when the form was opened. 4. Click the [Generate] commandbutton 5. The messages that appear indicate that the file was created in the path that was displayed in the dropdown when the form was opened, not in the path currently displayed in the dropdown. 6. Click on the ellipsis button ([...]) in step 4. The path selected in GETDIR() dialog is the path that was displayed in the dropdown when the form was opened, not in the path currently displayed in the dropdown. - in the XXFwNTDS.VCX/cusCBSQLConnect::MakeConnection() method, now calling the AERROR() function *before* the SQLSETPROP() call; as a result, the error information no longer gets cleared out by the SQLSETPROP() call. Thanks to Mike Potjer for pointing this out. - now calling the EVALUATE() function in lieu of doing a macro substitution to make code run faster in methods of the cusPushPopDockableWindows class (defined in this program). Thanks to Mike Yearwood for pointing this out. - XXDTFoxCode.Prg now contains code to establish IntelliSense for the X8RegExpTest.Prg library routine; thanks to Mike Potjer for pointing out the omission. - resolved an "Operator/operand type mismatch." error that occurs in the txtAutoLaunchForm::Init() event-method of the following two (2) forms: - VMToolsOptions.SCX in the VMP VM Example Application - NTToolsOptions.SCX in the VMP NT Example Application when you do the following in either the VM or NT VMP Example applications: - add the following record to the AppInfo table (??System.DBF): - App_Item = 'InitialAutoLaunchForm' - App_ItemDataType = 'C' - App_ItemValue = 'FRMREPORTCATALOG,XXFwFRM.VCX' - App_ItemDescription = 'Report Catalog' - delete any InitialAutoLaunchForm from UserPrefs OPEN DATABASE ?? USE ??!UserPrefs DELETE FOR Prf_Item = 'InitialAutoLaunchForm' - DO ??Main.Prg ... Report Catalog displays as expected - running 'Tools | Options' triggered "Operator/operand type mismatch." error Thanks to Andy Patrick for reporting this issue and for Mike Potjer for proposing the ultimate solution both on the VMP Message Board. Oct 01, 2008 ================================================= Build 01 (10/1/2008) and then pressed [Esc] or clicked outside the resultant shortcut/context menu (in other words, the user did not select an option from the context menu) - resolved an issue that occurred when: - 1) attempting to add records to a table in which the name of the Primary Key (PK) was longer than six (6) characters and - 2) an IUDLog INSERT (table) trigger was in place - thanks to Randy Bosma, '[Copy]' now reads '[Duplicate]' in the following text that appears when you click on the [Copy] commandbutton in the XXDTMsgS utility: This option allows you to copy the current record into a different MsgSvc.DBF table (the [Copy] button allows you to duplicate the current record into the current MsgSvc.DBF table). - resolved the error that occurred when the user did the following: - [Right-Click] and select 'Display History for ... record' - Set filter to all users - click on [Apply filter] (thanks to Bud Wheeler for pointing this out) - added 'WINVISTA' to the IntelliSense for X6WinOS.Prg - resolved several bugs in the XXFWMisc.VCX/cusDESubFormCursor::SetFieldPropsV() method which prevented default values from being used in a sub-form view. (thanks to Mike Potjer for pointing out the bugs and supplying the fixes) - resolved an issue that Mike Meer discovered in the XXFWNTDS.VCX/cusDSBehaviorSPT::FetchData() method Aug 08, 2008 ================================================= Build 01 (8/8/2008) EXTERNAL PROCEDURE X8ValidURL.Prg - resolved the following scenario: 1. Modified the NTFW.VCX/ctrNTApp.SetUpGlobalToolBars() method and uncommented the following code: DIMENSION This.iaGlobalToolbars[1, 2] This.iaGlobalToolbars[1] = 'tbrNTSCADONav,NTFWFrm.VCX' DODEFAULT() 2. DO NTMain.Prg and select 'File | Invoices (NTDEInvoices1.SCX)' menu option 3. Selected the "0000000001" invoice 4. Clicked on the grid column1: 'Crisis Counseling gift certificate.' 5. Presses the “Close this form” toolbar commandbutton 6. After pressing the button, the "Lookup F2" menu pad did not disappear and the menu wass totally blocked (it did not respond when the user clicked on it) - resolved a form resizing issue in the XXFWFrm.VCX/ctrFormSizer::frmResize() method - resolved the following issue in the XXFW.VCX/txtBase::SetDynamicAttributes() method: txtBase turned the .ForeColor to red for negative values for all numeric data types except 'Y' (currency) - resolved a problem in the XXFWMisc.VCX/frmReport::ReportForm() method whereby VFP would crash (hard) on the following line when the developer was attempting to MODIFY a REPORT in lieu of running it: SET SYSMENU TO DEFAULT - removed an extraneous txtICBase class that was in VMP_Int\ICCtrl.VCX (BaseClass of Form...) - inspired by Mike Yearwood, replaced the following lines in the XXFWNTDS.VCX/cusDSBehaviorSPT::SaveActionInsert() method: LOCAL &lcField. STORE (EVALUATE(m.lcField)) TO &lcField. with the following lines to speed up the code: LOCAL (m.lcField) STORE (EVALUATE(m.lcField)) TO (m.lcField) - per feedback from Bud Wheeler, replaced two (2) occurrences of 'm.lcDatabase' in the SP_VMP_IUDLOG_SetIUDAlias procedure in XXFwData.Prg with 'm.tcDatabase' Oct 13, 2007 ================================================= Build 03 (2/6/2008) - resolved the following issue (which affected other n-Tier forms [ultimately] based on the XXFWFrm.VCX/frmDEGridNav2Pages class): - when you do the following: - fire up the NT Example Application development environment - DO FORM NTDECusC1.SCX - click the [Add] commandbutton - enter Customer Code and Name - select the Notes tab (4th page) - click the [Cancel] commandbutton the data entry control (editbox) on the Notes tab (4th page) was blank and disabled because the updateable cursor is EOF() - fixed the following bug: when the IncludeLoginCancelCommandButtons AppConfig item was set to .T., pressing [Enter] in the password textbox on the last password attempt triggered an "Unable to login the login in V_LoginHistoryOneUser" error. - thanks to Joan Mir, corrected the Spanish equivalents of the following phrases: - "Display history for field" - "Display history for record" and ensured that the above two (2) shortcut/context menu options work when a VMP application is run in Spanish (via INTL) Build 02 (11/7/2007) release any locks so that it does not report that you have the record locked the next time you run the form - the XXFWNTBO.VCX/ctrBusinessObject::DeleteAction() method now checks the return value when it calls the XXFWNTBO.VCX/ctrBusinessObject::ExecuteChildBOMethod() method - corrected a bug in the XXFWSemaphoreLock.VCX/BO_SemaphoreLock::SLock() method - eliminated the "Too many arguments." error that occurred in X7FieldList.Prg when running in VFP 8 - fixed the following bug: when the IncludeLoginCancelCommandButtons AppConfig item was set to .T., after typing only the user id and before passing to the password textbox, clicking on the [Login] commandbutton allowed you to log in without entering a password. Build 01 (10/13/2007) event-method that did not take the VMP developer to the correct bug fixes page (after VMP discovered that the developer was not using the very latest version of VMP) - resolved an issue in X3VUSPHN.Prg that allowed it to return invalid length phone numbers - fixed a typo in the XXFW.VCX/frmData::GenPK() method - fixed a bug in the XXFW.VCX/edtBase::Init() event-method (documented on the VMP Message Board by Albert Gostick [cf. Message Id 26W198HK9]) - added a DODEFAULT() after the THIS.ORCleanup() line in the XXFWNT.Prg/sesNTBase::Destroy() event-method - resolved an "Expression is not valid outside of WITH/ENDWITH." error in the XXFWFrm.VCX/frmPixViewer::SpecifyUserPrefs() method Aug 14, 2007 ================================================= Build 01 (8/14/2007) did not fill in (i.e., left empty) the explanatory text when doing a lockout (Admin | Lock users out) - resolved an issue in the SpellCheck.VCX/SpellCheck::OriginalString_Assign() event-method that resulted in a word not getting replaced if it was a subset of the replacement word - resolved a refresh issue with the Country label in the following forms in the NT example application: - NTDECty1.SCX - NTDECty2.SCX - NTDECty3.SCX - NTDECty3a.SCX - NTDECty4.SCX - resolved an issue in the XXFWCal.VCX/frmAbstractCalendar::SetInitialVisibleLocation() method when the calendar (form) position was one (or more) of the following: - 4 = Above, Left - 5 = Above, Centered - 6 = Above, Right - eliminated the "Property DOCKPOSITION is not found." error that occurred in: - the XXFW.VCX/frmBase::Destroy() event-method - the XXFW.VCX/cusForms::ReleaseAllForms() method when a VMP form running in VFP 8 was closed - now preventing the following obscure (yet possible) scenarios: - Scenario 1: ------------------- Steps to reproduce ------------------- - in the VMP example application, DO FORM VMDECusV.SCX - ensuring that the selected customer is 'Abstract Distractions', go to the 'Contact People' tab (page 3) - with the Contact names in ascending order, select the record for 'Andy Betaque' - press the [Down Arrow] key to move to the next Contact record - WITHOUT PRESSING ANY OTHER KEY, click the 'Last Name' header (caption) to toggle the sort order to descending ------------------ Observed behavior ------------------ - the form goes into Edit mode - the ShellBeforeAppendBlank() and ShellAfterAppendBlank() methods get executed - the record for 'Andy Betaque' is highlighted again - now preventing the following obscure (yet possible) scenario: - Scenario 2: ------------------- Steps to reproduce ------------------- - in the VMP example application, MODIFY FORM VMDECus4_2003.SCX and set the .AllowAddNew property of grdContacts on Page 3 to .T. - DO FORM VMDECus4_2003.SCX - ensuring that the selected customer is 'Abstract Distractions', go to the 'Contact People' tab (page 3) - with the Contact names in ascending order, select the record for 'Andy Betaque' - press the [Down Arrow] key to move to the next Contact record - WITHOUT PRESSING ANY OTHER KEY, click the 'Last Name' header (caption) to toggle the sort order to descending ------------------ Observed behavior ------------------ - the form goes into Edit mode - the ShellBeforeAppendBlank() and ShellAfterAppendBlank() methods get executed - the record for 'Andy Betaque' is highlighted again - corrected IntelliSense in XXDTFoxCode.Prg for: - X8ShellExecute.Prg - X8ValidURL.Prg - XXDTUnusedClassesPJX.Prg does not report false positives it used to report May 18, 2007 ================================================= Build 01 (5/18/2007) was an expression that contained one (1) or more periods and the user clicked on the [Remove] commandbutton - resolved an "OLE error code 0x800200005: Type mismatch." that error occurred in the XXFW.VCX/tbrBase::ORCleanupAllMembers() method when that method attempted to set an ActiveX control's .Font property to .NULL. - in the XXFWNTDP.VCX/cusDataPackagerXML::DataToCursorIsNotDiffGram() method: - resolved an error that occurred when either: (a) the PK field was not specified or (b) a wrong name was specified for the PK field - resolved an error that occurred when you attempted to populate an existing cursor with multiple data records: the primary key field contained the same value for *ALL* records added to the cursor - in the XXFWNT.VCX/cusMessageServices::GetMessageText() method:  - resolved an error that occurred when the iaMessages array of the message package contained a key    (rather than a data object)  - resolved an error that occurred when an invalid message package was passed Dec 08, 2006 build ================================================= Build 06 (3/31/2007) - resolved a bug that occurred in the XXFW.VCX/frmData::SaveMessageOnFailure() method when an n-tier rule failed - resolved a bug in the XXFWNT.VCX/cusMessagePackage::GetSpecificTableupdateFailureKey() method that occurred in the following scenario: - no AutoInc - no field .Caption/s - user got the following error: Uniqueness of index "name" is violated (Error 1884) Build 05 (2/17/2007) so that it now reads the latest/current value of 'TextFactor' from the AppInfo table - eliminated the "Property value is out of bounds." error that occurred when, in VFP 8, you - now RETURN-ing .F. in the XXFWControlBehaviors.VCX/cusDTOTextbox::OwnerKeyPress() method if the following expression evaluates to .F.: IF (This.icType = 'D') AND (NOT VARTYPE(toTextbox.Value) = 'D') - in the XXFW.VCX/txtBase::KeyPress() event-method, now resetting the .SelStart and .SelLength properties if the call to the OwnerKeyPress() method RETURNs .T. - in the NTDECus2 form (in the VMP NT Example application): - the [Print] and [Delete] commandbuttons now get enabled when you [Retrieve] one or more records - the [Print] and [Delete] commandbuttons now get disabled when you [Clear Data] Build 04 (12/22/2006) Build 03 (12/21/2006) run a form standalone - eliminated a "Data type mismatch." error that can occur in the following methods under certain circumstances: - XXFWComp.VCX/ctrPicklistValid::SaveControlValues() - XXFWMisc.VCX/ctrSelCriteria::SaveControlValues() - eliminated the following problem in the XXFWNTDS.VCX/ctrDataSource::FetchFieldsForOnePK() method; if you passed an asterisk ("*") as the tcFieldList parameter to return all fields, then you could not access the Primary Key (PK) field by its name Build 02 (12/16/2006) - added code to the XXFW.VCX/pgfBase::PageCount_Assign() method that replicates code in the txtBase::ToolTipText_Assign() method to SET TALK OFF if SET('Talk') was set to 'ON' (without this code, numbers were [incorrectly] being displayed to _Screen). Build 01 (12/8/2006) - resolved error in the XXFWComp.VCX/ctrPicklistValid::OnPicklistvalidTextboxInteractiveChange() method that occurs if there is no icAlternateLookupAlias (because there is no value to lookup) - in both the XXFW.VCX/ctrBase::GetFirstControl() and XXFW.VCX/pgfBase::GetFirstControl() methods, resolved case mismatch issues and why the methods did not always correctly return the first control - resolved a bug in the XXTools.VCX/frsXXDTSearch::StringFoundIn() method whereby when "Exclude comments?" is checked, then a line (a) following a comment line with an embedded semi-colon (i.e., a comment that contains, but does not end with, a semi-colon) (b) following a line that is part of a continued comment and/or itself ends with a semi-colon was not getting displayed in the results of the (XXDTSearch) search - resolved a bug in the XXFWNTBR.VCX/cusRule::Init() event-method: a rule inheriting from XXFWNTBR.VCX/cusRule is allowed to be instan- tiated to a property, but caused an error and crashed an application if you attempted to instantiate it as a member of a non-tier class Sep 22, 2006 build ================================================= Build 02 (9/29/2006) - eliminated the "Command contains unrecognized phrase/keyword." error that occurred in the XXFWSemaphoreLock.VCX/BO_SemaphoreLock::CreateFreeTable() method when you built a VMP 2005 project in VFP 8 - now making _Screen visible in the ShowError procedure in XXError.Prg if it's not already visible (e.g., if an SDI application) - eliminated the "Property value is out of bounds." error that occurred when you RightClick-ed in the listbox on the General tab of the EventLog form when running in VFP 8 Build 01 (9/22/2006) when the user establishes a sound via the Windows Control Panel for 'Question'. - in response to the above, no longer passing the last (5th) parameter when calling X3WinMsg.Prg from X3MsgSvc.Prg - the XXFWUtil.VCX/cusSettings::LoadPropertiesFromDataSource() method did not refresh (requery) the remote view if a value in that view had been modified on the back-end; it now does. - resolved the "Database 'VM' is not open" error." that occurred upon DO-ing RDMain (in the Remote Data application) - modified the ReleaseAppObjects procedure in this program (XXFWMain.Prg) to SQLDisconnect() one active connection at a time to eliminate/prevent application from crashing (fatal error) when trying to close all open connection handles via SQLDisconnect(0) - corrected an issue with XXDTSearch that prevented it from including a line in the search results when, prior to the line, there was a comment that was continued on at least one other line - resolved error that occurred in the XXFWFrm.VCX/ctrFormSizer::frmResize() method when, for example, you have NODEFAULT-ed the SetSizerInfo() method for a pageframe - resolved error that occurred in XXFWData.Prg when, in XXWBAppSetup (the Application Setup Wizard), a VMP developer specifies to not use default VMP naming conventions and then specifies a "main DATABASE name" that does *not* match the 2-character table name prefix - resolved "double text" issue with cusHyperlinkTextbox when the (corresponding) textbox's BorderStyle = 0 (None) - resolved an issue in the XXFWFrm.VCX/frmMover::Init() event-method that occurred when .ioCallingForm is omitted from the parameter object - resolved a "Syntax Error" that occurred in the XXFWComp.VCX/ctrMover::AddAllAction() method when the .RowSource is an expression that contains one (1) or more periods and the user clicked on the [Add All] commandbutton Jul 08, 2006 build ================================================= Build 02 (7/11/2006) - when [New...] was clicked for a form (on the Documents tab/page) of a Project Manager (to which a VMP Project Hook is attached); if [Esc]ape was then pressed in the resultant XXWBNewForm, a "Function argument value, type or count is invalid." error occurred - toolbars (e.g., Standard) not getting restored after running a VMP form/application - - resolved the fact that the filter was not being restored properly in the XXFWNTDS.VCX/ctrDataSource::Validate() method Build 01 (Initial Build) being USED() and if the text of the filename passed to the method (m.lcTable) was anything other than all upper case, a line of code was incorrectly deciding that it does not match the contained table name. - resolved bug in X8ShellExecute.PRG that was due to the VFP limitation that the JUSTEXT() function cannot handle strings that contain more than 259 characters - resolved the following issue in the XXFW.VCX/frmBase::CheckRequiredFields() method: if the ControlSource is 'This.Parent. (or anything beyond that), everything after 'This.Parent' gets truncated, and you get an error later because m.lcControlSource EVALUATE()s to an object, rather than a value - in the XXFWFrm.VCX/ctrFormSizer::SizeMenu() method, no longer allowing the form to "run off" the right edge as well as the bottom (if, for example, you select '140%' when the form is in the lower right corner of [the] _Screen) - resolved bug in the XXFWNTDS.VCX/ctrDataSource::Validate() method that can cause the validation to fail with a filtered Data Source (DS) Aug 25, 2005 build ================================================= Build 08 (5/31/2006) Build 07 (5/20/2006) Build 06 (4/20/2006) Build 05 (4/15/2006) Build 04 (4/06/2006) Build 03 Build 02 Build 01
Jun 07, 2005 build Build 12 Build 11 Build 10 Build 09 Build 08 Build 06 Build 05 Build 04 Build 02 Build 01 Mar
18, 2005 build Build 16 Build 15 Build 14 Build 13 Build 12 Build 10 Build 08 Build 05 Build 04 Build 03 Build 02 Build 01 Jan 28, 2005 build Build 08 Build 07 Build 06 Build 04 Build 03 |