PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home â†’ WINDEV 2024 â†’ WX 23
WX 23
Started by Fabrice Harari, Oct., 09 2017 3:29 PM - 20 replies
Posted on October, 09 2017 - 3:29 PM
Hi Everybody,

the FRENCH brochure for WX23 is out, and as I know lots of you are anxious to know, I'm going to give some basic information on the points I find interesting (so it's MY take only)... If you want a full translate, google translate is your friend.

- The WXLadies are still here, no improvement.

- WD, WB, WM: Layout field: It's a container field where fields are automatically positioned when you make one of them invisible by code, or when one of them become bigger.

- WD: Image editor: What you had to do by code (and there was an example) to let your user modify images is now available as a field.

- WD: PDF viewer: What you had to do by code (and there was an example) to display a pdf is now available as a field.

- WD: Spreadsheet field is improved

- WD: Word processing field 'comes of age' (and I'm quoting them here).

- WD: Table in Table (dig in the data to see linked records) for table linked to a file. Also, option to automatically refresh the table when file is modified. Of course, all that could be done by code before.

- WD: Several improvements in planning, calendar, graphs,

- WD,WM: Planes can be named, so no more need of using constants to do that

- WD, WM: you can see all planes at once

- WD,WB,WM: when opening an example, a copy is made and you DON'T work on the original anymore.

- WD,WB,WM: The image editor gets multiple improvements, and in particular can now generate multi-DPI images for mobile.

- Analysis: mark field as "zombies", ie they shouldn't be used in the code anymore (and the editor will tell you).

- Code editor: for those of you who like to type SQL core directly in the editor, it is now colored syntaxically, with automatic completion and syntax error detection/coloration

- Functions accepting time/duration as parameter now accept a unit (5s, 10 min...) on top of their 500 hundreths of seconds or equivalent

- numbers can be types with spaces/underscore as thousands/separators in the editor

- Procedures can be declared as Zombies too (so a warning is generated if used)

- All elements of a class can be declared a zombie too.

- YOU CAN NOW IMPORT CLASSES or COLLECTIONS of PROCEDURES from a TEXT FILE: CODE GENERATOR, ANYBODY?

- editor automatic completion improved: offers functions by theme, offers YOUR procedures,

- Search window can now be used on the side of the screen/vertically (where we have lots of room)

- HFSQL : a file can now be declared as non modifiable: you can only ADD in it. That will help a lot for audit/IRS/Tax controls. A new function allows to verify that it was not modified manually/outside your program.

- HFSQL server now support kerberos for user authentification

- WD, WM: Multi line text field can now increase in size based on content. Same thing for html fields and edit fields

- WD: Silent install (no UI) is now possible

- WM: New HTML fields: its possible to call wlanguage from it (open a window by example), to call JS code from the wlanguage/windev mobile window, can change size based on content, and there are new wlanguage code areas for it: end of loading, click on link.

- WM: loopers can use a different internal window for each line. Height of line can adapt to content,

- WM: Native fields container allows to integrate fields coming from external modules (SDKs)

- WM: multiple layouts management improvements

- WM: New BEACONs support/functions

- WM: Simulator now displays the virtual keyboard to help configure UI.

- WM: new functions for memory compress/uncompress, screen capture, battery level, waiting window, function to get information on the hardware (maker and model),

- WM: Background processing by simply specifying a delay.

- WM/iOS: apple watch 3 support, oAuth, proxy,

- WM/ANDROID: CODE OBFUSCATION has arrived!!!!!!!!

- WM: Scroll automatic of window for keyboard avoidance

- WM/Android: numeric and int on 1 and 2 now available (also JAVA and Mac, as all that is in Java)

- WM/Android: fingerprint reader management

- WM/Android: Samsung DEX supported

- WM/UWP: multiple new functions

- WB: new photo gallery field (you had to use a looper before for that)

- WB/Responsive: table control now changes when too big.

- WB: Multiple little fields improvements

- WB: Improvement on variables management: now a server variable CAN be modified on browser side and value sent back to server

- WB: single page application is easier with new previous/next processes

- WB/Responsive: the use of the LAYOUT new fields increases what we can do.

- WB: we can finally say what style and hieght to use by default for all fields.


And that's it for me... I don't care for the other ones :-)

Best regards
Posted on October, 09 2017 - 8:54 PM
Thanks Fabrice that is a lot.

Dennis W
Posted on October, 10 2017 - 8:23 AM
Thanks a lot for doing this job, Fabrice!
Posted on October, 11 2017 - 3:46 PM
importing third party libraries seems tto be upgraded as well!!

For me that is very importand,


regards

Means we can use almoast anything !!
Posted on October, 12 2017 - 12:38 AM
Thanks so much, Fabrice!!
Posted on October, 13 2017 - 3:03 AM
Was there anything on Reports & Queries?
Posted on October, 16 2017 - 3:55 PM
Hi Mike,

not that I can remember...

Best regards
Posted on October, 21 2017 - 8:17 PM
Hi Fabrice

Thanks for that.

But still no support for a spreadsheet or grid control for WB? Tables and Loopers do not cut it.

Cheers
André
Posted on October, 22 2017 - 1:46 PM
Hi André

I do not know what your specific need is, and tables and looper DO cut it for me, so I'm not sure what to tell you.
I did not see anything of the very VAGUE description you are giving in the list, no

Best regards
Posted on October, 22 2017 - 3:12 PM
Hi Fabrice

Have you manage to do all of the following with either/or the table or looper control in WB:

