IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

z/OS Discussion :

Obtenir le maximum via un sort


Sujet :

z/OS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut Obtenir le maximum via un sort
    Bonjour,

    Est-ce possible d'obtenir la valeur maximum d'une zone d'un fichier via un SORT?

    D'avance merci.

    a plus

    ted

  2. #2
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Plutôt par ICETOOL, facilement si c'est une zone numérique. exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //TOOLIN   DD *                              
      DISPLAY FROM(IN1) LIST(REPORT) BLANK       
      TITLE('LISTE DES PRODUITS') PAGE DATE 
      HEADER('LIBELLE')  ON(01,40,CH)            
      HEADER(MONTANT)    ON(50,6,ZD,C3)
      HEADER(QUANTITE)   ON(60,4,ZD,C3)            
      MAXIMUM('MAXIMUM') MINIMUM('MINIMUM')      
    /*
    Les valeurs mini et maxi des zones MONTANT (col. 50 sur 6 Octets) et QUANTITE seront éditées en fin d'état pour cet exemple simpliste, sans rupture.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Bonjour et merci pour ce début de réponse.

    Cependant, je ne connais pas du tout ICETOOL.
    quelle partie du code donne le maximium? le minimum?

    D'avance merci.

  4. #4
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Un JCL pour l'éxemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //STEP1   EXEC PGM=ICETOOL,REGION=2M
    //TOOLMSG  DD SYSOUT=*         
    //DFSMSG   DD SYSOUT=* 
    //REPORT   DD SYSOUT=* 
    //IN1      DD DISP=SHR,DSN=MON.FICHIER
    //TOOLIN   DD *
    Les commandes de l'exemple :
    DISPLAY liste simple FROM(DDname-input) LIST(DDname-output)
    HEADER(nom-de-colonne) ON(position,longueur,format et masque d'édition éventuel)
    MAXIMUM('intitulé pour le maxi') MINIMUM(....)
    Le simple fait d'indiquer MAXIMUM ou MINIMUM provoque l'édition des valeurs pour toutes des données de format numérique en fin d'état.
    C'est un exemple au plus simple facile à tester. ICETOOL offre un très grand nombre de possibilités, trop même pour une présentation rapide plus détaillée.

  5. #5
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Pour exemple et sans icetools, mais moins évident

    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
    //STEP1    EXEC PGM=SORT
    //SYSOUT   DD   SYSOUT=*
    //DFSMSG   DD   SYSOUT=*
    //REPORT   DD  SYSOUT=*,LRECL=100
    //SORTIN   DD  *
    ABCDE12345A111111111111111111111111111111111111111111111   
    ABCDE    1A1
    ABCDF    5  
    ABCDF    7  
    ZBCDF    7  
    ABCDF    7  
    //SYSIN DD *
       SORT FIELDS=(1,5,CH,A)
       OUTFIL FNAMES=REPORT,
              HEADER1=(2:'CODE',
                      10:'   COUNT',
                      20:'  TOTAL',
                      30:'MINIMUM',
                      40:'MAXIMUM',
                      50:'MOYENNE'),
              SECTIONS=(01,05,SKIP=0L,
              TRAILER3=(2:01,05,
                10:COUNT,
                20:TOT=(006,5,ZD,LENGTH=08),
                30:MIN=(006,5,ZD,LENGTH=08),
                40:MAX=(006,5,ZD,LENGTH=08),
                50:AVG=(006,5,ZD,LENGTH=08))),
                NODETAIL,REMOVECC
    /*
    //*         NODETAIL,REMOVECC,OVERLAY=(100:X)
    //* SI LE LRELC DU FICHIER EN SORTIE         
    //*     EST PLUS GRAND QUE LE LRECL DU FICHIER EN ENTREE
    //*         UTILISER BUILD, OVERLAY, IFTHEN, OU IFOUTLEN
    //*         INFO SUR MESSAGE "ICE230A" DE DFSORT
    //*

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Toujours ICETOOL, mais encore plus simple que l'opérateur DISPLAY, l'opérateur STATS :


    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //ICETOOL EXEC PGM=ICETOOL,REGION=1024K
    //TOOLMSG DD SYSOUT=*
    //DFSMSG DD SYSOUT=*
    //TOOLIN DD *
     STATS FROM(INDD) ON(1,2,ZD)
    //INDD DD *
    01
    99
    05

    Et le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ICE628I 0 RECORD COUNT:  000000000000003
    ICE607I 0 STATISTICS FOR (1,2,ZD)      :
    ICE608I 0   MINIMUM:  +000000000000001, MAXIMUM:  +000000000000099
    ICE609I 0   AVERAGE:  +000000000000035, TOTAL  :  +000000000000105
    ICE602I 0 OPERATION RETURN CODE:  00
    Attention cependant à bien décrire la zone numérique à analyser ...

  7. #7
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //SORT     EXEC PGM=SORT
    //SYSOUT   DD  SYSOUT=*
    //SORTIN    DD  * 
    //SORTOUT DD  SYSOUT=*               
    //FICREST  DD  SYSOUT=*               
    //SYSIN     DD  *
     SORT FIELDS=(1,5,CH,D)
     OUTFIL STARTREC=1,ENDREC=1,OUTREC=(1,5)
    /*

  8. #8
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    ... Variante ( ICETOOL et STATS) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //ICETOOL EXEC PGM=ICETOOL,REGION=1024K
    //TOOLMSG DD SYSOUT=*
    //DFSMSG DD SYSOUT=*
    //TOOLIN DD *
     STATS FROM(INDD) ON(1,2,ZD) LMSG
    //INDD DD *
    01
    99
    05

    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ICE628I 0 RECORD COUNT:  000000000000003
    ICE607I 0 STATISTICS FOR (1,2,ZD)      :
    ICE648I 0   MINIMUM:  +0000000000000000000000000000001
    ICE648I 1   MAXIMUM:  +0000000000000000000000000000099
    ICE648I 2   AVERAGE:  +0000000000000000000000000000035
    ICE648I 3   TOTAL  :  +0000000000000000000000000000105
    ICE602I 0 OPERATION RETURN CODE:  00

Discussions similaires

  1. Obtenir login NT via PHP
    Par amano_ginji dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2013, 09h31
  2. Obtenir le versionCode via PhoneGap / Sencha
    Par frAydjwe dans le forum Android
    Réponses: 0
    Dernier message: 23/02/2012, 11h46
  3. Dépacker des zones via un sort
    Par ted the Ors dans le forum z/OS
    Réponses: 14
    Dernier message: 24/03/2009, 16h00
  4. Comment obtenir le maximum de performance (calcul) ?
    Par Matthieu Brucher dans le forum C++
    Réponses: 43
    Dernier message: 13/02/2009, 17h52
  5. Réponses: 2
    Dernier message: 29/03/2006, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo