Collections de procédures

Le framework vient avec 16 collections de procédures qui sont autant de « boites à outils ». Certaines collections sont déjà documentées dans les autres options du menu. Pour les autres :

Certaines de ces fonctions ont été décrites par d’autres développeurs sur leur site personnel ou sur un forum. Merci à eux pour leur contribution ! La référence de la page web d’origine est systématiquement mise au début des procédures concernées. Ce framework les a rassemblées et uniformisées.

La collection de procédures COL_PCS

Il faut tout d’abord parler d’une classe bien spéciale COL_PCS.

Il suffit de regarder la documentation officielle de PCSOFT pour voir que certaines fonctions sont limitées et/ou inexistantes sur certaines plateformes et/ou leurs constantes indisponibles sur l’une ou l’autre plateforme. Ce framework a l’ambition d’être utile pour tout projet, sur toute plateforme. Voila pourquoi une 20aine fonctions ont été « refaite » pour atteindre ce but.

La collection de procédures COL_Conversion

La majorité des fonctions portent sur la conversion d’unités : accélération, angle, durée, force, fréquence, longueur, masse, pression, puissance, surface, température, travail, vitesse et volume et même informatique (avec les multiplicateurs par 1024).  Ceci implique une longue liste de multiplicateurs (de 10-24 à 1024) et d’unités disponibles sous forme d’énumérations avec leur valeur de conversion (par rapport au Système International).  S’ajoutent des conversions sous format « texte » comme PiedPouceVersMètre (et son inverse), permettant de convertir 10’5 en 3,175 mètres.

Viennent ensuite les conversions de formats et leur inverses : AnsiVersBase64 (utile pour les échanges avec des services réseau), AnsiVersUnicodeAnsi (pour transformer les accents et caractères spéciaux en \uXXXX), BinaireVersEntier (chaine de 1 et de 0 vers un entier), ChaineVersHexa (« aB$ » donne « 614224 » tel que sur cette page) et UTF16VersAnsi.

La fonction PhonétiqueFrançais permet aussi d’utiliser un algorithme différent de la fonction Phonétique de PCSOFT mais surtout de pouvoir l’utiliser en Java, Android et iOS.

La tendance étant aux échanges au format JSON (adieu XML on t’aimait bien). Un effort à été fait sur une conversion qui est notamment utilisé dans cTrace : VariableVersJSON. Elle permet de transformer n’importe quelle variable ou objet en JSON, contrairement à la fonction Sérialise du WLangage qui est limité quand il s’agit d’objets trop complexes.

Viennent ensuite quelques conversions de dates (différences en minutes ou en secondes entre 2 date/heure et transformation des dates PHP dans les 2 sens) et l’extrapolation de la fonction DateDuJour/DateSys() à d’autres jours tels que : AvantHier, Hier, Demain et AprèsDemain.

Enfin il est possible de vérifier un chemin de fichier pour éviter les caractères interdits avec ChaineVersNomDeFichier et de transformer une URL en une structure plus facile à manipuler.

La collection de procédures COL_GUI

GUI pour « Graphic User Interface » évidemment. Tout ce qui concerne donc l’interface homme/machine et donc des champs et des fenêtres :

  • des toasts avec une couleur de fond définie (pour les erreurs, les avertissements et les infos),
  • du traitement sur les colonnes de table (hauteur de titre, réglage automatique des largeurs de colonnes, position du curseur horizontal pour voir une colonne particulière)
  • le remplissage de combos pour les unités ou leurs multiplicateurs (voir COL_Conversion ci-dessus)
  • l’énumération des champs pour pouvoir agir dans des applications tierces (EnumèreElementExt équivalent à EnumèreElement) : pousser sur un bouton, mettre une valeur dans un champ de saisie, …
  • d’autres fonctions utiles au quotidien : déplacement d’un groupe de champs, ouverture de Google Map en passant une adresse, limitation du contenu d’une liste (une ligne insérée en haut efface la dernière), …

La collection de procédures COL_Impression

Fini de faire toutes une série d’états dans votre logiciel, la fonction ImprimeTable imprime n’importe quelle table à l’écran telle quelle.

