pvxplus educational material for beginner

Started by Sonia Cruz, March 28, 2019, 10:37:05 AM

Previous topic - Next topic

Sonia Cruz

Good Morning,
Which pvxplus educational material in the internet (manuals with practice tasks) do you recommend first for a programmer who does not know this language?
Thank you and Regards

Peter.Higgins

Sonia,

Pxplus used to give a basic course on the base language and a course on the graphical language.
I would be happy to help if possible to work around my lack of Spanish.  It helps to know if the programmer is learning from another language, so emphasis can be put on differences, or from a fresh start. Either way, a good start will pay dividends for years as some of the most powerful features of the language are not easily spotted reading the web documentation and was not covered in basic training.   

Have a terrific day
Peter Higgins
returnSuccess Software LLC.


James Zukowski

Quote from: Peter.Higgins on March 29, 2019, 11:21:04 AM
Either way, a good start will pay dividends for years as some of the most powerful features of the language are not easily spotted reading the web documentation and was not covered in basic training.
I've been looking for some of this kind of "hidden in plain sight" stuff. Osmosis doesn't always work too efficiently.
James Zukowski
Sr. Developer - J&E

BRAND>SAFWAY
Brand Industrial Services

Peter.Higgins

James,

The list archives were full of gems and I still want to search them on occasion.
Being schooled by 6+ PVX masters as well as working with the source code of the largest resellers is also a big help. 
Anytime your employer would like you to have an advanced Architecture/Dictionary/Object/Nomads/Coding training, l will be happy to provide a outline. 

Some simpler and commonly known Nomads good practices that don't leap out the documentation:

Hard coding a control name anywhere but the first field on a panel is unnecessary. 
Use id$ so the name can be changed when refactoring the panel.

Stick Id$ in tools tips for large parameter panels.  Sucks to guess.

Pick global control and event naming schemes, the more obvious the better or even better use object nomads which helps enforce that. 
";Pre_Display"
";Post_Display"
";On_Exit"
";"+ID$    !BT_EXIT,
";Change"+ID$ ! InventoryNo$

Loading a grid or listbox by cell or row should forbidden even on the best networks unless editing a row.  Formatting row colors after bulk load is much faster.  My grids & lists rarely take more than a few seconds to load and format thousands of records.

Setting or getting multiple control properties should use one or two multiple property statements depending on method.

And if anyone knows how to turn off the grid screen update during a grid formatting, I would like to learn how.  The screen flicker has no value.

Thomas Bock

Peter,

Again it is worthwhile reading posts I'm not really interested in ;) . Though I knew id, id$ and ";POST_DISPLAY" I didn't know anything about ";"+id$. I'll forward this to our devel team ASAP :D . It will save us a lot of copy-paste-adjust-cycles.

But watch out for query program definitions. As id$ is set according to the focused control, a click on a query button will not trigger the correct program unless it is the query button for the currently focused control.

Peter.Higgins

Thanks Thomas!  That is indeed a subtle issue it is good to know about.   Now you have me wondering how nomads knows where to put query returns and why focus is not forced to the query field parent first by the event of pressing the linked query button.   

Stéphane Devouard

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
Stéphane Devouard
Portfolio | Work

Thomas Bock

QuoteHaving some place in Nomads global settings to define those coding standards would be a nice addition, BTW.
You can do that with code snippets with your editor:


  • create a properly defined control in nomads and copy it to the clipboard
  • insert that text into your editor and make changes in order to be used as a code snippet
  • use such a code snippet and copy the whole text into the clipboard
  • move to the panel and paste the control

That's a little bit long-winded, but it works and it is much faster than editing all the entrypoints one by one.

Stéphane Devouard

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
Stéphane Devouard
Portfolio | Work

Mike King

While using consistent names for code snippets helps, often a better solution is to use the object module interface built into Nomads.

For example if you associate your panel with an object, clicking a button whose name is "Exit_Button" will execute the method "Exit_Button()" in the object.  Changing a value in a input fiel called "ClientId" will invoke the method ChangeClientId(). etc..

This can make you code a lot easier and since objects can be inherited you can have common objects handle common buttons such as "Print_Button" or "Exit_Btn".

BTW: In Nomads if you define a default program the system will automatically generate consistent labels to be PERFORMed simply by pressing the "Tools" button next to the event descriptor.
Mike King
President - BBSysco Consulting
eMail: mike.king@bbsysco.com

Peter.Higgins

Thanks Stephan,
The +U and -U are very handy but do not work on the grid.  At  least not for the flashing that occurs at the 0,0 position when doing background changes to cells. 
Actually it was the first thing I tried as I use them within custom progress bars and widgets.  Focus was second.
There are times hiding a grid just doesn't look right and I am not a fan of putting a place holding graphic behind saying Loading etc.
A screen updating property for the grid would be nice to have. 

jhendrickx00

Quote from: Sonia Cruz on March 28, 2019, 10:37:05 AM
Good Morning,
Which pvxplus educational material in the internet (manuals with practice tasks) do you recommend first for a programmer who does not know this language?
Thank you and Regards

  Sonia, did you find the material for learning PxPlus? I've a bunch of written material, some labs and other stuff, some are rather old, but still useful, also have material in spanish. Let me know if still are looking for this...

  Best regards,
  Jean H//

HendersonS