DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer pour Linux
  • Présentation
  • Fonction non disponible
  • Une fonction n'est pas disponible sous Linux : comment adapter mon code existant ?
  • Champ non disponible
  • Utilisation de champs disponibles
  • Je dois modifier l'interface (UI) d'une fenêtre. Comment être sûr d'utiliser des champs disponibles pour toutes mes configurations ?
  • Chemins de fichiers
  • Arborescence
  • Casse et accents
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Application Linux : Conseils et astuces
HFSQL ClassicDisponible uniquement avec ce type de connexion
Présentation
Dans des applications multi-configurations Windows/Linux, diverses limitations peuvent apparaître : champ non géré, fonctions non disponibles, ...
Vous trouverez dans cette page d'aide la ou les solution(s) à apporter.
Fonction non disponible

Une fonction n'est pas disponible sous Linux : comment adapter mon code existant ?

Certaines fonctions ou propriétés peuvent ne pas être disponibles en configuration Linux :
  • soit parce qu'elles n'ont pas de raison d'être (les fonctions RegistreXXX par exemple).
  • soit parce que les champs associés ne sont pas disponibles (fonctions Arbrexxx).
  • soit parce qu'elles ne sont pas encore disponibles dans cette version.
L'instruction <CibleExécution...> permet de définir pour un traitement ou un événement donné (code de clic d'un champ Bouton par exemple), le code qui sera exécuté selon la plateforme en cours.
Par exemple, pour une application Linux, il est possible d'indiquer le code spécifique à exécuter :
<SI CibleExécution=ApplicationLinux>
// Traitement spécifique à la plateforme Linux
<FIN>

De même, si un code n'est disponible que sur Windows, il est possible d'utiliser le code suivant :
<SI CibleExécution=ApplicationWindows>
// Traitement spécifique à la plateforme Windows
<FIN>
Remarque : Il existe de nombreuses cibles d'exécution. Il est possible de les combiner dans la même instruction.
Champ non disponible
Certains champs ne sont pas encore disponibles dans le framework Linux : c'est le cas des champs Arbre, Table hiérarchique, Code-barres ou Forme par exemple.
En exécution Linux, si un seul champ n'est pas supporté dans la fenêtre, aucun champ ne sera affiché et une erreur WLangage sera affichée.
Dans ce cas, il existe différentes possibilités.
Le champ peut être supprimé
Il s'agit d'un champ "mineur" (le champ forme par exemple, utile pour délimiter des zones dans l'interface). Vous pouvez au choix et selon le cas :
  • le supprimer,
  • le remplacer par une image ou par un libellé "vide" avec un cadre.
Le champ peut être déplacé
Il s'agit d'un champ important qui ne peut pas être supprimé mais qui peut être déplacé dans une autre fenêtre facilement (un champ code-barres par exemple). Dans ce cas, il suffit de :
  • créer une nouvelle fenêtre dédiée à l'af­fichage du champ.
  • déplacer le champ dans cette nouvelle fenêtre.
  • ajouter dans la fenêtre d'origine un bouton pour ouvrir la nouvelle fenêtre créée. Bien sûr, ce bouton ne devra pas être accessible en Linux.
Le champ ne peut être ni sup­primé, ni déplacé
Il s'agit d'un champ important qui ne peut être ni supprimé, ni déplacé (un champ Arbre ou table hiérarchique par exemple). Dans ce cas, la seule solution consiste à dupliquer la fenêtre pour que chaque configuration dispose de SA fenêtre.
Pour dupliquer une fenêtre :
  1. Sous l'éditeur de fenêtres, sous le volet "Accueil", dans le groupe "Général", déroulez "Enregistrer" et sélectionnez "Enregistrer sous".
  2. Donnez un nouveau nom à la fenêtre. Vous pouvez par exemple suffixer le nom selon la plateforme (par exemple "FEN_ FicheClient_Linux").
  3. Utilisez un code-cible conditionnel pour appeler la fenêtre adaptée à la plateforme d'exécution.
Attention : Cette solution est à utiliser avec précaution et pour des fenêtres légères en code et interface. En effet, une fois la fenêtre doublée, toutes les modifications, corrections, ... doivent être réalisées en double, avec le risque non négligeable d'oublis.
Utilisation de champs disponibles

Je dois modifier l'interface (UI) d'une fenêtre. Comment être sûr d'utiliser des champs disponibles pour toutes mes configurations ?

WINDEV, WEBDEV et WINDEV Mobile indiquent clairement les champs et paramètres de champs qui ne sont pas disponibles dans une ou plusieurs configurations du projet.
  • Les différents types de champs disponibles
    Les options et boutons de la barre d'outils qui permettent de créer des champs sont simplement grisés si la configuration courante ne gère pas ce type de champ.
    Si vous utilisez un champ qui n'est pas disponible dans une autre des configurations du projet, une erreur apparaît dans le volet des erreurs.
  • Les options des champs
    Certains paramètres de champs peuvent ne pas être disponibles selon la plateforme d'exécution.
    Ces paramètres peuvent toujours être modifiés dans la fenêtre de description du champ, mais ils sont signalés :
    • en gris si le paramètre n'est disponible pour aucune des configurations du projet.
    • en violet si le paramètre est disponible pour certaines configurations et indisponible pour d'autres.
Chemins de fichiers
Il existe des différences dans la gestion de fichiers entre Windows et Linux :
  • au niveau de l'arborescence des fichiers.
  • au niveau de la casse et des accents.

Arborescence

Le séparateur utilisé dans l'arborescence des chemins diffère selon la plateforme :
  • "\" en Windows,
  • "/" en Linux.
Le WLangage dis­pose de deux fonctions pour gérer ce problème :
  • La fonction fSep renvoie le séparateur correspondant à la plateforme en cours d'exécution. Cette fonction permet de construire un chemin quelle que soit la plateforme en cours.
    // Construit le chemin du fichier de configuration
    sFichierConfig = fRepExe() + fSep() + "config.ini"
    Remarque : la fonction ComplèteRep permet d'ajouter le bon séparateur à une arborescence. Mais le code devient moins lisible au-delà de 2 inclusions.
  • La fonction fSéparateur permet de récupérer un chemin avec des séparateurs normalisés. Cette fonction est particulièrement utile si l'application utilise des chemins mémorisés / construits sur une plateforme différente.
    sFichierConfig = ".\Temp\MonFichier.txt"
    // Normalise le chemin
    sFichierConfig = fSéparateur(sFichierConfig)
    // Sous Windows : ".\Temp\MonFichier.txt"
    // Sous Linux  : "./Temp/MonFichier.txt"

Casse et accents

Linux, au contraire de Windows, est sensible à la casse des fichiers.
Par exemple, la ligne de commande suivante :
// Ouvre le fichier "MonFichier.Txt"
fOuvre("MonFichier.txt")
n'ouvrira pas le fichier "monfichier.txt" sous Linux alors qu'il sera correctement ouvert sous Windows.
Il est donc nécessaire de vérifier la casse des fichiers sur le disque et celle utilisée dans le code WLangage.
Version minimum requise
  • Version 16
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale