Cours 4D BK 20 Langage
4D Write - Langage
Introduction
WR Contrôle de la zone
WR Documents
WR Feuille de style
WR Gestion de texte
WR Gestion des images
WR Glisser déposer
WR Impression
WR Objets dynamiques
WR Options de la zone
WR Tabulations
WR Utilitaires
WR Zones
Liste des thèmes de constantes
Annexes
Liste alphabétique des commandes
Introduction
Introduction à 4D Write
Gestion multi plate-forme des documents
Conventions d'écriture
Les commandes dans l'éditeur de méthodes Utiliser les zones 4D Write
Accéder aux menus de 4D Write Référencer les caractères
Introduction à 4D Write
Le plug-in 4D Write ajoute au langage de 4D des routines qui vous permettent d’automatiser certaines tâches normalement manuelles. A l'aide des commandes de 4D Write, vous pouvez, par exemple :
Exécuter toute commande de menu 4D Write
Ouvrir et sauvegarder des documents
Définir les marges d'un document
Fixer les attributs d'affichage
Travailler avec le texte, les images, etc.
Les routines de 4D Write sont précédées des lettres “WR ” pour les distinguer des routines standard de 4D et de celles des autres plug-ins.
A propos de la documentation de 4D Write
La documentation de 4D Write est constituée de deux manuels : le manuel Utilisation et le manuel Langage.
Le présent manuel, Langage, a pour but de décrire le mode de fonctionnement et la syntaxe du langage de programmation de 4D Write. Pour plus d'informations sur l'utilisation des menus et le fonctionnement général du plug-in 4D Write, reportez-vous au manuel Utilisation de 4D Write.
Gestion multi plate-forme des documents
4D Write, tout comme 4D et 4D Server, est multi plate-forme. Cela signifie qu’une base utilisant 4D Write créée sous Mac OS peut être, sans la moindre modification, ouverte et exploitée sous Windows, et inversement. Bien entendu, ces combinaisons ne sont possibles que si vous disposez des versions correspondantes des logiciels. Cependant, la gestion multi plate-forme de bases 4D et de documents 4D Write nécessite de tenir compte de certains principes, liés aux différences existant entre les systèmes d’exploitation Mac OS et Windows.
Correspondance des documents Mac OS/Windows
Le tableau ci-dessous présente les correspondances entre les fichiers Mac OS et les fichiers Windows des documents standard 4D Write.
Document |
Mac OS Type |
Creator |
Windows Extension |
Types virtuels (*) |
Document 4D Write |
4WR7 |
4DW7 |
4W7 |
4WR7 |
Document RTF |
TEXT |
4DW7 |
RTF |
RTF |
Texte Windows |
TEXT |
4DW7 |
TXT |
ASCW |
Texte Mac OS |
TEXT |
4DW7 |
TXT |
ASCM |
Texte Unicode |
TEXT |
4DW7 |
TXT |
ASCU |
Document HTML |
TEXT |
MOSS |
HTML |
HTML |
Document Word6/95 |
W6BN |
MSWD |
DOC |
DOC6 |
Word 97 PC/Word 98 Mac |
W8BN |
MSWD |
DOC |
DOC8 |
(*) Ces types sont utilisés par les commandes WR OUVRIR DOCUMENT et WR SAUVER DOCUMENT.
Documents et feuilles de style
De manière générale, les principes suivants sont à connaître :
Sous Mac OS, 4D Write se base sur le type et le créateur pour reconnaître les documents (par exemple : type 4WR7, créateur 4DW7 = document 4D Write). Pour décrire les chemins d’accès, le disque a un nom et le symbole “:” est utilisé comme séparateur de dossiers (par exemple : "MonDisque:Dossier1:Dossier2:Mabase").
Sous Windows, 4D Write se base sur l’extension pour reconnaître les documents (par exemple : extension .4W7 = document 4D Write). Pour décrire les chemins d’accès, le disque a une lettre et le symbole “\” est utilisé comme séparateur de répertoire (par exemple :
"D:\Répertoire1\Répertoire2\Mabase")
Un document 4D Write créé sous Mac OS et copié sous Windows sera directement ouvrable s’il est enregistré avec son extension. Par exemple, le document “MonDoc” enregistré sous le nom “MonDoc.4W7”, copié sur un volume PC, sera ouvert sans aucune autre manipulation.
Un document 4D Write créé sous Windows et copié sur Macintosh sera ouvert sans aucune autre manipulation.
Modèles
4D Write gère de façon totalement transparente pour l'utilisateur les modèles pour les clients Mac OS et Windows, que le serveur soit sous Mac OS ou sous Windows. Le modèle a pour nom “NomZone_.4WT”.
Par défaut, les modèles sont stockés dans le dossier de la base avec 4D et 4D Server (si vous avez opté pour la sauvegarde des modèles sur le serveur).
Si, avec 4D Server, vous optez pour la sauvegarde des modèles sur le client (à l'aide de la commande WR FIXER PROPRIETE ZONE), les modèles sont stockés :
sous Mac OS, dans le dossier Bibliothèque:Application Support:4D:4D Write templates:Nomdelabase sous Windows, dans le dossier Documents and settings\Utilisateur\Application data\4D\4D Write Templates\Nomdelabase
Conventions d'écriture
Dans ce manuel, les commandes 4D Write sont inscrites en majuscules et en caractères spéciaux : WR OUVRIR DOCUMENT. Les fonctions (routines renvoyant une valeur) 4D Write ont une lettre initiale en majuscule : WR Remplacer.
Les commandes 4D Write dans les méthodes sont affichées en caractères gras italique, ce qui les différencie des commandes intégrées de 4D.
CHERCHER([Maquettes];[Maquettes]ID=vNum) ` Commande 4D
Si(Enregistrements trouves([Maquettes])=1)
WR IMAGE VERS ZONE(LaZone;[Maquettes]Doc) ` Commande 4D Write Fin de si
Dans certains exemples de cette documentation, une ligne de code peut se prolonger sur une seconde ligne, par manque de place. Toutefois, tapez ces exemples sans appuyer sur la touche Retour chariot, en une seule ligne de code.
Les commandes dans l'éditeur de méthodes
Les commandes 4D Write peuvent être affichées dans une liste de l’éditeur de méthodes de 4D. La liste peut contenir uniquement les commandes de 4D Write ou celles de tous les plug-ins :
Les commandes des plug-ins apparaissent groupées par thèmes sous forme de listes hiérarchiques :
Les commandes des plug-ins apparaissent également dans la page Plug-ins de l'Explorateur.
Note : Les constantes des plug-ins sont ajoutées à la liste des constantes de 4D.
L'écriture d'une commande 4D Write dans une méthode s'effectue comme pour toute commande 4D : elle peut être saisie dans la fenêtre (avec ou sans aide prédictive) ou insérée via un double-clic dans la liste.
Vous pouvez utiliser une routine 4D Write dans tout type de méthode : base, projet, trigger, formulaire ou objet.
Utiliser les zones 4D Write
En mode programmé, vous pouvez travailler avec 4D Write dans les emplacements suivants :
Zones 4D Write incluses dans des formulaires, Fenêtres externes 4D Write, Zones 4D Write hors écran.
Pour pouvoir travailler dans un document 4D Write, vous pouvez soit créer une zone de plug-in dans un formulaire, soit ouvrir une fenêtre externe. Vous créez une zone de plug-in dans un formulaire en la dessinant dans l'éditeur de formulaires de 4D, en mode Développement. Vous ouvrez une fenêtre externe soit en choisissant la commande 4D Write dans le menu Outils de 4D, soit en exécutant la commande 4D Creer fenetre externe.
Outre les zones visibles, 4D Write vous permet de créer des zones hors écran, et donc invisibles. Pour plus d'informations sur ce point, reportez-vous au paragraphe “Zones hors écran de 4D Write”, plus loin dans cette section.
Se référer aux zones 4D Write
Lorsque vous manipulez un document 4D Write à l’aide des routines, vous devez spécifier son identifiant de zone. Cet identifiant est interne à 4D Write et se trouve généralement dans une variable.
4D Write utilise des variables pour stocker l’emplacement des zones incluses 4D Write, des fenêtres externes et des zones hors écran. Pour référencer la zone sur laquelle vous voulez effectuer une opération, vous devez passer la variable contenant le numéro d’identifiant de zone comme paramètre à la commande ou de la fonction.
Dans les descriptions de commandes de cette documentation, la variable de type Entier long identifiant la zone de document de 4D Write est appelée zone.
Il existe deux types de variables zone :
les noms de zones incluses, les variables que vous créez pour une fenêtre externe ou une zone hors écran.
Noms de zones incluses
Lorsque vous créez et nommez une zone 4D Write dans un formulaire, 4D considère que le nom de la zone 4D Write est la variable faisant référence à la zone. Par exemple, vous vous référeriez à la zone Lettre en spécifiant “Lettre” comme paramètre zone. ID de fenêtres externes et de zones hors écran
Lorsque vous créez une fenêtre externe ou une zone hors écran à l’aide des fonctions Creer fenetre externe ou WR Hors ecran, le numéro d’identification de zone renvoyé par la fonction doit être stocké dans une variable. Vous pourrez ensuite utiliser la variable pour faire référence à la fenêtre externe ou à la zone hors écran dans d’autres commandes et fonctions. Pour stocker la valeur dans une variable, placez le nom de la variable et l’opérateur d’affectation(:=) à gauche de la fonction dans la ligne de code.
L’exemple suivant crée une fenêtre externe 4D Write et stocke le numéro d’identifiant de zone dans la variable MaZone :
MaZone:=Creer fenetre externe(30;30;350;450;8;"Lettre";"_4D Write")
Zones de plug-in 4D Write dans des formulaires
Vous pouvez placer 4D Write dans tout formulaire : le plus souvent, dans un formulaire entrée pour pouvoir travailler avec des documents. Vous pouvez aussi placer 4D Write dans un formulaire sortie, pour afficher ou imprimer les informations.
4D Write peut utiliser tout le formulaire ou partager l’espace avec des champs et d’autres éléments du formulaire.
Vous devez utiliser une zone d’objet actif du type "Zone de plug-in" pour 4D Write. Une zone de plug-in est l’un des multiples types d’objets actifs dans 4D (il y a aussi les boutons, les zones saisissables, les zones de défilement, etc.).
Vous pouvez associer la zone de plug-in à un champ 4D, de manière à ce que le contenu de la zone soit sauvegardé avec chaque enregistrement. Attention, si vous n'utilisez pas les boutons automatiques du type Valider mais la commande STOCKER
ENREGISTREMENT, il vous faudra au préalable exécuter WR Zone vers image ou WR Zone vers blob pour transférer le contenu de la zone 4D Write dans le champ 4D, car dans ce cas le mécanisme de sauvegarde automatique n'est pas activé.
Pour plus d’informations sur la création de zones 4D Write dans des formulaires, reportez-vous au manuel d'utilisation de 4D Write.
Fenêtres externes 4D Write
Vous pouvez utiliser la fonction Creer fenetre externe de 4D pour ouvrir une fenêtre externe et y afficher un document 4D Write vide.
Creer fenetre externe ouvre une nouvelle fenêtre, affiche le plug-in spécifié et renvoie un numéro d’identifiant pour la zone.
Voici un exemple d’utilisation de Creer fenetre externe. Cette instruction ouvre une fenêtre externe et affiche un document 4D Write vide.
vWrite:=Creer fenetre externe(50;50;350;450;8;"Description";"_4D Write")
Par la suite, vous utiliserez vWrite chaque fois que vous devrez vous référer à ce document.
Pour une description complète de la commande Creer fenetre externe, reportez-vous au manuel Langage de 4D.
Zones hors écran de 4D Write
Une zone hors écran est stockée en mémoire et est invisible pour le programmeur et l’utilisateur. En général, vous pouvez vous en servir dans deux cas : pour modifier un document avant que l’utilisateur ne le visualise ou pour sauvegarder le document afin que l’utilisateur puisse revenir à l’original, si nécessaire.
Les opérations de 4D Write fonctionnent plus rapidement dans une zone hors écran parce qu’il n’est pas nécessaire de redessiner l’écran. Vous pouvez utiliser la fonction WR Hors ecran pour créer une zone hors écran.
N’oubliez pas de supprimer la zone hors écran après l’avoir utilisée, pour libérer la mémoire qu’elle occupe, à l’aide de la routine WR
DETRUIRE HORS ECRAN. Si vous fermez la base de données sans avoir détruit toutes les zones hors écran, 4D affiche un message d’erreur.
Accéder aux menus de 4D Write
Vous pouvez accéder par programmation aux menus de 4D Write et sélectionner des commandes de menus. Dans une méthode, vous pouvez connaître l'état d'un menu ou d'une commande de menu. Chaque commande de menu est référencée par un Entier. Pour en obtenir le descriptif, reportez-vous à l'Annexe B : Codes des commandes de menus.
Les codes des commandes de menus sont généralement définis par l'emplacement du menu et de la commande. Les menus sont numérotés de gauche à droite, par ordre croissant. Par exemple, Fichier = 100 et Edition = 200. De même, les commandes de menus sont numérotées par ordre croissant, de haut en bas.
Les numéros des commandes de menus définis dans l'Annexe B ne varieront pas, même si de nouvelles implémentations sont ajoutées dans 4D Write. Dans ce cas, les nouvelles commandes de menus insérées recevront des nouveaux numéros.
Référencer les caractères
Un caractère dans un document est référencé par son numéro séquentiel. Les commandes qui référencent les caractères vous permettent de désigner soit un seul caractère, soit un intervalle de caractères. Par exemple, vous pouvez sélectionner par programmation un mot, une phrase, ou un paragraphe entier.
Vous utilisez la commande WR SELECTIONNER pour déterminer la position des caractères sélectionnés dans une zone 4D Write. Cette commande utilise les paramètres premier et dernier pour référencer l'intervalle de caractères sélectionnés. Le paramètre premier désigne toujours le caractère situé juste avant le premier caractère sélectionné. Le paramètre dernier est toujours le dernier caractère sélectionné.
Exemple
L'expression suivante retourne dans les variables $Premier et $Dernier les coordonnées du texte sélectionné dans Zone :
WR SELECTIONNER(Zone;0;$Premier;$Dernier)
Pour sélectionner du texte dans une zone 4D Write, vous devez référencer des caractères. Dans la plupart des cas, vous devrez sélectionner votre texte avant de pouvoir lui appliquer une commande.
WR Contrôle de la zone
Contrôle de la zone, Introduction
WR AFFICHER SELECTION
WR APPELER SUR COMMANDE
WR EXECUTER COMMANDE
WR FIXER PROPRIETE DOCUMENT
WR LIRE INFO COMMANDE
WR Lire methode sur commande
WR Lire propriete document
WR MISE A JOUR ECRAN WR REDESSINER
WR VERROUILLER COMMANDE
Contrôle de la zone, Introduction
Les commandes et fonctions de ce thème vous permettent de contrôler l'apparence et le fonctionnement de vos zones 4D Write.
Vous pouvez contrôler les mises à jour écran à l'aide des commandes WR AFFICHER SELECTION, WR MISE A JOUR ECRAN et WR REDESSINER.
Les commandes WR APPELER SUR COMMANDE et WR Lire methode sur commande vous permettent, quant à elles, de contrôler le fonctionnement des commandes de menus de vos zones.
Les commandes de ce thème vous permettent également d'obtenir des informations sur l'état des menus (WR LIRE INFO COMMANDE), de les activer (WR EXECUTER COMMANDE) ou de les protéger (WR VERROUILLER COMMANDE).
Enfin, les commandes WR FIXER PROPRIETE DOCUMENT et WR Lire propriete document vous fournissent des options diverses d'information et de contrôle sur l'affichage des éléments d'interface de vos zones 4D Write.