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 :

Maintenir le focus sur une Table sans ligne


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut Maintenir le focus sur une Table sans ligne
    Bonsoir à tous.
    Je continue à me battre avec la saisie dans les tables.
    Je n'arrive pas à comprendre la logique de Windev pour la gestion des tables.

    Quand on supprime la dernière ligne existante de la MaTable, le résultat est:Table_Matable = -1 et sortie de la table et donc perte de focus.
    Je ne comprends pas pour quoi on ne peut pas rester dans la table avec Table_Matable = 0 ou 1 et bien sur ..Occurrence= 0?
    Cela me crée un problème, c'est que je ne peux pas ré-entrer en saisie juste en passant d'un champ a MaTable avec la touche RC, je suis obliger de cliquer avec la souris sur la première ligne de la table.
    La première fois que je rentre dans la table (au lancement de la fenêtre): Table_Matable =1 et Table_Matable..Occurrence= 0 et je rentre sans problème avec RC.
    Quand Table_Matable = -1 j'essaie de modifier Table_Matable = 1, mais cela ne change pas!
    Comment supprimer la dernière ligne (je ne parle pas de la position, la dernière ligne qui reste dans la table qui est forcement a la première position, donc dans la première ligne), sans sortir de la table, sans avoir Table_Matable = -1 et seulement avoir Table_Matable = 1, ou peut être Table_Matable = 0

    Je trouve gênant l'utilisation par Windev de la même variable pour définir la position de la ligne et si la table est vide, et surtout qu'il décide de lui même d'abandonner la table.

    La logique change pour la dernière ligne:
    Table_Matable= 4, Table_Matable..occrrence= 3, Supression -> Table_Matable= 3, Table_Matable..occrrence= 2 et ainsi de suite
    Table_Matable= 2, Table_Matable..occrrence= 1
    Table_Matable= 1, Table_Matable..occrrence= 0
    Et la dernière suppression:
    Table_Matable= -1, Table_Matable..occrrence= 0 !!! Pourquoi?

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    As tu essayé de sélectionner la ligne de ta table avec TableSelectPlus(MaTable,1) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,
    WinDev retourne -1 lorsqu'aucune ligne n'existe dans la table ou aucune ligne n'est sélectionnée.
    Il suffit de tester le nombre de ligne avec TableOccurence(MaTable) et de créer une ligne lorsque tu as supprimé toute les lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI MaTable..Occurence = 0 ALORS
    TableAjouteLigne(MaTable)
    // et si tu veux te positionner sur la ligne en saisie 
    EcranPremier(COL_Colonne1)
    FIN
    A+

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par basam95 Voir le message
    Salut,
    WinDev retourne -1 lorsqu'aucune ligne n'existe dans la table ou aucune ligne n'est sélectionnée.
    Il suffit de tester le nombre de ligne avec TableOccurence(MaTable) et de créer une ligne lorsque tu as supprimé toute les lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI MaTable..Occurence = 0 ALORS
    TableAjouteLigne(MaTable)
    // et si tu veux te positionner sur la ligne en saisie 
    EcranPremier(COL_Colonne1)
    FIN
    A+
    Avec ta solution, on est en saisie sur la première ligne.
    MaTable..Occurence=1 et MaTable=1
    Moi je veux être en sélection après la suppression:
    MaTable..Occurrence=0 et MaTable=1

  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 998
    Points
    1 998
    Par défaut
    Hello,
    J'aiemerai avoir une précision, importante, et si j'ai tout bien compris, tu veux gérer manuellement l'entrée, la saisie, l'enregistrement, la suppression manuellement de ta table... Est-ce bien cela?
    Lorsque tu n'as plus de ligne dans ta table, Windev rend la main aux autres champs, c'est sa logique... qui n'est pas dénuée de tout fondement.
    Maintenant, si, après la suppression de ta dernière ligne, tu veux rester dans ta table, il faut alors utiliser la fonction ecranpremier(matable).
    Et si tu veux, lors d'un clique, entrer de nouveau dans ta table, il faut que dans l'entrée de ta table, gérer l'existence ou non d'une ligne, si pas ligne alors créée là. Et ensuite, tu pourras alors saisir tes données

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut
    Hola Éric.
    C'est exactement ce que je veux faire.
    Moi je ne trouve pas logique que Windev rende la main aux autres champs quand la table est vide.
    On est obligé de prendre la souris pour revenir sur la table, car le focus peut-être sur n'importe quel champ de la fenêtre, normalement le dernier avant d'entrer.
    Je trouve dommage que l'on ne puise pas modifier ce comportement.
    J'ai essayé ta proposition (ecranpremier(matable) après la suppression de la dernière ligne mais je perd le focus malgré tout.

Discussions similaires

  1. Réponses: 12
    Dernier message: 04/12/2013, 21h22
  2. Réponses: 17
    Dernier message: 17/10/2013, 09h24
  3. [AC-2003] Requête UPDATE sur une table sans relation
    Par SIGER_971 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 09/07/2009, 09h02
  4. EJB entity sur une table sans clé
    Par omekiane dans le forum JPA
    Réponses: 0
    Dernier message: 03/12/2008, 08h23
  5. Réponses: 1
    Dernier message: 31/07/2008, 12h13

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