================================================================= mvControls OCX ================================================================= This README file consists of the following topics: A. System Requirements B. What's new C. Bug Fixs D. Known Bugs ============================================================================ A. System Requirements ============================================================================ Operating System: Windows 95/98 or Windows NT Workstation/Server 4.0 Minimum Hardware: 486 66MHz, 16MB RAM Disk Space: 5MB Internet Connection: none Visual Basic: Visual Basic 5 or Visual Basic 6 ============================================================================ B. What's New ============================================================================ ============================================================================ C. Bug Fixs ============================================================================ ---> Version 1.0.264 <--- * Added additional code to change the control's DataType to reflect the type of Dictionary item is used. It will convert any dictionary item with the following conversion codes to: Conversion Code Data Type --------------- --------------------- D2/ Date D4/ Date D Date D2- Date D4- Date D0/ Date MT Time MTH Time MTS Time MTHS Time MR2 Numaric MD2 Numaric All others Regular (accepts anything) * Fixed the mvButton Control so that the program will unload correctly when the user assigns the button the be a Write/Exit or Quit button. * Fixed the mandatory check on fields when there is an Edit Mask (for example, data and dollars). If there is no data entered, the control will no longer display zeros. * Fixed the error when clearing fields and right justified mvTextBox's did not clear. * Fixed problem with the controls not deleting records if the delete button is pressed. You will need to update the Database Link DLLs as well. * Fixed the bug in the textbox that would not allow a read to happen when a select list exist and the next button is pressed when the 'Lock Control' is turned on. ---> Version 1.0.265 <--- * Fixed a problem with the controls using an Oconv value instead of an Icont value as a record id when the control is specified as a Key field. * Fixed a problem with the Delete button just clearing the fields and not pulling the next value in the select if the key control has a select list. * Changed the Delete button so that it will remove the deleted ID from the Previously read ids if the key control has a select list. * Fixed a problem with the Lookup button the mvTextBox that caused a runtime error when from the controls is one becomes invisible during the Lookup Event. Private sub mvTextBox1_Lookup(Value as String) Form1.Visible = False Form2.Visible = True End If * Fixed the right justified Alignment display in the mvGrid * Fixed the Control Wizard to update the ListFillTypes correctly. ---> Version 1.0.266 <--- * Fixed a bug when calling host programs and setting the Status to an Error. The control will now turn red to show an error status correctly. * Fixed the bug in the mvButton Host Programs property page to stop the automatic change of the AfterClearProg when you enter a program in the AfterWriteProg property. * Fixed the ReadOnly property on the property page to display the correct value. * Added functionality to the calling of host programs in all the controls. There are now 2 formats of Host programs. The first format is the default and requires no special identifer. It uses the following arguments, and is a called subroutine. Just enter the name of subroutine that has the following arguments: SUBROUTINE PROGRAMNAME(KEY,ITEM,VALUE,STATUS,ERRMSG) KEY = this will hold the RecordName for the dynamic array ITEM = this will be the dynamic array VALUE = the value to be placed in the input STATUS = 0 - No Error 1 - Error. Will set ErrorFlag property to True 2 - Refresh Data. Will cause the mvControls to refresh the data for the dynamic array. ERRMSG = an error message if STATUS = 1 This second format gives a bit more control and allows you to define one subroutine and use it in all the controls. The controls will pass the type of action that is calling this program, for example, Default, Validation, or Before Write. To use this type of program place a 'C:' in front of the name of a subroutine that uses the following arguments: SUBROUTINE PROGRAMNAME(MVCONTROL,KEY,ITEM,VALUE,STATUS,ERRMSG) MVCONTROL<1> = Type (D)efault, (V)alidation, (BW) Before Write (AW) After Write, (BC) Before Clear, (AC) After Clear (BD) Before Delete, (AD) After Delete MVCONTROL<2> = AMC :vm: VMC :vm: SMC MVCONTROL<3> = Name of the Key Control KEY = same as above ITEM = same as above VALUE = same as above STATUS =same as above ERRMSG = same as above * Fixed an obscure bug that sometimes caused some controls to not initalize completely depending on which control VB loaded first. Includes a work around for the unpredictablitly of the order VB loads the controls on the form. * Added better functionality to the ToolTips to display the Error Messages as well as the ToolTips. * The ToolTips will now display when you first enter the control in addition to when the mouse is moved over it. ---> Version 1.0.267 <--- * Fixed the refresh order of the controls so that mvLabels and mvButtons are processed last. This allows them to use the correct information when check related properties from other controls. * Fixed a bug in the read method that caused the mvButton control to not always report correctly when used as a Write button. * Added the ablility to have seperate host programs on the mvButton when there is more than one Key Control listed. This is to fix the blind spot when there was more than one Key Control assigned to a button and it only let one set of programs to be assigned to the mvButton. ---> Version 1.0.268 <--- * Changed the Clear order of the controls so that mvButtons are processed after all other controls have been cleared. This fixes a problem with some buttons at times staying enabled when they should be disabled. * Refined and fixed several bugs in the Edit Mask programs used for Numaric and Date entry. * Added a workaround to fix a inconsistency with how OCONV and ICONV statements are processed between different Database objects. * Added a validation check for valid Conversion codes that will work in the mvTextBox and mvComboBox. ---> Version 1.0.269 <--- * Work around for the mvButton when it is pressed using the mouse or Tabbed to and the error checking from the last mvControl the user was being processed after the button finished processing. * Fixed the error in Date fields that caused a run-time error '5' when backspacing the the last character from the control, or enter the control after a clear button has been pressed. * Fixed error created in version 1.0.268 when trying to access the property pages of an mvButton and a run-time error being caused. * Fixed the mvTextBox with a LookupButton to allow a return to be pressed on new record numbers and the focus will now skip to the next control, not stop on the lookup button. If the user uses the TAB key, then it will still move to the lookup button before it going to the next control. * Fixed an error in Calling Host programs that caused them to not run. * Improved some error message to be more human readable. * Improved the Edit Mask routines to handle more process codes. This also fixes the limitation of some ML() and MR() still process/conversion codes that don't reverse themselves when using and ICONV. * the mvTextBox will not trim off leading and tailing spaces for a value that does not have a pattern or conversion code. ---> Version 1.0.270 <--- * Added additional ability to calling host programs using the new expanded subroutines to include a type of COMMON block as well as passing a few more pieces of information to help decided what code is to run. SUBROUTINE PROGRAMNAME(MVCONTROL,KEY,ITEM,VALUE,STATUS,ERRMSG) MVCONTROL<1> = Type (D)efault, (V)alidation, (BW) Before Write (AW) After Write, (BC) Before Clear, (AC) After Clear (BD) Before Delete, (AD) After Delete MVCONTROL<2> = AMC :vm: VMC :vm: SMC MVCONTROL<3> = Name of the Key Control MVCONTROL<4> = file name MVCONTROL<5> = the current control name. This is the Visual Basic name of the control. MVCONTROL<10> = anything from this point on is user defined. The user can add anything they wish to keep maintained throughout the life of the connect. * Added better error trapping and display in the mvButtons. ---> Version 1.0.271 <--- * rework of internal code and internal callbacks between controls. * added checks for form name change to update the controls references with new name without user having to change * fixed bug in border and apprearence of the mvLabel control * removed the Key Field properties from mvGrid due to out of date code. ---> Version 1.0.272 <--- * Fixed the error created in 1.0.270 that caused the Lock Control after Read to not work. * Fixed a few other internal errors caused by changes in 1.0.270 ---> Version 1.0.273 <--- * Fixed refresh and other callback problems created in the release 1.0.271 * Fixed following msgbox error with the call host programs: Error Message Calling Host Program {programname} clsCollection Manager Item Item -2147220991 Collection Key does not Exist ---> Version 1.0.276 <--- * Fixed a refresh problem when using the clear button and the keyfield not clearning. * Changed the Clear button so it is always enabled regardless of any errors or mandatory fields. * Fixed runtime error in combo box property page. * Changed the keyfields so that when a record number is entered that does not exist, the controls will lock the control if LockAfterRead is enabled. If the field is left blank, then the control will not be locked. * Fixed problem with mvGrid not display correctly. * Updated mvGrid so the KeyId field is updated when the original name of that KeyId that it was using is changed by the user. * Change the procedure of ComboBoxes so that if a user enteres a value directly, it will find the description for that value and display it. It will also add it to the dropdown list. * If you are using the AutoSearch in the mvComboBox, you can now include a custom value of <> if you want to pull data using the current value the user enteres. For Example, if the users enters 'Natec' into the mvComboBox and you want to pull all the contacts that start with 'Nat', then you can added a select list of 'SELECT CONTACTS WITH COMPANY.NAME = "<>]"'. This select list would then find all CONTACTS that have a COMPANY.NAME = "Nat]" and display them in the dropdown list. * The above works on the Record name is the values in the mvComboBox are being pulled from a specific file and record. ---> Version 1.0.277 <--- * Fixed display bug in the mvLabel to show the name of the label during runtime if there was not field name given to the control * fixed minor error in Dropdown style mvComboBox. Runtime error would occur. ---> Version 1.0.278 <--- * mvControls can now handle A-Correlatives in addition to F-Correlatives. Both types of correlatives are handled on the local pc and not on the host machine. * Fixed a display problem with a multiline text box * Added a internal clean up process for session names to display then correctly in properties and property pages. ---> Version 1.0.279 <--- * Fixed bug in mvButton that would cause an error if the keyfield didn't not have the SelectList property. * Fixed a bug in the controls that cause the DefaultProg to not run or crash the program when used in the very first control receiving focus and the connect has not been completed. * Fixed bug in mvButton that displayed a message about "Control Processing" with a list of all the controls currently on the form. ---> Version 1.0.281 <--- * Fixed bug in the mvButton property page that would cause the OCX to crash when entering a before/after write/clear/delete program * Changed the mvSession Extract so you can use an AMC of zero (0) to return the how dynamic array ---> Version 1.0.282 <--- * Moved mvControl Property Page Wizard to its own OCX to help cut down on mvControl OCX size. * Update mvSession control so AccountName, Username, HostName, Password, and osType properities could be changed at runtime as long as the controls are not connect to the database at the time the properties are to be changed. ---> Version 1.0.286 <--- * Altered the licensing handling to provide more flexablility. ============================================================================ D. Unkown Bugs or Issues ============================================================================ * If you try to exit the form before the session control has completed it's connection to the database, a General Protection Fault (GPF) may occur. * When in the Visual Basic IDE and the mvSession control is on a different form from an mvGrid, and that form is currently not loaded, the mvGrid will not display correctly. It is recommended that you always have the form loaded that contains the mvSession control do to some automated updates that requires it.================================================================= mvControls OCX ================================================================= This README file consists of the following topics: A. System Requirements B. What's new C. Bug Fixs D. Known Bugs ============================================================================ A. System Requirements ============================================================================ Operating System: Windows 95/98 or Windows NT Workstation/Server 4.0 Minimum Hardware: 486 66MHz, 16MB RAM Disk Space: 5MB Internet Connection: none Visual Basic: Visual Basic 5 or Visual Basic 6 ============================================================================ B. What's New ============================================================================ ============================================================================ C. Bug Fixs ============================================================================ ---> Version 1.0.264 <--- * Added additional code to change the control's DataType to reflect the type of Dictionary item is used. It will convert any dictionary item with the following conversion codes to: Conversion Code Data Type --------------- --------------------- D2/ Date D4/ Date D Date D2- Date D4- Date D0/ Date MT Time MTH Time MTS Time MTHS Time MR2 Numaric MD2 Numaric All others Regular (accepts anything) * Fixed the mvButton Control so that the program will unload correctly when the user assigns the button the be a Write/Exit or Quit button. * Fixed the mandatory check on fields when there is an Edit Mask (for example, data and dollars). If there is no data entered, the control will no longer display zeros. * Fixed the error when clearing fields and right justified mvTextBox's did not clear. * Fixed problem with the controls not deleting records if the delete button is pressed. You will need to update the Database Link DLLs as well. * Fixed the bug in the textbox that would not allow a read to happen when a select list exist and the next button is pressed when the 'Lock Control' is turned on. ---> Version 1.0.265 <--- * Fixed a problem with the controls using an Oconv value instead of an Icont value as a record id when the control is specified as a Key field. * Fixed a problem with the Delete button just clearing the fields and not pulling the next value in the select if the key control has a select list. * Changed the Delete button so that it will remove the deleted ID from the Previously read ids if the key control has a select list. * Fixed a problem with the Lookup button the mvTextBox that caused a runtime error when from the controls is one becomes invisible during the Lookup Event. Private sub mvTextBox1_Lookup(Value as String) Form1.Visible = False Form2.Visible = True End If * Fixed the right justified Alignment display in the mvGrid * Fixed the Control Wizard to update the ListFillTypes correctly. ---> Version 1.0.266 <--- * Fixed a bug when calling host programs and setting the Status to an Error. The control will now turn red to show an error status correctly. * Fixed the bug in the mvButton Host Programs property page to stop the automatic change of the AfterClearProg when you enter a program in the AfterWriteProg property. * Fixed the ReadOnly property on the property page to display the correct value. * Added functionality to the calling of host programs in all the controls. There are now 2 formats of Host programs. The first format is the default and requires no special identifer. It uses the following arguments, and is a called subroutine. Just enter the name of subroutine that has the following arguments: SUBROUTINE PROGRAMNAME(KEY,ITEM,VALUE,STATUS,ERRMSG) KEY = this will hold the RecordName for the dynamic array ITEM = this will be the dynamic array VALUE = the value to be placed in the input STATUS = 0 - No Error 1 - Error. Will set ErrorFlag property to True 2 - Refresh Data. Will cause the mvControls to refresh the data for the dynamic array. ERRMSG = an error message if STATUS = 1 This second format gives a bit more control and allows you to define one subroutine and use it in all the controls. The controls will pass the type of action that is calling this program, for example, Default, Validation, or Before Write. To use this type of program place a 'C:' in front of the name of a subroutine that uses the following arguments: SUBROUTINE PROGRAMNAME(MVCONTROL,KEY,ITEM,VALUE,STATUS,ERRMSG) MVCONTROL<1> = Type (D)efault, (V)alidation, (BW) Before Write (AW) After Write, (BC) Before Clear, (AC) After Clear (BD) Before Delete, (AD) After Delete MVCONTROL<2> = AMC :vm: VMC :vm: SMC MVCONTROL<3> = Name of the Key Control KEY = same as above ITEM = same as above VALUE = same as above STATUS =same as above ERRMSG = same as above * Fixed an obscure bug that sometimes caused some controls to not initalize completely depending on which control VB loaded first. Includes a work around for the unpredictablitly of the order VB loads the controls on the form. * Added better functionality to the ToolTips to display the Error Messages as well as the ToolTips. * The ToolTips will now display when you first enter the control in addition to when the mouse is moved over it. ---> Version 1.0.267 <--- * Fixed the refresh order of the controls so that mvLabels and mvButtons are processed last. This allows them to use the correct information when check related properties from other controls. * Fixed a bug in the read method that caused the mvButton control to not always report correctly when used as a Write button. * Added the ablility to have seperate host programs on the mvButton when there is more than one Key Control listed. This is to fix the blind spot when there was more than one Key Control assigned to a button and it only let one set of programs to be assigned to the mvButton. ---> Version 1.0.268 <--- * Changed the Clear order of the controls so that mvButtons are processed after all other controls have been cleared. This fixes a problem with some buttons at times staying enabled when they should be disabled. * Refined and fixed several bugs in the Edit Mask programs used for Numaric and Date entry. * Added a workaround to fix a inconsistency with how OCONV and ICONV statements are processed between different Database objects. * Added a validation check for valid Conversion codes that will work in the mvTextBox and mvComboBox. ---> Version 1.0.269 <--- * Work around for the mvButton when it is pressed using the mouse or Tabbed to and the error checking from the last mvControl the user was being processed after the button finished processing. * Fixed the error in Date fields that caused a run-time error '5' when backspacing the the last character from the control, or enter the control after a clear button has been pressed. * Fixed error created in version 1.0.268 when trying to access the property pages of an mvButton and a run-time error being caused. * Fixed the mvTextBox with a LookupButton to allow a return to be pressed on new record numbers and the focus will now skip to the next control, not stop on the lookup button. If the user uses the TAB key, then it will still move to the lookup button before it going to the next control. * Fixed an error in Calling Host programs that caused them to not run. * Improved some error message to be more human readable. * Improved the Edit Mask routines to handle more process codes. This also fixes the limitation of some ML() and MR() still process/conversion codes that don't reverse themselves when using and ICONV. * the mvTextBox will not trim off leading and tailing spaces for a value that does not have a pattern or conversion code. ---> Version 1.0.270 <--- * Added additional ability to calling host programs using the new expanded subroutines to include a type of COMMON block as well as passing a few more pieces of information to help decided what code is to run. SUBROUTINE PROGRAMNAME(MVCONTROL,KEY,ITEM,VALUE,STATUS,ERRMSG) MVCONTROL<1> = Type (D)efault, (V)alidation, (BW) Before Write (AW) After Write, (BC) Before Clear, (AC) After Clear (BD) Before Delete, (AD) After Delete MVCONTROL<2> = AMC :vm: VMC :vm: SMC MVCONTROL<3> = Name of the Key Control MVCONTROL<4> = file name MVCONTROL<5> = the current control name. This is the Visual Basic name of the control. MVCONTROL<10> = anything from this point on is user defined. The user can add anything they wish to keep maintained throughout the life of the connect. * Added better error trapping and display in the mvButtons. ---> Version 1.0.271 <--- * rework of internal code and internal callbacks between controls. * added checks for form name change to update the controls references with new name without user having to change * fixed bug in border and apprearence of the mvLabel control * removed the Key Field properties from mvGrid due to out of date code. ---> Version 1.0.272 <--- * Fixed the error created in 1.0.270 that caused the Lock Control after Read to not work. * Fixed a few other internal errors caused by changes in 1.0.270 ---> Version 1.0.273 <--- * Fixed refresh and other callback problems created in the release 1.0.271 * Fixed following msgbox error with the call host programs: Error Message Calling Host Program {programname} clsCollection Manager Item Item -2147220991 Collection Key does not Exist ---> Version 1.0.276 <--- * Fixed a refresh problem when using the clear button and the keyfield not clearning. * Changed the Clear button so it is always enabled regardless of any errors or mandatory fields. * Fixed runtime error in combo box property page. * Changed the keyfields so that when a record number is entered that does not exist, the controls will lock the control if LockAfterRead is enabled. If the field is left blank, then the control will not be locked. * Fixed problem with mvGrid not display correctly. * Updated mvGrid so the KeyId field is updated when the original name of that KeyId that it was using is changed by the user. * Change the procedure of ComboBoxes so that if a user enteres a value directly, it will find the description for that value and display it. It will also add it to the dropdown list. * If you are using the AutoSearch in the mvComboBox, you can now include a custom value of <> if you want to pull data using the current value the user enteres. For Example, if the users enters 'Natec' into the mvComboBox and you want to pull all the contacts that start with 'Nat', then you can added a select list of 'SELECT CONTACTS WITH COMPANY.NAME = "<>]"'. This select list would then find all CONTACTS that have a COMPANY.NAME = "Nat]" and display them in the dropdown list. * The above works on the Record name is the values in the mvComboBox are being pulled from a specific file and record. ---> Version 1.0.277 <--- * Fixed display bug in the mvLabel to show the name of the label during runtime if there was not field name given to the control * fixed minor error in Dropdown style mvComboBox. Runtime error would occur. ---> Version 1.0.278 <--- * mvControls can now handle A-Correlatives in addition to F-Correlatives. Both types of correlatives are handled on the local pc and not on the host machine. * Fixed a display problem with a multiline text box * Added a internal clean up process for session names to display then correctly in properties and property pages. ---> Version 1.0.279 <--- * Fixed bug in mvButton that would cause an error if the keyfield didn't not have the SelectList property. * Fixed a bug in the controls that cause the DefaultProg to not run or crash the program when used in the very first control receiving focus and the connect has not been completed. * Fixed bug in mvButton that displayed a message about "Control Processing" with a list of all the controls currently on the form. ---> Version 1.0.281 <--- * Fixed bug in the mvButton property page that would cause the OCX to crash when entering a before/after write/clear/delete program * Changed the mvSession Extract so you can use an AMC of zero (0) to return the how dynamic array ---> Version 1.0.282 <--- * Moved mvControl Property Page Wizard to its own OCX to help cut down on mvControl OCX size. * Update mvSession control so AccountName, Username, HostName, Password, and osType properities could be changed at runtime as long as the controls are not connect to the database at the time the properties are to be changed. ---> Version 1.0.286 <--- * Altered the licensing handling to provide more flexablility. ============================================================================ D. Unkown Bugs or Issues ============================================================================ * If you try to exit the form before the session control has completed it's connection to the database, a General Protection Fault (GPF) may occur. * When in the Visual Basic IDE and the mvSession control is on a different form from an mvGrid, and that form is currently not loaded, the mvGrid will not display correctly. It is recommended that you always have the form loaded that contains the mvSession control do to some automated updates that requires it.