Com­ment affi­cher un…
 
Notifications 
Reti­rer tout

Com­ment affi­cher une sous-fichier de mes­sage en dehors d’une fenêtre ?

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

Bon­jour,

Com­ment fait-on pour affi­cher un sous-fichier de mes­sage en ligne 24 et qui gére­rait les mes­sages d’une fenêtre ?

Pour l’ins­tant, je n’ai trou­vé que la pos­si­bi­li­té de mettre le sous-fichier de mes­sage dans la fenêtre. Mais je ne le sou­haite pas pour ne pas avoir à créer un 2me sous-fichier de mes­sage pour la fenêtre.

Voi­là ce que j’ai codé pour l’ins­tant pour la par­tie écran :

     A          R RECAP                     WINDOW(7 11 10 50 *NOMSGLIN +
     A                                      *NORSTCSR)
     A                                      OVERLAY
     A N26                                  CF10
     A                                      CF12
     A            ACTION        96   B  1  1CNTFLD(48)
     A                                      COLOR(WHT)
     A                                      CHGINPDFT
     A                                      DSPATR(PR)
     A            ZCODUEX1  R        B  4  2REFFLD(EREPF/CODUEX EREPP)
     A                                      COLOR(WHT)
     A                                      EDTCDE(Z)
     A            ZAADRUE1  R        O  4 12REFFLD(EREPF/AADRUE EREPP)
     A                                  6  3'Avec'
     A                                      COLOR(WHT)
     A            ZCODUEX2  R        B  7  2REFFLD(EREPF/CODUEX EREPP)
     A                                      COLOR(WHT)
     A                                      EDTCDE(Z)
     A            ZAADRUE2  R        O  7 12REFFLD(EREPF/AADRUE EREPP)
     A                                  9  1'F1=Aide'
     A                                      COLOR(BLU)
     A                                  9 18'F10=Validation'
     A                                      COLOR(BLU)
     A  26                                  DSPATR(ND)
     A                                  9 34'F12=Annuler'
     A                                      COLOR(BLU)
     A            ZCBASE1        1   B  5  2COLOR(WHT)
     A            ZCBASE2        1   B  8  2COLOR(WHT)
     A            ZLIBBASE1      9   O  5  4
     A            ZLIBBASE2      9   O  8  4
     A                                  9 10'F3=Exit'
     A                                      COLOR(BLU)    
     A          R MSGSFL                    SFL
     A                                      SFLMSGRCD(24)
     A            WMGKEY                    SFLMSGKEY
     A            WPGMQ                     SFLPGMQ
     A          R MSGSFLCTL                 SFLCTL(MSGSFL)
     A                                      SFLDSPCTL
     A                                      SFLDSP
     A                                      SFLPAG(1)
     A                                      SFLSIZ(1)
     A                                      OVERLAY
     A  10                                  SFLINZ
     A  09                                  SFLEND(*PLUS)
     A                                      FRCDTA
     A            WPGMQ                     SFLPGMQ 

Et voi­ci pour la par­tie programme :

// --------------------------------------------------
// Procedure name: Attachement
// Purpose: Affiche une fenêtre où est demandée qui sont les UE
//          que l'on souhaite liées ensemble
// Returns:
// --------------------------------------------------
DCL-PROC Attachement ;
  Dcl-s l_Anomalie Ind;
  Dcl-c c_lien_demande 'Quelles affaires voulez-vous liées ensemble';
  Dcl-s l_Ind_non_liee_1 Ind;
  Dcl-s l_Ind_non_liee_2 Ind;
  Dcl-s l_Uuid1 Like(r_Uuid);
  Dcl-s l_Uuid2 Like(r_Uuid);
  Dcl-s Validation_OK Ind;

  Dcl-ds Ds_Bnuexp Extname('BNUEXP') END-DS;

  Ndvalidation = *On;

  // Effacement des sous-fichiers de messages
  Msg_clrq();

  Dow not Annuler
   And not Validation_OK;
    Action = c_lien_demande;
    Write CTL1;
    Write Msgsflctl;
    Exfmt Recap;
    l_anomalie=*Off;
    // Effacement des sous-fichiers de messages
    Msg_clrq();

    l_anomalie = Control_attachement( Zcoduex1
                                     :Zcbase1
                                     :l_Ind_non_liee_1
                                     :Zcoduex2
                                     :Zcbase2
                                     :l_Ind_non_liee_2 );

    IF l_anomalie;
      // anomalie
      l_anomalie = *OFF;
    ELSE;
      If Not Valider;
        If Ndvalidation = *On;
          Ndvalidation = *Off;
          Msg_dsp('IOD0003');
          Iter;
        Endif;
      Else;
        // confirmation  pour Création
        Validation_OK=VALID( l_Ind_non_liee_1
                            :l_Uuid1
                            :l_Ind_non_liee_2
                            :l_Uuid2);

      ENDIF;
    Endif;
  Enddo;

  return ;
