OVH Cloud OVH Cloud

Numero enregistrement dans requête

7 réponses
Avatar
Pascal76
Bonjour

Voil=E0 j'execute une requete qui est une jonction de 3 fichiers avec
juste un param=E8tre de s=E9lection et un tri sur une date.

Lorsque je lis les donn=E9es de la requ=EAte avec hlitsuivant ou
HLitPr=E9c=E9dent pas de probl=E8me il va bien dans l'ordre des donn=E9es
dans la requete tri=E9es par la date.

Par contre lorsque je veux r=E9cup=E9rer la position de l'enregistrement
dans la requete l=E0 j'ai un probl=E8me. J'ai essay=E9 avec
HNumEnr(MaRequete) mais l=E0 cela ne correspond pas =E0 l'ordre tri=E9 par
date.

Merci d'avance de vos lumi=E8res.

7 réponses

Avatar
Gilles TOURREAU
Pascal76 a exposé le 13/09/2006 :
Bonjour

Voilà j'execute une requete qui est une jonction de 3 fichiers avec
juste un paramètre de sélection et un tri sur une date.

Lorsque je lis les données de la requête avec hlitsuivant ou
HLitPrécédent pas de problème il va bien dans l'ordre des données
dans la requete triées par la date.

Par contre lorsque je veux récupérer la position de l'enregistrement
dans la requete là j'ai un problème. J'ai essayé avec
HNumEnr(MaRequete) mais là cela ne correspond pas à l'ordre trié par
date.

Merci d'avance de vos lumières.



C'est comme quand tu parcours un fichier HF...
Le parcours d'un fichier/requête par rapport à une clé/rubrique n'a
aucune correspondance avec le n° d'enregistrement...

Le n° d'enregistrement est juste là pour dire où se trouve tel
enregistrement dans le fichier.

Pour tout cas, tu n'a pas le choix que d'incrémenter un p'tit entier...
(Soit dans la requête, soit en programmation)

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Pascal76
Re

Tout d'abord Merci

Donc cela veut dire que je n'ai pas un moyen direct de savoir qu'un
enregistrement se trouve en troisième position (par exemple) dans ma
requète une fois triée ???

Il faut obligatoirement rajouter une colonne que j'incrémenterai de 1

Par contre là je ne suis pas assez calé pour savoir comment faire

Encore merci

Gilles TOURREAU a écrit :


C'est comme quand tu parcours un fichier HF...
Le parcours d'un fichier/requête par rapport à une clé/rubrique n'a
aucune correspondance avec le n° d'enregistrement...

Le n° d'enregistrement est juste là pour dire où se trouve tel
enregistrement dans le fichier.

Pour tout cas, tu n'a pas le choix que d'incrémenter un p'tit entier...
(Soit dans la requête, soit en programmation)

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Pascal76 a utilisé son clavier pour écrire :
Re

Tout d'abord Merci

Donc cela veut dire que je n'ai pas un moyen direct de savoir qu'un
enregistrement se trouve en troisième position (par exemple) dans ma
requète une fois triée ???

Il faut obligatoirement rajouter une colonne que j'incrémenterai de 1

Par contre là je ne suis pas assez calé pour savoir comment faire

Encore merci

Gilles TOURREAU a écrit :


C'est comme quand tu parcours un fichier HF...
Le parcours d'un fichier/requête par rapport à une clé/rubrique n'a
aucune correspondance avec le n° d'enregistrement...

Le n° d'enregistrement est juste là pour dire où se trouve tel
enregistrement dans le fichier.

Pour tout cas, tu n'a pas le choix que d'incrémenter un p'tit entier...
(Soit dans la requête, soit en programmation)

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr





Si c'est pour savoir le nombre d'enregistrement il suffit d'utiliser :
HNbEnr().

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Pascal76
re

non ça c'est ok; je l'ai bien

mais en gros je voudrais une fois ma requete executée imaginons que
j'ai 8 résultats
je suis sur mon premier enregistrement je voudrais qu'il me dise 1
je clique 2 fois sur un bouton qui me fait HLitSuivant de ma requête
je voudrais qu'il me dise je suis sur le 3

Le but est donc d'avoir 1/8 puis j'avance 2/8 etc
et bien sûr l'inverse quand je fais un HLitPrécédent

Encore Merci pour ton aide


Gilles TOURREAU a écrit :


Si c'est pour savoir le nombre d'enregistrement il suffit d'utiliser :
HNbEnr().

Cordialement



Avatar
Gilles TOURREAU
Pascal76 a formulé ce mercredi :
re

non ça c'est ok; je l'ai bien

mais en gros je voudrais une fois ma requete executée imaginons que
j'ai 8 résultats
je suis sur mon premier enregistrement je voudrais qu'il me dise 1
je clique 2 fois sur un bouton qui me fait HLitSuivant de ma requête
je voudrais qu'il me dise je suis sur le 3

Le but est donc d'avoir 1/8 puis j'avance 2/8 etc
et bien sûr l'inverse quand je fais un HLitPrécédent

Encore Merci pour ton aide


Gilles TOURREAU a écrit :


Si c'est pour savoir le nombre d'enregistrement il suffit d'utiliser :
HNbEnr().

Cordialement





Je n'ai pas la doc de Windev, mais je crois qu'il y a une fonction qui
s'appelle HPosition()...
Sinon dans ton cas il faudra mieux utiliser une variable globale...

Cordialement

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Pascal76
Ok merci

j'ai vu dans l'aide

HPositionCourante()

je regarderai demain ce que cela donne

Encore merci et je te tiendrai au courant

Bonne soirée
Avatar
Pascal76
Re

Et bien merci c'etait bien cela; en tout cas cela fonctionne

il suffit de faire

MaPosition=HPositionCourante(MaRequete)/1000*NbreEnregistrementRequete

et cela me donne sa position

Encore merci pour ton coup de main