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.
106
Programming / Re: Object Oriented Question
« on: June 24, 2019, 02:53:05 AM »
Jeffrey
If you're using Nomads for your GUI development, about using the concurrent panels feature ?
Check out this section of the PxPlus Doc : https://manual.pvxplus.com/PXPLUS/NOMADS%20Graphical%20Application/Program%20Interaction/Concurrent%20Panels/Overview.htm
Hope this helps
If you're using Nomads for your GUI development, about using the concurrent panels feature ?
Check out this section of the PxPlus Doc : https://manual.pvxplus.com/PXPLUS/NOMADS%20Graphical%20Application/Program%20Interaction/Concurrent%20Panels/Overview.htm
Hope this helps
107
Hello
It looks like the libmysql.dll that comes with the latest MySQL 8.0.xx version is 64-bits only and does not work with PxPlus 2019.
I kept on getting an "Unable to load libmySQL.dll" message when trying to open a [mysql] channel
It finally worked when I grabbed a 5.7.25-win32.zip from mysql website, extracted the .dll from and overwrote the 64-bits one I had put in the pxplus folder.
Is it the way this is supposed to work ?
Any plan to update PxPlus to be compatible with the latest MySQL version ?
Thanks
It looks like the libmysql.dll that comes with the latest MySQL 8.0.xx version is 64-bits only and does not work with PxPlus 2019.
I kept on getting an "Unable to load libmySQL.dll" message when trying to open a [mysql] channel
It finally worked when I grabbed a 5.7.25-win32.zip from mysql website, extracted the .dll from and overwrote the 64-bits one I had put in the pxplus folder.
Is it the way this is supposed to work ?
Any plan to update PxPlus to be compatible with the latest MySQL version ?
Thanks
108
Nomads / Re: using code snippets for standard control definitions
« on: April 03, 2019, 12:14:53 PM »
Just looked at Visual Studio Code
The syntax for the placeholders replacement when inserting the snippet is the same
Nice one, Thomas. Thx again.
The syntax for the placeholders replacement when inserting the snippet is the same
Nice one, Thomas. Thx again.
109
Nomads / Re: using code snippets for standard control definitions
« on: April 03, 2019, 11:26:58 AM »
Thanks Thomas !
110
Off Topic / Re: pvxplus educational material for beginner
« on: April 03, 2019, 09:27:44 AM »
Hi Thomas
Interesting, but not sure which "editor" you're talking about. Are you suggesting using VS code snippets for Nomads controls ?
I've tried the "Text Macro Library" feature in IT with your procedure, but that does not fly at all
Could you elaborate a bit, please ? (maybe open another thread since we are flooding Sonia's original post)
TIA
Interesting, but not sure which "editor" you're talking about. Are you suggesting using VS code snippets for Nomads controls ?
I've tried the "Text Macro Library" feature in IT with your procedure, but that does not fly at all
Could you elaborate a bit, please ? (maybe open another thread since we are flooding Sonia's original post)
TIA
111
Off Topic / Re: pvxplus educational material for beginner
« on: April 03, 2019, 02:52:17 AM »
Peter
After a few years I started using labels similar to what Visual Studio generates for event handlers so that PVX newbies coming from more mainstream languages would be less lost
;<PanelName>_Loading for PRE_DISPLAY
;<PanelName>_Shown for POST_DISPLAY
;<PanelName>_Closing for ON_EXIT
I also started appending control types suffix instead of prepending them (Close_BT instead of BT_Close) for the same reason
Having some place in Nomads global settings to define those coding standards would be a nice addition, BTW.
I was usually hiding the grid while formatting and loading it, then showing it again when done.
You should also check out the '-U' and '+U' mnemonics although I don't remember if they have any effect with the grid refresh
After a few years I started using labels similar to what Visual Studio generates for event handlers so that PVX newbies coming from more mainstream languages would be less lost
;<PanelName>_Loading for PRE_DISPLAY
;<PanelName>_Shown for POST_DISPLAY
;<PanelName>_Closing for ON_EXIT
I also started appending control types suffix instead of prepending them (Close_BT instead of BT_Close) for the same reason
Having some place in Nomads global settings to define those coding standards would be a nice addition, BTW.
I was usually hiding the grid while formatting and loading it, then showing it again when done.
You should also check out the '-U' and '+U' mnemonics although I don't remember if they have any effect with the grid refresh
112
Web Services / Re: Custom content for http error responses
« on: March 11, 2019, 05:59:06 AM »
Sorry, I was thinking about %EXIT_TEXT$ but forgot the leading % when posting my response
Well, I guess you're using the Web Services stuff embedded within the newer versions of PxPlus
So far, any and all web services I have written in ProvideX were using V10 or prior versions, so were just CGI programs launched from Apache/IIS which were parsing incoming XML data and writing back XML responses to %PRINT_FN with the appropriate %CONTENT_TYPE$ and %EXIT_CODE set, and no pre-defined HTML was getting in the way if I happened to return anything else than an HTTP 200/201
So either you need to do the same, or I guess the Web Services maintenance interface needs some improvement on the PxPlus side with settings to either prevent it to spit out its predefined HTML pages in case of an HTTP 4xx ou 5xx status, or hooks to define special responses for special HTTP statuses
Well, I guess you're using the Web Services stuff embedded within the newer versions of PxPlus
So far, any and all web services I have written in ProvideX were using V10 or prior versions, so were just CGI programs launched from Apache/IIS which were parsing incoming XML data and writing back XML responses to %PRINT_FN with the appropriate %CONTENT_TYPE$ and %EXIT_CODE set, and no pre-defined HTML was getting in the way if I happened to return anything else than an HTTP 200/201
So either you need to do the same, or I guess the Web Services maintenance interface needs some improvement on the PxPlus side with settings to either prevent it to spit out its predefined HTML pages in case of an HTTP 4xx ou 5xx status, or hooks to define special responses for special HTTP statuses
113
Web Services / Re: Custom content for http error responses
« on: March 09, 2019, 11:05:43 PM »
Jeff
How about setting CONTENT_TYPE$ to application/json and
either EXIT_TEXT$ to your JSON error message
or write your JSON data to %print_fn ?
How about setting CONTENT_TYPE$ to application/json and
either EXIT_TEXT$ to your JSON error message
or write your JSON data to %print_fn ?
114
Programming / Re: Recognizing Windows Shutdown/Logoff...
« on: February 13, 2019, 09:07:00 AM »
David,
If you look at the *plus/winutl/service program which is the PxPlus INITTAB emulator for Windows, once it has launched the configured programs and while it is monitoring them, it also uses the following code to scan the input queue, and should it receive a CTL 4 or -1999, it breaks from its pooling loop, stops the launched processes and dies :
I would think that Windows sends the same type of message when shutting down or closing a user session than when stopping a service. But I may be wrong
If you look at the *plus/winutl/service program which is the PxPlus INITTAB emulator for Windows, once it has launched the configured programs and while it is monitoring them, it also uses the following code to scan the input queue, and should it receive a CTL 4 or -1999, it breaks from its pooling loop, stops the launched processes and dies :
Code: [Select]
0113 IF UNIX THEN WAIT 5 ELSE OBTAIN (0,TIM=5,ERR=*NEXT)'BI',*,'EI'; IF CTL=4 O
0113:R CTL=-1999 THEN LET L$="Close CTL ("+STR(CTL)+") received"; GOSUB LOG_EVE
0113:NT; BREAK
I would think that Windows sends the same type of message when shutting down or closing a user session than when stopping a service. But I may be wrong
115
Programming / Re: Will PxPlus interface with Office 365 on the cloud
« on: February 13, 2019, 08:53:41 AM »
Dave
An Office 365 subscription allows you to get an always up-to-date version of MS Office (currently Office 2016) and to connect the Office apps to your outlook.com email address thus allowing you to easily save documents to the cloud via OneDrive. You still get a local copy of the Office apps on your local computer and you are still able to connect to it using the DEF OBJECT WordObj,"Word.Application".
If your users are using the on-line version of the Office apps through their browser (the equivalent of the Google Docs apps) then you won't be able to interface them like the local copies. Not sure Microsoft publishes an API that would allow you to send HTTP requests and create cloud docs in the user's One Drive account. This used to be possible with Google Docs, though...
Hope this helps,
An Office 365 subscription allows you to get an always up-to-date version of MS Office (currently Office 2016) and to connect the Office apps to your outlook.com email address thus allowing you to easily save documents to the cloud via OneDrive. You still get a local copy of the Office apps on your local computer and you are still able to connect to it using the DEF OBJECT WordObj,"Word.Application".
If your users are using the on-line version of the Office apps through their browser (the equivalent of the Google Docs apps) then you won't be able to interface them like the local copies. Not sure Microsoft publishes an API that would allow you to send HTTP requests and create cloud docs in the user's One Drive account. This used to be possible with Google Docs, though...
Hope this helps,
116
Programming / Re: Recognizing Windows Shutdown/Logoff...
« on: February 11, 2019, 10:26:31 AM »
David
When Windows shuts down or a session logs off, it sends a message to the main window of all running processes to ask them to close.
I think this is interpreted by PxPlus as a CTL = -1999 which is mapped to CTL=4 (see the *dev/windows driver)
So if your programs are written in such a way that they are regularly checking the input queue or are idle waiting for a CTL event (which would be the case most of the time with Nomads or iNomads based apps) and if they are processing either of those CTL values as if an end-user had closed your app, then you should be OK.
Hope this helps
When Windows shuts down or a session logs off, it sends a message to the main window of all running processes to ask them to close.
I think this is interpreted by PxPlus as a CTL = -1999 which is mapped to CTL=4 (see the *dev/windows driver)
So if your programs are written in such a way that they are regularly checking the input queue or are idle waiting for a CTL event (which would be the case most of the time with Nomads or iNomads based apps) and if they are processing either of those CTL values as if an end-user had closed your app, then you should be OK.
Hope this helps
117
Programming / Re: .NET
« on: February 11, 2019, 03:30:27 AM »
Sam
Microsoft .Net has been around for a long time now. When you code .Net apps, you can use any language you want -- C/C++, VB.Net, C#. C#, some hybrid of C and Java (development codename COOL for C Object Oriented Language), would be your language of choice. What you write is translated into IL (Intermediate Language) by the CLR (Common Language Runtime, a kind of virtual machine), and then compiled in machine code for the target OS version the first time you run it on the target machine, by the JIT (Just-In-Time) compiler. As you may have already thought, this shares a lot of ressemblance with Java -- that's for a reason, Microsoft borrowed a lots of things from Java when designing .Net and C#. Also, IL is a byte-code, so that should ring a bell as well : that looks a lot like tokenized programs run by an interpreter that is specific to the target platform : Write Once, Run Everywhere
Almost 30 years ago when I learned UNIX, I was told this motto : everything is a file. .Net's motto, like most modern-days language, is : everything is a class. When you create a .Net console program, you create a class that will run from the console. When you create a WinForms app (the grey windows running on the desktop), you create a class that will derive from the standard .Net Windows Form class. Same thing for ASP.Net and MVC.Net when creating web apps.
PxPlus knows how to interface with ActiveX/OLE/COM classes, which are classes/objects built using pre-.Net compiled languages (generally C/C++, sometimes VB6, Delphi or whatever).
By default, when you create a .Net class, it is not visible by the outside world (your ProvideX code) through the COM interface. You must "decorate" your class with special clauses so that it is made COM-visible at compilation time and thus a COM-enabled environment like PxPlus can access it, instantiate an object and use its properties, methods and events.
I would say that "Direct .Net support" probably means that you can access a .Net class without it being COM-enabled. That would be great because you could not only use utility .Net classes made by third-party vendors (for exemple, the Crystal Reports interface) but also the FCL (Framework Classes Library) which is a bunch of classes written by Microsoft for all kind of purpose.
I'll let the PxPlus folks answer about their plans with .Net direct support
Microsoft .Net has been around for a long time now. When you code .Net apps, you can use any language you want -- C/C++, VB.Net, C#. C#, some hybrid of C and Java (development codename COOL for C Object Oriented Language), would be your language of choice. What you write is translated into IL (Intermediate Language) by the CLR (Common Language Runtime, a kind of virtual machine), and then compiled in machine code for the target OS version the first time you run it on the target machine, by the JIT (Just-In-Time) compiler. As you may have already thought, this shares a lot of ressemblance with Java -- that's for a reason, Microsoft borrowed a lots of things from Java when designing .Net and C#. Also, IL is a byte-code, so that should ring a bell as well : that looks a lot like tokenized programs run by an interpreter that is specific to the target platform : Write Once, Run Everywhere
Almost 30 years ago when I learned UNIX, I was told this motto : everything is a file. .Net's motto, like most modern-days language, is : everything is a class. When you create a .Net console program, you create a class that will run from the console. When you create a WinForms app (the grey windows running on the desktop), you create a class that will derive from the standard .Net Windows Form class. Same thing for ASP.Net and MVC.Net when creating web apps.
PxPlus knows how to interface with ActiveX/OLE/COM classes, which are classes/objects built using pre-.Net compiled languages (generally C/C++, sometimes VB6, Delphi or whatever).
By default, when you create a .Net class, it is not visible by the outside world (your ProvideX code) through the COM interface. You must "decorate" your class with special clauses so that it is made COM-visible at compilation time and thus a COM-enabled environment like PxPlus can access it, instantiate an object and use its properties, methods and events.
I would say that "Direct .Net support" probably means that you can access a .Net class without it being COM-enabled. That would be great because you could not only use utility .Net classes made by third-party vendors (for exemple, the Crystal Reports interface) but also the FCL (Framework Classes Library) which is a bunch of classes written by Microsoft for all kind of purpose.
I'll let the PxPlus folks answer about their plans with .Net direct support
118
Off Topic / Seasoned ProvideX developer seeking remote position
« on: January 09, 2019, 03:43:07 AM »
Hi all
I have been recently let go by Explorer Software Inc. for whom I have been working for over 10 years remotely from my home office near Paris, France.
I have been programming in ProvideX for Windows since 1998 after 10 years with TBred on SCO and AIX
I was instrumental in migrating my first employer's apps from CHUI to GUI, then migrating Explorer's WindX-only based ERP to the web using iNomads
I also know some C# and VB.Net and I am currently self-learning PHP, Javascript and Python
You can read more about me and my work with ProvideX and PxPlus on my personal resume website (see my e-signature)
I am looking for a remote, full-time position. If you know of anything or are interested, please contact me here, or on my personal email, the contact form on my web resume or my LinkedIn account
TIA
I have been recently let go by Explorer Software Inc. for whom I have been working for over 10 years remotely from my home office near Paris, France.
I have been programming in ProvideX for Windows since 1998 after 10 years with TBred on SCO and AIX
I was instrumental in migrating my first employer's apps from CHUI to GUI, then migrating Explorer's WindX-only based ERP to the web using iNomads
I also know some C# and VB.Net and I am currently self-learning PHP, Javascript and Python
You can read more about me and my work with ProvideX and PxPlus on my personal resume website (see my e-signature)
I am looking for a remote, full-time position. If you know of anything or are interested, please contact me here, or on my personal email, the contact form on my web resume or my LinkedIn account
TIA
119
Off Topic / Re: Hotel Software
« on: December 11, 2018, 05:48:52 PM »
Scott
At my first employer we had an hospitality software package written in Tbred that we converted to ProvideX and PxPlus and GUI-fied. At the moment, I believe the nth-purchase of the company by a bigger fish (Infor) has been fatal to the PxPlus based package (although my old colleagues had migrated it under iNomads with an SQL backend) as it is now not sold anymore nor enhanced, and support won’t last much longer (developers are being let go one after the other).
That being said I believe there are hospitality software packages on the north-american market. Jonas Software has one if I am not mistaken. I remember also something called Five Stars Hotel Systems. There are a few others.
Hope that helps
At my first employer we had an hospitality software package written in Tbred that we converted to ProvideX and PxPlus and GUI-fied. At the moment, I believe the nth-purchase of the company by a bigger fish (Infor) has been fatal to the PxPlus based package (although my old colleagues had migrated it under iNomads with an SQL backend) as it is now not sold anymore nor enhanced, and support won’t last much longer (developers are being let go one after the other).
That being said I believe there are hospitality software packages on the north-american market. Jonas Software has one if I am not mistaken. I remember also something called Five Stars Hotel Systems. There are a few others.
Hope that helps
120
Programming / Re: Remote Process Control
« on: July 27, 2018, 04:54:36 AM »
Again, there is a page dedicated to RPC in the On-Line Documentation I pointed you to in another forum thread, reading it carefully should give you some insight...
https://manual.pvxplus.com/PXPLUS/Remote%20Process%20Capability/Introduction.htm
xxx.xxx.xxx.xxx in "xxx.xxx.xxx.xxx;80" obviously needs to be replaced by the IP address of the server where the RPC host program is running and listening
80 in "xxx.xxx.xxx.xxx;80" is the TCP/IP port on which the RPC host program on the remote server is supposed to listen -- chances are that you'll have another program with this port already in use (maybe IIS on Windows, maybe Apache on Linux), so you'll have to use another port.
To sum it up:
- First, have the *RPSRVR program running on a remote computer on your network and listening on an available IP port (e.g. 15000)
- On another server, use the PROCESS SERVER statement to establish a connection between your "Inventory" logical name and the physical IP & Port of the RPC server, as in "[tcp]192.168.1.11;15000" (again this is an example, the IP address must be the one of the computer where *RPSRVR is running)
- To call a program on the remote server, do a CALL "[rpc:Inventory]RPCTest"
Hope that helps
https://manual.pvxplus.com/PXPLUS/Remote%20Process%20Capability/Introduction.htm
xxx.xxx.xxx.xxx in "xxx.xxx.xxx.xxx;80" obviously needs to be replaced by the IP address of the server where the RPC host program is running and listening
80 in "xxx.xxx.xxx.xxx;80" is the TCP/IP port on which the RPC host program on the remote server is supposed to listen -- chances are that you'll have another program with this port already in use (maybe IIS on Windows, maybe Apache on Linux), so you'll have to use another port.
To sum it up:
- First, have the *RPSRVR program running on a remote computer on your network and listening on an available IP port (e.g. 15000)
- On another server, use the PROCESS SERVER statement to establish a connection between your "Inventory" logical name and the physical IP & Port of the RPC server, as in "[tcp]192.168.1.11;15000" (again this is an example, the IP address must be the one of the computer where *RPSRVR is running)
- To call a program on the remote server, do a CALL "[rpc:Inventory]RPCTest"
Hope that helps