Gestion du caractère EURO ( € )

 

L'OS/400 vous permet de gérer le caractère EURO depuis les versions V3R20 et V4R10 de l'OS/400 via PTF

(voir la liste des PTF sur http://www-1.ibm.com/servers/eserver/iseries/euro/roadmap.htm )

- R320: SF99205
- R410: SF99206
- R420: SF99207
- R430: SF99208

voyez les groupes PTF disponibles avec l'APAR II11523

 

et depuis les version V4R40 et suivantes sans PTF additionnelles pour l'OS/400


 

Tout est basé sur la notion de jeux de caractères et de codes page:

 

voici donc un petit rappel:

 N L S : Nationnal Language Support
         gestion des paramètres liés à la notion de langue et de pays           et gestion de sites multilangues.
L'AS/400 sait s'adapter à la notion de pays et de langue,
  vous connaisser certainement déja des paramètres propres à un pays :                                                                                     QDECFMT format décimal             J = virgule        QDATFMT format de la date          DMY        QDATSEP séparateur de la date      /        QTIMSEP séparateur de l'heure      :        QKBDTYP type de clavier/dft        FAB français azerty                                          (FAI    "      "    multinationa l                                           FQB français qwerty                                           FQI    "      "    multinationa l)





  Viennent s'ajouter à ces paramètres :                     + la notion de jeu de caractères                     + la codification de ces caractères
  quelques définitions :
  - système de codage EBCDIC ou ASCII                       SBCS (single byte character set)                            = 1 octet pour un charactère                       DBCS (double byte   "        " )                            = 2 octets pour un caractère                              alphabet asiatique (chinois,etc...)
    la valeur système QIGC signale si votre système admet le codage DBCS      "  "       "     QIGCCDEFNT indique la police de caractère à utiliser.
 - jeu de caractères 
   ensemble des caractères propres à un langage
    reconnus par les terminaux(claviers,imprimantes,..) de ce pays.


 pour le codage SBCS il existe une partie invariante qui est :       les caractères entre A-Z              "        "    a-z              "        "    0-9       et 19 symboles + < = > % & * " ' ( ) , _ - . / : ; ?
 c'est le jeu de carctères 640. 
 puis le jeu de caractères LATIN 1 comprenant en plus tous les caractères   accentués (non connus par les anglo-saxons)
 à è é ê ë Ä Ï etc ...
 et quelques symboles supplémentaires : { } @ # µ | [ ] etc ...  (ces symboles ne sont pas reconnus par tous les terminaux)
c'est le jeu de caractères 697 (celui utilisé en france)


 - point de code     
   c'est la valeur héxa attribuée à un caractère
 - page  de code     
   c'est le croisement jeu de caractères/point de code.
   autrement dit : c'est l'ensemble des valeurs héxa attribuées dans un pays                     à un jeu de caractère donné.
   exemple: en angleterre x'5B' = £             au U.S.A      x'5B' = $ (en france aussi)             au japon      x'5B' = ¥
   le code page U.S est le 037    le code page multinational est le 256    le code page français est (était) le 297 
   voici le détail de ce code page :



 - CHRID                (notion venant du 38)
   c'est le stockage de votre jeu de caractère (5 premiers chiffres)                      et de votre code page     (5 suivants)
   destiné à une conversion DES CONSTANTES à destination des périhériques. 
   Si CHRID du fichier unité(DSPF) <> CHRID de l'unité(*DEV),    il y a alors une conversion effectuée par le système en utilisant une     (ou des) table(s) de conversion Qssscccppp dans QUSRSYS.
    où sss est le code page source        ccc     le jeu de caractère cible        ppp     la page de code cible
   par exemple : Q297337256 est la table permettant de faire une conversion                  français (297) vers multinationa l (337 256).
   le CHRID par défaut est donné dans la valeur système QCHRID                                                         697 297 en France


 - CCSID                (notion de la V2R11)
   représentation interne (codée) du CHRID    destiné à une conversion DES DONNEES lors de leur manipulation.          
   Utilisé dans le cadre de CDRA(Character Data Représentation Architecture)     en association avec DRDA (bases de données distribuées)
   Chaque donnée manipulée est "taggée" avec un code représentant les     particularités liées au langage :                                       - système de codage (SBCS,DBCS)                                       - jeu de caractère                                       - page de code                                       - infos sup.
   Ce "tag" est construit à partir du CCSID qui en SBCS avec un jeu de     caractère standard ne peut contenir QUE : - le code page du CHRID                                                   297 en france                                           ou  - la valeur 65535                                                (pas de conversion)     (toutes les valeurs comprises entre 00001 et 28761 sont copyright IBM)

 Sur AS cette valeur est donnée par défaut par la valeur système QCCSID

     puis associée à un profil (dft = *SYSVAL)
          ce qui donne la valeur pour le job (modifiable via CHGJOB)
 Puis chaque fichier (PF) se voit associé un CCSID (mot-clé SDD CCSID)         - par défaut celui du code langage principal.
 et ENFIN quand des données sont manipulées (DRDA, DDM, E/S pgm, ...)
 si le CCSID du job est différent du CCSID du fichier et s'ils sont tous les  deux différents de 65535, il y a conversion des données de type charactère:   ( type "A" dans la langage SDD. )
 + vers le CCSID du JOB en cas de lecture.  + vers le CCSID du fichier en cas d'écriture.
  - cela ne concerne pas les variables numériques bien sur                          les variables de type "H" (héxa,non soumises à la                                                     notion de langue)                          les fichiers sans description (interne)


 cette fonctionnalité est reconnue par :
 - le gestionnaire de base de donnée OS/400 (toutes opérations) 
 - les commandes de copie (CPYF, CPYFRMQRYF)
 - DRDA (SQL, QM, DDM)
 - OPNQRYF (CCSID accepté dans MAPFLD)            (conversion lors de la requête)
 - SNADS
 TOUT SYSTEME OS/400 antérieur à la V2R11 est considéré CCSID 65535.
 La valeur par défaut de QCCSID est 65535
 Le CCSID des fichiers créés avant la V2R11 est 65535.


DEPUIS LA V2R30 les fichiers unités :DSPF,PRTF,*PNLGRP(aides et menus)  acceptent la valeur suivante:
- CHRID(*JOBCCSID)
* fichiers écrans : CHRID(*JOBCCSID)
  variables en entrée converties : CCSID/DEVD -> CCSID/JOB   variables en sortie converties : CCSID/JOB  -> CCSID/DEVD   constantes          converties : CCSID/DSPF -> CHRID/DEVD   messages d'erreur non convertis avant la V4R40
  textes de fichiers message     : CCSID/JOB  -> CCSID/DEVD    (autres que message d'erreur)
* fichiers écrans : CHRID(xxx yyy) CHRID/DSPF -> CHRID/DEVD                                    (zones avec le mot-clé CHRID)  * fichiers écrans : CHRID(*DEVD)   pas de conversion la même notion est implémentée pour les PRTF et les pannels UIM

 

AUTRE NOUVEAUTE V2R30 : 

les tables de séquence permettent d'avoir des tris

 et des tests logiques (comparaisons) en fonction
 du langage

 

 (voir le cours "Séquences de tri")



Pour implémenter l'euro il a fallut modifier le jeux de caractère , en fait en créer un nouveau, qui est le LATIN-9

  1. Pour l'ISO : 923 (qui remplace le 819)
  2. ASCII : 858 (remplace le 850)
  3. sous MS-Windows, c'est intégré à l'ANSI (1252)
  4. Sur l'AS/400 : 695

et lui associer un nouveau code-page , par pays:

 

en france le 1147 :

 

le caractère euro [ € ] est placé en x'9F' et remplace le caractère [ ¤ ].

 

En ce qui concerne vos valeurs système,

 
SYSVAL
Ancienne val.
Nouvelle val. ???
QCCSID
297
QCHRID
697 297
695 1147
QKBDTYPE
FAB
FAE
QCURSYM
F

 

Pour afficher ce caractère, vous devez avoir

du coté client , il faut configurer votre session avec comme code page 1147 :

PC5250:


 

Networkstation :

 

l'affichage du caractère euro se fait sous cette forme :

 

L'unité est automatiquement configurée en CHRID(695 1147)

 

Applications :

 

Copyright © 1995,2000 VOLUBIS