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

WinDev Discussion :

Lenteur ouverture fenêtre et aperçu visuel de champ


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut Lenteur ouverture fenêtre et aperçu visuel de champ
    Une des fenêtres de mon projet met un temps assez long à s'ouvrir (environ 5-6 secondes) et encore je n'ai pas tout rentrer le code qu'elle doit contenir.

    Description de cette fenêtre : Elle contient un champ "onglet" avec 10 onglets. Dans chacun des onglets des champs saisie. (160 par onglets)
    A l'initialisation du champ onglet un code me permet de remplir un certains nombres de ces champs saisie.
    Et dans 80 d'entre eux, un code est mis dans la partie "à chaque modification". Pour information je joins ci dessous le début du résumé des temps à l'ouverture du projet et de cette fenêtre.(j'ai laissé juste la fonction et le temps d'un appel)

    Exécution complète 6 s 739 ms
    Total Fenêtre "FEN_Menu General" 6 s 738 ms
    Clic sur BTN_Bouton15 5 s 724 ms
    General.ONG_Menu_General
    OuvreFille() 5 s 724 ms General.ONG_Menu_General.BTN_Bouton15
    Clic sur BTN_Bouton25 738 ms
    General.ONG_Menu_General
    Abandonne() 738 ms
    General.ONG_Menu_General.BTN_Bouton25
    Ouvre( "FEN_Menu General" ) 158 ms
    Clic sur BTN_Bouton38 111 ms
    FEN_Qualif_DH.ONG_Onglet1
    Abandonne() 111 ms FEN_Qualif_DH.ONG_Onglet1.BTN_Bouton38
    A chaque modification de SAI_DH_Q_A_S421 29 ms
    FEN_Qualif_DH.ONG_Onglet1
    Détails Ouvre fille
    Traitement interne au moteur d'exécution 955 ms
    A chaque modification de SAI_DH_Q_A_S421 29 ms
    A chaque modification de SAI_DH_Q_A_S510 29 ms
    Initialisation de ONG_Onglet1 27 ms
    A chaque modification de SAI_DH_Q_A_S402 26 ms
    A chaque modification de SAI_DH_Q_A_S368 26 ms
    A chaque modification de SAI_DH_Q_A_S308 26 ms
    A chaque modification de SAI_DH_Q_A_S310 26 ms
    A chaque modification de SAI_DH_Q_A_S404 25 ms


    D'autre part, sur une partie de ces champs saisie, j'ai mis une forme rectangle avec une opacité de 20%. Sur le premier onglet, les champs saisie deviennent gris quand la forme superposent ces derniers et dans les autres onglets il n'y en a que quelques uns.
    Tous les champs ont été dupliqué du premier onglet sur les suivants.
    j'ai regardé tous les styles et l'état de ces champs mais rien me paraît anormal.
    A savoir qu'à un moment de mon projet, j'ai eu un code "jouant" sur l'état grisé des champs du premier onglet.Est-ce là le fait que ces derniers sont gris lorsque la forme les recouvre ?

  2. #2
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello nirannor,
    Ben ça, c'est de la fenetre avec des champs. Trève de rigolade, là, comme cela, sauf à vous dire ouvrefille met 5.724 secondes, il faudrait un peu de code pour savoir 'là ou ça fait mal'. De plus, tant de champs doivent servir à quelque chose, certainement, mais n'y-a-t-il pas une autre manière d'y arriver?
    Vous mentionnez qu'une copie de champs a été réalisée à partir du premier onglet: ce pourrait-il que ces champs soient considérés comme indentés (tableau)? Il me faudrait un bout de code et de description champs (même nom mais avec un indice en principe si ce que je crois se concrétise).
    Enfin, si je calcule bien, 10 onglet à 160 champs = 1600 champs, sans traitement, mais à 0.001 secondes pour chaque champs, nous en somme déjà à 1.6 secondes (soit 23% du temps incriminés - ça commence à causer). A rajouter éventuellement une ouverture avec effet visuel + opacite, on doit arriver facilement aux 2 secondes (hypothèse...).
    Et pour finir, dernière piste, l'ordre d'initialisation des champs (qui peut avoir son importance sur autant de champs (je le redis, est-ce bien utilie?).
    En conclusion, plus d'infos serait bienvenue...
    Amicalement
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  3. #3
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Attention, si l'option "mémoriser la valeur" est cochée pour les champs, leur code de modification est exécuté à l'ouverture de la fenêtre
    Ce qui vu le nombre de champs peut prendre un peu de temps ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par hpascal Voir le message
    Bonjour
    Attention, si l'option "mémoriser la valeur" est cochée pour les champs, leur code de modification est exécuté à l'ouverture de la fenêtre
    Ce qui vu le nombre de champs peut prendre un peu de temps ...
    Effectivement, la plupart des champs ont cette option.


    Pour répondre à EDM-TAHITI, je posterai quelques bouts de code cet après-midi. Mais en attendant je vais tenter d'expliquer ce que j'ai créer.

    Cette fenêtre doit me permettre de renseigner les résultats de match pour un tournoi de badminton. Chaque onglet correspond à une poule variant de 3 à 5 joueurs (soit 10 matchs au maximum)
    Sur chaque onglet 20 champs correspondant au nom de l'équipe (10 match x2). En face chaque nom d'équipe, 5 champs correspondant aux points des sets (Qte 3), points acquis(valeur = 3 pour victoire en 2 sets, 2 pour victoire en 3 sets, 1 pour défaite en 3 sets et 0 pour défaite en 2 sets) et victoire (valeur=1 ou 0)
    Ensuite sur chaque onglet, il y a un récapitulatif permettant de faire un classement. Récapitulatif comprenant 5 champs pour les noms des équipes et face à ces derniers 6 autres champs (points, victoire, points marqués, points encaissés, différence et classement)

    Pour les champs correspondant aux équipes, ils sont remplis lors de l'initialisation de l'onglet.
    Pour les champs des sets, les valeurs sont mémorisées et un code me permet à chaque modification de renseignés les champs points acquis et victoire.
    Pour les autres champs (classement), ils découlent d'une procédure inclue dans chaque champs des sets afin que le classement se mette à jour à chaque modification des résultats entrés.

    J'espère que ma description restera assez claire.

    Enfin pour situer mon niveau, je ne suis qu'à la découverte de windev. Beaucoup de commandes me sont encore inconnues.


    Voici les codes :

    Initialisation de l'onglet :
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    variables()
     
    NDH est un entier
    TDH est un entier
    PADH est un entier
    PBDH est un entier
    PCDH est un entier
    PDDH est un entier
    PEDH est un entier
    PFDH est un entier
    PGDH est un entier
    PHDH est un entier
     
     
     
    HLit(Variables_tirage,1)
    NDH= Variables_tirage.val_var
    HLit(Variables_tirage,3)
    TDH= Variables_tirage.val_var
    HLit(Variables_tirage,5)
    PADH= Variables_tirage.val_var
    HLit(Variables_tirage,6)
    PBDH= Variables_tirage.val_var
    HLit(Variables_tirage,7)
    PCDH= Variables_tirage.val_var
    HLit(Variables_tirage,8)
    PDDH= Variables_tirage.val_var
    HLit(Variables_tirage,9)
    PEDH= Variables_tirage.val_var
    HLit(Variables_tirage,10)
    PFDH= Variables_tirage.val_var
    HLit(Variables_tirage,11)
    PGDH= Variables_tirage.val_var
    HLit(Variables_tirage,12)
    PHDH= Variables_tirage.val_var
     
     
     
     
    SAI_Nbre_PouleA_DH_qualif..Valeur=PADH
    SAI_Nbre_PouleA_DH_qualif2..Valeur=PBDH
    SAI_Nbre_PouleA_DH_qualif3..Valeur=PCDH
    SAI_Nbre_PouleA_DH_qualif4..Valeur=PDDH
    SAI_Nbre_PouleA_DH_qualif5..Valeur=PEDH
    SAI_Nbre_PouleA_DH_qualif6..Valeur=PFDH
    SAI_Nbre_PouleA_DH_qualif7..Valeur=PGDH
    SAI_Nbre_PouleA_DH_qualif8..Valeur=PHDH
     
     
    HExécuteRequête(REQ_PouleA_qualif)
     
    SI SAI_Nbre_PouleA_DH_qualif>0 ALORS
    	HLit(REQ_PouleA_qualif,1)
    	SAI_PouleA_DH_ID1..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI1..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI21..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,2)
    	SAI_PouleA_DH_ID2..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI2..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI22..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,3)
    	SAI_PouleA_DH_ID3..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI23..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    SI SAI_Nbre_PouleA_DH_qualif<5
    HLit(REQ_PouleA_qualif,1)
    SAI_PouleA_DH_SAI5..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    HLit(REQ_PouleA_qualif,3)
    SAI_PouleA_DH_SAI6..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    SI SAI_Nbre_PouleA_DH_qualif=3 ALORS
     
    	HLit(REQ_PouleA_qualif,2)
    	SAI_PouleA_DH_SAI3..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,3)
    	SAI_PouleA_DH_SAI4..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    SI SAI_Nbre_PouleA_DH_qualif=4 ALORS
     
    	HLit(REQ_PouleA_qualif,1)
    	SAI_PouleA_DH_SAI9..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,2)
    	SAI_PouleA_DH_SAI7..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,3)
    	SAI_PouleA_DH_SAI12..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,4)
    	SAI_PouleA_DH_SAI10..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    SI SAI_Nbre_PouleA_DH_qualif>3 ALORS
     
    	HLit(REQ_PouleA_qualif,2)
    	SAI_PouleA_DH_SAI11..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,3)
    	SAI_PouleA_DH_SAI3..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,4)
    	SAI_PouleA_DH_ID4..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI4..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI24..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI8..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    SI SAI_Nbre_PouleA_DH_qualif=5 ALORS
     
    	HLit(REQ_PouleA_qualif,1)
    	SAI_PouleA_DH_SAI7..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI13..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI19..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,2)
    	SAI_PouleA_DH_SAI5..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI17..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,3)
    	SAI_PouleA_DH_SAI9..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI14..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI18..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,4)
    	SAI_PouleA_DH_SAI12..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI15..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
     
    	HLit(REQ_PouleA_qualif,5)
    	SAI_PouleA_DH_ID5..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI25..Valeur=REQ_PouleA_qualif.IDEquipes
    	SAI_PouleA_DH_SAI6..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI10..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI16..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    	SAI_PouleA_DH_SAI20..Valeur=REQ_PouleA_qualif.Prénom1+" / "+REQ_PouleA_qualif.Prénom2
    SINON
    FIN
     
    HAnnuleDéclaration (REQ_PouleA_qualif)
     
     
    //HExécuteRequête(REQ_PouleB_qualif)
    //HExécuteRequête(REQ_PouleC_qualif)
    //HExécuteRequête(REQ_PouleD_qualif)
    //HExécuteRequête(REQ_PouleE_qualif)
    //HExécuteRequête(REQ_PouleF_qualif)
    //HExécuteRequête(REQ_PouleG_qualif)
    //HExécuteRequête(REQ_PouleH_qualif)
    procédure variables:
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    PROCEDURE variables()
     
    HCréation(Variables_tirage)
     
    HRAZ(Equipes)//initialise les valeurs en mémoire
    HRAZ(Liste_match_qualif)
     
    //NDH est un entier //variable correspondant au nombre d'équipe en DH
    //NDM est un entier //variable correspondant au nombre d'équipe en DM
    //TDH est un entier //variable correspondant au nombre de têtes de série en DH
    //TDM est un entier //variable correspondant au nombre de têtes de série en DM
     
    HExécuteRequête(REQ_NDH) //exécute la requête	
    //NDH=HNbEnr(REQ_NDH) //compte le nombre de lignes dans la requête
    HExécuteRequête(REQ_NDM) //exécute la requête
    //NDM=HNbEnr(REQ_NDM) //compte le nombre de lignes dans la requête
    HExécuteRequête(REQ_TDH) //exécute la requête
    //TDH=HNbEnr(REQ_TDH) //compte le nombre de lignes dans la requête
    HExécuteRequête(REQ_TDM) //exécute la requête
    //TDM=HNbEnr(REQ_TDM) //compte le nombre de lignes dans la requête
     
    HOuvre(Variables_tirage)
    Variables_tirage.nom_var="NDH"
    Variables_tirage.val_var= HNbEnr(REQ_NDH)
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="NDM"
    Variables_tirage.val_var= HNbEnr(REQ_NDM)
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="TDH"
    Variables_tirage.val_var= HNbEnr(REQ_TDH)
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="TDM"
    Variables_tirage.val_var= HNbEnr(REQ_TDM)
    HAjoute(Variables_tirage)
     
    HLitRecherche(Grille,Nbre_joueurs, HNbEnr(REQ_NDH)) //retrouve la ligne dans la table grille correspondant aux nombres d'équipes DH
    HOuvre(Variables_tirage)
    Variables_tirage.nom_var="PADH"
    Variables_tirage.val_var=Grille.PouleA
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PBDH"
    Variables_tirage.val_var=Grille.PouleB
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PCDH"
    Variables_tirage.val_var=Grille.PouleC
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PDDH"
    Variables_tirage.val_var=Grille.PouleD
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PEDH"
    Variables_tirage.val_var=Grille.PouleE
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PFDH"
    Variables_tirage.val_var=Grille.PouleF
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PGDH"
    Variables_tirage.val_var=Grille.PouleG
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PHDH"
    Variables_tirage.val_var=Grille.PouleH
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="NbreP"
    Variables_tirage.val_var=Grille.Nbre_poule
    HAjoute(Variables_tirage)
     
     
     
    //NbrP est un entier //variable correspondant au nombre de poules
     
     
    //NbrP= Grille.Nbre_poule //valeur du nombre de poules
     
     
    HLitRecherche(Grille,Nbre_joueurs, HNbEnr(REQ_NDM)) //retrouve la ligne dans la table grille correspondant aux nombres d'équipes DM
     
    //PADM est un entier //varaible correspondant au nombre de joueurs dans la poule A
    //PBDM est un entier //varaible correspondant au nombre de joueurs dans la poule b
    //PCDM est un entier //varaible correspondant au nombre de joueurs dans la poule C
    //PDDM est un entier //varaible correspondant au nombre de joueurs dans la poule D
    //PEDM est un entier //varaible correspondant au nombre de joueurs dans la poule E
    //PFDM est un entier //varaible correspondant au nombre de joueurs dans la poule F
    //PGDM est un entier //varaible correspondant au nombre de joueurs dans la poule G
    //PHDM est un entier //varaible correspondant au nombre de joueurs dans la poule H
     
    //NbrPM est un entier //variable correspondant au nombre de poules
     
    //PADM = Grille.PouleA //valeur de la poule A
    //PBDM = Grille.PouleB //valeur de la poule B
    //PCDM = Grille.PouleC //valeur de la poule C
    //PDDM = Grille.PouleD //valeur de la poule D
    //PEDM = Grille.PouleE //valeur de la poule E
    //PFDM = Grille.PouleF //valeur de la poule F
    //PGDM = Grille.PouleG //valeur de la poule G
    //PHDM = Grille.PouleH //valeur de la poule H
     
    //NbrPM= Grille.Nbre_poule //valeur du nombre de poules
     
    HOuvre(Variables_tirage)
    Variables_tirage.nom_var="PADM"
    Variables_tirage.val_var=Grille.PouleA
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PBDM"
    Variables_tirage.val_var=Grille.PouleB
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PCDM"
    Variables_tirage.val_var=Grille.PouleC
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PDDM"
    Variables_tirage.val_var=Grille.PouleD
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PEDM"
    Variables_tirage.val_var=Grille.PouleE
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PFDM"
    Variables_tirage.val_var=Grille.PouleF
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PGDM"
    Variables_tirage.val_var=Grille.PouleG
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="PHDM"
    Variables_tirage.val_var=Grille.PouleH
    HAjoute(Variables_tirage)
    Variables_tirage.nom_var="NbrePM"
    Variables_tirage.val_var=Grille.Nbre_poule
    HAjoute(Variables_tirage)
     
     
     
     
    HAnnuleDéclaration (REQ_NDH)
    HAnnuleDéclaration (REQ_NDM)
    HAnnuleDéclaration (REQ_TDH)
    HAnnuleDéclaration (REQ_TDM)
    Code d'un champ saisie (modification)
    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
    SI SAI_DH_Q_A_S2=21 ET SAI_DH_Q_A_S1=21 ET SAI_DH_Q_A_S3=0 ALORS
    	SAI_DH_Q_A_Pts1=3
    	SAI_DH_Q_A_V1=1
    SINON SI (SAI_DH_Q_A_S1=21 ET SAI_DH_Q_A_S2<21 ET SAI_DH_Q_A_S3<11)OU(SAI_DH_Q_A_S1<21 ET SAI_DH_Q_A_S2=21 ET SAI_DH_Q_A_S3<11)
    	SAI_DH_Q_A_Pts1=1
    	SAI_DH_Q_A_V1=0
    SINON SI (SAI_DH_Q_A_S1=21 ET SAI_DH_Q_A_S2<21 ET SAI_DH_Q_A_S3=11)OU(SAI_DH_Q_A_S1<21 ET SAI_DH_Q_A_S2=21 ET SAI_DH_Q_A_S3=11)
    	SAI_DH_Q_A_Pts1=2
    	SAI_DH_Q_A_V1=1
    SINON SI SAI_DH_Q_A_S2<21 ET SAI_DH_Q_A_S1<21 ET SAI_DH_Q_A_S3=0 ALORS
    	SAI_DH_Q_A_Pts1=0
    	SAI_DH_Q_A_V1=0
    SINON SI SAI_DH_Q_A_S2>21 OU SAI_DH_Q_A_S1>21 OU SAI_DH_Q_A_S3>11 ALORS
    	Info("Erreur dans la saisie !!")
    SINON
    FIN
     
    SI SAI_DH_Q_A_Pts1+ SAI_DH_Q_A_Pts32 >3 ALORS
    	Info("Erreur dans la saisie !!")
    SINON
    FIN
     
    clas_DH_qualif_A()

    Procédure clas_DH_qualif_A
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    PROCEDURE clas_DH_qualif_A()
     
    SI SAI_Nbre_PouleA_DH_qualif =3 ALORS
     
    	SAI_DH_Q_A_Pts2= SAI_DH_Q_A_Pts1+ SAI_DH_Q_A_Pts35
    	SAI_DH_Q_A_Pts3= SAI_DH_Q_A_Pts32+ SAI_DH_Q_A_Pts33
    	SAI_DH_Q_A_Pts4= SAI_DH_Q_A_Pts34+ SAI_DH_Q_A_Pts36
     
    	SAI_DH_Q_A_Pts7= SAI_DH_Q_A_V1+ SAI_DH_Q_A_V5
    	SAI_DH_Q_A_Pts8= SAI_DH_Q_A_V2+ SAI_DH_Q_A_V3
    	SAI_DH_Q_A_Pts9= SAI_DH_Q_A_V4+ SAI_DH_Q_A_V6
     
    	SAI_DH_Q_A_Pts17= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15
    	SAI_DH_Q_A_Pts18= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9
    	SAI_DH_Q_A_Pts19= SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12+ SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18
     
    	SAI_DH_Q_A_Pts22= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18
    	SAI_DH_Q_A_Pts23= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12
    	SAI_DH_Q_A_Pts24= SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15
     
    	SAI_DH_Q_A_Pts12= SAI_DH_Q_A_Pts17- SAI_DH_Q_A_Pts22
    	SAI_DH_Q_A_Pts13= SAI_DH_Q_A_Pts18- SAI_DH_Q_A_Pts23
    	SAI_DH_Q_A_Pts14= SAI_DH_Q_A_Pts19- SAI_DH_Q_A_Pts24
     
     
     
    	Classem1 est un tableau dynamique de 3 par 5 entiers //nombre de lignes par nombre de colonnes
     
    	Classem1 [1,1]=SAI_PouleA_DH_ID1..ValeurAffichée
    	Classem1 [1,2]= SAI_DH_Q_A_Pts2..ValeurAffichée
    	Classem1 [1,3]= SAI_DH_Q_A_Pts7..ValeurAffichée
    	Classem1 [1,4]= SAI_DH_Q_A_Pts12..ValeurAffichée
    	Classem1 [1,5]= SAI_DH_Q_A_Pts17..ValeurAffichée
    	Classem1 [2,1]= SAI_PouleA_DH_ID2..ValeurAffichée
    	Classem1 [2,2]= SAI_DH_Q_A_Pts3..ValeurAffichée
    	Classem1 [2,3]= SAI_DH_Q_A_Pts8..ValeurAffichée
    	Classem1 [2,4]= SAI_DH_Q_A_Pts13..ValeurAffichée
    	Classem1 [2,5]= SAI_DH_Q_A_Pts18..ValeurAffichée
    	Classem1 [3,1]= SAI_PouleA_DH_ID3..ValeurAffichée
    	Classem1 [3,2]= SAI_DH_Q_A_Pts4..ValeurAffichée
    	Classem1 [3,3]= SAI_DH_Q_A_Pts9..ValeurAffichée
    	Classem1 [3,4]= SAI_DH_Q_A_Pts14..ValeurAffichée
    	Classem1 [3,5]= SAI_DH_Q_A_Pts19..ValeurAffichée
     
    	TableauTrie(Classem1, ttColonne, "-2;-3;-4;-5") 
     
    	x1 est un numérique
    	x2 est un numérique
    	x3 est un numérique
     
    	x1 = Classem1 [1,1]
    	x2 = Classem1 [2,1]
    	x3 = Classem1 [3,1]
     
    	SI x1= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=1
    	SINON SI x2= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=2
    	SINON SI x3= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=3
    	SINON
    	FIN
     
    	SI x1= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=1
    	SINON SI x2= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=2
    	SINON SI x3= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=3
    	SINON
    	FIN
     
    	SI x1= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=1
    	SINON SI x2= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=2
    	SINON SI x3= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=3
    	SINON
    	FIN
     
    SINON SI SAI_Nbre_PouleA_DH_qualif =5 ALORS
     
    	SAI_DH_Q_A_Pts2= SAI_DH_Q_A_Pts1+ SAI_DH_Q_A_Pts37+ SAI_DH_Q_A_Pts43+ SAI_DH_Q_A_Pts49
    	SAI_DH_Q_A_Pts3= SAI_DH_Q_A_Pts32+ SAI_DH_Q_A_Pts35+ SAI_DH_Q_A_Pts41+ SAI_DH_Q_A_Pts47
    	SAI_DH_Q_A_Pts4= SAI_DH_Q_A_Pts33+ SAI_DH_Q_A_Pts39+ SAI_DH_Q_A_Pts44+ SAI_DH_Q_A_Pts48
    	SAI_DH_Q_A_Pts5= SAI_DH_Q_A_Pts34+ SAI_DH_Q_A_Pts38+ SAI_DH_Q_A_Pts42+ SAI_DH_Q_A_Pts45
    	SAI_DH_Q_A_Pts6= SAI_DH_Q_A_Pts36+ SAI_DH_Q_A_Pts40+ SAI_DH_Q_A_Pts46+ SAI_DH_Q_A_Pts50
     
    	SAI_DH_Q_A_Pts7= SAI_DH_Q_A_V1+ SAI_DH_Q_A_V7+ SAI_DH_Q_A_V13+ SAI_DH_Q_A_V19
    	SAI_DH_Q_A_Pts8= SAI_DH_Q_A_V2+ SAI_DH_Q_A_V5+ SAI_DH_Q_A_V11+ SAI_DH_Q_A_V17
    	SAI_DH_Q_A_Pts9= SAI_DH_Q_A_V3+ SAI_DH_Q_A_V9+ SAI_DH_Q_A_V14+ SAI_DH_Q_A_V18
    	SAI_DH_Q_A_Pts10= SAI_DH_Q_A_V4+ SAI_DH_Q_A_V8+ SAI_DH_Q_A_V12+ SAI_DH_Q_A_V15
    	SAI_DH_Q_A_Pts11= SAI_DH_Q_A_V6+ SAI_DH_Q_A_V10+ SAI_DH_Q_A_V16+ SAI_DH_Q_A_V20
     
    	SAI_DH_Q_A_Pts17= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S19+ SAI_DH_Q_A_S20+ SAI_DH_Q_A_S21+ SAI_DH_Q_A_S37+ SAI_DH_Q_A_S38+ SAI_DH_Q_A_S39+ SAI_DH_Q_A_S55+ SAI_DH_Q_A_S56+ SAI_DH_Q_A_S57
    	SAI_DH_Q_A_Pts18= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15+ SAI_DH_Q_A_S31+ SAI_DH_Q_A_S32+ SAI_DH_Q_A_S33+ SAI_DH_Q_A_S49+ SAI_DH_Q_A_S50+ SAI_DH_Q_A_S51
    	SAI_DH_Q_A_Pts19= SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9+ SAI_DH_Q_A_S25+ SAI_DH_Q_A_S26+ SAI_DH_Q_A_S27+ SAI_DH_Q_A_S40+ SAI_DH_Q_A_S41+ SAI_DH_Q_A_S42+ SAI_DH_Q_A_S52+ SAI_DH_Q_A_S53+ SAI_DH_Q_A_S54
    	SAI_DH_Q_A_Pts20= SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12+ SAI_DH_Q_A_S22+ SAI_DH_Q_A_S23+ SAI_DH_Q_A_S24+ SAI_DH_Q_A_S34+ SAI_DH_Q_A_S35+ SAI_DH_Q_A_S36+ SAI_DH_Q_A_S43+ SAI_DH_Q_A_S44+ SAI_DH_Q_A_S45
    	SAI_DH_Q_A_Pts21= SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18+ SAI_DH_Q_A_S28+ SAI_DH_Q_A_S29+ SAI_DH_Q_A_S30+ SAI_DH_Q_A_S46+ SAI_DH_Q_A_S47+ SAI_DH_Q_A_S48+ SAI_DH_Q_A_S55+ SAI_DH_Q_A_S56+ SAI_DH_Q_A_S57
     
    	SAI_DH_Q_A_Pts22= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S40+ SAI_DH_Q_A_S41+ SAI_DH_Q_A_S42+ SAI_DH_Q_A_S22+ SAI_DH_Q_A_S23+ SAI_DH_Q_A_S24+ SAI_DH_Q_A_S55+ SAI_DH_Q_A_S56+ SAI_DH_Q_A_S57
    	SAI_DH_Q_A_Pts23= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S52+ SAI_DH_Q_A_S53+ SAI_DH_Q_A_S54+ SAI_DH_Q_A_S34+ SAI_DH_Q_A_S35+ SAI_DH_Q_A_S36+ SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18
    	SAI_DH_Q_A_Pts24= SAI_DH_Q_A_S37+ SAI_DH_Q_A_S38+ SAI_DH_Q_A_S39+ SAI_DH_Q_A_S49+ SAI_DH_Q_A_S50+ SAI_DH_Q_A_S51+ SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12+ SAI_DH_Q_A_S28+ SAI_DH_Q_A_S29+ SAI_DH_Q_A_S30
    	SAI_DH_Q_A_Pts25= SAI_DH_Q_A_S19+ SAI_DH_Q_A_S20+ SAI_DH_Q_A_S21+ SAI_DH_Q_A_S31+ SAI_DH_Q_A_S32+ SAI_DH_Q_A_S33+ SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9+ SAI_DH_Q_A_S46+ SAI_DH_Q_A_S47+ SAI_DH_Q_A_S48
    	SAI_DH_Q_A_Pts26= SAI_DH_Q_A_S55+ SAI_DH_Q_A_S56+ SAI_DH_Q_A_S57+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15+ SAI_DH_Q_A_S25+ SAI_DH_Q_A_S26+ SAI_DH_Q_A_S27+ SAI_DH_Q_A_S43+ SAI_DH_Q_A_S44+ SAI_DH_Q_A_S45
     
    	SAI_DH_Q_A_Pts12= SAI_DH_Q_A_Pts17- SAI_DH_Q_A_Pts22
    	SAI_DH_Q_A_Pts13= SAI_DH_Q_A_Pts18- SAI_DH_Q_A_Pts23
    	SAI_DH_Q_A_Pts14= SAI_DH_Q_A_Pts19- SAI_DH_Q_A_Pts24
    	SAI_DH_Q_A_Pts15= SAI_DH_Q_A_Pts20- SAI_DH_Q_A_Pts25
    	SAI_DH_Q_A_Pts16= SAI_DH_Q_A_Pts21- SAI_DH_Q_A_Pts26	
     
    	Classem2 est un tableau dynamique de 5 par 5 entiers //nombre de lignes par nombre de colonnes
     
    	Classem2 [1,1]=SAI_PouleA_DH_ID1..ValeurAffichée
    	Classem2 [1,2]= SAI_DH_Q_A_Pts2..ValeurAffichée
    	Classem2 [1,3]= SAI_DH_Q_A_Pts7..ValeurAffichée
    	Classem2 [1,4]= SAI_DH_Q_A_Pts12..ValeurAffichée
    	Classem2 [1,5]= SAI_DH_Q_A_Pts17..ValeurAffichée
    	Classem2 [2,1]= SAI_PouleA_DH_ID2..ValeurAffichée
    	Classem2 [2,2]= SAI_DH_Q_A_Pts3..ValeurAffichée
    	Classem2 [2,3]= SAI_DH_Q_A_Pts8..ValeurAffichée
    	Classem2 [2,4]= SAI_DH_Q_A_Pts13..ValeurAffichée
    	Classem2 [2,5]= SAI_DH_Q_A_Pts18..ValeurAffichée
    	Classem2 [3,1]= SAI_PouleA_DH_ID3..ValeurAffichée
    	Classem2 [3,2]= SAI_DH_Q_A_Pts4..ValeurAffichée
    	Classem2 [3,3]= SAI_DH_Q_A_Pts9..ValeurAffichée
    	Classem2 [3,4]= SAI_DH_Q_A_Pts14..ValeurAffichée
    	Classem2 [3,5]= SAI_DH_Q_A_Pts19..ValeurAffichée
    	Classem2 [4,1]= SAI_PouleA_DH_ID4..ValeurAffichée
    	Classem2 [4,2]= SAI_DH_Q_A_Pts5..ValeurAffichée
    	Classem2 [4,3]= SAI_DH_Q_A_Pts10..ValeurAffichée
    	Classem2 [4,4]= SAI_DH_Q_A_Pts15..ValeurAffichée
    	Classem2 [4,5]= SAI_DH_Q_A_Pts20..ValeurAffichée
    	Classem2 [5,1]= SAI_PouleA_DH_ID5..ValeurAffichée
    	Classem2 [5,2]= SAI_DH_Q_A_Pts6..ValeurAffichée
    	Classem2 [5,3]= SAI_DH_Q_A_Pts11..ValeurAffichée
    	Classem2 [5,4]= SAI_DH_Q_A_Pts16..ValeurAffichée
    	Classem2 [5,5]= SAI_DH_Q_A_Pts21..ValeurAffichée
     
    	TableauTrie(Classem2, ttColonne, "-2;-3;-4;-5") 
     
    	x11 est un numérique
    	x12 est un numérique
    	x13 est un numérique
    	x14 est un numérique
    	x15 est un numérique
     
     
    	x11 = Classem2 [1,1]
    	x12 = Classem2 [2,1]
    	x13 = Classem2 [3,1]
    	x14 = Classem2 [4,1]
    	x15 = Classem2 [5,1]
     
    	SI x11= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=1
    	SINON SI x12= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=2
    	SINON SI x13= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=3
    	SINON SI x14= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=4
    	SINON SI x15= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=5
     
    	SINON
    	FIN
     
    	SI x11= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=1
    	SINON SI x12= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=2
    	SINON SI x13= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=3
    	SINON SI x14= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=4
    	SINON SI x15= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=5
     
    	SINON
    	FIN
     
    	SI x11= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=1
    	SINON SI x12= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=2
    	SINON SI x13= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=3
    	SINON SI x14= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=4
    	SINON SI x15= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=5
     
    	SINON
    	FIN
     
    	SI x11= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=1
    	SINON SI x12= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=2
    	SINON SI x13= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=3
    	SINON SI x14= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=4
    	SINON SI x15= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=5
     
    	SINON
    	FIN
     
    	SI x11= SAI_PouleA_DH_ID5 ALORS
    		SAI_DH_Q_A_Pts31=1
    	SINON SI x12= SAI_PouleA_DH_ID5 ALORS
    		SAI_DH_Q_A_Pts31=2
    	SINON SI x13= SAI_PouleA_DH_ID5 ALORS
    		SAI_DH_Q_A_Pts31=3
    	SINON SI x14= SAI_PouleA_DH_ID5 ALORS
    		SAI_DH_Q_A_Pts31=4
    	SINON SI x15= SAI_PouleA_DH_ID5 ALORS
    		SAI_DH_Q_A_Pts31=5
     
    	SINON
    	FIN
     
    SINON SI SAI_Nbre_PouleA_DH_qualif =4 ALORS
     
    	SAI_DH_Q_A_Pts2= SAI_DH_Q_A_Pts1+ SAI_DH_Q_A_Pts35+ SAI_DH_Q_A_Pts39
    	SAI_DH_Q_A_Pts3= SAI_DH_Q_A_Pts32+ SAI_DH_Q_A_Pts37+ SAI_DH_Q_A_Pts41
    	SAI_DH_Q_A_Pts4= SAI_DH_Q_A_Pts33+ SAI_DH_Q_A_Pts36+ SAI_DH_Q_A_Pts42
    	SAI_DH_Q_A_Pts5= SAI_DH_Q_A_Pts34+ SAI_DH_Q_A_Pts38+ SAI_DH_Q_A_Pts40
     
    	SAI_DH_Q_A_Pts7= SAI_DH_Q_A_V1+ SAI_DH_Q_A_V5+ SAI_DH_Q_A_V9
    	SAI_DH_Q_A_Pts8= SAI_DH_Q_A_V2+ SAI_DH_Q_A_V7+ SAI_DH_Q_A_V11
    	SAI_DH_Q_A_Pts9= SAI_DH_Q_A_V3+ SAI_DH_Q_A_V6+ SAI_DH_Q_A_V12
    	SAI_DH_Q_A_Pts10= SAI_DH_Q_A_V4+ SAI_DH_Q_A_V8+ SAI_DH_Q_A_V10
     
    	SAI_DH_Q_A_Pts17= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15+ SAI_DH_Q_A_S25+ SAI_DH_Q_A_S26+ SAI_DH_Q_A_S27
    	SAI_DH_Q_A_Pts18= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S19+ SAI_DH_Q_A_S20+ SAI_DH_Q_A_S21+ SAI_DH_Q_A_S31+ SAI_DH_Q_A_S32+ SAI_DH_Q_A_S33
    	SAI_DH_Q_A_Pts19= SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9+ SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18+ SAI_DH_Q_A_S34+ SAI_DH_Q_A_S35+ SAI_DH_Q_A_S36
    	SAI_DH_Q_A_Pts20= SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12+ SAI_DH_Q_A_S22+ SAI_DH_Q_A_S23+ SAI_DH_Q_A_S24+ SAI_DH_Q_A_S28+ SAI_DH_Q_A_S29+ SAI_DH_Q_A_S30
     
    	SAI_DH_Q_A_Pts22= SAI_DH_Q_A_S4+ SAI_DH_Q_A_S5+ SAI_DH_Q_A_S6+ SAI_DH_Q_A_S16+ SAI_DH_Q_A_S17+ SAI_DH_Q_A_S18+ SAI_DH_Q_A_S28+ SAI_DH_Q_A_S29+ SAI_DH_Q_A_S30
    	SAI_DH_Q_A_Pts23= SAI_DH_Q_A_S1+ SAI_DH_Q_A_S2+ SAI_DH_Q_A_S3+ SAI_DH_Q_A_S22+ SAI_DH_Q_A_S23+ SAI_DH_Q_A_S24+ SAI_DH_Q_A_S34+ SAI_DH_Q_A_S35+ SAI_DH_Q_A_S36
    	SAI_DH_Q_A_Pts24= SAI_DH_Q_A_S10+ SAI_DH_Q_A_S11+ SAI_DH_Q_A_S12+ SAI_DH_Q_A_S13+ SAI_DH_Q_A_S14+ SAI_DH_Q_A_S15+ SAI_DH_Q_A_S31+ SAI_DH_Q_A_S32+ SAI_DH_Q_A_S33
    	SAI_DH_Q_A_Pts25= SAI_DH_Q_A_S7+ SAI_DH_Q_A_S8+ SAI_DH_Q_A_S9+ SAI_DH_Q_A_S19+ SAI_DH_Q_A_S20+ SAI_DH_Q_A_S21+ SAI_DH_Q_A_S25+ SAI_DH_Q_A_S26+ SAI_DH_Q_A_S27
     
    	SAI_DH_Q_A_Pts12= SAI_DH_Q_A_Pts17- SAI_DH_Q_A_Pts22
    	SAI_DH_Q_A_Pts13= SAI_DH_Q_A_Pts18- SAI_DH_Q_A_Pts23
    	SAI_DH_Q_A_Pts14= SAI_DH_Q_A_Pts19- SAI_DH_Q_A_Pts24
    	SAI_DH_Q_A_Pts15= SAI_DH_Q_A_Pts20- SAI_DH_Q_A_Pts25
     
     
    	Classem est un tableau dynamique de 4 par 5 entiers //nombre de lignes par nombre de colonnes
     
    	Classem [1,1]=SAI_PouleA_DH_ID1..ValeurAffichée
    	Classem [1,2]= SAI_DH_Q_A_Pts2..ValeurAffichée
    	Classem [1,3]= SAI_DH_Q_A_Pts7..ValeurAffichée
    	Classem [1,4]= SAI_DH_Q_A_Pts12..ValeurAffichée
    	Classem [1,5]= SAI_DH_Q_A_Pts17..ValeurAffichée
    	Classem [2,1]= SAI_PouleA_DH_ID2..ValeurAffichée
    	Classem [2,2]= SAI_DH_Q_A_Pts3..ValeurAffichée
    	Classem [2,3]= SAI_DH_Q_A_Pts8..ValeurAffichée
    	Classem [2,4]= SAI_DH_Q_A_Pts13..ValeurAffichée
    	Classem [2,5]= SAI_DH_Q_A_Pts18..ValeurAffichée
    	Classem [3,1]= SAI_PouleA_DH_ID3..ValeurAffichée
    	Classem [3,2]= SAI_DH_Q_A_Pts4..ValeurAffichée
    	Classem [3,3]= SAI_DH_Q_A_Pts9..ValeurAffichée
    	Classem [3,4]= SAI_DH_Q_A_Pts14..ValeurAffichée
    	Classem [3,5]= SAI_DH_Q_A_Pts19..ValeurAffichée
    	Classem [4,1]= SAI_PouleA_DH_ID4..ValeurAffichée
    	Classem [4,2]= SAI_DH_Q_A_Pts5..ValeurAffichée
    	Classem [4,3]= SAI_DH_Q_A_Pts10..ValeurAffichée
    	Classem [4,4]= SAI_DH_Q_A_Pts15..ValeurAffichée
    	Classem [4,5]= SAI_DH_Q_A_Pts20..ValeurAffichée
     
    	TableauTrie(Classem, ttColonne, "-2;-3;-4;-5") 
     
    	x21 est un numérique
    	x22 est un numérique
    	x23 est un numérique
    	x24 est un numérique
     
     
    	x21 = Classem [1,1]
    	x22 = Classem [2,1]
    	x23 = Classem [3,1]
    	x24 = Classem [4,1]
     
    	SI x21= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=1
    	SINON SI x22= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=2
    	SINON SI x23= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=3
    	SINON SI x24= SAI_PouleA_DH_ID1 ALORS
    		SAI_DH_Q_A_Pts27=4
    	SINON
    	FIN
     
    	SI x21= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=1
    	SINON SI x22= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=2
    	SINON SI x23= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=3
    	SINON SI x24= SAI_PouleA_DH_ID2 ALORS
    		SAI_DH_Q_A_Pts28=4
    	SINON
    	FIN
     
    	SI x21= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=1
    	SINON SI x22= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=2
    	SINON SI x23= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=3
    	SINON SI x24= SAI_PouleA_DH_ID3 ALORS
    		SAI_DH_Q_A_Pts29=4
    	SINON
    	FIN
     
    	SI x21= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=1
    	SINON SI x22= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=2
    	SINON SI x23= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=3
    	SINON SI x24= SAI_PouleA_DH_ID4 ALORS
    		SAI_DH_Q_A_Pts30=4
    	SINON
    	FIN
     
     
     
     
    SINON
    FIN

  5. #5
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Si je resume la situation, les champs ne sont là que pour visualiser les résultats calculés. Comme les résultats sont calculés en fonction des matchs, il n'y a pas d'interaction simultanée entre les différents match (ce qui est important).
    Donc, dans l'analyse des besoins, et comme cela, avec les infos que j'ai, voici comment je pense que ton projet est:
    Fichier TOURNOIS (IDTOURNOIS, Dates, Lieu, ... )
    Fichier JOUEURS (IDJOUEURS, Nom, Prenom, DATE_NAISSANCE, ....)
    EQUIPES (IDEQUIPE, IDTOURNOIS, IDJOUEURS1, IDJOUEURS2, .....)
    RESULTATS (IDRESULTATS, IDTOURNOIS, IDEQUIPES1, IDEQUIPE2, ....)
    Ainsi, selon cette structure, vous pouvez calculer un enreg RESULTATS sans se soucier des autres, ce qui accelere à mon sens un tantinet les traitements....
    Le reste n'étant que de l'affichage, cela ne devrait pas prendre trop de temps. De plus, les calculs ne se font que pour un enreg, le seul calcul reprenant l'ensemble des matchs est le classement, mais quoi de plus facile avec RESULTATS affecté à EQUIPE, pour le TOURNOI.


    J'oublie les poules volontairement pour ne pas allourdir la philosophie, mais elle ne sert qu'a regrouper les RESULTATS, non?

    Voilà, a vous lire sur mon idée

    Enfin, j'aimerais savoir si les fichiers sont en accès direct (ce que je crois pointer à l'horizon), ou si les fichiers sont hébergés sur un serveur HFC/S (?).

    sans jouer les 'profs', un bon programme est un programme réalisé sur une excellente analyse. Point besoin de maitriser le code qui n'est que la résultante de ce que l'analyse doit faire... Mais la maitrise du code permet toutefois de soulever bon nombres d'interrogations et de transcrire en code la philosophie de l'analyse (tiens, je vais garder cette phrase, elle est bien...)

    Amicalement
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par EDM-TAHITI Voir le message
    ...j'aimerais savoir si les fichiers sont en accès direct (ce que je crois pointer à l'horizon), ou si les fichiers sont hébergés sur un serveur HFC/S (?).
    En accès direct. (A vrai dire je ne connais que cette solution)

    Citation Envoyé par EDM-TAHITI Voir le message
    Mais la maitrise du code permet toutefois de soulever bon nombres d'interrogations...
    Comme je n'ai pas la maitrise, mes interrogations viennent au fur et à mesure et remettent souvent en cause ma première analyse. Mais peu importe pour ce projet, mon but est d'aller jusqu'au bout même si les codes pourraient être
    plus performants avec une meilleur analyse.
    Quand il sera fini, je tenterai de le refaire avec l'expérience acquise.

    Citation Envoyé par EDM-TAHITI Voir le message
    voici comment je pense que ton projet est:
    Fichier TOURNOIS (IDTOURNOIS, Dates, Lieu, ... )
    Fichier JOUEURS (IDJOUEURS, Nom, Prenom, DATE_NAISSANCE, ....)
    EQUIPES (IDEQUIPE, IDTOURNOIS, IDJOUEURS1, IDJOUEURS2, .....)
    RESULTATS (IDRESULTATS, IDTOURNOIS, IDEQUIPES1, IDEQUIPE2, ....)
    D'abord,il faut savoir que ce projet ne servira qu'un fois l'an. Je joue dans un petit club et nous organisons depuis cette année un tournoi amical de badminton. Pour la première, nous avons tout fait manuellement. Je me suis dis qu'une automatisation de certaines tâches pouvait nous faire gagner du temps précieux. J'ai donc commencé par créer un petit programme en visual basic sur excel. Connaissant un tout petit peu windev et le trouvant convivial, j'ai décidé de faire ce projet sur ce logiciel.

    Voici ce que j'ai créé en analyse :

    Fichier CLUB (IDclub, nom abrégé, nom complet, ville) Il est à noter que le nom complet et la ville ne sont pas des plus primordiaux. Ce fichier me sert uniquement à remplir un combo dans le fichier EQUIPES. A vrai dire j'aurai très bien pu m'en passer mais je souhaitais que l'utilisateur ne rentre pas des noms différents pour un même club de façon à avoir quelque chose de plus harmonieux visuellement.

    Fichier EQUIPES (IDEquipe, Tableau_double, Prénom1, Nom1, club1, Prénom2, Nom2, club2, TS,tirage, poule) Je n'ai pas créé volontairement de fichier JOUEURS car je n'ai besoin que du nom et du prénom et de faire un fichier pour 2 champs me paraissait superflu.
    Je vais décrire un peu plus certains champs de ce fichier. D'abord,le champ Tableau_double : en effet, il existe dans notre tournoi 2 tableaux (double homme_DH et double mixte_DM)
    TS: équivaut à tête de série. Ce champ me permet que les équipes TS ne se rencontrent pas dans les poules de qualification
    tirage : nombre aléatoire entre 0 et 1

    Fichier GRILLE (IDligne, Nbre_joueurs, PouleA, PouleB....PouleH, Nbre_poule, Nbre_match) voir explications de ce fichier plus bas.

    J'ai aussi un fichier LISTE_MATCH qui se remplit par une requête.

    Ma problématique :
    - entrer les équipes
    - renseigner le tableau de chaque équipe (DH ou DM)
    - éventuellement, attribuer à des équipes le statut de tête de série (TS)
    - compter le nombre d'équipes par tableaux
    - selon le nombre (utilité du fichier GRILLE), connaître le nombre de poule et le nombre de joueurs par poule. Par exemple pour 27 équipes, j'aurai 3 poules de 5 et 3 poules de 4. Sachant que dans les qualifications, je ne mets que des poules de 4 ou 5 joueurs.
    - si les têtes de série sont égales au nombre de poule, mettre une équipe TS par poule
    - tirage au sort des autres équipes pour les mettre dans chaque poule. Là, je me sert du champ tirage. Un nombre aléatoire y est mis et je fais une requête en classant les équipes par ordre croissant. Les premières vont dans la poule A et ainsi de suite.
    - Lister tous les matchs Double Homme et Double Mixte en les triant de façon à obtenir :match1_pouleA_DH, match1_pouleB_DH,..match1_pouleA_DM, match1_pouleB_DM...match2_pouleA_DH, match2_pouleB_DH et ainsi de suite. Cette liste est intégrée dans le fichier LISTE_MATCH. J'y ajoute deux champs (cases à cocher "lançé" et "Fini") de façon à intégrer le tout dans un champ tableau.
    - Renseigner les résultats des matchs de façon à obtenir un classement final par poule
    - Dispatcher les équipes par poule dans les tableaux "Principale" et "Consolante". Généralement les deux premiers en Principale, les autres en Consolante. Mais selon le nombre de joueurs,il arrive que l'on prenne certains troisièmes (les meilleurs bien entendu!) pour les mettre en Principale afin d'avoir des poules complète de 3 ou 4 joueurs.
    - renseigner les résultats des matchs
    - Finir par un tableau final Principale et Consolante où on prend les premiers des poules pour avoir demi et finale.

    Actuellement, je suis au stade de renseigner les matchs des poules qualificatives.

    J'espère que mes explications ne sont pas trop confuses.

Discussions similaires

  1. Ouverture de page - curseur dans un champ
    Par dums2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/06/2006, 08h33
  2. Lenteur ouverture état
    Par guiguikawa dans le forum Access
    Réponses: 2
    Dernier message: 28/06/2006, 11h27
  3. Réponses: 7
    Dernier message: 22/11/2005, 12h43
  4. [JFrame] Ouverture fenêtre autre part que dans coin haut gauche
    Par tooney dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/05/2005, 20h36
  5. Détecter ouverture fenêtre
    Par goutbouyo dans le forum Windows
    Réponses: 2
    Dernier message: 28/10/2004, 00h40

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