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 :

Affichage des lignes d'un champ table après maximisation ou reduction de la fenetre


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 121
    Points : 53
    Points
    53
    Par défaut Affichage des lignes d'un champ table après maximisation ou reduction de la fenetre
    Bonjour à toutes et à tous,

    J'ai une fenêtre interne dans laquelle il y a un champ table qui affiche par programmation les éléments d'une requête.

    Dans sa taille d'affichage standard, le champ table affiche 18 lignes et le reste est visualisable par l'ascenseur.
    Nom : Table_Normale.JPG
Affichages : 101
Taille : 29,8 Ko

    Ce que je n'arrive pas à faire et pour lequel je sollicite votre aide, c'est lorsque je maximise la fenêtre principale qui contient la FI, le champ table s'agrandit et il s'affiche plus de ligne que n'en contient le résultat de la requête. Du coup je me retrouve avec ligne vide.
    Nom : Table_Maximise.JPG
Affichages : 93
Taille : 42,4 Ko

    Est-ce qu'il est bien possible d'avoir l'affichage d'un champ table proportionnel au nombre de ligne?

    Est-ce que vous pouvez m'indiquer un axe de recherche et de travail pour aboutir à un résultat?

    J'ai essayé avec le traitement "changement de taille" de la FI ou celui du champ table sans obtenir le résultat recherché
    Code WINDEV : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    xNbreLigne est un numérique
    xNbreLigne = TableOccurrence(TABLE_OMPI, toTotal)
    Trace(xNbreLigne)
    TABLE_OMPI..Hauteur = xNbreLigne*19
    Mais lorsque je modifie le nombre de jours à afficher il n'y a pas de modification de l'affichage et surtout lorsque je réduis l'affichage il n'y a pas de réduction du champ table et du nombre de ligne affichée.

    Merci pour vos conseils

    Gregus

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Dans le code de la fenêtre contenante, tu ajoutes la partie de code pour l'évènement "Modification de la taille de FEN_MaFenetre".

    Dans cette zone de code, tu vas pouvoir t'amuser avec les dimensions de la fenêtre.

    Sinon, autre piste : c'est toi qui crées et gères les boutons d'agrandissement et autres.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 121
    Points : 53
    Points
    53
    Par défaut
    Bonjour frenchsting,

    Merci pour ton aide.

    J'ai une fenêtre principale : FEN_Principale dans laquelle j'ai vu effectivement qu'il y a des évènements optionnels dont notamment "Modification de la taille de FEN_Principale" et "Changement de taille de FEN_Principale". Le premier n'a pas de nom système et le second est WM_SIZE.

    S'il y a deux noms différents, il doit y avoir deux usages différents. Je n'ai pas trouvé dans la doc d'informations particulières. Est-ce que le WM_SIZE c'est parce que ça ne ne fonctionne que pour les appli mobile?

    J'ai mis un trace dans les deux évènements et effectivement j'ai un retour lorsque je maximise ou réduit la fenêtre principale.

    Mais voilà, FEN_Principale contient un champ onglet, qui affiche une fenêtre interne : FI_OMPI, qui affiche la fameuse table.

    Dans la fenêtre interne il y a un évènement "Changement de taille (WM_SIZE) de FI_OMPI" j'ai mis un trace dedans et à chaque fois que je maximise ou réduit la fenêtre principale il y a un retour. Je me dis donc que je peux laisser le code dans cette partie.

    Je n'ai pas encore le niveau pour créer et gérer les boutons d'agrandissement et autres, même si j'ai déjà lu quelques trucs dessus.

    Dans ma réflexion, ce n'est pas avec les dimensions de la fenêtre que je veux m'amuser, mais avec celles du champ table. Est-ce que ça change quelque chose?

    Est-ce que l'évènement "Changement de taille (WM_SIZE) de FI_OMPI" fait la différence entre la maximisation ou la reduction? Je ne pense pas, corrigez moi si je me trompe.

    Comment savoir quand la fenêtre est maximisée et quand elle est réduite? Je vais faire des essais avec la fonction FenTaille

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour Gregus,

    Oui FenTaille(LaFenQuiVaBien) te renvoie les constantes (TailleMaxi, TailleMini, TailleNormale).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Changement de taille, pour moi, ça s'active dans 2 cas :
    - Si on clique sur les options 'minimaliser, maximaliser ou taille normale'
    - quand on agrandit ou réduit la fenêtre de quelques pixels (largeur ou hauteur)

    Ici, les 2 cas nous intéressent, surtout le 2nd.

    Et dans la liste des événements d'une table, tu peux aussi sélectionner l'événement 'A chaque modif de la taille de table1'.

    Je crois que dans ce cas, table1.hauteur te donne la nouvelle hauteur, et tu ne peux pas avoir l'ancienne. Mais ça te suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si table1.hauteur > 10 + 10 * table1.occurrence alors table1.hauteur = 10 + 10 * table1.occurrence
    En supposant que la ligne de titre et chaque ligne de la table font 10 pixels.

    J'ai peur que l'effet visuel provoque des 'tremblements'.

    Une piste, c'est peut-être de désactiver l'ancrage en hauteur, et de gérer l'ancrage toi-même.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 121
    Points : 53
    Points
    53
    Par défaut
    J'ai mis dans l'évènement "Changement de taille (WM_SIZE) de FI_OMPI"

    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI FenTaille(FEN_Principale, TailleMaxi) ALORS
    	Trace("Fenêtre est maxi")
    SINON
    	Trace("Fenêtre est réduite")
    FIN

    lorsque je maximise ou réduit j'ai bien le retour des traces, mais pas toujours les bons. Et même, à la réduction, l'instruction est exécutée deux fois. J'ai mis un point d'arrêt pour déboguer, mais pour l'instant je n'ai pas encore compris.

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    J'utiliserais plutôt le FenTaille comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELON FenTaille(FEN_Principale)
    CAS TailleMaxi
    // Mise en forme table
    CAS TailleNormale
    // Mise en forme table
    AUTRES CAS
    // Rien
    FIN
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 121
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Le
    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
     SI FenTaille(FEN_Principale,TailleMaxi) ALORS
    avait des comportements bizarres

    Alors que
    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
     SI FenTaille(FEN_Principale) = TailleMaxi ALORS
    après plusieurs tests, ça à l'air de fonctionner correctement.

    @frenchsting et aux autres aussi. En débutant, l'instruction SI est facile à utiliser. Il m'a fallu un peu plus de temps pour l'instruction SELON, en dehors du fait que SELON offre plus d'options, et sans vouloir lancer un débat entre les pour et les contres, est-ce qu'il y a une différence de traitement ou de lecture à l’exécution?

    Je pense que je vais utiliser l'instruction SELON, parce qu'elle donne avec précision les cas dans lesquels faire tel ou tel action.

    @tbc92, je n'ai pas sauté ta réponse, maintenant que je sais où écrire le code des actions à faire, je vais tester ton conseil.

  9. #9
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    [QUOTE=Gregus;11942122est-ce qu'il y a une différence de traitement ou de lecture à l’exécution?
    [/QUOTE]
    SELON se termine lorsqu'une condition est trouvée, il faut donc faire attention aux "chevauchements de cas"
    e.g.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    PROCEDURE TestSelon(nValeur est entier)
    SELON nValeur
         CAS <0 :
              Trace("Négatif")
         CAS -2<=*<=2 :
              Trace("Compris entre -2 et 2 inclus")
         AUTRE CAS
               Trace("Supérieur à 2")
    TestSelon(-1) renverra Négatif, alors que -1 est aussi compris entre -2 et 2.
    SELON évite les grosses imbrications et facilite les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SI Cond1 ET Cond2 OU (Cond3 ET Cond4) ALORS
    ......
    SINON
        SI PAS Cond1 ET ....
    en appliquant Quine-Mc Cluskey (méthode de minterm)
    Dans le cas litigieux,
    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
     
    PROCEDURE TestSelon(nValeur est entier)
    bNeg est booléen,
    bCompris est booléen
    nRes est entier
     
    SI nValeur <0 ALORS
         bRes=Vrai
    FIN
    SI nValeur=-2 A 2 ALORS
         bCompris=Vrai
    FIN
    nRes=2*bRes+bCompris //4*Bool1+2*Bool2+Bool3 pour 3 possibilité etc...
     
    SELON nRes
         CAS 1 :
              Trace("Compris entre -2 et 2")
         CAS 2 :
               Trace("Négatif")
         CAS 3 :
               Trace("Entre -2 et 0")
         AUTRE CAS :
              Trace("Positif ou nul")
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par Gregus Voir le message
    Le
    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
     SI FenTaille(FEN_Principale,TailleMaxi) ALORS
    avait des comportements bizarres

    Alors que
    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
     SI FenTaille(FEN_Principale) = TailleMaxi ALORS
    après plusieurs tests, ça à l'air de fonctionner correctement.
    C'est juste que dans un cas, tu lui fais exécuter un redimensionnement, et que dans l'autre du lui demande si la fenêtre est à l'état Maximisée.

    Citation Envoyé par Gregus Voir le message
    @frenchsting et aux autres aussi. En débutant, l'instruction SI est facile à utiliser. Il m'a fallu un peu plus de temps pour l'instruction SELON, en dehors du fait que SELON offre plus d'options, et sans vouloir lancer un débat entre les pour et les contres, est-ce qu'il y a une différence de traitement ou de lecture à l’exécution?

    Je pense que je vais utiliser l'instruction SELON, parce qu'elle donne avec précision les cas dans lesquels faire tel ou tel action.
    Tu as répondu à la question : c'est plus lisible. La différence de temps de traitement (à "code égal" dans les SI et les CAS) ne doit être négligeable, voire nulle.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. Réponses: 14
    Dernier message: 04/02/2020, 20h17
  2. [WD18] Probleme d’ajout des lignes dans un champ table
    Par beauregard12 dans le forum WinDev
    Réponses: 3
    Dernier message: 05/02/2016, 15h36
  3. [WD15] Affichage des lignes de table vers un document sage
    Par bestmoroco dans le forum WinDev
    Réponses: 11
    Dernier message: 14/11/2012, 10h31
  4. Ordre d'affichage des lignes d'une table
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/09/2011, 23h05
  5. Affichage des lignes d'une table si AU MOINS Champ est NON VIDE
    Par Dr_No dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 17h47

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