Recent posts

#81
Programming / Need help regarding cenPOS int...
Last post by cwellis67 - June 12, 2024, 01:39:37 PM
Hello all,
I am in the midst of replacing the old shell.explorer2 use of the Internet Explorer component while interfacing with CenPOS credit card processing. Has anyone else successfully done an integration with PxPlus and CenPOS (without using shell.explorer2)? If so, can you explain what you used? Was it a combination of using the newer *browser and *plus/web/request, or JavaScript, or a combination of both... or none of the above? Also at issue is creating a fix for prior versions of PxPlus before the *browser component was used.

Thanks,
Chris
#82
Nomads / Re: Sort On Header Click / Row...
Last post by Jeffrey Ferreira - June 07, 2024, 02:34:25 PM
I will give that a try Jane. Thank you.
#83
Nomads / Re: Sort On Header Click / Row...
Last post by Jane Raymond - June 07, 2024, 02:30:57 PM
Got it.
Take your querylist definition and change the Filter. Remove the Prefix settings and instead create a Test in the Selection Logic, something like:


Test:
YOURVAR$="" OR POS(UCS(YOURVAR$)=UCS(REC(_MWR_IOL$)))>0


This test will print the entire list if YOURVAR is blank, and if it's not it will look for the value in the data for the row which is found in REC(_MWR_IOL$).


REC(_MWR_IOL$) is somewhat esoteric, but looks like a value that would be useful for tests like this, so I'll create a new query variable containing its value for the next release.
#84
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.

jeff
#85
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.
#86
Nomads / Sort On Header Click / Row Hei...
Last post by Jeffrey Ferreira - June 06, 2024, 07:44:00 PM
Hello,

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

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

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€
#88
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.
Thanks
#89
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 https://www.cisa.gov/known-exploited-vulnerabilities-catalog 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: https://cef-builds.spotifycdn.com/index.html
#90
Language / Re: Easiest way to create an X...
Last post by Mike King - June 03, 2024, 09:50:57 AM
Mike

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.