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 :

Table remplie par programmation, 1ère ligne sélectionnée, mais impossible d'accéder aux valeurs


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Table remplie par programmation, 1ère ligne sélectionnée, mais impossible d'accéder aux valeurs
    Bonjour,

    je me heurte à un problème qui me prend la tête depuis hier matin !

    J'ai un module GMAO dans lequel des employés peuvent déclarer des incidents sur des machines. Dans un autre module, les gars de la maintenance peuvent tenir à jour une fiche de suivi d'interventions sur un incident. Donc pour un incident donné, ils peuvent enregistrer plusieurs interventions distinctes. Une intervention consiste en la déclaration d'une remarque, des temps de travail des différents intervenants, et éventuellement des pièces changées pour réparer la machine.

    Quand je lance mon module, je dois saisir un numéro d'incident, puis j'arrive sur cette interface :



    Voici donc l'objet de mon post : là je veux supprimer l'intervention 32 (colonne wrkid), je clique sur la petite croix tout au bout, qui exécute le code suivant (suppression de l'intervention et de ses dépendances, pièces, intervenants):


    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
    TableSelectPlus(TABLE_Interventions, -1)   
     
    SI OuiNon("Supprimer cette intervention ?") ALORS
     
    	wrkid est un entier = TABLE_Interventions.COL_wrkid
     
    	Sql est une chaîne = "DELETE FROM wrk WHERE wrk_id = " + wrkid
    	SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS
    		Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
    		RETOUR
    	FIN
     
    	Sql = "DELETE FROM wrksp WHERE wrksp_wrkid = " + wrkid
    	SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS
    		Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
    		RETOUR
    	FIN
     
    	Sql = "DELETE FROM wrktek WHERE wrktek_wrkid = " + wrkid
    	SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS
    		Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
    		RETOUR
    	FIN
     
    	chargeInterventions()
     
    FIN
    et ma procédure chargeInterventions, qui a déjà été lancée une première fois à l'initialisation de mon module, après saisie du numéro incident (pid pour "panne id"), et qui alimente ma table :

    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
    PROCEDURE chargeInterventions()
     
    TableSupprimeTout(TABLE_Interventions)
     
    Rs est une Source de Données
    Sql est une chaîne = "SELECT wrk_id, wrk_date, wrk_remarque FROM wrk WHERE wrk_pid = " + pid + " ORDER BY wrk_id DESC"
     
    SI PAS HExécuteRequêteSQL(Rs,Cnx,hRequêteDéfaut ,Sql) ALORS
    	Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
    	RETOUR
    FIN
    SI HLitPremier(Rs) ALORS
     
    	TANTQUE PAS HEnDehors(Rs)
     
    		TableAjoute(TABLE_Interventions, Rs.wrk_id + TAB + Rs.wrk_date + TAB + Rs.wrk_remarque + TAB + "delete.png")
     
    		HLitSuivant(Rs)
    	FIN
    FIN
     
    HLibèreRequête(Rs)
     
    Info(TABLE_Interventions.COL_wrkid)
    Info(TABLE_Interventions..Vide)
     
    ExécuteTraitement(TABLE_Interventions, trtSélection)
    Hé bien, après suppression, figurez-vous que je perds l'info de colonne COL_wrkid, alors qu'il me reste bien au moins une ligne dans ma table :



    Et forcément, comme je n'ai plus la référence de la ligne qui a le focus dans ma table des interventions, le chargement de mes tables Intervenants et Pièces échoue :



    Je suis vraiment perplexe parce que des fenêtres comme ça j'en ai déjà conçu plusieurs et jamais je n'ai rencontré ce foutu problème.
    Vous n'auriez pas une idée parce que là je n'en peux plus
    Merci à vous
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Membre régulier Avatar de Kaal
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 55
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Il faut forcer la sélection d'une ligne avant l'executetraitement()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableSelectPlus(TABLE_Interventions,1)
    ExécuteTraitement(TABLE_Interventions, trtSélection)
    L'exemple sélectionne la 1ère ligne mais vous pouvez mettre n'importe laquelle.
    Quelle est la différence entre un bon et un mauvais développeur ?

  3. #3
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Déjà testé, ça ne change rien.

    J'ai testé TableSelect, TableSelectPlus, TableSelectOccurence, avec l'indice 1, avec -1

    tout pareil

    la ligne est en surbrillance, mais TABLE_Interventions.COL_wrkid est vide de chez vide !
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Dans le premier code il est préférable de commencer pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI TableSelect(TABLE_Interventions) = -1 ALORS RETOUR
    Qui permet de forcer la sélection de la ligne en cours et de quitter le code si aucune ligne n'est sélectionnée.
    Ensuite il est préférable de supprimer d'abord les enregistrements des tables liés avant celui de la principale, selon les liaisons utilisées ça peut être important.

    Avant de lancer la requête d'alimentation de la table vérifie que ta variable pid n'est pas vide (d'où l'erreur indiquée)

    Pour le parcours de la requête il est plus performant d'utiliser
    Plutôt que le TANTQUE.

    A+

  5. #5
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Alors, pour te répondre dans l'ordre :

    Citation Envoyé par basam95 Voir le message
    Salut,

    Dans le premier code il est préférable de commencer pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI TableSelect(TABLE_Interventions) = -1 ALORS RETOUR
    Qui permet de forcer la sélection de la ligne en cours et de quitter le code si aucune ligne n'est sélectionnée.
    Ce TableSelect là, il est à faire systématiquement car je clique sur une colonne image pour commander la suppression. Et si je clique sur la colonne "suppr" d'une ligne qui n'est pas actuellement en surbrillance, alors je dois d'abord la mettre en surbrillance, c'est à ça que sert cette instruction. Donc pas besoin de condition, si j'ai cliqué dessus c'est qu'il y avait une ligne dans la table.


    Citation Envoyé par basam95 Voir le message
    Ensuite il est préférable de supprimer d'abord les enregistrements des tables liés avant celui de la principale, selon les liaisons utilisées ça peut être important.
    Là dessus je suis d'accord avec toi, c'est d'ailleurs ce que je fais habituellement, mais pas là

    Citation Envoyé par basam95 Voir le message
    Avant de lancer la requête d'alimentation de la table vérifie que ta variable pid n'est pas vide (d'où l'erreur indiquée)
    L'erreur ne vient pas de la variable pid, qui existe toujours (c'est mon numéro d'incident), l'erreur est dans les procédures chargePieces et chargeIntervenants appelées sur sélection d'une ligne de TABLE_Interventions.
    Dans ces procédures, je m'appuies sur la colonne COL_workid de la table TABLE_Interventions pour charger les pièces et intervenants correspondants.
    Et en l'occurrence quelque part dans mon appli, quelque chose fait que, même si ma table TABLE_Interventions comporte bien une ligne, qui plus est sélectionnée, la variable TABLE_Interventions.COL_workid est désespérément vide !

    Citation Envoyé par basam95 Voir le message
    Pour le parcours de la requête il est plus performant d'utiliser
    Plutôt que le TANTQUE.

    A+
    Ca je testerai, si c'est plus performant ça m'intéresse. Même si je dois reprendre tout mon code pour ça. Merci
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Ce qui me fais penser que l'erreur vient du pid c'est que sur la capture de l'erreur, il est indiqué qu'il y a un problème sur le mot clé AND et sur le code SQL en bas de l'erreur il est écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ....WHERE wktek_wkid =  AND ....
    avec un espace vide entre le = et le AND d'où l'erreur.
    Donc la valeur qui devrait être là est vide

    A+

  7. #7
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    J'apporte encore un indice.

    On dirait que, après suppression et re-remplissage de la table, elle se positionne (en mémoire seulement parceque visuellement c'est bien la première ligne qui est active) sur la même ligne qu'avant suppression.

    C'est à dire que si je supprime la dernière ligne (disons de rang N), après rechargement, et même si la première ligne est bien en surbrillance, c'est encore l'ancienne dernière ligne qui semble "sélectionnée", donc le rang N, et au rang N après suppression il n'y a plus rien !

    Autre exemple qui va dans le même sens : disons que j'ai 4 lignes à l'écran, je supprime la 2ème, hé bien après rechargement de la table, et même si c'est bien la première ligne qui est apparemment sélectionnée, en traçant la valeur de ma TABLE_Interventions.COL_workid, j'obtiens le workid de mon ancienne ligne 3 remontée maintenant au rang 2.

    Etrange non ?


    @basam95 : la valeur qui devrait être là est un workid, donc un identifiant de travail (d'intervention), et je vais justement la piocher en interrogeant la ligne active dans la table TABLE_Interventions.
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,
    D'où l'intérêt d'utiliser TableSelect() pour forcer la re-sélection de la ligne en surbrillance, ou il faut rafraichir les variables qui servent de paramètre aux requêtes.

    Courage !

    A+

  9. #9
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    En fait le problème basam95 vient précisément du fait que je n'arrive pas à forcer la sélection de la première ligne !

    J'ai essayé TableSelect(TABLE_Interventions, 1) et aussi directement TABLE_Interventions = 1, tout ça en fin de procédure chargeInterventions

    mais quand je fais un trace(TABLE_Interventions) j'ai systématiquement le rang de l'ancienne ligne supprimée



    Je suis sur que c'est un bug, quelqu'un serait assez motivé pour tester chez lui ?

    Bon je suis en v17 069m, j'hésite à passer au 078n parce que la dernière fois ça m'avais valu quelques déboires...
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  10. #10
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    bon je crois bien que ça vient du fait que la suppression de la ligne (et le rechargement de la table) sont commandés par le clic d'une colonne image qui fait justement partie de cette même table (que l'on va supprimer puis recharger)

    alors j'ai testé avec un bouton de suppression extérieur à la table, et ça fonctionne bien...

    je pense que si vous faites le test vous aurez le même problème que moi

    que faire.....
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  11. #11
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bon sang, je m'étais dit que plutôt que de tout recharger (TableSupprimeTout puis TableAjoute en boucle) l'ensemble de ma table interventions je n'avais qu'à faire un TableSupprime de la ligne à supprimer, et de faire un TableSelect(Table_Interventions, 1) mais ça ne fonctionne pas.

    Forcer la sélection d'une ligne d'une table lorsque la commande est passée depuis une ligne cliquée puis supprimée de cette même table, semble impossible.

    Merci pour toute autre piste qui m'aidera à obtenir le comportement attendu
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  12. #12
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par bvadam Voir le message
    En fait le problème basam95 vient précisément du fait que je n'arrive pas à forcer la sélection de la première ligne !

    J'ai essayé TableSelect(TABLE_Interventions, 1) et aussi directement TABLE_Interventions = 1, tout ça en fin de procédure chargeInterventions

    mais quand je fais un trace(TABLE_Interventions) j'ai systématiquement le rang de l'ancienne ligne supprimée



    Je suis sur que c'est un bug, quelqu'un serait assez motivé pour tester chez lui ?

    Bon je suis en v17 069m, j'hésite à passer au 078n parce que la dernière fois ça m'avais valu quelques déboires...
    Dans le message au dessus tu indiques que tu as tout essayé pour forcer la sélection de la 1ière ligne, et tu indiques que tu as utilisé TableSelect(TABLE_Interventions, 1). Est ce juste une erreur de saisie ici ou mélange tu les fonctions TableSelect et TableSelectPlus ? La code que tu as donné ne permets pas de sélectionner une ligne, cela devrait être TableSelectPlus(TABLE_Interventions, 1).

    P.S. Je me suis déjà fait avoir avec ça un nombre de fois non négligeable :p
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  13. #13
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Alors c'est sur le forum que j'ai écrit TableSelect pour faire court

    Mais j'utilise tout le temps TableSelectPlus, même si j'avoue que je ne connais pas la différence.

    Delphimaniac, tu aurais quelques minutes pour faire le test ? Je suis sur qu'il y a un bug, et ça me rend dingue cette histoire
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    remplace ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wrkid est un entier = TABLE_Interventions.COL_wrkid
    par cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nIndice est un entier
    wrkid est un entier = TABLE_Interventions[nIndice].COL_wrkid

    cordialement Fred

  15. #15
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bonjour,

    je viens de tester, erreur car nIndice n'est pas initialisé ou vaut 0 je pense.

    Vous avez appelé l'opérateur [] sur le champ TABLE_Interventions.
    L'indice spécifié [0] est invalide.
    Les valeurs valides sont comprises entre 1 et 2 (inclus).
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 28
    Points
    28
    Par défaut
    Désolé, je suis allé un peu vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nIndice est un entier = TableSelect(TABLE_Interventions)
    wrkid est un entier = TABLE_Interventions[nIndice].COL_wrkid
    c'est mieux comme ça.

    fred

  17. #17
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    alors j'ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nIndice est un entier = TableSelect(TABLE_Interventions)
    wrkid est un entier = TABLE_Interventions[nIndice].COL_wrkid
     
    Info(TABLE_Interventions.COL_wrkid)
    Info(wrkid)
    et j'ai successivement "vide" puis ma bonne valeur de colonne

    Pourquoi cette fois je suis contraint d'accéder à ma ligne en faisant Table_xxx[indice].COL_yyy alors qu'avant j'y accédais directement via Table_xxx.COL_yyy ?

    Ca fonctionne mais c'est troublant de devoir faire ça.

    EDIT : et puis surtout ça fout le bordel dans le reste de mes fonctions, car chargePieces et chargeIntervenants s'appuyaient sur TABLE_Interventions.COL_wrkid et fonctionnaient très bien avant qu'une suppression d'intervention se produise. Là il faut que je fasse un TableSelect systématique et interroger tout le temps TABLE_Interventions[indice].COL_wrkid ? C'est quand même curieux. Je crois que je vais contourner ce bug (car je pense quand même que c'est un bug) en gérant une variable globale wrkid, tant pi
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  18. #18
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    Pour ta valeur renvoyer vide, c'est normal, il aurait fallut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info(TABLE_Interventions[nIndice].COL_wrkid)
    On peut aussi se passer de la déclaration de nIndice en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    wrkid est un entier = TABLE_Interventions[TableSelect(TABLE_Interventions)].COL_wrkid
     
    Info(TABLE_Interventions[TableSelect(TABLE_Interventions)].COL_wrkid)
    Info(wrkid)

    La difference entre listeselectplus et listeselect c'est que le listeselect renvoi l'indice de la liste selectionné, le listeselectplus se positionne sur la ligne désiré.

  19. #19
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Oui oui ça j'ai bien compris maintenant.

    N'empêche que jusqu'à présent j'ai toujours pu accéder à ma ligne sélectionnée rien qu'en faisant Table_Interventions.COL_wrkid, je n'avais pas besoin de préciser l'indice.

    Enfin, je vais bricoler et ça fonctionnera mais ce n'est pas carré
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/12/2014, 17h44
  2. [WD18] Table remplis par programmation
    Par cid5420 dans le forum WinDev
    Réponses: 12
    Dernier message: 12/06/2014, 11h08
  3. Réponses: 10
    Dernier message: 21/05/2013, 13h29
  4. Réponses: 5
    Dernier message: 08/01/2013, 17h03
  5. Réponses: 6
    Dernier message: 10/04/2007, 15h14

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