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

SAGE Discussion :

Fonction right dans transaction système [X3-V7]


Sujet :

SAGE

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut Fonction right dans transaction système
    Bonjour,
    Je tente une fonction right dans une transaction système, pas de souci sur la fonction left, mais la right pas moyen.

    Dans le 1er cas il fait aucune modification alors que ma requête est bonne :
    right$([F:BOD]CPNITMREF,3)="001"


    Sinon avec celle là j'ai un retour d'erreur :
    right$([F:BOD]CPNITMREF,len([F:BOD]CPNITMREF)-3)="001"

    avec l'erreur :
    @LSN.TRT/WMAMIXTES3$adx (13) Erreur 50 : Fonction indéfinie pour la valeur donnée right$

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur X3 - Sage 1000
    Inscrit en
    Janvier 2012
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur X3 - Sage 1000

    Informations forums :
    Inscription : Janvier 2012
    Messages : 573
    Points : 811
    Points
    811
    Par défaut
    Attention right$ ne retourne pas les X derniers caractères mais retourne la partie droite d'une chaîne coupée à un rang X.
    Exemple:
    right$('developpez.com', 4) retourne = loppez.com

    dans ton 2eme exemple à mon avis tu es tombé sur une chaîne qui a moins de 3 caractères du coup len([F:BOD]CPNITMREF)-3 renvoie une erreur

    En général pour avoir les x derniers caractères on utilise un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    right$(lachaine, 1+len(lachaine)-X)
    Mais c'est pareil, si ta chaîne fait moins de X caractères tu auras une erreur

  3. #3
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Et la 1ère formule qu'est ce qui cloche ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Dév & consultant Sage X3
    Inscrit en
    Décembre 2014
    Messages
    809
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dév & consultant Sage X3

    Informations forums :
    Inscription : Décembre 2014
    Messages : 809
    Points : 978
    Points
    978
    Par défaut
    Vous ne dites pas ce que vous cherchez à faire.
    Sélectionner tous les composants se terminant par 001 ou commençant par 001 ?

  5. #5
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    terminant par 001.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Dév & consultant Sage X3
    Inscrit en
    Décembre 2014
    Messages
    809
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dév & consultant Sage X3

    Informations forums :
    Inscription : Décembre 2014
    Messages : 809
    Points : 978
    Points
    978
    Par défaut
    Dans ce cas la formule donnée par jeromecha est celle qui convient.

    right$(texte,n) renvoie le texte à partir du nième caractère, donc tronque les n-1 caractères du début.
    Pas très logique mais c'est comme ça...

  7. #7
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Ok j'ai compris.
    Effectivement sur d'autres langages de programmation la fonction right est géré différemment.

  8. #8
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Bon j'ai testé différente formule, mon article pour exemple dont j'essai de faire une modification est "SEPN161-001"

    Donc mon champ fait bien plus de 3 caractères.
    J'ai tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    right$(CPNITMREF, 1+len(CPNITMREF)-3)="001"
    avec toujours la même erreur

    Mais aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    right$(CPNITMREF, 8)="001"
    Là il me retourne 0 résultat.

    Où je me trompe ?

  9. #9
    Membre éclairé
    Homme Profil pro
    Administrateur X3 - Sage 1000
    Inscrit en
    Janvier 2012
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur X3 - Sage 1000

    Informations forums :
    Inscription : Janvier 2012
    Messages : 573
    Points : 811
    Points
    811
    Par défaut
    Il faut que tu mettes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    right$(CPNITMREF, 9)="001"
    extrait de la doc X3 :
    Nom : 2018-07-03 13_36_32-Sage ERP X3  - Aide en ligne _ index.png
Affichages : 728
Taille : 6,0 Ko

  10. #10
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Merci pour votre retour, je viens de comprendre mon erreur.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/04/2016, 20h18
  2. Réponses: 2
    Dernier message: 18/12/2009, 11h11
  3. [Système] exécuter fonction php dans la même page ?
    Par AzertyH dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2006, 10h01
  4. Problème dans requête avec la fonction Right
    Par Mariboo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/08/2006, 10h27
  5. [Système] Fonction exec dans un lien et synthaxe
    Par mLk92 dans le forum Langage
    Réponses: 6
    Dernier message: 13/07/2006, 11h45

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