IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

KLIST problèmes d'utilisations


Sujet :

AS/400

  1. #1
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut KLIST problèmes d'utilisations
    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

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    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.

  3. #3
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Merci

    Je teste ça...

  4. #4
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Merci !!!

    Ca ne fait pas encore tout ce que je veux, mais je suis sur la bonne voie

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Explique exactement ton prb :

    - Exemples de qq données
    - Clés du fichier
    - Ce que tu veux obtenir

    qqun te trouveras ta solution !

  6. #6
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
          *  Klist sur fichier edi900l3
         C     kedi1         klist
         C                   kfld                    emsg
         C                   kfld                    nfac
         C                   kfld                    dfac
         C                   kfld                    ncli
         C                   kfld                    edid
         C     kedi2         klist
         C                   kfld                    emsg
         C     kedi3         klist
         C                   kfld                    nfac
    J'ai donc essayé comme tu me l'avais conseillé de séparer les cles, exemple de kedi2 et kedi 3.
    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

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
         C   klist1         klist
         C                   kfld                    emsg
         C                   kfld                    nfac
         C                   kfld                    dfac
         C                   kfld                    ncli
         C                   kfld                    edid
         C   klist2         klist
         C                   kfld                    emsg
         C                   kfld                    nfac
         C                   kfld                    dfac
         C                   kfld                    ncli
         C   klist3         klist
         C                   kfld                    emsg
         C                   kfld                    nfac
         C                   kfld                    dfac
         C   klist4         klist
         C                   kfld                    emsg
         C                   kfld                    nfac
         C   klist5         klist
         C                   kfld                    emsg


    Tu ne peux PAS faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         C   klist1         klist
         C                   kfld                    dfac
    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 ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    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.

  9. #9
    Membre régulier

    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Points : 75
    Points
    75
    Par défaut
    Je comprend mieux maintenant les messages d'erreurs...

    Je vais essayer le SQL, j'ai deja vu quelques exemples...

    merci de votre aide !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RTFEditorKit] Problème d'utilisation
    Par jean.lamy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 21/10/2004, 18h30
  2. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  3. [cvs] problèmes d'utilisation
    Par gromite dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/06/2004, 17h41
  4. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  5. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo