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 :

Ajout des éléments dans un tableau de structure


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Ajout des éléments dans un tableau de structure
    Etant donné les déclarations

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    engt est une structure
    	agce est une chaîne
    	cli est une chaîne
    	codeges est une chaîne
    	compte est une chaîne
    	devise est une chaîne
    	chapitre est une chaîne
    	inti est une chaîne
    	solde est un monétaire		
    FIN
     
    TabEngt est un tableau de 10000 engt
    comment puis ajouter les valeurs dans mon tableau à l'intérier du boucle genre TANTQUE?

    Toute aide est la bienvenue

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Je sais pas si j'ai bien compris la question.
    Je propose donc ceci

    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
     
    engt est une structure
    	agce est une chaîne
    	cli est une chaîne
    	codeges est une chaîne
    	compte est une chaîne
    	devise est une chaîne
    	chapitre est une chaîne
    	inti est une chaîne
    	solde est un monétaire		
    FIN
     
    TabEngt est un tableau de 10000 engt
     
    Tantque Quelquechose
       TabEngt[ compteur]:agce = Valeur_agce
       TabEngt[ compteur]:cli = Valeur_Cli
       TabEngt[ compteur]:codeges = Valeur_codeges
       TabEngt[ compteur]:compte = Valeur_Compte
       TabEngt[ compteur]:devise = Valeur_devise
       TabEngt[ compteur]:chapitre = valeur_chapitre
       TabEngt[ compteur]:inti = valeur_inti
       TabEngt[ compteur]:solde = valeur_solde
       Quelquechose = Testesuite( compteur)
       Si compteur > 1000 alors sortir //Ben c'est plus sûr :-)
    fin

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Suite ...
    J'ai bien essayé ce procédé, mais j'obtiens l'exception ci-dessous:

    Erreur à la ligne 62 du traitement Clic sur Extraire.
    La dimension 1 du tableau possède 0 élément(s) et vous tentez d'accéder à l'élément 0.


    Informations techniques

    Projet : MRC

    Dump de l'erreur du module <WD100VM.DLL> <10.00Nu>.

    - Appel WL :
    Traitement de <Principale.Boîte1.Extraire>, ligne <62>, thread <0>

    - Niveau : erreur fatale (EL_FATAL)

    - Code erreur : 2304

    - Code erreur WD55 : 0

    - Pas de code d'erreur système

    - Pas de message d'erreur système

    - Que s'est-il passé ?
    La dimension 1 du tableau possède 0 élément(s) et vous tentez d'accéder à l'élément 0.

    - Pas d'info de debug

    - Infos attachées :
    EIT_DATEHEURE : 21/06/2007 08:40:15
    EIT_PILEWL :
    Clic sur Extraire (Principale.Boîte1.Extraire), ligne 62

    - Identifiant dans le .err : 2304

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Dans le code fourni je ne vois pas l'initialisation du compteur à 1, ne pas oublier.

    Bob.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Intitiation compteur
    L'initialisation du compteur est fait à la déclaration
    genre indic est un entier=0, je crois qu'il faut chercher ailleurs!

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    le code de Kwasin est un code exemple incomplet qui ne peut être utilisé tel quel et on ne peut pas se baser dessus pour trouver l'erreur.

    Il faut nous donner le code qui provoque l'erreur.

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Comme le dit Guardian, je n'ai donné qu'un exemple d'utilisation d'un tableau de structure. Maintenant, il faut voir le code pour trouver l'erreur.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Après une selection des valeurs dans une table d'une base Oracle, j'exécute le bout de code suivant pour inserer les valeurs dans un tableau de structure:
    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
    SI SQLExec(strQuery,"LIST_CPTE")= Faux ALORS
    			SQLInfoGene()
    		       Erreur("Erreur de lecture des engagements clients: " + RC +	"Code erreur : " + SQL.Erreur +RC+...
    	     		SQL.MesErreur + RC + strQuery)	
    	    	SINON
     
    			en_cours=" Extraction des comptes ayant un engagement : Tous les comptes"
    			indic est un entier	=0	
     
    			TANTQUE SQLAvance("LIST_CPTE")=0	
     
    				TableauSupprimeTout(TabEngt)
    				en_cours=" Extraction des comptes ayant un engagement  compte :" + SansEspace(SQLLitCol("LIST_CPTE",4)) + "-"  + SansEspace(SQLLitCol("LIST_CPTE",5))
    				TabEngt[indic]:agce= SansEspace(SQLLitCol("LIST_CPTE",1))
    				TabEngt[indic]:cli=SansEspace(SQLLitCol("LIST_CPTE",2))
    				TabEngt[indic]:codeges=SansEspace(SQLLitCol("LIST_CPTE",3))
    				TabEngt[indic]:compte=SansEspace(SQLLitCol("LIST_CPTE",4)) + "-"  + SansEspace(SQLLitCol("LIST_CPTE",5))
    				TabEngt[indic]:devise=SansEspace(SQLLitCol("LIST_CPTE",6))
    				TabEngt[indic]:chapitre=SansEspace(SQLLitCol("LIST_CPTE",7))
    				TabEngt[indic]:inti=Remplace(SansEspace(SQLLitCol("LIST_CPTE",8)),"'","''")
    				TabEngt[indic]:solde= SQLLitCol("LIST_CPTE",9)
     
    				//incrémentation indice
    				indic =indic+1	
    				Info(indic)
     
    			FIN
    			Info("fin de lecture")
    			SQLFerme("LIST_CPTE")
    Ce qui conduit à l'erreur ci-dessus affichée

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Il manque un FIN déjà

    Sinon je pense que le problème vient de l'instruction TableauSupprimeTout ()
    Citation Envoyé par Aide WD
    La taille du tableau passe à 0.

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    JE ne vois pas l'instruction initialisant ta variable indic à 1 !

    Si tu ne l'as pas fait, je pense que Windev l'initialise par défaut à zéro, et les tableaux sous windev commence à 1 !

  11. #11
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut C'est parfait !!!
    J'ai fait les deux choses suivantes:

    - suppression de l'instruction tableausupprimetout(tabEngt)

    - modification de l'initialisation du compteur indic
    "indic est un entier=0"
    par
    "indic est un entier=1"

    Tout est parfait maintenant.

    Merci à vous pour votre aide.

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

Discussions similaires

  1. Ajouter des éléments dans un tableau
    Par Anduriel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/07/2012, 10h55
  2. [POO] ajouter des données dans un tableau contenant une structure
    Par Peanut dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2009, 18h41
  3. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54
  4. [Tableaux] ajout d'élément dans un tableau
    Par maximenet dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2006, 20h24
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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