C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
Hyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
fichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$
> C'est possible de faire des fonctions récursives (cad , qui s'appellent
> elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elle
> plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+
> " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
>
>
Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
Hyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
fichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" <fabien@iom.fr> a écrit dans le message de
news:41053e1d$0$8538$626a14ce@news.free.fr...
> C'est possible de faire des fonctions récursives (cad , qui s'appellent
> elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elle
> plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+
> " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
>
>
Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
Hyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
fichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$
> C'est possible de faire des fonctions récursives (cad , qui s'appellent
> elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elle
> plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+
> " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
>
>
ben ca marche pas mieux :(
merci de ton aide
"..." a écrit dans le message de news:
YwgNc.60063$Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
àHyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaquefichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elleplante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
ben ca marche pas mieux :(
merci de ton aide
"..." <...@.com> a écrit dans le message de news:
YwgNc.60063$KU.53229@animal.nntpserver.com...
Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
à
Hyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaque
fichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" <fabien@iom.fr> a écrit dans le message de
news:41053e1d$0$8538$626a14ce@news.free.fr...
C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elle
plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+
" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
ben ca marche pas mieux :(
merci de ton aide
"..." a écrit dans le message de news:
YwgNc.60063$Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte liée
àHyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaquefichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elleplante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
C'est possible de faire des fonctions récursives (cad , qui
s'appellent elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant
mais elle plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
numNiveau //+ " ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
C'est possible de faire des fonctions récursives (cad , qui
s'appellent elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant
mais elle plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
numNiveau //+ " ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
C'est possible de faire des fonctions récursives (cad , qui
s'appellent elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant
mais elle plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
numNiveau //+ " ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
Fabien Mas wrote:ben ca marche pas mieux :(
merci de ton aide
"..." a écrit dans le message de news:
YwgNc.60063$Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte
liée
àHyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaquefichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elleplante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
Bonjour,
le probleme c'est qu'on ne peut pas faire des hsauveposition imbriques
pour un meme fichier(dixit aide).
Pour ton algo:
sdd est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
analyserNiveau(sdd.IDNiveau)
HLitSuivant(sdd)
FIN
suffit pas ?, tu executais , apparement 2 fois la meme requete
Sinon, tu peux toujours essayer avec des alias
Fabien Mas wrote:
ben ca marche pas mieux :(
merci de ton aide
"..." <...@.com> a écrit dans le message de news:
YwgNc.60063$KU.53229@animal.nntpserver.com...
Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte
liée
à
Hyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaque
fichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" <fabien@iom.fr> a écrit dans le message de
news:41053e1d$0$8538$626a14ce@news.free.fr...
C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elle
plante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+
" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
Bonjour,
le probleme c'est qu'on ne peut pas faire des hsauveposition imbriques
pour un meme fichier(dixit aide).
Pour ton algo:
sdd est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
analyserNiveau(sdd.IDNiveau)
HLitSuivant(sdd)
FIN
suffit pas ?, tu executais , apparement 2 fois la meme requete
Sinon, tu peux toujours essayer avec des alias
Fabien Mas wrote:ben ca marche pas mieux :(
merci de ton aide
"..." a écrit dans le message de news:
YwgNc.60063$Je suppose que le plantage lors du retour concerne Hyperfile ?
Ton algo est correct, mais tu ne prends pas en compte une contrainte
liée
àHyperfile. Même si tu déclares une nouvelle source de données, Windev ne
gère pas un contexte pour chaque source de données, mais plutôt pour
chaquefichier. Belle aberration...
Regarde les fonctions hSauvePosition et hRetourPosition
"Fabien Mas" a écrit dans le message de
news:41053e1d$0$8538$C'est possible de faire des fonctions récursives (cad , qui s'appellent
elles-memes ds leur propore code) en windev ?
J'en ai fait une qui me parait correcte algorithymiquement parlant mais
elleplante sitot qu'elle doit remonter un niveau d'appel :
*********** ANNALYSE ****************
1 fichier avec 3 rubriques :
Niveau
IDNiveau
nom
idParent
**************** Fonction **********************
PROCEDURE analyserNiveau(numNiveau)
sdd,sdd2 est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
//+" ORDER BY idParent ASC"
req2 est une chaîne
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
HLitPremier(sdd2)
TANTQUE PAS HEnDehors()
// on va chercher les enfants de ceux la
analyserNiveau(sdd2.IDNiveau)
HLitSuivant(sdd2)
FIN
HLitSuivant(sdd)
FIN
Bonjour,
le probleme c'est qu'on ne peut pas faire des hsauveposition imbriques
pour un meme fichier(dixit aide).
Pour ton algo:
sdd est une Source de Données
req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" + numNiveau
HExécuteRequêteSQL(sdd,req)ALORS
HLitPremier(sdd)
TANTQUE PAS HEnDehors()
// On affiche ts les niveaux actuels
Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
analyserNiveau(sdd.IDNiveau)
HLitSuivant(sdd)
FIN
suffit pas ?, tu executais , apparement 2 fois la meme requete
Sinon, tu peux toujours essayer avec des alias
Fabien Mas wrote:
> C'est possible de faire des fonctions récursives (cad , qui
> s'appellent elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant
> mais elle plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
> numNiveau //+ " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
c'est ce qui s'appelle faire des jointures ouvertes...
On peut le faire en une seule requete avec fixant le nombre de fils
possibles.
Fabien Mas wrote:
> C'est possible de faire des fonctions récursives (cad , qui
> s'appellent elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant
> mais elle plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
> numNiveau //+ " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
c'est ce qui s'appelle faire des jointures ouvertes...
On peut le faire en une seule requete avec fixant le nombre de fils
possibles.
Fabien Mas wrote:
> C'est possible de faire des fonctions récursives (cad , qui
> s'appellent elles-memes ds leur propore code) en windev ?
> J'en ai fait une qui me parait correcte algorithymiquement parlant
> mais elle plante sitot qu'elle doit remonter un niveau d'appel :
>
> *********** ANNALYSE ****************
> 1 fichier avec 3 rubriques :
>
> Niveau
> IDNiveau
> nom
> idParent
>
> **************** Fonction **********************
> PROCEDURE analyserNiveau(numNiveau)
>
> sdd,sdd2 est une Source de Données
> req est une chaîne = "SELECT * FROM Niveau WHERE idParent=" +
> numNiveau //+ " ORDER BY idParent ASC"
>
> req2 est une chaîne
> HExécuteRequêteSQL(sdd,req)ALORS
> HLitPremier(sdd)
> TANTQUE PAS HEnDehors()
> // On affiche ts les niveaux actuels
> Fenêtre1.Saisie1 = Fenêtre1.Saisie1 +RC + sdd.nom
>
> req2 = "SELECT * FROM Niveau WHERE idParent=" + sdd.IDNiveau
> HLitPremier(sdd2)
> TANTQUE PAS HEnDehors()
> // on va chercher les enfants de ceux la
> analyserNiveau(sdd2.IDNiveau)
> HLitSuivant(sdd2)
> FIN
> HLitSuivant(sdd)
> FIN
c'est ce qui s'appelle faire des jointures ouvertes...
On peut le faire en une seule requete avec fixant le nombre de fils
possibles.