Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WD75-206g - Passage de paramètres à une fenêtre

12 réponses
Avatar
M.D.
J'ai une fenêtre nommée el_tab qui présente une liste de noms d'élèves
classés comme un répertoire téléphonique avec un onglet en haut. On clique
sur l'onglet ayant le libellé "AB" on visualise dans une table la liste des
élèves dont le nom commence par A ou B, etc. La table fichier est toute
simple, j'utilise un filtre sur le champ nom du fichier Elève.
Voici le code d'ouverture de el_tab (NomAmontrer me sert à préciser l'élève
qui doit être présélectionné à l'ouverture de la fenêtre)

---Déclarations globales----
PROCEDURE el_tab(NomAmontrer="A")
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
ExécuteTraitement(ONGLETREP,trtModification) //filtre le fichier
---Initialisation de el_tab---
HLitRecherchePremier(Eleve,nom,NomAmontrer)
TableAffiche(TABLE,taCourantPremier)

Et maintenant voici deux codes qui me paraissaient identiques :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)

et

HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,Eleve.nom)

Et bien seul le second fonctionne ! Avez vous une idée ?

10 réponses

1 2
Avatar
Jean Cougnaud
Bonjour,

Un problème d'espace à la fin de la rubrique Eleve.nom ? Le fait de la
passer par une variable chaine les supprime.

Si l'analyse a été migrée de Windev 5.5 elle peut avoir gardé cette notion
présente dans cette version. Voir "stockage des rubriques textes..." dans
l'onglet détail de la description du fichier "Eleve".

Cordialement

Jean

"M.D." a écrit dans le message de
news:cv37lu$f74$
J'ai une fenêtre nommée el_tab qui présente une liste de noms d'élèves
classés comme un répertoire téléphonique avec un onglet en haut. On clique
sur l'onglet ayant le libellé "AB" on visualise dans une table la liste


des
élèves dont le nom commence par A ou B, etc. La table fichier est toute
simple, j'utilise un filtre sur le champ nom du fichier Elève.
Voici le code d'ouverture de el_tab (NomAmontrer me sert à préciser


l'élève
qui doit être présélectionné à l'ouverture de la fenêtre)

---Déclarations globales----
PROCEDURE el_tab(NomAmontrer="A")
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
ExécuteTraitement(ONGLETREP,trtModification) //filtre le fichier
---Initialisation de el_tab---
HLitRecherchePremier(Eleve,nom,NomAmontrer)
TableAffiche(TABLE,taCourantPremier)

Et maintenant voici deux codes qui me paraissaient identiques :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)

et

HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,Eleve.nom)

Et bien seul le second fonctionne ! Avez vous une idée ?




Avatar
Romain PETIT
Jean Cougnaud avait prétendu :
HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)
et
HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,Eleve.nom)





Un problème d'espace à la fin de la rubrique Eleve.nom ? Le fait de la
passer par une variable chaine les supprime.



Bizarre tout de même car c'est ELeve.nom qui est passé en paramètre et
non SonNom...

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Pascal R.
M.D. a écrit :

J'ai une fenêtre nommée el_tab qui présente une liste de noms d'élèves
classés comme un répertoire téléphonique avec un onglet en haut. On clique
sur l'onglet ayant le libellé "AB" on visualise dans une table la liste des
élèves dont le nom commence par A ou B, etc. La table fichier est toute
simple, j'utilise un filtre sur le champ nom du fichier Elève.
Voici le code d'ouverture de el_tab (NomAmontrer me sert à préciser l'élève
qui doit être présélectionné à l'ouverture de la fenêtre)

---Déclarations globales----
PROCEDURE el_tab(NomAmontrer="A")
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
ExécuteTraitement(ONGLETREP,trtModification) //filtre le fichier
---Initialisation de el_tab---
HLitRecherchePremier(Eleve,nom,NomAmontrer)
TableAffiche(TABLE,taCourantPremier)

Et maintenant voici deux codes qui me paraissaient identiques :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)

et

HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,Eleve.nom)

Et bien seul le second fonctionne ! Avez vous une idée ?




T'es sur de la 2eme syntaxe ??? Ouvre(el_tab,Eleve.nom) ???
ca serait pas plutot >> Ouvre(el_tab,SonNom) ?

Peut-être à voir le type de Eleve.nom ?
Ca serait bien aussi de nous dire ce qui ne fonctionne pas
quels sont les symptomes, et messages ?

Pascal
Avatar
Jean Cougnaud
Exact, j'ai lu ce que je voulais voir :-((