1. Declare "columns" dynamically based on variables.

2. Lock columns so that they are read only and are skipped when the user navigates with up, down, left and right arrow keys.

3. Have full control of code within events when the user enters data into a "cell" - needed for data integrity checks.

4. Declare the top row to be a heading row and is therefore not editable and not part of the actual grid.

Lots more but that is the minimum requirement. Tables come close to it and you can edit individual cells but you cannot navigate between rows. You are stuck in the row that you are editing. If you have a way of navigating between rows while editing in a WB table I would be very interested in how this is done. You can of course navigate between columns and rows in a looper but you cannot define headers. If they are outside of the looper they will never line up as you scroll through the looper.

I am all ears if you have a solution to this dilemma. It is the single requirement that we have not been able to successfully achieve with WB. That is why I mentioned a spread sheet control for WB - this sort of navigation would be native to the control. If I can skin the cat any other way I am all ears - all I need is a grid that the user can navigate through and I can freeze and skip columns and rows and there is a heading that stays with the column - as in the case of a spreadsheet. The looper control comes pretty close but the lack of a header for each column sort of messes it up as a solution. I do have some ideas as to how I can turn a looper into a sort of spread sheet control but it is going to require lots of work. It will be much easier if Montpelier ships with WB spreadsheet control.

Hope that makes sense.

Cheers
André
Posted on October, 22 2017 - 4:29 PM
We actually do it using an external grid (Farpoint Spread), controlled by a WD class.
It does all you say, can manage combobox dropdown list depending row by row and cell by cell, provide a clear always visible filter row whose type depends on the type of values of the column, accept formula columns and so on.
Is a full excel controlled by the WD class.

We asked Jerome Aerts during a meeting about improving the Spreadsheet in order to have a WD control doing the stuff but the answer was the same of Fabrice. Maybe only few developers really need this functions.
Posted on October, 22 2017 - 5:16 PM
Hi Stefano

>>We actually do it using an external grid (Farpoint Spread), controlled by a WD class.

We use Farpoint Spread with Win32 and have done so for many years - maybe ten years now.

I am specifically referring to WB, not WD. Do you use the GrapeCity stuff with WB? if so I would really like to talk to you.

Cheers
André
Posted on October, 22 2017 - 5:23 PM
Nope. Only WD. Never used WB until now.
Only WD for desktop and WD mobile for industrial scanners.

I hate Web App, I prefer desktop app getting data through web service instead. Too much limitations in web interfaces for my customers now. Maybe in future with using the One Page For All feature by latest WB.
We are developing on Android just now but it's early to judge the WM platform on mobile apps now.
Posted on October, 22 2017 - 6:12 PM
Hi Stefano

I am yet to meet a seasoned software developer who does not hate web apps. So you are in good company I guess. The web browser is a joke of gigantic proportions. It will go down as one of the great wonders of the world that it ever got any traction. But it did on account of simple spatial econometrics - access from anywhere without having to install anything on the client machine. But the limitations are obvious to all. It is as best a very poor cousin to windows desktop and mobile apps. Browsers can best be described as out of control 100kg gorillas.

Sadly we need to use Web Apps in some situations so we have to find a solution for this.

We produce desktop, browser based and native mobile apps.

Thanks for your input - much appreciated.

Cheers
André
Posted on October, 22 2017 - 7:18 PM
HI,

Maybe some of these: https://jspreadsheets.com/

Could be used in WebDev via the Web Component ?

Have a nice day
Danny
Posted on October, 22 2017 - 9:11 PM
Hi
one way of doing that, and it's not the only one:
- use regular edit fields aligned in lines and columns (as many as you need). Either pre-defined and made visible or not, and with controlclone
- keep the real content of the 'grid' in an array, a query, or anything else
- manage the stuff by code

Once you have written the procedures or class to manage that correctly, re-use and abuse of it

Best regards
Posted on October, 22 2017 - 10:18 PM
Hi Danny

Thanks for that link. I will look at those.

Cheers
André
Posted on October, 22 2017 - 10:21 PM
Hi Fabrice

Thanks for that - not sure what you mean by aligned in lines and columns though. The problem is that the width of the columns will change depending on the width of the header - unless I can make the headers display text vertically instead of horizontally. Have not tried that yet.

Cheers
André
Posted on October, 23 2017 - 3:37 PM
Hi André

that's the beauty of coding the control yourself, you can make it behave any way you want.
In that case, if you want to change the width of a column, you just loop on them and change ..width and ..X of the following ones... it's just a loop...

Code Once, Use Many. :-)

Best regards
Posted on October, 23 2017 - 4:54 PM
Hi ,

With webdev and loopers all but the arrow stuff can be achiefed.

Real short comming is still not being able to use arrouws to select a table row. In all kind of java controls like vadin this is just standard behaviour!!
Same suppose is the use of "Splitters" . Simple to create with javascript but not with webdev.

As I mentioned earlier the support for third party frameworks ( availeble from version 22)
This changes everything . !!

It is more work . You will have to develop in a N-tier manner. But this is still way more easier then other technologies. Use webdev for server stuff and the external framework as front office.
You can use the control from syncfusion for free if your turnover is under a million.

PS
You coulduse angular 4 for front as well. I have taken a look at that and it is not that difficult. And gives you all the flexibility you could ever want. ( uses typescript , a structured way of javascript )
Posted on October, 23 2017 - 6:03 PM
Hi Fabrice

I do not want to reinvent the wheel if I can help it. There is no point.

Cheers
André