Traitement de zones graphiques en RPG

RPG (3 et 4, free), CL, SQL, etc...
Répondre
mousse79
Messages : 4
Enregistré le : lun. 27 avr. 2015, 13:26:17
Localisation : Suisse

Traitement de zones graphiques en RPG

Message par mousse79 »

Bonjour à toutes et à tous,

J'aurais besoin de votre aide pour savoir comment traiter des zones graphique dans un RPG.

Je dois alimenter un fichier d'un logiciel tiers dont toutes les zones contenant des informations alphanumériques sont de type graphique codées avec un CCSID 1147 différent de celui mon système.

Voici la définition des zones vu par un DSPFFD :Image

Le CCSID est bien 1147 car je suis obligé de passé par un profil spécial (avec les CCSID 1147) pour visualiser les données par QRY ou alors faire un CHGJOB CCSID(1147) sur une session normal de mon système (qui lui est en 65535).

A noter que lorsque je rentre le nom du fichier dans QRY il me donne le message suivant :

File CLI in XXXTEST may have DBCS data or text

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

CCSID 1200

Message par cmasse »

Bonjour,

ce que je vois du DSPFFD n'est pas le CCSID 1147 (qui est le latin-9, soit Français avec EURO) mais le 1200, qui est Unicode (exactement UTF-16)


Quel le CCSID du job ? la val. système QCCSID ?

si c'est 65535, DB2 ne peut pas convertir.

si c'est 297 (ou 1147), il peut convertir dans la limite du jeu de caractère (alphabet occidental vs Chinois). quels sont les caractères stockés ?
Christian Massé (Volubis.fr)

mousse79
Messages : 4
Enregistré le : lun. 27 avr. 2015, 13:26:17
Localisation : Suisse

Message par mousse79 »

Bonjour,

Le CCSID du système est le suivant :

Image

Celui du profil livré par la société tiers et qui permet de visualiser les données est le suivant :


Image

De plus lorsque je veux changer le CCSID de mon job en 1200 voilà le message que j'obtiens.

CHGJOB CCSID(1200)
Valeur 1200 de CCSID incorrecte.


Les données stockés dans ces zones graphiques sont des données alphanumériques comme un libellé,un nom ou un prénom.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

changement CCSID

Message par cmasse »

si les caractères stockés sont occidentaux, la conversion doit pouvoir être réalisée.


C'est automatique avec SQL, avec RPG-IV depuis la V6R10 si le CCSID est connu au moment de la compilation.

Sinon %CHAR() et %UCS2() font la conversion

http://www-01.ibm.com/support/knowledge ... tm?lang=fr
Christian Massé (Volubis.fr)

mousse79
Messages : 4
Enregistré le : lun. 27 avr. 2015, 13:26:17
Localisation : Suisse

Message par mousse79 »

Je viens d'essayer avec le %UCS2 et voici ce que j'obtiens à la compilation lorsque je précise le CCSID 1147 dans la carte H.

Image

mousse79
Messages : 4
Enregistré le : lun. 27 avr. 2015, 13:26:17
Localisation : Suisse

Message par mousse79 »

Bonjour,

J'ai supprimer l'information de la carte H et codé comme suit dans le programme :

/free
eval CE1 = %UCS2('8');
eval CE2 = %UCS2('1');
eval LIB = %UCS2(#LIB9);
/end-free

Cela fonctionne parfaitement.

Un grand merci à tous.

Buffalo
Messages : 1
Enregistré le : mer. 21 oct. 2015, 03:45:30

Re: changement CCSID

Message par Buffalo »

cmasse a écrit :si les caractères stockés sont occidentaux, la conversion doit pouvoir être réalisée.


C'est automatique avec SQL, avec RPG-IV depuis la V6R10 si le CCSID est connu au moment de la compilation.

Sinon %CHAR() et %UCS2() font la conversion

http://www-01.ibm.com/support/knowledge ... tm?lang=fr

je suis dans le même cas, merci pour les précisions!

Répondre