Si ce n'est pas une erreur de frappe, il faudrait en savoir plus sur le
problème.

Jean


"Romain PETIT" a écrit dans le message de
news:
Jean Cougnaud avait prétendu :
>> HLitRecherchePremier(Eleve,IDeleve,15)
>> Ouvre(el_tab,Eleve.nom)
>> et
>> HLitRecherchePremier(Eleve,IDeleve,15)
>> SonNom est une chaîne=Eleve.Nom
>> Ouvre(el_tab,Eleve.nom)

> Un problème d'espace à la fin de la rubrique Eleve.nom ? Le fait de la
> passer par une variable chaine les supprime.

Bizarre tout de même car c'est ELeve.nom qui est passé en paramètre et
non SonNom...

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
jacques.trepp
Pascal R. avait soumis l'idée :
M.D. a écrit :

J'ai une fenêtre nommée el_tab qui présente une liste de noms d'élèves
classés comme un répertoire téléphonique avec un onglet en haut. On clique
sur l'onglet ayant le libellé "AB" on visualise dans une table la liste des
élèves dont le nom commence par A ou B, etc. La table fichier est toute
simple, j'utilise un filtre sur le champ nom du fichier Elève.
Voici le code d'ouverture de el_tab (NomAmontrer me sert à préciser l'élève
qui doit être présélectionné à l'ouverture de la fenêtre)

---Déclarations globales----
PROCEDURE el_tab(NomAmontrer="A")
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
ExécuteTraitement(ONGLETREP,trtModification) //filtre le fichier
---Initialisation de el_tab---
HLitRecherchePremier(Eleve,nom,NomAmontrer)
TableAffiche(TABLE,taCourantPremier)

Et maintenant voici deux codes qui me paraissaient identiques :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)

et

HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,Eleve.nom)

Et bien seul le second fonctionne ! Avez vous une idée ?




T'es sur de la 2eme syntaxe ??? Ouvre(el_tab,Eleve.nom) ???
ca serait pas plutot >> Ouvre(el_tab,SonNom) ?

Peut-être à voir le type de Eleve.nom ?
Ca serait bien aussi de nous dire ce qui ne fonctionne pas
quels sont les symptomes, et messages ?

Pascal



à priori, la deuxième ne devrait pas plus fonctionner que la première,
vu que l'affectation à la variable sonnom n'est pas utilisée dans le
Ouvre(el_tab)
tu n'as pas fait la mise à jour en 206h ?

--
Jacques Trepp
Albygest
Avatar
M.D.
OUI OUI tout a fait, c'est une erreur de ma part les deux codes sont
effectivement :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)
et
HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,SonNom)

Je confirme que seul le second fonctionne.
Pour répondre à Jean C. : ce n'est pas un pb d'espace dans les chaines, et
ensuite, il ne s'agit pas d'une analyse migrée.
J'ai retracé avec le débogueur le contenu de la variable, voici ce que cela
donne :

Si j'appelle la fenêtre ainsi : Ouvre(el_tab,"DUPONT")

Dans le code
PROCEDURE el_tab(NomAmontrer="A")
//NomAmontrer vaut "DUPONT"
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
//NomAmontrer="DUPONT"
ExécuteTraitement(ONGLETREP,trtModification)
//NomAmontrer<>"DUPONT"

---Code Modification de ONGLETREP ---
DeNom,AuNom est une chaîne
SI Gauche(ONGLETREP[ONGLETREP]..Libellé,1)="A" ALORS
DeNom=Gauche(Caract(0),1)
SINON
DeNom=Gauche(ONGLETREP[ONGLETREP]..Libellé,1)
FIN
//NomAmontrer="DUPONT"
SI Droite(ONGLETREP[ONGLETREP]..Libellé,1)="Z" ALORS
AuNom=Droite(Caract(255),1)
SINON
AuNom=Droite(ONGLETREP[ONGLETREP]..Libellé,1)
FIN
//NomAmontrer="DUPONT"
SI HFiltre(Eleve,nomp,DeNom+Caract(0),AuNom+Caract(255))="" ALORS
Erreur("Etablissement du filtre impossible")
FIN
//NomAmontrer="DUPONT"
TableAffiche(TABLE,taInit)
//NomAmontrer<>"DUPONT"


Je n'ai saisi AUCUN code dans la table, aucun code ailleurs dans l'onglet,
j'ai bien vérifié qu'aucun code ne s'effectuait entre temps, que ma variable
n'était pas utilisée ailleurs dans la fenêtre. J'ai supprimé le dossier .CPL
j'ai recompilé, j'ai éteins la machine, j'ai redémarré, j'ai changé le nom
de la variable, je ne comprends pas.
Avatar
Stephan COMBES
M.D. a écrit :
OUI OUI tout a fait, c'est une erreur de ma part les deux codes sont
effectivement :

