36 0 4MB
Safe X3
Support de formation Développement Version 6
SAFE X3 DEVELOPPEMENT
PRE REQUIS Pour accéder à cette formation, vous devez avoir au préalable : -
A suivre impérativement la formation Overview Développeur
Copyright © Sage 2011
Page 2
SAFE X3 DEVELOPPEMENT
SOMMAIRE SOMMAIRE .................................................................................................................................................... 3 1.
INTRODUCTION........................................................................................................................................ 7
2.
TABLES ..................................................................................................................................................... 9 2.1. 2.2. 2.3. 2.4. 2.5.
3.
ECRANS .................................................................................................................................................. 15 3.1. 3.2. 3.3. 3.4. 3.5. 3.6.
4.
DEFINITION .............................................................................................................................................. 31
RESUME ................................................................................................................................................. 32 ONGLET ECRANS ...................................................................................................................................... 32 ONGLET BOUTONS/MENUS ........................................................................................................................ 32 ONGLET BOUTONS PREDEFINIS .................................................................................................................... 33 ONGLET BROWSER.................................................................................................................................... 33 EXERCICE : GESTION DES ARTICLES ................................................................................................................ 34
DEFINITION .............................................................................................................................................. 39
TABLES DIVERSES ................................................................................................................................... 40 7.1. 7.2. 7.3.
8.
DEFINITION ............................................................................................................................................. 23 GESTION OBJET SIMPLE.............................................................................................................................. 23 GESTION TABLEAU .................................................................................................................................... 24 GESTION COMBINE.................................................................................................................................... 25 GESTION BROWSER ................................................................................................................................... 26 DICTIONNAIRE DES OBJETS .......................................................................................................................... 27 VALIDATION D’UN OBJET ............................................................................................................................ 30
MENUS LOCAUX..................................................................................................................................... 39 6.1.
7.
RENSEIGNEMENT DES INFORMATIONS GENERALES ........................................................................................... 15 AGENCEMENT DES BLOCS ........................................................................................................................... 17 RENSEIGNEMENT DES CHAMPS .................................................................................................................... 18 CHAMPS SPECIAUX A PARAMETRER ............................................................................................................... 19 CONTRAINTE TECHNIQUE POUR L’APPEL D’UN BLOC TABLEAU DEROULANTS .......................................................... 20
FENETRE ................................................................................................................................................. 31 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7.
6.
DEFINITION .............................................................................................................................................. 15
OBJETS ................................................................................................................................................... 23 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7.
5.
RESUME ................................................................................................................................................... 9 DESCRIPTION DETAILLE DES PARAMETRES D’UNE TABLE :..................................................................................... 9 LES LIMITES ............................................................................................................................................. 13 ACTION BOUTON BAS D’ECRAN .................................................................................................................... 13 DES CHAMPS PARTICULIERS......................................................................................................................... 14
DEFINITION ............................................................................................................................................. 40 SAISIE DES DONNEES.................................................................................................................................. 40 GESTION DE TABLE DE DEPENDANCE ............................................................................................................. 41
VUES ...................................................................................................................................................... 42
Copyright © Sage 2011
Page 3
SAFE X3 DEVELOPPEMENT
8.1. 8.2. 8.3. 9.
DEFINITION ............................................................................................................................................. 42 PARAMETRAGE DE LA VUE .......................................................................................................................... 42 STRUCTURE GENEREE EN VALIDATION ........................................................................................................... 44
CODES ACTIVITE ..................................................................................................................................... 46 9.1. 9.2. 9.3. 9.4. 9.5. 9.6.
10.
DEFINITION ............................................................................................................................................. 46 CODES ACTIVITES FONCTIONNELS STANDARDS................................................................................................. 46 CODES ACTIVITES DE DIMENSIONNEMENT....................................................................................................... 46 CODES ACTIVITES DE LOCALISATION............................................................................................................... 47 CODE ACTIVITES FONCTIONNELS SPECIFIQUES .................................................................................................. 47 PARTICULARITE DE LA DESACTIVATION PAR CODE ACTIVITE ................................................................................ 47 ACTIONS CHAMPS.............................................................................................................................. 49
10.1. 10.2. 10.3. 10.4. 10.5. 11.
DEFINITION ............................................................................................................................................. 49 APPEL DES ACTIONS SUR CHAMP .................................................................................................................. 50 LISTE DES ACTIONS SUR CHAMPS .................................................................................................................. 53 VARIABLES UTILISABLES POUR LES ACTIONS SUR CHAMPS .................................................................................. 59 ACTIONS STANDARD CAPITALISEES ................................................................................................................ 60 TYPES DE DONNEES ........................................................................................................................... 61
11.1. 11.2. 11.3. 11.4. 11.5. 11.6. 11.7. 11.8. 11.9. 11.10. 11.11. 12. 12.1. 12.2. 12.3. 12.4. 12.5. 12.6. 13. 13.1. 13.2. 13.3. 14. 14.1. 14.2. 14.3. 14.4.
DEFINITION ............................................................................................................................................. 61 DONNEES DE BASE .................................................................................................................................... 61 DONNEES STANDARDS ............................................................................................................................... 62 ACTIONS SUR CHAMP ................................................................................................................................ 62 ACTIONS SUR CHAMP POUR UN BLOC TABLEAU ............................................................................................... 62 TYPE DE DONNEES LIEES A L’OBJET : .............................................................................................................. 63 TEXTE TRADUITS ....................................................................................................................................... 63 CLOB ET BLOB .......................................................................................................................................... 65 SYNTAXE DU FORMAT ................................................................................................................................ 65 POUR UNE ACTION : ORDRE D’EXECUTION ................................................................................................. 68 EXERCICE : GESTION DES CLIENTS (GESTION SIMPLE).................................................................................... 69
MODELE « OBJET » ............................................................................................................................ 75 DEFINITION ............................................................................................................................................. 75 UTILISATION DU MODELE OBJET ................................................................................................................... 77 GESTION TABLE D’ENTETE PLUS TABLE DE DETAIL ............................................................................................. 92 EXERCICE : GESTION DES COMMANDES (GESTION ENTETE - DETAIL) .................................................................... 98 GESTION DES BOUTONS/MENUS ............................................................................................................... 107 LES BROWSERS....................................................................................................................................... 109 ACTIONS .......................................................................................................................................... 115 DEFINITION ........................................................................................................................................... 115 INFORMATIONS GENERALES ...................................................................................................................... 116 RENSEIGNEMENT DES PARAMETRES ............................................................................................................ 117 MODELE « SAISIE FENETRE » ............................................................................................................ 120 DEFINITION ........................................................................................................................................... 120 PARAMETRAGE DE L’ACTION ..................................................................................................................... 120 ACTIONS SUR MODELE ............................................................................................................................. 121 GESTION DES BOUTONS/MENUS ................................................................................................................ 124
Copyright © Sage 2011
Page 4
SAFE X3 DEVELOPPEMENT
14.5. 14.6. 15. 15.1. 15.2. 15.3. 15.4.
GESTION DES BROWSERS .......................................................................................................................... 127 EXERCICE : MENU DANS GESTION COMMANDE ............................................................................................. 128 MODELE « TRAITEMENT STANDARD » ............................................................................................. 131 DEFINITION ........................................................................................................................................... 131 PARAMETRES ......................................................................................................................................... 132 ACTIONS SUR MODELES : MODE INTERACTIF ................................................................................................. 133 ACTION SUR MODELES : MODE BATCH ......................................................................................................... 138
16.
FONCTIONS ...................................................................................................................................... 142
17.
MODELE « AFFICHAGE DIVERS » ...................................................................................................... 144
17.1. 17.2. 18. 18.1. 18.2. 18.3. 18.4. 19. 19.1. 19.2. 20. 20.1. 20.2. 20.3. 21. 21.1. 21.2. 21.3. 21.4. 21.5. 21.6. 21.1. 22. 22.1. 22.2. 23. 23.1. 23.2. 23.3. 23.4. 23.5. 23.6. 23.7.
DEFINITION: .......................................................................................................................................... 144 ACTION UNIQUE TRT_DIV ....................................................................................................................... 144 MODELE « HORS MODELE » ............................................................................................................. 145 DEFINITION :.......................................................................................................................................... 145 PARAMETRE DU SOUS-PROGRAMME ........................................................................................................... 145 DECLARATION DU SOUS-PROGRAMME ........................................................................................................ 146 EXERCICE : CALCUL DE L’EN-COMMANDE CLIENT EN BATCH ............................................................................. 148 MODELE « SELECTION TABLE » ........................................................................................................ 151 DEFINITION :.......................................................................................................................................... 151 ACTIONS SUR MODELE ............................................................................................................................. 152 MODELE « SELECTION LISTE » .......................................................................................................... 154 DEFINITION :.......................................................................................................................................... 154 ACTIONS SUR MODELES............................................................................................................................ 155 VARIABLES DISPONIBLES EN LECTURE :......................................................................................................... 157 MODELE « CONSULTATION » ........................................................................................................... 158 DEFINITION :.......................................................................................................................................... 158 FENETRE PRINCIPALE :.............................................................................................................................. 158 FENETRE DE CRITERES : ............................................................................................................................ 159 ELEMENTS COMPOSANT UNE CONSULTATION ............................................................................................... 159 PARAMETRES D’UNE CONSULTATION .......................................................................................................... 160 ACTION SUR MODELE CONSULTATION ......................................................................................................... 162 EXERCICE CONSULTATION DES COMMANDES STANDARDS ................................................................................ 166 POINT D’ENTREE .............................................................................................................................. 168 REGLES DES POINTS D’ENTREE ................................................................................................................... 168 EXERCICE : GESTION DES COMMANDES STANDARD ........................................................................................ 169 ECRANS GRAPHIQUES ...................................................................................................................... 173 PRESENTATION GRAPHE SIMPLE ET MULTI .................................................................................................... 173 PARAMETRAGE....................................................................................................................................... 175 GANTT ................................................................................................................................................. 177 AGENDA ............................................................................................................................................... 179 PLANNING MENSUEL ............................................................................................................................... 181 COMPOSANTS GRAPHIQUES ...................................................................................................................... 184 PLANNING ANNUEL ................................................................................................................................. 185
Copyright © Sage 2011
Page 5
SAFE X3 DEVELOPPEMENT
23.8. NOMENCLATURE HORIZONTALE ................................................................................................................. 187 23.9. NOMENCLATURE VERTICALE ...................................................................................................................... 190 23.10. RADAR ............................................................................................................................................. 193 23.11. BROWSER ......................................................................................................................................... 195 23.12. BUREAUTIQUE ................................................................................................................................... 196 23.13. METHODES JAVASCRIPT ....................................................................................................................... 199 23.14. EDITEUR HTML ................................................................................................................................. 201 23.15. VUE PORTAIL ..................................................................................................................................... 202 23.16. EXERCICE : CONSULTATION DES COMMANDES .......................................................................................... 203 24. 24.1. 25. 25.1. 25.2. 26. 26.1. 26.2. 26.3. 26.4. 26.5.
SPECIFIQUE ...................................................................................................................................... 209 REGLES GENERALES ................................................................................................................................. 209 CONCLUSION ................................................................................................................................... 217 THEMES ABORDES AU COURS DE CETTE FORMATION : ..................................................................................... 217 TABLEAU DES FORMATIONS....................................................................................................................... 218 EXERCICES COMPLEMENTAIRES ....................................................................................................... 219 EXERCICE A : CHANGEMENT DE STYLE (COMPLEMENT EX 1)............................................................................. 219 EXERCICE B : TEXTES TRADUITS EN GESTION ARTICLE (COMPLEMENT EX 1 ) ........................................................ 220 EXERCICE C : LISTES GAUCHES EN GESTION CLIENT (COMPLEMENT EX 2) ........................................................... 221 EXERCICE CONSULTATION CLIENT ............................................................................................................... 223 SUJETS ABORDES .................................................................................................................................... 225
Copyright © Sage 2011
Page 6
SAFE X3 DEVELOPPEMENT
1. INTRODUCTION
Introduction
Dossier Dossiermère mère Traitement Traitementstandard standard
Uniquement dans le dossier mère : – Tables : système X3 – Sources : SUB*, FUN*, IMP*, … – Exécutables : tout le standard – Etats : tout le standard
Dossier DossierFils Fils Traitement Vertical Traitement Vertical
Dossier vertical, spécifique : – Tables : superviseur, dictionnaire, applicatives – Sources : vertical / spécifique – Exécutables : vertical / spécifique – Etats : vertical / spécifique
Traitement Traitementspécifique spécifique
Copyright © Sage 2009-2010
Safe X3 Développement
4
Le fonctionnement des traitements X3 est basé sur le principe d‟héritage des dossiers. Ainsi tous les éléments de type tables, traitements et états d‟un dossier parent sont accessibles par le dossier fils (applicatif). Les traitements, les tables et les états standards sont tous présents dans le dossier mère X3, ils permettent le bon fonctionnement de tous les dossiers fils et ne doivent en aucun cas être modifiés ou déplacés.
Copyright © Sage 2011
Page 7
SAFE X3 DEVELOPPEMENT
Introduction Table
Types de donnée M. Locaux T. Diverses Codes activités
Objet
Fenêtre
Action : GOBJET
Fonction : GESxxx
Copyright © Sage 2009-2010
Écrans
Traitement superviseur GOBJET Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
Safe X3 Développement
Types de donnée M. Locaux T. Diverses Codes activités Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
5
Tous les éléments que nous voyons ici sont répertoriés dans un dictionnaire X3, par exemple le dictionnaire des tables, des écrans etc… Ceci permet une classification, par l‟intermédiaire de leurs noms qui doit être unique, ou de leur module, ou de leur code activité. Par la suite, nous pouvons facilement retrouver un élément ou un groupe en posant un filtre sur un browser, sur son nom par exemple ou en utilisant une sélection sur le module ou sur un code activité. Tous ces éléments peuvent être protégés par un code activité s‟ils sont modifiés par un développement. L‟objet n‟est alors plus modifiable par intégration de patchs standards.
Copyright © Sage 2011
Page 8
SAFE X3 DEVELOPPEMENT
2. TABLES 2.1. RESUME >
Description général de la table Code et abréviation unique de la table. Code activité pour les tables spécifiques.
>
Renseignements des champs de la table dans le dictionnaire Code du champ unique dans toute la table. Code activité s‟il s‟agit d‟un champ spécifique dans une table standard. Liaison avec une autre table X3. Obligatoire ou non. Options descendues au niveau des écrans.
>
Création des index Premier index sans homonyme de nom « abréviation de la table+0 » Des index spécifiques peuvent être créés pour améliorer les performances de parcours des tables. Ils sont appelés « abréviation de la table+n » et tagués par code activité
>
Audit Permet de tracer les modifications d‟une table.
2.2. DESCRIPTION DETAILLE DES PARAMETRES D’UNE TABLE 2.2.1.Onglet
« Général »
Champs « Code » et « Abréviation » : Comme pour tous les éléments stockés dans les dictionnaires, les noms des tables superviseurs (moteur) commencent par la lettre « A ». Ces tables ne doivent pas être modifiées. Les noms des tables spécifiques doivent commencer par X, Y ou Z. X : pour les verticaux Y : pour les spécifiques distributeurs Z : pour les spécifiques clients Idem pour les « Abréviations » : Axx / X,Y,Zxx
table superviseur / table spécifique
Champ « Code Activité » : Même préfixe : X,Y,Zxx Ceci permet au superviseur d‟identifier une table créée ou modifiée en spécifique. Champs « Intitulé » : Renseignement des champs d‟intitulé long et court pour les traitements superviseurs. Ceci permet l‟affichage automatique de cet intitulé dans les écrans. Pour l‟affichage de l‟intitulé long/court, la norme est la suivante : Pour l‟intitulé long, prendre le type de donnée : DES (long 30) texte non soumis à la traduction AX3 (long 30) texte traduisible Pour l‟intitulé court, prendre le type de donnée :
Copyright © Sage 2011
Page 9
SAFE X3 DEVELOPPEMENT
SHO (long 10) texte non soumis à la traduction AX1 (long 12) texte traduisible Champ « Module » : Il définit le module d‟une table. Lors de l‟installation d‟une solution, nous pouvons activer les éléments associés au module. Ceci permet par exemple de désactiver la gestion des stocks si les utilisateurs n‟en ont pas besoin. Puisque les modules peuvent être désactivés dans un dossier client, il est nécessaire d'avoir une cohérence dans l'affectation du module aux tables. Règle d‟affectation des modules : Un élément dictionnaire ne peut contenir que des éléments de module identique ou OBLIGATOIREMENT installé (module obligatoire ou présent du fait de la dépendance). Par exemple, un écran du module Ventes, ne peut contenir que des actions Ventes, Superviseur ou Tronc commun, mais en aucun cas, des actions de modules Support client CRM, Achat ... Les modules techniques Superviseur et Tronc commun sont SYSTEMATIQUEMENT installés, dans un dossier client. Champ « Type de base » : Le « Type de base » est par défaut celui du dossier. Champ « Nombre de fiches » : Il permet de dimensionner la taille de la table à créer. Champ « Format 130 » : Donne l‟accès à un dossier en version 130. Champ « Génération textes traduisibles » : Si la case est cochée alors il y a génération d‟un fichier plat exploitable ensuite dans Crystal par la fonction X3TranslatedText (affichage de texte dans une langue donnée). Sinon, pour obtenir un texte traduit, il sera nécessaire d‟utiliser la vue AVWTEXTRA. Champ « Remise à zéro » : Si la case est cochée alors la table sera effacée par l‟utilitaire de remise à zéro du dossier. Champ « Accès non sécurisé » : Si la case est cochée alors tous les dossiers peuvent accéder à cette table en lecture écriture. Sinon seuls les dossiers autorisés peuvent y accéder (onglet « Liens » dans la fiche dossier) Champ « Type de table » : Liste des types de tables : Applicatif, Superviseur, Système X3 (dossier mère), Dictionnaire, Interne (non livré). Pour des tables spécifiques, la valeur « Applicatif » doit être choisie. Champ « Type de copie » : Est utilisé à l‟initialisation du dossier fille. Champ « Type livraison » : Interne Adonix, ne doit pas être modifié.
Copyright © Sage 2011
Page 10
SAFE X3 DEVELOPPEMENT
2.2.2.Onglet
« Champ »
Champ « Nom » : X, Y, Zxxxxxxx pour le spécifique (voir la fonction de codification). Libellés : Descriptif du champ, numéro stocké dans la table ATABZON. Texte stocké dans la table ATEXTE. Code activité : Permet d‟identifier un champ modifié en spécifique dans une table standard. Options : Sélection en fonction du type interne (centré, positif, non nul…). Table liée : Cette information garantit l‟intégrité de la base de données (annulation, Changement de code, épuration), il s‟agit de la table correspondant à la clef étrangère.
Expression de lien : Si la table liée à une clé primaire a plusieurs composantes, toutes les composantes doivent être décrites dans ce champ. Le lien indiqué sera sous la forme : composant1;composant2;…
Code annulation : Action automatique engendrée par l‟annulation d‟un enregistrement dans la table liée. Raz : Le champ sera effacé par l‟utilitaire de remise à zéro du dossier.
2.2.3.Onglet
« Index »
Clé primaire : La clé primaire est le 1er index saisi. Elle doit être unique, et obligatoirement renseignée. Elle se nomme par convention « abréviation de la table » + 0, les autres clefs sont nommées de 1 en 1.
Descripteur : Contient 1 ou plusieurs champs non indicés +champ : tri en ascendant sur ce champ -champ : tri en descendant sur ce champ Remarque : le 1er champ est sans signe et est forcément ascendant Les descripteurs doivent être distincts (champs et sens)
Code activité : Permet de définir une clé spécifique
Fichier de configuration : Non renseigné par le standard. Il permet à l'utilisateur d'avoir la main sur l'instruction Create Table.
Copyright © Sage 2011
Page 11
SAFE X3 DEVELOPPEMENT
2.2.4.Possibilité
d‟audité la table.
Cet outil permet de tracer les connexions / déconnexions, création, modification, suppression d‟enregistrement. Paramétrage : Onglet réservé au spécifique (paramétrage) Onglet optionnel (Code activité AUDIT) Stockage de ce paramétrage (ATABLE, ATABAUD)
Stockage des résultats : Tables ALOGIN, AUDITH, AUDITL
Résultat audit : Affichage systématique des créations et suppressions d‟enregistrement. Affichage des enregistrements dont les champs modifiés correspond au paramétrage.
Copyright © Sage 2011
Page 12
SAFE X3 DEVELOPPEMENT
2.3. LES LIMITES Concernant la clé : 15 index 16 champs par index 250 caractères par index Concernant l'enregistrement : Sous SQL, la limite est de 8060 octets Sous Oracle, il n'y a pas de limite; mais sous Adonix, on a fixé la limite à 32K limité à 255 champs par table limité à 512 colonnes ( champ1*dimension1 + champ2*dimension2 + ... + champN*dimensionN ) limité soit à un champ de type blob ou clob, la taille totale de l‟enregistrement est limitée à 2Go. Soit à plusieurs champs, mais dans ce cas, la taille totale de l‟enregistrement est limitée à 64 Ko. Nombre de tables ouvertes : Limité par [S]Adxmto dont le maximum est 255 tables. Mode de stockage : unicode ou ascii
2.4. ACTION BOUTON BAS D’ECRAN Enregistrer, Créer : Enregistrement ou création de la table dans le dictionnaire X3. Attention, après une action de ce type, l‟objet n‟est pas présent ou modifié dans la base de données. Validation : Enregistrement ou création de la table dans la base de données. Création dans le répertoire « nom_dossier\FIL » des fichiers .srf .fde .cfg.
Traitement : Création d‟un traitement temporaire WWINIxxx ( xxx = abréviation de la table ) exécuté à la validation de la table pour initialiser des champs. Ce traitement sera effacé dès la validation terminée et la fenêtre de la table quittée, pour ne pas lancer l‟initialisation à chaque validation de table. Copie : Copie de la description de la table dans le dictionnaire d‟un autre dossier une validation de la table sera nécessaire ; les données ne sont pas copiées. Si l‟élément existe déjà dans le dossier récepteur, un message d‟avertissement est affiché et le choix est donné à l‟utilisateur de poursuivre ou d‟arrêter. La copie se fait sur un dossier de même machine et même port par défaut. La copie peut se faire sur un dossier d‟une autre machine, d‟un autre port, par la syntaxe suivante : machine:port@dossier RAZ : Effacement des données, le bouton est actif même si le flag « remise à zéro » pour cette table n‟est pas positionné. Attention, aucun contrôle de cohérence. Supprimer : Supprime la table de la base de données, *.srf, *.fde et la description dans le dictionnaire.
Copyright © Sage 2011
Page 13
SAFE X3 DEVELOPPEMENT
2.5. DES CHAMPS PARTICULIERS Si besoin de : stocker utilisateur et date de création et modification. faire des exports sur les enregistrements modifiés ou créés depuis le dernier export. Alors la liste de champs ci-dessous peut être utilisée :
Ceux-ci sont à déclarer dans la table, mais pas nécessairement dans l‟écran. Les traitements superviseur (moteur) alimentent automatiquement ces champs. Ces champs ne sont utilisables que sur une gestion de type objet. CREDAT & UPDDAT Informations alimentées par la date systèm ervtst0l
Copyright © Sage 2011
Page 14
SAFE X3 DEVELOPPEMENT
CODE ACTIVITE : Sur les blocs de type tableau, la dimension du code activité détermine le nombre de lignes
LIGNE : Sur les blocs de type tableau. C‟est le nombre de lignes.
OPTION : Sur les blocs de type tableau
BAS DE PAGE : Contient le nom d‟une variable technique stockant le nombre de lignes réellement saisies. Elle est définie dans l‟onglet des champs de type numérique non affichée avec le type de données ABS.
TABLES DE REFERENCES : Permet d‟aller chercher les champs à afficher à l‟écran directement dans la base de données.
Copyright © Sage 2011
Page 16
SAFE X3 DEVELOPPEMENT
3.3. AGENCEMENT DES BLOCS
Position de chaque bloc : Les blocs sont positionnés par les coordonnées (ligne,
Copyright © Sage 2011
Page 17
SAFE X3 DEVELOPPEMENT
3.5. CHAMPS SPECIAUX A PARAMETRER 3.5.1.Clob
:
Type de donnée : Objet graphique :
ACB texte multi-lignes
Paramètres : Le nombre de lignes affiché pour le clob. Le nombre de colonnes affiché pour le clob. Le type de texte : rtf, txt, indéterminé. Si le type de texte est indéterminé, en saisie du texte, l‟utilisateur pourra choisir entre texte enrichi et texte brut. A l‟exécution, « format » dans la barre de menu pour définir : La police Les attributs (gras, italique, souligné) Le cadrage du texte Le mode éditeur
3.5.2.Blob
:
Type de donnée : Objet graphique : photo
ABB
Paramètres : Occupation : Lignes et colonnes physiques Type photo : Normale Etirée Proportionnelle Menu contextuel : Sélectionner Enregistrer
3.5.3.Type
de champ « Icône »
Ce type de champ est stocké dans l‟écran en alphanumérique de longueur au moins égale à 3. La valeur du champ détermine l'icône à afficher (0 à 299). Une chaîne vide provoque l'effacement de l'icône. Norme : pas d‟intitulé sur champ icône La colonne « Objet graphique » doit être positionnée à icône. Action sur une icône : Clic sur l‟icône si le champ est saisissable. Pas de menu contextuel. Les icones utilisables sont renseignées dans le menu : « Développement>Utilitaires>Recherches>Affichage icônes » … et affichés dans le menu en haut du dictionnaire des écrans : « Visualisation>Icones »
Copyright © Sage 2011
Page 19
SAFE X3 DEVELOPPEMENT
3.5.4.Champs
de paramétrage
Certains champs de l‟écran sont considérés comme du paramétrage : Aide, Code accès, Style, Table de contrôle sur l‟onglet « Champs ». La mise à jour de ces champs ne nécessite donc pas de code activité spécifique, ils ne seront pas écrasés par une mise à jour de patch. Autres champs de paramétrage : Traitement spécifique Traitement vertical Coordonnées écran : nb lignes et nb colonnes L‟aide : L‟aide est créée dans les tables X3 dédiées. Une fonction pour saisir l‟aide sur champ, une autre pour saisir l‟aide fonction. L‟aide standard est uniquement dans le dossier mère. L‟aide spécifique sera dans le dossier fille.
3.6. CONTRAINTE TECHNIQUE POUR L’APPEL D’UN BLOC TABLEAU DEROULANTS Pour fonctionner, un tableau déroulant doit contenir une variable de bas de tableau. Celle-ci doit : Etre déclarée dans la colonne « Paramètre » paramètre sur le bloc tableau de l‟écran. Etre appelée sur la première ligne du bloc tableau dans l‟onglet Champ de l‟écran. Ce champ doit être de type ABS. Ce champ contient le nombre de lignes à afficher du tableau. Il est appelé par convention NBLIG, dans certains cas, ce nom est obligatoire. Ce champ est de type de donnée ABS. Il est saisissable si le tableau est saisissable et invisible si le tableau est invisible. Les informations à renseigner dans blocs sont : Les options Le nombre maximum de lignes La variable de bas de tableau. Exemple Ecran SOH4 contenant les lignes de commandes de ventes.
Copyright © Sage 2011
Page 20
SAFE X3 DEVELOPPEMENT
Traitement W0xxx : Traitements entièrement générés pour l‟import Traitement W1xxx : Traitements entièrement générés pour la saisie Traitement SUBxxx & SPVxxx & SPExxx : Nous retrouverons dans ces traitements les étiquettes (appels) des sous-programmes, qui sont générés pour les actions sur champs à la suite de la validation de l‟écran. Une fois les étiquettes des sous programmes générées, les sous programmes sont à écrire. Ces traitements sont détaillés dans le chapitre « action sur champs ». xxx est le code de l‟objet
Copyright © Sage 2011
Page 21
SAFE X3 DEVELOPPEMENT
Notes
Copyright © Sage 2011
Page 22
SAFE X3 DEVELOPPEMENT
4. OBJETS 4.1. DEFINITION Un objet X3 est le lien entre une fenêtre (l‟interface graphique) et une table (la base de données). Ce lien permet la gestion de l‟affichage et de l‟enregistrement des données par les traitements moteur (superviseur) en fonction du type de gestion choisi pour l‟objet.
4.2. GESTION OBJET SIMPLE
Objets : 4 types de gestion Gestion Objet simple Exemple « Données de base>Tiers>Tiers » 90% des objets X3 utilise cette gestion, particulièrement adapté pour affiché les objets possédants un grand nombre de champs. Lors de la transaction, seul l‟objet courant est modifié.
Liste ListeGauche Gauche Listes Listesdes des objets objets affichables affichablessur sur sélection sélection
Copyright © Sage 2009-2010
Objet Objeten encours coursde degestion gestion Clef Clefde del’enregistrement l’enregistrementdans dansl’écran l’écrand’entête d’entête Listes Listesdes deschamps champsregroupés regroupéspar paronglets onglets fonctionnels fonctionnels
Safe X3 Développement
12
L‟objet se présente sous la forme : d‟une fenêtre composée d‟un entête et de 15 onglets maximum d‟une liste de sélection à gauche (« browser ») La création se fait par : fichier nouveau. La duplication se fait par : modification de la clé par une valeur non encore créée dans le fichier La suppression se fait par : bouton bas d‟écran « supprimer »
Copyright © Sage 2011
Page 23
SAFE X3 DEVELOPPEMENT
4.4. GESTION COMBINE
Objets : 4 types de gestion Gestion combiné Exemple « Données de base>Tables tiers>Conditions de paiement » Permet de gérer un regroupement d‟enregistrement en tableaux sur une gestion d‟objet simple. Lors d‟une transaction, tous les enregistrements concernant les N-1 premiers arguments sont supprimés pour être recréés
Liste ListeGauche Gauche Listes Listesdes des regroupements regroupements d’objets d’objets affichables affichablessur sur sélection sélection
Copyright © Sage 2009-2010
Objets Objetsen encours coursde degestion gestion Clef Clefde del’enregistrement l’enregistrementdans dansl’écran l’écrand’entête d’entêteet et dans un champ du tableau. dans un champ du tableau. Listes Listesdes desenregistrement enregistrementdu dugroupe groupedans dansles les lignes du tableau. lignes du tableau.
Safe X3 Développement
14
Cette gestion est identique à la gestion tableau pour 1 groupe d‟enregistrement. Le groupe est défini par les n premiers champs de clé -1. L‟objet se présente sous la forme : D‟un écran Liste de sélection à gauche (« browser ») N-1 premiers arguments identiques La création et la suppression d‟un groupe se fait par : fichier nouveau et le bouton bas d‟écran « supprimer » La création et la suppression d‟un élément se fait par insertion et suppression ligne
Copyright © Sage 2011
Page 25
SAFE X3 DEVELOPPEMENT
4.5. GESTION BROWSER
Objets : 4 types de gestion Gestion browser Exemple « Vente>Commandes>Commandes » liste sélection devis Permet de cré
Il s‟agit d‟une liste gauche Une liste peut-être représentée par : Une énumération d‟enregistrements provenant d‟une ou plusieurs tables, il est alors possible par traitement de les trier et de les filtrer. Exemple dictionnaire des écrans liste « Utilisations de l‟écran » Permettant de lister les fenêtres utilisant un écran. Une liste hiérarchisée, regroupant les enregistrements visualisables. Exemple « Stocks>Inventaire>Inventaire » permettant de regroupe les inventaires par cession d‟inventaires. Une liste de picking servant à mettre à jour les lignes d‟un tableau. Exemple « Vente>Commandes>Commandes » la liste de picking des devis. La partie développement est détaillée au chapitre 11.
Copyright © Sage 2011
Page 26
SAFE X3 DEVELOPPEMENT
Déclaration de filtres utilisables ou non lors de l‟appel à cet objet. Code spécifique : Toutes les lettres minuscules. Ecran de sélection : 1- paramétrage de la liste gauche et des écrans de sélection et sélection avancée index : si non renseigné 1er index ascendant option de sélection : application d‟options de sélection sur la (f. de sélection) de l‟objet * liste hiérarchisée : oui / non ( l. gauche) nb caractères : pris en compte pour le début de recherche (f. de sélection) champs : correspondant à la clé primaire (l. gauche & f. de sélection) 2- contenu de la liste gauche et des écrans de sélection et sélection avancée Table/Zone : permet de choisir un champ d‟une table référencée dans l‟objet. On ne peut pas saisir un champ avec indice. Le système prend le 1er poste. expression/type/intitulé : permet de construire un élément.
4.6.4.Onglet
environnement
Tables : Permet d‟ouvrir des tables automatiquement à l‟exécution de l‟objet, ces tables sont alors utilisables dans les traitements. Clé de lien : Clé de parcours utilisé, par défaut il s‟agit du premier index de la table. Si le champ est renseigné alors la clef doit être sans homonyme. Expression de lien : Lien entre la table principale et la table définie ici. Utilisé pour les champs de la liste de gauche. Utilisé pour la recherche des statistiques liées à l‟objet. L‟ouverture et la fermeture des tables sont générées dans le traitement WOxxx. ( xxx = code objet ) Tableau des IMPORT : Ce tableau permet à la gestion des imports export d‟importer les données renseignées dans les écrans ne figurant pas sur la fenêtre principale lors de la simulation de saisie. (Voir cours sur les Imports/Exports) Pour chaque table de l‟objet, on précise l‟écran mis à jour par transclasse. Tableau écrans complémentaires : Ouverture des écrans ne faisant pas parti de la fenêtre principale pour la simulation de saisie d‟un Web service. (Voir cours sur les Web services)
4.6.5.Onglet
Vues
Il permet de renseigner jusqu‟à 10 vues. Stockage de ces informations dans la table AOBJET. L‟ouverture et fermeture des vues sont générées dans le traitement WOXXX, comme pour les tables. Si l‟abréviation n‟est pas renseignée, le vue est ouverte sous son abréviation dictionnaire. Le nom et l‟abréviation d‟une table ou d‟une vue doit être unique sur l‟ensemble ( table & vue ) 4.6.6.Champs
de paramétrage
Certains champs de l‟objet sont maintenant considérés comme du paramétrage.
Copyright © Sage 2011
Page 28
SAFE X3 DEVELOPPEMENT
La mise à jour de ces champs ne nécessite donc pas de code activité spécifique (ils ne seront pas écrasés). La mise à jour peut s‟effectuer directement en gestion d‟objet, ou par la fonction du menu « Paramétrage / Paramètres généraux / Personnalisation objets ».
Notes
Copyright © Sage 2011
Page 29
SAFE X3 DEVELOPPEMENT
5. FENETRE 5.1. DEFINITION
Fenêtres Définition La fenêtre contient les écrans à afficher et l‟objet faisant référence à la table principal.
Fenêtre Fenêtre Ecrans
Objet
Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
++ Boutons Boutons/ /Menus Menus
Copyright © Sage 2009-2010
Table
Objets browser
Safe X3 Développement
18
Fenêtre objet : Elle se nomme Oxxx ( xxx=code objet ) Fenêtre objet avec Transactions : S‟il y a des transactions de saisie pour un objet, les écrans sont à générés ainsi que la fenêtre. Celle-ci se nomme WOxxxyyy ( xxx = objet & yyy = transaction de saisie) Validation globale (par le menu « Validation ») : Permet de valider la fenêtre, les écrans, l‟objet liés à la fenêtre.
Copyright © Sage 2011
Page 31
SAFE X3 DEVELOPPEMENT
5.2. RESUME Le dictionnaire des fenêtres est dans le menu : « Développement>Dictionnaire traitements>Fenêtres » Onglet Ecrans Déclaration des écrans Définition du type de fenêtre, objet pour la gestion d‟objet. Onglet Boutons/menus Ajout des boutons bas d‟écran et des menus spécifiques Onglet Boutons prédéfinis Ajout ou suppression des boutons et menus standards. Onglet Browser Ajout des listes gauches spécifiques, exemple fenêtre OSOH (gestion des commandes)
5.3. ONGLET ECRANS Type fenêtre : Objet
Copyright © Sage 2011
Page 32
SAFE X3 DEVELOPPEMENT
5.7. EXERCICE : GESTION DES ARTICLES 5.7.1.Objectif Développer une gestion des articles sous forme tableau.
5.7.2.Marche
à suivre
Vous avez à votre disposition le code activité spécifique YSO. Création du menu ZMCOU dans le menu général GENE du profil ADMIN.
Ces 2 éléments seront utilisés dans tous les exercices. Création de la table YITEMX. Création de l‟écran YIX1. Création de l‟objet YIX. Création de la fenêtre OYIX. Pour ce faire, utiliser les descriptions ci-dessous.
Table des articles Code table : Abréviation : Module :
YITEMX YIX Tronc commun
Zone
Type de la zone
Longueur
Dimension
Intitulé
YITMREF
Alphanumérique
20
1
Article
YITMDES
Alphanumérique
30
1
Intitulé
YITMSHO
Alphanumérique
10
1
Intitulé court
YUOM
UOM
1
Unité
YORDNOT
Décimal
13.2
1
Prix de base
YVATRAT
Décimal
3.2
1
Taux de taxe
Champ particulier
1
Numéro export
Champ particulier
1
Opérateur création
Champ particulier
1
Date création
Champ particulier
1
Opérateur de modification
Champ particulier
1
Date de modification
Index
Descripteur de l‟index
Homonymes
YIX0
YITMREF
Non
Copyright © Sage 2011
Page 34
SAFE X3 DEVELOPPEMENT
5.7.6.A
vérifier
Vérifier la bonne initialisation de votre nouveau champ. Vérifier que les lignes d‟articles actifs sont bien coloriées. Noter que l‟automatisme est bien pris en compte quand on entre dans la fonction mais que celui-ci n‟est pas automatique à chaque modification du champ ENAFLG. Par la suite, on ajoutera une action pour prendre en compte cet automatisme. Exercice annexe N°A.
5.7.7.Etape
n° 3
Création d‟un patch pour sauvegarder les éléments crées, ou les installer sur un autre dossier. Créer votre patch par le menu : Développement / Utilitaires / Patch / Création automatique de patch, En sélectionnant l‟ensemble des éléments ayant le code activité YSO.
Notes :
Copyright © Sage 2011
Page 37
SAFE X3 DEVELOPPEMENT
6. MENUS LOCAUX 6.1. DEFINITION Les menus locaux se trouvent dans le menu : « Développement>Dictionnaire données>Tables>Menus locaux – Messages » Définition Définit une liste finie de valeurs saisissables pour un champ. Exemple, le menu local 1 contenant les libellés « oui » et « non ». Les menus locaux étant souvent utilisé en développement ceux-ci ne sont pas modifiables. Les libellés peuvent être traduits. A la création le numéro du menu local doit respecter les plages données ci-dessous. Messages : Vertical Spécifique
160 - 169 5000 – 5199 6000 – 6199
Menus locaux : Vertical 1000 – 1999 5200 – 5999 Spécifique 6200 – 6999 Flag menu local : Permet de faire la distinction entre les menus locaux et messages Appel d‟un message : Fonction : Mess(élément, chapitre, 1) Recherche d‟un message :
Menu : « Développement/utilitaires/Recherches/Message » Modifiable : Permet à l‟utilisateur de modifier ce menu local par le menu de paramétrage. Colonne « Code » : Sert au transcodage en import / export Principe : code + libellé : stockés dans la table APLSTD description : stockés dans la table AMENLOC Le code est stocké dans le champ de type de donnée M ou MM d‟une table fonctionnelle.
.
Copyright © Sage 2011
Page 39
SAFE X3 DEVELOPPEMENT
7. TABLES DIVERSES 7.1. DEFINITION Les tables diverses sont créées dans le menu : « Développement>Dictionnaire données>Tables diverses>Définition » Permet de créer une table contenant au maximum 7 champs. Intéressant pour créer de petites tables de travail sans alourdir le dictionnaire des tables. A l‟inverse des menus locaux, les tables diverses sont paramétrables par défaut par l‟utilisateur. A la création le numéro de la table diverse doit respecter les plages données ci-dessous. Vertical Spécifique
1000 – 1999 6000 – 6999
Principe : Description : est stockée dans la table ATABTAB. Données : sont stockées dans la table ATABDIV. Sa clé est composée par : le numéro de table + le code Le code peut contenir jusqu‟à 20 caractères depuis la V6 Les données sont : Un code pour l‟enregistrement Une désignation longue Une désignation courte 2 champs alpha (facultatifs) 2 champs numériques (facultatifs) Filtre sur la société (GSOCIETE) et sur la législation (GCURLEG) (facultatif) Table de dépendance (pour lier une table à une autre) Modifiable : Par défaut une table diverse est modifiable par la fonction GESADI, mais elle pourrait ne pas l‟être. Longueur modifiable (pour élément clé) : Longueur code peut être modifiable par fonction du paramétrage Longueur code peut être différente d‟une table à une autre Longueur doit être inférieure ou égale à la valeur contenue dans le dossier mère X3
7.2. SAISIE DES DONNEES Une fois la définition de la table diverse créée, la table diverse doit être renseignée. Elle est à renseigner dans le menu : « Développement>Dictionnaire données>Tables diverses>Données » Affectation d‟un champ obligatoire contrôlé par cette table par l‟action d‟init du champ (chapitre 9 sur les actions sur champs).
Copyright © Sage 2011
Page 40
SAFE X3 DEVELOPPEMENT
7.3. GESTION DE TABLE DE DEPENDANCE Cette gestion permet une hiérarchisation entre tables divers, par exemple avec la table famille et la table sous-famille des articles. Tout d‟abord, renseignement dans la définition de la table fille, dans le champ « table de dépendance » de la table mère. Exemple dans la définition de la table N°21 « Stat. 2 article ». Renseignement de l‟élément mère pour tous les éléments fils dans la colonne « dépendance » de la fonction de saisie des données. Paramétrage sur l‟écran appelant la table diverse ; clic droit sur le type de données ADI, puis renseignement des paramètres suivants : _ numéro de table diverse fille _ champ contenant le numéro de la table mère Exemple écran ITM1 pour le champ TSICOD statistique. Nouveauté V6 : Les champs dimensionnés tels que TSICOD ont un numéro de table paramétré avec la formule « (numéro de table mère)+indice ». Le champ tables diverses contient : func TRTX3.DEPFAM(TSICOD,indice,20)
Copyright © Sage 2011
Page 41
SAFE X3 DEVELOPPEMENT
# si code activité de dimension 3 %string$(find(func AFNC.ACTIV(« XXX »),3)0,«, LIEN_2»)% From TABLETEST Requête et base de données : Doit être écrite dans le langage de la base de données courante du dossier. Pour toute vue standard livrée, la requête doit être écrite pour les 2 bases de données (menu "Option / Base") Order by inutile car annulé et remplacé par celui du For ou du Read (implicite si non renseigné) Validation de la vue Le fichier *.viw est créé avec le script adapté à la base de données du dossier courant Contrôle syntaxique
8.2.3.Onglet
champs
Permet de constituer la classe [F] Il doit y avoir compatibilité entre la requête et la description des champs (nombre, ordre et type interne), ce contrôle est effectué lors de la validation de la vue. Les champs de type clob et blob sont autorisés. Champs « textes traduits » ne sont pas autorisés. (Ils n‟existent pas dans la base) Aide à la création Fenêtre permettant la saisie d‟une table et la sélection d‟un ou plusieurs champs associés Aide sur nom de champ Tunnel sur codification Outil permettant la signification du champ
8.2.4.Onglet
Clés
Pas de création d‟index, Génération d‟un « order by » dans la requête (attention aux performances) Performances Table sans trop d‟enregistrements, ou avoir une clause « Where » pertinente
Copyright © Sage 2011
Page 43
SAFE X3 DEVELOPPEMENT
8.3. STRUCTURE GENEREE EN VALIDATION Vue dans la base par l‟instruction « create view » Dans répertoire FIL Un fichier *.srf contenant la liste des champs (flag « #V » en 3ème ligne) Un fichier *.fde généré par valfil -n Un fichier *.viw contenant la description de la requête Vues du superviseur : AVIEWTAB : union des tables et des vues. Utilisée dans l‟éditeur de formules AVVTEXTRA : produit table langue et texte traduit AVWTEXTRA : jointure externe entre la vue AVVTEXTRA et la table ATEXTRA Vues avec Crystal Report : Accessible en conception d‟état (si autorisé dans fichier/option/base de données) Utilisables comme des tables (Sélection, lien, et placement champ) Validation d‟une table ou d‟une vue utilisée dans une vue : Sur une base Oracle, la vue est « cassée » suite à validation forcée table ou vue utilisée dans sa requête. Une validation est forcée par choix utilisateur ou automatiquement lorsqu‟il y a changement de structure. Donc, suite à validation table ou vue le superviseur relance la validation des vues « cassées » sur dossier courant et historisé. Revalider manuellement les vues sur autres dossiers. Nommage des vues Validation dans l‟ordre alphabétique du nom des vues. Une vue appelée doit être validée avant la vue principale. Son nom doit être antérieur à celui de la vue principale (suivant l‟ordre alphabétique). Dossier historisé Les vues du dossier principal sont créées automatiquement dans le dossier historisé à la création du dossier historisé, et à la validation des vues.
8.3.1.Programmer
avec des vues
Une vue s‟utilise globalement comme une table, avec les restrictions suivantes : Utilisable en lecture uniquement Ne peut pas être précisée dans les champs « tables » des dictionnaires N‟intervient aujourd‟hui que dans le dictionnaire des objets. Instructions utilisables pour les vues (local) file close (local) file Default file Filter [x] Where … Order by … For [x]… Next
Copyright © Sage 2011
Page 44
SAFE X3 DEVELOPPEMENT
9.4. CODES ACTIVITES DE LOCALISATION Code activité peut être actif ou inactif, ce type de code activité ne doit être utilisé que sur des éléments ayant un rapport avec les localisations.
9.5. CODE ACTIVITES FONCTIONNELS SPECIFIQUES Code activité peut être actif ou inactif, il peut être dimensionné et permet d‟identifier un vertical. Ce type de code activité devra être systématiquement utilisé pour protéger les développements spécifiques des intégrations de patchs standards.
9.6. PARTICULARITE DE LA DESACTIVATION PAR CODE ACTIVITE Champ table toujours présent : Ce champ est généré dans la base de données. En effet, les états Crystal s'appuyant sur la définition de nos tables doivent fonctionner que ce champ soit actif ou inactif. Type de donnée de base : Pour ne pas avoir le risque d'avoir un type de donnée associé inexistant, le type de donnée est remplacé par un type de données "de base" correspondant au type interne du type de donnée initial : C pour numérique, DCB pour nombre décimaux D pour Date A pour tout le reste. ces champs de type A seront sur 1 caractère. Dimension du champ Table : Pour un champ dimensionné avec code activité inactif, sa dimension champ de table sera 1. Développement : Un champ soumis à un code activité dans une table, est toujours présent avec une dimension à 1. Pour un champ dimensionné avec un code activité inactif, il faut impérativement tester le code activité. Utiliser, pour cela, la fonction ACTIV du traitement AFNC. Erreurs à éviter sur code activité, car peut entraîner des pertes de données : un code activité absent à tort, sur un champ spécifique : le champ sera supprimé de la base de données. un code activité inactif à tort, sur champ alpha : le champ sera réduit à 1 seul caractère dans la base de données. un code activité inactif à tort, sur champ dimensionné : le champ sera réduit à 1 seule occurrence dans la base de données.
Copyright © Sage 2011
Page 47
SAFE X3 DEVELOPPEMENT
Notes
Copyright © Sage 2011
Page 48
SAFE X3 DEVELOPPEMENT
10. ACTIONS CHAMPS
10.1.
DEFINITION
Les actions sur champs permettent de renseigner des contrôles, des affichages ou d‟iv
Copyright © Sage 2011
Page 49
SAFE X3 DEVELOPPEMENT
Action champ Code action placée sur un champ Traitement nommé sur écran
STD
SUBxxx
SPV
SPVxxx
SPE
SPExxx
action
Copyright © Sage 2009-2010
Traitement capitalisé
Safe X3 Développement
27
Ordre d‟exécution est Spécifique Vertical Standard
Copyright © Sage 2011
Page 51
SAFE X3 DEVELOPPEMENT
10.3.
LISTE DES ACTIONS SUR CHAMPS
Action champ Type action
Contexte d ‟appel & emploi
Etiquette
Avant_zone
avant l‟affichage de la zone ex : définir le format conditionner l’affichage affecter une couleur (V130)
AV_zone
Init
initialisation de la zone en création seulement
D_zone
Avant_saisie
Copyright © Sage 2009-2010
avant la saisie de la zone ex : désactiver éléments menu local conditionner la saisie
Affichage AS_zone
Safe X3 Développement
29
Avant_zone : Mkstat=0 : la zone sera affichée, 1: la zone ne sera ni affichée ni saisie. Elle sera réinitialisée, 2: la zone ne sera ni affichée ni saisie.
Init : Initialisation d‟un champ Ex : [L]VALEUR = « toto » Attention, dans un tableau, l‟init est seulement actif à la création de ce tableau. Avant_saisie : 0: 1: 2:
la zone sera saisissable, la zone ne sera pas saisissable. Elle sera réinitialisée, la zone ne sera pas saisissable.
Pour supprimer des valeurs d‟un menu local. Utilisez un type de donnée MM.
Copyright © Sage 2011
GMENLOC(n)=1
Page 53
SAFE X3 DEVELOPPEMENT
Contrôle, Après_zone, Après_modif : affichage d‟un message [V]GMESSAGE = « message » ou [V]GMESSAGE = mess(10,100,1) dans une boite d‟erreur [S]mkstat=2 ( GERR = 1 automatiquement ) dans une boite de message GERR = 2 dans une boite d‟avertissement GERR = 3 ( mkstat = 2 automatiquement, si l‟opérateur répond « annuler ») dans la barre de texte GERR = 4 Pour les boites d‟avertissement : Les sous-programmes OUINON et AVERTIR … From GESECRAN sont utilisables si l‟on veut exploiter la réponse dans l‟action de controle. Après_zone, Après_modif : Alimentation et affichage d‟un champ suivant Ex : [M:ABC]champ = « toto » : Affzo [M:ABC]champ Actzo [M:ABC]champ : # dégrisage du champ Diszo [M:ABC]champ : # grisage du champ avec conservation du focus Grizo [M:ABC]champ : # grisage du champ sans conservation du focus Zonsui = « [M:ABC]champ » : déplacement sur un autre champ
Copyright © Sage 2011
Page 54
SAFE X3 DEVELOPPEMENT
Action champ Menu contextuel Type action
Contexte d‟appel & emploi
Etiquette
Sélection
Fenêtre de sélection
S_zone
Init_bouton
Attribuer ou effacer le texte du bouton
IB_zone
Bouton i (i = 1 à 20)
A l‟activation d‟un bouton ex : traitement lié au bouton
Bi_zone
Copyright © Sage 2009-2010
Safe X3 Développement
31
Création d‟un bouton contextuel : IB_zone : Activation désactivation en attribuant ou pas un libellé au bouton. On utilise les variables [V]GBOUT1 à [V]GBOUT20, pour stocker ce libellé. [V]GBOUTS, [V]GBOUTA, [V]GBOUTI pour sélection, sélection avancée, clic Ex : [V]GBOUT1 = mess(90,198,1) Activation du bouton 1 Raz [V]GBOUT1 Désactivation du bouton 1 S_zone : Après la sélection, le curseur se positionne automatiquement sur le champ suivant Positionner mkstat = 2, pour bloquer le curseur sur le champ courant. Bi_zone : Exécution du bouton i Utilisation d‟une action dictionnaire si saisie/affichage d‟une fenêtre (pour version Web) Positionner mkstat = 4, pour déclencher l‟activation du bouton enregistrer. Positionner mkstat = 99, pour positionner le curseur sur le champ suivant. Remarque : Le bouton B1 est pris par le superviseur s‟il y a un type de données lié à l‟objet.
Copyright © Sage 2011
Page 55
SAFE X3 DEVELOPPEMENT
Action champ Icône Type action
Clic
Contexte d‟appel & emploi
Clic sur icône
Copyright © Sage 2009-2010
Etiquette
CL_zone
Safe X3 Développement
32
CL_zone : Valeur contient le code de l‟icône Action disponible sur champ saisi Action disponible également sur champ « diszonné ». Utilisation d‟une action dictionnaire si saisie/affichage d‟une fenêtre (pour version Web) Positionner mkstat = 4, pour déclencher l‟activation du bouton enregistrer.
Copyright © Sage 2011
Page 56
SAFE X3 DEVELOPPEMENT
Avant_ligne & Après_ligne : Ces 2 actions sont disponibles sur la variable de bas de tableau uniquement.
Copyright © Sage 2011
Page 57
SAFE X3 DEVELOPPEMENT
10.4.
VARIABLES UTILISABLES POUR LES ACTIONS SUR CHAMPS Variables globales
GREP (1) GIMPORT
char int.
bouton standard sélectionné Indicateur traitement import
GBOUT1..20 (35) GBOUTS (35) char GBOUTA (35) char GBOUTI (35) char
char intitulé bouton contextuel intitulé bouton sélection intitulé bouton sélection avancée intitulé clic sur icône
GMESSAGE(250) GERR int. GMENLOC(0..123)
char message d‟erreur, d‟information … Type message int. Désactive 1 élément de menu local
non modifiable
GREP : vide : visualisation A : annulation/suppression C : création D : duplication M : modification GIMPORT : 1 : traitement d ‟import / export 0 : autres traitements GERR : 1 : message d ‟erreur 2 : message d ‟information 3 : message d ‟avertissement ( avec possibilité d ‟arrêter le traitement ) 4 : message en bas d ‟écran Variables systèmes : nolign nolign-1 est le numéro de ligne courant dans un tableau déroulant indice indice courant d‟une variable dimensionnée ( de 0 à N-1, N étant la dimension de la variable) mkstat statut d‟erreur suite à saisie, ou statut permettant de conditionner la saisie status statut de retour d‟une instruction de saisie fstat statut de retour d‟une opération sur table ou d‟une instruction de verrouillage
Copyright © Sage 2011
Page 59
SAFE X3 DEVELOPPEMENT
10.5.
ACTIONS STANDARD CAPITALISEES Actions sur champ clé (objet simple) Les actions sur champs permettent l‟ajout de spécifiques mais peuvent aussi faire appels à des actions (traitements capitalisées) standards ou spécifiques.
Contrôle particulier sur champ clé lié à objet : CONTOBJW
Copyright © Sage 2011
Page 60
SAFE X3 DEVELOPPEMENT
Paramètre à renseigner dans le dictionnaire écran dans le menu contextuel du type de donnée. (dans notre exemple, la devise) Variable : Variable globale permettant de passer le paramètre au sous-pro SETDEV.
11.6.
•
•
TYPE DE DONNEES LIEES A L’OBJET : Type de données lié à l‟objet Type de donnée SOH Permet d‟accéder à une gestion objet par tunnel (optionnel), d‟avoir les fenêtres de sélection et sélection avancée, d‟afficher les propriétés de l‟objet, de contrôler la valeur saisie avec celle de l‟objet, d‟afficher automatiquement le libellé à la suite du code de l‟objet (optionnel). Si l‟objet est identifié par une clé à 2 composantes, la 1ère composante est considérée comme un paramètre qui sera saisi dans le dictionnaire des écrans par le menu contextuel du type de données. Exemple : type ADI.
Pour désactiver le contrôle d‟existence de la valeur dans la table liée à l‟objet, 2 actions disponibles : •
CONTOBJW : le champ est obligatoire s‟il est alphanumérique
•
CONTOBJN : aucun contrôle n‟est effectué
11.7.
TEXTE TRADUITS Texte traduit Texte avec possibilité d‟afficher la traduction pour les langues déclarées dans le dossier.
• • • • •
champ présent dans le dictionnaire de table, mais absent de la base de données. AX1 : longueur = 12 AX2 : longueur = 20 AX3 : longueur = 30 AXX : longueur à définir dans l‟écran
• • •
Ses actions : LECTEXTRA : lecture et affichage du texte de la table ATEXTRA ATEXTRA : fenêtre de saisie du texte dans les différentes langues gérées dans le dossier.
Programmation : Il est absolument nécessaire de programmer la création, maj. et suppression du texte traduit dans la table ATEXTRA. Pour création et modif, il faut utiliser le sous-programme MAJTEXTRA de ATEXTRA. Pour la suppression, penser à faire le delete dans la table ATEXTRA. Pour le changement de code, penser à faire l‟update dans la table ATEXTRA.
Copyright © Sage 2011
Page 63
SAFE X3 DEVELOPPEMENT
Exemple de programmation sur la table TABCOUNTRY.
Clé de la table ATEXTRA : Nom de la table contenant le champ de type AXX Nom du champ de type AXX Langue Clé_enreg(1) Clé_enreg(2)
Copyright © Sage 2011
Page 64
SAFE X3 DEVELOPPEMENT
11.8.
CLOB ET BLOB
Les clobs sont les champs pouvant contenir des textes longs. Les blobs contiennent les fichiers binaires, tel que les images. Longueur = Valeur dossier Pour ACB et ABB Longueur non affectée Pour AC0 et AB0 Affectation longueur Voir la documentation fonctionnelle (1024 o * 2^n) Les champs clob sont directement stockés dans la table ACLOB, les blob dans ABLOB Remarque : Les formats d'image supportés par Crystal 2008 sont : JPG ou JPEG - Photographic Experts BMP bitmap TIF - Tagged Image File Format PNG - Portable Network Graphics Attention ! Les images de type *.GIF ne sont pas supportées par Crystal. Les images de type *.TIF et *.PNG ne sont pas supportées par le client X3.
11.9.
SYNTAXE DU FORMAT
Type Options : chaîne_de_formatage Type K N D
affichage d‟une chaîne de caractères affichage d‟un nombre affichage d‟une date
Options (commune) c affichage d‟un champ en couleur suivant la variable [S]pcolor (bloc tableau) z commentaires non affichés quand la valeur du champ est nulle X saisie masquée = centré (uniquement sur champ de bloc tableau) < cadré à gauche (uniquement sur champ de bloc tableau) > cadré à droite (uniquement sur champ de bloc tableau) Chaîne de formatage n1 T1 n2 T2 .... n1, n2 sont des nombres optionnels (1 par défaut) T1, T2 sont des types de caractères admis Possibilité d‟y ajouter des commentaires délimités par les caractères „[„ et „]‟ Ces commentaires ne sont pas stockés dans la base. (Uniquement affichés) Ils peuvent être placés en début, milieu ou fin de chaîne. Types caractères admis (chaîne de caractères) A lettres majuscules (A-Z) a lettres minuscules (a-z) L lettres majuscules et minuscules (A-Z,a-z) B lettres majuscules + chiffres b lettres minuscules + chiffres C lettres majuscules et minuscules + chiffres c format clé H chiffres hexadécimaux (0-9,A-F) Copyright © Sage 2011
Page 65
SAFE X3 DEVELOPPEMENT
X #
caractères quelconque imprimable chiffre (0-9)
Options (chaîne de caractères) A obligation de taper les caractères demandés : majuscules ou minuscules T tokenisation (reconnaissance des mots clés) D pas de token Options (nombre) D placement du signe derrière le nombre F nombre flottant + nombre positif affichage systématique du signe * complète avec des * devant le nombre 0 complète avec des 0 devant le nombre 3 séparateur de groupe Options (date) Z date nulle autorisée Type caractères admis (nombre) # placement du signe derrière le nombre . position du séparateur décimal pour les nombres en format fixe F nombre en format flottant
Type caractères admis (date) D chiffre composant le jour M chiffre ou lettre composant le mois Y chiffre composant l‟année h chiffre composant l‟heure m chiffre composant les minutes s chiffre composant les secondes
Type caractères supplémentaires Possibilité de se paramétrer jusqu‟à 20 caractères supplémentaires dans les paramètres TUL1, TUL2...TUL20 du chapitre ADX sous la forme C1 T1 T2 ... : c1 c2 ... C1 est le nouveau type caractères à définir. Il comprend les types caractères T1 et T2 auxquels on ajoute les caractères c1 et c2.
Exemples K:3X2A3# K:XXXAA### N:15.2 N:15#.2#
sont identiques
sont identiques
Nc:15#.2#
affichage du nombre en couleur
D:[Le ]DD[ du mois de ]MMMMMMMM Le 12 du mois de janvier DZz :[Le ]DD[ du mois de ]MMMMMMMM rien n‟est affiché si la date est nulle D:DDMMYY 120105
Copyright © Sage 2011
Page 66
SAFE X3 DEVELOPPEMENT
Les formats particuliers de dates : Les formats GFMx sont initialisés d'après les options du poste client (comme les champs date sur écran). Pour les formats de date, utiliser ces variables globales, et non pas les formats prédéfinis du langage. Par exemple format$("D:"+GFMDAT4,date$) et non pas format$("DD2",date$) qui est figé par le moteur. Liste des variables globales contenant un format date : GFMD : "D:DD[/]MM[/]YYYY" format date interne. GFMDAT : "DD[/]MM[/]YY" date avec année sur 2 car. GFMDAT3 : "DD[ ]MM[ ]YYYY" date avec année sur 4 car., sans séparateur. GFMDAT4 : "DD[/]MM[/]YYYY" date avec année sur 4 car. GFMDAT9 : "DD[ ]MMMMMMMMM[ ]YYYY" date avec mois en alphanumérique. GFMJOU : "DD[/]MM" jour/mois GFMMOI : "MM[/]YY" mois/année sur 2 car. GFMMOI4 : "MM[/]YYYY" mois/année sur 4 car. Formats prédéfinis du langage A EVITER : DD1 : format$("DD1",[1/1/1994]) -> "01/01" DD2 : format$("DD2",[1/1/1994]) -> "01/01/94" DD3 : format$("DD3",[1/1/1994]) -> "01 Janvier 1994 14:38" DD4 : format$("DD4",[1/1/1994]) -> "01 Janvier 1994 14:38:21"
Copyright © Sage 2011
Page 67
SAFE X3 DEVELOPPEMENT
POUR UNE ACTION : ORDRE D’EXECUTION
11.10.
S‟exécute dans l‟ordre : • • •
Type de donnée Action sur champ
Pas de cumul des actions pour : • • •
Bouton Sélection Click sur icône
Pour une action Sélection, Bouton ou Icône : 1 seule action, sur le type de donnée Plusieurs actions possibles, sur le champ (exceptionnel) Action du type de donnée non exécutée si action sur champ.
Copyright © Sage 2011
Page 68
SAFE X3 DEVELOPPEMENT
11.11. 11.11.1.
EXERCICE : GESTION DES CLIENTS (GESTION SIMPLE) Objectif
Développer une gestion des clients sous forme entête, 2 onglets et liste gauche.
11.11.2.
Marche à suivre
Table diverse Création de la table diverse 1000 « Secteurs géographiques » qui comprendra un intitulé et un intitulé court. Création de quelques enregistrements dans cette table des secteurs géographiques. Exemple : NORD, SUD, EST, OUEST.
Copyright © Sage 2011
Page 69
SAFE X3 DEVELOPPEMENT
Préparer dès maintenant la possibilité de : Contrôle d‟existence Fenêtres de sélection Tunnel vers la gestion des secteurs géographiques Fenêtre de propriétés YCNTLASTYP : Ajouter votre menu local. YCNTLASDAT : Date nulle autorisée. Se servir des options du champ. YBPCREM : Transformer ce champ en clob.
Ecrans des Clients Ecran d‟entête « identification »
Code écran : Abréviation : Taille : Traitements associés :
YCX0 YCX0 En tête SUBYCX SPEYCX
standard spécifique
Champ
Saisie
Oblig.
Particularités
YBPCNUM
S
Oui
Type de donnée lié à l‟objet
YBPCNAM
S
Oui
Copyright © Sage 2011
Page 71
SAFE X3 DEVELOPPEMENT
Onglet 2 « général »
Code écran : YCX2 Abréviation : YCX2 Traitements associés : SUBYCX standard SPEYCX spécifique
Champ
Saisie
YARE
S
Copyright © Sage 2011
Oblig.
Particularités
Dévelop.
Contrôle / Sélection / Tunnel / Propriétés
Page 73
SAFE X3 DEVELOPPEMENT
Objet des clients Code objet : Module : Menu standard : Rang dans menu : Ecran de sélection :
YCX Tronc commun MCOU 20 Ascendant Client / Raison sociale / Prospect
Fenêtre des clients Code fenêtre Module : Type fenêtre : Affichage : Objet :
11.11.3.
:
OYCX Tronc commun Objet plein écran YCX
A vérifier
Création, modification, suppression. Fenêtre de sélection des clients. Interdiction de créer 2 codes client identiques. Message d‟avertissement si le code pays n‟est pas « FR » ou « DE ». Contrôle, Sélection, Tunnel sur les secteurs géographiques. Dans les secteurs géographiques, interdiction de supprimer un code utilisé pour un client. Saisie et non saisie du type et date de dernier contact. Type de dernier contact ne peut pas être égal à 3 (visite) si le pays est « DE ». Liste gauche présentant les clients existants.
Copyright © Sage 2011
Page 74
SAFE X3 DEVELOPPEMENT
12. MODELE « OBJET » 12.1.
DEFINITION
Le principe des modèles est le suivant, rendre automatique des traitements utiles dans les différents contextes de l‟application (gestion d‟objet, consultation, traitement batch…) et de permettre l‟ajout de traitements spécifiques via des évènements (ouverture de fenêtre, enregistrement des données, changement d‟enregistrement…). Prenons comme exemple l‟objet des clients réalisé dans l‟exercice précédent. Il n‟a pas été nécessaire d‟ajouter de traitement pour permettre la mise à jour ou l‟affichage des données, les traitements superviseurs ont pris en compte automatiquement ces besoins. Ces traitements sont effectivement appelés pour une fenêtre contenant un objet et impliquant donc une gestion d‟objet.
Modèle « objet » Table
Types de donnée M. Locaux T. Diverses Codes activités
Objet
Fenêtre
Écrans
Unique
Action : GOBJET Générée
Fonction : GESxxx
Copyright © Sage 2009-2010
Traitement superviseur GOBJET Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
Safe X3 Développement
Types de donnée M. Locaux T. Diverses Codes activités Traitement standard SUBxxx Traitement vertical SPVxxx Traitement spécifique SPExxx
38
Gestion d‟objet L‟Action GOBJET lancée est unique pour tous les objets qu‟ils soient standards ou spécifiques. (Voir chapitre sur les actions) Traitement superviseur unique : GOBJET Le traitement GOBJET permet : _ L‟affichages des enregistrements _ Leur suppression, modification, création _ La gestion de la liste gauche principale Attention ! Tous ces automatismes ne sont gérés que pour la table liée à l‟objet Fonction générée : GES+ « code objet »
Copyright © Sage 2011
Page 75
SAFE X3 DEVELOPPEMENT
Modèle « objet » Gestion objet : Les Traitements GOBJET GOBJET
SUBxxx SUBxxx
ANUCOD ANUCOD GOBJSUB GOBJSUB
SPVxxx SPVxxx
CHGCOD CHGCOD
SPExxx SPExxx GOBJET1 GOBJET1 (simple) (simple) TABLEAUX TABLEAUX (détail) Copyright © Sage(détail) 2009-2010
GOBJET2 GOBJET2 (tableau) (tableau)
GOBJET3 GOBJET3 (combiné) (combiné)
Safe X3 Développement
39
Ces traitements permettent l‟affichage, la création, la modification, la suppression des objets X3, sans ajout de code spécifique.
Copyright © Sage 2011
Page 76
SAFE X3 DEVELOPPEMENT
12.2.
UTILISATION DU MODELE OBJET
12.2.1.
Principe
Une fois le modèle appelé, il est alors possible d‟utiliser les différents évènements liés à ce modèle. Le traitement ci-dessous permet par exemple de prendre la main à l‟ouverture du traitement (action OUVRE) pour venir en ajout du traitement GOBJET courant. Cette action est surtout utilisée pour déclarer les variables utiles au traitement spécifique.
Modèle « objet » Lien entre programmes ACTION ACTION==««OUVRE OUVRE»» GPE GPE==00 Gosub GosubACTION ACTIONFrom FromSPExxx SPExxx IfIfGPV GPV==00 Gosub GosubACTION ACTIONFrom FromSPVxxx SPVxxx Endif Endif
SPExxx
SPVxxx
IfIfGPE GPE==00 Gosub GosubACTION ACTIONFrom FromSUBxxx SUBxxx Endif Endif
Superviseur
Copyright © Sage 2009-2010
SUBxxx
Safe X3 Développement
$ACTION Case ACTION When «OUVRE » : Gosub OUVRE When default Endcase return $ACTION Case ACTION When «OUVRE » : Gosub OUVRE When default Endcase return $ACTION Case ACTION When «OUVRE » : Gosub OUVRE When default Endcase return 40
Dans les traitements du superviseur : L‟instruction Gosub permet d‟utiliser les variables des classes [F] (table), [M] (écran), et les variables locales des traitements superviseur. Dans le SUBxxx, SPVxxx, SPExxx : L‟étiquette $ACTION est générée dans les traitements SUBxxx, SPVxxx et SPExxx. XXX étant le nom de l‟objet. Le traitement SUB est forcément généré à la validation de l‟objet dans le dossier mère X3. On complètera le sous-programme en testant la valeur de la variable ACTION. La variable ACTION est modifiée par le traitement superviseur selon l‟évènement à lancer. Ordre d‟appel des actions : L‟action spécifique L‟action verticale si GPV=0 L‟action standard si GPE=0
Copyright © Sage 2011
Page 77
SAFE X3 DEVELOPPEMENT
Modèle « objet » traitement spécifique : règle d‟écriture des actions $ACTION Case ACTION When «OUVRE » : Gosub OUVRE When «RAZCRE » : Gosub RAZCRE When default Endcase Return $OUVRE Local char ma_variable ma_variable = « test » Return $RAZCRE [M]CHAMP = ma_variable Return
Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
41
Page 78
SAFE X3 DEVELOPPEMENT
Modèle « objet » Cinématique de l‟objet
Pour la table principale
Lock Locklogique logique
La saisie
Lock Lockphysique physique Trbegin
La transaction de mise à jour Commit
Copyright © Sage 2009-2010
Safe X3 Développement
42
CINEMATIQUE DE L‟OBJET : Le superviseur ne gère en automatique qu‟une seule table : la table principale liée à l‟objet. Le traitement applicatif doit prendre en charge les lectures et mises à jour sur les autres tables. 1 - La saisie Lecture si l‟enregistrement existe et affichage des champs par basculement de la classe [F] fichier vers la classe [M] masque, puis lock logique de l‟enregistrement. A la suite de ce lock, aucun utilisateur ne pourra modifier l‟enregistrement via l‟interface graphique. 2 - La transaction de mise à jour Commence dès que la saisie est terminée, après clic du bouton créer ou enregistrer. Basculement de la classe [M] masque vers la classe [F] fichier et mise à jour de la table.
Copyright © Sage 2011
Page 79
SAFE X3 DEVELOPPEMENT
12.2.2.
Gestion simple en création
Les évènements utilisables en gestion de création d‟un enregistrement sont les suivants :
Modèle « objet » gestion simple : en création RAZCRE
avant la saisie
VERIF_CRE
avant la transaction de mise à jour
Trbegin
INICRE
après le chargement de la classe [F]
CREATION
après l‟écriture de l‟enregistrement
Commit
APRES_CRE
après la transaction de mise à jour
AB_CREATION
si abandon de la transaction
Copyright © Sage 2009-2010
Safe X3 Développement
43
12.2.2.1. RAZCRE Cette action est lancée en tout début de création après clic du bouton « nouveau », avant la saisie. Sert à : initialiser les variables de la classe [M] activer / désactiver des champs par Actzo, Diszo, Grizo Nécessite : le rafraîchissement de l‟écran par Affzo [M:abrev]1-99 il faut préciser le nom de l‟écran Ex. de devis: ########################################################################### # -- gestion des textes [M:SQH0]SQHTEX1 = "" : [M:SQH0]SQHTEX2 = "" [M:SQH0]ANCSQHTEX1 = "" : [M:SQH0]ANCSQHTEX2 = "" Raz [M:SQH2]SQDTEX Raz [M:SQH2]ANCSQDTEX Call RESET_IMAGE (4) From GESECRAN #-- Effacement des masques adresse Raz GTARFLG Copyright © Sage 2011
Page 80
SAFE X3 DEVELOPPEMENT
Raz [M:ADB1], [M:ADB2] #-- Activation/Desactivation des zones en fonction du contexte # Gosub GRIZE_LIENS Affzo [M:SQH0]SALFCY, QUODAT Affzo [M:SQH1]STOFCY Return ###########################################################################
12.2.2.2. VERIF_CRE Action lancée après la saisie du bouton « créer », avant la transaction de mise à jour. Sert à : effectuer des contrôles globaux interrompre le traitement et retour à la saisie: [L]OK=0 afficher un message : GMESSAGE indiquer le type de message : GERR Positionnement du curseur (nom de champ) : [S]zonsui
Ex. de devis: ########################################################################### # --> Il doit y avoir au moins une ligne If [M:SQH2]NBLIG = 0 GERR=1 : GMESSAGE = mess(61,199,1) : OK=0 : [S]zonsui= “[M:SQH2]NBLIG” : Return Endif ###########################################################################
12.2.2.3. INICRE Action lancée en début de transaction de mise à jour après le chargement de la classe [F]. Sert à : alimenter la classe [F] interrompre la transaction : [V]GOK=0 afficher un message : GMESSAGE indiquer le type de message : GERR Attention ! L‟ouverture de table est possible mais uniquement dans un sous-programme, sinon la classe [F] par défaut est modifiée.
Ex. de devis: ########################################################################### # Récupération du compteur de devis If GMANCOU 2 | (GMANCOU=2 & vireblc([M:SQH0]SQHNUM,2)="") Call NUMERO (GCPT,[F:SQH]SALFCY,[F:SQH]QUODAT,"",GNUM,STAT) From SUBANM If STAT = 0 [F:SQH]SQHNUM = GNUM [M:SQH0]SQHNUM = GNUM Affzo [M:SQH0]SQHNUM Else # problème lors de la récupération du compteur Copyright © Sage 2011
Page 81
SAFE X3 DEVELOPPEMENT
GERR=1:GMESSAGE = mess(60,199,1) : GOK=0 : Return Endif Endif ###########################################################################
12.2.2.4. CREATION Action lancée après l‟écriture de l‟enregistrement dans la transaction de mise à jour Sert à : créer, mettre à jour, supprimer enregistrement d‟autres tables gérer les verrouillages avec [V]GOK = -1 interrompre la transaction : [V]GOK = 0
Ex. de devis: ########################################################################### # Mise à jour du champ contenant la date de demande du dernier devis du client. If clalev ([F:BPC]) = 0 : Local File BPCUSTOMER[BPC] : Endif Readlock [BPC]BPC0 = [F:SQH]BPCORD If fstat = 1 : GOK = -1 : GLOCK = "$SQUOTE"-[F:SQH]BPCORD : Return : Endif If fstat : Call RSTA("BPC",[F:SOH]BPCORD) From GLOCK : Return : Endif … [F:BPC]QUOLASDAT = [F:SQH1]QUODAT … Rewrite [BPC] If fstat : Call FSTA("BPC") From GLOCK : Return : Endif ###########################################################################
Copyright © Sage 2011
Page 82
SAFE X3 DEVELOPPEMENT
Modèle « objet » Action : création $CREATION Readlock [xxx]xxx0 = clé [f:abrv]champ If fstat=1 GOK= -1 : GLOCK= «nom table + clé » : Return Elsif fstat0 GOK= 0 Call RSTA(« abrev table »,clé) From GLOCK Return Endif ReWrite [xxx] If
fstat GOK= 0 Call FSTA(« abrev table ») From GLOCK Return
Endif Return Copyright © Sage 2009-2010
Safe X3 Développement
44
Statut fstat : Statut de retour d‟une opération sur table. 0 : OK 1 : enregistrement verrouillé autre : erreur Sous-programme RSTA : Affichage d‟un message en fonction du fstat, suite à une tentative de lecture. Sous-programme FSTA : Affichage d‟un message en fonction du fstat, suite à une tentative d‟écriture, réécriture, ou suppression. fstat = 1 2 3 4 5 autre
enregistrement verrouillé (lecture) clé suivante lue (lecture) clé déjà existante (écriture) début/fin de fichier (lecture) pas d‟enregistrement courant (lecture) erreur grave fstat = nnn
Copyright © Sage 2011
Page 83
SAFE X3 DEVELOPPEMENT
12.2.2.5. APRES_CRE Action lancée après la transaction de mise à jour, si la transaction s‟est déroulée avec succès. A la différence de création, si la mise à jour d‟une autre table ne fonctionne pas dans cette action, la création de l‟enregistrement dans la table principale n‟est pas annulée. Sert à : imprimer un état mettre à jour une table secondaire activer / désactiver des champs par Actzo, Diszo, Grizo
Ex. de devis: ########################################################################### # --- Impression devis client # If WSLTDOCFLG = 2 Gosub SET_CLE From GOBJSUB CLECUR = 1 Endif If WSLTDOCFLG = 2 & !GINTRA & !GIMPORT Call ETAT(WSLTDOCNAM,"GESSQH",TBPAR,TBVAL) From ETAT Endif # Actualise la liste gauche Gosub RELIT From GOBJSUB [M:SQH0]SQHNUM = [F:SQH]SQHNUM #Mise à jour du champ "Nb de devis" de la fiche Affaire. # If [M:SQH1]PJT "" If !clalev([F:OPP]) : Local File OPPOR [OPP] : CLOFLG = 1 : Endif Read [OPP] OPP0 = [M:SQH1]PJT If !fstat Call DEBTRANS From GLOCK Trbegin [OPP] [F:OPP]OPPNBQ += 1 Rewrite [OPP] If fstat : Rollback : Else : Commit : Endif Endif If CLOFLG : Close Local File [OPP] : Endif Endif ###########################################################################
Copyright © Sage 2011
Page 84
SAFE X3 DEVELOPPEMENT
12.2.2.6. AB_CREATION Action lancée en abandon de la transaction après le Rollback Sert à : déverrouiller un symbole réaffecter des variables globales
Ex. de fournisseur: ########################################################################### #-- il faut déverrouiller BPARTNER SYMBOLE2 = "BPR"+num$([M:BPS0]BPSNUM) Lock = SYMBOLE2 Unlock = SYMBOLE2 ###########################################################################
12.2.3.
Gestion simple en duplication
Modèle « objet » gestion simple : en duplication
RAZDUP
avant la saisie
VERIF_CRE
avant la transaction de mise à jour
Trbegin
INICRE CREATION
après le chargement de la classe [F] après l‟écriture de l‟enregistrement
Commit
APRES_CRE
après la transaction de mise à jour
AB_CREATION
si abandon de la transaction
Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
45
Page 85
SAFE X3 DEVELOPPEMENT
RAZDUP Action lancée en tout début de duplication avant la saisie Sert à : initialiser les variables de la classe [M] activer / désactiver des champs par Actzo, Diszo, Grizo
Nécessite : le rafraîchissement de l‟écran par Affzo il faut préciser le nom de l‟écran.
12.2.4.
Gestion simple en modification
Modèle « objet » gestion simple : en modification V I S U
LIENS
après la lecture de l‟enregistrement
AVANT_MOD
dès le début de la saisie (120)
VERIF_MOD
avant la transaction de mise à jour
AVANT_MODFIC après la lecture enreg. Avec verrouillage INIMOD
après le chargement de la classe [F]
MODIF
après la ré-écriture de l‟enregistrement
APRES_MOD
après la transaction de mise à jour
AB_MODIF
si abandon de la transaction
Copyright © Sage 2009-2010
Safe X3 Développement
46
12.2.4.1. LIENS Action lancée après la lecture de l‟enregistrement, avant l‟affichage de la classe [M] Sert à : alimenter des variables lire des tables supplémentaires alimenter des champs de la classe [M] activer / désactiver des champs par Actzo, Diszo, Grizo Attention ! Il est nécessaire de préciser le nom de l‟écran
Copyright © Sage 2011
Page 86
SAFE X3 DEVELOPPEMENT
Ex. de devis: ########################################################################### #------------------------------------------------------------# # Ré-alimentation site fin.(GFINRSP) # soc. (GSOCIETE) # dev.soc. (GLOCALDEV) # Récupération des paramètres vente du site / de la société # Ré-alimentation du cours devise dossier/devise cde # -----------------------------------------------------------# GFCY = [F:SQH]SALFCY Call GETDEV(GFCY) From DEVSUB Call GLOBVAR(GFCY) From AGLOBVEN #------------------------------# # Lecture du site d'expédition #------------------------------# If [F:FCY]FCY [F:SQH]STOFCY Read [F:FCY]FCY0 = [F:SQH]STOFCY If fstat Raz [F:FCY] : Call RSTA("FCY", [F:SQH]STOFCY) From GLOCK : Endif Endif ###########################################################################
12.2.4.2. AVANT_MOD Action lancée dès le début de la saisie, c‟est à dire dès la saisie d‟un champ qui identifie le mode saisie. Sert à : contrôler l‟autorisation de la saisie interrompre le traitement : [L]OK=0 afficher un message : GMESSAGE indiquer le type de message : GERR Ex. de devis: ########################################################################### $AVANT_MOD #-----------------------------------------# # Controle de modification d'un devis #-----------------------------------------# # --> devis non modifiable si transformé totalement en cde If [F:SQH]QUOSTA = 3 GERR=1 : GMESSAGE = mess(36,192,1) : OK=0 : Return Endif Return ###########################################################################
12.2.4.3. VERIF_MOD Action lancée après la saisie bouton « enregistrer » avant la transaction de mise à jour. Sert à : effectuer des contrôles globaux interrompre le traitement : afficher un message : Copyright © Sage 2011
[L]OK=0 GMESSAGE Page 87
SAFE X3 DEVELOPPEMENT
indiquer le type de message : GERR Positionnement du curseur (nom de champ) : zonsui Ex. de devis: idem VERIF_CRE
12.2.4.4. AVANT_MODFIC Action lancée en début de transaction mise à jour après la lecture de l‟enregistrement, [F] et non encore mise à jour, les anciennes données sont donc encore visualisable. Sert à : verrouiller des informations complémentaires mettre à jour des tables secondaires (-) interrompre la transaction : [V]GOK=0 Éviter les ouvertures de tables hors sous-programme Ex. de devis: ########################################################################### #-- Maj des statistiques Call VALSTA("SQH",-1) From SUBPS2 If GOK < 1 : Return : Endif ###########################################################################
12.2.4.5. INIMOD Action lancée après le chargement de la classe [F] Sert à : alimenter la classe [F] interrompre la transaction : [V]GOK=0 Éviter les ouvertures de tables hors sous-programme Ex. de devis: Local Integer I ########################################################################### # Alimentation des types de frais/remises et des no éléments de facturation For I = 1 To dim([F:SQH]DISCRGTYP) [F:SQH]DISCRGTYP (I-1) = GDISCRGTYP (I-1) [F:SQH]INVDTALIN (I-1) = GINVDTALIN (I-1) Next I # Alimentation du nbre de lignes [F:SQH]LINNBR = [M:SQH2]NBLIG ###########################################################################
Copyright © Sage 2011
Page 88
SAFE X3 DEVELOPPEMENT
12.2.4.6. MODIF Action lancée après la réécriture de l‟enregistrement dans la transaction de mise à jour. Sert à : créer, mettre à jour, supprimer enregistrement d‟autres tables gérer les verrouillages avec [V]GOK = -1 interrompre la transaction : [V]GOK=0
Ex. de devis: ########################################################################### #-- Maj des statistiques Call VALSTA("SQH",1) From SUBPS2 If GOK < 1 : Return : Endif ###########################################################################
12.2.4.7. APRES_MOD Action lancée après la transaction de mise à jour, si la transaction s‟est déroulée avec succès Sert à : impression d‟un état griser dégriser des zones de l‟écran mettre à jour une table secondaire Ex. de devis: ########################################################################### $APRES_MOD Local Char TBPAR(10)(1..50),TBVAL(30)(1..50) #-----------------------------------------------# # Impression devis client #-----------------------------------------------# If WSLTDOCFLG=2 & [F:SQH]QUOPRN2 Gosub SET_CLE From GOBJSUB CLECUR = 1 Endif If WSLTDOCFLG=2 & [F:SQH]QUOPRN2 & !GINTRA & !GIMPORT Call ETAT(WSLTDOCNAM,"GESSQH",TBPAR,TBVAL) From ETAT Endif # Maintenant, on fait toujours un gosub RELIT Gosub RELIT From GOBJSUB [M:SQH0]SQHNUM = [F:SQH]SQHNUM ###########################################################################
12.2.4.8. AB_MODIF Action lancée en abandon de la transaction après le Rollback. Sert à : déverrouiller un symbole réaffecter des variables globales
Copyright © Sage 2011
Page 89
SAFE X3 DEVELOPPEMENT
12.2.5.
Gestion simple en suppression
Modèle « objet » gestion simple : en suppression V I S U
VERF_ANU
avant la transaction de suppression
Trbegin
ANNULE
avant la suppression de l‟enregistrement
commit
AP_ANNULE
Copyright © Sage 2009-2010
après la transaction de suppression
Safe X3 Développement
47
12.2.5.1. VERF_ANU Action lancée dès l‟activation du bouton supprimer, après les contrôles du dictionnaire, avant la transaction de suppression. Sert à : contrôler l‟autorisation de la suppression interrompre le traitement par [L]OK=0 afficher un message : GMESSAGE indiquer le type de message : GERR
Ex. de devis: ########################################################################### # --> devis non supprimable si transformé totalement ou partiel. en cde If [F:SQH]QUOSTA 1 GERR=1:GMESSAGE=mess(37,192,1):OK=0 Return Endif ###########################################################################
Copyright © Sage 2011
Page 90
SAFE X3 DEVELOPPEMENT
12.2.5.2. ANNULE Action lancée avant la suppression de l‟enregistrement, dans la transaction de mise à jour. Sert à : créer, mettre à jour, supprimer enregistrement d‟autres tables gérer les verrouillages avec [V]GOK = -1 interrompre la transaction : [V]GOK=0 éviter les ouvertures de tables hors sous-programme Ex. de devis: ########################################################################### #-- suppression des textes associés WNUMTEX = [M:SQH0]SQHTEX1 If WNUMTEX "" WRETOUR = 0 Call TEX(5,"SQH1","","","",WNUMTEX,"A",WRETOUR) From TRTX3TEX Endif WNUMTEX = [M:SQH0]SQHTEX2 If WNUMTEX "" WRETOUR = 0 Call TEX(5,"SQH2","","","",WNUMTEX,"A",WRETOUR) From TRTX3TEX Endif #-- Maj des statistiques Call VALSTA("SQH",-1) From SUBPS2 If GOK < 1 : Return : Endif ###########################################################################
12.2.5.3. AP_ANNULE Action lancée après la transaction de suppression si la transaction s‟est déroulée avec succès Sert à : Mettre à jour une table secondaire
Copyright © Sage 2011
Page 91
SAFE X3 DEVELOPPEMENT
GESTION TABLE D’ENTETE PLUS TABLE DE DETAIL
12.3. 12.3.1.
Principe
Gestion table entête + table détail La gestion du modèle objet ne gère par défaut qu‟une seule table, la table liée à l‟objet. Or il est souvent nécessaire de gérer sur un même objet un entête et des lignes détail. Pour permettre cette gestion un traitement standard (TABLEAUX) est disponible. L‟objectif est de créer, afficher, modifier et supprimer un objet avec ses lignes de détail. Par exemple pour la gestion des devis : Objet SQH, table entête SQUOTE table détail SQUOTED.
12.3.2.
Utilisation
L‟appel de ce traitement TABLEAUX permet la gestion de la table de détail. Les différentes actions à appeler du traitement sont énumérées ici.
12.3.3.
Gestion détail en création
Modèle « objet » gestion détails : en création Transaction sur table principale de l‟objet Trbegin
INICRE CREATION
gosub
CREATION
From TABLEAUX
Commit
INICRE_LIG
après l‟écriture de l‟enregistrement entête après le chargement de la classe [F] détail avant l‟écriture de l‟enregistrement détail sert à compléter la classe [F] détail
VALLIG
appelée après l‟écriture sert à traiter d‟autres tables liées au détail TRTLIG = C SIGN = +1 GERR GMESSAGE GOK
Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
48
Page 92
SAFE X3 DEVELOPPEMENT
L‟exécution des actions se fait dans l‟ordre suivant : CREATION DEFLIG INICRE_LIG VALLIG
exécuté 1 seule fois `` pour chaque ligne détail
VALLIG : Pour chaque ligne détail traitée, le superviseur nous envoie le contexte : TRTLIG = C, M, A ( création, modification, annulation ) SIGN = +1 ( pour création et modif après le rewrite ) -1 ( pour annulation et modif avant le rewrite ) Les lignes non modifiées ne sont pas traitées.
12.3.4.
Gestion détail en modification
Modèle « objet » gestion détails : en modification
V I S LIENS U
LIENS_LIG
Copyright © Sage 2009-2010
Copyright © Sage 2011
gosub LIENS
From TABLEAUX
après le chargement de la classe [M] détail avant l‟affichage sert : compléter la classe [M] détail Safe X3 Développement
49
Page 93
SAFE X3 DEVELOPPEMENT
L‟exécution des actions se fait dans l‟ordre suivant : LIENS DEFLIG LIENS_LIG
exécuté 1 seule fois `` pour chaque ligne détail
LIENS_LIG NOL = nolign-1
########################################################################### # --- Chargement de la quantité pour calcul de qté en nomenclature [M]CQTY(NOL) = [M]QTY(NOL) # --- Lecture article pour charger le flag mise à jour stock If [F:ITM]ITMREF [F:SQD]ITMREF Read [F:ITM]ITM0 = [F:SQD]ITMREF If fstat Raz [F:ITM] : Call RSTA ("ITM",[F:SQD]ITMREF) From GLOCK Endif Endif [M:SQH2]STOMGTCOD(NOL) = [F:ITM]STOMGTCOD ###########################################################################
Modèle « objet » gestion détails : en modification Trbegin
AVANT_MODFIC INIMOD MODIF
gosub
MODIF
From TABLEAUX
Commit
INICRE_LIG INIMOD_LIG
VALLIG Copyright © Sage 2009-2010
Copyright © Sage 2011
après ré-écriture enregistrement entête après le chargement de la classe [F] détail avant ré-écriture enregistrement détail sert : compléter la classe [F] détail appelée après la ré-écriture sert : traiter une autre table liée au détail Safe X3 Développement
50
Page 94
SAFE X3 DEVELOPPEMENT
L‟exécution des actions se fait dans l‟ordre suivant : MODIF DEFLIG INICRE_LIG VALLIG
exécuté 1 seule fois `` pour chaque création ligne détail
INIMOD_LIG VALLIG VALLIG
``
VALLIG
``
pour chaque modification ligne détail avant la réécriture après la réécriture
pour chaque suppression ligne détail
Modèle « objet » gestion détails : en suppression
Trbegin
ANNULE
gosub ANNULE
From TABLEAUX
Commit
VALLIG
appelée après la suppression du détail sert : traiter une autre table liée au détail
Safe X3 Développement
Copyright © Sage 2009-2010
51
L‟exécution des actions se fait dans l‟ordre suivant : ANNULE DEFLIG VALLIG
Copyright © Sage 2011
``
exécuté 1 seule fois pour chaque ligne détail
Page 95
SAFE X3 DEVELOPPEMENT
12.3.5.
Définition des paramètres
12.3.5.1. DEFLIG Action appelée avant les actions sur table détail par le traitement TABLEAUX lui-même Sert à Positionner des variables nécessaires au traitement TABLEAUX Exemple des devis : ########################################################################### $DEFLIG Default Mask [SQH2] Default File [SQD] CRIT = 'SQHNUM="'+[M:SQH0]SQHNUM+'"' FICLIG = "SQUOTED" : ABLIG = "SQD" ZONLIG = "SQDLIN" Return ########################################################################## DEFLIG $DEFLIG # Critère de lecture (CRIT) # Nom du fichier (FICLIG) # Abréviation du fichier (ABLIG) # Zone numéro de ligne (ZONLIG) #----------------------------------#
12.3.5.2. Champs nécessaires à déclarer dans l‟écran gestion détails : champs nécessaires à déclarer dans l‟écran Exemple écran SOH4 NBLIG
(nom fixe) variable de bas de tableau
UPDFLG
(nom fixe) flag identifiant une ligne modifiée, champ invisible
CREFLG
(nom fixe) flag identifiant une ligne créée, champ invisible
SQDLIN
nom du champ de la table détail contenant le no de ligne, champ invisible
Contrôle : contrôle possibilité d‟insertion ligne à positionner sur la variable de bas de tableau DIVLINCONT avec paramètre = nom champ du no ligne Après-ligne : attribution du no de ligne (de 1000 en 1000) à positionner sur la variable de bas de tableau DIVLINNUM avec paramètre = nom champ du no ligne
Copyright © Sage 2011
Page 96
SAFE X3 DEVELOPPEMENT
12.3.5.3. Variables utilisables Variable [V]GOK à positionner dans les actions appelées durant une transaction. [V]GOK = -1 Verrouillage d‟information par un autre poste. Abandon de la transaction puis nouvelle tentative [V]GOK = 0
(Abandon de la transaction)
[V]GOK = 1
(tout est OK)
Verrouillage d‟informations : Abandon de la transaction par l‟instruction Rollback Nouvelle tentative (jusqu‟à concurrence d‟un nombre de tentatives défini par la variable GROLLBACK) Variable [L]OK À positionner dans certaines actions appelées hors d‟une transaction (ex : VERIF_CRE). [L]OK = 1
(tout est OK)
[L]OK = 0
(réaction différente en fonction des actions)
Ex : OK = 0 dans VERIF_CRE : Abandon de la création Ex : OK = 0 dans AV_LISTE & AV_IMPRIME : pas de déclenchement de l‟impression.
Copyright © Sage 2011
Page 97
SAFE X3 DEVELOPPEMENT
12.4. 12.4.1.
EXERCICE : GESTION DES COMMANDES (GESTION ENTETE - DETAIL) Objectif
Développer une gestion des commandes en ajoutant du spécifique au standard. Un traitement standard SUBYOX a été créé pour la gestion entête détail. Cette gestion s‟appuiera sur votre gestion article YIX et gestion client YCX.
12.4.2.
Marche à suivre
Modification des tables YORDHEAX et YORDDETX. Création des écrans YOX0, YOX1, YOX2. Création de l‟objet YOX.
Pour ce faire, utiliser les descriptions ci-dessous.
Table des entêtes de commande Code table : Abréviation : Module :
YORDHEAX YHX Tronc commun
Zone
Type de la zone
Dim.
Particul.
Intitulé
YORDNUM
Alphanumérique
15
1
oui
No commande
YFCY
Alphanumérique
3
1
Site
YBPCNUM
Alphanumérique
10
1
Client
YORDDAT
Date
1
Date
YBPALIG
Alphanumérique
35
3
Ligne adresse
YPOSCOD
Alphanumérique
10
1
Code postal
YCTY
Alphanumérique
30
1
Ville
YORDTOTNOT
Décimal
13.2
1
En commande HT
YORDTOTATI
Décimal
13.2
1
En commande
YHXSTA
Menu local
1
Soldée
YDLVDAT
Date
1
Date livraison demandée
YSHIDAT
Date
1
Date expédition
YMDL
Alphanumérique
3
1
Mode livraison
YBPTNUM
Alphanumérique
10
1
Transporteur
EXPNUM
Entier long
8
1
Numéro export
CREUSR
Alphanumérique
5
1
Opérateur création
CREDAT
Date
1
Date création
UPDUSR
Alphanumérique
1
Opérateur modif
UPDDAT
Date
1
Date modif
Index
Descripteur de l‟index
Homonymes
YHX0
YORDNUM
Non
Copyright © Sage 2011
1
5
Page 98
SAFE X3 DEVELOPPEMENT
YORDNUM : Type de donnée VCR. Type de donnée VCR : Type de donnée utilisé pour les compteurs de document. Voir ces caractéristiques : Longueur banalisée de 17 caractères. Option d‟affichage M. Conversion automatique des lettres en majuscules.
Table des détails de commande Code table : Abréviation : Module :
YORDDETX YDX Tronc commun
Zone
Type de la zone
YORDNUM
Alphanumérique
15
Dim. 1
YORDLIN
Entier long
8
1
No ligne
YITMREF
Alphanumérique
20
1
Article
YUOM
Alphanumérique
3
1
Unité
YQTY
Décimal
9.2
1
Quantité
YVATRAT
Décimal
3.2
1
Taux Taxe
YORDNOT
Décimal
13.2
1
Prix unitaire HT
YORDATI
Décimal
13.2
1
Prix unitaire TTC
YDXSTA
Menu local
1
Soldée
EXPNUM
Entier long
8
1
Numéro export
CREUSR
Alphanumérique
5
1
Opérateur création
CREDAT
Date
1
Date création
UPDUSR
Alphanumérique
1
Opérateur modif.
UPDDAT
Date
1
Date modif
Index
Descripteur de l‟index
Homonymes
YDX0
YORDNUM+YORDLIN
Non
1
5
Particul. oui
Intitulé No commande
YORDNUM : Type de donnée VCR. Pour activer les automatismes de la sélection et du tunnel sur objet, pour les champs liés à ce type de donnée. Paramétrer le code de l‟objet dans le paramètre VCROBJ.
Copyright © Sage 2011
Page 99
SAFE X3 DEVELOPPEMENT
Ecrans des Commandes Ecran d‟entête « identification »
Code écran : Abréviation : Traitements associés :
Champ
Saisie
YORDNUM
S
YOX0 YOX0 SUBYOX SPEYOX
Oblig.
standard spécifique
Particularités
Dévelop.
Type de donnée lié au compteur VCR Alimenter le numéro de commande à la création
Oui
Paramétrer le type VCR pour que l‟utilisateur puisse sélectionner les commandes sur clique droit du champ
YHXSTA
(Saisie :
S
Non saisissable en Création
Oui
Contrôler que la valeur saisie corresponde bien à une commande existante. Vous remarquerez que, de ce fait, on interdit la duplication.
Oui
Case à cocher
S Saisie / A Affiché / I Invisible)
Remarque : Pour la mise en place des traitements liés au compteur, une aide est disponible au chapitre 12.4.4 Informations techniques et au chapitre Affecter un numéro de commande.
Copyright © Sage 2011
Page 100
SAFE X3 DEVELOPPEMENT
Affecter un numéro de commande Créer un compteur YOX par la fonction Paramétrage>Paramètres généraux>Compteurs avec les caractéristiques suivantes : Niveau de définition : Site Niveau raz : Mensuel Type séquence : Normal Construction du compteur : Constante CDE Mois Année Site Séquence
3 caractères 2 caractères 2 caractères 5 caractères 5 caractères
Sous-programme à utiliser NUMERO From SUBANM. Les paramètres sont : Value char CODE_COMPTEUR Value char SITE Value date DATE Value char COMPLEMENT Variable char VALEUR_COMPTEUR Variable integer STATUT Les 2 variables retournées au sous-programme sont : Variable char VALEUR_COMPTEUR (valeur pour no de la commande) Variable integer STATUT (Si aucune erreur, STATUT=0)
Changer les caractéristiques du numéro de commande En création, ce champ est non saisissable. Affecter un numéro de commande et l‟afficher. Dans les autres cas, on interdit une valeur ne correspondant pas à une commande déjà existante. On interdit ainsi la duplication.
Copyright © Sage 2011
Page 101
SAFE X3 DEVELOPPEMENT
Onglet 1 « général »
Code écran : Abréviation : Traitements associés :
YOX1 YOX1 SUBYOX SPEYOX
Champ
Saisie
Oblig.
YFCY
S
Oui
standard spécifique
Particularités
Dévelop.
Contrôle / Sélection / Tunnel sur les sites standards Affichage du libellé court Saisissable uniquement en création
YBPCNUM
S
Oui
Oui
Contrôle / Sélection / Tunnel sur vos clients Affichage du libellé long Filtre pour sélection des clients non prospect
YORDDAT
S
Initialisation par la date du jour en création
Oui
YBPALIG
S
Alimenté par le client
Oui
YPOSCOD
S
Alimenté par le client
Oui
S
Alimenté par le client
Oui
YCTY
(Saisie :
Oui
S Saisie / A Affiché / I Invisible)
Copyright © Sage 2011
Page 102
SAFE X3 DEVELOPPEMENT
Onglet 2 « lignes »
Code écran : Abréviation : Traitements associés :
Champ
YOX2 YOX2 SUBYOX standard SPEYOX spécifique
Saisie
Oblig.
Particularités
YITMREF
S
Oui
Contrôle / Sélection / Tunnel sur vos articles
YUOM
S
Oui
Contrôle / Sélection / Tunnel sur les unités standard Alimenté par l‟article
Dévelop.
Oui
YQTY
S
Oui
Positif
YORDNOT
S
Oui
Alimenté par l‟article
Oui
YVATRAT
S
Alimenté par l‟article
Oui
Positif YORDATI
A
Calculer à partir du prix HT et la TVA
Oui
YORDTOTNOT
A
Cumul des lignes ( HT * QTE ) attention cette information ne doit pas faire partie du tableau
Oui
YORDTOTATI
A
Cumul des lignes ( TTC * QTE ) attention cette information ne doit pas faire partie du tableau
Oui
(Saisie :
S Saisie / A Affiché / I Invisible)
Objet des commandes Code objet
:
YOX
Fenêtre des commandes Code fenêtre
:
Copyright © Sage 2011
OYOX
Page 103
SAFE X3 DEVELOPPEMENT
12.4.3.
Spécifique à développer
Contrôler en fin de saisie qu‟au moins une ligne ait été renseignée. Ajouter le champ « raison sociale » du client (paramétrage)
12.4.4.
Informations techniques
La date du jour : Numéro de ligne courante Statut retour après opération sur table
variable système date$ variable système nolign-1 variable système fstat
Déclaration d‟une variable caractère : Déclaration d‟une variable numérique :
Local char nom_var Local integer nom_var
Ouverture d‟une table :
Local File table [abrev]
Lecture : Lecture lockée : Lecture sans récupération enregistrement : Mise à jour d‟un enregistrement :
Read [abrev] index = champ Readlock [abrev] index = champ Look [abrev] index = champ Rewrite [abrev]
Augmentation de la valeur d‟un champ : champ += nombre Diminution de la valeur d‟un champ : champ -= nombre Alimentation d‟un champ écran à partir de celui d‟une table : [M:abrev]champ_ecr = [F: abrev]champ_tab [M: abrev]champ_ecr(0) = [F: abrev]champ_tab(0) [M: abrev]champ_ecr(1) = [F: abrev]champ_tab(1)
12.4.5.
pour un champ dimensionné
A vérifier
Création, duplication, modification, suppression de commandes Site non saisissable en modification Tunnel vers la gestion client et la gestion article. Initialisation de champs par le client et l‟article En gestion Client : suppression non autorisée d‟un client qui a passé une commande En gestion Article : suppression non autorisée d‟un article commandé Initialisation de la date par la date du jour Client prospect interdit Article non actif interdit Format de la date de commande Suppression de ligne détail commande En création de commande, affectation automatique d‟un numéro de commande Calcul du TTC de chaque ligne Calcul des totaux HT et TTC
Copyright © Sage 2011
Page 104
SAFE X3 DEVELOPPEMENT
Mettre à jour la table client YCUSTOMX. Lors de la création, modification ou suppression d‟une commande, mettre à jour la fiche du client par : le montant HT et TTC ainsi que la date de dernière commande.
A vérifier Mise à jour de la table client.
Notes
Copyright © Sage 2011
Page 105
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 106
SAFE X3 DEVELOPPEMENT
12.5.
GESTION DES BOUTONS/MENUS Les Boutons / Menus
Les boutons menus et bas d‟écrans spécifiques sont à déclarer dans la fenêtre onglet « Boutons/menus ». Un sous-menu est rattaché à son menu d‟origine par la première lettre de son code menu. Un menu peut déclencher les actions sur champ de type contrôle de la fenêtre si celui-ci est validant. Dans cette fenêtre on peut affecter un titre aux menus, affecter l‟action à exécuter, ajouter un code activité s‟il s‟agit d‟un menu spécifique. 12.5.1.
Action sur modèle objet
Modèle « objet » Gestion des boutons SETBOUT
Désactivation des boutons
Utiliser le sous-pro VIREBOUT pour enlever le code bouton(s) de la variable CHAINE
AVANTBOUT
Avant l‟exécution du bouton
le code bouton est disponible dans la variable BOUT
Action Action Dico Dico déclaré déclaré dans dans la la fenêtre fenêtre
EXEBOUT
Après l ‟exécution du bouton
le code bouton est disponible dans la variable BOUT
Copyright © Sage 2009-2010
Safe X3 Développement
53
SETBOUT Par défaut les boutons sont tous activés. # Suppression du bouton supprimer si devis partiellement ou totalement cde ########################################################################### If !CLECUR | [M]QUOSTA 1 Call VIREBOUT(CHAINE,"A") From GOBJET Endif ########################################################################### AVANTBOUT ########################################################################### Case BOUT When "A" : # Contrôle des autorisations Copyright © Sage 2011
Page 107
SAFE X3 DEVELOPPEMENT
GBIDC2= "A": Gosub AUTORIS_OPT From CONTX3 If !GBIDI2 : GERR = 1 : GMESSAGE = mess(2,104,1) : Return : Endif …. Endcase EXEBOUT ########################################################################### Case BOUT When "a" : GFONC1=WFONC1 : # Proforma Gosub RELIT From GOBJSUB # Permet d‟actualiser le browser courant Endcase ########################################################################### Le code bouton doit être différent de ceux possibles pour les boutons prédéfinis. Les codes standards étant soit des numériques soit des lettres majuscules, les code boutons spécifiques doivent donc être des lettres minuscules.
Modèle « objet » Gestion des menus
SETBOUT
Activation des lignes de menu CHMEN += « code(s) ligne de menu » Gosub SET_BOUT_SPE From GSAISIE
AVANTBOUT
Avant l‟exécution du menu le code menu est disponible dans la variable BOUT
Action Action dico dico déclarée déclarée dans dans la la fenêtre fenêtre
STATUT Copyright © Sage 2009-2010
Après l ‟exécution du menu le code menu est disponible dans la variable BOUT Safe X3 Développement
54
SETBOUT Par défaut les menus sont actifs mais les lignes ne le sont pas. ########################################################################### : # activation des lignes menu précisées CHMEN += "b" Gosub SET_BOUT_SPE From GSAISIE AVANTBOUT Case BOUT When "i" : [M]CNTNAM=[M:ADB2]CNTNAM Copyright © Sage 2011
: # Adresse livraison Page 108
SAFE X3 DEVELOPPEMENT
Endcase ########################################################################### STATUT ########################################################################### Case BOUT When "i" : If [M:ADB2]ADBFLG = 2 | [M]CNTNAM [M:ADB2]CNTNAM : # Adresse client livré If GREP "C" & GREP "M" & GREP "D" Gosub MAJADRESSE From SUBSQHB Endif If [M:ADB2]BPRNAM(0) "" [M:SQH1]BPDNAM = [M:ADB2]BPRNAM(0) Affzo [M:SQH1]BPDNAM Endif Endif Endcase ###########################################################################
12.5.2.
Après bouton / menus / liste gauche
FIN_ACTION Action lancée après activation (click) d‟un bouton, d‟un menu ou d‟une liste gauche Est surtout utilisée pour l‟activation du bouton « Enregistrer » REP= « M »
Exemple : $FIN_ACTION Case BOUT When "a" If mkstat=4 & GREP="" REP=”M” Endif Endcase Return Dans l‟exemple "a" est le code bouton ou menu mkstat=4 n'est qu'un exemple. Le but est de tester la variable positionnée dans l'action appelée du bouton / menu, qui indique que le contexte de mise à jour est à déclencher. Il est tout à fait possible de passer par une variable globale.
12.6. 12.6.1.
LES BROWSERS Présentation
Listes gauche d‟un objet, celles-ci peuvent être filtrées, triées de différentes manières par traitements. Il est aussi possible d‟ajouter une liste gauche par l‟intermédiaire d‟objet de type browser. Exemple objet SQ1 ajouté dans la liste gauche de la fenêtre OSOH. Cette liste peut être de type simple hiérarchisé ou picking. Copyright © Sage 2011
Page 109
SAFE X3 DEVELOPPEMENT
Normalisation des browsers : 2 premiers caractères de l‟objet 1 numéro de 1 à 9 Liste simple 25 colonnes max. Clé doit être sans homonymes Champ table secondaire autorisé si expression de lien Liste hiérarchisée 16 niveaux hiérarchiques max. Nb champs de clé constituent le nb de niveaux hiérarchiques Il faut donc définir des niveaux hiérarchiques ( >= nb champs clé ) Si nb de niveaux hiérarchiques > nb champs clé, il y a une concaténation sur le dernier niveau Champ table secondaire autorisé si expression de lien
12.6.2.
Types de browser
Liste gauche principale liste simple ou hiérarchisée ( picking possible ) présente si code objet dans l‟onglet browser (fenêtre) par usage, affichée par défaut Liste des derniers lus liste simple présente si case cochée par usage, affichée Listes gauches secondaires liste ou picking, simple ou hiérarchisée nécessite le paramétrage d‟un objet de type browser doit être placé dans l‟onglet browser (fenêtre)
Nommage superviseur CLE_GAUCHE liste principale (GAU_CHE) CLE_GAUCHE1 à 8 liste secondaire CLE_GAUCHE9 liste derniers lus Tester [S]currbox Automatismes du superviseur Remplissage : non, total, partiel Partiel sur le browser principal En fonction du paramètre CHDERLUS, sur les derniers lus Chargement partie droite : oui, non oui sur browser principal et derniers lus Contraintes On ne peut pas griser ou supprimer un browser ( solution : le laisser vide ) On ne peut pas changer l‟ordre des browsers
Copyright © Sage 2011
Page 110
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 111
SAFE X3 DEVELOPPEMENT
12.6.3.
Actions sur modèles
Modèle « objet » Les Browsers OUVRE_BOITE
Stocker le nom des browser
FILTRE
Filtrer les enregistrements liste principale et derniers lus
FILGAUCHE
Filtrer les enregistrements liste principale et secondaires
CLE_GAUCHE
Pour modifier la clé de tri liste simple et picking simple
[S]currbox : variable système indiquant le browser courant
Copyright © Sage 2009-2010
Safe X3 Développement
55
OUVRE_BOITE : $OUVRE_BOITE # Construction du nom des tiroirs comporté ensuite à currbox Global Char GBOXSQ1(10) GBOXSQ1 = "GAU_CHE"+num$(find("SQ1",OBJLIS(1..10))) Return FILTRE : FILTSUP += « » pour le standard CRITERE += « » pour le spécifique FILGAUCHE : FILGAUCHE(0..1) += « » pour le standard pour liste principale & derniers lus FILGAUSUP(0..1) += « » pour le standard pour liste secondaire CRITERE += « & » pour le spécifique pour liste principale & derniers lus FILGAUSUP(2) += « » pour le spécifique pour liste secondaire Remarque : Pensez à tester le contenu des variables avant leur utilisation. CLE_GAUCHE : SNSLIS 1=ascendant, 2=descendant LENLIS nombre d‟éléments dans la clé CLELISTE chaîne de 250 caractères. Liste champs composant la clé séparés par ;
Copyright © Sage 2011
Page 112
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 113
SAFE X3 DEVELOPPEMENT
Modèle « objet » Les Browsers – sélection sur picking
DEB_PICK
début de sélection d‟un groupe
PICKE
après la sélection de chaque élément
DEPICK
après la dé-sélection de chaque élément
FIN_PICK
fin de sélection d‟un groupe
Copyright © Sage 2009-2010
Safe X3 Développement
56
Pour toutes les actions : OK = 0 pour interdire la sélection ou désélection. PICKE : Permet d‟écrire l‟alimentation de la partie droite, pour un élément sélectionné. DEPICK : Permet d‟écrire l‟alimentation de la partie droite, pour un élément désélectionné.
Copyright © Sage 2011
Page 114
SAFE X3 DEVELOPPEMENT
13. ACTIONS 13.1.
DEFINITION
L‟action permet : De cataloguer des traitements D‟identifier le modèle superviseur utilisé Le passage de paramètres L‟action est obligatoire s‟il y a ouverture d‟une fenêtre, pour que le traitement superviseur puisse appeler le modèle à utiliser.
Actions Table
Types de donnée M. Locaux T. Diverses Codes activités
Objet
Fenêtre
Action
Écrans
Traitement standard Traitement vertical Traitement spécifique
Types de donnée M. Locaux T. Diverses Codes activités Traitement standard Traitement vertical Traitement spécifique
Fonction
Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
58
Page 115
SAFE X3 DEVELOPPEMENT
Actions
Action Action
FONCTION FONCTION Menu MenuX3 X3
Fenêtre Fenêtre Écrans
FENETRE FENETRE
Objets browser
Traitement standard ++ Boutons / /Menus Traitement Boutonsvertical Menus Traitement spécifique
bouton bouton/ /menu menu
ECRAN ECRAN champ champ TYPE TYPE DONNEE DONNEE
Copyright © Sage 2009-2010
Safe X3 Développement
59
Exemple d‟une action appelée D‟une fonction : GOBJET pour tous les objets X3 D‟un menu : ACLOB sur la fenêtre OSOH, permet l‟appel de la fenêtre d‟enregistrement des clob. D‟une action sur champ : CONTOBJW, permet d‟inhiber le contrôle d‟existence. D‟un type de donnée : ATEXTRA, permet de lancer la traduction en ligne pour les types de données AXX.
13.2.
INFORMATIONS GENERALES
Toutes les actions sont stockées dans le dictionnaire des actions : « Développement>Dictionnaire traitements>Actions>Actions » Modèle : Il s‟agit du traitement modèle superviseur à lancer, par exemple le modèle objet. Type : Nouveau champ V6, dans le but d'une meilleure recherche et ré-utilisabilité Permet de classer les sous-programmes et actions afin d'en faciliter la recherche, et ce, dans le but d‟une meilleure ré-utilisabilité. Les actions et sous-programmes sont à classer en fonction de leur objectif : Contrôle Saisie Sélection Mise à jour Copyright © Sage 2011
Page 116
SAFE X3 DEVELOPPEMENT
Xsl (traitement lié au composant écran) Retour d'un statut Recherche d'information Calcul Divers Traitement : En cas de modèle, ce traitement contient les actions écrites autour de ce modèle. S‟il n‟y a pas de modèle, c‟est le traitement à exécuter directement. Instruction Adonix sur traitement divers uniquement %1, %2, … désigne la valeur du paramètre1 et du paramètre2. Exemple : Affzone Action suite : Lorsque l‟action principale est terminée, l‟action suite est déclenchée. ( 5 enchaînements maxi.) Sur l‟écran, la fenêtre, ou la fonction, la saisie des paramètres cumule les paramètres de l‟action suite à ceux de l‟action principale.
13.3.
RENSEIGNEMENT DES PARAMETRES
Permet de définir tous les paramètres à passer pour l‟action. Champ « Zone courante » : er Si flag positionné, le 1 paramètre récupère automatiquement la valeur du champ courant. Intéressant pour une action sur champ. Champ « Action avant zone » : Appelée d‟un bouton champ, elle permet de prendre la main avant et après l‟action. Paramètre par valeur : sauvegarde puis restauration du paramètre pour garder sa valeur. L‟argument est soit une constante, soit une variable. Paramètre par adresse : modification du paramètre acceptée au retour du sous-programme. L‟argument est obligatoirement une variable. Action avant zone : Appelée d‟un bouton champ Permet de prendre la main avant et après l‟action au niveau du programme appelant (trait. associé à l‟écran) dans l‟étiquette $ACTION. La variable ACTION a les valeurs ABi_zone action avant Bi_zone BBi_zone action après Bi_zone « i » correspond au numéro du bouton (de 1 à 20), zone au nom du champ Permet de positionner des variables globales (ex : GCONSULT) Attention au contexte d‟appel ! modèle appelant si action bouton /menu traitement généré écran si action champ
13.3.1.
Variable de l‟action
Sur un modèle : Variable [L]PARAM()(1..) Contient la valeur des paramètres de l‟action dictionnaire. Si zone courante est à non Copyright © Sage 2011
PARAM(1) = valeur 1er param. Page 117
SAFE X3 DEVELOPPEMENT
PARAM(2) = valeur 2ème param. ... Si zone courante est à oui
VALEUR = valeur 1er param. PARAM(1) = valeur 2ème param.
V5 : Les paramètres sont des variables alphanumériques Utiliser la fonction val qui transforme une chaîne de caractères en nombre Ex : VARNUM = val(PARAM(1)) V6 : Les paramètres peuvent être saisies dans le dictionnaire « Développement>Dictionnaire traitements>Actions>Paramètres Actions » et de tout type.
Copyright © Sage 2011
Page 118
SAFE X3 DEVELOPPEMENT
13.3.2. Liste des actions
standards principales pour le modèle objet
Appel d‟une gestion objet : GOBJET GOBJETA GOBJETC GOBJETN
avec zone courante avec zone courante possibilité d‟ajout de développement à l‟appel de la fonction objet sans zone courante champ clé numérique
Contrôle particulier sur champ clé lié à objet : CONTOBJW CONTOBJN
évite le contrôle d‟existence, valeur obligatoire évite le contrôle d‟existence, valeur facultative
Sélection enregistrement d‟une table gérée par objet : SELOBJW SELOBJAW
sélection avec possibilité d‟appliquer les filtres de sélection. sélection avancée avec possibilité d‟appliquer les filtres de sélection.
Action GOBJETA Possibilité de restreindre l‟accès à la gestion objet en positionnant la variable [V]GCONSULT Variable [V]GCONSULT Les valeurs possibles sont les suivantes : 0 : modification possible 1 : modification impossible, accès à tous les enregistrements 2 : modification impossible, accès à un seul enregistrement 0 est la valeur par défaut.
Copyright © Sage 2011
Page 119
SAFE X3 DEVELOPPEMENT
14. MODELE « SAISIE FENETRE » 14.1.
DEFINITION
Ce modèle permet : la saisie d‟informations complémentaires liées à une fenêtre de gestion objet la saisie d‟une fenêtre de critères A l‟inverse du modèle objet, aucun automatisme lié à l‟affichage ou à la sauvegarde des données n‟est exécuté, ceux-ci devront être renseignés dans les traitements si besoin est. Ce modèle se lance : d‟une fonction, bouton/menu fenêtre, bouton champ. Exemple dans la fenêtre des livraisons « Ventes>Livraisons>Livraisons » menus fenêtre « Options>Informations douanières ».
14.2.
PARAMETRAGE DE L’ACTION Action de lancement du modèle « Saisie fenêtre » Action de type saisie fenêtre. Fenêtre principale : la fenêtre lancée lors de l‟appel de l‟action. Traitement standard/spécifique. Action suite : permet de lancer une action à la suite de celle-ci.
Fenêtre lancée « Saisie fenêtre » Type fenêtre : Divers Affichage : – Boite de dialogue (fenêtre indépendante pas forcément pleine page) – Plein écran – Boite message (aucun bouton, menu, browser)
La fenêtre peut contenir boutons, menus, listes gauches, onglets, contrairement à GOBJET, aucune action standard n‟est déclenchée sur les boutons sauf pour : impression, liste, pièce jointe, commentaires, propriétés, fin. La fenêtre se lance d‟une fonction, bouton/menu fenêtre, bouton champ Le traitement lancé est GSAISIE
Copyright © Sage 2011
Page 120
SAFE X3 DEVELOPPEMENT
14.3.
ACTIONS SUR MODELE
Saisie Fenêtre
OUVRE TITRE
début traitement avant l‟ouverture de la fenêtre
DEBUT
avant la saisie de la fenêtre
APRES_MODIF après la modification de chaque champ
FIN FINSAI
après la saisie de la fenêtre fin de traitement
ABANDON
en cas d‟abandon
Copyright © Sage 2009-2010
14.3.1.
Safe X3 Développement
61
OUVRE
Action lancée en tout début de traitement avant l‟ouverture du masque Sert à : déclarer, alimenter des variables locales, globales ouvrir des tables afficher un message d‟erreur : GERR = 1 GMESSAGE = « mess » interrompre le traitement : FIN = 1 sauvegarder la variable nolign : SVNOLIGN=Nolign
14.3.2.
TITRE
Action lancée avant l‟ouverture de la fenêtre Sert à : Sert à modifier le titre de la fenêtre : TIT Titre de la fenêtre Par défaut, il est alimenté par la désignation de la fenêtre stockée dans le dico des fenêtres.
Copyright © Sage 2011
Page 121
SAFE X3 DEVELOPPEMENT
14.3.3.
DEBUT
Action lancée avant la saisie de la fenêtre Sert à : pré-charger l‟écran, avec nécessité de faire l‟Affzo afficher un message d‟erreur : GERR = 1 GMESSAGE = « mess » interrompre le traitement : FIN = 1
14.3.4.
APRES_MODIF
Action lancée après la saisie de tout champ Sert à : activation boutons ENREGISTRER et ABANDON :
REP= « M »
Saisie Fenêtre Saisie fenêtre : Action événementielle APRES_MODIF AV_zone AV_zone D_zone D_zone AS_zone AS_zone C_zone C_zone AP_zone AP_zone AM_zone AM_zone [L]ACTION [L]ACTION=="APRES_MODIF" "APRES_MODIF" Gosub GosubACTION ACTION
cinématique sur champ
traitement SUBxxx ou SPExxx
$ACTION $ACTION Case Case[L]ACTION [L]ACTION When When"APRES_MODIF" "APRES_MODIF": :Gosub GosubAPRES_MODIF APRES_MODIF When default When default Endcase Endcase Return Return $$APRES_MODIF APRES_MODIF
REP= REP=««MM»» return return Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
62
Page 122
SAFE X3 DEVELOPPEMENT
se déclenche pour tout champ modifié après l‟action sur champ AM_zone, avant la mise à jour de la classe [M]. se déclenche dans $ACTION du traitement SUBxxx ou SPExxx par GOSUB variables système utilisables : nom du champ courant : valeur du champ courant : indice du champ courant :
zoncou zc indice
variables locales utilisables : nom du champ courant : valeur du champ courant : indice du champ courant :
COUZON CZ COUIND
Ex : SUBBPT (transporteur) ############################################################################# $APRES_MODIF Local Integer OKWEU #---- si saisie de donnée poids et pas de saisie de unité poids : message Case COUZON When "ADL", "BKT", "PLIMAX", "PLIBKT" : Gosub CONT_WEU When Default Endcase $CONT_WEU If val(CZ)0 & [M:BPT1]WEU="" OKWEU=2 Call AVERTIR(mess(169,192,1),OKWEU) From GESECRAN Endif Return #############################################################################
14.3.5.
FIN
Action lancée après la saisie de la fenêtre Sert à : Restaurer la variable nolign :
14.3.6.
Nolign= SVNOLIGN
FINSAI
Action lancée en fin de traitement Sert à : Rafraîchir la fenêtre d‟appel :
Copyright © Sage 2011
NBAFF= 1
Page 123
SAFE X3 DEVELOPPEMENT
14.4.
GESTION DES BOUTONS/MENUS
Saisie Fenêtre Boutons Pré-définis
SETBOUT
Désactivation des boutons (« Enregistrer » et « Abandon » sont grisés par défaut pour les activer REP=« M » en APRES_MODIF)
Call VIREBOUT (CHBOU, « x ») From GOBJET Gosub SET_BOUT_STD From GSAISIE
AVANT_xxx
Avant l‟exécution du bouton
Action Action Dictionnaire Dictionnaire XXX
Copyright © Sage 2009-2010
Après l ‟exécution du bouton pour sortir de la fenêtre FIN=1 (sortie automatique pour bouton « OK » et « FIN »
Safe X3 Développement
63
Bouton actif par défaut (*) Pour chaque bouton du superviseur, une action AVANT_xxx et une action xxx Pour chaque bouton du superviseur, valeur de xxx : Fin ACT = END (sortie fenêtre) Enregistrer ENR code bouton = E Créer CRE C Supprimer SUP S Abandon ABA A Ok OK O (sortie fenêtre) Nouveau NEW N Premier FIR 0 Dernier LAS 9 Précédent PRE < Suivant SUI > Sélection SEL X Changement de clé CHG H Impression EDI I Liste LIS L Pièces jointes JOI J Commentaires COM M Propriétés PRO P
Copyright © Sage 2011
Page 124
SAFE X3 DEVELOPPEMENT
Saisie Fenêtre Boutons Spécifiques
SETBOUT
Désactivation des boutons Call VIREBOUT (CHMEN, « x ») From GOBJET Gosub SET_BOUT_SPE From GSAISIE
AVANT_BOUTON
Avant l‟exécution du bouton
la variable BOUT contient le code bouton
Action Action Dictionnaire Dictionnaire
Après l ‟exécution du bouton
BOUTON
la variable BOUT contient le code bouton
pour sortir de la fenêtre FIN=1 Copyright © Sage 2009-2010
Safe X3 Développement
64
Activation Bouton Bouton actif par défaut Exécution bouton Par défaut, ne sort pas de la fenêtre. Pour sortir, faire FIN=1 Particularité : Action SPE ou STD Autorisées s‟il n‟y a pas d‟ouverture de fenêtre à faire. Il n‟y a pas de traitement lié à l‟action dictionnaire Le traitement lié au bouton est à écrire dans l‟action BOUTON
Copyright © Sage 2011
Page 125
SAFE X3 DEVELOPPEMENT
Saisie Fenêtre Menus
SETBOUT
Désactivation des menus Call VIREBOUT (CHMEN, « x ») From GOBJET Gosub SET_BOUT_SPE From GSAISIE
AVANT_MEN
Avant l‟exécution du menu la variable BOUT contient le code menu
Action Action Dictionnaire Dictionnaire
Après l ‟exécution du menu
MEN
la variable BOUT contient le code bouton
pour sortir de la fenêtre FIN=1 Copyright © Sage 2009-2010
Safe X3 Développement
65
Activation Menu Menu actif par défaut Exécution Menu Par défaut, ne sort pas de la fenêtre. Pour sortir, faire FIN=1 Particularité : Action SPE ou STD Autorisées s‟il n‟y a pas de ‟ouverture de fenêtre à faire. Il n‟y a pas de traitement lié à l‟action dictionnaire Le traitement lié au bouton est à écrire dans l‟action MEN
Copyright © Sage 2011
Page 126
SAFE X3 DEVELOPPEMENT
14.5. 14.5.1.
GESTION DES BROWSERS Présentation
Liste gauche principale Pas de liste principale Liste des derniers lus Pas de liste des derniers lus Listes gauches secondaires liste ou picking, simple ou hiérarchisée nécessite le paramétrage d‟un objet de type browser doit être placé dans l‟onglet browser (fenêtre)
Nommage CLE_GAUCHE1 à 8
liste secondaire
Automatismes du superviseur Listes : remplissage de la liste (non, partiel, total) sélection charge la partie droite ( si browser=oui) Picking : remplissage de la liste (non, partiel, total) un niveau par élément de clé ( 16 max. ) Contraintes On ne peut pas griser ou supprimer un browser ( solution le laisser vide ) On ne peut pas changer l‟ordre des browsers
14.5.2.
Actions sur modèle
TIR
Première action
FILGAUCHE Filtrer les enregistrements FILGAUCHE(0..1) += « » pour le standard FILGAUCHE(2) += « » pour le spécifique pour liste secondaire CLE_GAUCHE
Pour modifier la clé de tri Liste simple et picking simple SNSLIS 1=ascendant, 2=descendant LENLIS nombre d‟éléments dans la clé CLELISTE chaîne de 250 caractères. Liste champs composant la clé séparés par le caractère « ; »
AP_FILGAUCHE
Durant l'affichage de la liste
Copyright © Sage 2011
Page 127
SAFE X3 DEVELOPPEMENT
14.6. 14.6.1.
EXERCICE : MENU DANS GESTION COMMANDE Objectif
Développer un traitement qui permettra de saisir des informations complémentaires dans une fenêtre appelée depuis la gestion commande GESYOX, par la barre de menu. On profitera de la transaction de mise à jour de l‟objet pour mettre à jour la table entête.
14.6.2.
Marche à suivre
Créer un écran XLIV Créer une fenêtre XLIV Créer une action XLIV Ecrire un traitement XLIV Appel de cette fenêtre de saisie depuis un menu de la gestion des commandes. Pour ce faire, utiliser les descriptions ci-dessous.
L’écran XLIV Code écran : XLIV Abréviation : XLIV Traitements associés: XLIV
Champ
spécifique
Saisie
Oblig.
YDLVDAT
S
Non
Particularités « Date de livraison demandée »
YSHIDAT
S
Non
« Date d‟expédition » Elle doit être inférieure ou égale à la date de livraison demandée.
YMDL
S
Non
Dévelop.
Oui
« Mode de livraison » Contrôle / Sélection / Tunnel Affichage du libellé long
YBPTNUM
S
Non
« Transporteur » Contrôle / Sélection / Tunnel Affichage du libellé long
Copyright © Sage 2011
Page 128
SAFE X3 DEVELOPPEMENT
La fenêtre XLIV
Code fenêtre : Boutons bas d‟écran :
XLIV Ok, Abandon, Fin
Le traitement XLIV Le principe de ce traitement est de permettre une saisie complémentaire, par une fenêtre supplémentaire à la fenêtre principale de gestion des commandes. La mise à jour des informations de la fenêtre XLIV se fera par la transaction de l‟objet. Pour ce faire, on crée les champs de l‟écran XLIV en invisible dans l‟écran YOX0. De ce fait, la gestion objet prendra automatiquement en charge : l‟alimentation des informations dans la classe [M : YOX0] à l‟affichage de la fenêtre OYOX, la mise à jour de l‟enregistrement YORDHEAX à partir de la classe [M :YOX0] Ce qu‟il nous reste à développer : Avant la saisie dans la fenêtre, basculer le contenu des champs invisibles de l‟écran YOX0 dans l‟écran XLIV. A l‟activation du bouton OK, on fait un transfert de classe [M :XLIV] vers [M :YOX0]
Saisie dans cette fenêtre XLIV : Si la commande n‟est pas soldée : les champs sont saisissables Si la commande est soldée : les champs sont grisés
Gestion des boutons : OK : on ferme la fenêtre et on récupère les données. FIN : on ferme la fenêtre sans récupération des données ABANDON : on reste sur la fenêtre et on réinitialise les données
14.6.3.
A vérifier
Fenêtre saisissable ou pas en fonction du statut de la commande Saisie + Ok Saisie + Abandon Saisie + Fin Mise à jour des informations dans la table des commandes
Copyright © Sage 2011
Page 129
SAFE X3 DEVELOPPEMENT
Notes
Copyright © Sage 2011
Page 130
SAFE X3 DEVELOPPEMENT
15. MODELE « TRAITEMENT STANDARD » 15.1.
DEFINITION
Ce modèle permet : saisie d‟une fenêtre de critère, boite de dialogue, ou simple confirmation saisie d‟une fenêtre principale exécution d‟un traitement procédural silencieux il peut être lancé en batch, par la soumission des requêtes générer une trace Ce modèle n‟a rien à voir avec les traitements standards X3 Ce modèle se lance : d‟une fonction, bouton/menu fenêtre, bouton champ. Exemple : « Ventes>Livraisons>Livraisons automatiques »
Traitement standard
Action
Fonction
Tâche
Fenêtre critères
Écrans
Traitement standard Traitement vertical Traitement spécifique
Fenêtre Principale
Écrans
Traitement standard Traitement vertical Traitement spécifique
Traitement superviseur GTRAITE Traitement standard Traitement spécifique Soumission en batch
BATCH Abonnement Copyright © Sage 2009-2010
Copyright © Sage 2011
Lancement automatique avec périodicité Safe X3 Développement
68
Page 131
SAFE X3 DEVELOPPEMENT
15.2.
PARAMETRES Action de lancement du modèle « Saisie fenêtre » action de modèle Traitement standard. traitement standard / traitement spécifique fenêtre principale, venant en ajout après la fenêtre de critère (peu renseignée) saisie initiale = sans saisie initiale = confirmation oui / non = boite de dialogue + fenêtre de critères = saisie de fenêtre + fenêtre de critères (modèle saisie fenêtre) = sélection de table = sélection de liste
Traitement standard Le traitement superviseur lancé est GTRAITE Remarque Actions à écrire sur le même traitement pour : fenêtre principale fenêtre de critères sélection table sélection liste [L]BOITE permet de dissocier les 2 fenêtres.
Copyright © Sage 2011
Page 132
SAFE X3 DEVELOPPEMENT
15.3.
ACTIONS SUR MODELES : MODE INTERACTIF
Retour saisie
Traitement standard : en interactif INIT AVANT_PAR INIT_DIA
début traitement avant l‟ouverture de la fenêtre critère seulement pour une boite de dialogue avant l‟affichage de cette fenêtre
CONTROLE
après la saisie de cette fenêtre
EXEC TERMINE
une fois les contrôles OK après le traitement
SORTIE
fin de traitement
Copyright © Sage 2009-2010
Safe X3 Développement
69
L‟exécution d‟une action de type traitement standard se fait en plusieurs temps : Saisie d‟une fenêtre de critère, boite de dialogue, fenêtre de sélection ou simple confirmation. Saisie d‟une fenêtre principale si celle-ci a été définit. Exécution d‟un traitement procédural silencieux (action EXEC). Puis lecture d‟une trace contenant les informations liées à l‟exécution du traitement (erreur, nombre d‟enregistrement touchés…). Chaque étape est facultative.
15.3.1.
INIT
Action lancée en tout début de traitement, ne s‟exécute qu‟une seule fois
Sert à : déclarer, alimenter des variables locales, globales ouvrir des tables ouvrir l‟écran si saisie initiale par „saisie fenêtre‟ afficher un message d‟erreur : GERR = 1 GMESSAGE = «mess» interrompre le traitement : FIN = 1 affecter un titre à la boite de dialogue ou une question à la boite de confirmation : Copyright © Sage 2011
TIT = « titre » Page 133
SAFE X3 DEVELOPPEMENT
Remplacer la fenêtre précisée dans l‟action : BCRIT = « fenêtre critères » BOITE = « fenêtre principale » Message de confirmation : Il faut indiquer le message. Le superviseur gère les boutons « oui » « non ». non : déclenche la fin du traitement standard (équivalent à FIN=1) Boîte de dialogue : Il faut créer l‟écran et la fenêtre avec les boutons prédéfinis « ok» « fin ». Le superviseur gère les boutons « ok» « fin ». fin : déclenche la fin du traitement standard (équivalent à FIN=1) Saisie fenêtre : Il faut créer l‟écran et la fenêtre Le superviseur utilise le modèle « saisie fenêtre ». Obligation d‟ouvrir le masque dans l‟action INIT Pour connaître le bouton activé, tester GSTATUT dans les actions CONTRÔLE, EXEC. Sélection Table / Sélection liste : Pas d‟écran, pas de fenêtre à créer Alimentation de la fenêtre par traitement Variable VALEUR est alimentée en retour.
15.3.2.
AVANT_PAR
Action lancée avant l‟ouverture de la fenêtre de critère, possibilité de boucler sur la saisie des paramètres dans l‟action « CONTROLE » et « EXEC ». Sert à : inhiber la fenêtre de saisie de critères :
Copyright © Sage 2011
TYPPRG = 0
Page 134
SAFE X3 DEVELOPPEMENT
15.3.3.
INIT_DIA
Action lancée seulement pour une boite de dialogue avant l‟affichage de cette fenêtre. Sert à : affecter des champs de cette fenêtre Attention ! Actzo, Diszo, & Grizo ne sont pas disponibles dans cette action On pourra les utiliser dans les actions sur champs (ex : en avant_zone du champ courant) L‟abréviation DIA n‟est plus obligatoire pour l‟écran.
15.3.4.
Gestion des saisies fenêtre
Traitement standard cas des saisies fenêtre Traitement standard INIT
Local Mask nom_mask [abrev]
Call « Saisie fenêtre » Fenêtre de critères Toutes les actions liées à ce modèle « saisie fenêtre »
Call « Saisie fenêtre » Fenêtre principale Toutes les actions liées à ce modèle « saisie fenêtre » EXEC Copyright © Sage 2009-2010
Safe X3 Développement
70
############################################################################# $ACTION Case ACTION When « INIT » Gosub INIT …. # actions du modèle saisie fenêtre When « DEBUT » Gosub DEBUT … Endcase Return $init Copyright © Sage 2011
Page 135
SAFE X3 DEVELOPPEMENT
Local mask XXX [XX] return $ DEBUT Case BOITE When « code_fenêtre » Gosub … When « code_fenêtre » Gosub … Endcase Return #############################################################################
15.3.5.
CONTROLE
Action lancée après la saisie des paramètres de lancement dans la fenêtre de critères, exécutée systématiquement Sert à : effectuer les derniers contrôles avant traitement GSTATUT permet de connaître le bouton activé en saisie fenêtre afficher un message d‟erreur : GERR = 1 GMESSAGE = «mess» interrompre le traitement : FIN = 1 retourner à la saisie des paramètres : SAI = 1 Positionnement du curseur (nom de champ) : zonsui afficher un message d‟attente : message d‟attente :
TMP = 1 TIT = x
code texte du message d‟attente V « validation en cours ...» F « vérification en cours ...» L « lecture en cours ...» E « écriture en cours ...» A « annulation en cours ...» R « recherche en cours ...» C « calcul en cours ...» « opération en cours ... »
TIT :
texte spécifique à afficher (dans une chaîne de 50 caractères) Variable SAI : SAI=1 retour en saisie, juste avant l‟action AVANT_PAR (en mode interactif)
15.3.6.
EXEC
Action lancée une fois les contrôles OK Sert à : lancer votre traitement GSTATUT permet de connaître le bouton activé en saisie fenêtre afficher un message d‟erreur : GERR = 1 GMESSAGE = «mess» interrompre le traitement : FIN = 1 ouvrir & fermer la trace Copyright © Sage 2011
Page 136
SAFE X3 DEVELOPPEMENT
affichage trace : retourner en saisie paramètres après exécution de ce traitement :
TRA = 1 ou 9 SAI = 1
Variable TRA : 0 pas d‟affichage & conservation de la trace 1 affichage & conservation de la trace 9 affichage & suppression de la trace Ouverture & fermeture trace : Call OUVRE_TRACE(« titre ») From LECFIC Call FERME_TRACE From LECFIC Ecriture trace en interactif et batch : Call ECR_TRACE(MESSAGE,0) FROM GESECRAN : # information (couleur 1) Call ECR_TRACE(MESSAGE,1) FROM GESECRAN : # Erreur (couleur 2) Call ECR_TRACE(MESSAGE,-1) FROM GESECRAN : # Warning (couleur 3) Les couleurs utilisées sont celles paramétrées dans le menu Outils / Options Variable SAI : 1 retour en saisie, juste avant l‟action AVANT_PAR, en mode interactif aucun effet en mode batch Trbegin – Commit : Pour un traitement de mise à jour, définir la transaction
15.3.7.
TERMINE
Action lancée après l‟action EXEC si pas de retour en saisie SAI 1 si pas de fin de traitement FIN 1 Sert à : même possibilité que l‟action EXEC Par contre, exécution unique
15.3.8.
SORTIE
Action lancée en fin de modèle Sert à : charger des variables indiquer au programme appelant d‟activer le bouton enregistrer par mkstat = 4 ou une variable globale Activation du bouton Enregistrer : Il sera nécessaire d‟écrire dans l‟action SETBOUT de l‟objet appelant : If mkstat = 4 & GREP = « » : REP = « M » : Endif
Copyright © Sage 2011
Page 137
SAFE X3 DEVELOPPEMENT
15.4. 15.4.1.
ACTION SUR MODELES : MODE BATCH Etape interactive : le lancement
Etape 1 : - Saisie des paramètres - Le superviseur les stocke dans la table ABATRQT Le lancement ce fait via le menu « Exploitation>Serveur batch>Soumission des requêtes ». Renseignements des informations de lancement : Le dossier sur lequel va être exécuté le traitement L‟utilisateur, permet de vérifier les droits d‟accès aux requêtes. Un groupe ou une tache à exécuter, il s‟agit de la requête contenant la fonction ou le traitement à exécuter. Cette tâche est à créer dans le menu « Exploitation>Serveur batch>Gestion des taches ». Date et heure de lancement. Soumission d‟une requête : Recherche de la tâche associée Contrôle des droits de l‟utilisateur Saisie des paramètres nécessaires au lancement du traitement Création de la requête avec stockage des paramètres, code tâche, traitement à exécuter Création Requête : Le champ DEB(15)(80) contient le nom du champ dans l'écran de saisie des critères Le champ FIN(30)(80) contient la valeur de ce champ. Si la valeur du champ>30, les caractères>30 sont mis sur l'indice suivant. Si + de 80 champs, on enregistre la requête courante avec DEB(79)="&" et on crée un deuxième enregistrement (no de requête +1) avec FLAG=99 Variable identifiant le contexte : GBATCH = 1, si le traitement est lancé par le serveur batch.
Copyright © Sage 2011
Page 138
SAFE X3 DEVELOPPEMENT
15.4.2.
Les actions sur modèles
Traitement standard : batch Etape interactive : le lancement
OUVRE_BATCH
après le bouton validation de cette fenêtre
INIT_DIA
avant l‟affichage de la boite de la dialogue pour saisie des paramètres
CONT_BATCH
après la saisie de cette fenêtre
Copyright © Sage 2009-2010
Safe X3 Développement
71
Soumission d‟une requête - phase 1 2 actions propres aux batchs OUVRE-BATCH : Possibilité d‟ouvrir une fenêtre différente en positionnant BCRIT pour le code fenêtre CONT-BATCH : Permet les contrôles dès la saisie des paramètres Possibilité identique à l‟action CONTROLE du lancement interactif.
Copyright © Sage 2011
Page 139
SAFE X3 DEVELOPPEMENT
15.4.3.
Etape batch: l‟exécution
Etape 2 : Le superviseur lit le paramètre depuis la table ABATRQT Exécution du traitement Visualisation des taches et de leurs déroulements dans le menu « Exploitation>Serveur batch>Gestion des requêtes » Couleurs des taches : > Gris : Taches exécuté. > Rouge : Taches avortés ou exécuté avec erreurs. > Vert : Taches en attente ou en cours d‟exécutions. Si la requête n‟a pas encore été exécutée il est possible de modifier ses paramètres de lancement. Après exécution, la trace de la requête est visualisable par clic droit sur la requête option trace. Il est aussi possible de la relancer. Soumission d‟une requête : Exécution de la requête à la date et heure prévue par le serveur batch GSERVEUR = 1, si le traitement est lancé par le serveur batch.
Copyright © Sage 2011
Page 140
SAFE X3 DEVELOPPEMENT
15.4.4.
Exécution en mode batch
Traitement standard : batch Etape batch : l‟exécution INIT AVANT_PAR INIT_DIA
début traitement avant l‟ouverture de la fenêtre critère seulement pour une boite de dialogue avant l‟affichage de cette fenêtre
CONTROLE
après la saisie de cette fenêtre
EXEC
une fois les contrôles OK
TERMINE
après le traitement
SORTIE Copyright © Sage 2009-2010
fin de traitement Safe X3 Développement
72
Soumission d‟une requête - phase 2 : C‟est le modèle GTRAITE qui est utilisé. La lecture de la requête alimente l‟écran de saisie des paramètres. L‟ouverture et la fermeture de la trace est prise en charge par le superviseur. Attention ! Il n‟y pas de saisie de fenêtre principale. Action CONTROLE : Si erreur, affichage dans la trace. Pas de retour possible en saisie. Attention aux licences d’exécution des taches batch ! Les traitements silencieux sont en général des traitements couteux en ressources. Pour trouver les possibilités d‟amélioration des performances un Utilitaire peut-être déclenché par traitement. # Activation Call ACTIVE from TIMING ... # Affichage du temps passé par chaque sous-programme et étiquettes avec le nombre d‟appel et le temps d‟exécution entre le lancement et l‟arrêt. Call ARRET From TIMING
Copyright © Sage 2011
Page 141
SAFE X3 DEVELOPPEMENT
16. FONCTIONS Présentation : Se situe dans le menu « Développement>Dictionnaires traitements>Fonctions » fait le lien entre le menu et soit : – un menu (sous-niveau de menu) – un traitement GESxxx pour un objet (générée automatiquement) CONSxxx pour une consultation FUNxxxxxx pour tout autre traitement onglet général : Sélection du menu contenant la fonction, du rang et du libellé à afficher. Sélection des autorisations d‟accès. Sélection des états à imprimer. onglet action : Sélection de l‟action à exécuter sur une fonction de type traitement. Sélection des paramètres pour cette action Menu / Rang / Intitulé : information pour le menu page HTML (idem objet) Type fonction : élément appelé par la fonction ( traitement ou menu ) Type accès objet : positionné à oui en automatique par la validation d‟objet permet le contrôle d‟autorisation en création, modif. et suppression Autorisation site : permet le contrôle d‟autorisation par site. oui en auto. par la validation d‟objet, si champ site identifié dans l‟objet Exécution mono : exécution de cette fonction possible alors qu‟une autre fonction est lancée en mode mono. Impression : affectation d‟un document Crystal Report (idem objet) Liste : affectation d‟une liste Crystal Report (idem objet) Test des options dans l‟objet : AVANTBOUT Case BOUT When "a" : # Contrôle des autorisations GBIDC2= "A": Gosub AUTORIS_OPT From CONTX3 If !GBIDI2 : GERR = 1 : GMESSAGE = mess(2,104,1) : Return : Endif …. Endcase Action : A renseigner pour une fonction de type « traitement » Le traitement se lance soit en précisant l‟action, soit le traitement Favoriser la technique de l‟action S‟il y a ouverture de fenêtre, on devra absolument indiquer l‟action Tout type d‟action sauf action de type « Hors modèle » Paramètres : Possibilité d‟affecter des valeurs par défaut aux paramètres de l‟action. en validation d‟objet, alimentation automatique de l‟action et des paramètres. Navigation : Par défaut, une fonction est accessible à la navigation "Aller à (touche F7)" ou en utilisant le bandeau de la barre des menus. Pourquoi et comment réduire les droits d'accès par la navigation ? Interdite vers cette fonction : Fonction nécessitant, par exemple, un contexte d'appel. Exemple: les fonctions non rattachées à un menu X3. Copyright © Sage 2011
Page 142
SAFE X3 DEVELOPPEMENT
Interdite depuis cette fonction : Fonction ayant, par exemple, des filtres positionnés, et pouvant ainsi amener de faux résultats dans la fonction appelée. Interdite dans tous les cas : Fonction interdite dans les deux cas cités au-dessus.
Copyright © Sage 2011
Page 143
SAFE X3 DEVELOPPEMENT
17. MODELE « AFFICHAGE DIVERS » 17.1.
DEFINITION: ce modèle permet : – exécuter un traitement sans ouverture de fenêtre Ce modèle se lance : – D‟une action champ, d‟un bouton bas d‟écran ou d‟un menu – D‟une fonction Exemple : – Action sur champ contrôle CTLNUM appelé sur le champ SOHNUM de l‟écran SOH0 pour contrôler le N° de document. Paramètres de l‟action – Modèle : affichage divers – Traitement standard, traitement spécifique. – Code action contenu dans la variable GACTION à l‟intérieur du traitement.
17.2.
ACTION UNIQUE TRT_DIV
Action lancée au début de traitement Sert à : lancer votre traitement afficher un message d‟erreur : GERR = 1 GMESSAGE=«mess» ############################################################################### $ACTION Case ACTION When « TRT_DIV » : Gosub TRT_DIV Endcase $TRT_DIV … Return ############################################################################### Variable TRAIT : Contient l‟identifiant de l‟action dictionnaire.
Copyright © Sage 2011
Page 144
SAFE X3 DEVELOPPEMENT
18. MODELE « HORS MODELE » 18.1.
DEFINITION : ce modèle permet : – D‟exécuter un sous-programme Ce modèle se lance : – D‟une action champ, d‟un bouton bas d‟écran ou d‟un menu – Jamais d‟une fonction Exemple : – Action sur champ après-ligne DIVLINNUM appelé sur le champ NBLIG de l‟écran SOH4 pour l‟attribution du numéro de ligne. Paramètres de l‟action – Modèle : Hors modèle – Traitement standard ou traitement spécifique. – Renseignement du sous-programme.
Paramètres du 1er onglet : Traitement & sous-programme Traitement standard ou spécifique : pas d‟ajout de spécifique sur le standard Instruction Adonix (possibilité d‟utiliser seulement une instruction et non un sous-pro.)
18.2.
PARAMETRE DU SOUS-PROGRAMME Onglet Paramètre de l‟action
Cohérence des paramètres action et sous-programmes : Ordre Nombre Nature (char, integer, decimal, date,…) Mode (par valeur value, par adresse variable) Exemple avec l‟action LINNUM du traitement TABLEAUX : Traitement TABLEAUX Subprog LINNUM (ZONLIG) Value char ZONLIG … End Description dans le dictionnaire des actions • nom : Lig, type : char, passage par valeur
Copyright © Sage 2011
Page 145
SAFE X3 DEVELOPPEMENT
Hors modèle
FONCTION FONCTION Menu MenuX3 X3 Action Action FENETRE FENETRE
Traitement Traitementstandard standard Traitement Traitementspécifique spécifique
bouton bouton/ /menu menu
ECRAN ECRAN champ champ TYPE TYPE DONNEE DONNEE
Copyright © Sage 2009-2010
Safe X3 Développement
76
Hors modèle Le traitement lancé est votre propre traitement Il n‟y a pas de traitement superviseur Ce modèle se lance : D‟une action champ, d‟un bouton bas d‟écran ou d‟un menu Mais jamais d‟une fonction.
18.3.
DECLARATION DU SOUS-PROGRAMME
Une fois que le sous-programme a été écrit dans l‟action, si celui-ci peut être réutilisé ultérieurement, il faudra alors le déclarer dans le dictionnaire des sous-programmes « Développement>Dictionnaires traitements>Traitements>Sous-Programmes ». Renseignement du traitement contenant le sous-programme, puis le nom de celui-ci. Ajout d‟un descriptif. Type : Permet de classer les sous-programmes et fonctions afin d'en faciliter la recherche, et ce, dans le but d‟une meilleure réutilisabilité. Les fonctions et sous-programmes sont à classer en fonction de leur objectif : • Contrôle • Saisie • Sélection • Mise à jour • Xsl (traitement lié au composant écran) • Retour d'un statut Copyright © Sage 2011
Page 146
SAFE X3 DEVELOPPEMENT
• • •
Recherche d'information Calcul Divers
Type argument : Ce champ est à renseigner pour les fonctions. Celles-ci sont à classer en fonction de la nature de leur argument de retour : • Char • Intéger • Decimal • Date • etc.
Copyright © Sage 2011
Page 147
SAFE X3 DEVELOPPEMENT
18.4. 18.4.1.
EXERCICE : CALCUL DE L’EN-COMMANDE CLIENT EN BATCH Objectif
Re-calcul de l‟en-commande client par un traitement qui analyse les commandes. Ce traitement se lance aussi bien en temps-réel qu‟en batch.
18.4.2.
Marche à suivre
Création d‟un écran Création d‟une fenêtre Création d‟une action Création d‟une fonction Création du traitement
YEX YEX YEX YEX YEX
Pour ce faire, utiliser les descriptions ci-dessous.
Ecran de sélection Code écran : YEX Abréviation : YEX Traitements associés: YEX
Champ YBPCNUMD
Saisie
Oblig.
S
non
Particularités
Dévelop.
Fenêtre de sélection sur vos clients Pas de contrôle d‟existence de la valeur, et champ vide autorisé (action CONTOBJN)
YBPCNUMF
S
non
Fenêtre de sélection sur vos clients Pas de contrôle d‟existence de la valeur, et champ vide autorisé (action CONTOBJN) Contrôler que la borne fin soit bien supérieure ou égale à la borne début. Faire en sorte que ce contrôle soit réutilisable. Aurait-on la possibilité de faire ce contrôle par paramétrage ? si oui, de quelle façon ?
(Saisie :
S Saisie / A Affiché / I Invisible)
Remarque : Les valeurs saisies dans les bornes peuvent ne pas correspondre à des clients existants et peuvent ne pas être saisies.
Copyright © Sage 2011
Page 148
SAFE X3 DEVELOPPEMENT
18.4.3.
Traitement
Lire les clients sélectionnés Pour chacun d‟eux : Verrou logique de l‟enregistrement lu Constitution de la transaction de mise à jour Verrou physique de l‟enregistrement à mettre à jour Remise à zéro des cumuls HT et TTC ( enregistrement client ) Lecture des commandes passées pour ce client avec calcul des cumuls Mise à jour des cumuls HT et TTC du client Enlever le verrou logique Constitution d‟une trace : Message d‟information : « Client mis à jour : xxxxx» Message d‟erreur : « xxxxx Rollback suite à erreur dans la transaction » Le traitement YEX est à compléter.
18.4.4.
A vérifier
Contrôles de la saisie des bornes client Les résultats dans les fiches clients L‟exécution du traitement en mode interactif et batch La trace
Notes
Copyright © Sage 2011
Page 149
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 150
SAFE X3 DEVELOPPEMENT
19. MODELE « SELECTION TABLE » 19.1.
DEFINITION : Ce modèle permet : – L‟ouverture d‟une fenêtre de sélection d‟une table ou d‟un link Ce modèle se lance : – principalement d‟une action champ : sélection ou bouton – depuis un traitement standard – Depuis une fonction Exemple : – Dans les livraisons automatiques, sur le champ client livré, menu contextuel option sélection. Paramètres de l‟action – Modèle : Sélection dans table – Traitement standard et traitement spécifique. – Identifiant action. – Intitulé bouton (le nom de l‟option dans le menu contextuel)
Sélection dans table Les éléments proposés dans la fenêtre s‟appuient sur une table ou une classe [F] issue du Link Possibilité de filtre des enregistrements On indique les champs à présenter dans cette fenêtre 1 enregistrement = 1 ligne, 1 champ= 1 colonne (25 colonnes maximum) Le nombre de lignes affichées est fonction du paramètre utilisateur NBRCHOOSE Ensuite possibilité de pagination Le traitement superviseur est GACTION Pour créer une fenêtre de sélection : Utiliser le type de donnée lié à l‟objet Sinon, utiliser les actions SELOBJW et SELOBJAW L‟option # permet de ne pas appliquer le filtre sur ENAFLG, et l‟action FILTRE liée à l‟objet. Sinon, se créer une action « sélection table »
Copyright © Sage 2011
Page 151
SAFE X3 DEVELOPPEMENT
19.2.
ACTIONS SUR MODELE
Sélection dans table
SEL_TABLE
avant l ‟affichage de la fenêtre
VERF_TABLE
après la saisie du choix
FIN_TABLE
fin de traitement
Copyright © Sage 2009-2010
19.2.1.
Safe X3 Développement
79
SEL_TABLE
Action lancée avant l‟affichage de la fenêtre. Positionner la table par défaut Définir les colonnes de la fenêtre de sélection avec : No de colonne NBCOL Nom du champ COL(NBCOL) Titre de la colonne TIT(NBCOL) Donner un titre à la fenêtre : TIT(0)
Colonne à récupérer suite au choix : START Filtre de sélection des enregistrements : CRITERE Critère de tri : ORDRE Sens du tri : SENS Gérer une pagination : DEFPAG=1 Afficher éléments à partir de EXPSTART Affecter une taille de fenêtre SIZLIG & SIZCOL Pagination : Gérée par le superviseur si DEFPAG=1, Tient compte du tri positionné dans ORDRE et SENS. Tri :
Copyright © Sage 2011
Page 152
SAFE X3 DEVELOPPEMENT
Par défaut, tri sur la première colonne déclarée dans la fenêtre. Possibilité de trier les enregistrements d'une autre façon. On indique le nom d'un ou plusieurs champs appartenant à la table mais pas forcément à la fenêtre. Les noms de champs sont séparés entre eux par le caractère ";". Exemple : ORDRE = "[F:ADI]NUMTAB;[F:ADI]CODE« Par défaut, sens du tri est ascendant Possibilité de tri descendant avec SENS=2
19.2.2.
VERF_TABLE
Action lancée après la saisie du choix, avant l‟alimentation de VALEUR Sert à : Affecter d‟autres champs : Affzo [M]
[M]champ = [F]champ
Effectuer des contrôles du choix Afficher un message d‟erreur : GERR = 1 GMESSAGE = « mess » La classe [F] complète de l‟enregistrement est disponible. Il est alors possible d‟affecter d‟autres champs, puis de les afficher.
19.2.3.
FIN_TABLE
Action lancée en fin de traitement même si aucune sélection n‟a été effectuée Sert à : Enlever un filtre positionné auparavant Intervenir sur le choix : Valeur Sur action Sélection Automatisme de passage au champ suivant par le superviseur Forcer le curseur à rester sur le champ courant mkstat=2 Sur action Bouton Forcer le curseur à passer au champ suivant
Copyright © Sage 2011
mkstat=99
Page 153
SAFE X3 DEVELOPPEMENT
20. MODELE « SELECTION LISTE » 20.1.
DEFINITION : Ce modèle permet : – L‟ouverture d‟une fenêtre de sélection des éléments d‟une liste Ce modèle se lance : – principalement d‟une action champ : sélection ou bouton – depuis un traitement standard – Depuis une fonction Exemple : – action AMENLOCSEL : menus locaux modifiables par module menu : « Paramétrage>Paramètres généraux>Menus locaux » Paramètres de l‟action – Modèle : Sélection dans liste – Traitement standard et traitement spécifique. – Identifiant action. – Intitulé bouton (le nom de l‟option dans le menu contextuel)
Ce modèle permet : L‟ouverture d‟une fenêtre de sélection des éléments d‟une liste On doit fournir les éléments à afficher dans un tableau : les lignes sont à constituer Tous les éléments sont affichés en même temps dans la fenêtre (limite de 200 max) Sélection rapide et pagination non supportées Possibilité de créer de 1 à 5 colonnes
Copyright © Sage 2011
Page 154
SAFE X3 DEVELOPPEMENT
20.2.
ACTIONS SUR MODELES
Sélection dans liste
SEL_LISTE
avant l ‟affichage de la fenêtre
VERF_ LISTE
après la saisie du choix
FIN_ LISTE
fin de traitement
Copyright © Sage 2009-2010
Safe X3 Développement
81
SEL_LISTE : Action majeure Le superviseur ne prend pas en charge l‟ouverture de la table ni les lectures d‟enregistrement. Pas d‟écran ni de fenêtre à créer.
20.2.1.
SEL_ LISTE
Action lancée avant l‟affichage de la fenêtre Sert à : charger la fenêtre de sélection avec : No de ligne NBTEX Nom de champ invisible TEX (NBTEX) Texte affiché TEXTE (NBTEX) Donner un titre à la fenêtre :
TIT
SEL_LISTE : Nécessité d‟ouvrir les tables à explorer Nécessité de lire les enregistrements pour constituer les lignes à proposer Possibilité d‟augmenter la limite de 200 lignes en re-déclarant TEX et TEXTE dans cette action. Afficher de 1 à 5 colonnes alignées : Copyright © Sage 2011
Page 155
SAFE X3 DEVELOPPEMENT
Les textes : La variable TEXTE est dimensionnée à TEXTE(80)(0..200) dans le superviseur. Il faut la re-déclarer dans l‟action SEL_LISTE en ajoutant une 2ème dimension ( de 5 postes max ) Exemple : Local Char TEXTE(80)(1..200,1..2) pour afficher une liste sur 2 colonnes. Les titres de colonnes : La variable TIT est dimensionnée à TIT (50)(0..5) dans le superviseur. Inutile de la re-déclarer L‟indice 0 est réservé au titre de la fenêtre (comme actuellement) Le titre des colonnes se paramètre à partir de l'indice 1. Action disponible : Tri sur colonne (sélection rapide et pagination non supportées) 20.2.2.
VERF_LISTE
Action lancée après la saisie du choix, après l‟alimentation de VALEUR Sert à : Affecter d‟autres champs : Affzo [M]
[M]champ = [F]champ
effectuer des contrôles du choix afficher un message d‟erreur : GERR = 1 GMESSAGE = « mess »
20.2.3.
FIN_LISTE
Action lancée en fin de traitement même si aucune sélection n‟a été effectuée Sert à : Enlever un filtre positionné auparavant Intervenir sur le choix :
Valeur
Sur action Sélection Automatisme de passage au champ suivant par le superviseur Forcer le curseur à rester sur le champ courant mkstat=2 Sur action Bouton Forcer le curseur à passer au champ suivant
Copyright © Sage 2011
mkstat=99
Page 156
SAFE X3 DEVELOPPEMENT
20.3. [V]GACTION
VARIABLES DISPONIBLES EN LECTURE : Code action dictionnaire
Traitement standard [L]BOITE
Code fenêtre
[L]GBATCH Etape de lancement : 0 interactif – 1 soumission requête [L]GSERVEUR Etape d‟exécution : 0 interactif – 1 batch
Sélection table et liste / Affichage divers [L]TABLE [L]LISTE [L]TRAIT
Identification action sel. table Identification action sel. liste Identification action aff. Divers
Copyright © Sage 2011
Page 157
SAFE X3 DEVELOPPEMENT
21. MODELE « CONSULTATION » 21.1.
DEFINITION : Ce modèle permet : > afficher un ensemble d‟enregistrements en fonction de critères de sélection. Ce modèle se lance : > Depuis une action champ > Depuis une fenêtre > Depuis une fonction Exemple : > Affichage de la liste des commandes dans le menu : « Ventes>Consultation>Commandes>Listes commandes »
>
Paramètres de l‟action > Modèle : Consultation > Code consultation
Type de traitement : consultation Gère les consultations Le traitement lancé est GCONSULT Remarque : Le traitement qui contiendra vos actions est le CNSxxxSPE.
21.2.
FENETRE PRINCIPALE : Affichage de la liste des éléments. Possibilité de passer d‟une page à une autre. Affichage de la fenêtre de critère.
Ergonomie générale fenêtre principale : Un écran entête figé, un onglet unique figé ou dynamique L‟écran d‟entête comprend les principaux critères de recherche L‟onglet est sous forme de tableau. La variable de bas de tableau doit se nommer NBLIG. Boutons standards sont : Critères, Recherche, Suite, Retour, Dernier, Graphique, Fin Critères présent, si une fenêtre de critère est définie pour la consultation Graphique présent, si un graphique est défini pour la consultation Boutons / menus particuliers à la consultation F5 permet le rafraîchissement de la page courante Les boutons magnéto permettent de faire défiler la clé principale de recherche. Fichier/Impression permet l‟impression de la fenêtre principale Fichier/Liste permet l‟impression de la liste précisée dans la fonction Les derniers lus de l‟objet associé sont mis à jour Pas de liste de gauche
Copyright © Sage 2011
Page 158
SAFE X3 DEVELOPPEMENT
21.3.
FENETRE DE CRITERES : Enregistrer et modifier de nombreux critères de sélection et de tri. enregistrer et choisir 1 écran paramétré. enregistrer le tout dans un mémo
Ergonomie générale fenêtre critère Création d‟un écran critère si trop de critères, si zone affichage, si mémo, si écran dynamique un bloc de sélection et un bloc d‟affichage Si modif des zones d‟affichage, la page courante est réaffichée. Si modif des zones de sélection, la recherche est relancée depuis la 1ère page. Boutons standard sont : ok, fin, mémo, rappel, eff. mémo, mémo : création d‟un mémo rappel : chargement d‟un mémo eff.mémo : suppression du mémo Boutons particuliers à la consultation pour cette fenêtre Le champ « mémo actif » doit se nommer MEMO Le champ « code écran » doit se nommer ECRAN Il a en paramètre le code consultation Initialisation des critères à l‟entrée dans la fonction si mémo STD Chaque mémo est créé dans le répertoire ETM sur le serveur sous la forme : utilisateur_mémo.consultation Se réserver dans le dictionnaire le code mémo
21.4.
ELEMENTS COMPOSANT UNE CONSULTATION
Consultations Action Action FONCTION FONCTION Menu MenuX3 X3
Consultation Consultation Fenêtre Fenêtreprincipale principale
FENETRE FENETRE
bouton bouton/ /menu menu
ECRAN ECRAN champ champ TYPE TYPE DONNEE DONNEE
Écrans ++ Boutons Boutons/ /Menus Menus
Fenêtre Fenêtrede decritères critères Écran ++ Boutons Boutons/ /Menus Menus Traitement superviseur GCONSULT Traitement standard Traitement spécifique
Copyright © Sage 2009-2010
Copyright © Sage 2011
Safe X3 Développement
83
Page 159
SAFE X3 DEVELOPPEMENT
Pour une consultation xxx : Fenêtre principale FCNSxxx (obligatoire) : type = plein écran • écran entête CONSxxx1 abrév. xxx1 (obligatoire) • écran détail CONSxxx2 abrév. xxx2 (obligatoire) Fenêtre critère DCNSxxx (facultative) : type = boite dialogue • écran critère CRITxxx abrév. Cxxx Action CONSxxx • type de traitement Consultation • code consultation xxx (obligatoire) • définition des paramètres Fonction CONSxxx • action CONSxxx (obligatoire) • valeur des paramètres
21.5. 21.5.1.
PARAMETRES D’UNE CONSULTATION Onglet Ecrans: Les consultations sont paramétrés dans le menu « Développement>Dictionnaires traitements> Consultations » Renseignement de la fenêtre principale et de la fenêtre de critère. Correspondance des champs entête de la fenêtre de principale et de la fenêtre de critères Traitements standard/spécifiques.
Onglet Ecrans Code : Ce code obligatoire identifie la consultation. Il a au plus 3 caractères. Comme le code consultation en minuscule sert d‟extension au fichier mémo associé aux critères de consultation, il ne faut pas lui donner le code d‟extension mémo déjà existante (ddm, sel, rpt à éviter). Intitulé :
Ce texte est repris en titre de l‟onglet de la fenêtre principale.
Traitement standard : Ce traitement est réservé à SAGE et doit contenir les actions standards liées à la consultation. Il doit contenir une étiquette $ACTION. Traitement spécifique : Ce traitement est réservé aux distributeurs et doit contenir les actions spécifiques liées à la consultation. Il doit contenir une étiquette $ACTION. Fenêtre principale : Cette zone est obligatoire. Fenêtre critères : Cette zone est facultative. Elle conditionne la présence du bouton « critère ». Code écran par défaut : Cette zone est facultative. Elle permet d‟affecter automatiquement un écran paramétré au lancement de la consultation. Cet écran est modifiable par la zone ECRAN de la fenêtre de critères. Tableau des critères : Ce tableau n‟est saisi que si une fenêtre critère est renseignée. Il permet : - de faire correspondre les zones critères de l‟écran entête avec les zones de l‟écran critères génère les sous-pro $CRITENT (alim. critères) et $ENTCRIT (alim. entête) dans le traitement CNSxxx - d‟identifier les critères d‟affichage génère le sous-pro $CRITAFF dans le traitement CNSxxx 30 lignes de critères maximum peuvent être renseignées. Copyright © Sage 2011
Page 160
SAFE X3 DEVELOPPEMENT
21.5.2.
Onglet Tables : Tables ouvertes automatiquement dans le traitement.
21.5.3.
Onglet Divers : Permet de renseigner la table principale. La clef de parcours.
Onglet divers: - Objet : Cette zone est facultative. Si vous souhaitez que la consultation exploite et mette à jour les derniers lus, indiquer l‟objet associé. - Table & abréviation : Si un objet est précisé, la table est forcée à celle de l‟objet, sinon la table indiquée ici ne servira qu‟à gérer les boutons magnétos. Indiquer sous quelle abréviation utilisée cette table en gestion de consultation, par défaut l‟abréviation du dictionnaire des tables est proposée. - Clé : Toujours pour la gestion des derniers lus ou des boutons magnétos, indiquer la clé de parcours de fichier. Cette zone est obligatoire si une table est renseignée. - Condition : Ces zones sont facultatives et permettent de sauter certains enregistrements de la table en exploitation des derniers lus et en utilisation des boutons magnétos. Utiliser le caractère „ pour délimiter une valeur alphanumérique. - Composantes de clé : Indique la correspondance entre les composantes de la clé et les champs de l‟écran d‟entête. -
Magnétos O/N : Indique si les boutons magnétos sont gérés. Non saisi si aucune table n‟est précisée.
Copyright © Sage 2011
Page 161
SAFE X3 DEVELOPPEMENT
21.6.
ACTION SUR MODELE CONSULTATION
Modèle « consultation »
AUTORIS OUVRE
En tout début de modèle, sert à gérer les droits Permet l‟ouverture des tables et des mask
LECTURE FILTRE uniquement
Quand on lance la recherche Depuis l'action de lecture, pour le spécifique
Copyright © Sage 2009-2010
21.6.1.
Safe X3 Développement
84
AUTORIS
Cette action est appelée en tout début de modèle. Et sert à contrôler que l'utilisateur a les droits de lancer cette consultation.
Sert à : Effectuer des contrôles supplémentaires au modèle et d'empêcher la consultation en positionnant OK = 0. Changer le code mémo associé à la consultation en fonction du contexte en alimentant la variable MEMO. Exemple : Consultation de la balance âgée. consultation BAG. $AUTORIS If GFONCTION="CONSBAG" MEMO="bag" If PARAM(1) = "2" : MEMO = "bg2" : Endif Else MEMO="bah" If PARAM(1) = "2" : MEMO = "bh2" : Endif Endif Return
Copyright © Sage 2011
Page 162
SAFE X3 DEVELOPPEMENT
21.6.2.
OUVRE
Cette action est appelée en début de modèle, lorsque la consultation est autorisée pour l'utilisateur. Les tables et masques ont été ouverts par le modèle. Sert à : Faire des déclarations de ressources nécessaires et des initialisations, par exemple : Déclarer des variables globales ou locales par les syntaxes du type Local Integer MA_VARIABLE Global Char POUR_TOUS(100) Affecter des variables globales Ouvrir des tables avec des instructions du type If clalev ([F :XXX]) = 0 : Local File XXXXX : Endif Elle sert aussi à alimenter les critères de sélection, par exemple Elle sert aussi indiquer, si on lance la recherche au lancement de la consultation ou pas. Dans certains cas, il peut être préférable de faire saisir les critères avant toute tentative de recherche ; cela se fera en positionnant la variable CHARGMT à 1. Les variables disponibles sont les suivantes : PARAM()(1..) :
paramètres passés à l'appel de la consultation
PROGCNS : consultation
traitement généré à la validation de la consultation. Il est nommé CNS+code
CHARGMT : défaut.
recherche déclenchée dès l'entrée dans la consultation ( 0 oui / 1 non ). oui, par
21.6.3.
LECTURE
Cette action est appelée quand on lance la recherche, c'est à dire au lancement de la fonction, lorsque l'on pagine ou lorsque l'on change les critères. Cette action est indispensable pour alimenter l'écran de consultation par l'ensemble des enregistrements sélectionnés. Sert à : Alimenter l'écran de consultation par l'ensemble des enregistrements sélectionnés. On appelle l'action "FILTRE" afin que le spécifique puisse éventuellement insérer un filtre de sélection. Cette action sera écrite sur le modèle ci-dessous (extrait de la consultation des devis). Exemple : $LECTURE #-- critères obligatoires (section facultative) If [M:CSQ1]CPY="" & [M:CSQ1]SALFCY="" : NBLU=0 : Return Endif Gosub CHANGE_MSK From GCONSULT If CHGPAG 0 SUITE=1 If CHGPAG = 1 : RETOUR = 1 : Elsif CHGPAG = 2 : RETOUR = 2 : Endif Case [M:CCSQ]TRI When 1 : # tri par numéro Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) Order By Key SQH0 When 2 : # tri par date Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) & Order By Key CLE=[F:SQH]QUODAT;[F:SQH]SQHNUM Endcase Else RETOUR=1 If CHGPAG = -1 : SUITE = 1 : Else SUITE = 2 : Endif Case [M:CCSQ]TRI When 1 : # tri par numéro Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) Order By Key SQH0 Desc When 2 : # tri par date Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) & Order By [F:SQH]QUODAT Desc ;[F:SQH]SQHNUM Desc Endcase Endif #-- raz du masque si 1ere ou dernière page If CHGPAG2 & CHGPAG-2 : Raz [M:CSQ2] : Endif #-- boucle de lecture $BOUCLE For [SQH] #-- Filtre supplémentaire (section facultative) If [M:CSQ1]CPY "" If [F:FCY]FCY [F:SQH]SALFCY Read [F:FCY]FCY0 = [F:SQH]SALFCY If fstat Raz [F:FCY] : Endif Endif If [F:FCY]LEGCPY [M:CSQ1]CPY Goto SUIV : Endif Endif If NBLU = 1 If CHGPAG=2 | CHGPAG=-2 : Raz [M:CSQ2] : Endif NBLU = 2 Endif #-- stockage des bornes début et fin d'enregistrement pour l'écran If CHGPAG > 0 If NOL >= MAXLIG-1 : SUITE=2 : Break : Endif NOL += 1 If NOL=0 DEBNUM = [F:SQH]SQHNUM DEBDAT = [F:SQH]QUODAT Endif FINNUM = [F:SQH]SQHNUM FINDAT = [F:SQH]QUODAT Else If NOL Consultations>Commandes>Lignes commandes ». Le filtre sera une borne inférieure sur le total de commande TTC.
21.1.2.
Marche à suivre
Ajout du champ YTTCD dans la consultation CSP. Le champ doit être positif et dans l‟écran d‟entête. Création du traitement CNSCSPSPE. Ce traitement devra filtrer les commandes ayant un total TTC inférieur au critère saisi en entête.
Copyright © Sage 2011
Page 166
SAFE X3 DEVELOPPEMENT
21.1.3.
A vérifier
Le bon fonctionnement du filtre.
Copyright © Sage 2011
Page 167
SAFE X3 DEVELOPPEMENT
22. POINT D’ENTREE REGLES DES POINTS D’ENTREE
22.1. – – – – –
Ils permettent l‟ajout de code dans les traitements fonctionnels du standard Ils complètent les possibilités données par les actions Ils sont réservés uniquement aux spécifiques Ils sont systématiquement accompagnés d‟une documentation Ils sont ajoutés à la demande. Pour être actif, les points d‟entrée doivent être reliés à un traitement standard. Cette liaison est à renseigner dans le menu : « Développement>Dictionnaire traitements>Traitements>Points d‟entrée »
Lier un traitement standard à un ou plusieurs traitements spécifiques. Pour l‟appel de plusieurs traitements spécifiques : Renseigner le champ « paramétrage » Sous la forme PROG1~CODACT1; PROG2~CODACT2;… Programmer l‟appel de ces traitements depuis le traitement spécifique principal.
Points d‟entrée Trait. Trait.Standard Standard FUNAUTDLV FUNAUTDLV GPOINT GPOINT ==««AUTDLVFIL AUTDLVFIL»» Gosub GosubENTREE ENTREEFrom FromEXEFNC EXEFNC Table TableAENTREE AENTREE lien lientrait traitstandard standard&&spécifique spécifique FUNAUTDLV FUNAUTDLV
ZZFUNAUTDLV ZZFUNAUTDLV
Trait. Trait.Spécifique SpécifiqueZZFUNAUTDLV ZZFUNAUTDLV $ACTION $ACTION Case CaseACTION ACTION When When«AUTDLVFIL» «AUTDLVFIL»: :Gosub GosubAUTDLVFIL AUTDLVFIL When default When default Endcase Endcase return return Copyright © Sage 2009-2010 Safe X3 Développement
86
Traitement standard Placement et attribution d‟un nom au point d‟entrée. Transmis par patch. Traitement superviseur (EXEFNC) Recherche du traitement spécifique dans la table AENTREE par la variable adxpno(1) contenant le nom du traitement standard. Appel du traitement spécifique.
Copyright © Sage 2011
Page 168
SAFE X3 DEVELOPPEMENT
Traitement spécifique Le nom doit commencer par X,Y ou Z. Doit contenir l‟étiquette $ACTION Table AENTREE Livrée vide Doit faire la correspondance entre un traitement standard et spécifique. Menu : « Développement>Dictionnaire traitements>Traitements>Points d‟entrée »
Deux Variables Globales disponibles • GENTSTD(i) : traitement standard de la table AENTREE • GENTSPE(i) : traitement spécifique associé
22.2. 22.2.1.
EXERCICE : GESTION DES COMMANDES STANDARD Objectif
Ajouter un champ spécifique dans la gestion des commandes standard. Ce champ pourra être saisissable, affiché ou invisible par paramétrage dans les transactions de saisie.
22.2.2.
Marche à suivre
Ajout du champ en gestion commande Ajouter le champ YFLGSPE d‟intitulé « Flag Spécifique », de type menu local 1, dans la table SORDER. Ajouter ce même champ dans l‟écran SOH2, en case à cocher saisissable. Ajout d‟un champ en transaction de saisie des commandes Cette fonction est accessible depuis le menu : Paramétrage / Ventes / Transactions de saisie / Commandes Ajouter le champ YFLGSPECOD dans la table SALTRS pour permettre le paramétrage du champ YFLGSPE par transaction de saisie. Il est de type menu local 35, longueur 15. Ajouter ce même champ dans l‟écran SLC2. Utiliser le point d‟entrée approprié pour que le champ YFLGSPECOD paramètre l‟affichage du champ YFLGSPE (saisissable, affiché, invisible).
Copyright © Sage 2011
Page 169
SAFE X3 DEVELOPPEMENT
Ces transactions de saisie permettent de générer des écrans à partir des écrans de base des commandes (SOH0, SOH1, SOH2, SOH3, SOH4).
Copyright © Sage 2011
Page 170
SAFE X3 DEVELOPPEMENT
22.2.3.
A vérifier
Pour la gestion des commandes standards : Saisie et stockage du champ YFLGSPE
Pour les transactions de saisie : Générer une transaction ou tous les champs sont saisissables Générer une transaction ou tous les champs sont affichés Générer une transaction ou tous les champs sont invisibles Les utiliser dans la gestion des commandes
Notes
Copyright © Sage 2011
Page 171
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 172
SAFE X3 DEVELOPPEMENT
23. ECRANS GRAPHIQUES 23.1.
PRESENTATION GRAPHE SIMPLE ET MULTI
Ecrans graphiques : Graphe simple Axes d’analyse
Ventes > Consultations > Commandes par période
Copyright © Sage 2009-2010
libellés
Safe X3 Développement
88
Graphe simple et multi-graphe • Visualisation • Survol d‟un élément affiche l‟abscisse et coordonnée • Simple clic sur une barre permet d‟afficher le menu contextuel de la variable de bas de tableau • • • •
Champ invisible : non affiché dans le graphe, et axe invisible Champ avec intitulé vide : non affiché dans le graphe, et axe invisible Champ invisible par trt : non affiché dans le graphe, mais axe visible Intitulé évalué : non géré sur graphe simple. (multi ok)
Graphe simple : Visualisations successives, si plusieurs axes d‟analyse paramétrés pour le graphe Permet d‟avoir une échelle adaptée aux données de chaque axe. Exemple : • Commandes normales • Commandes de prêt • Commandes à facturation directe
Copyright © Sage 2011
Page 173
SAFE X3 DEVELOPPEMENT
Ecrans graphiques : Multi-graphe Axes d’analyse
Ventes > Consultations > Commandes par période
Copyright © Sage 2009-2010
libellés
Safe X3 Développement
89
Multi-graphes : Visualisation de plusieurs valeurs sur le même graphe. Représentation pouvant être différente pour chaque valeur (barre, ligne) Représentation distincte, cumulative ou comparative
Limites des graphes simples ou multi • 550 cellules pour les valeurs de graphe • 16 axes d‟analyses max. (au-delà, se dessine mais pas de couleur affectée) • Couleur affectée automatiquement • Taille et disposition du libellé calculées automatiquement (horizontale si possible, sinon verticale)
Copyright © Sage 2011
Page 174
SAFE X3 DEVELOPPEMENT
23.2.
PARAMETRAGE
23.2.1. >
Paramétrage du bloc et du graphe
Appel d‟un graphe à partir d‟un tableau dans le dictionnaire des écrans Représentation du bloc : > Caractères > Car. ou Graph. > Car. et Graph. > Graphique Paramétrage du graphe par clic droit sur ce champ. Option > T : affichage complet du tableau > Permet d‟afficher un graphe complet (si graphe est affiché par défaut) Exemple > Ecran SGO1, permettant de visualiser la liste des commandes.
>
Paramétrage du graphe sur click droit de la colonne « représentation » Type graphique : > Graphe simple > Multi-graphe > XLS > Gantt > Agenda Position du graphe par rapport au tableau (car. et graphe) Affichage par défaut (car. ou graphe) > Tableau > Graphique Représentation (multi-graphe) > Multi > Cumulatives > Comparatives Tous les graphes se paramètrent de la même façon : Insertion d‟un tableau avec les différents axes, puis renseignement des paramètres graphiques.
Copyright © Sage 2011
Page 175
SAFE X3 DEVELOPPEMENT
23.2.2.
Paramétrage des champs d‟écrans
Ecrans graphiques : Graphe simple et Multigraphe
Axes d’analyse
Copyright © Sage 2009-2010
libellés
Safe X3 Développement
90
Paramétrage des champs : • Libellé ( sur champ caractères ) 1 seul • Valeur ( sur champ numérique ) plusieurs possible • Défaut ( sur champ numérique ) 1 seul Défaut : axe analytique affiché par défaut Représentation des axes : • Défaut (suit la définition du graphe) • Barre • Ligne
23.2.3.
Effacement des lignes de totalisation Lorsqu'on a une ligne de totalisation dans une consultation, l'objectif est généralement d'avoir cette ligne de totalisation dans le tableau, mais pas sur le graphe associé.
Pour cela, il faut : prévoir un champ de type de données AEX en invisible dans le tableau. alimenter ce champ par la valeur "X" sur les lignes à exclure du graphe. Le superviseur se chargera ensuite automatiquement de l'exclusion.
Copyright © Sage 2011
Page 176
SAFE X3 DEVELOPPEMENT
23.3.
GANTT
23.3.1.
Présentation
Ecrans graphiques : Gantt
Copyright © Sage 2009-2010
Safe X3 Développement
91
Graphe à déclarer de type Gantt dans les paramètres graphiques. Graphe • Visualisation • Ordonnancement et enchaînement dans le temps, des tâches et opérations nécessaires à l‟aboutissement d‟un projet. • Les opérations apparaissent en ordonnée • La durée (mois, jour, semaine) apparaît en abscisse • Chaque tâche est représentée par une barre horizontale dont la longueur est proportionnelle à la durée de sa réalisation • Le minipad affiche un aperçu de la zone du graphique en cours de visualisation. • •
capacités de déplacement et de zoom grâce à son MiniPad. Lors d'un zoom, l'échelle de temps (timeline) évolue en temps réel pour une plus grande fluidité de l'interface.
Exemple : « Production > Données techniques > Gammes > Gestion Gammes »
Copyright © Sage 2011
Page 177
SAFE X3 DEVELOPPEMENT
23.3.2.
Paramétrages des champs d‟écrans
Ecrans graphiques : Gantt
Clé
Copyright © Sage 2009-2010
Nom
Date interne
Safe X3 Développement
Durée D affichée Type jour
92
Lignes Plusieurs lignes pour chaque opération. • Une ligne entête (clé et nom doivent être renseignés) • Des lignes détail (nom doit être absent, et tous les autres champs renseignés) Colonnes • Aucun nom n‟est imposé. • Le paramétrage permet l‟identification de chaque colonne. • Paramétrage par table diverse 915 Date interne Champ A(12) Date exprimée sous la forme AAAAMMJJHHMM Pour formater cette date interne : Call CONVDATI (date, heure, date_interne) From INTRUTILA Avec date en type date, heure en integer, date_interne en char Durée affichée Alimente les barres du gantt (7 j avec le week-end) Champ DCB(9,2) Unité : journée de 24 heures Ex : pour exprimer une durée de 1h30, c‟est 1,5/24= 0.0625 Durée obligatoire pour chaque tache. Remarque : mettre 0.01 pour ne pas afficher la barre Durée Alimente l‟info bulle par survol sur la barre (5 j travaillés) Description identique, par contre cette durée peut être égale à 0
Copyright © Sage 2011
Page 178
SAFE X3 DEVELOPPEMENT
23.4. 23.4.1.
AGENDA Présentation
Ecrans graphiques : Agenda
Copyright © Sage 2009-2010
Safe X3 Développement
93
Graphe à déclarer de type Agenda dans les paramètres graphiques. Graphe : • L‟agenda permet une consultation des évènements (rdv, tâches, appels) de la CRM • Avec Création, modification ou suppression d‟événement par tunnel depuis l‟agenda • Type d‟événement différencié par sa couleur • Evènement terminé symbolisé par un trait gris • Survol événement : affiche un résumé • Click événement : affiche une fiche plus détaillée • Interface entre agenda CRM et Outlook • Bi-directionnel • Paramétrable par utilisateur Exemple : « Relation>Action commerciale>Agenda »
Copyright © Sage 2011
Page 179
SAFE X3 DEVELOPPEMENT
23.4.2.
Paramétrage des champs d‟écrans
Ecrans graphiques : Agenda
Copyright © Sage 2009-2010
Safe X3 Développement
94
Tableau : Lignes 1 ligne pour chaque évènement. Colonnes • Aucun nom n‟est imposé. • Le paramétrage permet l‟identification de chaque colonne. • Paramétrage par table diverse 915
Copyright © Sage 2011
Page 180
SAFE X3 DEVELOPPEMENT
23.5.
PLANNING MENSUEL
23.5.1.
Présentation
Ecrans graphiques : Planning mensuel
Type de jour 1 Ouvré 2 Week-end 3 Férié
Activité 1 Travaillé 2 Congés payés 3 RTT 4 Maladie 5 Formation
Copyright © Sage 2009-2010
Safe X3 Développement
95
Graphe : Interactif : affectation d‟une activité Avec le traitement interactif standard, seul les jours ouvrés sont modifiables. Possibilité de rendre le planning non modifiable en mettant tous les champs du tableau en affiché Possibilité d‟afficher des totaux par activité (calcul automatique par traitement du composant écran) • • • •
Planning gérant de 1 à 12 mois (remplissage du tableau) Affichage de 1 à 12 mois simultanément (paramétrage graphe) Affectation de 1 à 8 activités (paramétrage graphe par menu local) Découpage des jours en 1 à 4 plages (présence champ « plage » dans tableau)
Tableau : • 1 ligne par jour • 1 colonne par plage d‟activité (1 à 4)
Copyright © Sage 2011
Page 181
SAFE X3 DEVELOPPEMENT
23.5.2.
Paramétrage des champs
Ecrans graphiques : Planning mensuel
mess(1,9837,1)
Copyright © Sage 2009-2010
Safe X3 Développement
96
Bloc technique Champ clob invisible pour recevoir le graphe Tableau Lignes : • 1 ligne par jour (maximum : 365 lignes pour un planning d‟un an) Colonnes : • TECDAT : date interne Champ A(12) Date exprimée sous la forme AAAA-MM-JJ-SS-J (SS-J = no semaine – no jour dans la semaine) À alimenter par le sous-pro TRSFDATP (date, TECDAT) From INTRUTILA • TYPDAY : type jour (ouvré, we, férié) • PLAG1 à PLAG4 : 1 à 4 plages d‟activité par jour La présence des champs définit le nb de plages par jour • TOTTYP1 à TOTTYP8 : 1 à 8 totaux d‟activité Les mettre en fonction du nombre d‟activités (menu local 9837) Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l‟XSL
Copyright © Sage 2011
Page 182
SAFE X3 DEVELOPPEMENT
23.5.3.
>
Paramètres graphiques
Paramètres graphiques Appel d‟un graphe de type XSL Appel du champ clob définis dans un bloc technique de l‟écran pour recevoir le code d‟affichage XSL du composant écran APLNAM Paramétrage des valeurs suivantes : > Nombre de mois affichés > Menu des types d‟activité > Remise à jour graphique > Programme d‟interaction
Paramètres : Nombre de mois affichés : 1 à 12 mois Menu des types d‟activité : Menu local modifiable (1 à 8 activités) Remise à jour graphique : Permet le recalcul du graphe suite à l'interaction sur le graphe lui-même 1 non : cet XSL fait systématiquement la mise à jour du graphe Programme d‟interaction : • • • • •
Copyright © Sage 2011
AMAJPLAN par défaut (programme livré) possibilité d‟avoir un autre traitement Doit obligatoirement appeler le sous-programme MAJPLAN Doit obligatoirement avoir les paramètres identiques au sousprogramme MAJPLAN de AMAJPLAN Doit être déclaré dans le dictionnaire des sous-programmes
Page 183
SAFE X3 DEVELOPPEMENT
23.6. >
COMPOSANTS GRAPHIQUES Présentation Les composants graphiques permettent la réalisation de graphes interactifs appelable dans les écrans X3. Traitement en langage XSL, transforme du xml en html ( + ajout de javascript ) Renseignements des paramètres d‟interactions entre X3 et le composant graphique. Le dictionnaire des composants graphiques se situe dans le menu : « Développement>Dictionnaire traitements>Ecrans>Composants Ecran »
Codes : Associés des menus locaux à des codes XSL pour fournir un jeu de libellés dans la langue de l‟utilisateur Programmes : Mise à jour de la classe [M] à partir de la modification du graphe : • affecter de l‟activité • Calcul des totaux Pour le planning, ce traitement est exécuté à chaque affectation d‟activité, et les paramètres sont : • Date début (identifiée par la ligne du tableau X3) • Plage début (de 1 à 4) • Date fin (identifiée par la ligne du tableau X3) • Plage fin (de 1 à 4) Ce traitement Sage X3 est livré. Remarque : La mise à jour du graphe depuis le tableau est prise en charge par l‟XSL. Paramètres : Jusqu‟à 5 paramètres avec leur valeur par défaut, modifiable éventuellement dans l‟écran d‟appel.
Copyright © Sage 2011
Page 184
SAFE X3 DEVELOPPEMENT
23.7.
PLANNING ANNUEL
23.7.1.
Présentation
Ecrans graphiques : Planning annuel
Copyright © Sage 2009-2010
Safe X3 Développement
97
Graphe : Interactif : affectation d‟une activité Avec le traitement interactif standard, seul les jours ouvrés sont modifiables. Possibilité de rendre le planning non modifiable en mettant le tous les champs du tableau en affiché Possibilité d‟afficher des totaux par activité (calcul automatique par traitement du composant écran) • • •
Planning gérant de 1 à 12 mois (remplissage du tableau) Affectation de 1 à 8 activités (paramétrage graphe par menu local) Découpage des jours en 1 à 4 plages (présence champ « plage » dans tableau)
Copyright © Sage 2011
Page 185
SAFE X3 DEVELOPPEMENT
23.7.2. >
Paramètres écrans
Paramètres : Code XSL : APLANY Menu des types d‟activité : > menu local modifiable (1 à 8 activités) Remise à jour graphique : > permet le recalcul du graphe suite à l'interaction sur le graphe lui-même > 1 non : cet XSL fait systématiquement la mise à jour du graphe Programme d‟interaction : > AMAJPLAN par défaut (programme livré) > possibilité d‟avoir un autre traitement > Doit obligatoirement appeler le sous-programme MAJPLAN > Doit obligatoirement avoir les paramètres identiques au sous-programme MAJPLAN de AMAJPLAN > Doit être déclaré dans le dictionnaire des sous-programmes
Copyright © Sage 2011
Page 186
SAFE X3 DEVELOPPEMENT
23.8. 23.8.1.
NOMENCLATURE HORIZONTALE Présentation
Ecrans graphiques : Nomenclature horizontale
Copyright © Sage 2009-2010
Safe X3 Développement
98
Graphe : Le composant XSL permet de représenter des nomenclatures horizontalement. Avec le traitement interactif standard, il est possible de : • Déplacer un élément et tout ce qui lui est attaché, si autorisé • Afficher une photo pour chaque élément • Avoir un menu contextuel (clic droit sur élément) • D‟exécuter un traitement associé par double-clic sur dernier niveau d‟élément, si autorisé (point d‟entrée CLICNOM depuis AMAJHIER) Le menu contextuel est à constituer, par l‟ajout d‟action Bouton, sur la variable de bas de tableau • Exemple suppression de l‟élément : Subprog B2_NBCMP Local Char MESSAGE(100) Local Integer CODRET Call MAJHIER("D",nolign,"",0,MESSAGE,CODRET) From AMAJHIER If CODRET1 Call ERREUR(MESSAGE) From GESECRAN Endif End
Copyright © Sage 2011
Page 187
SAFE X3 DEVELOPPEMENT
23.8.2. >
Paramétrage écran
Paramètres écran Appel d‟un graphe de type XSL Appel du champ clob définis dans un bloc technique invisible de l‟écran pour recevoir le code d‟affichage XSL du composant écran ANOMH
Bloc tableau lignes • 1 ligne par élément de nomenclature colonnes • PARENT : « clé du père » de l‟enregistrement courant. Obligatoire, sauf la tête de nomenclature. • KEYC : « clé » de l‟enregistrement courant. Obligatoire • IMG : « image ». Facultatif. Image redimensionnée à la hauteur du nœud (paramètre SIZEB) • LIBSHORT : « libellé court ». Facultatif. Affiché dans le cadre du nœud • LIBL1 : « libellé long ». Facultatif. Info bulle affichée au survol d‟un nœud Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l‟XSL
23.8.3. >
Paramétrage graphique
Paramètres graphiques : Composant écran : ANOMH Modification autorisée : 1 non, 2 oui (Déplacement d‟une hiérarchie) Exécution sur double clic > 1 non / 2 oui (traitement à écrire dans AMAJHIER) sur élément le + bas > point d‟entrée CLICNOM depuis AMAJHIER Remise à jour graphique > permet le recalcul du graphe suite à l'interaction sur le graphe lui-même > 2 OUI : flag à positionner sur nomenclature horizontale et verticale Taille des boites : > 100 x 100 points par défaut (adaptée pour image) Programme d‟interaction : > AMAJHIER par défaut (programme livré) > possibilité d‟avoir un autre traitement > Doit obligatoirement appeler le sous-programme MAJHIER > Doit obligatoirement avoir les paramètres identiques au sous-programme MAJHIER de AMAJHIER > Doit être déclaré dans le dictionnaire des sous-programmes
Paramètres : ANOMH Modification autorisée : 1 non, 2 oui (Déplacement d‟une hiérarchie) Exécution sur double clic • 1 non / 2 oui (traitement à écrire dans AMAJHIER) • Sur élément le + bas • point d‟entrée CLICNOM depuis AMAJHIER Remise à jour graphique Copyright © Sage 2011
Page 188
SAFE X3 DEVELOPPEMENT
Permet le recalcul du graphe suite à l'interaction sur le graphe lui-même 2 OUI : flag à positionner sur nomenclature horizontale et verticale Taille des boites : • 100 x 100 points par défaut (adaptée pour image) Programme d‟interaction : • AMAJHIER par défaut (programme livré) • possibilité d‟avoir un autre traitement • Doit obligatoirement appeler le sous-programme MAJHIER • Doit obligatoirement avoir les paramètres identiques au sous-programme MAJHIER de AMAJHIER • Doit être déclaré dans le dictionnaire des sous-programmes. Chemin d‟accès aux icones :
4.7 Nomenclature horizontale
Stockage images
Copyright © Sage 2009-2010
Safe X3 Développement
99
Images A placer dans le répertoire X3_PUB/ »dossier »/RES Le traitement applicatif doit lire les images dans la base de données. Puis les stocker dans ce répertoire, avant l‟affichage de l‟organigramme.
Copyright © Sage 2011
Page 189
SAFE X3 DEVELOPPEMENT
23.9.
NOMENCLATURE VERTICALE
23.9.1.
Présentation
Ecrans graphiques : Nomenclature verticale
Paramétrage > Utilisateurs > Profil menu Safe X3 Développement
Copyright © Sage 2009-2010
100
Graphe : Composant XSL permettant de représenter des nomenclatures verticales Avec le traitement interactif standard, il est possible de : • Déplacer un élément et tout ce qui lui est attaché, si autorisé • Plier / déplier un élément (clic sur symbole ou double-clic sur l‟élément) • Avoir un menu contextuel (clic droit sur élément) • D‟exécuter un traitement associé par double-clic sur dernier niveau d‟élément, si autorisé (point d‟entrée CLICNOM depuis AMAJHIER) Le menu contextuel est à constituer, par l‟ajout d‟action Bouton, sur la variable de bas de tableau • Exemple suppression de l‟élément : Traitement identique à la suppression sur nomenclature horizontale
Copyright © Sage 2011
Page 190
SAFE X3 DEVELOPPEMENT
23.9.2.
Paramètres écran Appel d‟un graphe de type XSL Appel du champ clob définis dans un bloc technique invisible de l‟écran pour recevoir le code d‟affichage XSL du composant écran ANOMV. Renseignement des paramètres écrans > 1 ligne par élément de nomenclature > PARENT : « clé du père » de l‟enregistrement courant. Obligatoire, sauf la tête de nomenclature. > KEYC : « clé » de l‟enregistrement courant. Obligatoire > ICO : « icône ». > LIBL1 : « libellé long ». Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l‟XSL
23.9.3.
Paramètres graphiques : Composant écran : ANOMV Modification autorisée : 1 non, 2 oui (Déplacement d‟une hiérarchie) Exécution sur double clic : > 1 non, 2 oui (traitement à écrire dans AMAJHIER) sur élément le + bas > point d‟entrée CLICNOM depuis AMAJHIER Remise à jour graphique > permet le recalcul du graphe suite à l'interaction sur le graphe lui-même > 2 OUI : flag à positionner sur nomenclature horizontale et verticale Programme d‟interaction : > AMAJHIER par défaut (programme livré), possibilité d‟avoir un autre traitement > Doit obligatoirement appeler le sous-programme MAJHIER > Doit obligatoirement avoir les paramètres identiques au sous-programme MAJHIER de AMAJHIER > Doit être déclaré dans le dictionnaire des sous-programmes
Copyright © Sage 2011
Page 191
SAFE X3 DEVELOPPEMENT
Ecrans graphiques : Nomenclature verticale
Stockage images Copyright © Sage 2009-2010
Safe X3 Développement
101
Icones À placer sous X3_PUB/X3_ROOT • RESSTD/IMG pour le standard • RESPER/IMG pour le spécifique • RESVER/IMG pour le vertical
Copyright © Sage 2011
Page 192
SAFE X3 DEVELOPPEMENT
23.10. 23.10.1.
RADAR Présentation
Ecrans graphiques : Radar
Copyright © Sage 2009-2010
Safe X3 Développement
102
Graphe : visualisation uniquement Possibilité de sélectionner ou pas un élément à analyser ( clic sur l‟œil ) Possibilité de mettre en évident un élément à analyser ( clic sur couleur )
23.10.2.
Paramétrage écran Appel d‟un graphe de type XSL Appel du champ clob définis dans un bloc technique invisible de l‟écran pour recevoir le code d‟affichage XSL du composant écran ARADAR Renseignement des paramètres écrans > 1 ligne par élément à analyser > libellé : un identifiant unique ( ex : Matric1, Matric2, … ) un libellé associé à l‟identifiant > valeur : valeur correspondant à l‟axe d‟analyse précisé dans l‟intitulé, doit être de type entier ou décimal et avoir un intitulé Remarque : > Possibilité de bouton sur variable de bas de tableau (clic droit sur zone) > Aucun nom n‟est imposé.
Copyright © Sage 2011
Page 193
SAFE X3 DEVELOPPEMENT
23.10.3.
Paramètres graphiques : Composant écran : ARADAR Echelle : > Permet de fixer une valeur maximum pour repère graphique, et calcule d‟une échelle. > 0 : le composant adapte son échelle à la + grande valeur à représenter Menu échelle : > Menu local permettant de définir une légende pour la graduation de l‟échelle Remise à jour graphique 1 non / 2 oui Composant écran : > Aucun programme d‟interaction. > Il n‟y aura donc pas de possibilité d‟intervenir sur ce graphe. > Il sera juste en visualisation.
Copyright © Sage 2011
Page 194
SAFE X3 DEVELOPPEMENT
23.11. 23.11.1.
BROWSER Présentation
Ecrans graphiques : Browser
Copyright © Sage 2009-2010
Safe X3 Développement
103
Objectif Afficher une à trois pages html, dans un bloc écran. Onglet dans une barre en haut du bloc. Exemple d‟utilisation en standard : • Plan d‟accès par clic droit sur la ville (type donnée CTY)
23.11.2.
Paramètres écran Code url ou html à renseigner par clic droit sur le bloc « browser » Possibilité d‟avoir 3 pages web 1 Champ clob pour recevoir ces pages html Ajout d‟un champ clob récepteur du code HTML.
23.11.3.
Définition composant écran Ce code doit exister dans la gestion des composants écran Soit une adresse url (peut-être évalue) Soit une page html L‟url évaluée est déterminée en initialisation du clob. (affzo)
Copyright © Sage 2011
Page 195
SAFE X3 DEVELOPPEMENT
23.12. 23.12.1.
BUREAUTIQUE Présentation
Ecrans graphiques : Bureautique
Copyright © Sage 2009-2010
Safe X3 Développement
104
Graphe • Saisir ou afficher un document Word, Excel ou PowerPoint (en fonction du mode saisie champ blob) • Stockage du document dans un champ de la base de données X3. • Possibilité « d‟enregistrer sous » … et de constituer un fichier. • Possibilité « d‟ouvrir » et d‟insérer un document existant. • Des macros peuvent être déclenchées depuis X3, pour permettre une interaction dans les 2 sens entre documents et données X3. Exemple : « Vente>Devis>Devis »
Copyright © Sage 2011
Page 196
SAFE X3 DEVELOPPEMENT
23.12.2.
Traitement X3 de mise à jour
La mise à jour d‟un tableau X3 avec un document WORD ou Excel est effectuée par le traitement suivant : ############################################################################### $MAJX3 # maj Excel vers X3 # le blob contenant le document Excel s‟appelle CEXCEL CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20) Effzo [M]10 For I=0 To 19 If CART(I)="" : Break 1 : Endif [M]ARTICLE(I)=CART(I) [M]INTIT(I)=CINTIT(I) [M]QTE(I)=CQTE(I) [M]PRIXU(I)=val(ctrans(CPRIXU(I),",",".")) … $CHMULTLIG # maj X3 vers Excel Local Char DESIMG(100)(0..9),CPRIXU(20)(0..9),CPRIXTOT(20)(0..9),CTTC(20)(0..9) CALLIU "majexc" From CEXCEL With [M]ARTICLE(0..[M]NBLIG),[M]INTIT(0..[M]NBLIG),[M]QTE(0..[M]NBLIG),[M]PRIXU(0..[M]NBLIG) Return ############################################################################### Le choix du document de devis à utiliser est à paramétrer dans le menu suivant : « Vente > Devis > Documents office par défaut »
23.12.3.
Paramètres écran Appel d‟un champ blob définis dans un bloc bureautique de l‟écran pour recevoir le document. Dimension (lignes - colonnes / capacité de stockage) Par clic droit sur le type bloc « bureautique » possibilité de typer le document (Word, Excel, power point), ou de laisser le choix à l‟utilisateur (banalisé)
23.12.4.
Instruction calliu Appel d‟une Macro Visual Basic Application associée à un document bureautique (Word, Excel, PowerPoint) contenu dans un champ blob d‟écran X3 Appel d‟une méthode JScript associée à un bloc graphe de type DHTML contenu dans un champ blob d‟écran X3
Syntaxe CALLIU macro From champ_blob With liste_paramètres Macro : nom de la macro VBA ou méthode javascript à exécuter sur le client champ_blob : champ BLOB ou CLOB d’un écran contenant document ou graphe liste_paramètres : liste des paramètres à passer entre l’application X3 et la macro Exemple CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20)
Copyright © Sage 2011
Page 197
SAFE X3 DEVELOPPEMENT
23.12.5.
Programme VBA Pour écrire un programme VBA allez dans le menu « Outils>Macro>Visual Basic Editor » La sécurité doit être au minimum pour permettre l‟exécution des macros « Outils>Options… ». Exécution de la macro par Calliu.
Traitement X3 ########################################################################## # maj tableau X3 à partir du document Excel Local Char CART(20)(0..20) Local Char CINTIT(40)(0..20) Local Integer CQTE(0..20) Local Char CPRIXU(20)(0..20) CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20) Effzo [M]10 For I=0 To 19 If CART(I)="" : Break 1 : Endif [M]ARTICLE(I)=CART(I) [M]INTIT(I)=CINTIT(I) [M]QTE(I)=CQTE(I) [M]PRIXU(I)=val(ctrans(CPRIXU(I),",« »",".")) Next I [M]NBLIG=I : Gosub CALCTOT : Affzo [M]10 Return ########################################################################## Macro Visual Basic Application Function majx3(article() As String, desig() As String, qte() As Integer, prixu() As Variant) Dim Range1 As String For i = 0 To 20 Range1 = "A" + CStr(i + 2) Range(Range1).Select article(i) = ActiveCell.Value desig(i) = ActiveCell.Offset(0, 1).Value qte(i) = ActiveCell.Offset(0, 2).Value prixu(i) = ActiveCell.Offset(0, 3).Value Next Range("A1").Activate End Function
Copyright © Sage 2011
Page 198
SAFE X3 DEVELOPPEMENT
23.13. 23.13.1.
METHODES JAVASCRIPT Présentation
Ecrans graphiques : macro VBA / méthode Javascript
Copyright © Sage 2009-2010
Safe X3 Développement
105
Bloc graphique de type DHTML Dans cet exemple, les icônes permettent l‟appel à une méthode Jscript, du composant écran lié au bloc « browser »
23.13.2.
Traitements X3
Subprog CL_ICO1(VALEUR) Variable Char VALEUR() CALLIU "verifierActionJoueurA" From CLT1 With 38 End Subprog CL_ICO2(VALEUR) Variable Char VALEUR() CALLIU "verifierActionJoueurA" From CLT1 With 37 End Subprog CL_ICO4(VALEUR) Variable Char VALEUR() CALLIU "verifierActionJoueurA" From CLT1 With 32 End Subprog CL_ICO5(VALEUR) Copyright © Sage 2011
Page 199
SAFE X3 DEVELOPPEMENT
Variable Char VALEUR() CALLIU "verifierActionJoueurA" From CLT1 With 39 End Subprog CL_ICO6(VALEUR) Variable Char VALEUR() CALLIU "verifierActionJoueurA" From CLT1 With 40 End
23.13.3.
Méthode javascript Les méthodes JavaScript sont à écrire directement dans le composant écran.
Copyright © Sage 2011
Page 200
SAFE X3 DEVELOPPEMENT
23.14.
EDITEUR HTML
23.14.1.
Présentation
Ecrans graphiques : Editeur html > Bloc Editeur HTML Permet de saisir une documentation pour un objet.
Développement > Dictionnaire données > Documentation > Documentation Copyright © Sage 2009-2010
Safe X3 Développement
106
Exemple dans le menu : « Développement > Dictionnaire données > Documentation > Documentation » Gestion Documentation Existe aussi en gestion documentation champ Dégriser le bouton « ENREGISTRER » pour une modification dans le clob ########################################################################### $STYLE Setmok [M] With 0 Return Subprog C_VLDFLG(VALEUR) Variable Integer VALEUR Look [ADH]ADH0=[M]LAN;[M]TYP;[M]COD;[M]LEV;[M]SUBLEV If !fstat : mkstat = 4 : Endifbouton End ###########################################################################
Copyright © Sage 2011
Page 201
SAFE X3 DEVELOPPEMENT
23.15. 23.15.1. >
VUE PORTAIL Présentation
Paramètres écran Appel d‟un champ clob définis dans un bloc Editeur HTML de l‟écran pour recevoir les informations. Dimension ( lignes - colonnes / capacité de stockage )
Ecrans graphiques : Vue portail
Copyright © Sage 2009-2010
Safe X3 Développement
107
Vue portail • Visualisation uniquement • Eléments portail insérables dans les écrans • Pas de tableau de données associé • Pas de traitement à écrire • C‟est un jeu de paramétrage à insérer dans l‟écran • Vue portail autorisée : calendrier, agenda ou graphe flash (type composant = FCA, FAG, FGR) Exemple : C‟est une requête restituée par un graphe flash. Pour chaque fenêtre, est indiqué le nombre de masques.
Copyright © Sage 2011
Page 202
SAFE X3 DEVELOPPEMENT
23.15.2.
Paramètres écran Permet l‟affichage de données externes à la fonction Description bloc > Sélection d‟une vue portail (paramétrage/portail/vues portail) > Paramètre est un champ clob Les champs > Un seul champ de type clob > C‟est le réceptacle des informations > Dimension ( lignes - colonnes / capacité de stockage )
23.16. 23.16.1.
EXERCICE : CONSULTATION DES COMMANDES Objectif
Consulter un ensemble de commandes en fonction de critères de sélection saisis en entête. Visualiser le résultat sous forme de graphe dans deux onglets : Visualisation de la quantité et Prix HT pour chaque article commandé (graphe) Visualisation de la quantité pour chaque article commandé mois par mois (radar) Le traitement appliquera le filtre sur le fichier article, selon les critères de sélection. Pour l‟onglet 1 : Pour chaque article, on lira l‟ensemble des lignes de commande correspondantes pour remplir le tableau.
Copyright © Sage 2011
Page 203
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 204
SAFE X3 DEVELOPPEMENT
Pour l‟onglet 2 : Pour chaque article, on lira l‟ensemble des lignes de commande correspondantes pour remplir le tableau ; et pour chaque ligne de commande, on lira l‟entête de commande.
23.16.2.
Marche à suivre
Création d‟un écran d‟entête Création de 2 onglets Création d‟une action Création d‟une fonction Création du traitement
YGX1 YGX2, YGX3 YGX YGX YGX
Pour ce faire, utiliser les descriptions ci-dessous.
Ecran d’entête Saisie de bornes article. Champ YITMREFD
Saisie
Oblig.
S
non
Particularités
Dévelop.
Fenêtre de sélection sur vos articles Pas de contrôle d‟existence de la valeur
YITMREFF
S
non
Fenêtre de sélection sur vos articles Pas de contrôle d‟existence de la valeur
Copyright © Sage 2011
Page 205
SAFE X3 DEVELOPPEMENT
Onglet 1 Prévoir un tableau, dans lequel on aura une ligne par article. Pour chaque ligne d‟article, on a un champ quantité et prix HT * quantité Associer un graphe à ce tableau. Le tableau et le graphe sont visualisables.
Champ
Libellé
NBLIG
Saisie
Spécifique
S
Tunnel sur la fiche article
Dévelop.
YITMREF
Article
A
Alimenté par la référence article
Oui
YQTY
Quantité
A
Alimenté par la quantité
Oui
YORDNOT
Prix HT
A
Alimenté par: prix * quantité
Oui
Onglet 2 Prévoir un tableau, dans lequel on aura une ligne par article. Pour chaque ligne d‟article, on a la désignation article et la quantité mois par mois. Associer un radar à ce tableau. Le tableau et le graphe sont visualisables.
Champ
Libellé
NBLIG
Saisie
Spécifique
S
Tunnel sur la fiche article
Dévelop.
YITMREF
Article
A
Alimenté par la référence article
Oui
YITMDES
Nom
A
Alimenté par la désignation article
Oui
YCRIT1
Janvier
A
Alimenté par la quantité
Oui
Décembre
A
Alimenté par la quantité
Oui
… YCRIT12
Fenêtre YGX Cette fenêtre est composée de : un entête et deux onglets boutons « recherche » et « fin »
Action YGX Choisir le modèle pour le développement de cette fonction.
Traitement Suite à la saisie des bornes articles, l‟utilisateur clique sur le bouton « Recherche ». Ce bouton doit lire les commandes et afficher les résultats dans les deux onglets à la fois. Le traitement YGX est à compléter.
Copyright © Sage 2011
Page 206
SAFE X3 DEVELOPPEMENT
23.16.3.
A vérifier
Les données restituées dans les graphes et tableaux.
Notes
Copyright © Sage 2011
Page 207
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 208
SAFE X3 DEVELOPPEMENT
24. SPECIFIQUE 24.1. 24.1.1.
REGLES GENERALES Règles de nommage Les caractères suivants sont strictement réservés et ne doivent pas être utilisés hors de ce contexte : A* superviseur – J* produit TMS – W* éléments générés – X* add-on et verticaux, – Y* spécifiques partenaires – Z* spécifiques clients Les caractères suivants sont recommandés : – M* module GPAO – P* module achat – S* module vente, stock Utilisation d'une codification anglophone, pouvant être constituée de groupes de 3 car. capitalisés dans la fonction "codification/rubriques" Positionnement Code activités verticaux et spécifiques – – –
Création : code activité au niveau le plus haut Modification : code activité au niveau le plus bas Suppression : code activité inactif
Les noms de traitements sont limités à 30 caractères.
24.1.2.
Règles pour action / champ standard
STD
ne sont ni modifiables ni supprimables
SPV SPE
action verticale action spécifique
Action dictionnaire X, Y ou Z Remarque : Les actions spécifiques sur champs ne nécessitent pas de codes activité.
24.1.3.
Règles pour action / modèle Ordre d‟exécution figé : spécifique, vertical puis standard Désactivation de l‟action standard : GPE=1 Désactivation de l‟action verticale : GPV=1 Possibilité d‟appel de l‟action standard ou vertical par programmation :
################################################################################ #Permet l‟exécution du standard avant le spécifique Copyright © Sage 2011
Page 209
SAFE X3 DEVELOPPEMENT
$ACTION Case ACTION When «OUVRE » : Gosub OUVRE When default Endcase return $OUVRE Gosub OUVRE From SUBxxx … ( spécifique) GPE = 1 return ################################################################################
Copyright © Sage 2011
Page 210
SAFE X3 DEVELOPPEMENT
24.1.4.
Nommage des traitements spécifiques Objet :
24.1.5.
SPE+objet SPV+objet
pour traitement vertical
Consultation :
CNS+consultation+SPE
Traitement standard Saisie fenêtre : Sélection table : Sélection liste : Affichage divers : Etat : Import / export :
Xxxx, Yxxx, Zxxx
Transaction de saisie
Certains écrans standards sont affichés dans l‟application via des écrans générés par les fonctions de transactions de saisie
Exemple pour les inventaires (écrans standard SNL0) Stock>Inventaires>Inventaires L’écran SLN0 n’est jamais affiché. L‟écran de nom W+compteur généré par la transaction de saisi est utilisé. Pour modifier l‟écran appelé par « Stock>Inventaires>Inventaires » la marche à suivre est la suivante: _ Modification de SNL0. _ Puis validation de la ou des transactions dans « paramétrage>Stock>Transactions de saisie>Inventaire ». Les autres transactions sont répertoriées dans les différents modules. Attention ! Si l‟on modifie directement les écrans de transaction alors les modifications seront écrasées par la prochaine validation de la transaction!
24.1.6.
Traitements générés
Noms W0+écran W1..9+écran WO + objet WG + fenêtre WWCNS + cons. WWINI + abrév. WWI + compteur WWE + compteur WWGLOBLON WWGLOBVAR WWGLOB + chap
Copyright © Sage 2011
Intitulés Traitement d'import d'un écran Traitements d'un écran Traitement d'un objet Traitement d'une fenêtre Traitement d'une consultation Traitements d'initialisation d'une table Traitement d'import Traitement d‟export Var. glob. liées aux types de données alphanumériques Variables globales liées aux paramètres Variables globales liées aux paramètres par chapitre
Page 211
SAFE X3 DEVELOPPEMENT
24.1.7.
Limites des composants dictionnaires
Eléments Nombre d‟onglets Nombre de browsers Nombre de boutons sur champs Nombre de boutons et menus Nombre d‟options dans les fonctions Nombre d‟options dans les objets Textes de la table ATEXTE
Total 15 9 20 60 8 9
Standard 10 6 16
1 – 49 999
Spécifique 5 3 4 minuscules minuscules minuscules 50 000 – 99 999
Ajout des éléments spécifiques (onglets, browsers, …) en fin de liste standard Placement par le rang Messages : Vertical
160 - 169 5000 – 5199 6000 – 6199
Spécifique
Menus locaux : Vertical 1000 – 1999 5200 – 5999 Spécifique 6200 – 6999 Pour les tables diverses 1000 - 1999 Tables diverses Un code activité est nécessaire dans leur définition
24.1.8.
Règles des paramètres généraux
Ajout d‟un chapitre spécifique (Xxx, Yxx, Zxx) dans la table diverse 901 chapitres pour paramètres –
Ajout d‟un paramètre spécifique (Xxx, Yxx, Zxx) dans ce chapitre
Ajout d’un paramètre spécifique Peut aussi se faire dans un chapitre standard Dans tous les cas, il doit avoir un code activité spécifique Traitement WWGLOBVAR Dès qu‟une variable globale est associée au paramètre • exécuté automatiquement à la connexion du dossier Traitement WWGLOBXXX ( XXX = module ) • est alimenté dès qu‟un paramètre de niveau société ou site est associé à une variable globale • n‟est pas exécuté automatiquement • dès l‟entrée dans une fonction ou dès la saisie du champ site faire Call GLOBVAR (SITE) From WWGLOBXXX Variable globale Est à créer dans le dictionnaire associé Pour le spécifique doit commencer par X,Y,Z,GX,GY ou GZ.
Copyright © Sage 2011
Page 212
SAFE X3 DEVELOPPEMENT
24.1.9.
Création de patch avec bornes de date
La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \ Création automatique de patch » Cette fonction permet : Sélection automatique : Tous les éléments spécifiques modifiés entre 2 dates avec code activité. Langue : Pour sélectionner les messages attachés aux éléments patchés. Traitement à exécuter : Sera lancé en fin d‟intégration de patch Doit contenir le sous-programme PATCH. Le dossier est passé en paramètre. Exemple : #################################################################### Subprog PATCH(APPLI) Value Char APPLI If clalev([F:ADS])=0 local File ADDOSSIER [ADS] Endif Read [ADS]DOSSIER=APPLI : If fstat Raz [F:ADS] Endif If [F:ADS]MODULE(n)2 End Endif … End #################################################################### Type de patch Provisoire ou définitif
24.1.10.
Création de patch sans bornes de date
La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \ Création de patch » Sélection automatique : tous les éléments spécifiques pour le code activité renseigné. Langue : Pour sélectionner les messages attachés aux éléments patchés. Traitement à exécuter : sera lancé en fin d‟intégration de patch Type de patch Provisoire ou définitif Patch standard : intégration du standard dans tous les dossiers. Spécifique et vertical conservés Patch superviseur : intégration dans le dossier mère uniquement. (réservé au standard pour la doc.) Patch vertical : intégration dans tous les dossiers. Spécifique conservé. Suppression des actions SPV obsolètes. Patch spécifique : intégration dans tous les dossiers. Suppression des actions SPE obsolètes. Nom fichier : SRCxxxxxxxx Insertion des traitements et états dans les répertoires adéquats du dossier applicatif.
Copyright © Sage 2011
Page 213
SAFE X3 DEVELOPPEMENT
Type objet : Ordre de déclaration sans importance (tri du superviseur) patch d‟un traitement : source ou compilé pour tout type patchable : validation associée effectuée pour les fonctions : validation menus ADMIN seulement tout enregistrement de toute table est patchable abrev de la table Filtre de sélection du ou des enregistrements table système sont à intégrer dans le dossier mère pour lancer un traitement suite à l‟intégration du patch type = EXE nom = nom du traitement à exécuter ce traitement aura un sous-programme PATCH peut écrire dans la trace Code activité : Code activité spécifique obligatoire et doit être créé dans le dossier du client et coché actif.
24.1.11.
Exécutables
EXE à insérer lorsqu'on patche les éléments suivants : Ecran de consultation ( AMK ) EXE SUBGTC permet la validation de tous les écrans de paramétrage Ecran de base ( AMK ) EXE SUBxxx permet la validation de toutes les transactions de saisie ( xxx= code objet de la transaction ) Styles de présentation ( ASY ) EXE SUBASY permet la validation de tous les styles Transactions systèmes ( AMI ) EXE SUBAMI permet la validation de toutes les transactions Paramètres statistiques ( PS2 ) EXE SUBPS2 permet la validation de toutes les stats Eléments associés à insérer lorsque l’on patche les éléments suivants : Style conditionnel (ASL) patcher les écrans associés ( AMK ).
24.1.12.
Nommage d‟un patch
La règle de nommage conseillée, pour les fichiers patchs en spécifique ou vertical est : ___.dat SpecificId : identifiant du spécifique ou vertical PatchNumber : numéro d‟ordre séquentiel X3RequiredPatchLevel : numéro de liste de patch standard à partir duquel est compatible le spécifique/vertical (facultatif) X3Version : version du produit hôte avec laquelle est compatible le patch spécifique/vertical prérequis : dossier déclaré de type spécifique pour intégration des traitements.
Copyright © Sage 2011
Page 214
SAFE X3 DEVELOPPEMENT
24.1.13.
Patch concernant une table :
Pour la structure d‟une table type ATB, suivi du nom de la table. Pour annuler et remplacer tous les enregistrements d'une table type TAB, suivi du nom de la table. Pour patcher un ou plusieurs enregistrements d'une table, type abrév. table, suivie d'une expression de filtre. Le patch permet la création ou la modification d'enregistrements, mais pas la suppression. Type TAB : Attention ! Aucun lien avec une autre table n'est pris en compte ( ex : textes traduits ).
Copyright © Sage 2011
Page 215
SAFE X3 DEVELOPPEMENT
24.1.14.
Test d‟un patch
Le test d‟un patch se fait via le menu : « Développement \ Utilitaires \ Patch \ Test de patch » Avant l‟intégration de patch standard Vérifie si des éléments à patcher sont en conflit avec les éléments protégés par code activité spécifique. Vérification de tous les patchs d‟un répertoire Une trace détaille l‟ensemble des conflits Exemple : La consultation BAL protégée par le code activité ZDA ne sera pas mise à jour par patch standard.
24.1.15.
Intégration d‟un patch Renseignement du chemin du fichier à créer. Ne pas oublier de cocher l‟information « Intégration des patchs ». Ne garder sélectionnés que les dossiers où doit être intégré le patch.
Dossier : • passer le patch sur le dossier applicatif uniquement Intégration de traitements spécifiques : • il faut un dossier typé « dossier spécifique » • Ou un patch nommer SRCxxxxxxx • Sinon, seuls les traitements spécifiques déjà existants seront mis à jour. Sur un dossier de test : • Intégration des traitements standards qui sinon resteraient dans le dossier mère. Action ZSPX sur un champ d’écran : Rend inactif toute les actions spécifiques de même type sur ce champ SPE, SPX, actions > X. Ce type de traitement est surtout utilisé dans les versions antérieures à la V5, car maintenant, nous pouvons désactiver les actions standards ou verticales directement à partir du paramétrage de l‟écran.
Copyright © Sage 2011
Page 216
SAFE X3 DEVELOPPEMENT
25. CONCLUSION 25.1.
THEMES ABORDES AU COURS DE CETTE FORMATION : Création des éléments suivants : > tables, écrans, objet, fenêtre, actions, fonction, batch, traitement SPE Modification de l‟existant : > tables, écrans, objet, fenêtre, fonctions, code activité Choix du modèle à utiliser pour le développement d‟une fonction : > Modèle objet, saisie fenêtre, traitement standard… Apprentissage du langage X3.
Copyright © Sage 2011
Page 217
SAFE X3 DEVELOPPEMENT
25.2.
TABLEAU DES FORMATIONS
Copyright © Sage 2011
Page 218
SAFE X3 DEVELOPPEMENT
26. EXERCICES COMPLEMENTAIRES 26.1.
EXERCICE A : CHANGEMENT DE STYLE (COMPLEMENT EX 1)
26.1.1.
Objectif
En gestion article, déclencher le changement de style lorsque l‟utilisateur modifie le statut actif/inactif sur une ligne article.
26.1.2.
Marche à suivre
Programmer le changement du style sur la référence article, en utilisant l‟instruction Chgstl (voir la syntaxe dans l‟aide en ligne).
26.1.3.
A vérifier
Si on rend l‟article actif, le style devient visible sur la référence article. Si on rend l‟article inactif, le style est effacé.
Notes
Copyright © Sage 2011
Page 219
SAFE X3 DEVELOPPEMENT
26.2.
EXERCICE B : TEXTES TRADUITS EN GESTION ARTICLE (COMPLEMENT EX 1 )
26.2.1.
Objectif
Ajouter 2 champs dans la gestion article : Texte traduit long Texte traduit court
26.2.2.
YDESTRA YSHOTRA
Marche à suivre
Ajouter ces 2 champs dans la table, l‟écran et la fenêtre de sélection des articles. Permettre une mise à jour de ces champs dans la table des Textes traduits, pour ce faire aidez-vous de l‟exemple du traitement SUBTUN utilisé pour traduire les unités.
26.2.3.
A vérifier
En gestion commande, ouvrir la fenêtre de sélection des articles. Dans la fonction des articles créer des intitulés traduits.
Notes
Copyright © Sage 2011
Page 220
SAFE X3 DEVELOPPEMENT
26.3. EXERCICE C : LISTES GAUCHES EN GESTION CLIENT (COMPLEMENT EX 2) 26.3.1.
Objectif
Ajouter 4 listes gauches simples, dans la gestion client : YC1 YC2
Liste des prospects, en ne proposant que les prospects Liste des clients, en ne proposant que les clients Ces 2 listes sont composées des champs YBPCNUM et YBPCNAM.
YC3
Liste composée des champs YBPCNAM et YBPCNUM, triée par nom.
Ajouter une liste gauche hiérarchisée, dans la gestion client : YC4
26.3.2.
Liste composée des champs YARE et YBPCNUM.
Marche à suivre
Pour répondre au besoin de la liste YC4 qui est une liste hiérarchisée, créer un index supplémentaire dans table YCUSTOMX, sur laquelle cette liste pourra s„appuyer. Pour filtrer les enregistrements sur une liste, aidez-vous de l‟aide sur les actions liées aux browsers. Pour l‟identification de la liste gauche, aidez-vous de l‟aide de l‟action OUVRE_BOITE définis à la fin du chapitre 12 du cours.
26.3.3.
A vérifier
Présence des nouveaux browsers. L‟alimentation de ces browsers Browser hiérarchisé pour le browser YC4 Alimentation partie droite de l‟écran, lorsqu‟on sélection un élément d‟un browser.
Copyright © Sage 2011
Page 221
SAFE X3 DEVELOPPEMENT
Notes
Copyright © Sage 2011
Page 222
SAFE X3 DEVELOPPEMENT
26.4.
EXERCICE CONSULTATION CLIENT
26.4.1.
Objectif
Créer une consultation capable d‟afficher et de trier les clients en fonctions de critères. 26.4.2.
Marche à suivre
Création des écrans entête et détail Création de la fenêtre Création de la consultation de nom YCL Création de l‟action Création de la fonction
Ecran d’entête Champ
Saisie
YTRI
S
Oblig.
Menu local
YORDTOTNOT
S
DCB
YARE
S
Type ADI
YTRI doit contenir les 3 possibilités :
Particularités
Aucun tri Secteur géographique Total HT
Ecran détail Champ
Saisie
Oblig.
Particularités
YBPCNUM
S
Type de données YCX
YORDDAT
S
Date dernière commande
YORDTOTNOT
S
DCB
YORDTOTATI
S
DCB
YARE
S
Type ADI (table 1000)
Traitement : Le traitement devra permettre l‟affichage de la liste des clients avec la possibilité de trier de 3 manières différentes : Aucun tri : La clef de parcours est définie par l‟index YCX0 Secteur géographique : La clef de parcours est définie par YARE + YBPCNUM Total HT : la clef de parcours est définie par YORDTOTNOT par ordre décroissant. Le traitement permettra de filtrer les commandes en dessous du total HT définis dans le YORDTOTNOT. Enfin, le traitement permettra d‟afficher uniquement les commandes réalisé dans un secteur géographique, champ YARE. Pour créer ce traitement aidez-vous de l‟exemple du cours décrit dans l‟action LECTURE.
Copyright © Sage 2011
Page 223
SAFE X3 DEVELOPPEMENT
26.4.3.
A vérifier
Affichage des clients sur clique du bouton Recherche Gestion des tris et des filtres
26.4.4.
Etape N°2
Gestion des boutons bas de pages. Un traitement YGENETEST est présent sur votre dossier, ce traitement permet d‟effacer toutes les lignes précédemment créées (commandes, clients, articles) pour créer 1000 lignes de tests par tables. Pour exécuter ce traitement allez dans le menu « Développement>Utilitaires>Divers>Exécution Traitement » puis renseignez le nom du traitement. Une fois le traitement exécuté, vérifiez que les lignes ont bien été créées, puis modifiez votre traitement pour que celui-ci prenne en compte le changement de page devenu maintenant nécessaire. Pour modifier le traitement, aidez-vous de l‟exemple du cours décrit dans l‟action LECTURE. 26.4.5.
A vérifier
Vérifier le fonctionnement des boutons RETOUR et SUITE Notes
Copyright © Sage 2011
Page 224
SAFE X3 DEVELOPPEMENT
26.5.
SUJETS ABORDES
Exercice 1
Objet de type tableau
Exercice 2
Objet de type simple Action du dictionnaire Appel action champ Type de donnée Table diverse Menu local
Exercice 3
Objet de type simple (entête – détail) Actions sur champ Action sur l‟objet
Exercice 4
Menu dans barre de menu Saisie fenêtre
Exercice 5
Bouton en bas d‟écran Traitement standard Locks logiques – Locks physiques Ecriture dans une trace
Exercice 6
Consultation des commandes standards
Exercice 7
Point d‟entrée Transaction de saisie
Exercice 8
Visualisation avec graphes
Exercice A
Changement de style
Exercice B
Texte traduit
Exercice C
Liste gauche
Exercice D
Consultation client
Copyright © Sage 2011
Page 225
SAFE X3 DEVELOPPEMENT
Copyright © Sage 2011
Page 226