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 :

WD 26 tabledéplacebranche


Sujet :

WinDev

  1. #1
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Par défaut WD 26 tabledéplacebranche
    Bonjour

    WINDEV 26

    Je tente de déplacer une branche complète dans une table hiérarchique (avec j'espère ses dépendances) avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gIndice_départ=TableSelect(TH_doc)
    gIndice_arrivée=gIndice_départ-1
    TableDéplaceBranche(TH_doc,gIndice_départ,gIndice_arrivée,tdEnFrère)
    l'indice cible est celui de départ - 1 (en fait l'équivalent de "monter d'une ligne")

    je n'ai pas d'erreur de syntaxe, mais cela ne fonctionne tout simplement pas.

    Si j'utilise le même code en changeant simplement tdEnFrère en tdEnFils, alors la ligne à déplacer devient fils de la ligne précédente, sans être déplacée vraiment

    En mode pas à pas, les valeurs d'indice sont correctes

    Merci pour vos idées

    Je suis aussi preneur du drag and drop, est-ce plus facile dans la V27 ?

    Bien cordialement

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 253
    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 253
    Par défaut
    Ici, tu prends la ligne 10 par exemple, et tu lui demandes de placer cette ligne Après la ligne 9.
    Donc tu lui demandes de remettre la ligne 10 au même endroit.

    Sauf cas particulier, peut être fréquent. Si la ligne 9 et la ligne 10 sont rattachées à la même ligne parent, tu demandes en fait de ne rien changer.
    Si elles ne sont pas rattachées au même parent, tu demandes un changement.

    La doc dit bien , à propos du paramètre tdEnFrère :
    La branche sera déplacée et sera le frère suivant de la branche destination. La branche déplacée sera donc sur le même niveau de hiérarchie que la branche destination mais à la position suivante.

    Essaie ainsi : gIndice_arrivée=gIndice_départ-2.
    Dans certains cas (souvent), ça marchera. Tu dois déjà pouvoir vérifier.
    Mais si par exemple, la ligne en cours est la 2ème ligne d'un bloc, et si tu veux la remonter pour qu'elle soit le 1er enfant du groupe , tu ne peux plus passer par le paramètre tdEnFrère, mais il faut utiliser TdEnFils.
    Et donc retrouver le n° de la ligne parent.

    Cas général : les lignes manipulées ont des enfants. Et du coup, ce n'est ni gIndice_départ-1 ni gIndice_départ-2 mais un truc plus compliqué.
    Si ta table contient
    A1
    A1B1
    A1B1C1
    A1B1C2
    A1B2
    A1B2D1
    A1B2D2
    A1B3
    A1B3E1
    A1B3E2
    A1B3E3

    Et si tu veux obtenir ça :
    A1
    A1B1
    A1B1C1
    A1B1C2
    A1B3
    A1B3E1
    A1B3E2
    A1B3E3
    A1B2
    A1B2D1
    A1B2D2

    Je pense qu'il y a 3 méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDéplaceBranche(TH_doc, 8, 2, tdEnFrère)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDéplaceBranche(TH_doc, 5, 8, tdEnFrère)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableEchangeBranche(TH_doc, 5, 8 )
    Regarde du coté de TableEchangeBranche.
    Si tu veux obtenir la situation ci-dessous, TableEchangeBranche convient toujours, alors qu'avec TableDéplaceBranche, il faudra remplacer tdEnFrère par tdEnFils.

    A1
    A1B2
    A1B2D1
    A1B2D2
    A1B1
    A1B1C1
    A1B1C2
    A1B3
    A1B3E1
    A1B3E2
    A1B3E3

    Et il faut que tu passes par TableRécupèreParent et TableRécupèreFils pour trouver les numéros des lignes de destination.

Discussions similaires

  1. [WD18] bug TableDéplaceBranche ?
    Par iceuponfire dans le forum WinDev
    Réponses: 3
    Dernier message: 17/02/2022, 13h23

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