Jump to content

Tony Waszkiewicz

Member Since 05 Jun 2000
Offline Last Active Nov 21 2011 08:49 AM

Topics I've Started

PRO-ISAM file definition

03 September 2004 - 03:39 PM

Hi all,

We have a very old application that we would like to review.
Unfortunately we have lost the file definitions :x:

Can anyone let me have a guide to reverse engineering pro-isam file definitions from the data?


New Release Of ProIV

17 August 2004 - 08:55 AM

A New kernel & client release is out .

Windows Kernel 5.5 r345

Client 524

No notes on what has been changed though

PRO-IV query tool

02 July 2004 - 07:55 AM

Hi All,

Has anyone got any experience of using the PRO-IV query tool or written something similar?

We are interested in being able to provide our users with a simple to use GUI tool for querying their database (either Oracle or SQLServer) from within PRO-IV.


A debugging utility

25 June 2004 - 03:19 PM

File-Based Debugging Utility for PROIV
This utility was designed to facilitate debugging on PROIV by writing your debug string from PROIV
to a text file named C:\Temp\S_DEBUG.TXT on your workstation PC.
It uses PROIV's LINK_CLIENT_VAR command, which works with DLL library functions.

To install, copy the attached file V_UTIL.DLL to the PROIV Client (also known as the MFC) directory.
Then create the global logic DEBUGF (see below) and use in the appropriate place in your logic.
For example:
DEBUGF('This message will be written to C:\Temp\S_DEBUG.TXT')

It has been tested on PROIV 4.6, 5.5 (may work on 4.0 but can't remember) on Windows, UNIX, and Alpha.

Faster than writing to a PRO-ISAM file, or using the SYSTEM command
File size limited only by operating system
Message written immediately, e.g. no need to commit

When to use
It is most effective when debugging a batch-type or long running process, where a simple UMSG is inadequate.
For short processes, we have another global logic called DEBUG, which is based on DEBUGF but uses UMSGs to output to the screen instead.
Feel free to modify the global logic below to suit your purposes.

Global Logic: DEBUGF

002 * -----
003 * If the first character is ^ (caret), only the message is written (i.e. no extra details)
004 FOR #LP = 1 TO 2
005 IF $$_DEBUG_MSG(1, 1) = '^' THEN
006 #ST = LINK_CLIENT_VAR('V_util.MsgToFile', %IN% $$_DEBUG_MSG)
007 ELSE
008 #ST = LINK_CLIENT_VAR('V_util.MsgToFile', %IN% @CURFUNCT(1, 8)
009 + ' ' + PIC(@CUR_LS, '99') + '.' + PIC(@CUR_FL, '99')
010 + '.' + PIC(@FLD, '999') + ' ' + $$_DEBUG_MSG)
012 IF #ST = 0 THEN
014 ELSE
015 UMSG('Debug file locked temporarily by another process.'
016 + CHAR(13) + 'Click OK to retry.', -1)

Note: if the code above is shown without proper indentation (as shown in the preview), it's because the editor seems to have removed the spacing.

Example of Output File (C:\Temp\S_DEBUG.TXT)

Time Function SF.FL.FLD Debug message
-------- -------- --------- --------------------------------------------------
16:49:14 S_LOGIN 01.00.036 User SYS logged in
16:49:14 S_MENU 02.00.004 AFTER FLD 4: Branch=GB@

Time: This is the local time (i.e. time on workstation)
Function: The current function name (i.e. @CURFUNCT)
SF: The current cycle, LS, or 'S'ub-'F'unction seq number (i.e. @CUR_LS)
FL: The current file seq number (i.e. @CUR_FL)
FLD: The current field number (i.e. @FLD)

Final Notes
This utility has been been useful in locating some problems that would otherwise have been very difficult to find. Hope the PROIV community will find it as useful as it has been for us!

Using ENTER or TAB with ActiveX controls

25 June 2004 - 10:35 AM

Hi All,

We are trying to incorporate some ActiveX components in our application. However, there is a problem using the ENTER or TAB button. What happens is that PROIV intercepts it and doesn't propagate the key press to the ActiveX control. The workaround is to use CTRL+ENTER and CTRL+TAB instead, but this is not really acceptable as it is not intuitive. As an example, we are trying out a text editor (Microsoft's RichText component), but it happens with other controls as well (our ActiveX menu uses Treeviews, listview and buttons but cannot get the ENTER key to work as we would like).

Has anyone had a similar experience and how did you solve it? Any ideas would be appreciated.