Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Jeff Wilder

Programming / Re: VS Code Extension for PxPlus
November 13, 2020, 10:19:04 AM
Let me also say, my desire to use VS Code is not because PxPlus is lacking features or has a poor IDE, but because I maintain web apps that heavily use JavaScript, HTML, and CSS with PxPlus on the server-side. It would be nice to use VS Code for editing all code in one place. My PxPlus needs (in this case) are for pure web server programs. I don't see myself using VS Code for editing Nomads forms, data dictionary, etc.; for those purposes the current PxPlus tools work perfectly.
Programming / Re: VS Code Extension for PxPlus
November 13, 2020, 10:02:16 AM
I have also been kicking around the idea of creating something for VS Code. Is there any interest in starting a project on GitHub so we can all contribute?
Thank you Eric. That does appear to work.

However, moving the custom object to the client defeats the purpose I had in mind for using the object in the first place. I had created some methods that aided a particular application's responsiveness by reducing the network traffic to the workstation. I suppose I can make it into a standalone class, but I really liked the idea of extending the grid's properties and having PxPlus manage the life of the class with the graphical control.

Best Regards,
Does the ObjectID user object method feature work over a WindX connection? I am having trouble attaching my custom object.
When I run the following program locally, it prints the objectID for my user object and sets the value. When ran over a WindX connection, it prints 0 (zero) and gives an error 88.

0010 BEGIN
0020 LET X=10
0030 GRID X,@(1,1,60,10)
0040 LET O=NEW("myGrid",X)
0070 X'SETVALUE(1,1,"hi")
0080 INPUT "Press Enter",*
0100 END

myGrid.pvc is a clone of the example provided in the manual at
I am using PxPlus 15.10 on the server and WindX.

Thank you,
Nomads / Re: Launch Nomads into a Library?
March 18, 2020, 05:09:07 PM
I have successfully used a call to the NOM system command program:

CALL "*cmd/system/nom ",Screen_Lib$
CALL "*cmd/system/nom ",Screen_ID$+" "+Screen_Lib$

Is it possible to control the display of the hover info tip function through code or the *tooltip program? For example, can I display a tip on a button click event instead of a hover? Can the info tip display time be controlled? Is it possible to have the tip window remain visible until it is clicked?

Best Regards,
Programming / Setting viewer font size on first page
December 19, 2019, 02:50:02 PM
Hello All,
I am experiencing an odd behavior from the *Viewer*, but perhaps I am doing something wrong.

When my report output falls within certain widths, the font displayed on the first page is smaller than the rest of the report pages.  I have created a small example program to demonstrate the behavior.  When you enter 99 for the maximum column size, the pages are identical. However, when you enter 100 for the maximum column size, the first page displays with a smaller font size as shown in the attached image.

Is this expected behavior for the viewer or am I missing something? I do not see the same results when printing to *PDF* or *WINPRT*. I am using PxPlus 2019 and 2018. Any ideas what may be going on here?


0010 begin
0020 let c=100
0030 input edit "Maximum Columns: ",c
0040 for c; let x$+=mid(str(c),-1); next
0050 open (1)"*viewer*;onclose;margins=500:500:500:500;Columns="+str(c)
0060 gosub PrintTest
0070 close (1)
0080 open (1)"*PDF*;margins=500:500:500:500;view"
0090 gosub PrintTest
0100 close (1)
0110 end

0120 PrintTest:
0130 print (1)'font'("Arial",-12),'DF',
0140 print (1)'font'("Arial",mxc(prn)/c),'DF',
0150 print (1)'text'(@x(0),@y(1),@x(c),@y(2.5),x$),
0160 print (1)'text'(@x(0),@y(4),@x(40),@y(5.5),"Page 1"),
0170 print (1)'FF',
0180 print (1)'text'(@x(0),@y(1),@x(c),@y(2.5),x$),
0190 print (1)'text'(@x(0),@y(4),@x(40),@y(5.5),"Page 2"),
0200 return
Thin Client/WindX / Re: Most Common Setup
October 15, 2019, 12:55:27 PM
Hello Jeff,
I can't comment on what most developers are doing, but I've used WindX for most of my career.  From NTHost, to Application Server, to PxPlus Client-Server on multiple host OSes.  I now primarily use and recommend using the encrypted PxPlus CS with TLS 1.2 (or better) for non-web-browser based applications.

