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 :

Récupération d'Indice de fin de table


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Récupération d'Indice de fin de table
    Bonjour,
    J'ai crée une fenetre avec un champ de table relié à un fichier et j'essaye de programmer pour intercaler une nouvelle ligne entre chaque ligne de ma table.

    J'ai résolu le problème pour un nombre déterminé de ligne (ex.:10) en rentrant le code suivant dans la rubrique "Fin d'initialisation de Table" du code du champs de table :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Indice est un entier  
    POUR Indice = 10 A 1 PAS -1  
    TableInsèreLigne(TABLE_EXPRESS_REQ_Requête1,Indice)  
    TableEnregistre(TABLE_EXPRESS_REQ_Requête1)  
    FIN

    Je souhaiterai maintenant pouvoir programmer la même chose pour x lignes. J'aimerai savoir comment faire pour récupérer l'indice de la dernière ligne qui me servirait à déterminer ma boucle.

    Merci de votre aide.

    PS: J'ai une 2ème solution avec un pas positif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Indice est un entier  
    HLitPremier(EXPRESS_REQ_Requête1)  
    POUR Indice = 1 A 20 PAS + 2 TableInsèreLigne(TABLE_EXPRESS_REQ_Requête1,Indice)  
    TableEnregistre(TABLE_EXPRESS_REQ_Requête1)  
    FIN

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Insertion ligne lorsqu'il y a rupture
    Bonjour,
    J'ai trouvé la solution, la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Indice est un entier
    ResNombreLigne est un entier
    ResNombreLigne = TableOccurrence(TABLE_EXPRESS_REQ_Requête1)
    POUR Indice = ResNombreLigne A 1 PAS - 1
    TableInsèreLigne(TABLE_EXPRESS_REQ_Requête1,Indice)
    TableEnregistre(TABLE_EXPRESS_REQ_Requête1)
    Je cherche maintenant à insérer ma ligne uniquement dans le cas ou il y a rupture. Je parviens à le faire pour la 1ère rupture mais je n'arrive pas à réinitialiser pour passer à la rupture suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    POUR Indice = DébutRupture A FinRupture PAS + ?
    TableInsèreLigne(TABLE_EXPRESS_REQ_Requête1,FinRupture + 1)
    TableEnregistre(TABLE_EXPRESS_REQ_Requête1)
    Merci de votre aide.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Problème presque résolu
    Bonsoir,
    J'ai presque solutionné mon problème.
    J'ai crée d'abord une table mémoire et ensuite je l'ai initialisé avec le code suivant :

    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
    FichierVersTableMémoire(TABLE_Table1, "EXPRESS_REQ_Requête1") 
    clc_SauveChaine est une chaîne 
    clc_chaine est une chaîne 
    chrubrik2 est une chaîne 
    chrubrik3 est une chaîne 
    TableSupprimeTout(TABLE_Table1) 
    HLitPremier(EXPRESS_REQ_Requête1,Rubrik1) 
    TANTQUE PAS HEnDehors(Rubrik1) 
    	clc_SauveChaine=EXPRESS_REQ_Requête1.Rubrik1 
    	clc_chaine=EXPRESS_REQ_Requête1.Rubrik1 
    	chrubrik2=EXPRESS_REQ_Requête1.Rubrik2 
       chrubrik3=EXPRESS_REQ_Requête1.Rubrik3 
    TANTQUE clc_SauveChaine = clc_chaine ET PAS                                                                                                                    HEnDehors(EXPRESS_REQ_Requête1) 
    	TableAjouteLigne(TABLE_Table1,clc_chaine,chrubrik2,chrubrik3) 
    		HLitSuivant(EXPRESS_REQ_Requête1,Rubrik1) 
    		clc_chaine=EXPRESS_REQ_Requête1.Rubrik1 
    	FIN 
    	TableAjoute(TABLE_Table1,"rupture") 
    	clc_SauveChaine=EXPRESS_REQ_Requête1.Rubrik1 
    FIN
    Quand je fais un test, ça fonctionne mais windev me dit qu'à l'exécution certains codes ne fonctionneront pas. Il doit manquer quelque chose. Je vais y réfléchir
    Si vous savez comment on gère la fin de fichier, je vous saurai gré de votre aide. Merci.
    Arsène

  4. #4
    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
    HEndehors()

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut
    Merci pour votre aide. Finalement ça fonctionne. Je suis arrivé au résultat espéré à travers 2 méthodes. Les voici :

    La 1ère :

    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
    // Insertion d’une ligne de rupture entre chaque //rupture d’une table mémoire :
    //(1ère Méthode) :
     
    //(Code à insérer dans la partie « Initialisation » du code de la table)
     
    FichierVersTableMémoire(TABLE_Table1, "EXPRESS_REQ_Requête1")
    clc_SauveChaine est une chaîne
    clc_chaine est une chaîne
    chrubrik2 est une chaîne
    chrubrik3 est une chaîne
    TableSupprimeTout(TABLE_Table1)
    HLitPremier(EXPRESS_REQ_Requête1,Rubrik1)
    TANTQUE PAS HEnDehors(Rubrik1)
    	clc_SauveChaine=EXPRESS_REQ_Requête1.Rubrik1
    	clc_chaine=EXPRESS_REQ_Requête1.Rubrik1
    	chrubrik2=EXPRESS_REQ_Requête1.Rubrik2
       chrubrik3=EXPRESS_REQ_Requête1.Rubrik3
    TANTQUE clc_SauveChaine = clc_chaine ET PAS                                                                                                                    HEnDehors(EXPRESS_REQ_Requête1)
    	TableAjouteLigne(TABLE_Table1,clc_chaine,chrubrik2,chrubrik3)
    		HLitSuivant(EXPRESS_REQ_Requête1,Rubrik1)
    		clc_chaine=EXPRESS_REQ_Requête1.Rubrik1
      		chrubrik2=EXPRESS_REQ_Requête1.Rubrik2
      		chrubrik3=EXPRESS_REQ_Requête1.Rubrik3
     
    	FIN
    	TableAjoute(TABLE_Table1,clc_SauveChaine)
    	clc_SauveChaine=EXPRESS_REQ_Requête1.Rubrik1
    FIN
    La 2ème :

    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
    33
    //Insertion d’une ligne de rupture entre... chaque rupture d’une table mémoire :
    //(1ère Méthode) :
    //(Code à insérer dans la partie « Initialisation » du code de la table)
     
    FichierVersTableMémoire(TABLE_Table1, "EXPRESS_REQ_Requête1")
    // Initialisation des variables
    Chrubrik1 est une chaîne
    Chrubrik2 est une chaîne
    Chrubrik3 est une chaîne
    nLgn est un entier
    TableSupprimeTout(TABLE_Table1)
    HLitPremier(EXPRESS_REQ_Requête1,RUBRIK1)
    Chrubrik1 = EXPRESS_REQ_Requête1.RUBRIK1
    Chrubrik2 = EXPRESS_REQ_Requête1.RUBRIK2
    Chrubrik3 = EXPRESS_REQ_Requête1.RUBRIK3
    // Parcours du fichier
    TANTQUE PAS HEnDehors(EXPRESS_REQ_Requête1)
    HLitRecherchePremier(EXPRESS_REQ_Requête1,RUBRIK1,Chrubrik1,hGénérique)
    	TANTQUE HTrouve(EXPRESS_REQ_Requête1)	
    		// Ajout dans la table de l'enregistrement trouvé
    		TableAjouteLigne(TABLE_Table1,Chrubrik1,Chrubrik2,Chrubrik3)
    		HLitSuivant(EXPRESS_REQ_Requête1,Chrubrik1)
    		Chrubrik2 = EXPRESS_REQ_Requête1.RUBRIK2
    Chrubrik3 = EXPRESS_REQ_Requête1.RUBRIK3
    	FIN	
    	// Ajout d'une ligne vierge < Rupture >
    	nLgn = TableAjouteLigne(TABLE_Table1,Chrubrik1,Chrubrik2,Chrubrik3)	
    	// Propriétés de le ligne < Couleur/Hauteur >
    	TABLE_Table1[nLgn]..CouleurFond = RVB(205, 230, 255)
    	TABLE_Table1[nLgn]..Hauteur = 20	
    	// Condition suivante
    	Chrubrik1 = EXPRESS_REQ_Requête1.RUBRIK1
    FIN

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

Discussions similaires

  1. [MySQL] Récupération d'indice d'une table
    Par pat06 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/01/2008, 15h35
  2. Récupération de tous les noms de tables d'une bdd paradox
    Par izidor dans le forum Bases de données
    Réponses: 6
    Dernier message: 23/02/2006, 17h41
  3. pourquoi un 's' à la fin des tables ?
    Par Miksimus dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 07/07/2005, 09h04
  4. Réponses: 4
    Dernier message: 26/04/2005, 11h35
  5. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20

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