Recent posts

Nomads / Re: Sort On Header Click / Row...
Last post by Jeffrey Ferreira - June 07, 2024, 11:02:57 AM
Hi Jane,

So the problem that usually brings about these queries is the Customer, Vendor Name would be something like this:
Mast Road and Grain
and they want to search for Grain

This is my conundrum. The pxplus standard queries work fine when using the keys and typing in first few letters of key.

this is more like a key word search thru the entire row of data.

maybe there is no solution for this - i have coded around it before by checking to see if they clicked on Row -1 and executing Sort Logic myself but i was trying to avoid.

Nomads / Re: Sort On Header Click / Row...
Last post by Jane Raymond - June 07, 2024, 10:53:33 AM
If you just want to display the records whose keys start with the value of the multiline, I have an alternate way to do this that doesn't require any coding. It involves using the smart control feature.

  • First, create a querylist with the fields you want in the report view or grid control you want to load. Add a filter where you add a Prefix based on your key (Primary Key or 'Sort By' Key), where the Prefix is an Expression that is the name of the multiline that has the value to be matched. (Side note - due to my key def I had to UCS() this value for it to work.)
  • Second, make your control 'Smart'. In the Attributes properties, click the Smart Load button, check Use Smart Load Logic and select the querylist you just created as the Panel. Under Trigger Variables and Controls, add the multiline control to Selected Triggers. Click OK and you're done.
  • Disable your current program logic on the multiline that hides your rows, as this will not be needed.
  • Test the panel. When you enter a value in your multiline, the list should reload with just the records that match and the columns will be sortable.
Nomads / Sort On Header Click / Row Hei...
Last post by Jeffrey Ferreira - June 06, 2024, 07:44:00 PM

I sometimes make custom queries where as the user types into a multi-line I hide rows via the RowHeight property to zero for those rows that don't meet search criteria. Customers seem to really like it, the only problem is when they ask me to enable 'SortOnHdrClick.

If i filter rows via the row height then if they click a column it just messes it up.
is there a way i can do both / hide rows and still have sort on header click enabled

Language / Re: Easiest way to create an X...
Last post by Stéphane Devouard - June 04, 2024, 04:44:40 AM

Working daily at my job with *obj/xml to handle interfaces with an e-Commerce app API, I haven't been confronted with any memory issue in the last 2 years

*obj/xml represents an XML node, so internally, every single node or subnode of your XML document is an *obj/xml instance
IIRC the powerpoints from 20+ years ago, in PVX OOP, all instances of the same class share the logic (the methods are loaded in memory only once), only the instance data (properties) is distinct.
The actual XML string is created only when you use the 'get_xml$() method

In any case, Mike's logic is the best way to go if you're worried about memory usage

My 0.02€
Language / Re: Easiest way to create an X...
Last post by Mike Hatfield - June 03, 2024, 05:20:41 PM
Hi Mike,

I will try this irrespective of whether the object can handle the whole xml.
Language / Re: PxPlus *browser patch leve...
Last post by Devon Austen - June 03, 2024, 05:11:16 PM
Hi Mike,

We update the version of embedded Chromium we use with the major version releases each year. For PxPlus 2024 this updated embedded chromium to 123.0.12.

Unfortunately these exploits are not that unusual. Chrome regularly has exploits found and reported in a similar way that the US government mandates an update for. Going through this list you can see that along with the 4 in May, there was 1 in February, 2 in January, 1 in November, 1 in October, 1 in September, etc etc.

Not all of these exploits may affect the embedded version of Chromium. Also how the embedded version is used may mean it is not as much of a risk since it is generally loading known websites or local HTML files.

With the patch level in PxPlus 2024 all exploits are fixed except for the ones reported in May.

We will continue to update with every release to cover all the exploits throughout the year. We look to find a balance between staying current with annual updates but not updating too frequently.

If these exploits are of a particular concern it should be possible to download the latest embedded chromium DLLs and copy over the DLLs included in the release but you would have to do testing as this was not tested.

Pick the standard distribution download for your version of PxPlus 32-bit or 64-bit:
Language / Re: Easiest way to create an X...
Last post by Mike King - June 03, 2024, 09:50:57 AM

While it is true that the XML object maintains the full XML in memory, you would need a very large XML for it not to be supported especially when using a 64 bit version of PxPlus.

That being said if what you are creating is a XML file with multiple sub-entries such as an XML with all invoices and details you can likely generate this yourself creating a wrapper manually and using the XML object for the sub-ordinate entires:

For example:

   PRINT (xmlfile) "<invoices>"
   oXML=new("*obj/xml" for program)
   SELECT * from "invfile"
   oXml'Set_xml("") ! Clear any prior values
  ... create the XML for the invoice
   PRINT (xmlfile) oXml'get_xml$()
   NEXT Record
   PRINT (xmlfile) "</invoices>"

This will allow you to create any size XML.
Language / PxPlus *browser patch level
Last post by Mike King - June 03, 2024, 08:04:53 AM
There is a significant alert for chrome and all chromium based browsers that has been reported with many companies requiring their users to update or delete Chrome immediately.

Can you advise if these corrections are included in the current *browser and if there will be a fix for prior versions of PxPlus.

For details on this issue see
Language / Re: Easiest way to create an X...
Last post by Mike Hatfield - June 02, 2024, 05:19:41 PM
Hi jane

I tried it, works well however I need to create XML for a specific EDI enabled provider.
They require the name tags on each element within the node.

I used the *obj/xml to create xml with specific name tags.
This works well for small XML string creation however I suspect the XML string it will create for my purpose will be too large for a call to handle.
What is the best way to create a large XML string?
It would be great if the obj/xml had a write to file option.
Language / Re: Easiest way to create an X...
Last post by Jane Raymond - May 31, 2024, 01:30:27 PM
Yes, there is way to do this if you're using PxPlus 2024, released last week.

Create a query to define the file(s) and fields. Then you can use the query definition in conjunction with the new *tools/qryexport utility to generate a Microsoft XML file that can be used to populate a spreadsheet. (It can also generate comma-separated (.csv), tab-delimited (.txt) and symbolic link (.slk) files.

Call "*tools/qryexport",queryName$,queryLib$,exportfile$[,queryopts$,show_flg$]

Here's more info on all the options: