|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 95 ![]() |
Bonjour,
J'ai une question a propos des KLIST. Actuellement j'ai un programme avec un Klist composé de 5 clés. Un des cas de mon programme effectue une recherche sur une seule clé. Je renseigne donc la donnée dans la clé, je met les autres a *Blanks. Mais quand je lance mon programme, je n'ai aucunes données. (si j'utilise un logique avec juste cette clé j'ai des infos) Je me demande si le *Blanks ne cherche pas les clé qui sont vide, du coup existe t-il une alternative ? L'idée étant de prendre toutes les valeurs de clé, sauf pour celle qui est rensignée. J'espere avoir été assez clair. Merci de votre aide. Bertrand |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
Utilise ton KLIST qu'avec une seule clé et utilise SETLL puis une boucle avec un READE pour lire tes données au lieu d'un CHAIN.
Sinon, effectivement il va rechercher à la vleur exacte, *blank étant une valeur comme une autre. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 95 ![]() |
Merci
Je teste ça... |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 95 ![]() |
Merci !!!
Ca ne fait pas encore tout ce que je veux, mais je suis sur la bonne voie |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
Explique exactement ton prb :
- Exemples de qq données - Clés du fichier - Ce que tu veux obtenir qqun te trouveras ta solution ! |
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 95 ![]() |
Le problème est le suivant :
J'ai un écran de sélection qui me permet de choisir les infos suivantes : Date facture du : ________ date facture au : __________ client facturé de : _________ client facturé au : ___________ etc... Ce que je veux, c'est si par exemple la date de facture du et date de facture au sont selectionnées, je puisse chargé mon sous fichier avec les informations. J'ai donc fait un logique sur mon fichier avec 5 clé. Ensuite dans mon prog je fait un Klist : Code :
Par contre la kedi3 ne fonctionne pas, il me dit que la longeur ne correspond pas et attend une longueur du type de emsg (6), les autres sont a 8. Je ne suis pas sur de prendre le problème dans le bon sens; Si vous avez des conseils, je suis ouvert !!! Merci de votre aide Bertrand |
||
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Il faut que tes KLISTs correspondent aux clés de ton logique DANS LE MEME ORDRE qu'elles sont définies dans le logique.
Tu ne peux pas non plus accéder directement à la clé NFAC si tu mets la valeur de EMSG à blanc dans ta KLIST KEDI1. Pour accéder par clé à NFAC avec ta KLIST KEDI3, il te faut d'abord un logique indexé sur K NFAC que tu déclares ensuite dans ton programme. Avec un logique indexé sur EMSG, NFAC, DFAC, NCLI et EDID Tu peux accéder au logique avec les KLISTs suivantes et aucune autre : Code :
Tu ne peux PAS faire par exemple Une clé secondaire ne peut pas être déclarée seule sur une KLIST et doit toujours être précédée de(s) clés(s) qui la précède(nt). Est-ce limpide maintenant ? |
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
C'est typiquement un cas ou SQL vient au secours.
Tu ne pourras pas créer autant de logiques qu'il y a de combinaisons possibles, car surement à l'avenir, tu risques d'ajouter des critères des sélection supplémentaires à ton écran, le nombre de logiques va être exponentiel. C'est le moment idéal qui se présente pour charger ton sous-fichier à partir d'un SQL Dynamique. Tu trouveras nombre d'exemples sur le net, sinon on peut de donner des exemples. |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 95 ![]() |
Je comprend mieux maintenant les messages d'erreurs...
Je vais essayer le SQL, j'ai deja vu quelques exemples... merci de votre aide !!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com