PxPlus User Forum

Twitter Twitter Twitter

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.

Messages - Mike King

Pages: [1] 2 3 ... 62
Programming / Re: Monitor in Portrait Mode can't Maximize
« on: November 23, 2023, 10:47:18 PM »
There is a limit as to the number of lines high a window can occupy.  These limits changed in PxPlus 2021.  What version are you running?

Programming / Re: DEF OBJECT WORD
« on: November 07, 2023, 08:48:22 AM »
Version 9 is over ten years old and not supported.  Add to that DDE itself is not technology that Microsoft promotes anymore.

We would suggest you upgrade to a more recent/supported release.  This would allow you to use our interfaces to both Word and Excel.

Programming / Re: More Advanced Search Tool Than Integrated Toolkit
« on: November 06, 2023, 09:10:57 PM »
You probably should review Regular Expressions ..

Basically for what you want would be


Here is a link to more details about regular expressions which are used by the MSK function:

Programming / Re: Link File vs. Prefix File
« on: August 22, 2023, 10:33:12 PM »
Prefix file is a bit less overhead, however link files are often easier to manage and allow you to use the PREFIX directive to control which database you may want to access.

Programming / Re: Create an Excel file in Linux environment
« on: August 11, 2023, 08:57:50 AM »
You can find more information about using zip files with PxPlus at


Support for Zip files was added in 2014.

Programming / Re: Create an Excel file in Linux environment
« on: August 10, 2023, 04:31:39 PM »
And since PxPlus itself can read/write ZIP files all you really need to do is open the ".xlsx" file directly and treat it as a Keyed file to READ/WRITE the records directly where the keys are the embedded file pathnames.

For example:

->open (1) "test.xlsx
->print key(1)
->read record (1) r$
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/
vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/
workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl
/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override Part
Name="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styl
es.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStr
ings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/doc
Props/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml
" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>
->print key(1)
->read record (1) R$
->print r$
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schema
s.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2"
Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relat
ionship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook

Given this you should be able to parse any XLSX file and potentially create new ones.

Programming / Re: Accessing a Control on Another Dialog
« on: August 09, 2023, 09:03:36 PM »
It likely would be easier to just use Pseudo control handles.  You can use the *system object to get the handle for any control in the system and then use it anywhere to access the control. 


->button 10,@(10,10,10,10)="hello

Language / Re: 'picutre' mnemonic
« on: August 09, 2023, 04:04:17 PM »
Assuming you are running a current version of PxPlus you should simply have to enable the WindX auto-download for images and WindX will forward the image file to a temporary holding directory on the workstation.

This option is controlled by the +U system parameter.

When enabled the pathname in the PICTURE mnemonic should be the pathname to the image file on the host (server) computer and not the workstation.

For further details please see:  https://manual.pvxplus.com/page/windx/autoload.htm

Programming / Re: Data Dictionary Update *dict/dd_updt
« on: August 08, 2023, 04:20:02 PM »
There are two types of errors you could received from this utility.

  • The first would be an expected error such as a password failure, invalid table name, etc.  These will be reported in the error message which will be NULL if no error occurred, non-null indicates an error.
  • The second would be a totally unexpected error such as file corruption or IO error.  These can be caught using an ERR= option.

Checking ERR would only be appropriate if an ERR= branch was taken.

Language / Re: ** DISEGARD ** -> Mixed Case in Keys
« on: August 08, 2023, 11:38:16 AM »
As a follow up ---  When we store records on a keyed file the system builds a table of keys with pointers to the actual record.  The key table consists of the key field(s) extracted from the record data, so when you declare that a key is Uppercase (or Lowercase / Accented) the actual key value stored in the table is converted but not value in the record itself. 

This holds true for numeric fields where we extract the numeric value from the record and convert it into an internal representation such that the lowest negative numbers occur first followed by zero and then the positive numbers.

Language / Re: Error 11
« on: August 08, 2023, 10:57:45 AM »
Do you have any Unique alternate keys on the file.  If so then the write may fail with a DOM error due to the alternate key.

For example you might have a Order record with a primary key of order number, and a unique alternate of customer number and PO number.  If the customer/PO number were already on file you would get an DOM error of the write.

Thin Client/WindX / Re: Server to Windx failure
« on: July 17, 2023, 03:56:06 PM »
Okay if I follow what you are saying ...

  • Running on the Red Hat 5.7 server using ProvideX 5.14 dies when you issue the WRITE RECORD to the WindX file.
  • Running on the Centos 7 server using ProvideX 7.71 works when you issue the WRITE RECORD to the WindX file.
(You cannot be running PxPlus anywhere given the versions you are quoting)

If the above is correct the issue is likely an incompatibility between ProvideX 5.14 and whatever WindX you are using which would not be surprising given the age of ProvideX 5.14.

You might be able to use an older WindX when connecting to version 5.14 ProvideX, but frankly I would suggest you upgrade the systems to software made at least within the past decade. 

Version 5.14 came out in 2004 and 7.71 in 2008.  Neither of these were ever designed to run on Centos 7 (circa 2014) or Windows 10 (circa 2015) so problems are to be expected.

Thin Client/WindX / Re: Windx on a MAC
« on: July 14, 2023, 10:16:52 AM »
Assuming its an Intel Mac they should be able to run under Parallels (which I do) or possibly install Wine and run it there.

If the application is all GUI and developed using Nomads it may be possible to run it under iNomads however there are some limitations such as no local drive access and local code execution that are not available while running in a browser.

Now depending on the application and the portions they want to run you may find you can implement the required functionality using Webster+.   It supports running reports, charts, and queries using existing program/query definitions.  Also the file maintenance generator can generate screens for the Web both maintenance screens and queries.

Nomads / Re: Checking if 'Fired Off From' Nomads
« on: July 14, 2023, 10:12:49 AM »

You likely could use TCB( 8 ) to see if there is anything on the GOSUB stack since if the routine is PERFORMED then the GOSUB stack will be empty.

Code: [Select]
0010 GOSUB test
0020 PERFORM PGN+";test"
0030 GOSUB test2
0040 END
0050 !
0060 test2:
0070 PERFORM PGN+";test"
0090 test:
0100 PRINT "TCB ( 8 )=",TCB(8)

TCB ( 8 )= 20
TCB ( 8 )= 0
TCB ( 8 )= 0

Web Services / Re: Google Maps
« on: July 14, 2023, 09:39:58 AM »
Here's another option:

(Replace spaces with + as per standard URL encoding)

Returns JSON

Pages: [1] 2 3 ... 62