HLitRecherchePremier(Eleve,IDeleve,15)
Ouvre(el_tab,Eleve.nom)
et
HLitRecherchePremier(Eleve,IDeleve,15)
SonNom est une chaîne=Eleve.Nom
Ouvre(el_tab,SonNom)

Je confirme que seul le second fonctionne.
Pour répondre à Jean C. : ce n'est pas un pb d'espace dans les chaines, et
ensuite, il ne s'agit pas d'une analyse migrée.
J'ai retracé avec le débogueur le contenu de la variable, voici ce que cela
donne :

Si j'appelle la fenêtre ainsi : Ouvre(el_tab,"DUPONT")

Dans le code
PROCEDURE el_tab(NomAmontrer="A")
//NomAmontrer vaut "DUPONT"
ONGLETREP=(Asc(NomAmontrer[[1]])-Asc("A"))/2+1
//NomAmontrer="DUPONT"
ExécuteTraitement(ONGLETREP,trtModification)
//NomAmontrer<>"DUPONT"

---Code Modification de ONGLETREP ---
DeNom,AuNom est une chaîne
SI Gauche(ONGLETREP[ONGLETREP]..Libellé,1)="A" ALORS
DeNom=Gauche(Caract(0),1)
SINON
DeNom=Gauche(ONGLETREP[ONGLETREP]..Libellé,1)
FIN
//NomAmontrer="DUPONT"
SI Droite(ONGLETREP[ONGLETREP]..Libellé,1)="Z" ALORS
AuNom=Droite(Caract(255),1)
SINON
AuNom=Droite(ONGLETREP[ONGLETREP]..Libellé,1)
FIN
//NomAmontrer="DUPONT"
SI HFiltre(Eleve,nomp,DeNom+Caract(0),AuNom+Caract(255))="" ALORS
Erreur("Etablissement du filtre impossible")
FIN
//NomAmontrer="DUPONT"
TableAffiche(TABLE,taInit)
//NomAmontrer<>"DUPONT"


Je n'ai saisi AUCUN code dans la table, aucun code ailleurs dans l'onglet,
j'ai bien vérifié qu'aucun code ne s'effectuait entre temps, que ma variable
n'était pas utilisée ailleurs dans la fenêtre. J'ai supprimé le dossier .CPL
j'ai recompilé, j'ai éteins la machine, j'ai redémarré, j'ai changé le nom
de la variable, je ne comprends pas.




Salut,

En si tu refais la fenêtre qui pose problème ça fonctionne ?
Quand je dis refaire c'est tout retapper et pas faire de copier/coller.

Bon dev.

Stephan
Avatar
M.D.
Stephan me répond ...
Salut,

En si tu refais la fenêtre qui pose problème ça fonctionne ?
Quand je dis refaire c'est tout retapper et pas faire de copier/coller.

Bon dev.

Stephan




Et bien oui je crois que c'est ce qu'il me reste à faire ...
Avatar
M.D.
Je me réponds, j'ai recréé la fenêtre de A à Z sans copier/coller et c'est
pareil.

"M.D." a écrit dans le message de
news:42160073$0$17167$
Stephan me répond ...
> Salut,
>
> En si tu refais la fenêtre qui pose problème ça fonctionne ?
> Quand je dis refaire c'est tout retapper et pas faire de copier/coller.
>
> Bon dev.
>
> Stephan


Et bien oui je crois que c'est ce qu'il me reste à faire ...




Avatar
JJacques
Hello,

Est-ce que "nom" n'est pas une rubrique protégée et que le champ dans le
fichier ne devrait pas être renommée et s'appeler NomEleve par exemple ?

MS
JJ
"M.D." a écrit dans le message de news:
42160e85$0$15806$
Je me réponds, j'ai recréé la fenêtre de A à Z sans copier/coller et c'est
pareil.

"M.D." a écrit dans le message de
news:42160073$0$17167$
> Stephan me répond ...
> > Salut,
> >
> > En si tu refais la fenêtre qui pose problème ça fonctionne ?
> > Quand je dis refaire c'est tout retapper et pas faire de


copier/coller.
> >
> > Bon dev.
> >
> > Stephan
>
>
> Et bien oui je crois que c'est ce qu'il me reste à faire ...
>
>




1 2