PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Filtre clé composée 5.5/7.5
Filtre clé composée 5.5/7.5
Débuté par Laurent, 14 jan. 2004 19:03 - 3 réponses
Posté le 14 janvier 2004 - 19:03
Comment peut-on faire un parcours suivant un filtre sur une clé composée en
WD 7.5 avec des fichiers au format 5.5 ?

Il s'agit d'un début de tentative de migration 5.5=>7.5. Le code 5.5 fonctionnait
évidemment. Je souhaiterais conserver mes fichiers au format 5.5 ds un premier
temps...

CLIENTDATE est une clé cc de CLIENT+DATE

Synthaxe Code 5.5 :
hfiltre(CLIENT,CLIENTDATE,CLIENT+caract(0),CLIENT+carac(255))
hlitpremier(CLIENT,CLIENTDATE)

Avec ce code à l'identique : hendehors() retourne FAUX en 7.5

J'ai essayé d'utiliser la fonction hconstruitvalclé (Illogique si les fichiers
ne sont pas migrés ? mais bon...)

hfiltre(CLIENT,CLIENTDATE,hconstruitvalclé(CLIENT,CLIENTDATE,CLIENT,hvalmin),hconstruitvalclé(CLIENT,CLIENTDATE,CLIENT,hvalmax))
hlitpremier(CLIENT,CLIENTDATE)

Idem : hendehors() renvoi faux

Quelle synthaxe utiliser pour permettre à mon application de fonctionner
?

Par avance MERCI
Posté le 14 janvier 2004 - 19:23
"Laurent" <lgilleron@mumnet.com> wrote:


Comment peut-on faire un parcours suivant un filtre sur une clé composée

en
WD 7.5 avec des fichiers au format 5.5 ?

Il s'agit d'un début de tentative de migration 5.5=>7.5. Le code 5.5 fonctionnait
évidemment. Je souhaiterais conserver mes fichiers au format 5.5 ds un premier
temps...

CLIENTDATE est une clé cc de CLIENT+DATE

Synthaxe Code 5.5 :
hfiltre(CLIENT,CLIENTDATE,CLIENT+caract(0),CLIENT+carac(255))
hlitpremier(CLIENT,CLIENTDATE)

Avec ce code à l'identique : hendehors() retourne FAUX en 7.5

J'ai essayé d'utiliser la fonction hconstruitvalclé (Illogique si les fichiers
ne sont pas migrés ? mais bon...)

hfiltre(CLIENT,CLIENTDATE,hconstruitvalclé(CLIENT,CLIENTDATE,CLIENT,hvalmin),hconstruitvalclé(CLIENT,CLIENTDATE,CLIENT,hvalmax))
hlitpremier(CLIENT,CLIENTDATE)

Idem : hendehors() renvoi faux

Quelle synthaxe utiliser pour permettre à mon application de fonctionner
?

Par avance MERCI


bonjour

essaye avec :

hfiltre(CLIENT,CLIENTDATE,hconstruitvalclé(CLIENT,CLIENTDATE,client+hvalmin),hconstruitvalclé(CLIENT,CLIENTDATE,client+hvalmax))

je suppose que "client" ( en minuscule dans ma syntaxe) est une variable
contenant le code client à filtrer

(il vaux mieux utiliser un nom de variable different du nom d un fichier
ou d une rubrique pour ne pas confondre exe : VARCLIENT )

pour plus d infos ou d autres questions contacte moi directement

bon dev et a bientot

digi
Posté le 15 janvier 2004 - 11:56
Effectivement les noms choisis sont maladroits mais ce n'est qu'un exemple...
appelons le fichier COMMAND.
Pour résumer, mon fichier est en 5.5, mon appli en 7.5 (migration), il y
a une clé composée CLIENTDATE : CLIENT (T11) + DATE (T8)

Aucune synthaxe ne fonctionne pour la fonction hFiltre :

1.hFiltre(COMMAND,CLIENTDATE,"HAL"+caract(0),"HAL"+caract(255))
2.hFiltre(COMMAND,CLIENTDATE,HConstruitValClé(COMMAND,CLIENTDATE,"HAL",hValMin),HConstruitValClé(COMMAND,CLIENTDATE,"HAL",hValMax))
3.hFiltre(COMMAND,CLIENTDATE,HConstruitValClé(COMMAND,CLIENTDATE,"HAL")+hvalmin,HConstruitValClé(COMMAND,CLIENTDATE,"HAL"+hvalmax))

Tous mes codes clients commencent par "HAL" sur cette base.

D'ailleurs l'utilisation de la fonction HConstruitValclé n'est pas logique
si les fichiers sont en 5.5 donc avec des rub complétées par des espaces.
Il n'y a que pour des fichiers au format 7 + non complétés par des espaces
que cette fonction a un sens.

Le plus étrange est que le pb ne se pose pas sur d'autres fichiers avec des
CC. J'ai réindexé mon fichier mais ça n'a pas réglé le pb. D'ailleurs en
5.5 ça continue de fonctionner.

Une idée ?
Posté le 15 janvier 2004 - 13:53
"Laurent" <lgilleron@mumnet.com> wrote:


Effectivement les noms choisis sont maladroits mais ce n'est qu'un exemple...
appelons le fichier COMMAND.
Pour résumer, mon fichier est en 5.5, mon appli en 7.5 (migration), il y
a une clé composée CLIENTDATE : CLIENT (T11) + DATE (T8)

Aucune synthaxe ne fonctionne pour la fonction hFiltre :

1.hFiltre(COMMAND,CLIENTDATE,"HAL"+caract(0),"HAL"+caract(255))
2.hFiltre(COMMAND,CLIENTDATE,HConstruitValClé(COMMAND,CLIENTDATE,"HAL",hValMin),HConstruitValClé(COMMAND,CLIENTDATE,"HAL",hValMax))
3.hFiltre(COMMAND,CLIENTDATE,HConstruitValClé(COMMAND,CLIENTDATE,"HAL")+hvalmin,HConstruitValClé(COMMAND,CLIENTDATE,"HAL"+hvalmax))

Tous mes codes clients commencent par "HAL" sur cette base.

D'ailleurs l'utilisation de la fonction HConstruitValclé n'est pas logique
si les fichiers sont en 5.5 donc avec des rub complétées par des espaces.
Il n'y a que pour des fichiers au format 7 + non complétés par des espaces
que cette fonction a un sens.

Le plus étrange est que le pb ne se pose pas sur d'autres fichiers avec

des
CC. J'ai réindexé mon fichier mais ça n'a pas réglé le pb. D'ailleurs en
5.5 ça continue de fonctionner.

Une idée ?


Particularité : la rubrique CLIENT du fichier COMMAND est reliée à un fichier
TIERS où elle est clé composée de AGENCE+NOMABREGE.

Au passage lors de la migration la rub COMMAND.CLIENT qui était stockée en
Texte en WD5.5 est devenue stockée en chaine binaire.

D'où sans doute tous ces problèmes ! Car dans d'autres fichiers où il n'y
a pas cette particularité les filtres sur cc continuent de fonctionner sans
souci...

En attendant : comment contourner ?