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 :

{Pas de gestion objet} Lien entre liste gauche et champ entête + lien tableau->liste [X3-V6]


Sujet :

SAGE

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut {Pas de gestion objet} Lien entre liste gauche et champ entête + lien tableau->liste
    Bonjour à tous,

    Je suis actuellement en plein développement d'une fenêtre avec une liste gauche, un écran entête et un écran avec un tableau et une liste et je rencontre quelques difficultés.
    Nom : 2016-10-05 16_51_11-Paramètres.png
Affichages : 2099
Taille : 72,8 Ko

    Pour historique, j'avais déjà demandé des infos pour ce développement, avant que mon prestataire ne m'indique que celui-ci n'était pas possible en gestion objet, qu'il fallait donc développer la totalité sans les appels au traitement TABLEAUX qui facilitaient quand même beaucoup la vie. Depuis j'ai avancé mais je me heurte à certaines barrières. Mon prestataire étant mobilisé sur d'autres projets urgents pour la société à laquelle je fais partie, il est peu disponible pour répondre à mes interrogations.

    Je cherche à lier ma liste gauche, qui est une liste de clients, au champ de mon entête "code client" afin de pouvoir charger les bonnes infos de ce client dans l'écran tableau et liste mais je n'y parviens pas. Il faut apparemment faire ça dans l'action $GAU mais je ne sais pas de quelles variables je dispose pour ce faire ni comment procéder sans gestion objet.

    Deuxième petit souci : pour chaque clic sur chacune des lignes du tableau, qui correspond à des contacts de ce client, je dois charger les bonnes infos de ce contact à droite (prénom, fonction, etc...). Cependant je ne sais pas quelle action (sur champ ou non) me permet de dire "j'ai cliqué sur cette ligne donc je charge les bonnes infos à ce moment là", un genre d'événementiel sur clic. J'ai déjà testé quasiment toutes les actions sur champ, mais elles se déclenchaient au mauvais moment.

    Pour l'instant, à l'ouverture de cette fenêtre, je charge dans la zone "code client" un client par défaut pour test, qui contient plusieurs contacts.
    Le modèle de mon action est "saisie fenêtre".

    Je vous remercie par avance.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur réponsable Sage X3
    Inscrit en
    Avril 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur réponsable Sage X3

    Informations forums :
    Inscription : Avril 2008
    Messages : 338
    Points : 427
    Points
    427
    Par défaut
    Bonjour Arkhana :-)

    Je n'ai plus en mémoire exactement l'action en question mais il y a un moyen très simple de savoir.

    Vous pouvez mettre en début de votre traitement un infbox ""+ACTION pour avoir à l'écran les actions qui défilent et savoir aussi celles déclenchées par vos actions.

    $ACTION
    infbox ""+ACTION
    Case ACTION
    When default
    Endcase
    Return

    une fois l'action ou les actions repérées, vous n'aurez qu'à commenter la ligne ajoutée.

    Attention, vous allez avoir toutes les actions les unes à la suite des autres, ça peut être long mais au moins, vous les aurez toutes

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Bonjour BF0509, ravi de vous revoir.

    Oui je suis bien au courant pour le Infbox ACTION dans le $ACTION et pour le problème de la liste gauche, $GAU apparaît bel et bien, c'est juste que je ne sais pas quoi faire dedans.

    Cependant sur clic d'une ligne du tableau de contacts, aucun Infbox ne s'affiche, cela ne déclenche donc pas d'action... Je ne sais donc pas comment je peux faire...

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur réponsable Sage X3
    Inscrit en
    Avril 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur réponsable Sage X3

    Informations forums :
    Inscription : Avril 2008
    Messages : 338
    Points : 427
    Points
    427
    Par défaut
    Bonjour,

    C'est un peu complexe par rapport à ce que j'ai déjà pu faire.

    Si vous avez le fichier d'aide en ligne, vous pouvez peut être regarder du coté de la fonction Leftbox (Leftbox permet d'afficher une liste de gauche simple contenant les enregistrements d'une table, et la sélection de plusieurs éléments) ou Fillbox (Fillbox permet de remplir une liste de gauche ou une boite de picking.)

    Je suis étonné que le clic dans un tableau ne renvoi aucune action.
    j'aurais dit du coup que dans cette action, il aurait fallu pour l'indice de ligne charger les éléments associés pour chaque champ puis faire un affzo du mask

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Oui c'est assez complexe vu qu'on ne peut pas se reposer sur l'objet pour effectuer toutes les tâches de base malheureusement.

    Je vais voir du côté de Leftbox et Fillbox.

    J'étais étonné aussi qu'un clic sur une ligne du tableau ne renvoyait aucune action... Pourtant, pendant une fraction de seconde on voit le sablier à la place du curseur donc je suppose qu'il se passe quelque chose...
    Après, si je rentre carrément dans une cellule du tableau, donc en saisie, ça me sort l'action APRES_MODIF (et SETBOUT) ce qui est normal mais ce n'est pas avec cette action que je veux changer les détails à droite, ce n'est pas pratique du tout et en plus ce n'est pas fait pour ça.

    J'ai posé la question à mon prestataire pour tout ça mais la personne avec qui je suis en contact est très occupé sur un sujet de priorité maximale donc je passe un peu à la trappe. Je tape donc un peu partout en attendant qu'il puisse me répondre parce que la deadline pour ce projet approche et n'ayant pas touché à la gestion sans objet au cours de la formation X3, je suis un peu livré à moi-même.

    Je te remercie pour ton aide

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur réponsable Sage X3
    Inscrit en
    Avril 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur réponsable Sage X3

    Informations forums :
    Inscription : Avril 2008
    Messages : 338
    Points : 427
    Points
    427
    Par défaut
    Il faudrait peut être analyser le code de l'écran BPADDRESS pour voir si on peut y trouver un indice.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Bonjour,

    juste pour info pourquoi votre prestataire vous a dit que ce n'était pas possible en mode objet ?
    sinon je pense que vous pouvez trouver votre bonheur dans les TRT générés par la validation de votre fenêtre.
    Vous pouvez les suivre en mode debug

    Pour votre liste de contacts avez vous bien mis votre colonne NBLIG en mode saisissable de type ABS ? vous pouvez piloter avec l action Avant_saisie
    il faut également que toutes les infos lignes soient en mode invisible (voir CNTBPC)
    sur AV_votre compteur
    $SETNOL
    Local Integer NOL
    NOL = nolign -1
    Return
    et après il ne reste qu' a charge votre masque de droite avec les valeurs de lignes invisibles. par exemple KNAM = NAM(NOL)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Désolé pour le retard, j'ai un rythme d'apprenti donc je ne suis pas disponible tout le temps.

    Citation Envoyé par castorameur Voir le message
    juste pour info pourquoi votre prestataire vous a dit que ce n'était pas possible en mode objet ?
    - Impossibilité d'utiliser le traitement standard TABLEAUX car "la table CONTACT contient pour un client plusieurs codes contacts (clé alpha) et la table CONTACTCRM contient le détail des informations pour un code contact"
    - "Pour gérer ta fenêtre de saisie spécifique, il me semble inévitable d’avoir à tout gérer manuellement par traitement. C’est-à-dire pas de gestion objet, mais une fenêtre pour laquelle tu vas devoir gérer chaque action"

    Citation Envoyé par castorameur Voir le message
    sinon je pense que vous pouvez trouver votre bonheur dans les TRT générés par la validation de votre fenêtre.
    Vous pouvez les suivre en mode debug
    Je vais voir de ce côté.

    Citation Envoyé par castorameur Voir le message
    Pour votre liste de contacts avez vous bien mis votre colonne NBLIG en mode saisissable de type ABS ? vous pouvez piloter avec l action Avant_saisie
    Oui mon NBLIG est bien de type ABS en mode saisissable, et en première position dans ma liste de champs.

    Citation Envoyé par castorameur Voir le message
    il faut également que toutes les infos lignes soient en mode invisible (voir CNTBPC)
    Les infos lignes sont en mode invisible, j'ai en effet regardé CNTBPC pour comprendre.

    Citation Envoyé par castorameur Voir le message
    sur AV_votre compteur
    Quel est "votre_compteur", vous parlez de la variable de bas de tableau NBLIG ? Je n'ai pas très bien compris.

    Citation Envoyé par castorameur Voir le message
    et après il ne reste qu' a charge votre masque de droite avec les valeurs de lignes invisibles. par exemple KNAM = NAM(NOL)
    J'arrive bien à charger les infos des champs cachés vers les champs à droite, cependant cela se fait bien au choix d'un client sur un contact au hasard (ou pas) mais je n'arrive pas à les faire changer quand je sélectionne un autre contact de ce client.

    Merci beaucoup

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur réponsable Sage X3
    Inscrit en
    Avril 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur réponsable Sage X3

    Informations forums :
    Inscription : Avril 2008
    Messages : 338
    Points : 427
    Points
    427
    Par défaut
    A tout hasard, est-ce que vous faites bien un affzo du masque à la fin de votre traitement ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par BF0509 Voir le message
    A tout hasard, est-ce que vous faites bien un affzo du masque à la fin de votre traitement ?
    Oui je fais bien un affzo du masque en fin de traitement.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Citation Envoyé par castorameur Voir le message
    sur AV_votre compteur

    et après il ne reste qu' a charge votre masque de droite avec les valeurs de lignes invisibles. par exemple KNAM = NAM(NOL)
    Je suis bien parvenu à faire ce que vous m'avez indiqué, cela fonctionne plutôt bien et je comprends maintenant comment ça marche. Un seul problème cependant, je suis obligé de rentrer dans chaque ligne du tableau contact en édition pour que $AVANT_NBLIG ne se déclenche et n'affiche les infos dans la partie droite. Je voudrais le faire sur simple clic, et donc non en édition.

    Et j'aimerai beaucoup profiter de vos lumières sur la gestion de ma liste gauche pour charger les infos dans l'écran entête.

  12. #12
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Je suis bien parvenu à faire ce que vous m'avez indiqué, cela fonctionne plutôt bien et je comprends maintenant comment ça marche. Un seul problème cependant, je suis obligé de rentrer dans chaque ligne du tableau contact en édition pour que $AVANT_NBLIG ne se déclenche et n'affiche les infos dans la partie droite. Je voudrais le faire sur simple clic, et donc non en édition.
    Bon c'est bon vous êtes sur la bonne voie
    essayez avec Nblig saisissable et le reste en affiché seulement

    Et j'aimerai beaucoup profiter de vos lumières sur la gestion de ma liste gauche pour charger les infos dans l'écran entête
    il faut que la clé de votre liste gauche soit adaptée au read de votre entete

  13. #13
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par castorameur Voir le message
    essayez avec Nblig saisissable et le reste en affiché seulement
    NBLIG est bien en "saisi", j'ai passé CCNCRM en "affiché" et CNTLNA était déjà en affiché uniquement. Mais ça ne change toujours rien sur clic simple d'une ligne du tableau contact.

    Citation Envoyé par castorameur Voir le message
    il faut que la clé de votre liste gauche soit adaptée au read de votre entete
    Je regarde ça.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Citation Envoyé par castorameur Voir le message
    il faut que la clé de votre liste gauche soit adaptée au read de votre entete
    J'ai regardé un peu mais je ne sais pas vraiment quoi faire
    Images attachées Images attachées   

  15. #15
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous,

    Bon alors j'ai eu mon prestataire, il m'a indiqué qu'après réflexion c'était possible de faire ce développement avec de l'objet...
    Donc c'est terminé, mais pas de la façon dont j'avais commencé.

    Par contre, je dois bloquer la suppression d'une ligne de contact pour tous les utilisateurs (GUSER) (à par les profils admin) si le créateur du contact est CREUSR="WEBTB" qui est un profil spécial.
    Y a-t-il un moyen de rajouter l'option "A" Annulation sur le bloc tableau Contact de mon écran seulement dans des cas précis en programmation ?
    Nom : 2016-11-03 16_46_13-- Jeudi 3 Novembre 2016 - (ATA) Adrien TODA - X3QUALIF SUCPROD - [Dictionnai.png
Affichages : 1310
Taille : 6,4 Ko

    ou bien y a-t-il un autre moyen de faire ?

    Merci par avance.

  16. #16
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Non ce n'est pas possible de toucher à ce qu'il y a en paramètre d'un écran, car après cela génère le wxxxx.src
    A voir s'il y a un point d'entré mais je ne suis pas sur.
    sinon pour empecher la suppression vous pouvez utiliser le grizo (pas de modif) et le Call VIREBOUT (pas de bouton)

    et sinon pour la clé
    J'ai regardé un peu mais je ne sais pas vraiment quoi faire
    il s'agissait de regarder entre la clé définit dans la fenetre et les traitements

  17. #17
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    D'accord.

    Je vais devoir regarder s'il y a un point d'entrée parce que je parlais du clic droit "Supprimer une ligne" sur une ligne de contact, et non pas un bouton Supprimer car il n'y en a pas.
    Le griszo n'est pas non plus une solution j'ai bien peur.

    Merci.

  18. #18
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    dans ce cas il faut utiliser AVANT_MOD et Si Contact créé par Web alors OK = 0

    voici ce que dit l'aide :
    AVANT_MOD
    Description
    Cette action est appelée à la première modification d'une fiche. Sur le premier champ modifié, on passe alors en mode Modification. La fiche est alors verrouillée logiquement, et si ce verrouillage est possible, l'action est appelée. Ensuite, le superviseur grise la clé et la saisie peut reprendre pour d'autres modifications éventuelles de champs.

    Type d'OBJet
    Simple, Tableau, Combiné

    Transaction
    Non

    Utilisation
    Dans cette action, on peut refuser la modification en positionnant la variable OK à la valeur 0.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 11
    Points
    11
    Par défaut
    C'est parfait ! Ça fonctionne comme un charme.

    Je vous remercie Castorameur.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/06/2016, 06h22
  2. [MySQL] faire le lien entre chaque valeur de champ input avec son enregistrement correspondant
    Par barose dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/07/2013, 18h53
  3. Réponses: 2
    Dernier message: 10/04/2010, 23h01
  4. Réponses: 2
    Dernier message: 21/02/2007, 12h54
  5. [DAO] Faire le lien entre les VO et les Objets Métiers
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 25/11/2005, 15h19

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