This
document describes the new features in Panther 4.60.
· Multi-line tooltips are available for Windows applications. When necessary, use %n to indicate carriage returns.
· Panther COM component can now create another COM component through an external C function.
· ActiveX support has changed so that Panther yields control to ActiveX keyboard controls.
· Panther screens can now be set to dialog boxes (as opposed to MDI frames) at runtime by setting the following:
@screen_num(0)->dialog = PV_YES
· Box widgets now support the SUNKEN line/box style. Under Identity, set Line/Box Style to Sunken.
· A pop-up menu can be invoked from a dialog box at runtime. (See the following section.)
Note: Remember to set the
following property in your prol4w32.ini file:
StackedWindowType=Dialog
· Panther/Motif now supports 24 bit bitmaps. Earlier versions only supported 256-color BMPs.
· SM_DECIMAL now supports European number/currency formats. Regional Settings should also be set to Decimal.
· You can have an event hook in Web applications with sm_web_set_onevent which allows you to install a C function event hook. Click here for documentation.
· HTML Templates
o Performance improvements were implemented for HTML templates.
o There are new metatags for HTML templates, {{ws:off}} and {{ws:on}}. {{ws:off}} will not generate white space after the end of a meta tag. {{ws:on}} restores the default behavior.
· There is a new EJB interface to access Panther Web reports.
· For security reasons, certain options have been disabled for reports invoked from a URL. Click here for a list of the disabled options.
· A new external caching option is available for Web applications. You can cache the Web application state externally by setting ExternalCache=1 in the Web ini file.
· You can set HTTP headers with sm_web_set_http_header.
· You can place the webid in an HTTP header in order to automate testing of a Panther Web application. Two additional options enable this feature:
o WebIdHeader—Specify the text of the header you want to send, using %s to embed where the webid should appear.
o QsWebIdHeader—Obtain the value of @webid in the last QUERY_STRING rather than the current webid.
· sm_mw_get_instance can now also be used in Windows Web applications to get the Windows instance handle of jserver.exe.
· Multiple devservers can be deployed to run remote reports. This helps facilitate load balancing in a multiple user scenario.
Note: In order to gain a performance increase, you may need to re-configure your system.
· The user interface has been improved for the Library TOC and Repository TOC.
· For remote reports, the length allotted for the parameter list has been increased.
· In the Report Structure window, Ctrl+C, Ctrl+V and Ctrl+X are now supported.
· For security reasons, the following options have been disabled when a report is invoked from a URL:
device spool printer output |
service view printtofile |
remote async overwrite append |
· JPL once again supports Dynamic data exchange using the sm_dde* functions.
· SQL Server now has outer join support.
· In SQL Server, you can now access the following database error codes in JPL: @dmengerrcode, @dmengerrmsg, @dmengwarncode, @dmengwarnmsg.
·
Oracle
9i DBI drivers are available for Panther.
· You can have an event hook in the database interface with dm_set_onevent which allows you to install a C function event hook. Click here for documentation.
· The debugger has a new option, Bypass Keychange Function on the Options submenu. When selected, processing inside the keychange function is not reported.
dm_set_onevent
(name);
char
*name;
Description |
This function allows the user to install a database interface
event hook. The name should be the name
of a function installed in the prototype function list. The prototype is: event_hook(char *, char *, char *, char
*, int) i.e. event_hook(s,s,s,i) A hook
function may be installed at any time, and it is deinstalled by calling the
function with an empty string. If an
onevent hook function is installed, Panther records the start time before
ONENTRY is (or would be) called, and then calls the hook function after
ONEXIT is (or would be) called. The
parameters passed are:
event_hook
(char *command, char *path_info, The first parameter is a string constant describing the
event. The following constants are
currently available:
The second
parameter is the arg passed to the command.
It is the same as passed to the ONENTRY/ONEXIT hooks or retrieved by sm_dbigettext. The third
parameter is non-0 only if the WITH CURSOR phrase had been used. In that case it is the SQL that the cursor
had been prepared with. This is useful for commands like EXECUTE. The last
parameter is the elapsed time in milleseconds. For commands that do not go to
the database (e.g. ALIAS) this is often 0.
If a hook is installed in or after ONENTRY, the DBi code will not have
recorded a start time. In this case,
elapsed time will be 0. In the
current implementation only C onevent hook functions are supported. JPL is not supported for the hook function
itself. However dm_set_onevent is in funclist and can be called from
JPL: call
dm_set_onevent("hook_function") |
sm_web_set_onevent
(name);
char
*name;
Description |
This function allows the user to install a Web event hook. The name should be the name of a function
installed in the prototype function list. The prototype is: event_hook(char *, char *, char *, char
*, int) i.e. event_hook(s,s,s,i) If an The Web code records the start time before every event and
then calls the hook function after it has completed. The parameters passed are:
event_hook
(char *command, char *path_info, The first parameter is a string describing the event. The current list of available commands is: GET POST The second parameter is the path_info as returned by sm_web_get_cgi_info. The third parameter is the query string
for GET and the form name for POST. The last parameter is the elapsed time in milliseconds. For commands that do not do much
processing (for example, a GET for a bitmap), this may be 0. The hook function is normally installed
via initjpl but can be installed in a screen entry or exit function. In the current implementation only C hook functions are
supported. JPL is not supported for
the hook function itself. However sm_web_set_onevent is
in funclist and can be called from JPL: call
sm_web_set_onevent("hook_function") |