Styles disponibles pour les adresses
La liste des styles disponibles pour les adresses est construite par code diva dans la fonction « Creer_ListeStylesAdresse » du A5TM000.dhop : il s'agit de remplir une structure « a5pm000.StructStyleChamp » qui donne les propriétés du style, et de mettre chaque style dans la liste reçues en paramètre.
Exemple : un Tahoma taille 16 noir gras
nomStyle=“TAH16GRA”, nomPolice=“TAHOMA”, rtfPolice=“\f4”, nomTaille=“16” , rtfTaille=“\fs32”
nomCouleur=“NOIR”, rtfCouleur=“\cf0”, tailleInterlig=360, estGras=true, estItalique=false
Attention les valeurs des champs « rtfXXXX » seront directement écrites dans le fichier RTF. Il s’agit donc ici de véritables balises rtf.
Dans ce cadre les polices (exemple : \f4) et couleurs (exemple : \cf0) font référence à la table des polices et couleurs données à l’initialisation du RTF. Ces tables sont créés dans la fonction « Creer_ListeAttributsRtf_Defaut ».
L’ajout d’une police ou d’une couleur passe donc nécessairement par l’existance dans la table selon un ordre précis qui sera ensuite indiqué dans le style
Exemple :
Pour une table selon cette définition (les indices commençant par 0=)
“{\colortbl ” & “\red0\green0\blue0;” “\red128\green128\blue128;” “}”
→ \cf1 fait donc référence à la Couleur numéro 1 de la table donc 128/128/128 = gris foncé
L’attribut rtf TAILLE est mesuré en demi-points, donc une taille 16 s’indique \fs32
La taille de l’interligne est mesurée en twips. La valeur 240 correspond à 1 interligne (autres valeurs possibles par exemple : 240, 360, 480, 720(=3i) )
C’est le ‘nomStyle’ qui servira ensuite pour son utilisation (exemple : TAH_STD)
Impression et affichage des adresses : modification du rendu par défaut via la chaîne HMP
Les fonctions « Charger_RtfAdresse_Affichage » et « Charger_RtfAdresse_Impression » du A5PM000.dhop sont en charge de remplir les données RTF des champs d'adresse. Chacun utilise par défaut le style standard correspondant.
Il est possible de modifier le rendu par défaut via la chaîne HMP transmise à cette fonction.
Exemples : Charger_RtfAdresse_Affichage('CLI_ADR', L_A5adr, HMP)
Impression et affichage des adresses : présentations
Une présentation est une manière simplifiée pour les programmes appelants de gérer une combinaison de propriétés.La liste des présentations disponibles est visible dans A5TM000.dhsp / Substituer_Presentation_RtfAdresse.
Un code de présentation va donc être substitué par les balises HMP.
Exemple :
La présentation « ENVELOPPE » peut être substituée par <STYLE>VER_STD<NOM>VER_STD_GRAS qui aura pour effet de donner le style par défaut VER_STD à tous les champs sauf le nom pour lequel on veut forcer VER_STD_GRAS
Ajout d'un champ adresse
Des ouvertures (chez l’appelant) sont exécutées pour permettre de traiter, dans le rendu RTF, un champ qui n’est pas prévu dans les champs standard d’adresse.
Il y a trois ouvertures :
Ajouter_ChampsAdresse_HMP: cette ouverture reçoit la chaine HMP en entrée et DOIT LA RENVOYER par freturn
Function char Ajouter_ChampsAdresse (colonnesHMP)
1 colonnesHMP A
BeginF
;la chaine HMP peut être complétée
;(ex : en première position pour changer le style
FReturn(colonnesHMP)
EndF
Completer_ChampsAdresse: cette ouverture reçoit une instance de l’enregistrement A5ADR de A5DD.dhsd et DOIT LA RENVOYER par freturn
Function char Completer_ChampsAdresse (A5ADR_param)
Record A5DD.dhsd A5ADR_param
BeginF
;l’enregistrement peut être completé
;(ex : A5ADR_param.CHAMP = valeur)
FReturn(A5ADR_param)
EndF
Ajouter_ChampsAdresse: cette ouverture reçoit la valeur d’un champ inconnu du standard et DOIT RENVOYER SA VALEUR par freturn
Function char Ajouter_ChampsAdresse (nomChamp)
1 nomChamp A
BeginF
If nomChamp = “MONCHAMP”
FReturn(savaleur)
EndIf
FREturn (’’)
EndF
Exemple : afficher le numéro de téléphone dans le RTF adresse
Ajouter_ChampsAdresse_HMP permet d’ajouter le champ à traiter en ajoutant à la chaine HMP, puis Ajouter_ChampsAdresse permet de retourner la valeur du téléphone
Exemple : modifier le style d’une impression
Ajouter_ChampsAdresse_HMP permet d’ajouter le style en ajoutant à la chaine HMP