Best Regards,
Jeff Wilder
Language / Re: Error 49
October 10, 2019, 09:53:42 AM
I also found that if the line contains a function or another conditional, it passes without error.

For example, these work in the program above:

0070 IF STP(V$) LIKE R$ THEN PRINT "true" ELSE PRINT "false"


0070 IF NUL(V$) OR V$ LIKE R$ THEN PRINT "true" ELSE PRINT "false"
Language / Error 49
October 10, 2019, 09:22:49 AM
I receive an error 49 at line 0070 when the IT system parameter is enabled.  Is this a bug or am I using the LIKE operator improperly? I have switched my statements to use MSK() instead and all is working, but I am wondering the cause of the error.

The TL parameter is off. I have tested in PxPlus version 15 and 16.


0010 BEGIN
0020 SET_PARAM 'IT'=0
0030 WHILE (X++<2)
0040 LET R$="[0-9]"
0050 LET V$="2"
0060 IF MSK(V$,R$) THEN PRINT "true" ELSE PRINT "false"
0070 IF V$ LIKE R$ THEN PRINT "true" ELSE PRINT "false"
0080 SET_PARAM 'IT'=1
0090 WEND
0100 END

0070 IF V$ LIKE R$ THEN PRINT "true" ELSE PRINT "false"
Error #49: <*> Internal program format error <*>
Current program is <unsaved>, line 70
Nomads / Re: Grid cell validation logic and CellTag
October 01, 2019, 11:22:59 AM
Interesting. I was not aware of that feature. If the ID value in the grid tag doesn't work out, I will look into it, but it does sound like a potentially risky method (especially if another programmer comes by later without realizing what is happening.)

Thanks again. Great ideas!
Nomads / Re: Grid cell validation logic and CellTag
October 01, 2019, 11:05:47 AM
Thank you Mike. That will take care of my needs.
Nomads / Re: Grid cell validation logic and CellTag
September 30, 2019, 03:08:19 PM
Yes. CTL does have the grid's ctl value. That would work except when the format routine is called after returning from a query button press in a 'Lookup' CellType.  In that case, CTL is a value which does not appear to represent an object (in my case 10016).
Nomads / Re: Grid cell validation logic and CellTag
September 30, 2019, 02:47:57 PM
Yes. I have set the CellTag$ property of the individual cell. When I trace back from my validation routine, it appears to be called from the following line in *winproc:
2280 IF _OBJ_TYPE$="G" \
  ELSE CALL _INP_TBL$[_ID,_WDW_INDX],ERR=2320,_X$,_ERR$,EVS(ID$+".tag$"),_X_OLD$,_EOM$

The tag value sent into my call routine is from the grid control (e.g. GRID_1.TAG$) and not the 'CellTag$ property of the cell I am validating.  A similar thing occurs in the format routine.  Am I missing something or am I using this improperly?

I thought about using the grid row and column values to read the 'CellTag$ property, but I am trying to use a generic validator and formatter. It wouldn't necessarily know the grid's ctl value.

Nomads / Grid cell validation logic and CellTag
September 30, 2019, 12:45:12 PM
I am using PxPlus 2019. I have a Nomads panel containing a grid with cell generic validation and formatting logic defined in Nomads (such as a date validate/format).  My desire is to use the CellTag value to make logic decisions inside the validation and formatting logic. However, Nomads appears to always send the tag field from the grid control and not that of the individual cell that fired the validation/format event. I don't want to use the grid tag, because not all cells contain the same CellTag data.

Is there something I can do to cause Nomads to send the cell tag and not the grid tag? If not, is there another way to pass extra cell related data to the validate/format grid cell logic at runtime?

Best Regards,