Une 50aine d’options sont disponibles : marges, nbr d’exemplaires, couleur des lignes et de fond de titre, filtres, couleur/tons de gris, coche graphique ou numérique, mémo image, orientation, nombre/totaux/moyenne, titres du document et des colonnes, … tous les détails sur cette page.  Cette fonction est liée avec la fenêtre interne FI_Page permettant à l’utilisateur de personnaliser, visuellement, toutes ces options.

L’autre fonction intéressante permet d’imprimer directement une image. La dernière fonction permet de récupérer ou d’imposer les marges de l’imprimante.

La collection de procédures COL_Log

Cette collection sert à surcharger l’appel aux boites de dialogue et aux impressions pour pouvoir les écrire dans le fichier Log.

La collection de procédures COL_Matériel

(Presque) tout savoir sur le matériel se trouve ici : 5 fonctions pour les imprimantes (ajout dans Windows, valeurs du DPI, …), 2 fonctions pour la souris (boutons et roulette), 3 fonctions pour les composants de l’ordinateur (processeur, mémoire et port COM), 3 fonctions pour le clavier (verrou, vitesse de répétition et délai avant répétition). La gestion des cartes réseau est faite dans une collection de procédures spécifique (voir ci-dessous).

La collection de procédures COL_ODBCSource

Sert à gérer les sources ODBC. Ces procédures sont notamment appelées dans les classes cBaseDeDonnéesXXXX pour paramétrer automatiquement la connexion ODBC.

La collection de procédures COL_Réseau

Cette collection permet d’en savoir (beaucoup) plus sur les cartes réseau installées sur l’ordinateur et leurs adresses IP reliées grâce aux fonctions AdapteurNombre et AdapteurInfo.

Elle contient également d’autres méthodes pour connaître le contexte réseau dans lequel se trouve l’ordinateur suite au login de l’utilisateur : liste de ses groupes sur le domaine, savoir si il a des droits administrateurs, le nom de la connexion internet et le nom du domaine courant.

La collection de procédures COL_Vérification

Contient une série de fonctions pour vérifier la validité de certaines données (EstChiffre, EstAnnéeBisextile, EstImageReconnue, EstNuméroTéléphone, …) ou de numéro utilisé dans l’administration (ex : RIB en France, NAS au Québec, …).

La collection de procédures COL_WIN

Sont rassemblées ici toutes les procédures qui sont spécifiques à l’environnement Windows (toutes appellent les API Windows).

Ce sont donc 5 fonctions qui pilotent la barre de tâches, une fonction pour récupérer l’icône associé à un fichier, la gestion des fichiers récents, 2 fonctions pour l’UAC, l’activation de l’écran de veille, l’ouverture de la fenêtre standard pour arrêter Windows, … Une partie de ces fonctions a été glanée sur internet (référence en haut des procédures concernées).

La collection de procédures COL_Téléphone

Sert uniquement à formater un numéro de téléphone selon le pays (ex : 0634492122 donnera, pour la France, +33 6 34 49 21 22). Le formatage est disponible pour la Belgique, la France (et DOM-TOM), États-Unis et Canada.

La collection de procédures COL_BaseDeDonnées

Ne contient qu’une seule procédure pour ajouter des enregistrements d’une source de données à une autre. Son usage est très spécifique, par exemple pour écrire des enregistrements d’une base de données à une autre.

La collection de procédures COL_WMI

S’y trouvent une centaines de fonctions pour accéder aux informations via le standard WMI de Windows. Cela couvre aussi bien le matériel installé que les informations de fonctionnement de Windows.

La collection de procédures COL_Données

Cette collection permet d’accéder facilement à certaines données standard/ISO. Elle contient, pour l’instant, les jours spéciaux (fériés, fêtes, …) de 4 pays francophones.

La collection de procédures COL_GPU

Donne accès à une série de fonctions permettant de dialoguer avec les données du groupware utilisateur sans devoir l’activer dans l’application.  En effet, une autre application « administrateur » pourrait exister avec le composant interne livré par PC SOFT. Non seulement cela allège l’application courante mais cela permet d’être sûr que l’application cliente ne peut pas paramétrer le groupware utilisateur et, au gestionnaire, de n’avoir que la gestion des droits utilisateur sans avoir besoin de lancer toute l’application (qu’il n’utilise pas de toute façon). Un exemple sera proposé bientôt !