This is the README file for MPress 1.21. Contents ======== 1 System Requirements. 2 Installation 3 Configuration Information. 4 What's new in release 1.21 5 What's new in release 1.20 6 What's new in release 1.10 1 System Requirements =================== PC 100 MHz Pentium processor or better, 64 MBytes RAM (128 MB recommended), 15 MBytes free disk space, Windows NT (SP3 or later), Windows 2000 Professional (SP2 or later), or Windows XP. A TCP/IP connection to an NSK system. A monitor that supports a resolution of 1024 x 768 or higher is recommended. NOTE: We do not recommend installing MPRESS on Windows 95, 98 or ME. NSK NSK S series, or K series (D40 or later), Nonstop SQL/MP, or SQL/MX release 2 or later TCP/IP. An HP LaserJet printer (PCL 5 or 6) or compatible printer or A PostScript level 2 compatible printer. 2 Installation ============ MPress consists of client components, which are installed on your PC, and server components which are installed on an HP NSK system. To install MPress, run either the full release setup program, or the client setup program. You will be prompted to supply a setup password which is available by sending an email to sales@merlon.com. Once Setup has finished, run the MPRESS.EXE client program. A wizard will help you complete the client configuration, and the installation and configuration of the server components. NOTES: a) It is recommended that you do not install the MPress client program in the same directory as a previous version. If you choose to do so, use Add / Remove programs to uninstall the previous version. b) To install the NonStop SQL/MX driver module you must have permission to write to the /usr/tandem/sqlmx/USERMODULES directory. To re-install, you also need permission to remove the existing module file (MERLON.SQLDX.VER_1). 3 Configuration Information. ========================== In order to configure MPress, you will need to know the following: a The name of a TCP/IP process running on the NSK system that can be used to connect from your PC. The default is $ZTC0, you may use a different value on your system. If Parallel TCPIP is installed on your system, use the name of a TCPSAM process instead of a TCP/IP process. Check with your system administrator. b The TCP/IP address used by this TCP/IP (or TCPSAM) process, for example 192.168.1.2 c TCP/IP port numbers which are available for use by MPress. Port numbers are used to make a connection between a PC client and an MPress server. MPress servers can be configured to be static or dynamic. For Static servers, you will need one port number for each concurrent user of MPress, plus 1 more. These must be consecutive numbers. For Dynamic servers, you will need one port number. This port number must be mapped to the MPress design server program (DESSRV) in the TCP/IP PORTCONF file. Static servers run all the time. Dynamic servers are started as needed, they will be stopped when the PC disconnects. Note that the port numbers you choose must not be used by any other applications that share the same TCP/IP process with MPress. Normally, you should use port numbers greater than 1023. (To find out which port numbers are in use, use the SCF STATUS PROCESS command for the TCP/IP process you plan to use). 4 What's new in Release 1.21 ========================== a) MPress can now produce Adobe(R) Portable Document Format (pdf) files directly. b) MPress can now write output directly to OSS files, as well as to Guardian files. c) The builtin functions FLOAT and ROUND were added. d) A number of defects were corrected. 5 What's new in Release 1.20 ========================== There are two major enhancements in this release of MPress: a) Charting capability was added. b) Major enhancements where made to the Enscribe Data Extraction component (DXE) Charts ====== A chart object requires an associated datasource. The datasource must be constructed so that one or more rows containing the data to be charted are returned. For each type of chart, there are horizontal (simple) and vertical (complex) interpretations of the data. For bar charts, there are also horizontal and vertical presentations. Horizontal Pie For a simple pie chart, the datasource should return a single row. Each positive numeric value in the result set forms a slice of the pie. The column names are printed (on the legend) as the description of each slice. Vertical Pie For a complex pie, the datasource returns multiple rows. The chart object defines which column contains the numeric data to be charted, and also which column contains the descriptions. Horizontal Bar The datasource returns multiple rows. Each numeric column value in the result row(s) is/are charted as a bar(s). The bars can be stacked, or can sit beside each other. Each set of bars is labeled with the column name. A simple bar chart can have a horizontal (labels on the y-axis with horizontal bars), or vertical (labels on the x-axis with vertical bars) presentation. Vertical Bar The datasource returns multiple rows. The column containing labels is defined by the chart object. Any other rows should be numeric and are plotted together (stacked or size-by-side) and labeled with the data from the label column. The chart can have a vertical or horizontal presentation. Horizontal Line and Vertical Line charts are analogous to bar charts except that the data are plotted in lines. Text A Text Chart is a matrix style print of the numeric values from the chart's datasource along with column headings. Enscribe Data Extraction ======================== a) The Enscribe SELECT statement is now constructed in a similar manner to the SQL SELECT statement. A tree of dictionaries with DEFs, RECORDs and FIELDs can be used to insert those values into the statement and files and queries can still be browsed for. A KEY phrase builder has also been added. Keywords and built-ins applicable to Enscribe are available in drop-down lists. A Guide (Wizard) has been added to simplify building Enscribe SELECT statements. b) The Enscribe SELECT statement now supports WHERE and ORDER BY clauses. The WHERE condition can include the standard relational operators as well as BEGINS [WITH] (for leading string comparisons) and MATCHES (for a pattern match using * , ?, and + as wildcard characters). c) Conditional terms can make use of the operations +, *, -, / etc. As well there is support for the following built-in functions: a. COMPUTEJULIANDAY (y, m, d) returns an integer day number b. COMPUTETIMESTAMP (y, m, d) returns an integer timestamp c. CONVERT48TIMESTAMP (t) converts an old style 48 bit timestamp in a PIC X(6) field to a 64 bit local timestamp. d. CONVERTGMTTIMESTAMP (t) converts a GMT timestamp to local time. e. JULIANDATESTAMP() computes the local timestamp of midnight of the current day f. JULIANTIMESTAMP() computes the current local timestamp g. LOWERCASE(s) converts a string to lowercase h. SUBSTR(s,p[,l]) extracts a substring starting at position p (optionally of length l). i. UPPERCASE(s) converts a string to uppercase. d) ORDER BY can specify up to 32 fields for ordering the report data. Each field can optionally be DESCENDING or UPSHIFTed. Note that ORDER BY always causes a sort to occur, even if the data is already in the specified order. e) Unlike SQL, the Enscribe data extractor cannot determine an optimal access method for the data from the WHERE clause. You should use the ALTKEY or KEY clauses to specify what records will be read. If you do not specify a KEY or ALTKEY clause, then DXE will scan the entire input file searching for records which match the WHERE condition. f) The Enscribe SELECT statement now supports the use of an ALTKEY clause to cause positioning on an alternate key. g) Both KEY and ALTKEY clauses have been enhanced to specify both start and end keys. h) The Enscribe SELECT statement has been extended to allow specification of a DEF in addition to, or instead of, the RECORD specification. i) The Enscribe SELECT statement has been extended to allow the specification of both MAXRECORDS (the maximum number of records to read from a data source), and MAXSELECTS (the maximum number of records to be selected from a datasource). Neither, one, or both of these options may be specified. j) The Enscribe SELECT statement now allows the specification of NOTRIM, which prevents strings from having trailing nulls and blanks removed Other Changes ============= a) A PrintWhen property was added to bands and sections. The property contains an expression that suppresses printing of the band or section (and all of its contents) if the expression evaluates to FALSE. b) A PRINTCOUNT builtin rendering function was added. This function takes a single string argument that is the name of a band or section component. It returns the number of times the band has been printed. c) A CONVERT48TIMESTAMP rendering function was added. This converts an old style 48-bit timestamp to a 64-bit local timestamp. d) A MAXROWS attribute was added to datasources. This allows a datasource to be restricted to a maximum number of records after any ordering or selection has occurred. This permits the construction of reports that list the "first 100" or the "top 10". e) A COLUMNS attribute was added to regions. If this attribute is set, and is greater than 1, it specifies a number of columns for the printing of detail bands. The width of the region is divided by the number of columns in order to dete rmine the width (and leftmost positions) of each detail band. Bands other than detail bands are not affected by this setting. f) ORIENTATION can now be specified for pages. Acceptable values are: poPortrait, poLandscape, or poParent. g) The WaterMark object was implemented for text watermarks. h) Save to JPEG and Save To BMP were added to Print Preview. i) Bands can be minimized/maximized to keep them together. Notes ===== a) The shapes RoundedRectangle and RoundedSquare are not currently supported in the server. 6 What's new in Release 1.10 ========================== a) Support was added for Enscribe datasources. An Enscribe datasource can read data from a single Enscribe file, or from an Enform compiled query containing a single FIND statement. b) Support was added for "lookup" datasources. A lookup datasource is associated with a section. When the section is printed, the lookup datasource is used to fetch a single record from a database. Component in the section can access the fields from the lookup datasource. c) Parameters in lookup datasources can take their value from expressions, or from report datasource fields, as well as TACL PARAMS. d) A new property "PrintWhen" was added to band components. PrintWhen is an expression that evaluates to true or false. Each time a band is a candidate for printing, its PrintWhen property is evaluated, if true the band prints, otherwise the band is not printed. If PrintWhen is blank, the band always prints. Note that a PrintWhen expression should not contain forward references, for example, using SUM(FLD OVER GRP) in a group header. The calculation of a forward reference cannot be deferred, since the report engine has to make the decision to print or not at the time the band is being rendered. If PrintWhen contains a forward reference the value at the time of evaluation will be used instead. This will usually not produce useful results. Examples of use are: A datasource with more than one record format. Define a detail band for each record format, with each band having a PrintWhen condition that tests for the record type. Suppressing printing of a group footer based on some condition like total order value is zero. e) The Import Picture command now supports JPEG as well as BMP files. f) A font toolbar was added to the designer, making it much easier to set font attributes. g) Inplace editing was added for a number of component types. Inplace editing allows you to edit the principle property of a compoent directly from the design surface. To invoke inplace editing, click on a component, and press Ctrl + E. The properties you can edit are: Component Type Property Label Caption Field Field DBMemo Field Variable Kind Shape Kind In addition, you can replace the Caption text for a label simply by selecting it, and typing the new text. Ctrl + E is also the shortcut for the following popup editors: Component Type Property DataSource Text Expression Expression Memo Caption The addition of the font toolbar and inplace editing means that you can set many more properties without having to use the Inspector. This allows you to do much of your design work with the Inspector closed. This frees up screen space for the designer, reducing the need to scroll the design surface. h) A number of small improvements were made to the report designer. i) A number of defects were repaired.