| May 2002
| Magic Version 8.30 Service Pack 12
| Dear Developer, We are happy to introduce Magic Version 8.30 Service Pack 12. Magic Version 8.30 Service Pack 12 is an improved and updated version of the Magic Version 8.30 release. The new modules supplied in this service pack replace the original Magic Version 8.30 files or files from Magic Version 8.30 Service Packs 1 through 11. We hope that you will continue to enjoy working with Magic.
| General Information Please review the following sections for more information on Magic Version 8.30 updated with Service Pack 12. Updated Modules of Service Pack 12 Installing Service Pack 12 QCRs fixed in Magic Version 8.30 Service Pack 12 QCRs fixed in Magic Version 8.30 Service Pack 11 New Features in Magic Version 8.30 Service Pack 11 QCRs fixed in Magic Version 8.30 Service Pack 10 QCRs fixed in Magic Version 8.30 Service Pack 9 QCRs fixed in Magic Version 8.30 Service Pack 8 New Features in Magic Version 8.30 Service Pack 8 QCRs fixed in Magic Version 8.30 Service Pack 7 QCRs fixed in Magic Version 8.30 Service Pack 6 QCRs fixed in Magic Version 8.30 Service Pack 5 New Features in Magic Version 8.30 Service Pack 5 QCRs fixed in Magic Version 8.30 Service Pack 4 QCRs fixed in Magic Version 8.30 Service Pack 3 New Features in Magic Version 8.30 Service Pack 3 QCRs fixed in Magic Version 8.30 Service Pack 2 New Features in Magic Version 8.30 Service Pack 2 QCRs fixed in Magic Version 8.30 Service Pack 1 New Features in Magic Version 8.30 Service Pack 1
| Updated Modules of Service Pack 12 (Top) The following links will supply you with additional information on the updated modules of 8.30 Service Pack 12:
Mggenw.exe | The Magic toolkit executable. This file replaces the previous version that is located in the Magic Main Installation directory.
Mgrntw.exe | The Magic runtime executable. This file replaces the previous version that is located in the Magic Main Installation directory.
MGmerge.dll | The Merge utility library. This file replaces the previous version that is located in the Magic Main Installation directory.
Mgconstw | The Magic construction file for all supported languages. These files can be found under the Support sub directory. These files replace the previous version that is located in the Magic Main Installation directory.
MGrqgnrc.dll | The Magic Generic request layer. This file replaces the previous version that is located in the Magic Main Installation directory.
Mg_ocx.dll | The OLE Automation DLL file. This file replaces the previous version that is located in the Magic Main Installation directory.
MGresrc.dll | The Engine Resource file. This file replaces the previous version that is located in the Magic Main Installation directory.
Mgapi.dll | The Application API file. This file replaces the previous version that is located in the Magic Main Installation directory.
Mglocal_nt.dll Mglocal_98_2K.dll Korean only | For the Korean supported products a new Mglocal.dll is supplied. This file replaces the previous version that is located in the Magic Main Installation directory. Note - this is for Korean Magic products only.
GenerateTask.cpp UserInterface.cpp | Two of the Magic MCF API support. These files can be found under the Mgapi sub directory. These files replace the same files of the previous version that are located in the Mgapi sub directory of Magic Main Installation.
Broker Modules | See The Magic Broker Version 8.3-10 document.
CORBA for Visibroker Gateway | See The Magic Gateway for CORBA using VisiBroker version 8-2.
CORBA for Orbix Gateway | See The Magic Gateway for CORBA using Orbix Version 8-3
Web Online Modules | See The Magic Web Online Version 8.3-5 document.
Oracle Gateway | See The Magic Oracle Gateway Version 8.2-8.22 document.
DB2 Gateway | See The Magic DB2 Gateway Version 8.2-8.19 document.
Btrieve Gateway | See The Magic Btrieve Gateway Version 8.2-11 document.
Memory Gateway | See The Magic Memory Gateway Version 8.2-7 document.
MSSQL 6.5 Gateway | See The Magic MSSQL 6.5 Gateway Version 8.2-8.11 document.
MSSQL 7 Gateway | See The Magic MSSQL 7 Gateway Version 8.2-8.20 document.
Mssql 7 Definition gateway | See The Magic MSSQL 7 Definition Gateway document.
ODBC Gateway | See The Magic ODBC Gateway Version 8.2-8.20 document.
Informix Gateway | See The Magic Informix Gateway Version 8.2-8.7 document.
The Magic Technical Bulletin for the Informix Gateway | See The Magic Technical Bulletin for the Magic Informix Gateway.
Data Server | See The Magic Data Server document.
Data Server Dispatcher | See The Magic Data Server Dispatcher document.
DB2/400 Gateway | See The Magic/400 DB2 SQL gateway 8.20-1.3 document.
Magic/400 Gateway | See The Magic/400 Gateway for Magic 8.2-9.3 document.
Makekey.exe | See The Magic Application Feature License document.
Installing Service Pack 12 (Top) To install Magic Service Pack 12:
| Magic Main Installation | In the main Magic Installation directory, replace the old files with the new files provided in Service Pack 9 for the Magic components that are installed: Mggenw.exe, Mgrntw.exe, Mgmerge.dll, Mgresrc.dll, MGrqgnrc.dll, MgApi.dll, and Mg_ocx.dll. In the support subdirectory of the Main Installation directory, select the Mgconst files for your required language support.
| Korean Magic products | In a subdirectory of the extracted service pack you will find the Mglocal.dll files. In the Main Installation directory of the Korean Magic product, replace the old Mglocal.dll with one of the new DLL files supplied, renamed as Mglocal.dll, according to the platform: Mglocal_nt.dll for NT Mglocal_98_2k.dll for 95/98/2000
| QCRs fixed in Magic Version 8.30 Service Pack 12 (Top) · QCR 445035 - Page Header form was not printed if the output included multi-line edit controls. · QCR 759546 - A Magic GUI form set with wallpaper used to flicker. · QCR 760716 - A virtual button defined in a subtask was not initialized if the dataview of the subtask is empty. · QCR 761029 - Menu names did not appear in the Export document. · QCR 761509 - Radio button control was not colored correctly according to color expression when it was used Line Mode. · QCR 771313 - An unnecessary delay occurred on opening a batch task from an online task. · QCR 915343 - Magic terminated abnormally in specific cases of evaluating the View Refresh action. · QCR 922902 - When a CNDRANGE function was defined on a logical field, and the condition of the function was evaluated to false, instead of having no range on the logical field, the data was ranged according to the opposite value of what was defined as the range. · QCR 981796 Placing rich text controls on a Table Header resulted in a change of the fonts of the consecutive table rows. · QCR 982891 - The use of the parameter 'Expand form=Multi Page' in the form resulted in unnecessary lines at the upper part of report. · QCR 994285 Magic had crashed when the database connection was terminated during the execution of a batch task. · QCR 998333 - Merge - Tags of MGINCLUDE were not resolved in large template files QCRs fixed in Magic Version 8.30 Service Pack 11 (Top) · QCR 5952 - References to a programs forms were lost after importing an export file of an application that was exported with ISNs. QCR 6380 Printed text was always automatically aligned to the left when using [MAGIC_SPECIALS]PrintDataTrim=N. · QCR 426367 The cache of a task data (from Oracle tables) was not updated correctly after a task dataview field was modified. · QCR 437396 - Magic crashed upon merging data into a merge file template with nested an MGIF block. QCR 750958 The first blank character or number of an RTF edit control could not be seen when entering characters in Korean. · QCR 783233 Printing a report from the Print Preview window was directed to the printer even if in the preceding Printer setup dialog the output was directed to a file. · QCR 912023 - The column divider of a GUI table set with style=2D was shown as a double line in the form editor and in the print preview display but was created as a single line in the printed copy. · QCR 913523 - In a print program, if an expand form was multi-page the page footer was not printed for every page. QCR 926932 The Demo C Projects using the Mgapi files generatetask.cpp and UserInterface.cpp failed to compile. · QCR 977935 - Magic crashed when working with RTF Text controls in Korean. · QCR 994760 - The Checker sent an alert when there were duplicate indexes and one index name was the starting sub-string of the other index. · QCR 999261 - Magic could not print a GUI form containing an RTF control on Windows 2000. · Upper to Lower conversion of French characters was fixed. New Features in Magic Version 8.30 Service Pack 11 (Top) Dynamic spool name for graphical printers When using a logical name as the I/O Name in the I/O Files list, Magic names the spooled file as "Magic - " concatenated with the interpretation of the logical name. A nonexistent logical name results in an empty interpretation. This feature is mainly meant for usage with the PDF driver, thus enabling dynamic PDF file names.
| QCRs fixed in Magic Version 8.30 Service Pack 10 (Top) · QCR 763452 - The Menu() function returned a blank string after activating the runtime Locate or Range options. · QCR 766886 - The Magic engine did not release the memory allocated for the uploaded file at the end of the request. · QCR 776176 The action name could not be accepted by the expression editor using a Hungarian const file. · QCR 786779 - Magic was not able to retry its update operation on a locked record if prior to the update operation an Exit event had been entered.
| QCRs fixed in Magic Version 8.30 Service Pack 9 (Top) · QCR 4581 Magic truncated an expression passed in a direct SQL statement after 1650 characters. · QCR 5936 In the Dutch action list file the words 'Row', 'Line' and 'Record' were all translated to 'Rij', which caused duplicate action names. In the new MGCONSTW.NLD the following actions are translated as:
Begin Line | Begin regel
Begin Next Line | Begin vlgnd regel
Begin Row | Begin rij
Create Line | Nieuwe regel
Create Records | Nieuwe Records
Delete Line | Verwijder regel
End Line | Einde regel
End Row | Einde rij
Jump to Row | Spring naar rij
Locate a Record | Zoek Record
Mark Next Line | Markeer vlgnd regel
Mark Previous Line | Markeer vorige regel
Modify Records | Bewerk Records
Next Line | Volgende regel
Next Row | Volgende rij
Previous Line | Vorige regel
Previous Row | Vorige rij
Query Records | Bekijk Records
Range of Records | Bereik van Records
Record Flush | Record Flush
Sort Records | Sorteer Records
· QCR 69791 - Magic crashed when a task performed an output operation to an IO that had been set at the parent task and the IO was set with header and footer forms that used an expression. · QCR 583100 - Magic used to switch to Create mode when you modified the key field value of the last record of the screen to a value greater than the one defined in the toolkit range. · QCR 705954 A Logical name translated to a string longer than 30 characters was not translated correctly when used in an index name. · QCR 767105 - Magic used the wrong index key when it located a record with a CNDRANGE expression. · QCR 769609 - Magic crashed upon including a file greater than 118K in an HTML Merge process using the MGINCLUDE tag. · QCR 777067 The Dutch mgconst file provided the names of the months starting with an upper case letter. · QCR 777894 - Magic crashed upon including a file several times in an HTML Merge process using the MGINCLUDE tag. · QCR 915011 - The cursor used to move in the opposite direction from the writing direction in a multi-lines edit field with visual fonts. · QCR 990639 - Magic crashed in various calls using CALLDLL() function. · QCR 995264 - Terminal clients were disconnected upon switching among Magic Applications. · QCR 984776 - Magic let you update a record that was locked by its linked record after canceling the first update attempt that produced a 'waiting for locked record...'.
| QCRs fixed in Magic Version 8.30 Service Pack 8 (Top) · QCR 69791 - Magic crashed when a task performed an output operation to an IO that was set at the parent task and the IO was set with a header and a footer that used an expression. · QCR 96947 - The last character used in range and locate operations was always 0XFF even if the ACS file was used. · QCR 423726 The MCF API function UpdateIndexSegments() returned an ERROR_INVALID_OBJECTS_NUMBER error when using it to update an index. · QCR 425958 Windows-based controls that are positioned dynamically were not refreshed correctly when in Line mode. · QCR 444429 Magic failed to update a link in a delete cycle of the main record. · QCR 596212 Incremental update entered a wrong value into a field inside a new created linked record. · QCR 752189 A subtask failed to run as a resident subtask on continuous execution of the subtask. · QCR 754243 The 'Q'MODE value was not translated properly in the Spanish const file (mgconstw.spn). · QCR 760983 - A time variable with a picture of HH:MM PM (12 hour clock), showed 'am' time values for the time between 12:00 and 13:00. · QCR 767281 - Magic crashed upon running a large merge process several times. · QCR 772842 The RTF control was not always displayed correctly. · QCR 985624 - Magic did not pass the user password in a Call remote command when no user and password were set in the Service settings. · QCR 984955 New data was not kept in a nullified field when the new data was entered by KBPUT functions. · QCR 986534 Nested IF blocks in a merge template were skipped.
| New Features in Magic Version 8.30 Service Pack 8 (Top) · NoEditCalc Magic automatically performs the required arithmetic operation when entering a number in a numeric edit field followed by an arithmetic symbol. The NoEditCalc special flag allows you to disable this functionality and treat the +/- signs typed after the number as the value sign. To disable this automatic functionality this flag must be set to Yes. [MAGIC_SPECIALS] NoEditCalc=Y The default value of this flag is No. · Logical names for indexes Index db names that include logical names defined in the client Magic.ini file are now supported for the data server as well. · MLE Printing as in V7 A new special flag has been added to enable printing of incomplete last lines of multi-line edit controls. Note that when this flag is set to Yes, wrapping of long strings will not take place. [MAGIC_SPECIALS] SpecialLastLinePrint=Y (Default=N) Note that this special flag cannot be used together with the SpecialFullText special flag.
| QCRs fixed in Magic Version 8.30 Service Pack 7 (Top) · QCR 153139 - In the Html Merge form the input fields list showed "tag name" title instead of "field name". · QCR 296805 - Magic crashed when a string larger than 256 characters was translated using the multi-language support. Note: The limitation of the string to be used is 256. · QCR 425135 - Magic crashed when an OLE object was closed by pressing the ESC key. · QCR 427791 Text-based forms that were exported from Version 8.20 and lower were imported as HTML forms. · QCR 429284 - MgApi returned NULL for hyperlink set as Web Online commands in HTML Merge form. · QCR 443081 - Magic did not accept a valid CASE function with return values of DATE or TIME data type. · QCR 441295 - Magic crashed when a task with a Link Query call to a resident task had either a Link Join or a Link Query to the same table as in the parent task. · QCR 494969 - A Radio button did not refresh well when it was used on a Table control and the range of values was changed for each record. · QCR 513367 - The Magic engine did not release memory needed for MethodCall procedures of the OLE Automation support. · QCR 537150 - Magic did not perform well when reading and updating the Initial Mode property of a task. · QCR 686249 - The Upper/Lower tables in the MGCONST file that was used for mapping special characters to the Upper/Lower counterparts were incorrect in the French, German, and Spanish MGCONST files. · QCR 711829 - Magic crashed after calling a subtask that performed a link join located by a constant value and used to range the main table twice. The main table of the subtask was also opened by the calling task · QCR 759112 - CISAM Multi-user When the Locking Strategy was set to Immediate, and in one session several links were being updated, and one of the linked records was locked, the other linked records were updated in spite of the lock. · QCR 761517 - The Check box control was misplaced when scrolled through while the window was sized to be smaller than the table size. · QCR 766236 - Magic produced a "Duplicate index" error if a deleted line was re-entered with the same values entered for the fields that were used in the sort. · QCR 875843 - Magic crashed when calling and closing a non-resident subtask with child tasks through a sub-tree event for the second time. · QCR 979067 - When a task was viewed in read-only mode, the condition expression was not shown at the bottom of the flow chart. · QCR 982204 - Magic did not retry on locked records when using locks.
| QCRs fixed in Magic Version 8.30 Service Pack 6 (Top) · QCR 382 - Controls were not placed correctly in GUI output forms if the navigation properties of the controls were set by an expression and the form was calculated by dialog units. · QCR 326026 - The Print Preview did not reflect the number of copies set in the IO settings. · QCR 426158 - A Multi-Line Edit Control using visual font had a black square around it when it was parked for editing. · QCR 456812 The Magic toolkit did not read the name of an Image element properly if its source contained a 'name' string. · QCR 710354 - The result Web Online page showed 'F' string instead of 'False' string when the 'False'log expression was given as a value to the Web Online commands listed below: DisableField SetReadonly SetCheckbox · QCR 754095 - The cursor parked on the left side of a field in a Right-to-Left Multi-Line Edit Control using a visual font. · QCR 754903 - When Settings/Environment/ International/ Thousand Separator = "." Decimal Separator = "," If a Query task Selects a column with a decimal part without ranges and when an index contained the column as a segment in Order = Descending, the view contained records that had column value=0. · QCR 772841 - Magic crashed if you used an input string greater than 2060 characters for a return value in the UDF function. Now the limit is 32k. · QCR 794555 - The print preview did not print according to the 'collate' option in its print dialog. · QCR 978078 - The SP5 client could not pass and receive Blob data to and from a Magic server.
| QCRs fixed in Magic Version 8.30 Service Pack 5 (Top) · QCR 759 - The language table did not refresh at runtime after the translation file value was updated using INIPUT. · QCR 3179 - INIPUT of a service entry was not reflected immediately · QCR 226052 - Magic crashed when "Export Document" was performed for a program that had an HTML Merge form with an illegal "TAG NAME" in the "Tags Table" and there was no select operation of a variable. · QCR 261105 A Delete action on a record deleted a different record instead of the record that was supposed to be deleted. This happened when the deleted record was the only record in the table, and its index was modified so that it was removed from the view. · QCR 392445 - A dynamic ToolTip showed wrong ToolTips in runtime when scrolling down from the last record of screen view in a table control. · QCR 423512 - Magic crashed when a Print Preview window was closed during execution. · QCR 428483 - The record Level of a task was executed even though a linked record was locked. · QCR 452158 - Creating a new table entry before a large number of existing table entries in team development took a long time even though no table had to be renamed in the process. · QCR 456116 - If the index field of some records in the view was modified, Magic displayed only modified records when scrolling through the table. · QCR 597417 - A radio button did not refresh well when it was used on a table control and the amount of option values was changed for each record. · QCR 670861 - When working in a Client Server architecture with CISAM, Magic displayed the error message 'Record has been lost' upon deleting a few records and pressing CTRL+END or the HOME key on a view with runtime sort applied when the temporary Sort Database was set to an open client. · QCR 747226 - A remark line affected the Magic runtime flow when the direction of the flow had been changed by a verify operation. · QCR 748062 - Magic crashed after deleting several records that had a Verify operation of type error in their task suffix. · QCR 748180 - A date field with a picture of ##/##/#### did not display the date well when switching the date mode setting to Scandinavian. · QCR 748465 - When working with the Buddhist date mode the ADDDATE function on '00/00/0000'DATE added 543 to the year beyond the regular calculation. · QCR 750855 - Magic crashed when placing an image control after calling a large DLL file. · QCR 751377 - Images were printed in gray scale when printed out to a specific postscript driver on NT. A Magic Special flag enables this fix: [MAGIC_SPECIALS] OriginalImageLoad=Y · QCR 756683 - Range returned inaccurate results in ISAM files. When inserting records into an ISAM table without selecting a string date field, one cannot range on the "00/00/0000" value of the field afterwards if the table has a key that begins with this segment. In order for the fix to take effect for existing records, you should re-insert these records. New records will work properly. · QCR 757258 - The AM/PM notation in a time type field was not calculated correctly for time values greater than 24 hours. · QCR 762040 - The syntax checker treated an illegal expression defined for an HTML merge tag as an unused expression. · QCR 764400 - The application list ([MAGIC_SYSTEMS]) was not refreshed during runtime if the list was changed using the INIPUT function. · QCR 767800 The Locate functionality of a Link Outer Join worked only for the first time when this Link operation was defined in a resident subtask, and the main file of this subtask was defined in the DB table of its parent task. · QCR 772680 - When Magic hooked on a data view that had a link join (outer/inner) and the locking strategy was Before Update, Magic returned a "record has been updated, please restart" message. · QCR 916281 - A straight line control was always on top of controls in print preview. · QCR 921659 - The CNDRANGE function failed when used in a resident subtask, and the same main table of the subtask was also used in its parent task. · QCR 968551- Memory leak occurred when updating a record within a record level transaction and the record had a blob in one of its fields. · QCR 968894 - Magic 8.30 performance was very low compared with Magic 8.20e when performing an output merge. · QCR 976041 - System memory resources were not released after the execution of an Exit operation through Magic. · QCR 985610 - The Portuguese and German const files (mgconstw.por, mgconstw.ger) translated the available values in Tables Repository\Indexes\Index Properties\Index Type incorrectly by displaying "Virtual" for a Real Index and "Real" for a Virtual Index. · QCR 997934 - The expanded form was printed with distortion.
| New Features in Magic Version 8.30 Service Pack 5 (Top) · Save as HTML to produce Merge templates The Save as HTML option has been enhanced to support the HTML merge functionality. A variable that is placed on the form to be displayed as a static edit control will be saved as a merge tag in the saved HTML file. The tag name will be the same as that of the variable name. · OLE Server Support The OLE Automation feature using the MG_OCX.DLL now lets you work with OLE servers and not just OLE objects. · Longer Application name in Service setting The length of the application name of a service setting has been enlarged to 128 characters to complete the needed integration with CORBA. · 'Record has been lost' message changed The message 'Record has been lost' that is displayed when a record is no longer in view after the View Refresh action has been changed to read 'Record is no longer in view.'
| QCRs fixed in Magic Version 8.30 Service Pack 4 (Top) · QCR 750021 - When using CNDRANGE for locating a linked record with the CNDRANGE condition false, the link did not return the first record as it should have. · QCR 756653 - Magic did not free the memory used for an opened file. · QCR 751377 - When printing a BMP file (24 colors) from Magic on NT4 using the "ImageCard III" Postscript Driver, the image was printed in black and white. In V8.3 SP4 Magic offers a special flag to let you print the images using a different function of Leadtools that print the image properly. However, when this flag is set, images are always considered to be set to 'Distorted' scaling. To enable this new mode of printing, enter the following special flag: [MAGIC_SPECIALS] PscriptPrintNT = Y (The default setting for this flag is False)
| QCRs fixed in Magic Version 8.30 Service Pack 3 (Top) · QCR 840 - Magic displayed the UpdateOFailed message when a developer used Magic locks when IsamTransactions was set to Yes. When Magic encountered a locked record within a Magic transaction, it accepted the fact that the record was locked in the DB because Btrieve returned the record even though it was locked, locked it with a Magic lock, and tried to update it at a later stage. This would evoke an error message. Now, Magic acts according to the 'On Locked Record' flag. · QCR 5483 - When ranging on a constant such as 3000-000-15663 with a Link Left Outer Join, Magic would leave the "*" sign out of the SELECT statement. · QCR 6309 - When the special flag UseCurrentKeyForReports was set to Y, no data appeared in a report when a user-defined sort was performed. · QCR 25643 - When a parameter was passed to Magic using the Web Online feature and the called program updated this parameter internally, the update operation was passed to the Web Online page as an update command with the Data in OEM character set. Now, the update command is translated using the GUI translation file. · QCR 162657 - Magic crashed if a Web Online form of a parent task was zoomed into from a subtask. · QCR 428178 The Radio button control did not refresh well in line mode. Now the Radio button is refreshed for new option values and other new visual properties. However, the radio button may still not refresh well if the number of values is different in the different records. · QCR 441570 - The Magic Flow Monitor showed the system time instead of the local time. · QCR 454855 - Magic crashed when all the records of a task were modified in such a way that they would be deleted by the condition of the 'Force Record Delete' parameter. · QCR 688873 - Magic crashed if an alpha variable of a size greater than 527 was passed by a call remote operation. · QCR 718970 - When using a Direct SQL command such as select sum(fld) from table where FLD is defined as NUMBER (20,6), it was impossible to accept this statement. The Get Definition operation of the same table is possible if you change the storage type of the field. · QCR 752731 - A multi-line edit control was not refreshed correctly when the content of the multi-line edit field was updated using a task event. · QCR 753970 - Switching between applications in runtime failed when the first application was opened using the Start Application environment setting. · QCR 760140 - When initiated, the LASTPARK function failed to retrieve the last park control of an ancestor task. · QCR 760491 - The outdated keyword for defining the MCF record length (CTLRECLEN) was replaced with the proper keyword, MCFRECLEN. You should make this change in the database properties where the keyword CTLRECLEN was used. The change will only influence newly created applications. · QC760814 There was some memory leak when OLE automation procedures were performed extensively. · QCR 761614 - The FreeFormControl() function of the MCF API caused a the program that used it to crash. · QCR 761639 - When moving Oracle tables in the Table repository, the existence of the tables in Oracle was checked for each table between the current position and the target position of the table that was being moved. · QCR 772198 - When a stored procedure in Direct SQL included an input parameter that was defined as numeric and decimal in an expression, the field was rounded out. · QCR 772904 - The Table repository limited the row length of views to 32000. · QCR 774309 - The German mgconstw.ger showed 'July' instead of 'Juli'. · QCR 774325 - No records were returned when performing a Magic sort in a view that was based on a link join or an outer join using link join fields or virtual fields as segments. · QCR 979415 - There was a 256-long buffer limitation in the OLE automation for receiving back variant values. The limit has been increased to 32000. · QCR 978184 - The Flow Monitor did not correctly display the milliseconds part of the operation time. · QCR 980661 An Edit control of a date field did not show the picture characters (such as '__/__/____') when the date equaled zero. · QCR 985411 - In a program with Direct SQL and a link to a field, when zooming in the Form Editor to a control of the real field and zooming again in its variable list to see the Columns, you only saw the virtual fields, the direct SQL fields, instead of the linked tables fields.
| New Features in Magic Version 8.30 Service Pack 3 (Top) · PROGIDX function The PROGIDX function enhances the Call EXP operation by allowing it to dynamically call a program using its name in the Program repository and not only by using its index. PROGIDX This function returns the current index number of the program in the Program repository according to the given program name. The programs can be referred to either by the name or the public name. If two programs have the same name, the returned index will be that of the first program of this name in the Program repository. Syntax: PROGIDX(alpha, logical) alpha: a name of a program in the Program repository. logical: False refers to the program's name True refers to program's public name Returns: The current index of the specified program in the Program repository. Example: PROGIDX('Calculate','False'log) or PROGIDX(A,'True'log) where A is an alpha variable. · CASE Function The CASE function lets you switch among various values according to a controlling expression. It is more advisable to use the CASE function than to use nested IF expressions. CASE Syntax: CASE(Controlling expression, case1, value1, case2, value2, ...., default value) Parameter: Controlling expression: The expression used to switch among the various values. caseX: One of the possible values of the controlling expression. When the controlling expression equals the value stated by caseX, valueX is returned. valueX: The value to be returned when the controlling expression equals the preceding parameter, caseX default value: The value that is returned if no caseX equals the controlling expression. Returns: The value that follows a case value that is equal to the controlling expression. If no case value equals the controlling expression, the return value is the default value parameter. Example: CASE (A,1,'Red',2,'Green',3,'Blue','Black') When A=1, the function returns 'Red'. When A=2, the function returns 'Green'. When A=3, the function returns 'Blue'. When A is other than 1,2,3, the function returns 'Black'. This example replaces the nested IF expression listed below: IF (A=1, 'Red', IF (A=2, 'Green', IF (A=3, 'Blue', 'Black))) · Placement enhancement The Magic placement of controls has been enhanced by allowing the Magic developer to determine the placement mode used for the placement calculation. The placement mode to use is set in the Magic Environment Settings under Placement mode. This setting may have two values: Proportional - The control will be resized to keep the proportional change the same as in the change of the form. For example, when the width of a control is 10, the width placement of a control is set to 100%, the form initial width is 200, and the form is resized to a width of 300. This changes the width of the control to 15, and therefore, the proportion of the forms change, 50% increase, will be the same for the control. Absolute - The control will be resized by the fixed size by which the form was changed. For example, when the width of a control is 10, the width placement of a control is set to 100%, the form initial width is 200, and the form is resized to a width of 300. This changes the width of the control to 110, and therefore, the size of the forms change, 100 units increase, will be the same as for the control. This setting will be reflected in the Magic.ini file as follows: PlacementMode = (P - for proportional, A - for absolute). The default setting will be PlacementMode = P Since this Service Pack does not supply an updated Magic.ini file, please enter the placement entry as follows: PlacementMode=P · Array size for application control file The dearray size of the application control file will be 64k/MCFRECLEN. · Flow Monitor in Background mode The flag LoadMonito= should now be placed under section [MAGIC_FLOW_MONITOR] and not under the specials section. . · Secret Names in Broker Password You can now define a secret name for a server password in the server settings of a Magic instance. · Application's external files from a server You can now set the location of an applications external files to be directed and retrieved from the server. This is done by specifying the server name in brackets before the file name. For example: color file location = (my_unix)clr_std.eng Upon opening the application, the external files are fetched from the server and used by the application. This new feature removes the need for keeping the external files locally at each client machine. * DISCSRVR does not consider an external file to be open. · Logical Names in Tables' indexes The Magic Table repository lets you create a fully dynamic table structure by enabling the logical names functionality in the indexes names of a table. · User Count The Magic user count functionality, using the lock file, is independent of the number of users This should solve the problem of opening application files from several instances on one machine when the license does not count the instances (e.g. CSTK, LANTK, CSRT) · RTF size The size of the RTF edit field is, by default, the default size for RTF as defined by the operating system. Using a new special flag, the Magic developer can define a different size for an RTF edit field. The new flag is called 'RtfBufferSize' and accepts numeric values that will determine the required size for any RTF edit field that will be displayed, in kilobytes. This flag should be placed in the [MAGIC_SPECIALS] section in the Magic.ini file. For example: [MAGIC_SPECIALS] RtfBufferSize = 64 This makes any RTF edit field that is displayed on a form 64Kb in size. This setting is read every time before a new screen is built, that is, prior to the Task Prefix. This means that using the INIPUT function before entering a task sets the size of each RTF edit field that is built for the form of the task. Changing this wetting within a task does not affect the size of the RTF edit fields that were already created. Please keep in mind that any INIPUT may permanently be in the Magic.ini file, and will be reflected in the next session.
| QCRs fixed in Magic Version 8.30 Service Pack 2 (Top) · QCR 25643 When updating fields in a Web Online document from a Magic task in a language other than English, the value of the update operation was sent in OEM and not in ANSI. · QCR 269588 Magic crashed when clicking on the scrollbar while the Print Preview window was open. · QCR 293450 A wrong error message appeared for an invalid URL that was defined in the Web Online Response or the HTML Merge Form. · QCR 423071 Magic crashed when scrolling through a complex print preview. · QCR 427651 When the output of a text-based form was sent to a printer where no queue was defined, Magic displayed the error message Incorrect printer setup instead of sending the output to the default printer of the system. · QCR 439267 - The Merge feature was not available on Desktop products. · QCR 439852 Magic crashed when opening the Flow monitor while running a task that has an IO setting with an expression longer than 50 characters. · QCR 449500 - Magic crashed when a subtask that contains a Link Join sent parameters of its parent task to another program that updated these parameters. · QCR 749886 - The range operation failed when the picture of the ranging value was larger than the picture of the ranged field. · QCR 755917 - Magic crashed when a resident task with a link join called itself. · QCR 770437 In a text-based output file, the CHR (0) character was replaced with CHR (32) for the last character in a line. A new flag has been implemented to enable the fix: [MAGIC_SPECIALS] PrintDataTrim=N. This setting prints the last character of a line as CHR (0) if defined. The default value of this flag is Yes. · QCR 770780 - The mouse pointer returned to its default shape, disregarding the previous SETCRSR function, after going over a hyperlink push button. · QCR 772730 When using the Buddhist date format with a String date storage type, the behavior is different from the Integer date storage type. A new special flag was added: [MAGIC_SPECIALS] UseBuddhistDateModeForDB = Y or N (Default is Y). When this flag is set to No, the date value is stored in the database as a regular date. In presenting the date value, Magic performs the required translation to show it as a Buddhist date. This flag displays the date properly after the date mode is changed. · QCR 774817 Magic failed to print the last line of data entered in the multi-line edit control. · QCR 776645 Printed tables were occasionally misprinted when the special flag setting was ClosePrintedTablesInSubtasks=N. · QCR 780405 The Locate action failed when it was performed on a called program or task that used an index expression and a Link Inner or Outer Join operation. · QCR 791068 - The reference to the HTML Attributes of Forms and Controls did not reflect the change made in the expressions displayed in the Expression editor. · QCR 798665 - The mgconst file of several languages kept the wrong syntax for some of the Web Online commands causing these commands to fail. · QCR 916514 The default value of Date and Time of Virtual variables that are set with Standard storage type was always '00/00/0000'Date or '00:00:00'Time regardless of the setting of the "Def/Null" property. · QCR 923282 - RTF controls were partially printed when the printed form was set to expand on one page. · QCR 980888 - Magic crashed when zooming to the output parameter list of a direct SQL command after a type was changed in the Type repository. · QCR 991473 - The Copy Operation shortcut, CTRL+INS, was not enabled for multi-line edit controls. · QCR 995026 - Magic had a hard-coded time-out of 10 minutes for locked records. In SP2 there is a new special flag that defines the time in seconds after which Magic will quit retrying to fetch the locked record: [MAGIC_SPECIALS] RetryOperationTime = 600 The default value is 600 (10 minutes).
| New Features in Magic Version 8.30 Service Pack 2 (Top) · Web Online Files In Magic 8.30 Service Pack 1 the location of the Web Online support files was determined by the location of the Internet requester as specified by the Http Requester Environment setting. Since the UNIX Web servers do not allow the requester directory (CGIBIN) to be read, the placement and reference of the Web Online support files have been modified. Web online support now utilizes the Web Document Alias environment property as the location for the Online files (Jar, JS) that are referenced on the Web Online page. These files need to be placed in the directory specified in the Web Document Path environment setting. This alias must also be set in the Web server. If no Web Document Path is set, the path for the Web Online files will be determined from the Http Requester property, as in Magic 8.30 Service Pack 1. · Indexed Report Generator Up to Magic version 8.30 service pack 1, a report that was run through the Report Generator facility used the index set by the toolkit and not the index selected by the end-user at runtime. A new special flag has been added: [MAGIC_SPECIALS] UseCurrentKeyForReports = Y or N (Default: N) Setting this flag to Yes causes a report to use the index that was selected by the end-user at runtime. · SQL reconnect If the connection is suddenly disrupted, Magic automatically reconnects to the SQL server when there is no open cursor. This feature is now available for the MS-SQL database, and will soon be supported for all Magic SQL gateways. · Application licensing Magic 8.30 Service Pack 2 provides a new feature that lets you control access to features in a Magic application. For more information, see The Magic Application Feature License document.
| QCRs fixed in Magic Version 8.30 Service 1 (Top) · QCR 18294 - Magic output forms, mostly HTML, were wrongly affected by the Native Translation File. · QCR 793517 When a multi-line edit control was in a table for an expanded form and another form was printed in the break level prefix or suffix, the output became corrupted. · QCR 981102 The output of a multi-page form with an invisible control in its table increased the tables row height. · QCR 423631 After a program has completed printing a report to the print preview and no other program has been opened, Magic would not accept any navigation keyboard commands. · QCR 775902 When using the horizontal slider to move from side to side, the screen became mismatched. · QCR 762353 - A transparent color selected for a control appeared as Black or Cyan in the background when in focus. · QCR 507777 When you called the Call Task/Program where LCK=NO to update a field of the main table with a program that has a Link (Outer/Inner) Join operation, the record rolled back and displayed the following message: Record has been updated Restart. This behavior was changed in Magic 8.30 Service Pack 1 to let locking occur only when the transferred parameter is a real variable that participates in the program's re-computation. · QCR 978060 - The Magic engine crashed when it was loaded as an application server without the Magic Broker. · QCR 286826 - Magic crashed when sorting virtual variables in the Report Generator.
| New Features in Magic Version 8.30 Service Pack 1 (Top) Magic 8.30 Service Pack 1 offers a new Vertical Factor of 500 for forms set in centimeters. This allows for better resolution when printing from the Print Preview. This setting is only relevant for new tables. It is advisable to recreate the table when changing an existing form to the Vertical Factor of 500.
| Thank you, The Magic Version 8 Team