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 Mobile Discussion :

Problème de déplacement de ligne dans une zone répétée [WM21]


Sujet :

Windev Mobile

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Problème de déplacement de ligne dans une zone répétée
    Bonjour,

    J'utilise une zone répétée mémoire avec une seule colonne pour afficher des données dans un ordre défini.
    Pour gérer cette ordre qui doit pouvoir être modifié, j'utilise un champ numérique.
    Je souhaite pouvoir déplacer une ligne au doigt en utilisant le gripp.
    Une fois le déplacement fait, je pensais pouvoir exécuter une procédure pour renuméroter l'ordre des lignes pour pouvoir le mémoriser.
    Le problème c'est que même si graphiquement la ligne est bien déplacée, il semble que l'application ai gardé l'ordre d'origine en mémoire.
    Et donc, si je passe en revue toute les occurrence de la zone et bien elles ne sont pas lue dans l'ordre affiché mais l'ordre mémorisé au départ.

    Auriez vous une astuce svp ?
    Merci
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Solution
    Bon, j'ai trouvé une solution

    Il faut récupérer la position de départ et la position de fin du glisser de la ligne
    Pour cela, je récupère la valeur de départ contenu dans le champ numérique qui me sert à définir l'ordre de mes lignes.
    Événement : début du glisser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iPosFin = ZR_PARoi_DETail[ZR_PARoi_DETail].ATT_Detail_Num
    Idem avec la valeur de fin. Événement : Lâcher du glisser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iPosDep = ZR_PARoi_DETail[ZR_PARoi_DETail].ATT_Detail_Num
    Ensuite je lance une procédure de mise à jour des valeurs numérique qui définisse l'ordre de mes lignes :
    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
    SI iDep < iFin ALORS
    	POUR TOUTE LIGNE i DE ZR_PARoi_DETail
    		HLitRecherchePremier(PARoi_DETail,IDPARoi_DETail,ZR_PARoi_DETail[i].ATT_ID_Detail)
    		SI HTrouve(PARoi_DETail) ALORS
    			SI PARoi_DETail.PARDET_Num = iDep ALORS 
    				PARoi_DETail.PARDET_Num = iFin
    				HModifie(PARoi_DETail)
    			SINON
    				SI PARoi_DETail.PARDET_Num >iDep ET PARoi_DETail.PARDET_Num <= iFin ALORS 
    					PARoi_DETail.PARDET_Num = PARoi_DETail.PARDET_Num-1
    					HModifie(PARoi_DETail)
    				FIN
    			FIN
    		FIN
    	FIN	
    FIN
     
    SI iDep > iFin ALORS
    	POUR TOUTE LIGNE i DE ZR_PARoi_DETail
    		HLitRecherchePremier(PARoi_DETail,IDPARoi_DETail,ZR_PARoi_DETail[i].ATT_ID_Detail)
    		SI HTrouve(PARoi_DETail) ALORS
    			SELON PARoi_DETail.PARDET_Num
    				CAS iFin A iDep-1
    					PARoi_DETail.PARDET_Num = PARoi_DETail.PARDET_Num+1
    					HModifie(PARoi_DETail)
    				CAS iDep
    					PARoi_DETail.PARDET_Num = iFin
    					HModifie(PARoi_DETail)
    			FIN
    		FIN
    	FIN	
    FIN
    et je finis par une procédure qui vide et re rempli ma zone répétée

    Et voilà ;-)

    Avis au développeur expérimenté :
    Si vous pensez que ma démarche est bonne, cliquez sur le pouce vert, ça me permettra d'avoir votre avis et de juger de la cohérence de mon propos (je suis autodidacte, l'avis des pros m'est utile) Merci
    Dans le cas contraire, pouce rouge
    Les solutions les plus simples sont les plus efficaces

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Et merci à Lo² pour son aide d'expert
    Les solutions les plus simples sont les plus efficaces

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut nouveau problème
    Bon, j'ai résolu un problème et en voilà un autre qui apparait.

    Le simple fait de déplacer une ligne de ma zone répétée provoque un plantage "aléatoire" sur le mobile.

    le code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    iPosFin = ZR_PARoi_DETail[ZR_PARoi_DETail].ATT_Detail_Num
     
    POUR i = 1 _A_ ZoneRépétéeOccurrence(ZR_PARoi_DETail)
    	Info(ZR_PARoi_DETail[i].ATT_Lib_Mat,ZR_PARoi_DETail[i].ATT_Detail_Num)
    FIN
    aucun traitement, juste un parcours de la zr et affichage d'infos !?
    Plantage sans message d'erreur "l'appli c'est arrêtée" et rebug quand elle redémarre...
    J'ai bien l'impression que c'est pas très au point ces déplacement de ligne en ZR

    Des infos sur le sujet svp ?

    Merci d'avance de votre aide
    Les solutions les plus simples sont les plus efficaces

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Bon, à nouveau problème, nouvelle astuce :

    Le contenu de ma ZR étant stocké dans un tableau, après le déplacement d'une ligne au doigt, je ne parcours plus la ZR sinon sa plante.
    Je travail avec mon tableau pour faire la mise à jour des données.
    Et ensuite, je met à jour ma ZR par recherche de ligne sur la base des données de mon tableau.
    Résultat, la ZR est actualisée sans avoir utiliser le parcours automatique des occurrences
    Les solutions les plus simples sont les plus efficaces

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  2. masquer les lignes dans une zone si une cellule de la ligne est vide
    Par keguira dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2006, 18h21
  3. Réponses: 3
    Dernier message: 27/09/2006, 11h35
  4. Saut de ligne dans une zone de texte
    Par lito74 dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 16h35
  5. Retour à la ligne dans une zone de text
    Par hnb2003 dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 11h56

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