Bonjour,
Quelqu'un aurait-il une solution pour afficher en couleur certains messages que nous recevons sur l'écran via DSPMSG?
merci
Bonjour,
Quelqu'un aurait-il une solution pour afficher en couleur certains messages que nous recevons sur l'écran via DSPMSG?
merci
Il faut concatener un code hexa contenant la couleur avec ton message.
Exemble
CHGVAR &MES VALUE( x'22' tcat &MES).
Le message sera en White
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 D White C CONST( X'22' ) D White_UL C CONST( X'26' ) D White_RI C CONST( X'23' ) D White_RI_CS C CONST( X'33' ) D PR_White C CONST( X'A2' ) D PR_White_UL C CONST( X'A6' ) D PR_White_RI C CONST( X'A3' ) D PR_White_RI_CS C CONST( X'B3' ) D Green C CONST( X'20' ) D Green_RI C CONST( X'21' ) D Green_UL C CONST( X'24' ) D Green_UL_RI C CONST( X'25' ) D PR_Green C CONST( X'A0' ) D PR_Green_RI C CONST( X'A1' ) D PR_Green_UL C CONST( X'A4' ) D PR_Green_UL_RI C CONST( X'A5' ) D Red C CONST( X'28' ) D Red_RI C CONST( X'29' ) D Red_HI C CONST( X'2A' ) D Red_HI_RI C CONST( X'2B' ) D Red_UL C CONST( X'2C' ) D Red_UL_RI C CONST( X'2D' ) D Red_UL_BL C CONST( X'2E' ) D PR_Red C CONST( X'A8' ) D PR_Red_RI C CONST( X'A9' ) D PR_Red_HI C CONST( X'AA' ) D PR_Red_HI_RI C CONST( X'AB' ) D PR_Red_UL C CONST( X'AC' ) D PR_Red_UL_RI C CONST( X'AD' ) D PR_Red_UL_BL C CONST( X'AE' ) D Turq_CS C CONST( X'30' ) D Turq_CS_RI C CONST( X'31' ) D Turq_UL_CS C CONST( X'34' ) D Turq_UL_RI_CS C CONST( X'35' ) D PR_Turq_CS C CONST( X'B0' ) D PR_Turq_CS_RI C CONST( X'B1' ) D PR_Turq_CS_UL C CONST( X'B4' ) D PR_Turq_CSULRI C CONST( X'B5' ) D Yellow_CS C CONST( X'32' ) D Yellow_CS_UL C CONST( X'36' ) D PR_Yellow_CS C CONST( X'B2' ) D PR_Yellow_CSUL C CONST( X'B6' ) D Pink C CONST( X'38' ) D Pink_RI C CONST( X'39' ) D Pink_UL C CONST( X'3C' ) D Pink_UL_RI C CONST( X'3D' ) D PR_Pink C CONST( X'B8' ) D PR_Pink_RI C CONST( X'B9' ) D PR_Pink_UL C CONST( X'BC' ) D PR_Pink_UL_RI C CONST( X'BD' ) D Blue C CONST( X'3A' ) D Blue_RI C CONST( X'3B' ) D Blue_UL C CONST( X'3E' ) D PR_Blue C CONST( X'BA' ) D PR_Blue_RI C CONST( X'BB' ) D PR_Blue_UL C CONST( X'BE' )
Désolé mais cela ne fonctionne pas, déjà sur le chgvar il y a le message "Opérande incorrect ou opérateur manquant dans VALUE" ei si je passe X'22' dans une variable que je concatène dans le chgvar il y un caractère ascii qui s'affiche et non la couleur blanche (Le Balayage (List) du répertoire)
Voici un CLP et sa commande (glané sur le net) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PGM DCL VAR(&ROUGE) TYPE(*CHAR) LEN(1) VALUE(X'28') DCL VAR(&MESS) TYPE(*CHAR) LEN(100) DCL VAR(&VERT) TYPE(*CHAR) LEN(1) VALUE(X'20') CHGVAR VAR(&MESS) VALUE(&ROUGE !! 'Hello World' !! &VERT) SNDPGMMSG MSG(&MESS) MSGTYPE(*INFO)
CRTCMD CMD(SNDCOLMSG) PGM(SNDCOLMSGC)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SNDCOLMSG: PGM PARM(&MSG &COLOR &MSGTYPE) DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&COLOR) TYPE(*CHAR) LEN(1) DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10) DCL VAR(&LASTBYTE) TYPE(*CHAR) LEN(1) VALUE(X'20') DCL VAR(&TEXT) TYPE(*CHAR) LEN(82) CHGVAR VAR(&TEXT) VALUE(&COLOR *CAT &MSG *TCAT &LASTBYTE) SNDPGMMSG MSG(&TEXT) TOPGMQ(*EXT) MSGTYPE(&MSGTYPE) SNDPGMMSG MSG(&TEXT) MSGTYPE(&MSGTYPE) END: ENDPGM
Puis sndcolmsg msg('Hello World') color(*blue)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 SNDCOLMSG: CMD PROMPT('Send colored message') PARM KWD(MSG) TYPE(*CHAR) LEN(80) PROMPT('Message') + DFT('Texte de Message Vide') PARM KWD(COLOR) TYPE(*CHAR) LEN(1) RSTD(*YES) + DFT(*GREEN) SPCVAL( + (*GREEN X'20') + (*GREEN_REVERSE X'21') + (*WHITE X'22') + (*WHITE_REVERSE X'23') + (*GREEN_UNDERSCORE X'24') + (*GREEN_UNDERSCORE_REVERSE X'25') + (*WHITE_UNDERSCORE X'26') + (*RED X'28') + (*RED_REVERSE X'29') + (*RED_BLINK X'2A') + (*RED_REVERSE_BLINK X'2B') + (*RED_UNDERSCORE X'2C') + (*RED_UNDERSCORE_REVERSE X'2D') + (*RED_UNDERSCORE_BLINK X'2E') + (*TURQUOISE X'30') + (*TURQUOISE_REVERSE X'31') + (*YELLOW X'32') + (*YELLOW_REVERSE X'33') + (*TURQUOISE_UNDERSCORE X'34') + (*TURQUOISE_UNDERSCORE_REVERSE X'35') + (*YELLOW_UNDERSCORE X'36') + (*PINK X'38') + (*PINK_REVERSE X'39') + (*BLUE X'3A') + (*BLUE_REVERSE X'3B') + (*PINK_UNDERSCORE X'3C') + (*PINK_UNDERSCORE_REVERSE X'3D') + (*BLUE_UNDERSCORE X'3E') + ) PROMPT('Color') PARM KWD(MSGTYPE) TYPE(*CHAR) LEN(10) RSTD(*YES) + DFT(*INFO) VALUES(*INFO *COMP) + PROMPT('Message type')
Bonjour.
Bravo K2R400 pour les exemples, je me suis permis d'apporter quelques rectifs et ajouts par respect à la qualité des exemples.
Merci
le 1er exemple ne fonctionne pas par contre l'exemple avec le CMD est ok. Pourquoi le 1er exemple ne fonctionne pas?
quand on met SNDPGMMSG MSG(&MESS) MSGTYPE(*INFO) OK cela fonctionne mais le message est sur l'écran en cours, par contre si je mets SNDPGMMSG MSG(&MESS) TOMSGQ(BRUNO) MSGTYPE(*INFO) le message arrive bien dans la file d'attente mais non en couleur.
Que faut-il faire?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager