Com­ment affiche-t‑o…
 
Notifications 
Reti­rer tout

Com­ment affiche-t-on une valeur hexa­dé­ci­male sur un écran DSPF ?

Posts
Uti­li­sa­teurs
Likes
89  Vu
0
Début du sujet

Le pro­blème ren­con­tré est d’af­fi­cher une variable hexa­dé­ci­male sur un écran (DSPF).

Voi­ci le pro­blème posé ; une table DB2 contient le champ spé­cial de type ROWID. Ce champ SQLTYPE est trans­for­mé par le com­pi­la­teur en CHAR(40) Varying CCSID(*HEX). Dans un écran, je sou­haite affi­cher les dif­fé­rents champs d’un enre­gis­tre­ment de la table dont le ROWID mais ce type de variable n’existe pas en DDS.

Éti­quettes du sujet
1 Réponse 
0

La solu­tion est d’extraire la valeur hexa­dé­ci­mal sous forme carac­tère. L’API CVTHC per­met de le faire (et vice versa).

D’abord, voi­ci le prototype :

/If defined(Cvthc)
//---------------------------------------------------------
// Convert Hex to Character
dcl-pr cvthc extproc(*dclcase);
 *n pointer value; // receiver pointer
 *n pointer value; // source pointer
 *n int(10) value; // receiver length
end-pr;
/endif 

Il faut décla­rer la variable d’entrée ( valeur à conver­tir) dans le source RPGLE

// Gestion du ROWID
Dcl-s g_Rowidlots SQLTYPE(ROWID);  

et celle de sor­tie (valeur conver­tie) dans l’écran.

A            ZROWIDLOTS    84   O 24  4COLOR(WHT)     

Ensuite voi­ci com­ment elle est uti­li­sé en RPGLE :

cvthc(%addr(zrowidlots): %addr(g_rowidlots): %Len(g_rowidlots)*2);  //make hex 

Sur l’écran nous obtenons :

Convert Hex to Cha­rac­ter (CVTHC)

Uti­li­zing MI Func­tions in RPG Programs

CONVERTIR DES VARIABLES HEXADÉCIMALES EN CARACTÈRES CONVERT HEX TO CHARACTER (CVTHC)

Share :