ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV and WINDEV Mobile 2024 feature!
Help / New features
  • Overview
  • New WLanguage functions
  • Improved WLanguage functions
  • New WLanguage properties
  • Improved WLanguage properties
  • New advanced types of WLanguage
  • Improved advanced WLanguage types
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Overview
In version 2024, new functions, properties and data types have been introduced and some have been improved.
New WLanguage functions
Universal Windows 10 App New WLanguage functions (prefix syntax) for Universal Windows Platform applications:
Belgium.CheckTaxNumberChecks the validity of a Belgian tax number.
Brazil.CheckTaxNumberChecks the validity of a Brazilian tax number.
Canada.CheckTaxNumberChecks the validity of a Canadian tax number.
ConvexEnvelopeShapeCalculates the convex envelope of the specified Geometry.
CorregeFormAllows you to obtain a corrected version of the specified Geometry.
CurrentDayReturns the number of the current day in the current month.
DateToDayOfYearReturns the day of the year corresponding to a given date.
EqualFormFinds out whether two Geometry s are spatially equal, i.e. whether the first Geometry is included in the second, and whether the second is included in the first.
FormAireCalculate the area of a given Geometry.
FormContainsDetermines whether an Geometry A contains an Geometry B.
FormDeserializeWKT2DBuilds a 2-dimensional Geometry from a textual representation in WKT format.
FormDeserializeWKTGeoBuilds a geographic Geometry from a textual representation in WKT format.
FormDifferenceReturns the Geometry Receiver corresponding to the difference between two Geometry s.
FormDisjointDetermines whether two geometries are disjoint, i.e. whether their intersection is empty.
FormIsValidChecks whether the specified Geometry is valid within the meaning of the OGC standard.
FormSerializeWKTSerialize an Geometry in Well Known Text (WKT) format.
FormUnionReturns the Geometry Receiver corresponding to the union between two Geometry s.
France.CheckTaxNumberChecks the validity of a French tax number.
GeometryCoverPermet de savoir si tout point de la forme B se trouve à l'intérieur ou dans le contour de la forme A. C'est équivalent à renvoyer vrai s'il n'existe aucun point de B dans l'extérieur de A.
GeometryCoveredByPermet de savoir si tout point de la forme A se trouve à l'intérieur ou dans le contour de la forme B. C'est équivalent à renvoyer vrai s'il n'existe aucun point de A dans l'extérieur de B.
GeometryCrossPermet de savoir si deux formes se croisent. La notion de croisement est très spécifique. Deux formes se croisent si : - Les intérieurs de la forme A et de la forme B ont au moins un point en commun. - L'intérieur de A n'a pas tous ses points dans l'intérieur de B, et vice-versa : A ne doit pas contenir B et B ne doit pas contenir A. - L'intersection des intérieurs doit avoir une dimension inférieure au maximum de la dimension des arguments.
Exemple 1 : deux polygones (qui sont donc de dimension 2) ayant une partie de leur intérieur en commun ne se croisent pas, car leur intersection est également un polygone, dont la dimension est égale à la dimension des deux arguments (2). Toutefois, ces polygones se chevauchent et s'intersectent.
Exemple 2 : une polyligne passant au travers d'un polygone mais ayant des points hors de ce polygone croise le polygone, car l'intersection entre les deux formes est une polyligne, dont la dimension est inférieure à celle du polygone.
GeometryDistanceCalcule la distance entre deux formes. Pour les formes autres que les points, cette distance correspond à la distance entre les points les plus proches que l'on puisse trouver entre les deux formes.
Pour les formes 2D, calcule la distance en utilisant la norme euclidienne (Pythagore). La distance est renvoyée dans la même unité que celle donnée aux coordonnées des points.
Pour les formes géographiques, utilise le modèle approché de la Terre WGS84 pour prendre en compte sa courbure. La distance est renvoyée en mètres.
GeometryIntersectVérifie si deux formes ont une intersection non vide. Cette fonction ne renvoie pas la forme résultant de l'intersection, mais seulement si l'intersection existe ou non. Elle est donc beaucoup plus rapide que la fonction de calcul d'intersection entre deux formes.
GeometryIntersectionCalcule l'intersection entre la première forme passée en paramètre et la seconde. Cela renvoie une nouvelle forme, qui contient une collection de formes d'un type donné : MultiPoint, MultiPolyligne, ou MultiPolygone.
Dans le cas où l'intersection entre deux formes est constituée d'un seul élément, il s'agit tout de même d'une collection, avec un seul élément. Dans le cas où l'intersection est vide (si les géométries passées en paramètre sont disjointes), la collection renvoyée est vide. Dans le cas où le résultat de l'intersection est disjoint (par exemple en faisant l'intersection de deux polygones en "U"), la collection contient plusieurs éléments.
Si le type des formes passées en paramètres est connu, alors le type du résultat est également pré-déterminé. La plupart des applications géospatiales ne travaillant pas avec des colonnes de données hétérogènes (rubrique de type "Forme" autorisant de mixer des points, lignes, polygones etc au sein d'une même rubrique), il n'y a donc en général pas besoin de vérifier le type des formes renvoyées par la fonction.
GeometryOverlapPermet de savoir si les formes se chevauchent, c'est-à-dire si elles ont la même dimension et que leurs intérieurs ont une intersection non vide de la même dimension que les formes passées en paramètres, différente des deux paramètres. Il faut de plus que chaque forme ait au moins un point à l'intérieur de l'autre.
GeometrySerializeDSVSérialise une forme géométrique en utilisant le format DSV spécifié. Ce format permet de choisir quels éléments textuels séparent les différents éléments géométriques dans le texte.
Important : la chaîne renvoyée par cette fonction est TOUJOURS une chaîne ANSI ne pouvant contenir que des caractères ASCII. Il en va de même des séparateurs, qui doivent tous être des chaînes ANSI avec seulement des caractères ASCII.
GeometryTouchRenvoie vrai si les deux formes se touchent.
Deux formes se touchent si les contours des deux formes ont une intersection, mais que les intérieurs n'ont *pas* d'intersection. Deux formes se touchent si elles ont un point ou un segment de leurs contours en commun.
Voir les images ci-dessous pour un exemple de chacune des trois situations.
GeometryWithinRenvoie vrai si la forme A est complètement dans la forme B, c'est-à-dire que B contient complètement A. En détail : - Il n'existe pas de point de A dans l'extérieur de B : tout point de A est soit dans l'intérieur de B, soit dans son contour. - Il existe au moins un point de l'intérieur de A dans l'intérieur de B.
Germany.CheckTaxNumberChecks the validity of a German tax number.
grColumnBarTypeDefines the type of bar used in a column chart.
HDataSourceKnownDetermines if a data source has been initialized.
HInfoLawRubricAllows you to find out which rights have been granted to a section.
HListSpatialKeysReturns the spatial keys of a data file (used in a query or view) recognized by the HFSQL engine.
HModifyRightRubricModifies the rights granted on an a data file HFSQL Client/Server item for a user or group.
HQueryExecutedDetermines if a query has been executed.
Italy.CheckTaxNumberChecks the validity of an Italian tax number.
Linestring2DAddPointAjoute un nouveau point dans une polyligne 2D.
LinestringGeoAddPointAjoute un nouveau point dans une polyligne géographique.
PerimeterFormCalculates the perimeter of a given Geometry (Polygon or multiPolygon).
ShapeLengthCalculate the length of a given Geometry.
Spain.CheckTaxNumberChecks the validity of a Spanish tax number.
Switzerland.CheckTaxNumberChecks the validity of a Swiss tax number.
SymmetricDifferenceFormCalculate the symmetrical difference between two geometries.
UnitedStates.CheckTaxNumberChecks the validity of a US tax number.
UTF8ValidChecks the validity of a UTF-8 string.
New WLanguage functions (prefix syntax) for Universal Windows Platform applications:
<Buffer type>.UTF8ValidChecks the validity of a UTF-8 buffer.
<Chart>.ColumnBarTypeDefines the type of bar used in a column chart.
<Source>.DataSourceKnownDetermines if a data source has been initialized.
<Source>.ListSpatialKeysReturns the spatial keys of a data file (used in a query or view) recognized by the HFSQL engine.
<Source>.QueryExecutedDetermines if a query has been executed.
<Variable Polygone2D>.AireCalcule l'aire d'une géométrie en 2 dimensions.
<Variable Polygone2D>.ChevauchePermet de savoir si deux géométries se chevauchent.
<Variable Polygone2D>.ContientPermet de savoir si une géométrie A contient une géométrie B.
<Variable Polygone2D>.CorrigePermet d'obtenir une version corrigée de la géométrie spécifiée.
<Variable Polygone2D>.CouvrePermet de savoir si une géométrie A couvre une géométrie B.
<Variable Polygone2D>.DifférenceRenvoie la géométrie correspondant à la différence entre deux géométries.
<Variable Polygone2D>.DifférenceSymétriqueCalcule la différence symétrique entre deux géométries.
<Variable PolygoneGéo>.AireCalcule l'aire d'une géométrie en coordonnées géographiques.
<Variable PolygoneGéo>.ChevauchePermet de savoir si deux géométries se chevauchent.
<Variable PolygoneGéo>.ContientPermet de savoir si une géométrie A contient une géométrie B.
<Variable PolygoneGéo>.CorrigePermet d'obtenir une version corrigée de la géométrie spécifiée.
<Variable PolygoneGéo>.CouvrePermet de savoir si une géométrie A couvre une géométrie B.
<Variable PolygoneGéo>.DifférenceSymétriqueCalcule la différence symétrique entre deux géométries.
<Variable Polyligne2D>.AjoutePointAjoute un nouveau point dans une polyligne en 2 dimensions (polyligne géométrique).
<Variable PolyligneGéo>.AjoutePointAjoute un nouveau point dans une polyligne géographique.
InfoLawRubricAllows you to find out which rights have been granted to a section.
ModifyRightRubricModifies the rights granted on an a data file HFSQL Client/Server item for a user or group.
DifferenceReturns the Geometry Receiver corresponding to the difference between two Geometry s.
Improved WLanguage functions
Universal Windows 10 App The following WLanguage functions have been improved:
dArcNew syntax to draw an arc within an area defined with a variable of type Rectangle.
dChordNew syntax to draw a chord within an area defined with a variable of type Rectangle.
dCircleNew syntax to draw a circle within an area defined with a variable of type Rectangle.
dCopyNew syntax to copy an area defined with a variable of type Rectangle.
dCropNew syntax to crop an image within an area defined with a variable of type Rectangle.
dSliceNew syntax to draw a section within an area defined with a variable of type Rectangle.
HBackupSpatial indices are taken into account when making backup copies.
HCopyFileSpatial indices are taken into account when copying data files.
HDeleteFileSpatial indices are taken into account when deleting data files.
HDuplicateDatabaseSpatial indices are taken into account when duplicating databases.
HIndexNew constant for reindexing spatial indices.
HInfoFileNew constant to manage spatial indices.
HRestoreBackupSpatial indices are taken into account when restoring backup copies.
NumToStringAbility to set the conversion format using a variable of type NumericFormat.
XMLOpenNew parameter to specify the XML code analysis mode.
New WLanguage properties
Universal Windows 10 App New WLanguage properties for Windows Store applications:
RègleAnonymisation
Improved WLanguage properties
New advanced types of WLanguage
Universal Windows 10 App New advanced types available for Windows Store apps:
MultiPoint2DPermet de stocker un ensemble de Points2D. Il s'agit d'une collection de points : contrairement au Polyligne, les points ici ne sont pas connectés entre eux.
Un MultiPoint peut notamment servir à stocker un ensemble de points dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par point. Utile dans le cas où l'ensemble de points en lui-même est l'entité manipulée par un programme, et non pas chaque point indépendamment.
MultiPointGéoPermet de stocker un ensemble de PointsGéo. Il s'agit d'une collection de points : contrairement au Polyligne, les points ici ne sont pas connectés entre eux.
Un MultiPoint peut notamment servir à stocker un ensemble de points dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par point. Utile dans le cas où l'ensemble de points en lui-même est l'entité manipulée par un programme, et non pas chaque point indépendamment.
MultiPolygone2DStocke un ensemble de polygones 2D sans intersections entre eux.
Un MultiPolygone peut notamment servir à stocker un ensemble de polygones dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par polygone. Utile dans le cas où l'ensemble de polygones en lui-même est l'entité manipulée par un programme, et non pas chaque polygone indépendamment.
Un MultiPolygone doit vérifier un ensemble de propriétés pour être considéré correct / valide : - Tous les polygones appartenant à un multipolygone doivent être corrects, sans quoi l'ensemble du multipolygone est considéré comme incorrect. - Il ne doit pas y avoir d'intersection entre les *intérieurs* des polygones compris dans un multipolygone. - Les contours de deux polygones d'un même multipolygone peuvent avoir des intersections *ponctuelles* : ils ne peuvent pas avoir un segment continu en commun. Deux polygones ne peuvent donc pas se toucher en un nombre infini de points.
La validité d'un multipolygone peut être vérifiée à l'aide de la fonction FormeEstValide.
MultiPolygoneGéoStocke un ensemble de polygones géographiques sans intersections entre eux.
Un MultiPolygone peut notamment servir à stocker un ensemble de polygones dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par polygone. Utile dans le cas où l'ensemble de polygones en lui-même est l'entité manipulée par un programme, et non pas chaque polygone indépendamment.
Un MultiPolygone doit vérifier un ensemble de propriétés pour être considéré correct / valide : - Tous les polygones appartenant à un multipolygone doivent être corrects, sans quoi l'ensemble du multipolygone est considéré comme incorrect. - Il ne doit pas y avoir d'intersection entre les *intérieurs* des polygones compris dans un multipolygone. - Les contours de deux polygones d'un même multipolygone peuvent avoir des intersections *ponctuelles* : ils ne peuvent pas avoir un segment continu en commun. Deux polygones ne peuvent donc pas se toucher en un nombre infini de points.
La validité d'un multipolygone peut être vérifiée à l'aide de la fonction FormeEstValide.
MultiPolyligne2DStocke un ensemble de polylignes 2D non connectées entre elles.
Un MultiPolyligne peut notamment servir à stocker un ensemble de polylignes dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par polyligne. Utile dans le cas où l'ensemble de polylignes en lui-même est l'entité manipulée par un programme, et non pas chaque polyligne indépendamment.
MultiPolyligneGéoStocke un ensemble de polylignes géographiques non connectées entre elles.
Un MultiPolyligne peut notamment servir à stocker un ensemble de polylignes dans un seul et même enregistrement HFSQL, sans avoir à utiliser un enregistrement par polyligne. Utile dans le cas où l'ensemble de polylignes en lui-même est l'entité manipulée par un programme, et non pas chaque polyligne indépendamment.
NumericFormatThe NumericFormat type allows you to define all the characteristics of the format to be used with the NumToString function.
Point2DDécrit une position dans le plan 2D. Utilisé pour les données spatiales
PointGéoDécrit une position sur une approximation de la sphère terrestre, en coordonnées géographiques (latitude et longitude).
Les calculs effectués avec les formes géographiques utilisent le système WGS84, système de référence notamment utilisé par le GPS : les points géographiques correspondent donc à des "points GPS".
Polygone2DPermet de stocker un polygone dans le plan. Un polygone est constitué d'un contour, qui est une polyligne 2D simple et fermée, et optionnellement d'un ou plusieurs trous, qui sont également des polylignes 2D simples et fermées.
Les trous ne peuvent pas être imbriqués les uns dans les autres ni avoir d'intersections entre eux ou avec les contours.
Un polygone doit vérifier un ensemble de propriétés pour être considéré correct / valide : - Son contour est une polyligne simple (pas d'intersection avec elle-même) et fermée (son dernier point est égal à son premier point). - Les points du contour doivent être ordonnées dans le sens des aiguilles d'une montre. Les trous, eux, doivent être dans le sens inverse des aiguilles d'une montre. - Ses trous sont également simples et fermés. - Les trous d'un polygone ne peuvent pas se croiser. Ils peuvent avoir des points d'intersections, mais ne peuvent pas avoir de points de leurs intérieurs en commun. Les intersections éventuelles sont donc toutes tangentes. Cela concerne également les intersections entre le contour et les trous d'un polygone. - Un polygone ne peut avoir de "pics" / "lignes" sans intérieur (voir images exemples). - L'intérieur d'un polygone est un ensemble connexe de points. C'est-à-dire qu'à partir d'un point de la l'intérieur d'un polygone, on doit toujours pouvoir aller sur tous les points de cet intérieur du polygone sans jamais avoir besoin de traverser l'extérieur. Un trou ne doit donc jamais "couper en deux" l'intérieur d'un polygone (voir image 3 : le trou triangle orange sépare le polygone en trois surfaces séparées).
PolygoneGéoPermet de stocker un polygone sur une approximation de la sphère terrestre. Un polygone est constitué d'un contour, qui est une polyligne géographique simple et fermée, et optionnellement d'un ou plusieurs trous, qui sont également des polylignes géographiques simples et fermées.
Les trous ne peuvent pas être imbriqués les uns dans les autres ni avoir d'intersections entre eux ou avec les contours.
Un polygone doit vérifier un ensemble de propriétés pour être considéré correct / valide : - Son contour est une polyligne simple (pas d'intersection avec elle-même) et fermée (son dernier point est égal à son premier point). - Les points du contour doivent être ordonnées dans le sens des aiguilles d'une montre. Les trous, eux, doivent être dans le sens inverse des aiguilles d'une montre. - Ses trous sont également simples et fermés. - Les trous d'un polygone ne peuvent pas se croiser. Ils peuvent avoir des points d'intersections, mais ne peuvent pas avoir de points de leurs intérieurs en commun. Les intersections éventuelles sont donc toutes tangentes. Cela concerne également les intersections entre le contour et les trous d'un polygone. - Un polygone ne peut avoir de "pics" / "lignes" sans intérieur (voir images exemples). - L'intérieur d'un polygone est un ensemble connexe de points. C'est-à-dire qu'à partir d'un point de la l'intérieur d'un polygone, on doit toujours pouvoir aller sur tous les points de cet intérieur du polygone sans jamais avoir besoin de traverser l'extérieur. Un trou ne doit donc jamais "couper en deux" l'intérieur d'un polygone (voir image 3 : le trou triangle orange sépare le polygone en trois surfaces séparées).
Polyligne2DUne Polyligne2D est un ensemble de segments du plan 2D qui se suivent, et est définie par une suite de points.
Si le dernier point d'une polyligne est égal au premier point, on dit que la polyligne est **fermée**. Si aucun des segments de la polyligne n'intersecte un autre segment de la polyligne, on dit qu'elle est **simple**. Si une polyligne est simple *et* fermée, on dit que c'est un **anneau** (**LinearRing** en anglais).
PolyligneGéoPermet de stocker une suite de "segments dans le repère géographique (latitude - longitude) qui se suivent, définie par une suite de points.
Une polyligne géographique n'est pas composée de segments droits comme en 2D, car elle décrit une position sur la surface courbe de la Terre : il s'agit d'une suite d'arcs ayant la courbure de la Terre, comme des trajectoires d'avion (géodésiques).
Si le dernier point d'une polyligne est égal au premier point, on dit que la polyligne est **fermée**. Si aucun des segments de la polyligne n'intersecte un autre segment de la polyligne, on dit qu'elle est **simple**. Si une polyligne est simple *et* fermée, on dit que c'est un **anneau** (**LinearRing** en anglais).
Improved advanced WLanguage types
Minimum version required
  • Version 2024
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 04/11/2024

Send a report | Local help