Haut du formulaire
Bas du formulaire
Le code Diva recopie les données de l'adresse dans un fichier RTF après mise en forme, puis le bloc RTF du masque fait l'affichage ou l'impression.
Haut du formulaire
Bas du formulaire
Enregistrement MW public
L'affichage ou l'impression du bloc RTF passe par la déclaration commune (entre le DHSP et le DHSF ou DHSI) d'un enregistrement PUBLIC pour stocker le nom du fichier RTF. On utilisera une instance l'enregistrement MW du A5DD.dhsd.
On peut utiliser un enregistrement MW existant (pour lequel il y a encore un champ disponible puisqu'il s'agit d'un tableau de 8 noms de champ RTFNOM) ou en déclarer un dédié à l'adresse.
Exemple : déclaration d'un record dédié, on utilise l'indice 1Public Record A5DD.dhsd MW ADR_MW ; Enreg temporaire MW pour l'affichage des adresses ADR_MW.RtfNom(1)
Exemple : utilisation de l'indice disponible, 8 par exemple CLI_MW.RtfNom(8)
Haut du formulaire
Bas du formulaire
Enregistrement A5ADR local
L'adresse que l'on veut imprimer est déjà disponible dans l'un des enregistrements en cours de travail dans le sur-champ ADR (exemple dans le CLIENT ou le TIERS). Pour compléter par des libellés (notamment le libellé du pays) mais aussi pour 'vider' des données qu'on ne souhaite pas afficher, on passe par une instance d'enregistrement tampon local
Record A5DD.dhsd A5ADR L_A5adr ; Structure adresse temporaire pour transfert adresse
Cette instance doit donc être garnie avec les données adresse à afficherL_A5adr.Adr = MonEntite.Adr
Que l'on pourra compléter avec les libellés de région/pays via une recherche directe ou par des jointures sur l'entité
Define Declaration_Region = RecordSql 'GTRSTAB.dhoq' Region Define Declaration_Pays = RecordSql 'GTRSPPTAB.dhoq' Pays Declaration_Pays Declaration_RegionL_A5adr.LibPays = Condition(Lectab_(Pays, L_A5adr.Pay) = 0, Pays.lib, ' ')L_A5adr.LibRegion = Condition(Lectab_(Region, L_A5adr.Pay, L_A5adr.RegionCod) = 0, Region.Lib, ' ')
Haut du formulaire
Bas du formulaire
Chargement du RTF
L'adresse doit être transmise à la fonction commune de haut niveau pour mise en forme (police, couleur, taille) et positionnement (ligne, colonne) juste avant l'affichage ou l'impression.
Cette fonction de haut niveau se trouve dans le module A5PM000.dhop (A5_Charger_RtfAdresse_Affichage, nécessite le code application en paramètre), mais est reprise par exemple dans le module d'application GTPM000.dhop (Charger_RtfAdresse_Affichage). On utilisera donc celle dédiée au module si elle est disponible.
• Charger_RtfAdresse_Affichage pour le un rtf destiné à un masque écran• Charger_RtfAdresse_Impression pour le un rtf destiné à un masque impression• A5_Charger_RtfAdresse_Affichage ou A5_ Charger_RtfAdresse_Impression si la fonction n'est pas disponible
On utilise donc l'instance d'enregistrement locale pour compléter les données de l'entité adresse, puis on le passe à la fonction de haut niveau qui retourne le nom du fichier RTF, que l'on stocke dans l'instance d'enregistrement PUBLIC utilisée dans le masque.
Exemple : zoom client complète des libellés, et ré-utilise l'enregistrement public CLI_MW en indice 8 L_A5adr.Adr = CLIENT.AdrL_A5adr.LibRegion = CLIENT.LibelleRegionL_A5adr.LibPays = CLIENT.LibellePays CLI_MW.Rtfnom(8) = Charger_RtfAdresse_Affichage('CLI_ADR', L_A5adr)
Haut du formulaire
Bas du formulaire
Affichage ou impression
Haut du formulaire
Bas du formulaire
AFFICHAGE DES ADRESSES : POUR SAISIE
Le point d'arrêt avant traitement préconisé est 10700 (d'autres points d'arrêts pourront être utilisés si nécessaire). La gestion de ce point d'arrêt dans le code du programme/zoom permettra de lancer la fenêtre de saisie des éléments de l'adresse.
La propriété de l'objet RTF dans XWin Entrée en saisie au clavier devra être positionnée à Oui si l'on veut trapper la tabulation pour entrer en saisie des éléments de l'adresse après avoir saisi le titre comme le montre l'exemple ci-dessous.
Quelques remarques : • si plusieurs champs RTF sont utilisés dans un même programme, pour ne pas répliquer du code inutilement, on pourra utiliser Harmony.Dataind1 pour différencier ces champs RTF. Cependant, ce champ sera écrasé lors de la saisie des éléments de l'adresse ; il faudra donc penser à bien sauvegarder sa valeur avant l'entrée en saisie et la restaurer après.
Haut du formulaire
Bas du formulaire
AFFICHAGE DES ADRESSES :POUR CONSULTATION
Le masque d'écran doit comporter un « bloc texte riche » qui fait référence à l'enregistrement public, et à l'indice utilisé dans le code diva. Attention à bien indiquer l'indice du tableau utilisé.
Le style donné au bloc RTF est inutile. C'est le format indiqué à l'appel de la fonction qui fait foi pour le texte, mais on donnera la valeur STD pour obtenir un rendu AVEC cadre et RTF_NOTE pour un rendu SANS cadre.
Exemple affichage :
Note : pour éviter l'affichage de la scrollbar à l'affichage, il faut modifier la LARGUEUR de l'objet dans le masque écran, et changer de page Xwin pour vérifier qu'elle a bien disparu.
Haut du formulaire
Bas du formulaire
IMPRESSION DES ADRESSES
Le masque d'impression doit comporter un « bloc texte riche » qui fait référence à l'enregistrement public, et à l'indice utilisé dans le code diva. Attention à bien indiquer l'indice du tableau utilisé. Le style donné au bloc RTF est inutile. C'est le format indiqué à l'appel de la fonction qui fait foi pour le texte, mais on donnera la valeur STD.
Exemple impression :
Note : pour éviter l'affichage de la scrollbar à l'affichage, il faut modifier la LARGUEUR de l'objet dans le masque écran, et changer de page pour vérifier.
Haut du formulaire
Bas du formulaire
AFFICHAGE DES ADRESSES : UTILISATION
Attention, pour utiliser l'affichage des adresses dans un champ RTF, il ne faudra pas oublier d'initialiser les notes par un A5_RtfAdresse_Debut pour charger le masque de saisie et ainsi éviter d'avoir une erreur de mauvaise page courante ultérieure.
Haut du formulaire
Bas du formulaire
Impression et affichage des adresses : positionnement standard