END-PROC ;   
// --------------------------------------------------
// Procedure name: Control_attachement
// Purpose:        Vérification que les saisis d'attachement sont corr...
//                          ecte
// Returns:
// --------------------------------------------------
DCL-PROC Control_attachement ;
  DCL-PI *N IND;
    p_coduex_1 Like(r_Code_Unite_Exploit);
    p_cbase_1 Like(r_Code_base);
    p_Ind_non_liee_1 Ind;
    p_coduex_2 Like(r_Code_Unite_Exploit);
    p_cbase_2 Like(r_Code_base);
    p_Ind_non_liee_2 Ind;
  END-PI ;

  Dcl-s C_Application Char(10) Inz('APPLI');
  Dcl-s l_Uuid1 Like(r_Uuid);
  Dcl-s l_Uuid2 Like(r_Uuid);
  Dcl-s l_Anomalie Ind;

  EXEC SQL
    SELECT Aadrue
      INTO :Zaadrue1
      FROM Bnuexp
      WHERE Coduex = :P_Coduex_1;
  If Sqlcode = 100;
    l_anomalie=*On;
    G_MGDT = %Editc(p_coduex_1:'X');
    Msg_dsp('IOD0001':G_MGDT);
  ENDIF;

  EXEC SQL
    SELECT Aadrue
      INTO :Zaadrue2
      FROM Bnuexp
      WHERE Coduex = :P_Coduex_2;
  If Sqlcode = 100;
    l_anomalie=*On;
    G_MGDT = %Editc(p_coduex_2:'X');
    Msg_dsp('IOD0001':G_MGDT);
  ENDIF;

  EXEC SQL
    SELECT Csclib
      INTO :Zlibbase1
      FROM Bntabp
      WHERE Cscprm = :C_Application
            AND Csccod = :P_Cbase_1;
  If Sqlcode = 100;
    l_anomalie=*On;
    G_MGDT = Zcbase1;
    Msg_dsp('IOD0002':G_MGDT);
  ENDIF;

  EXEC SQL
    SELECT Csclib
      INTO :Zlibbase2
      FROM Bntabp
      WHERE Cscprm = :C_Application
            AND Csccod = :P_Cbase_2;
  If Sqlcode = 100;
    l_anomalie=*On;
    G_MGDT = Zcbase2;
    Msg_dsp('IOD0002':G_MGDT);
  ENDIF;

  EXEC SQL
    SELECT Cidmcu
      INTO :L_Uuid1
      FROM Bnxuep
      WHERE Coduex = :P_Coduex_1
            AND Cbaseu = :P_Cbase_1;;
  p_Ind_non_liee_1=(Sqlcode=100);

  EXEC SQL
    SELECT Cidmcu
      INTO :L_Uuid2
      FROM Bnxuep
      WHERE Coduex = :P_Coduex_2
            AND Cbaseu = :P_Cbase_2;
  p_Ind_non_liee_2=(Sqlcode=100);

  If not p_Ind_non_liee_1
    and not p_Ind_non_liee_2;
    l_anomalie=*On;
    G_MGDT = %Editc(p_coduex_1:'X') + %Editc(p_coduex_2:'X');
    Msg_dsp('IOD0004':G_MGDT);
  Endif;

  return l_anomalie ;
END-PROC;    

Cor­dia­le­ment,

Éti­quettes du sujet
1 Réponse 
0

J’ai trou­vé 😀 , il fal­lait ali­men­ter WPGMQ avec le nom du pro­gramme et non pas avec ‘* ’ dans le début de la pro­cé­dure prin­ci­pale. Quelle nouille!!! 😫 

Share :