Rupture
Stagiaire WDF
Inscrit:
22/07/2007 10:04
Post(s): 36
Bonjour, j'ai crée une fenêtre avec une table associée à une requête. Dans cette fenêtre, j'ai crée une zone répétée avec une rupture sur la rubrique "Ma Rubrik".
Je voudrai insérer une nouvelle ligne aprés chaque rupture.
Pour cela, j'ai crée un bouton et je l'ai initialisé avec le code ci-dessous:
HLitPremier(EXPRESS_REQ_Requête1,MaRubrik)
TANTQUE Répétition <= ZR_EXPRESS_REQ_Requête1.MaRubrik	
	// Indice de la rupture courante
	DébutRupture = ZoneRépétéeIndiceRupture(RUPT_HautRupture1,Répétition)
	FinRupture = ZoneRépétéeIndiceRupture(RUPT_BasRupture1, Répétition)
	// Parcours des répétitions de la rupture courante
	POUR Indice = DébutRupture A FinRupture	
	FIN	
	// Insertion de la ligne
	TableInsèreLigne(TABLE_EXPRESS_REQ_Requête1,Indice)
	TableEnregistre(TABLE_EXPRESS_REQ_Requête1)	
	// Passage à la rupture suivante
	Répétition = FinRupture + 1
	HLitSuivant(EXPRESS_REQ_Requête1)
FIN

Lorsque je clique une première fois sur le bouton, ça marche, une ligne s'insère aprés la 1ère rupture. Ensuite ça marche plus.
Quelqu'un pourrait-il m'aider à rectifier le code?
Merci de votre aide.

Contribution le : 12/08/2007 15:58

Edité par drcharly93 sur 21/8/2007 10:18:06
Créer un fichier PDF de la contribution Imprimer


Re: Rupture
Stagiaire WDF
Inscrit:
22/07/2007 10:04
Post(s): 36
Bonjour.Je suis arrivé au résultat que je souhaitais à travers 2 méthodes. Les codes suivant servent à initialiser une table mémoire. Les voici :

La 1ère :

// 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 :

//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

Contribution le : 20/08/2007 20:50

Edité par drcharly93 sur 21/8/2007 13:30:47
Créer un fichier PDF de la contribution Imprimer


Re: Rupture
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Analyse de votre code
- Vous remplissez la table
- Vous supprimer le contenu (Le contraire serait meilleur)
- Vous reparcourez la fichier (Déjà fait, etape 1)
- Vous utilisez apparament des variables inutiles.

sMemo est une chaîne
Ind est un entier

//On vide la table
TableSupprimeTout(TABLE_Table1)
//On rempli la table
//Ici EXPRESS_REQ doit être trié sur Rubrik1
FichierVersTableMémoire(TABLE_Table1, EXPRESS_REQ_Requête1")
//On récupère la valeur de la rupture de la 1iere ligne
//La colonne Rubrik1 peut être cachée
Ind = 1
sMemo = Rubrik1[Ind]	
On lit toutes les lignes de la table à partir de 2ieme ligne
BOUCLE
  Ind ++
  //Si on atteind la fin de la table
  Si Ind > TABLE_Table1..Occurence Alors
    //La table fini avec une ligne Rupture
    TableAjouteLigne(TABLE_Table1, sMemo )
    TABLE_Table1[Ind]..CouleurFond = RVB(205, 230, 255)
    TABLE_Table1[Ind]..Hauteur = 20	
    SORTIR  //On sort de la boucle fin de table atteinte
  FIN

  //Rubrik1 à changé
  SI Rubrik1[Ind] <> sMemo Alors //Nouvelle rubrique
    TableInsereLigne(TABLE_Table1, Ind + 1, sMemo )
    TABLE_Table1[Ind+1]..CouleurFond = RVB(205, 230, 255)
    TABLE_Table1[Ind+1]..Hauteur = 20	
    sMemo = Rubrik1[ind + 2] //On sauvegarde la nouvelle Rubrik1
    Ind ++ On se positionne sur la ligne ajoutée
  FIN
  Ind ++  //On passe à la ligne suivante
FIN

Code saisi à la volée et pouvant comporter des erreurs

Contribution le : 21/08/2007 15:03
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2