Page 1 sur 1

Sous-fichier de message

Posté : mar. 12 août 2025, 15:34:00
par bvaron
Petite question toute bête, j'ai un programme 5250 d'affichage sélectif de suivis avec un sous fichier (SF+SFCTL) et un sous-fichier de message général dans l'écran (MSGSFL+MSGCTL).
J'envoie les messages par l'API QMHSNDPM qui se trouve dans une fonction, dans un *SRVPGM, pas de souci, tout fonctionne aux petits oignons.
Mon problème survient quand j'ajoute un format "WINDOW" à ce programme, pour pouvoir faire des sélections supplémentaires.
Je voudrais, si l'utilisateur à commis une erreur, envoyer le message d'erreur dans la fenêtre. (dernière ligne)
Malheureusement, les messages sont tous captés par le sous-fichier de message général du fichier écran.

J'imagine que je dois conditionner un mot clé dans le MSGCTL pour le désactiver pendant le traitement du format, mais là, je sèche.
(une solution simple, serait de déporter le traitement de mon écran supplémentaire dans un autre *PGM, mais je pense que ça peut se faire plus simplement)

DDS message Subfile source :

Code : Tout sélectionner

A*---------------------------------------------------------------- 
A* MESSAGE SUBFILE                                                 
A*---------------------------------------------------------------- 
A          R MSGSFL                    SFL                         
A*%%TS  SD  20250806  172638  IPLS09      REL-V7R3M0  5770-WDS     
A                                      SFLMSGRCD(27)               
A            MSGKEY                    SFLMSGKEY                   
A            MSPGMQ                    SFLPGMQ(10)                 
A*---------------------------------------------------------------- 
A* MESSAGE SUBFILE CONTROL RECORD                                  
A*---------------------------------------------------------------- 
A          R MSGCTL                    SFLCTL(MSGSFL)              
A*%%TS  SD  20190529  101543  BVA         REL-V7R2M0  5770-WDS     
A                                      OVERLAY                     
A                                      SFLDSP                      
A                                      SFLDSPCTL                   
A                                      SFLINZ                      
A N98                                  SFLEND                      
A                                      SFLSIZ(0010)                
A                                      SFLPAG(0001)                
A            MSPGMQ                    SFLPGMQ(10)                 
Merci pour votre aide :D

Re: Sous-fichier de message

Posté : mer. 13 août 2025, 07:34:26
par DTrijasson
Bonjour,

En simple, je dirais de ne pas utiliser l'api QMHSNDPM dans le traitement de la fenêtre pour avoir une gestion séparée de ton standard.

Damien.

Re: Sous-fichier de message

Posté : jeu. 14 août 2025, 08:01:43
par bvaron
Effectivement Damien, je ne vois pas d'autre solution pour le moment.
Pour compliquer un peu le tout, le programme est multi-langues, je vais devoir jour avec un OVRMSGF pour sélectionner le bon fichier de message. Mais ça va le faire. :D

Merci en tout cas d'avoir pris un moment pour te pencher sur mon problème.

Re: Sous-fichier de message

Posté : jeu. 14 août 2025, 14:24:14
par bvaron
Bon, je vous fait tout de même part de ma solution.

Code : Tout sélectionner

     A*----------------------------------------------------------------         
     A* WMODEL : Fenêtre modèle                                                 
     A*----------------------------------------------------------------         
     A          R WMODEL                                                        
     A                                      WINDOW(3 20 15 92 *NOMSGLIN)        
     A*----------------------------------------------------------------         
     A* W18    : Gestion des filtres                                            
     A*----------------------------------------------------------------         
     A          R W18                                                           
     A                                      WINDOW(WMODEL)                      
     A                                      OVERLAY                             
     A                                      RTNCSRLOC(&W18FORMAT &W18FIELD &W18-
     A                                      L)                                  
     A            W18L           4S 0H                                          
     A            W18FIELD      10A  H                                          
     A            W18FORMAT     10A  H                                          
     A            A_W18SEL       1A  P                                          
     A            A_W18FLT       1A  P                                          
     A            A_W18FLTT      1A  P                                          
     . . . 
     
Puis dans le RPG, en cas d'erreur, je fait un write du format contrôle sous fichier de message, du format de contrôle sous-fichier et du format cartouche de fonctions, puis enfin, un exfmt de ma fenêtre.

Le message apparaît en bas de l'écran, c'est suffisant.
L'important, c'est le mot clé *NOMSGLIN dans le format modèle.

Re: Sous-fichier de message

Posté : jeu. 14 août 2025, 15:25:15
par DTrijasson
Merci pour le partage.

Damien