Faster and safer applications thanks to version 15. New controls Static and dynamic audits Software Infrastructure Supervisor HyperFileSQL: live maintenance Install in push mode Easy creation and use of Webservices Android Web Skins Site referencing 100 New WLanguage functions 69 New Java functions 45 New PHP functions 168 New LINUX functions
F aster and safer applications thanks to version 15. Now. Version 15 is packed with new useful and cost-effective features. New controls, speed, quality and security improvements for your applications and your sites, improvement to your applications or sites operation, maintenance without user disconnection, support for the Google Android operating system, installation in Push mode, easy creation and operation of Webservices (SOA architecture), support for Windows 7... version 15 instantly improves your applications. The Web is not forgotten with referencing of each single page of your site, easy creation of graphic skins, a wizard to help you create SaaS applications, and much more. ew Features Documentation.This document is intended for readers that are already familiar with version 14 of WINDEV, WEBDEV and NWINDEV Mobile. If you are not familiar with them, do not hesitate to request these productsʼ (free) full documentation. WD : the legend indicates in which product the new feature is available These 555 new features aim at satisfying you from the first day you use version 15. Easily increase the speed, quality and security of your applications and sites: switch to version 15 today!
COMMON NEW FEATURES WINDEV, WEBDEV, WINDEV MOBILE NEW CONTROLS WINDEV, WEBDEV and WINDEV Mobile are rich with controls. The available customization of a single control would take hundreds of lines of code in other languages. Easy to use, feature-rich, shielded from changes in Windows versions, benefiting from the "7 tab" technology, WINDEV controls are, as you know, an incredible asset in all their aspects. In version 15 new types of controls are being introduced and present you with new possibilities. A static control can be added to the dial A gallery of dials is offered. The dial images are in vector format, which allows them to be resized without unwanted visual effects, regardless of the size. 001 WB Round progress bar (dial) This native control (you don't need to add any image to your project) lets you easily create eye-pleasing dials; the display is done using vectors. A large number of ready-to-use templates are available, and a large number of settings can be configured in the environment and/or by coding. shape, color, size, position and needle head image for the needle's base values, mark and sub-mark format vertical or horizontal display of values image for the frame and the background A dial may also display "LCD" type info without any needle. You can insert static controls or edit controls between the background and the needle. 3 dials in an application (tour operator) 3...See other progress bar page
A dial is defined through the 7 tabs, and some settings can be changed by programming. A large number of dials are offered and can be used freely in your applications (see also page 3). Dial definition in the 7 tabs Saves time when creating dials. 002 WB Dial examples Your UIs keep getting better. Note: the color of the icon bar is configurable in version 15. Here it is purple (!) The environment in version 15: even more user-friendly, even more efficient - Draft copy 4
003 WB Organizer control New, extremely powerful type of control, the "Organizer" control lets you display and handle organizers automatically. This new control can saves you days of development The display is done by day, week or month. The time period, the first day of the week and the number of days to display are configurable. You can also configure: the colors, fonts, frames, anchoring, tooltip text,... The configuration is done in the 7 tabs and can be modified at any time by programming (functions Organizer). A new appointment type is introduced in WLanguage. The link with the data files, other organizers or other applications is easily done through coding. Automated (optional) features are offered to the end user: move, resize, add, delete,... Complete examples are provided with WINDEV 15: management with a HyperFileSQL file, management with the Google Calendar, management with Outlook. An organizer example in "month" mode Organizer: instantly useful features Color, font, size, configurable for the organizer Customizable style View by day, week, month Several events possible at the same time Movement by scrollbar Modifiable time periods Tasks moveable by the user (with the mouse) Configurable mask (AM-PM, ) Time modifiable by the user (with the mouse) Recurring event Period selection and task entry by the user Event over several days Excerpt of the standard features offered for this new control 5
An organizer example in "day" mode Organizer "7-tab" configuration window. These settings can then be modified from your program. Displaying calendars was never this easy. Version 15: compatible with all Windows versions Don t change operating system, don t change equipment! WINDEV 15 respects your investments. All Windows versions are supported, during development and at run time: Windows NT* Windows 2000 Windows 2003 (32 bits, 64 bits) Windows XP (32 bits, 64 bits) Windows Vista (32 bits, 64 bits) Windows 2008 Windows 7 Windows CE* Windows Mobile* *: at run time - Draft copy 6
Secure and optimize deployment SOFTWARE INFRASTRUCTURE SUPERVISOR At any time, the Infrastructure Supervisor knows how to generate a summary report on the state of the computing infrastructure. From the main page (SIS is provided in the format of a Web page), you have access to all the information regarding your server and your applications (see the exhaustive list below in new feature # 012): applications founds, connected users, load,... 004 Audit of a server, a computer, an application,... The "Software Infrastructure Supervisor" (SIS) is being introduced. It favorably replaces the Topological Control Center. The Infrastructure Supervisor will soon become a tool that you won't be able to do without. Thanks to the Infrastructure Supervisor, you master all your WINDEV and WEBDEV applications once deployed. The main page of the Infrastructure Supervisor 006 Automated audit An audit can be started at any time. This status report applies to one specific resource (an application, a server, a computer, etc.) and contains 2 parts: the potential problems a summary of the resource's settings. 005 The infrastructure revealed It is then easy to analyze and resolve potential problems (before they even occur); each piece of information displayed constitutes a link to a detailed page about the issue. - Draft copy 7
007 Summary of a resource: here an application From the summary page, you can view detail pages for each piece of information, and at several levels. Here, detail of the resources used by the Email application Summary page, which provides access to several levels of detail List of physical servers used by the application. (You can notice that the application accesses some unexpected servers). The number of connections is shown graphically Clicking the server's name opens the server's detail page. All the information about this server is displayed. Which applications, which computers, which users are using it. 8
008 The magical questions... Every developer, every project manager, every IT engineer would like to get the instant and reliable answers to these questions: What applications are currently running on the server? If I stop this server, what will happen? Are some servers hosting applications whose version is outdated? What are the details of the errors that occur during applications' execution? How can I get an error dump on a live application that restarts on its own? This application uses which server(s)? This application uses which resources? This application uses which resources (component, web services, data files,...) found on which servers? Sometimes, in "real life", an application uses components that access unknown resources... The summary report of SIS offers 5 choices that immediately answer these questions (and many more). The Infrastructure Supervisor will change your life! You can stop any server without any risk for the running applications. 010 Which components are used by this application? When an application gets bigger, older or simply when you join a new team, this new feature lets you answer in one click the "which components are used?" question. A component itself can use another component, deployed on another server. You improve application security by checking the accessibility and compatibility of each component. List of components used by the Email application You know the resources used by each application. 011 This component is used by which applications? Life-changing features! Version 15 of WINDEV and WEBDEV brings operating security and serenity. 009 If this server stops, what happens? You are the author of a component? What are the client applications for each of the components you've created? When you want to make some changes, are you sure it won't impact some applications? This new feature lets you list the applications that use a component and therefore prevent exception effects when making changes. This new feature also helps prevent the desintallation of components that were thought to be unused! When clicking the "Applications affected by this server stoppage" link the following window comes up: you know what will happen if you stop this server! List of applications using the CompoTracking component See also new feature #10, which allows you to test the accessibility of components. If you want to make changes to a component, you instantly know which applications are impacted. List of applications that access this server and that may be impacted by the server stoppage. When clicking an application, the details specify the access dates, the machines of the users who connect,... 9
012 Feature list Server network resources the most used by applications General : Most used WINDEV and WEBDEV applications General status report from the monitoring engine List of WLanguage errors that occurred in network applications Users connecting to a server via applications Distribution of network accesses per server Distribution of network accesses per resource Changes of the total number of network accesses performed by WINDEV and WEBDEV applications Distribution of network accesses per user Distribution of network accesses per client computer Per application: Network resources most used by the application Most used resources by an application Status report of the checks performed by the monitoring engine on the server Distribution of the network accesses performed on the server by the application Distribution of the network accesses performed on the server by type of resource Distribution of the network accesses performed on the server by user/client computer Here we notice that the application uses both files in "client/server" mode and files opened in shared network mode, which forbids the use of remote access... Status report of the checks performed by the monitoring engine on the application List of WLanguage errors that occurred in the application Distributed/used version numbers of the application. Here, 2 users use an older version. By clicking [Details] all the computers sorted by version used are displayed, which allows you to easily see which computer never updates... Distribution per server of the network accesses performed by the application Distribution per type of resources of the network accesses performed by the application List of users (and client computers) of the application. Per server : Number of accesses to the server Top 5 server accesses by user Trend in the total number of network accesses to the server Per user: Last WINDEV applications used List of client computers used Distribution per server of the network accesses performed by the user (via WINDEV applications) Distribution per type of resource of the network accesses performed by the user (via WINDEV applications) Per client computer Last connected users List of WINDEV applications started from the computer Distribution per server of the network accesses performed by the client computer (via WINDEV applications) Distribution per type of resource of the network accesses performed from the client computer (via WINDEV applications) Per type of resource Last resources used Distribution per server of the network accesses performed on this type of resource Distribution per application of the network accesses performed on this type of resource Distribution per user/client computer of the network accesses performed on this type of resource Statistics: Most used network resources Most accessed servers Most accessed resource types Application performing the most network accesses User/client computer performing the most network accesses Your applications' implementation is secured. The quality offered to your end user increases. 10
Secure your projects STATIC PROJECT AUDIT: INCREASE SECURITY AND SPEED Using the audit tool is very easy. The static audit is performed in the WINDEV 15 environment. This audit analyzes the project's source and its elements. Think about the fact that a (static or dynamic) automated audit in WINDEV 15 makes updating cost effective. And you can run it whenever you want, on all your applications 013 Static audit (source project) The static audit analyzes a project and produces a report on the project's state, as well as some optimization advices and performance improvement suggestions. Some dead code and orphan element features were already available: the new static audit feature gathers a set of new indicators useful for evaluating your projects' performance. The static audit is offered at regular time intervals by the environment, which prevents you from forgetting to run it (configurable: number of days, and/or project opening, and/or "GO" operations) Speed and security optimization advices for your existing projects. Lighter projects, less time lost figuring out what an element is used for only to find out it is not used! 015 Footprint visualization: EXE, Install,... The content and the size of the.exe files, libraries (.WDL) and installation files can be viewed in just one click. 014 software security = sécurité des applications Project cleanup In addition to the search for dead code and unused windows, the following elements are offered for cleanup: Unused variables Unused multilingual messages Simultaneous backup of a window's history in the editor (.wdw file) and in SCM Unused styles Unused groups of controls Content of a WDL file: we can see instantly that the "Earth.PNG" and "WinBckgd.GIF" images take too much space. These images need to be checked! 11
Content of a setup file: what does an index file (ORDERLINES.NDX) do in a setup? Is it normal? Gives you a snapshot of the disk space used by a setup, an EXE, so you can reduce their size and remove potentially useless files. 016 Code metrics List of warnings for a project. Specific advices to improve the security of your project. This feature groups all the code metrics functions: Comments rate Use of assertions Number of lines per process (detect excesses) Use of WLanguage version 5.5 functions... Standardization of the development. 017 Potential dangers to the project s quality The static audit generates a list of potential danger for the project. Here are some of the possible areas: SCM: elements checked out from the project for an extended period of time (configurable, 30 days by default), and never checked in Out-of-date template (for controls, windows, pages, reports, etc.) Skin template used by the project missing on the machine Missing native access used by the project to access a third-party database Project configuration containing several generations... Usually a "good quality" project has somewhere around 100 warnings, which should be eliminated On a large size project, this number of warnings can be over 1,000. Perform an audit on your application as often as you want. Reduce the size of your.exes and your setup files. Easily increase the speed and security of your applications. 12
Improve the speed of your applications DYNAMIC APPLICATION AUDIT: INCREASE PEFORMANCE The new version 15 provides an innovative and instantly useful feature. Developers who tested this feature think it makes the switch to version 15 worth it by itself. This very important feature, which you won't be able to do without, is the "dynamic audit". This new feature revolutionizes the fine tuning of application performance. The dynamic audit is available in two modes: an "all automated" mode that analyzes in the background how the application is used and prints a report containing the potential optimizations. an "expert" mode that allows the developer to dig down a specific area: memory, non-fatal errors, runtime warnings... 018 Automated audit (running application) A dynamic audit is performed on a running application. The execution is done on a deployment machine or a test machine. You don't need to be physically present on site when the audit is run. The audit generates a report (.waudit type file) containing the runtime warnings, assertions, memory dumps, etc... The generation of the report can be requested by coding (dbgenableaudit WLanguage function), or directly by the user ([Ctrl] [Alt] [A] key combination ). The report and the screen copies can be viewed from the environment. Of course, you need access to the source project to analyze. This file can be analyzed remotely. Lets you follow the execution of an application on a computer. 019 Memory footprint At runtime, locally or remotely, now with version 15 you can analyze the memory footprint on a computer. The developer can analyze the elements that take up the most amount of memory and check that this is not due to a coding error and/or a design error. The developer can also check that the application properly frees resources when needed. 13
The most common case is forgetting to free the result of a query. Depending on the size of this query result (large memos, large number of records...), this can have an impact on the performance. Class arrays, allocated elements, memory zones, memory tables, images, and so on, are analyzed. Remember that HCancelDeclaration, HDeleteView allow you to free these resources. 021 Non-fatal errors An application may generate "non-fatal" errors. These are errors generated by functions and whose status is not tested in the application. For example, the execution status of a query, the failure to open a configuration file, etc. This type of function can return errors that are never processed. These errors may only occur on some computers (due to their configuration) and therefore make it hard to understand the application's behavior and to debug it. Display all the non-fatal errors of an application, which often helps in resolving special cases due to configuration differences. 022 Assertions: defensive programming Memory footprint at run time (instant) Provides a better view of an application's memory use, and therefore allows for potential optimizations. 020 Execution warnings Here is a (non-exhaustive) list of elements analyzed and returned by a dynamic audit: Images not found Images whose path is inconsistent: for instance, network path for a network program Use of a SWITCH function without any OTHER CASE statement WLanguage operation overflow Values truncated when displayed (which generate display of "++++") Patch ignored: version, different configuration,... Browsing combo box/list box not properly filled TableAddLine with too many parameters Multitask in threads and in timers (this function is not allowed in a thread or a timer)..state = visible ACU JITC disabled Activation of the performance analyzer Detection of potential coding errors and dangerous programming practices. An assertion is a WLanguage function used to check whether a situation is normal when executing the application. For example, when accessing an array, the Assert statement can be used to verify that the program does not access an index larger than the array size, or a procedure can check that the parameters passed to it are within a valid interval. When an error case is found, the assertion creates an error in test mode but remains silent when deployed (except if specifically activated by the dbgactiveassertion function). There are a lot of possible uses, for one's own code or to check the result of a function or a class written by somebody else. The assertions are captured by the audit and printed in the audit report. Assertions do not slow down the application if the audit is not enabled because they are removed by the JIT feature. Assertions let you develop more robust applications and let you implement defensive programming heuristics. 023 Detailed GO : audit from the test mode inside the environment You can also start the dynamic audit on an application being tested directly in the development environment. At the end of the execution (test) inside the environment, the audit report automatically comes up. A first easy step in improving your applications' performances. HYPERFILESQL 14
Maintenance: don't disconnect users anymore HyperFileSQL, the unmatched Database Management System, reaches a very enjoyable maturity with version 15. Not only, it is the only DBMS fully compatible with Windows, Linux, Client/Server and Mobile, but it is also becoming better, version after version. Its speed and robustness make it a well suited DBMS for sensitive applications. "LIVE" OPERA- TIONS (WITHOUT DISCONNECTION) 024 Live auto mod (Client/Server) You're already familiar with the unique secure "auto mod" feature (Automatic Data Modifications after a change in the data structure) Thanks to this feature, the database structure is always up to date and the developer or architect never has to worry about structure changes. This feature lightens up the work for the deployment team and the DBA. The benefits from this feature over one year amounts to weeks saved! But who has never had to disconnect users from an application in order to roll out changes to the database? Who hasn't delayed these modifications just so they wouldn't need to disconnect users? With version 15 this problem vanishes: the "auto mod" is done live and doesn't require disconnection from applications using the database. The applications keep on running, read, write to the database during the "auto mod". Users keep on using their applications without having to disconnect making updating much smoother. 025 Live reindexing (Client/Server) 15
In version 15, you can reindex a file while live, be it for a reindex on keys or to recalculate statistics on this index (in order to improve performance). The applications keep on reading and writing in the database during the reindexing. Users continue to use their applications during the maintenance. The schedule depends on the rate at which the data changes and the importance of these changes; a complete monthly backup and a differential backup every night might be a good schedule. The backup does not lock the applications; it can be performed live, automatically. Backups can be scheduled. 026 Live automated performance optimization Configuration of the differential backup Saves time and space. Lets you increase the frequency of the backups and therefore your data's security. The feature that calculates statistics on keys is triggered at regular time intervals (configurable, every month by default) on databases in client/server mode. This insures greater speed when running queries and for accesses. Avoid forgetting, the most efficient keys are systematically used in priority! 027 Live password change (Client/Server) In version 15, you can define and change the password of a data file while the application is running, by using the HModifyPassword WLangage function. Avoid disconnecting users. 029 HYPERFILESQL ON MAC WB HyperFileSQL Client/ Server client for Mac As you probably already know, WINDEV lets you create Java applications that run on Mac (among other platforms). In version 15, a HyperFileSQL client is available for Mac. This means that you can write and read from a Mac, HyperFileSQL data located on a network server without using any RMI server (Mac with Intel processor, which has been the case for several years). Increased portability. Increased speed. 028 030 WB Differential backup (live) (Client/Server) HyperFileSQL Classic for Mac A differential backup lets you save only the parts of the file modified since the last full backup. The consequence is that the size of the backups is reduced a lot and therefore the backup speed increases. The method usually applied is to perform complete backups at scheduled times, and in between these times, perform differential backups. HyperFileSQL Classic can also be used with Java applications generated in WINDEV. The database can therefore be deployed on the Mac's hard drive (Intel). Ability to create autonomous Mac applications. 16
033 IPv6 support IPv6 (Internet Protocol 6) is the new coding standard for Internet addresses. The size of IP address encoding goes from 32 to 128 bits! A machine can have IPv4 or IPv6 addresses, or both types of active addresses. The management of the IPv4 or IPv6 type of addresses can be automatic (default) or defined by programming. HyperFileSQL is IPv6-ready! 031 OTHER NEW FEATURES New supported SQL commands 8 new SQL commands are supported in HyperFileSQL: LAST_INSERT_ID cbrt ceil degrees div radians random UUID Quote signs for item names and file names are supported. Better interoperability in SQL; better retrieval of items coming from other databases. 034 CLUSTER Cluster: server farm Thanks to this new architecture, a set a physical servers appears as a single server to the clients. The potential failure of a physical server does not prevent access to the database. The servers automatically replicate each other in real time. The read load charge is distributed on all the servers. You can add and remove servers while live. 032 OLE DB driver To access in real time the HyperFileSQL data from an application written in another language than WINDEV, WEBDEV or WINDEV Mobile, there is the ODBC technology. A driver is provided for this purpose. In version 15, whether in Client/Server or Classic mode, you can now use the OLE DB technology. An OLE DB driver is provided with your product and can be distributed freely with the applications you deploy. Better multi-environment interoperability. If a server crashes, it automatically resynchronizes when it restarts. When a user is connected to a server that fails, the user won't be disconnected but automatically reconnected to a valid server. This new feature is also very useful for SaaS infrastructures (see new features # 576 and 578 on the subject). Security: guarantee high availability. Distributes the read load over all the servers, improves the speed. 17
DEVELOPMENT EN- VIRONMENT EDITORS Main area of satisfaction for development and productivity in WINDEV, the editors also evolve in version 15. The evolution of the environment doesn't change your work habits, which means that you'll be immediately comfortable with version 15. No redesign, often to the detriment of efficiency, just important, immediately useful improvements, easily integrated into the development process. Development comfort, speed. 036 Dashboard The dashboard evolves for better project overview. The dashboard lets you start the static audit, preview it, as well as start the project dynamic audit. The display lights offer in-between states. 035 Environment The environment evolves without disrupting your habits. Menus are easier to read (spacing, icon size), icons are more efficient. The new dashboard look in version 15 Makes you even more productive. 037 Availability indicator for multiplatform features: PHP, Java, Linux, Android... As you know, WINDEV 15 and WEBDEV 15 allow you to develop for several targets. A new development environment, more useful, more efficient and faster The "blue shade" shows that the property is not available on the current platform Menus: before, after: After, more readable! 18
You can for example ask WINDEV 15 to generate a Java application. Or WEBDEV 15 to create a PHP site. Or WINDEV Mobile 15 an Android application. The code editor shows whether a function is available on the chosen platform. In version 15, when you create an application for a given target, the features offered by the "7 tabs" are the ones available for the target. Eliminate the risk of using a feature not supported on a given platform. 038 UI compilation error A UI compilation error is generated in case of incoherence in a control. The error is detected for each project language in the case of a multilingual project. This allows you to find bugs before they actually occur! List of new identified errors (non exhaustive list): Truncated captions: Check box option too long Table column title too long Vertical pane caption too long Toolbox pane Referencing external objects: Popup combo box with unfound window Control referencing an internal window of a non-found component Caption empty in a language: Missing caption in one of the languages (all controls) Empty tooltip in one language (all controls) Empty help message in one language (all controls) Other errors: Error on the empty window title in all the languages Addition of the property's name on the control link errors Break on a column/attribute that has been deleted (table control and looper control) Break on an unfound item/variable (table control and looper control) Duplicate shortcut on "&" Duplicate "&" in the caption when also used as a shortcut Window too large compared to the size defined in the project options To manage some special cases, UI errors can be disabled. Your UIs are clean from their first version. 039 Miscellaneous improvements The alignment feature now lets you align controls among a group. The [Alt] + [Arrow] keys used on a control move it based on the 0, 90, 45 axes (reminder [Ctrl] + [Arrow] copies a control). Navigation order: you can enter the order number directly in the editor. Table: you can create an additional column by sliding/moving an item. 040 Action repetition [F4] This new feature lets you re-execute one or more actions performed in the editor onto another element or a set of elements. For example, you decide to make an edit control mandatory; you check the corresponding box in the "7 tabs". If you want to perform this same operation on another control, simply select the control and press [F4]! This "magic key" works in many cases: In multi-selection: select 5 edit controls, then press [F4], the previous action is applied to all 5 controls. On heterogeneous controls: in caption modification mode, a button is selected. Pressing [F4] repeats the modification of the button's caption. Relative management: I move a control 40 pixels to the right, I select several other controls, I press [F4]: the result is a relative 40-pixel move of these controls. The [Shift][F4] key combination repeats all the actions from the time the control is selected. For example: I select a control, I enlarge this control, I make various changes in the "7 tabs", other changes in the modifier, I select another control, [Shift][F4] repeats all the modifications performed since the first control was selected. Please do it again: svp, refaites-le This feature speeds up control modification in the editor. Time saved when making repetitive changes in the editor. 19
041 043 WB Clipart catalog: 9 image mode, animated image mode The image catalog now offers images in "9 image" mode: these are images than can be enlarged without deformation. The animated images are now stored with their number of states. Table: Resizing with the mouse The resizing of tables in the editor via the mouse becomes very useful. Notably, you can resize the height of column headers now. You can also duplicate table columns. Easier table editing. 044 Documentation editor The documentation editor in version 15 takes into account the internal components the report templates. More complete documentation 045 WDSQL: passwords supported Catalog improvement, new types of illustrations easily usable in your applications. 042 Toolbar: configurable color WDSQL is a query editor for developers (comes with the product). Version 15 lets you use files that contain passwords (in client/server mode). Lets you create more queries. UML The background color of the editor toolbars is configurable. This customization allows for better ease of use. 046 UML: improvements The background color of the icon bar is easily configured Icons readable in any configuration; allows for the expression of your artistic taste; lets you differentiate between various versions. UML support evolves in version 15. Activity diagram: ability to define the initial state and the final state. Class diagram: property management, with reverse-analysis and code generation, like for attributes and methods. More complete UML support. 20
047 COMPONENTS Internal components: custom-folders You can include custom-folders in internal components. Reminder: you can include an analysis in an internal component, which allows you, among other things, to manage several analyses in a single project. 049 External components : possible single instance When generating the component, you can specify whether this component will be instantiated only once, regardless of the number of uses. This allows you to pass a class instance from one component to another. Better element organization. Allows for class sharing; gain speed and memory, because loaded only once. 048 Internal components: dependencies management 050 Miscellaneous You can force the use of a WDK included in the external WDL Improvement in the management of unique contexts in internal components. FULL COMPATIBILITY WITH THE EARLIER VERSIONS WINDEV 15 preserves your existing code. No migration step is required between WinDev 7.5, 8, 9, 10, 11, 12, 14 and WinDev 15: simply recompile the application and it will work in version 15. It is the same for switching from WebDev 7, 9, 10, 11,12 or 14 to WebDev 15, as well as for WinDev Mobile. Just recompile. The dependencies of an internal component When including an internal component into a project, the editors list the internal and external components needed for running this component, if they're not already found in the project. The dependencies of an internal component can be viewed. All the dependencies of an internal component are identified. The existing components (version 8, 9, 10, 11, 12 or 14) work directly (without needing to be recompiled) with applications built using version 15. Version 15 can directly open a project in version 7.5, 8, 9, 10, 11, 12 or 14. Older projects (version 5.5, 4.1, etc.) can be migrated. And of course, several different versions of your environment can coexist on your PC; a version 15 license also runs older versions (14, 12, 11, 10, 9, 8, 7.5, 5.5, etc.) Version 15 is of course compatible with Windows Vista and Windows 7. 21
SCM (SOURCE CODE MANAGER) 053 SCM: Project diff and merge The use of SCM is highly recommended, whether it is for sharing project elements or simply to manage branches and backups. As you know, SCM doesn't only manage the source code, but it also manages all the elements of your project: windows, pages, reports, and so on. 051 In version 15, you can compare 2 versions of a WDP file (project). In SCM mode, this allows you to instantly compare 2 versions of a project. The modified options, the added configurations, and so on, appear instantly. This feature is also available outside SCM (for a project saved on an external disk for instance). SCM: backup by incremental diff In this mode, instead of saving each version of each elements, SCM saves only the binary differences in respect to the previous version. This saves about 75% space for each backup on average. The restore speed is up to 30% faster. This leanness is welcomed when working over the Internet. Faster and more compact backup. A project diff Ability to easily see the modifications made to a project. 054 SCM: Stored query and stored procedure diff The analysis Diff now takes into account the stored procedures, the stored queries and the triggers. Increased support. 055 052 SCM: database merge SCM: optimization SCM speed is increased slightly, especially for remote accesses. Speed. This new feature lets you merge several databases. This allows you to share legacy code. All the links, history and rights are kept and included in the consolidated database. The merge can be partial: a project or a set of projects. The former database is always kept. We recommend you archive it, which is offered by default by the merge wizard. Increase resource sharing among teams. 22
Install in push mode PROGRAM DELI- VERY, INSTALLER In version 15, the already very powerful installer evolves quite a bit, and offers new features that will soon become indispensable. The deployment of applications is secure and becomes more flexible with version 15. View the version numbers of the installed application on each computer Trigger updates View installation status reports Remove the need for a physical presence at the end-user computers. Avoids operations, avoids oversights and errors. 056 WB Install in push mode With version 15, installing an application on 2,500 PCs without getting out of one's chair is possible and easy. In this mode, instead of each user starting the installation himself on his machine, a remote software administrator will do it for him. If ActiveDirectory is used, the defined groups can be used by the administrator. The push-install administrator provided with version 15 allows you to: View the computers and groups of the network Define the computers on which to install the application Start the installation through a push, potentially at a scheduled time With version 15, install your application (or update) on 2,500 computers in one click! 23
057 WB Multi-site installation via HTTP Reminder on how a "network" installation works: a reference installation is available in a shared directory of the network. The client computers install the application from this reference installation. When the reference installation is updated, the client computers automatically update themselves. With the multi-site installation, a Master installation is put online on a server accessible through HTTP. This master installation lets you deploy the same network install onto different sites. Once the network install is installed on the targeted sites, in a shared directory of their network, each client computer can install the application from the reference install (can be combined with the "push" Remember that when using an application on a client computer, the application automatically checks that it is in phase with the reference version, and performs the necessary updates itself. The user can also take the initiative and change the current version on his machine. This option can be disabled. The "?" menu offers the list of versions. Choosing a previous version on the end user's computer This feature is also available in push mode. Ability to go back automatically at any time. 059 Single use password method). If the Master install is updated, the update is automatically propagated onto each client site containing the corresponding reference install. Then each client computer retrieves the update, like with a standard network installation. Limits the volumes to download. Removes access spike to the server. Computers without Internet access can remain up to date. New WLanguage functions let you manage the remote activation of a program or an update. An initial key (a serial number) is generated upon request (KeyGenerateInitialKey)by the application on the client computer. This key is unique: it depends on parameters specific to the machine and the time of the request. The client can then perform an activation request (via Internet) by contacting the application's provider. The supplier can generate an activation key based on the initial key (KeyCalcActivationKey). The client will be able to activate his application by entering the initial key/activation key pair; the pair s validity can then be tested with the KeyCompareKey function 058 WB Restoring version n-x Who has never had to urgently reinstall the previous version of an application? This capability is now offered for the network. On the reference server, you can configure the number of consecutive versions to keep (in number and/or weight). The administrator decides at any time which one is the reference version (it doesn't have to be the most recent version, you can reserve the most recent version for beta testers for example) Here: a code is used to activate the professional version of a software Simplifies the management of paid versions and updates. 24
AAF As you know, the AAFs, Automatic Application Features, are an incredible benefit for applications developed with WINDEV. The end user has access to a large number of very useful features without the developers having to do anything! 060 WB Form copy The content of all the controls in a window can be copied/pasted in a single operation. WINDOWS AND LINUX SERVICES Let's remember that a "service" is an application without any UI that runs constantly in the background, even when no user session is open (not to be confused with a Web service, see new feature #102 to 106). 063 WB Creating windows and linux services WinDev 15 lets you create Windows services (in 32 or 64 bits), and Linux Daemons. A new menu option lets you create a "service" type configuration. The menu choice for creating services Avoids a lot of operations and limits the errors. 061 WB Ctrl G : moving inside a multiline control In a multiline control, the end user may need to go to a specific line, e.g. line 42. Instead of counting the lines, he can just press [Ctrl] [G] and "42". Saves time when moving inside a control. Easily create services. 064 WB New processes for services In the code editor, new processes have been added to manage the starting and stopping of services, execution in a loop,... 062 WB Sorting combo boxes and lists The end user can sort combo boxes and list boxes. Better readability. Coding is simple thanks to preset events Creating and using a service has never been this easy! Simplified programming. 25
065 WB Easily install services REPORTS Services created with WINDEV 15 are installed automatically through the installer. It has evolved to accommodate the parameters for starting and managing services: service description configure the starting command start mode: automatic, manual or disabled, differed error processing method: system event log, service restart behavior after the first, second and other failures user account under which to run the service 066 Automatic multi-column reports The creation of a multi-column report becomes native and very easy in version 15. Either through the "7 tabs" or through the wizard, creating a multi-column report is done in just a few clicks. A Windows service created with WINDEV 15 Just specify the number of columns in the "Format" tab Simplified setup. In the report editor......at run time 26
When running, the report contains the defined columns. Create multi-column reports very simply. 067 Archiving/Duplicata For legal reasons, you may need to keep an exact copy of a report, an invoice for instance. On the other hand, given the volume of data to process, some reports, such as statistics for instance, may take some time to generate. The new "Duplicata" feature lets you solve this problem easily. When printing a report, its exact copy can be generated and kept. You can then reprint this report's copy. The data are not reprocessed, which protects the report from modifications, and makes its reprint instantaneous. No need to be crunching data again to get the statistics from January 1st to December 31st 2007! The creation of a Duplicata is done through programming (new iparameterduplicate function), or directly from the print preview window via a new button. Duplicata files have a.dpl extension. A duplicata keeps the annotations, as well as the values entered in the report's edit controls. This feature can also be used with programmed reports (created using the iprint family of functions). Speed gain, judicial security, avoid printing and storing in paper form. 068 Data binding Data binding is available in all the reports. Simplified programming. 069 Linux: PDF reports available The report generator allows you in version 15 to create reports that will run in Linux. Simplified report creation for Linux. 070 Unicode support Using Unicode type items is now taken into account natively in a report control, by link and by programming. Better support for non-latin languages. 071 a report from another analysis thanks to internal components Internal components are now shown in the report generator. Therefore you can print reports located inside an internal component, which can be based on a different analysis. Organize your projects better. Easily print and use reports from other analyses. 27
072 WB Work directory The directory for the reports used by "Reports& Queries" can be modified by programming (freportsandqueriesdir function). It is simpler to manage customized reports created by the end users. Simplified operations. Possible management of several versions of the same report. Here, we see that the first 2 parameters are required, the following 2 are optional, and that other syntax are available (presence of the small arrow) 073 Miscellaneaous Writing direction: support for the..textdirection, property that works in similar ways as windows. This avoids having to maintain 2 reports in order to support languages that write from left to right and the ones that write from right to left. The speed of the iprint family of functions has been greatly improved in Linux. QUALITY CONTROL CENTER When rolling over the parameter, detailed help information comes up More fluid code entry, more complete help. 076 Assisted entry for properties Properties are now supported by the assisted entry technology of the code editor. 074 Miscellaneous changes Bug reproduction project management; Transfer forms from one bug list to another; Attach dump files to a form. 075 CODE EDITOR A non intrusive tooltip... The code editor assists you continuously. You are for sure familiar with the tooltip that comes up when entering code. It could happen, in older versions, that this tooltip would hide some pieces of important information found in the code window. Thanks to this version 15 improvement, the tooltip is now always ideally located, and never in the way. The information displayed is also more complete. Even faster coding. 077 debugger: debug dump It may happens that an application fails on a physically remote user computer. If you don't want (or can't) perform remote debugging (standard WINDEV feature), or if you're not available at the time of the failure, you can request that the application creates a dump file that you will be able to analyze at a later time on your machine. This dump file allows you to point: to the line of code that triggered the failure with the content of the variables with the call stack. This provides information that can be precious when trying to fix this bug. The dump file can be associated with an incident report in the Quality Control Center. It can be accessed later without disturbing the end user. Offline bug fixing on a remote machine. 28
WLANGUAGE The WLanguage 5GL is the cornerstone of WINDEV, WEBDEV and WINDEV Mobile. 079 e-mail: Secure SMTP The SMTP protocol is a standard protocol for sending e-mails. In version 15, its "secure" mode is supported. This is especially useful for using the SMTP server of Gmail (for sending e-mails with a Gmail sender's address). The messages sent are found in the Gmail inbox of the sender. Secure e-mail transfers. 080 are all the components used by the application accessible? An application may call a large number of components, some of them not very often. For example, an end-of-year batch process can call a component once a year. How to make sure that each component used by the application is available and accessible? That the server where it resides hasn't been stopped, or moved? With the new ComponentLoadAll function, the risks disappear! This function allows you to test, at the beginning for instance, that all the components called by an application are available. If this is not the case, an error is returned by the application. This function is recursive, does not trigger any fatal errors and lets you run or not the declaration code. Continuity and security when live. 081 078 e-mail: IMAP protocol Two modes are available for reading e-mails: POP3 and IMAP. The POP3 protocol is supported in WINDEV since the beginning. In version 15, the new IMAP protocol is supported natively. The benefit of this protocol is to be able to view and manage an account from several clients (desktop PC, home PC, Smartphone, ) while keeping the clients synchronized. For example, an e-mail read on the Smartphone will also be shown as "read" on the desktop PC. Secure IMAP is supported. Support for a very useful protocol. The f family accepts file name in Unicode The f family of functions (fselect, fopen, fread,...) lets you manage text and binary files. In version 15, these functions accept a file name (and path) in Unicode format. Useful for Windows international versions: Chinese,... 082 Return value of windows Did you know? An Open function (on a window) can return a value: True or False, the automatic identifier of the selected record, all the entered controls,... The 3 ways you can return this value are: The..ReturnedValue property The Close function(,valuetoreturn) The Result function in the window closing code. In version 15, you can return a structure, a class instance or an 29
advanced type. Better structure information. 083 Variant: arrays, classes,... A variant accepts array, class, structure type variables. Useful in Automation, depending on the type of information returned. 084 Excel: up to 1 million rows Starting with version 2007 of Excel, the WLanguage functions manage files with up to 1 million rows (1,048,576 exactly). The 65,000 rows limit doesn't apply anymore. Support for large Excel files. detailed description behavior in case of an error differed start (Windows Vista and higher). Better coding granularity. 088 Interprocess communication A new set of functions for handling shared memory zones is introduced. These memory zones are accessible from several processes. This allows for the implementation of interprocess communication. The fmemcreate function allows you to create a shared memory zone, and define the rights for the other processes (read-only, read-write). The fmemopen function lets you open it from another application. You can also use these memory zones from other languages. Native interprocess communication. 089 Templates: procedure overloading The templates' local procedures can be overloaded. 085 Class with independent HyperFileSQL context In OOP, each instance of a given class can have its own HyperFileSQL context. Several different instances will have their position managed automatically. You don't need then to save their position or to create file aliases for this purpose! You don't need to use the "hsaveposition" function anymore. 086 Advanced types: serialization All the advanced types of WLanguage support serialization and deserialization. Useful for n-tier architecture (SOA, etc.). 087 WB The service advanced type The "Done" procedure of the template has a gray background, the overloaded version is underneath Customization of the template's behavior in a special case. 090 HTTP requests: cookie management You can execute HTTP requests from several versions. In version 15, if the server returns a cookie, its content can be accessed by programming. This cookie can be returned to the server in the case of future requests. Cookie management. Three new properties are introduced for this type: 30
091 Https requests: Managing authentication certificates NEW WLANGUAGE SYNTAX An authentication certificate is an encrypted file, found on a client computer, that allows a server to make sure of the identity of the client. 094 Chaining of properties You can now chain the calls to properties. For example, Control..Font..Bold Clearer code. 095 In secure mode (https), it is now possible to specify by programming (without any action from the end user) the authentication certificate to use when sending requests. This new feature is also available for Webservice calls (see new feature # 103 to 106). Selection of the certificate by programming, without UI. 092 Getting a color A new WLanguage function very useful on a daily basis: GetColor. This function returns a color (RGB) that shows well in the application. The order in which the colors are returned is the same for each call. This is useful to display harmonious backgrounds for instance. Automatically using a set of pleasing colors. No more "firecracker red" in UIs! 093 Miscellaneous The LDAP-base User Groupware supports the configuration of the base DN. Data binding on several properties Array: Automatic incrementation You can allow automated assigns into arrays. There are 3 array management modes now: Secure mode: a WLanguage error comes up when reading or writing outside the array's boundaries (version 14 mode). Automatic incrementation of 1 unit. Writing an element just after the maximum bound of the array is allowed. Reading a non-existing N+1 element triggers an error Automatic incrementation without any checks. Save code lines. 096 NEW WLANGUAGE TYPES Connection to the mail server: structured type A new native type is introduced in WLanguage to simplify the connections with servers of the following types: POP IMAP LotusNotes Exchange... You can now program: FOR ALL MAIL UNREAD of Myconnection Simplified e-mail programming. 31
097 e-mail: structured type.net 099 Databinding Very useful in OOP, data binding is supported in.net mode in version 15. This technology allows for a large reduction in the number of lines of code needed for assign statements. Simplified programming. 100 WB.Net 4.0 compilation Version 4.0 of.net is supported by WINDEV 15. You can create.net 4.0 assemblies. Support for all versions. 101 Support for built-in types Programming e-mails becomes easier in version 15 with the introduction of the "email" type. This type allows for very intuitive programming. For example: MyOutlookSession is EmailOutlookSession MyOutlookSession.Name = My profile EmailStartSession(MyOutlookSession) Mail is Email FOR ALL Mail UNREAD OF MyOutlookSession... END EmailCloseSession(MyOutlookSession) See also new features #78 and 79, secure SMTP and IMAP management. Simplified e-mail programming. Assemblies that use built-in types can be used in version 15. Increased support. 102 Miscellaneous FOR EACH is available for the ienum 098 new types Email EmailAttach EmailSessionIMAP EmailSessionNotes EmailSessionOutlook EmailSessionPOP3 EmailSessionSMTP hscheduledoptimization hfileparameter HScheduling InfoVersion Processus xmlattribute xmldoc xmlnamespace xmlnode ziparchive ziparchivedfile Simplified programming. 32
Easy Webservices (SOA, n-tier,...) WEB SERVICES : SOA AND N-TIER WINDEV and WEBDEV have been supporting XML and Webservices for several versions. Version 15 revolutionizes the use of Webservices. 103 Easy use of webservices (Note: the Webservice may have been created with WINDEV, WEBDEV or any other language). In version 15, the structures of the WSDL file automatically become native types of WLanguage. The sent or received Webservice data is handled with a native syntax (see new feature # 108 and 109). The code editor offers assisted entry and compilation errors for Webservice operations. Data binding is available. Of course, the access methods used by the previous versions are still supported (for backward compatibility). In version 15, you can also select an authentication certificate to call a Webservice. The setup of service oriented architecture is made easier. Webservices available on Windows Azure are accessible. Easy and performing use of Webservices. 104 Easy creation of webservices Webservices are easily created. Simply define a set of procedures that make up the Webservice interface. The complex types (structures, XML content, ) are supported. The WDSL description files are automatically generated. New in version 15, WEBDEV also lets you create Webservices. Webservice creation possible in WINDEV and WEBDEV. 105 Easy deployment of webservices In version 15, a Webservice is created and hosted on a machine that has a WEBDEV application server. The installation procedure is generated automatically. Automatic installation. 106 Easy hosting of webservices In version 15 a new technology is offered for the Webservices servers. This new technology is based on the robust, standard, WEBDEV application server. This new technology allows you to increase the availability of the Webservice as well as its speed. Several requests can be executed simultaneously, in separate processes, which guarantee the security. Webservices can be consumed by any type of application, created in WINDEV, WEBDEV or any third-party language. A (free) 10-access application server is provided with your product. An unlimited server is also available. Of course, the lsapi technology used in previous versions is still supported. Better load support. 33
XML 108 Available XSD description file : strict compilation If the XSD description file is provided, the code editor parses this XSD file and creates the corresponding native types, in a strict way. The compilation will check that the tags handled meet the description defined in the XSD, and will generate compilation errors in case of non respect of the syntax described in the XSD. The only tags and attributes that can be handled are the ones defined in the XSD. The management of XML files is made much easier. 107 XML File : simplification and power An XML file, or a set of XML files, can be provided with or without a description file, file that has an XSD extension. If the XSD file is not available, the code editor parses the XML data file, and figures out its structure in order to create the corresponding native types. This allows you, for instance, to handle the data of an XML file representing a library in this format: book[n].author.name Assisted entry is available for these types. The compiler detects the XML syntax errors If XML files are created, the compilation will also check that the structure respects the XSD. Data binding is available for these types. Of course, the access methods used by the previous versions are still supported. Strict compilation, avoid runtime errors. 109 XML File : data binding. In all cases, data binding is available. This allows you to save hundreds of lines of code! Below: automatic filling of a treeview table from an XML file (1 line of code!) On the left side of this screen copy, an XML file, and its handling, in the code editor: Easy! 34
WINDOWS 7 (SEVEN) 112 WB Progress bar in taskbar When an applications displays a progress bar, it can also update the progress in the taskbar's icon (application in the foreground, background or minimized). Windows 7 provides its share of new features. Version 15 is compatible with a large number of Windows versions (since Windows NT) and notably with the "Windows 7" version. 110 Start menu and quick launch icons Better information view. 113 WB Adding buttons to a thumbnail In Windows 7, an application comes up as a thumbnail in the taskbar. WINDEV 15 lets you add clickable buttons in this thumbnail. The list of last opened projects is available via the "Start" menu and via the quick launch icons. You can pin down projects. Better summary information. 114 WB Application bar icons : modifiable Faster opening of favorite projects. 111 The icon of an open application can be modified by the application. For example, display an updated counter (number of unread e-mails, ) or draw attention. The icons must be prepared in advance for this use. Dockable window Dockable windows can be moved smoothly. Improved ease of use. Dynamic icon changes. 35
COMMUNITY DOCUMENTATION The documentation for WINDEV, WEBDEV and WINDEV Mobile is available also in community mode for version 15. What does this mean? Simply that the products' documentation can be enriched in real time by the developer community. You want to clarify a function? Provide an example? You've found a trick and you'd like to share it? You know how to optimize an operation? You're a vendor and you want to provide information about the interoperability of your hardware or provide examples? All this is now possible with the community documentation! In order to make sure that the information is accurate, PC SOFT validates the additions. 115 An even more efficient documentation. 116 Easier access The help can be consulted on any machine equipped with Internet access, without the product needing to be installed. Universal documentation access. 117 Easier viewing Viewing the documentation through your own Internet browser allows you to keep your habits. For example, marking some pages, using shortcuts, several tabs, Of course, consulting the help in traditional mode (not connected to the Internet) is still possible. Adding comments Each user can add comments to the documentation pages. His own explanations, some examples, some links,... The comments are moderated. I read the doc I know a trick The documentation displayed from the Internet Standardization of the viewing. I modify the doc for the community 118 Indexing by the Internet search engines : Google,... The documentation is referenced by search engines. This allows you to benefit from the search management behavioral habits. Other approach to information gathering. 36
WINDEV COMMON NEW FEATURES WINDEV controls remain a strong benefit. In version 15, new types of controls are introduced. (See also the Organizer and Progress bar controls in new features # 001, 002 and 003). 120 WB Range slider This new type of native control (you don't need to add an image to your project), allows for easy interval selection and zoom by the end user. There're plenty of examples: dates, zoom percentage, image size,... 119 Common new features WINDEV 15 benefits from the 118 common new features (see page 3 to 36). Read about these important new features for WINDEV 15! NEW CONTROLS WINDEV, WEBDEV and WINDEV Mobile are rich with controls. The available customization of a single control would correspond to hundreds of "controls" in other languages. Easy to use, feature-rich, insulated from Windows changes, 37
A Range Slider control You can select a mask on a static type control. Readability of the displayed data. 123 WB TreeMap A runtime example: selection of an area to display Implementation without any coding. 121 WB HTML edit The HTML edit control allows for an easy interaction with WEBDEV. The data entered in the back office can be exploited by the front office and vice versa. An automatic representation of the data. Here a list of costs; each area can be clicked This new type of control lets you dynamically represent data, treeview in a weighted way. To fill this control, simply enter the name of the element, its weight and its tree path if needed. This type of control is very useful to show volumes of data in a user friendly way. The treemap presents an advantage for showing a large number of data (more than 100 and up to 1 million). The areas are clickable; this allows you to display some details when clicking for instance. This new type of control quickly becomes indispensable. Displaying and editing in HTML. Here in an e-mail: display the e-mail received, enter the answer in HTML HTML input without any programming. 124 WB Edit control with file mask: assisted edit 122 WB Formatted static control A new capability for edit controls in version 15, is to offer assistance when entering file names and path names. The edit control is filled out automatically based on characters entered, file names and directory names available on the computer. Dates are displayed automatically. Easier input of file paths. 38
125 WB 127 WB Color control in edit mode: conditional formatting A new feature very appreciated by end users: the ability to change the background color (or the border color) of a control when the cursor enters this control. The user knows immediately which control expects an input. Therefore he is more efficient. Negative values, required input, are also easy to find for the user. You can mark a static control with a star or a red dot, like on the Internet! Icon in PNG 256x256 format The alpha layers of icons is supported now. This allows for a sharper display of the icons in the Windows 7 and Windows Vista file explorer. The clipart catalog generates this format on demand. The application icon also supports this format. The icons for the executables are created on all the formats Some nice icons in any resolution. 128 WB Optimization of control display Here some highlighted controls: the edit control where we're located, a control with a not respected minimum value, and 2 controls with required input (star) The user immediately spots the relevant controls. The display of a large number of controls in a sophisticated window (overlay, transparency, ) has been optimized and is now instantaneous. Prevents potential flickering. 129 WB 126 WB Miscellaneous Image control: SVG format The image control in version 15 supports, in addition to the current formats, the SVG vector format. SVG BMP In small, the reference image, larger, the reference image shown in SVG format or in a Bitmap format. Regardless of their format, these images never loose in definition quality. In addition to the new features described above, a large number of other new features are introduced for controls: Support of..tooltip for the table cell controls Management of clicks in table breaks and looper breaks. Edit control (including RTF): ability to insert links with custom actions (not necessarily http links). Display of a tooltip to see the entire static control in the case of a truncated control: list, treeview, combo box and table. Table break: possible configuration of the image for the "+" button. OpenOffice spelling checker: it now works without any delays for the using application. Vista type radio button: ability to define the color of the secondary caption and to configure the vertical alignment. Calendar: possible configuration of the image for the "Next" and "Previous" buttons Tab: ability to insert a Carriage Return in pane captions Check box control: it now supports data binding Treeview table, collapsed/expanded icon image: possible customization The TableAdd function has been optimized. 39
JAVA 132 WB JAVA: new type The Buffer type of WLanguage is supported by the Java generation. Additional types for Java. 133 WB 130 WB JAVA: cooperative environment When developing a project intended to be generated in Java, the environment ("7-tab" window) points out the potential features that should not be used in this mode; this allows for a better adaptation of the applications. (see new feature # 037) Makes switching existing code to Java easier. 131 WB JAVA: new controls New types of controls are now supported by the Java generation: Calendar Container column JAVA: other new UI features Among the new features available in version 15 for Java UIs, you'll benefit from: Management of the required input attribute in edit controls Date edit control with calendar New input masks supported: IP Address, v6 IP Address, SIREN number, SIRET number, Ethernet MAC address, e-mail address conforming to RFC2822, Roman numeral, French postal codes, Bank account number, Visa card number, American Express card number, French social security number, ISBN number, ISBN (13) number, zip codes, banking identity number, multiple e-mail addresses, multiple e-mail addresses conforming to RFC2822,... Even more robust UI in Java. 134 WB JAVA: 4 new properties 4 new properties are introduced for Java in version 15: -..Tooltip on table cell -..Multiselection -..StartDate -..EndDate Easier programming. 135 WB JAVA: new syntax New controls (calendar, container column, etc.) in Java, here at run time on a Mac Increase in UI features for Java. The following WLanguage syntax are also supported for Java generation: Multiple assignment (syntax for filling arrays/classes/structures using []) Optional concatenation Pass parameter by copy (LOCAL keyword) New syntax in Java. 40
136 tow204 M WB JAVA: 69 new functions The number of WLanguage functions supported with Java generation is increased by the functions below (non-exhaustive list, 69 new functions) AnimationPlayOnControlProperty ScrollBarShow CalendarOpen CalendarPosition CalendarSelect CalendarPicker CalendarSelectMinus CalendarSelectOccurrence CalendarSelectPlus StringStartsWith StringEndsWith StringToArray CurrentColumn MakeInteger CSVToArray Animates the modification of a property between two values. Displays or not a scroll bar in a WinDev control (edit control or list box). Opens a popup window displaying a calendar in a date type edit control. Returns the displayed month in a calendar control. Returns the date selected in a Calendar control. Opens a modal dialog box with a calendar to enter a date. Deselects a date from a multi-selection calendar control. Returns the number of selected days in a calendar control. Selects a date in a Calendar control. Checks whether a character string starts with one of the specified strings. Checks whether a character string ends with one of the specified strings. Fills a 1 or 2 dimensional array of the specified type with the character string passed as parameter. Returns the subscript of the current subscripted column into a memory table or a browsing table, or the column number of the column being edited into the specified browsing or memory table. Builds a 4-byte integer from two 2-byte integers. Fills a 1 or 2 dimensional array of the specified type with the CSV format character string passed as parameter. DateTimeLocalToUTC Converts a date and time expressed in local date and time (time zone, daylight savings) into universal time (UTC). DateTimeByDefault Lets you define the default value for variables of Date, Time and DateTime types. DateTimeUTCToLocal Converts a date and time expressed in UTC date and time (Universal time) Into a local date and time (time zone, daylight savings). dbgenableassert Enables or disables defensive programming. dbgassert Used to find out and note the potential errors through a defensive programming mechanism. Deserialize Deserializes a buffer or a character string containing the data from a class, a structure, an array (including associative arrays), a queue or a stack and their elements. dpixelopacity Identifies the opacity of a pixel in an image that supports the Alpha layer. drectanglegradient Draws a rectangle in an image control. InAJAXMode Identifies whether the code is executed directly from a process in AJAX mode or from a procedure called using the AJAXExecute or AJAXExecuteAsynchronous functions. InAWPMode Used to find out whether the running page is an AWP page. InMCUMode Identifies whether the executed code comes from a user macro. InStoredProcedureMode Identifies whether the code is executed on a HyperFileSQL server. InServiceMode Returns True if the execution in progress is run from a service. InSimulatorMode Allows you to find out whether the application is started in the "simulator test mode" of WinDev Mobile. InAutomaticTestMode Enables you to find out whether an automated test is currently running. EnumMenu Returns the name of the Nth option or sub-option of the window's main menu, or the name of the Nth option or sub-option of a custom popup menu (created using WinDev). fchangesize Changes the size of an external file. fmovefile Moves a file from one directory to another. continue on page 42 41
WinScreenRectangle FileToMemory fmovedir fparentdir fseparator HashString HashFile HashCheckString HashCheckFile CurrentSubscript NextSubscript InitWindow BankHoliday BankHolidayAdd BankHolidayDeleteAll MemoryToFile Message MultitaskRedraw Occurrence EmulateInput EmulateMouse Input scomputecrc16 scomputecrc32 SelectColor Serialize Sound ArrayToString ArrayToCSV CommonLength LengthToString VariableReset zipexist zipextractfilelist ziplistfile zipcompressionlevel Returns the coordinates of the screen that contains a window. Automatically initializes the values of the members of a structure or a class with the values of the items for the current record of a file. Moves a directory and its contents. Returns the parent directory of the specified directory. Standardizes the separators used in a file path. Calculates the Hash code of a character string based on a set algorithm. Calculates the Hash code of a file based on a set algorithm. Checks the Hash code of a character string based on a set algorithm. Checks the Hash code of a file based on a set algorithm. Based on the specified control, returns the row number of the current row displayed in the table, or the option number of the check box that has focus. Returns the number of the next row displayed in the current table. Initializes the controls to zero (or not) and launches the initialization processes of the window's controls. Specifies whether a day is a holiday or not. Specifies that a day or a list of days is a holiday. Empties the list of all the holidays. Automatically initializes the memory value of a file current record's items with the value of the members of a structure or a class. Displays (or erases) a message in the status bar of the current window or current browser window. Immediately redraws the window's controls that require a graphic update. Returns the number of occurrences of a control in a window, page or group of controls. Performs an input in a control through emulation, checking that input is possible in this control. Simulates a mouse event (left click, right click, double click, etc.) Displays a message asking the user to enter some information. Checks a character string before and after transmission between WinDev applications/webdev sites. Calculates the Cyclical Redundancy Check code (CRC) of a buffer. Opens MS Windows standard color selection screen and selects the specified color. Transforms the following elements into a specific format: a structure (and its sub-elements), a class (and its subelements), an array(including associative arrays), a queue, a stack. Plays a sound in WAV format. Converts a 1 or 2 dimensional array into a character string. Converts a 1 or 2 dimensional array into a character string in CSV format. Returns the number of character common to two strings, starting from the beginning or the end. Converts a size given in bytes into a character string formatted in kilobytes, megabytes or terabytes. Resets the variable to its initial value. Lets you find out if an archive exists. Extracts and automatically decompresses a list of files found in an archive to a physical location. Returns the list of files found in an archive. Changes the compression level used when creating an archive in ZIP format. 205 WLANGUAGE WB HaspHL The "Hasp" keys are physical keys used to protect against illegal copies. The "HL" model offers an additional level of security, and also allows you to provide the application directly on the key. If you want to protect the use of the programs you create with this type of key, new WLanguage functions allow you to do so natively. New key technology available. 100 NEW WLANGUAGE FUNCTIONS 206 to 305 WB New functions available in WINDEV 100 new WLanguage functions are introduced in WINDEV, for your benefit: OrganizerAddAppointment Adds a new event to the organizer control. OrganizerChangeZoom Modifies the time period displayed in an organizer control (Day/Week/Month). OrganizerTimeDisplayed Configures the minimum and maximum time displayed in Day/Week mode. OrganizerInfoXY Returns the subscript of the event at a given position. OrganizerDisplayedDay Configures the 1st day displayed in an organizer control. OrganizerListAppointment Returns the array of events that occur between two given dates. OrganizerDeleteAppointmentDeletes an event from the organizer control. OrganizerDeleteAll Deletes all the events of an organizer control. OrganizerDisplayPreviousPeriod Moves the time period displayed in the previous area (for example, previous weeks). OrganizerDisplayNextPeriod Moves the time period displayed in the next area (for example, next weeks). OrganizerZoom Returns the current time period of an organizer control. AppliActiveVersion Activates a version on the reference installation server. AppliVersionInfo Returns information about a version available on the installation server. AppliInstallVersion Installs a specific version of the application. AppliListVersion Lists the versions available on the reference installation server. AppliDeleteVersion Deletes a version on the reference installation server. KeyGetIdentifier Retrieves the identifier that was used to generate the initial key. StringStartsWith Checks whether a character string starts with one of the specified strings. StringEndsWith Checks whether a character string ends with one of the specified strings. LoadImageSheet Loads an image sheet into memory in order to use it later with the gimage function. ChronoPause Pauses a stopwatch. ChronoResume Restarts a stopwatch that was paused by the Chrono- Pause function. 42
KeyCalcActivationKey Calculates the activation key based on the initial key. KeyCompareKey Compares an initial key with an activation key. KeyGenerateInitialKey Generates the initial key (license number) for the activation system. COMCallMethod Calls a method of a COM object. COMCreateInstance Creates a COM instance. dbgenableaudit Enables the runtime audit. dbgstartmemorydiff Starts a diff operation on the memory used by the application. dbgenableaudit Triggers a runtime warning to send back to the runtime audit. dbgwritecommentaudit Writes a comment to send to the runtime audit. dbgauditstatus Retrieves or modifies the runtime audit's status. dbgendmemorydiff Ends a diff operation of the memory used by the application. dbgauditoption Retrieves or modifies the runtime audit's options. dbgsavedebugdump Creates a dump of the application's status. dbgsavememorydump Returns a memory dump for the application. diffapply Applies the difference buffer to a specific buffer. diffcreate Compares two buffers and creates a buffer containing the differences between these two buffers. GetColor Returns a color that goes well with the specified color. GetGUID Returns a GUID (globally unique identifier). EmailGetAll Retrieves and reads all the e-mails found in the session. InServiceMode Returns True if the execution in progress is run from a service. InPHPSimulatorMode Returns True if the execution in progress is run from the PHP simulator mode. ErrorBuild Formats and displays an error message. fcreatelink Creates a link on a file. WinInitialized Specifies whether the end of initialization code of a window has been run. FileToArray Fills an array with the content of a data file or the content of a HyperFileSQL query. EndService Stops the execution of the current service. fmemcreate Creates a shared memory zone. fmemexist Tests if a shared memory zone exists. fmemopen Opens a shared memory zone. fparentdir Returns the parent directory of the directory passed as parameter. fseparator Standardizes the separators used in a file path. HAddScheduledOptimization Adds an optimization task of the HyperFileSQL Client/Server data files. HAddScheduledBackup Adds a schedule for a complete or differential backup. HaspHLLogin Establishes the connection with a Hasp HL key. HaspHLCryp Encrypts a character string using the algorithms of the Hasp HL key. HaspHLLogout Closes the connection with a Hasp HL key. HaspHLUncrypt Decrypts a character string using the algorithms of the Hasp HL key. HaspHLWrite Writes data into the internal memory of the Hasp HL key. HaspHLInfo Retrieves the technical data of a Hasp HL key. HaspHLRead Reads the contents of the internal memory of the Hasp HL key. HChangePassword Changes the password of a HyperFileSQL Client/Server data file. HListScheduledOptimization Lists the optimization tasks of the HyperFileSQL Client/Server tables. HListScheduledBackup Lists the complete and differential backups that have been scheduled. HListServer Lists the HyperFileSQL servers installed on a machine. HDeleteScheduledOptimization Deletes an optimization task of the HyperFileSQL Client/Server data files. HDeleteScheduledBackup Deletes a schedule for a complete or differential backup. HTTPCertificate Modifies the client certificate used by default to identify oneself on a server. HTTPListCertificate Lists the client certificates found on the machine to identify itself on a server. iprintduplicate Prints a duplicata created either directly with the idestination function or automatically with the iparameterduplicate() function then recovered with the ilastfile(iduplicate) function. InfoBuild Formats and displays an information message. icolumnnum Returns the column number of the current column (multicolumn reports). iparameterduplicate Configures the automatic creation of duplicata. LogWriteEvent Writes an event into the Windows event log. ExeRemoteRun Starts the execution of a remote program and/or under a different user account. SpellAddDictionary Adds a word into the dictionary. SpellSuggest Lists the possible words that can correct a misspelled word. SpellCheck Specifies whether a word is properly spelt (i.e. it is found in the dictionary) ClipboardUnicode Returns the content of the clipboard in Unicode format. NerworkDomainName Returns the name of the domain to which the computer belongs. ServiceDelay Delays the execution of a service loop. SysRecentDocAdd Declares a recently opened document to the Windows shell. SysIcinAddImage Adds an icon on top of the application's icon in the taskbar. SysIconDeleteImage Deletes the icon found on top of the application's icon in the taskbar. SysRecentDocList Returns the list of recently opened documents. SysThumbnailAddButton Adds a button in the application's thumbnail. SysThumbnailDeleteButton Deletes a button in the application's thumbnail. SysThumbnailDeleteAll Deletes all the buttons in the application's thumbnail. TableBreakSubscript Returns the subscript for the break header and footer for a data break in a table. TreeMapAdd Adds a piece of data to a TreeMap control. TreeMapInfoXY Returns the piece of data displayed at a given position in a TreeMap control. TreeMapSearch Searches for the subscript of a piece of data in a TreeMap control from the path provided in the TreeMapAdd function. TreeMapSelectDirectory Visually selects an entire directory from a TreeMap. TreeMapDelete Deletes an element from a TreeMap. TreeMapDeleteAll Deletes all the data from a TreeMap control. UUDecode Decodes a character string in UUEncode format. UUEncode Encodes a character string in UUEncode format. XMLInitialize Initializes an XMLDoc type variable from a URL, a file or a buffer. XMLOpen Opens an XML document from an XML file on disk. 306 MISCELLANEOUS NEW FEATURES WB Changes to the "?" menu The "?" menu, which can be included automatically in your applications, offers some new choices: create an image of the memory footprint (see new feature # 019) activate the runtime audit (see new feature # 018) go back to an older version of the program (see new feature # 058) New features in your applications, without any coding. 43
307 WB New skin templates Several new skin templates are offered in version 15. A new skin template offered in version 15 Another new skin template offered in version 15 Easy creation of efficient applications with a sophisticated look. 44
WINDEV MOBILE 309 nou Support of Windows Phones 308 COMMON NEW FEATURES Common new features Applications developed with WINDEV Mobile 15 are compatible with the Windows phones. Windows Mobile is more relevant than ever. 310 Start menu of Windows Mobile 6.5 WINDEV Mobile 15 benefits from the common new features (see page 3 to 36) of version 15. Read about these important new features for WINDEV Mobile 15! Version 15 of WINDEV Mobile is in sync with WINDEV and WEBDEV, and lets you easily share projects. WINDOWS MOBILE 6.5 45
In Windows Mobile 6.5, the Start menu is presented graphically as a honeycomb. The install of a WINDEV Mobile 15 application can request to be included in this presentation. The CreateShortcut WLanguage function lets you create shortcuts in the honeycomb and in the menu of previous versions. Compatibility with the Windows Mobile 6.5 interface 311 46 new WLanguage functions WLanguage adds 46 new functions in version 15 for WINDEV Mobile. KeyGetIdentifier StringStartsWith StringEndsWith LoadImageSheet ChronoPause ChronoResume KeyCalcActivationKey KeyCompareKey KeyGenerateInitialKey dbgenableaudit dbgstartmemorydiff dbgtriggerwarningaudit dbgwritecommentaudit dbgauditstatus dbgendmemorydiff dbgauditoption dbgsavedebugdump dbgsavememorydump GetColor GetGUID EmailGetAll InServiceMode InPHPSimulatorMode ErrorBuid WinInitialized FileToArray fmemcreate fmemexist fmemopen fparentdir fseparator Retrieves the identifier that was used to generate the initial key. Checks whether a character string starts with one of the specified strings. Checks whether a character string ends with one of the specified strings. Loads an image sheet into memory in order to use it later with the gimage function. Pauses a stopwatch. Restarts a stopwatch that was paused by the Chrono- Pause function. Calculates the activation key based on the initial key. Compares an initial key with an activation key. Generates the initial key (license number) for the activation system. Enables the runtime audit. Starts a diff operation on the memory used by the application. Triggers a runtime warning to send back to the runtime audit. Writes a comment to send to the runtime audit. Retrieves or modifies the runtime audit's status. Ends a diff operation of the memory used by the application. Retrieves or modifies the runtime audit's options. Creates a dump of the application's status. Returns a memory dump for the application. Returns a color that goes well with the specified color. Returns a GUID (globally unique identifier). Retrieves and reads all the e-mails found in the session. Returns True if the execution in progress is run from a service. Returns True if the execution in progress is run from the PHP simulator mode. Formats and displays an error message. Specifies whether the end of initialization code of a window has been run. Fills an array with the content of a data file or the content of a HyperFileSQL query. Creates a shared memory zone. Tests whether a shared memory zone exists. Opens a shared memory zone. Returns the parent directory of the directory passed as parameter. Standardizes the separators used in a file path. HAddScheduledOptimization HAddScheduledBackup HChangePassword HListScheduledOptimization HListScheduledBackup HListServer HDeleteScheduledOptimization HDeleteScheduledBackup InfoBuild icolumnnum ClipboardUnicode UUDecode UUEncode XMLInitialize XMLOpen 312 NEW Adds an optimization task of the HyperFileSQL Client/Server data files. Adds a schedule for a complete or differential backup. Changes the password of a HyperFileSQL Client/Server data file. Lists the optimization tasks of the HyperFileSQL Client/Server tables. Lists the complete and differential backups that have been scheduled. Lists the HyperFileSQL servers installed on a machine. Deletes an optimization task of the HyperFileSQL Client/Server data files. Deletes a schedule for a complete or differential backup. Formats and displays an information message. Returns the column number of the current column (multicolumn reports). Returns the content of the clipboard in Unicode format. Decodes a character string in UUEncode format. Encodes a character string in UUEncode format. Initializes an XMLDoc type variable from a URL, a file or a buffer. Opens an XML document from an XML file on disk. Support for PNG images The PNG image format is now supported by WINDEV Mobile 15. This format allows you, among other things, to manage transparency inside images. Increased compatibility. 313 WB touch screens: Scroll On a device equipped with a touch screen (Smartphone, etc.), the user can browse through tables directly by using his finger, without having to use the scrollbar. Better user-friendliness. 46
Create applications for Android (also) 314 ANDROID Better support of touchfriendly smartphones The detection of the runtime platform's characteristics when creating the project is improved. Specifically, the new generation of touch-friendly Smartphones is detected and taken into account. For example, on these Smartphones, menus are displayed at the bottom of the screen and are touch-friendly. The emulator evolves to support these new characteristics. The emulator allows testing in horizontal or vertical screen orientation. A large number of WINDEV Mobile features are also optimized for this mode. 315 Develop 10 times faster for Android! WINDEV Mobile 15 lets you create applications targeted for the Google Android operating system. Intuitive support for touch-friendly Smartphones. A large number of controls are supported. The controls are systematically created in the Android style. The local database that can be used with Android is SQL Lite. File links ("7 tabs") are supported, as well as the WLanguage functions of the "H" family. The creation of Android applications is based on the Java generation in WINDEV; the development is done in WLanguage of course. The telephone orientation (vertical or horizontal screen) is supported through the anchoring method. 47
The management for finger-scrolling of list boxes and looper controls is taken into account. The multilingual feature is available. When performing a GO, you can choose your runtime target: the emulator or the telephone (which must be connected for the test in this case). The packaging of applications with their signatures is supported. WINDEV Mobile 15 is intended for creating new applications for Android, using the available controls and functions (list following). Support of a new system. 316 Controls supported in Android Version 15 of WINDEV Mobile offers the following controls for developing for the Android platform: Static Edit control Radio button Check box Button List box Looper control Combo box Image Menu Tab Ability to create controls for applications that will run on the Android operating system. 317 257 WLanguage functions supported in Android The following WLanguage functions are available for developing applications in Android (non-exhausted list). Abs age ArcCos arcsin ArcTan ArcTan Round Asc Warning Charact StringCompare StringBuild StringFormat StringCount StringToDate StringToDuration StringToArray CurrentField FieldExist PreviousField FieldFirst ChronoStart ChronoEnd ChronoValue Complete CompleteDir Confirm Cos CoTan SelectionColor CSVToArray DateDifference Today DateIsValid DateTimeDifference DateSys DateValid DateToString DateToInteger DateToDay DateToDayInAlpha DateToMonthInAlpha DateToWeekNumber UncompleteDir Dimension GetIdentifier Right DurationToString ScreenFirst InComponentMode InReportsAndQueries- Mode InJavaMode InPHPMode InPocketMode OnTestMode InWebMode IntegerToDate IntegerToTime IntegerToDay IntegerToDayInAlpha IntegerToMonthInAlpha IntegerToWeekNumber EnumControl EnumElement Error ErrorInfo. IsOdd IsNumeric IsEven BinaryAND ExceptionThrow ExceptionInfo ExecutePresetAction ExecuteProcess Exp WinChangeAlias WinInactiveEffect CurrentWin WinInput WinBackgroundImage Close EndProgram Left glinkactivate Random TimeDifference TimeIsValid TimeSys TimeValid TimeToString TimeToInteger HActivateFilter HAdd HAlias HCancelAlias HCancelDeclaration HCancelSeek HLinkMemo HForward HChangeKey HChangeConnection HChangeName HBuildKeyValue HCopyRecord HCreation HCreationIfNotFound HDescribeConnection HLast HDeactivateFilter HOut HErrorInfo HExecuteQuery HExtractMemo HClose HConnectionClose HFilter HFilterStartsWith HFilterIdentical HFreePosition HListConnection HListItem HRead HReadLast HReadPrevious HReadFirst HReadSeek HReadSeekLast HReadSeekFirst HReadNext HModify HNbRec HOpen HConnectionOpen HGetCurrentPosition HPrevious HFirst HReset HSeek HSeekLast HSeekFirst HBackward HRestorePosition HSavePosition HNext HDelete HFoundinfo INIWrite INIRead InitRandom Reverse ListAdd ListSeek ListMoveLine ListInsert ListModify ListCount ListPosition ListSelect ListSelectMinus ListSelectCount ListSelectPlus ListDelete ListDeleteAll ln Log Now Upper MatAdd MatCopy MatCreate MatDeterminant MatWrite MatError MatExist MatInvert MatRead MatReadColumn: MatReadLine MatMultiply MatNbRow MatNbLine MatFloatAdd MatFloatMultiply MatFill MatDelete MatTranspose Max MemAdd MemCreate MemLast MemCurrent MemOut MemExist MemModify MemCount MemSetPosition MemPrevious MemFirst MemSeek MemRetrieve MemNext MemDelete MemDeleteAll MemSort MemFound MemKeyVal Middle Min Lower WindowCount BinaryNOT NumToString WeekNumber OKCancel BinaryOR BinaryXOR YesNo Open Easter ParentObject DecimalPart IntegerPart LoWord HiWord Position PositionOccurrence Power Root Reset Replace RepeatString HourGlass NoAccent NoSpace Sin ArrayAdd ArraySeek ArrayCopy ArrayInfo ArrayInsert ArrayCount ArrayDelete ArrayDeleteAll ArraySort ArrayToString ArrayToCSV Size Tangent CurrentTitle NextTitle Trace TypeVar DataType Val Thanks to WINDEV Mobile 15, you can easily develop applications for all the types of mobile devices. 48
WEBDEV The main evolution areas of WEBDEV 15 are as follows: security, look, referencing and SaaS. COMMON NEW FEATURES 318 Common new features WEBDEV 15 benefits from the common new features (see page 3 to 36) of version 15. Read about these new important features for WEBDEV 15! Inserting a video into a page: easy in version 15 The sales benefits of using videos has been clearly established now. In order to make inserting videos in sites developed with WEBDEV 15 easier, a new control is introduced. Among the supported formats: Flash (Flv), QuickTime (Mov), Microsoft (Wmv), The read, pause, fast forward, and so on features are supported. Benefits provided by this version 15 new feature: Easy display of videos. NEW CONTROLS 319 Video/Media player control The use of videos has increased tremendously on web sites: description of a product for sale, operating manual, use example,... 320 HideShow control Commonly used control on Web sites, it is now a native control in WEBDEV 15. It lets you expand and collapse a display area, by pushing 49
or stretching the adjacent controls. The display area can contains controls of different types: text, image, list,... 322 Linear looper control This new type of control lets you display a set of objects as a scrolling list. A scroll bar comes up automatically if needed. Each object can be made off several controls. The "Linear Looper Control" allows you to create user-friendly menus. Grouping by categories, lets you create smaller pages. Interactive presentation of a list of objects. 321 323 Evolved upload control WEBDEV already had an edit control that could take the standard HTML "upload" characteristics (so the web user could send files to the server). Version 15 brings a true "upload" control richer in features: file picker, multi-selection, progress bar, are supported out of the box. The size of uploaded files is not limited anymore. The upload can be performed in the background or on schedule. This feature requires the Flash player (version 7 or higher) on the web user's machine. Ajax looper control In version 15, the looper control in Ajax mode evolves. Among the new features: the looper control becomes multi-column the row height can be changed breaks are supported rows can be hidden at run time. Benefits provided by this version 15 new feature : Looper controls even more "web 2.0"! 324 Evolution of the existing controls An upload progress bar The following controls evolve in version 15: Looper control: the repetition direction can be set (horizontal or vertical). Rich HTML edit control and chart control: you can select the options to display in the toolbar. Image control: a new display mode allows for display in real size, dynamically, without any distortion of the image. 325 Spelled-out date edit control 2 other examples of upload progress bars The web user waits while watching a progress bar of his upload. Unlimited upload file size. The "Date" control offers a new mask in version 15: spelled-out dates: "DDDD MMMM DD YYYY". The mask is generated in browser mode: the web user can enter a date in any format and when exiting the control, the result will be displayed spelled out. The date will be returned to the program in the format specified in the 7 tabs (numeric, ). 50
Polish your sites' look... automatically The DateToString function, in browser mode, lets you convert a date from a numeric format to a spelled-out date. For example, 3/17/10 becomes Wednesday March 17 2010 or Wed March 17 2010. Better date display. NEW POSITIONING MODE: RELATIVE 326 relative positioning cell control The same site: the blocks are repositioned automatically based on the size changes of adjacent blocks. The page formatting is automatic and dynamic. All the elements in a page are always aligned in respect to each other when running. This new type of control of WEBDEV 15 allows for automatically and dynamically positioning in a preset area. If an element of the area has its size modified (image, etc.) or if it is closed by the user, the other elements are dynamically repositioned, based on the specified settings. The internal cell automatically adjusts within the dimension limits of the external cell. You can configure the alignment of the internal cell inside the external one, as well as the revolving margin. ANIMATION EFFECTS, AUTOMATIC TRANSITION The Web sites offer more and more transition effects between elements: the images that are loaded come up small then increase in size, some other ones glide from the side, Version 15 lets you add this type of effects in your sites without modifying the graphical elements. These animations are created by the AnimationPlay function of WLanguage. 327 Movement with speed variations A site All the information and all the images are dynamic and can be modified anytime when running. Some cells may become hidden. When moving an image or a cell (a section of a page, which may contain text and/or images) from one point to another, the movement speed may vary; start slow and arrive quickly, or start quickly and slow down (landing). 51
330 Dog-eared page This effect folds the page's corner. When rolling over the dog-ear, a section of the page underneath is automatically revealed. Display with acceleration effect Easy graphical effect. On the top right corner, we can see a "dog-ear" mark... 328 Clipping display effects This animation allows a page's section or an image to be revealed and/or hidden progressively. Easy graphical effect. 329 Fade in This effect gradually modifies the background opacity between 2 colors or 2 images. A fade in with the graphic background is possible...... and here's what it looks like when the mouse rolls over it: a cell or an image is displayed automatically Easy animation. GRAPHIC SKIN, GRAPHIC CHARTER The look of a WEBDEV 15 site is mainly defined by a combination of 3 elements: the style book the skin the page template. Example of fade in from one image to another Easy to perform animation. The style book includes: a style sheet images The skin contains: a choice of color palette some images The page template defines the page layout from elements in the style book. The site's look is now easily modified using these concepts. 52
Change skin easily 331 332 Style book Skin The "style book" concept lets you change the styles of the images, of the buttons, bands, cell background, etc... The concept of skin lets you change the color palette of a site, without changing the style book. A site using a given style book A site using a given skin The same site using a different style book: note the shape of the buttons that has changed, the look of the left tab,... Use styles and images that are stylistically compatible. The same site using a different skin: note the colors that change Use an harmonious color palette.
333 Several page templates per style book Other important change, that opens new formatting possibilities: the ability to use different preset page templates in the same site. The template will use the current skin and style book by default to create the page. Several types of preset pages. Choice of the table's aspec 334 Change the style book skin in edit mode In edit mode, you can change the skin and the style book dynamically, without affecting the formatting. Modify the site's look in one click. 335 CREATE PAGES WITH PRESET LOOKS Good-looking arrays by default: HTML arrays and tables Choice of the table's colors The look of the pages is improved without any effort. 336 Automatic gradient background In version 15, creating a gradient background only takes a few clicks. Simply use the "Border/Background" tab in the 7 tabs. This gradient background can be present for all the controls: edit, cell, static and as page background. When creating an HTML array or table, the editor offers some preset looks. The control will be immediately created with a polished look. The elements that vary are: cell background color background color of the first row and first column presence, color and aspect of the separators font... The colors suggested by default are in agreement with the site s skin (see new feature # 332). The "7 tabs" Presence of gradient background without having to manage any images or external tool. 54
337 Automatic frames LINUX Version 15 offers a large number of parameters for frames, for all the types of controls. A frame can have rounded corners, square corners, beveled corners, 3D effects, shadow, The colors offered depend on the site s skin (see new feature # 332). WEBDEV optimizes the size of the generated images. Frames can be used with any controls ("Border/Background" tab). Extensible frames are supported. 338 PDF reports in Linux In version 15, the reports created with the report generator run in Linux. The result is a PDF file, created on the server, that the user can download, view or print on his own computer. The power of the report generator becomes accessible from a Linux host. Some frame examples: first we need to choose the type... 339 Charts in Linux In version 15, the charts created via the "Chart" control run in Linux. The chart automatically comes up in the page. All the types of WEBDEV charts are supported The power of the chart generator becomes accessible from a Linux host. 340... then we choose the color. The color offered by default matches the project's skin Easy frame customization. Drawing: family of functions in Linux The drawing family of functions (dpoint, dbackground,...) is available for sites hosted on Linux. Ability to draw in Linux. 55
341 LINUX: 168 NEW FUNCTIONS to WB 168 new functions available in Linux Linux development now benefits from 168 new functions: Cancel Warning Beep FieldAlias ControlClone CurrentField FieldError FieldExist ControlGrayed ControlInvisible PreviousField FieldFirst NextField ControlDelete ControlOver ControlVisible LoadImage LoadImageSheet Confirm darc dcircle dchangemode dcopyblt dchord dstartdrawing denddrawing dbackground Dialog dline SetFocus dpoint dfont dpolygon dslice 508 Closes the current window and executes the code of the CANCEL type button. Displays a custom message in a system warning window. Emits a beep. Identifies, modifies or restores the file link of a control or a set of controls. Creates a new control. This new control is a copy of an existing control. Returns the name of the control being entered. Customizes the value displayed in the controls in case the value cannot be displayed. Tests whether a control exists (or a group of controls) in a window, a page or a report. Grays out a control or a group of controls. During this operation, an animation on the controls can be performed. Hides a control or a group of controls in a window. During this operation, an animation on the controls can be performed. Indicates the control to input before the current control. Returns the name of the first control in the specified window's navigation order. Identifies the control that will receive input next. Permanently deletes a record from a window, a page or a report. Identifies the control over which the mouse cursor is located. Shows a control or a group of controls in a window. During this operation, an animation on the controls can be performed. Loads an image into memory in order to use it later with the gimage function. Loads an image sheet into memory in order to use it later with the gimage function. Displays a message in a standard dialog box offering the answers "Yes", "No" or "Cancel" and returns the user's answer. Draws the arc of a circle or the arc of an ellipse in an image control. Draws a circle or an ellipse in an image control. Change the mode of the drawing used by the drawing functions (dline, drectangle, etc.). Copies an image found in an image control into another image control. Draws the chord of a circle (intersection between an ellipse and a straight line) in an image control. Indicates that the drawing functions that are going to be used are intended for the specified image control. Draws the chord of a circle (intersection between an ellipse and a straight line) in an image control. Declares the background color of rectangles, circles, etc. Displays a message box and returns the value of the clicked button. Draws a line in an image control. Gives focus to a window or a control. Draws a point in an image control. Declares the font that will be used by dtext. Draws a polygon in an image control. Draws part of a circle or part of an ellipse in an image drectangle drectanglegradient dsaveimage dsaveimagebmp dsaveimagegif dsaveimagejpeg dsaveimagepng dpen dtext ScreenFirst ScreenToFile ScreenToSource EnumControl Error WinAdaptSize CurrentWin WinInput WinStatus WinOutHeight WinOutWidth WinOutXPos WinOutYPos WinBackgroundImage WinInHeight WinInWidth WinInXPos WinInYPos PreviousWin WinScreenRectangle WinRedraw WinSize WinUsefulSize Close FileToScreen gradddata grstockadddata grloadparameter grcolor grseriescolor grcreate grcreatefont grgradient grdraw grdestinationcontrol grdonutholepercentage grclearpict grlinethickness control. Draws a rectangle in an image control. Draws a rectangle in an image control. Saves an image onto the hard drive. Saves an image into a BMP format file or into memory. Saves an image into a GIF format file or into memory. Saves an image into a JPEG format file or into memory. Saves an image into a PNG format file or into memory. Declares the default color and style for drawing lines, rectangles, circles, etc. Draws a text in an image control. Defines the next control that will be in input mode in the current window. Automatically initializes the memory value of a file's items with the corresponding value of the controls. Automatically initializes the memory value of a file's items with the values of the WLanguage variables. Returns the name of the Nth control of the chosen element. Displays a custom error message in a system error window. Adapts the size of the window to the contents of the controls. Identifies the window where data entry is being performed. Identifies the window containing the WLanguage code currently being executed. Gets or modifies a window's status. Returns the full height of a window. Returns the full width of a window. Returns the horizontal position of the upper left corner of a window in respect to the upper left corner of the screen. Returns the vertical position of the upper left corner of a window in respect to the upper left corner of the screen. Modifies the background image of a window and specifies the display mode for this image. Returns the internal height of a window (without the title bar or the frame). Returns the internal width of a window (without the frame). Returns the horizontal position of the upper left corner of the inside area (without the frame or the title bar) of a window in respect to the upper left corner of the screen. Returns the vertical position of the upper left corner of the internal zone (without the frame or the title bar) of a window in respect to the upper left corner of the screen. Identifies the window that was current before the window that is currently in data entry mode. Returns the coordinates of the screen that contains a window. Immediately redraws the window's controls that require a graphic update. Returns, modifies the display mode, the height or width of a window. Returns the useful size of an internal window with automatic scroll bars. Closes a WinDev window (returning a value if expected). Automatically initializes the controls with the values of the items associated with the current record. Adds a piece of data to a chart. Adds a piece of data to a stock chart. Restores a chart's drawing parameters. Returns and initializes the color of various chart elements. Initializes the color of a series or section of a chart. Creates a chart of the specified type. Creates a font for charts. Activates or deactivates the use of color gradient in a chart. Draws a chart based on the specified parameters. Defines an image control as the chart's target. Modifies the percentage corresponding to the radius of the hole in a donut type chart. Erases a chart's rendering (inside an image control or inside a window). Retrieves and/or changes the line thickness setting of a line type chart. 56
grcategorylabel Initializes the label for a category of data (or a sector) of a chart. grserieslabel Initializes the label of a chart's data series. grexist Tests if a chart exists in memory. grgraduate Specifies the frequency of the vertical/horizontal marks of a chart vertical/horizontal d un graphe. grcolumnspacing Specifies the amount of space before and after each data category in a bar chart or in a minimum/maximum stock chart. grincreasedata Adds a value to a chart's data. grinfoxy Returns some information about the series found at chart's point. grlegend Specifies the legend of a chart and its position. grlabel Specifies various additional legend parameters. grsmoothing Smoothes out a line type or scatter type chart using the cubic splines method. grautorefreshcategorylabel Identifies or defines whether the category labels are updated each time the chart is drawn. grautorefreshseries Identifies or defines whether a series Is updated each time the chart is drawn. grmask Formats the data displayed by the grlabel function or by the grtooltip function. grscatteradddataxy Adds a piece of data to a scatter type chart. grscatterseriescolor Initializes a series color for a scatter type chart. grscatterserieslabel Initializes a series' label color for a scatter type chart. grscatterlinkpoint Specifies whether to link the data points of a scatter type chart. grscatterpointsize Defines the size of the data points of a scatter type chart. grorientation Modifies the orientation of a chart axis. grorigin Modifies the starting and ending graduation on the horizontal or vertical axis of a chart. grparameter Gets and modifies a chart parameter. grlabelfont Modifies the font used for a chart's category labels. grlegendfont Modifies the font used for a chart's legend. grtitlefont Modifies the font used for a chart's title. graxistitlefont Modifies the font used for a chart axes' titles. grgridlines Displays or hides the grid in a chart. grraised Adds a 3 dimensional effect to your chart. grsaveparameter Saves a chart's parameter in a compressed format string. grpiestartangle Specifies the starting angle for the first slice of a pie chart, a semi-circle chart or a donut chart. grpiepullout Pulls out a section or all sections of a chart. grsourcecategorylabel Defines the source of the category labels. grsourceseries Defines the source of a series. groverlaychart Displays two charts of different types in the same chart. grdeleteseries Deletes a data series from a chart. grdeleteall Erases a chart drawing and deletes the chart. grimagesize Defines the size of the image containing the chart. grtitle Modifies the label and/or the position of a chart title. graxistitle Defines the title of one of the chart's axes. grtype Identifies or modifies a chart type. iconfigurereport Configures the printer by directly opening the configuration window (WinDev and WinDev Mobile). Iconize Minimizes a WinDev window. iendreport Forces the report printing to stop. iforcecomplement Forces the printing of a body complement block. inestedheaderfooter Prints (or not) the page header and footer of the nested report. ipageheightleft Calculates the available height remaining on the current page, taking into account the margins defined. iprintblock Forces the printing of a block of the report currently being printed. iprintbodycomplement Forces a body complement block to print, specifying the height of the complement block. iprintreport Prints a report built with the report editor. iinitreportquery Initializes the query linked to the report (case of a query with parameters). iinitreportqueryconnection Initializes the query linked to the report (case of a specific connection). ilistnestedreports Returns the list of nested reports being printed. Info Displays a custom message in a system information window. BitmapInfo Retrieves the characteristics of an image file or a PDF file. iparameterreport Configures the printer by directly opening the configuration window. ireportprintingstatus Returns the status of the current print job. isubstblock Substitutes another block for a report block, while the report is printing. ipageend Forces a page break while a report is printing. Maximize Displays a WinDev window in its maximized size. Multitask Pauses and returns control to Windows and/or WLanguage. MultitaskRedraw Immediately redraws the window's controls that require a graphic update. WindowCount Calculates the number of windows of the current application that are open. OKCancel Displays a message in a standard dialog box that offers the "OK" and "Cancel" answers and returns the user's choice. YesNo Displays a message in a standard dialog box offering the answers "Yes" and "No" and returns the user's answer. Open Opens a WinDev modal window. OpenChild Opens a non-modal child window. OpenSister Opens a non-modal sibling window. ParentObject Identifies the "parent" of a graphical object: control, column, window, page,... Reset Reinitializes all the controls or a group of controls in the current window or the current page. ReturnToCapture Allows you to resume input in the specified control, window or page. Restore Displays a WinDev window in its initial size. HourGlass Transforms the mouse cursor (stylus cursor) into an hourglass and vice versa. Input Displays a message asking the user to enter some information. ServiceRefresh Asks a service to read its configuration information. ServiceControl Sends a control message to a service. ServiceUninstall Uninstalls a service. ServiceInstall Installs a service using the information provided in the members of the Service variable. MouseXPos Returns the horizontal (X) position of the mouse cursor in respect to the control or window. MouseYPos Returns the vertical (Y) position of the mouse cursor in respect to the control or window. SysEnvironment Returns the operating system's environment variables for the current machine. Delay Temporarily stops the execution of a program. CurrentTitle Modifies the current window's title and the title bar. NextTitle Modifies the title of the next window to open. 509 APPLICATION RAD Site generation in Modifiable RAD format The application RAD offers ready-to-use site templates. These sites are now offered in Modifiable RAD format, which allows analysis modifications to be automatically applied to the pages. Site customization is now much easier. Easy evolutions in RAD. 57
SITE TEST ("GO") PHP 510 Chrome, Opera and Safari When testing a site, the "GO" mode offers to test the site on each of the browsers installed on the machine. This way it is easy to test a site in Internet Explorer, Firefox, Chrome, Opera, Safari. There are a large number of new PHP features in version 15: simplified multilanguage, simplified XML management, new native accesses, simplified n-tier architecture, exceptions and errors management, Version 15 is a good match for PHP! 512 PHP: cooperative environment Interactive test easy on all the browsers. 511 Automatically check the complete site configuration before doing GO When clicking the GO button, before starting the actual test of the site, WEBDEV 15 checks the configuration of the different elements needed to run the site on the browser. Among the checked elements: configuration of the Web server; configuration of the WEBDEV application server; configuration of the AWP protocol (if used);... This is useful for identifying the type of error: site configuration or programming. Detection of potential configuration errors. When developing a project intended to be generated in PHP, the environment ("7-tab" window) points out the potential features that should not be used in this mode; this allows for a better adaptation of the applications (see new feature # 037). Makes switching existing code to PHP easier. 513 PHP: thumbnail control The thumbnail control automatically manages the display of an image and its thumbnail in a single control. The thumbnail control is available in PHP. Eliminates code lines. 514 PHP: generated image control The "generated image" control is used to display an image coming from a memo item in a database for instance. New code display capabilities. 515 PHP: evolution of the controls The following controls evolve: 58
Combo box with custom first row Menu: new server click process New processes for tables and looper controls row display process filtering process Better compatibility. 516 PHP: new supported type The connection type is supported in version 15. Better compatibility. 517 PHP: New properties 6 new properties are introduced in PHP:..StoredValue..Connection..Image..Thumbnail And on queries:..name..type Simplified programming. 518 PHP: new supported syntax New syntax are now supported in PHP: The MySource keyword is supported. The indirection parameters are supported, which allows for optimization of the indirection. New syntax for FOR EACH are supported: FOR EACH <File> ON FOR EACH <File> WITH FOR EACH ROW <n> OF <Control> FOR EACH SELECTED ROW <n> OF <Control> Management of exceptions and errors (in PHP 5) More powerful language. 519 PHP: native access PHP already benefits from native accesses to third-party databases such as MySQL and AS/400. In version 15, native access to Oracle and PostgreSQL are introduced. Open to third-party databases. 520 PHP: optional parameters in queries Optional parameters (the absence of a parameter is interpreted as a "null" value for this parameter) are accepted in database queries. More flexible language. 521 PHP: Miscellaneous Easier installation on some providers (See new feature # 581). Automatic installation of your sites. 522 to 566 WB supported new functions PHP gains 45 new functions: ChangeSeparator dbginfo Deserialize EmailReset InPHPSimulatorMode ErrorThrow ErrorPropagate ExceptionInfo ExceptionPropagate FileToMemory fnameoffile fopentempfile Changes the value of the separators (for decimal places or thousand places) used in numeric masks for localization. Retrieves a debug information. Deserializes a buffer or a character string containing the data from a class, a structure, an array (including associative arrays), a queue or a stack and their elements. Reinitializes the variables in the e-mail structure. Returns True if the execution in progress is run from the PHP simulator mode. Triggers a non-fatal error. Propagates a non-fatal error that could be processed by the calling code, if non-fatal error management is enabled for this piece of code (in the code editor, or by using the ErrorChangeParameter function). Retrieves information about the current exception. Propagates an exception. Automatically initializes the values of the members of a structure or a class with the values of the items for the current record of a file. Returns the name of an external file currently open. Creates and opens a temporary file. 59
fmovedir fdirsize HashString HashFile HashCheckString HashCheckFile HTMLToText ImagePosX ImageYPos LanguageToCharset LanguageToNation MemoryToFile Nation NationToLanguage ControlTab PageUse Serialize TableEnableFilter TableDisableFilter TableColumnSubscript TablePosition TableToText TableToXML Use WinDevVersion WindowsVersion XMLWrite XMLExecuteXPath XMLRead XMLResult LooperRecNum LooperPosition LooperToXML As you can see, the version 15 offers more than 555 news features... 567 Moves a directory and its contents. Returns the size of a directory in bytes. Calculates the Hash code of a character string based on a set algorithm. Calculates the Hash code of a file based on a set algorithm. Checks the Hash code of a character string based on a set algorithm. Checks the Hash code of a file based on a set algorithm. Converts an HTML string or HTML buffer into a text string. Returns the horizontal (X) position of the mouse cursor in respect to the given image contro. Returns the vertical (Y) position of the mouse cursor in respect to the given image control. Returns the character set corresponding to a language. Returns the country (nation) corresponding to a language. Automatically initializes the memory value of a file current record's items with the value of the members of a structure or a class. Defines or identifies the display language (labels, messages, etc.) used for windows, pages, reports and controls. Returns the language corresponding to a nation. Returns the name of the Tab control that contains the specified control. Displays a WebDev page in the Web user's browser and closes all the current page contexts. Transforms the following elements into a specific format: a structure (and its sub-elements), a class (and its subelements), an array(including associative arrays), a queue, a stack. Adds a user filter to a table column. Cancels a user filter on a column or on all the columns of table. Returns the index of a table's column. Displays a table starting from a specified row or returns the index of the first row displayed in a table. Creates a character string using the data from a table (Treeview table, browsing table or memory table). Creates an XML file using the data from a table (treeview table, browsing table or memory table). Opens a WinDev window and closes all the other windows that were previously opened. Returns the version number for the WD140VM DLL of WinDev or WebDev. Returns the execution mode of Windows. Creates or modifies an XML element, or the attribute value of an XML element. Executes an XPATH query in an XML document. Returns the value an XML element, or the value of an XML element s attribute. Gives the result of an XPATH calculation query. Returns the number of the current record in a file Looper control. Moves the scroll bar of a memory looper control to display a specific row or returns the index of the first row displayed in a memory looper control. Creates an XML file with the data of a looper control (browsing looper control or memory looper control). LANGUAGE Browser events on controls In browser code, in version 15, you can perform an action on any JavaScript event (even if the origin of this object is not WEBDEV). For example: resizing the browser, or moving a scroll bar. This feature also lets you overload the standard event processing. Even more granular management of events in the browser. 568 KeyCalcActivationKey KeyCompareKey KeyGenerateInitialKey KeyGetIdentifier StringStartsWith StringEndsWith ChronoPause ChronoResume COMCallMethod COMCreateInstance dbgenableaudit dbgstartmemorydiff dbgenableaudit WLanguage: New functions in WEBDEV dbgwritecommentaudit dbgauditstatus dbgendmemorydiff dbgauditoption dbgsavedebugdump dbgsavememorydump diffapply diffcreate GetGUID EmailGetAll InServiceMode InPHPSimulatorMode fcreatelink FileToArray fmemcreate fmemexist fmemopen fparentdir fseparator HAddScheduledOptimization HAddScheduledBackup HChangePassword Calculates the activation key based on the initial key. Compares an initial key with an activation key. Generates the initial key (license number) for the activation system. Retrieves the identifier that was used to generate the initial key. Checks whether a character string starts with one of the specified strings. Checks whether a character string ends with one of the specified strings. Pauses a stopwatch. Restarts a stopwatch that was paused by the Chrono- Pause function. Calls a method of a COM object. Creates a COM instance. Enables the runtime audit. Starts a diff operation on the memory used by the application. Triggers a runtime warning to send back to the runtime audit. Writes a comment to send to the runtime audit. Retrieves or modifies the runtime audit's status. Ends a diff operation of the memory used by the application. Retrieves or modifies the runtime audit's options. Creates a dump of the application's status. Returns a memory dump for the application. Applies the difference buffer to a specific buffer. Compares two buffers and creates a buffer containing the differences between these two buffers. Returns a GUID (globally unique identifier). Retrieves and reads all the e-mails found in the session. Returns True if the execution in progress is run from a service. Returns True if the execution in progress is run from the PHP simulator mode. Creates a link on a file. Fills an array with the content of a data file or the content of a HyperFileSQL query. Creates a shared memory zone. Tests if a shared memory zone exists. Opens a shared memory zone. Returns the parent directory of the directory passed as parameter. Standardizes the separators used in a file path. Adds an optimization task of the HyperFileSQL Client/Server data files. Adds a schedule for a complete or differential backup. Changes the password of a HyperFileSQL Client/Server data file. HListScheduledOptimization Lists the optimization tasks of the HyperFileSQL Client/Server tables. HListScheduledBackup Lists the complete and differential backups that have been scheduled. HListServer Lists the HyperFileSQL servers installed on a machine. HDeleteScheduledOptimization Deletes an optimization task of the HyperFileSQL Client/Server data files. HDeleteScheduledBackup Deletes a schedule for a complete or differential backup. icolumnnum Returns the column number of the current column (multicolumn reports). 60
Reference each page of your sites in Google, Yahoo... JSEvent JSEndEvent ExeRemoteRun ClipboardUnicode NerworkDomainName SaaSConnect SaaSDisconnect UploadCurrentFile UploadStart UploadDelete UploadDeleteAll UploadSizeSent UploadCurrentFileSizeSent UploadSizeCurrentFile UploadSize UUDecode UUEncode XMLInitialize XMLOpen Associates a browser function with an event on a browser object. Deletes the association between a WLanguage browser function and the event. Starts the execution of a remote program and/or under a different user account. Returns the content of the clipboard in Unicode format. Returns the name of the domain to which the computer belongs. Lets you authenticate yourself with a SaaS server. Lets you disconnect from a SaaS server. Identifies the file being uploaded. Starts an asynchronous upload in an upload control. Deletes a file from the list of files to upload. Deletes all the files from the list of files to upload. Specifies the size sent by the upload control. Specifies the size sent by the upload control for the current file. Specifies the total size to send by the upload control for the current file. Specifies the total size to send by the upload control. Decodes a character string in UUEncode format. Encodes a character string in UUEncode format. Initializes an XMLDoc type variable from a URL, a file or a buffer Opens an XML document from an XML file on disk. REFERENCING IN AWP MODE The benefit of the 2nd form of URL is that the page is better referenced by search engines; here the "MTN-Rockrider" item will be referenced directly by the search engine, and a user searching for this item will see this page in the result. Before, After... Better natural (free) referencing of your sites' pages. 570 Better page referencing Displaying a page accepting parameters was only possible through programming. Version 15 of WEBDEV now allows you to specify these parameters directly from the "7 tabs". The link to the page to display can be referenced now (with its parameters) by the search engines. Site and page referencing is a vast subject. It was discussed during the last Tech TDF, and it s a subject that gathered tremendous interest (result of the post presentation polls). WEBDEV already offers a large number of automated aids to automatically reference your sites' pages via the referencing wizard. A large number of parameters are used for referencing, and among these parameters, the content of the page's address line. This version 15 brings new automated features that will improve the referencing of your sites and pages. 569 URL rewriting in AWP mode In version 15, you can change the syntax of the URL for each page directly from the WEBDEV 15 environment, independently from the Web server. For example, the following URL: http://www.mysite.com/en/mycatalog.awp? Category=MTN&Product=Rockrider can be changed to: http://www.mysite.com/en/mtn-rockrider.awp or http://www.mysite.com/en/mtn/rockrider.awp What we're all looking for: a WEBDEV site's page in first position in Google Better link referencing. 61
571 Warning/advices to optimize link referencing If the WEBDEV 15 code editor detects in the code of an application a call to PageDisplay that could be replaced by an editable link (see above), it displays a warning to suggest the modification, and allows for a better referencing this way. Help with link referencing. 572 better referenced menu In a menu, the opening of a page can now be defined from the 7 tabs, without using any server code (PageDisplay). Simply define the page in the "Action" choice of the "General" tab. WEBDEV 15 then generates a referenceable link. Better menu referencing. 573 Not referencing a page It was already possible to request not to reference a page in the page's definition. In version 15, you can request not to reference a page directly from the referencing optimization wizard. Multiple non-referencing from the wizard. 574 Referencing the " " and "_" signs In a URL, the search engines usually interpret the "-" sign as a separator, and the "_" (underscore) sign as being part of a word. A page name containing these signs may not be referenced properly! "MTN-Bike" will be different from "MTN_Bike" (here, MTN-Bike is suggested as page name since both MTN and Bike will be referenced). When WEBDEV 15 detects this sign, a warning is generated to insure that the term used for referencing is the one you want. If a space is detected in a page name, it will need to be replaced by a "-" or "_" sign. Better referencing. 575 URL REWRITING Classic mode URL rewriting In version 15, you can hide the name of the application server in an AWP site's URL (see new feature # 569), but also in a classic mode site. A URL that was displayed as: becomes: This rewriting option is activated in the project's parameters. It is the new default option in classic mode. This works on web servers from Apache and IIS starting with version 7. Also available in AWP mode (see new features # 569). URL easier to read. 62
Create SaaS applications SAAS SaaS (acronym for Software as a Service) is a software delivery mechanism. Customers don't pay to own the software itself but to use it. Data are stored on the software provider's servers and not on the company's computer anymore. Version 15 of WEBDEV provides the necessary tools to set up SaaS solutions. The SaaS administrator lets you describe the use authorization. The management of the customer accounts lets you define the site's use rules: authentication, number of authorized connections, connection time, This management is done directly from the administrator s interface, or via WLanguage functions (new Saas family). When used, the site checks the connection's authorization and the user's rights via a set of WLanguage functions. Easy SaaS implementation. 577 SaaS administration APIs The administrator software can work without any human intervention, which allows for the creation of accounts in real time. The WLanguage functions available to manage the accounts are (non-exhaustive list): creation and deletion of accounts account modification: add users, use time, number of users, initialization of a database by cloning of a reference database definition of the connection to the database... Automation of the rights management. 576 578 SaaS administrator SaaS authentication APIs The administrator software can work with or without human intervention. It lets you create company accounts, user accounts based on an initial setting. The interface is offered in Web mode. Among the elements to manage in a site offered as SaaS, we find: Connection and disconnection Company identifier Company password 63
User identification User password Verification of the IP address Maximum number of connections Maximum connection time Authorized connection times... Easy SaaS. 579 IPHONE iphone: displaying page in full screen The special iphone section of the 7 tabs has a new choice in version 15. It is the ability to display a page in full screen. An additional metatag is available to manage the full screen mode. 580 Any WEBDEV application server is also a webservice server New feature of version 15, the WEBDEV application server is also a Webservice server (see new features # 103 to 106). Easier hosting of Webservices. 581 DEPLOYMENT PHP and static sites: Targeted deployment on Free, OVH,... The installation of PHP sites or static sites on the Free or OVH providers is made easier in version 15. The relevant wizards are specific to each provider. Easier deployment. STATISTICS 582 New statistical tool Display immediately adapted. APPLICATION SERVER A new statistical tool is provided with WEBDEV 15. It works on sites developed in classic mode or in AWP mode. Here are the main features of this new tool: Dashboard It provides a global view of the site over a given period: number of visitors, number of pages seen, average number of pages per visitor, number of visitors per day, dates of the last log import, keywords used in search engines to find the site. 64
The statistics home page Search network Enables you to find out what searches are performed in the most common search engines (Google, Bing, Yahoo, Orange, AOL, etc.) that directs users to your site. The results are detailed per search engine and per keyword for the given time period. Technical data Displays the technical data about visitors (browser used, operating system used) for the given time period. Traffic This module lets you see the site and page's traffic between 2 dates (traffic over the year, by month, by week, by date, by day of the week and by time). Geographical view Lets you find out the geographical distribution of the users. The breakdown is done by visitor country. Visitors path Lets you view the navigation followed by your users on your site, the amount of time spent on each page and the total time spent navigating the site. Planning You can plan the import of a site's log on a one-off basis, daily, weekly or monthly. Others: All the modules of the statistics tool also display charts to provide a better view of the data. You can send a status report of the log import by e-mail. Easily follow your sites' activity. Also works in AWP mode. 583 And many other new features...and many other features, that we let you discover when you receive your version 15. 65
WEBDEV 15: the elegance of the design, the efficiency of the code, the success of your sites. Technology doesn't wait : order your version 15 today Version 15 of our products has been announced. New versions are announced now so you can plan on them when developing, and so you don t spend time developing features that will be included in the product. Some functions may not be available right away when the version is shipping, but will be offered later as downloads. Also note that additional improvements and new features other than the ones described in this document may be available in the new version. WINDEV, WEBDEV and WINDEV Mobile are professional software. Despite the care taken in creating this document, it is not contractual. Screen shots and lists are for information purposes only. Do not hesitate to contact us for any additional information or to get a confirmation about a feature. All the trademarks used are registered trademarks of their respective owners. 66
WINDEV 15 solid technology for solid projects www.windev.com
Faster and safer applications thanks to version 15. www.windev.com