Professional Documents
Culture Documents
Support de formation
Développement
Version 6
SAFE X3 DEVELOPPEMENT
PREREQUIS
Pour accéder à cette formation, vous devez avoir au préalable :
Sage ERP X3
Introduction
Business Intelligence Installation des
X3F-INT 1 jour Exploitation patchs
X3E-BIU 2 jours X3E-IPT 2 heures
X3F-OVW 2 jours X3F-CTO 3 jours X3A-ADM 3 jours X3E-CRI 2 jours X3E-ECP 1 jour
Interfaces Processus et
Import / Export Graphiques
Pré-requis obligatoire
Pré-requis recommandé
“Sage Certified Consultant” examen
Web Formation
6 © 2009 Sage – Division Moyennes & Grandes Entreprises
SOMMAIRE
SOMMAIRE ................................................................................................................................................. 4
1. INTRODUCTION ..................................................................................................................................... 8
2. TABLES ................................................................................................................................................ 10
2.1. RESUME ................................................................................................................................................. 10
2.2. DESCRIPTION DETAILLE DES PARAMETRES D’UNE TABLE : ................................................................................... 10
2.3. LES LIMITES ............................................................................................................................................. 14
2.4. ACTION BOUTON BAS D’ECRAN .................................................................................................................... 14
2.5. DES CHAMPS PARTICULIERS ......................................................................................................................... 15
3. ECRANS ............................................................................................................................................... 17
3.1. DÉFINITION .............................................................................................................................................. 17
3.2. RENSEIGNEMENT DES INFORMATIONS GENERALES ........................................................................................... 17
3.3. AGENCEMENT DES BLOCS ........................................................................................................................... 19
3.4. RENSEIGNEMENT DES CHAMPS .................................................................................................................... 20
3.5. CHAMPS SPECIAUX A PARAMETRER ............................................................................................................... 21
3.6. CONTRAINTE TECHNIQUE POUR L’APPEL D’UN BLOC TABLEAU DEROULANTS .......................................................... 22
4. OBJETS ................................................................................................................................................ 24
4.1. DÉFINITION ............................................................................................................................................. 24
4.2. GESTION OBJET SIMPLE .............................................................................................................................. 24
4.3. GESTION TABLEAU .................................................................................................................................... 25
4.4. GESTION COMBINE .................................................................................................................................... 26
4.5. GESTION BROWSER ................................................................................................................................... 27
4.6. DICTIONNAIRE DES OBJETS .......................................................................................................................... 28
4.7. VALIDATION D’UN OBJET ............................................................................................................................ 31
5. FENETRE .............................................................................................................................................. 32
5.1. DEFINITION .............................................................................................................................................. 32
5.2. RESUME ................................................................................................................................................. 33
5.3. ONGLET ECRANS ...................................................................................................................................... 33
5.4. ONGLET BOUTONS/MENUS ........................................................................................................................ 33
5.5. ONGLET BOUTONS PREDEFINIS .................................................................................................................... 34
5.6. ONGLET BROWSER .................................................................................................................................... 34
5.7. EXERCICE : GESTION DES ARTICLES ................................................................................................................ 35
6. MENUS LOCAUX .................................................................................................................................. 40
6.1. DÉFINITION .............................................................................................................................................. 40
7. TABLES DIVERSES ................................................................................................................................ 41
7.1. DÉFINITION ............................................................................................................................................. 41
7.2. SAISIE DES DONNEES .................................................................................................................................. 41
7.3. GESTION DE TABLE DE DEPENDANCE ............................................................................................................. 42
8. VUES ................................................................................................................................................... 43
8.1. DEFINITION ............................................................................................................................................. 43
8.2. PARAMETRAGE DE LA VUE .......................................................................................................................... 43
8.3. STRUCTURE GENEREE EN VALIDATION ........................................................................................................... 45
9. CODES ACTIVITE .................................................................................................................................. 47
9.1. DEFINITION ............................................................................................................................................. 47
9.2. CODES ACTIVITES FONCTIONNELS STANDARDS ................................................................................................. 47
9.3. CODES ACTIVITES DE DIMENSIONNEMENT ....................................................................................................... 47
9.4. CODES ACTIVITES DE LOCALISATION ............................................................................................................... 48
9.5. CODE ACTIVITES FONCTIONNELS SPECIFIQUES .................................................................................................. 48
9.6. PARTICULARITE DE LA DESACTIVATION PAR CODE ACTIVITE ................................................................................ 48
10. ACTIONS CHAMPS ........................................................................................................................... 50
10.1. DEFINITION ............................................................................................................................................. 50
10.2. APPEL DES ACTIONS SUR CHAMP .................................................................................................................. 51
10.3. LISTE DES ACTIONS SUR CHAMPS .................................................................................................................. 54
10.4. VARIABLES UTILISABLES POUR LES ACTIONS SUR CHAMPS .................................................................................. 60
10.5. ACTIONS STANDARD CAPITALISEES ................................................................................................................ 61
11. TYPES DE DONNEES ......................................................................................................................... 62
11.1. DÉFINITION ............................................................................................................................................. 62
11.2. DONNEES DE BASE .................................................................................................................................... 62
11.3. DONNEES STANDARDS ............................................................................................................................... 63
11.4. ACTIONS SUR CHAMP ................................................................................................................................ 63
11.5. ACTIONS SUR CHAMP POUR UN BLOC TABLEAU ............................................................................................... 63
11.6. TYPE DE DONNEES LIEES A L’OBJET : .............................................................................................................. 64
11.7. TEXTE TRADUITS ....................................................................................................................................... 64
11.8. CLOB ET BLOB .......................................................................................................................................... 66
11.9. SYNTAXE DU FORMAT ................................................................................................................................ 66
11.10. POUR UNE ACTION : ORDRE D’EXECUTION ................................................................................................. 69
11.11. EXERCICE : GESTION DES CLIENTS (GESTION SIMPLE) .................................................................................... 70
12. MODELE « OBJET » .......................................................................................................................... 76
12.1. DÉFINITION ............................................................................................................................................. 76
12.2. UTILISATION DU MODELE OBJET ................................................................................................................... 78
12.3. GESTION TABLE D’ENTETE PLUS TABLE DE DETAIL ............................................................................................. 93
12.4. EXERCICE : GESTION DES COMMANDES (GESTION ENTETE ‐ DETAIL) .................................................................... 99
12.5. GESTION DES BOUTONS/MENUS................................................................................................................ 108
12.6. LES BROWSERS ....................................................................................................................................... 110
13. ACTIONS ....................................................................................................................................... 114
13.1. DEFINITION ........................................................................................................................................... 114
13.2. INFORMATIONS GENERALES ...................................................................................................................... 115
13.3. RENSEIGNEMENT DES PARAMETRES ............................................................................................................ 116
14. MODELE « SAISIE FENETRE » ......................................................................................................... 119
14.1. DEFINITION ........................................................................................................................................... 119
14.2. PARAMETRAGE DE L’ACTION ..................................................................................................................... 119
14.3. ACTIONS SUR MODELE ............................................................................................................................. 120
14.4. GESTION DES BOUTONS/MENUS ................................................................................................................ 123
14.5. GESTION DES BROWSERS .......................................................................................................................... 126
14.6. EXERCICE : MENU DANS GESTION COMMANDE ............................................................................................. 127
15. MODELE « TRAITEMENT STANDARD » ........................................................................................... 130
15.1. DEFINITION ........................................................................................................................................... 130
15.2. PARAMETRES ......................................................................................................................................... 131
15.3. ACTIONS SUR MODELES : MODE INTERACTIF ................................................................................................. 132
15.4. ACTION SUR MODÈLES : MODE BATCH ......................................................................................................... 137
16. FONCTIONS ................................................................................................................................... 141
17. MODELE « AFFICHAGE DIVERS » .................................................................................................... 143
17.1. DEFINITION: .......................................................................................................................................... 143
17.2. ACTION UNIQUE TRT_DIV ....................................................................................................................... 143
18. MODELE « HORS MODELE » ........................................................................................................... 144
18.1. DEFINITION : .......................................................................................................................................... 144
18.2. PARAMETRE DU SOUS‐PROGRAMME ........................................................................................................... 144
18.3. DECLARATION DU SOUS‐PROGRAMME ........................................................................................................ 145
18.4. EXERCICE : CALCUL DE L’EN‐COMMANDE CLIENT EN BATCH ............................................................................. 147
19. MODELE « SELECTION TABLE » ...................................................................................................... 150
19.1. DEFINITION : .......................................................................................................................................... 150
19.2. ACTIONS SUR MODELE ............................................................................................................................. 151
20. MODELE « SELECTION LISTE » ........................................................................................................ 153
20.1. DEFINITION : .......................................................................................................................................... 153
20.2. ACTIONS SUR MODELES ............................................................................................................................ 154
20.3. VARIABLES DISPONIBLES EN LECTURE : ......................................................................................................... 156
21. MODELE « CONSULTATION » ......................................................................................................... 157
21.1. DEFINITION : .......................................................................................................................................... 157
21.2. FENETRE PRINCIPALE : .............................................................................................................................. 157
21.3. FENETRE DE CRITERES : ............................................................................................................................ 158
21.4. ELEMENTS COMPOSANT UNE CONSULTATION ............................................................................................... 158
21.5. PARAMETRES D’UNE CONSULTATION .......................................................................................................... 159
21.6. ACTION SUR MODELE CONSULTATION ......................................................................................................... 160
21.7. EXERCICE CONSULTATION CLIENT ............................................................................................................... 165
22. POINT D’ENTREE ........................................................................................................................... 167
22.1. REGLES DES POINTS D’ENTREE ................................................................................................................... 167
22.2. EXERCICE : GESTION DES COMMANDES STANDARD ........................................................................................ 168
23. ECRANS GRAPHIQUES ................................................................................................................... 172
23.1. PRESENTATION GRAPHE SIMPLE ET MULTI .................................................................................................... 172
23.2. PARAMETRAGE ....................................................................................................................................... 174
23.3. GANTT ................................................................................................................................................. 176
23.4. AGENDA ............................................................................................................................................... 178
23.5. PLANNING MENSUEL ............................................................................................................................... 180
23.6. COMPOSANTS GRAPHIQUES ...................................................................................................................... 183
23.7. PLANNING ANNUEL ................................................................................................................................. 184
23.8. NOMENCLATURE HORIZONTALE ................................................................................................................. 186
23.9. NOMENCLATURE VERTICALE ...................................................................................................................... 189
23.10. RADAR ............................................................................................................................................. 192
23.11. BROWSER ......................................................................................................................................... 194
23.12. BUREAUTIQUE ................................................................................................................................... 195
23.13. METHODES JAVASCRIPT ....................................................................................................................... 198
23.14. EDITEUR HTML ................................................................................................................................. 200
23.15. VUE PORTAIL ..................................................................................................................................... 201
23.16. EXERCICE : CONSULTATION DES COMMANDES .......................................................................................... 202
24. SPECIFIQUE ................................................................................................................................... 208
24.1. REGLES GENERALES ................................................................................................................................. 208
25. CONCLUSION................................................................................................................................. 216
25.1. THEMES ABORDES AU COURS DE CETTE FORMATION : ..................................................................................... 216
25.2. TABLEAU DES FORMATIONS....................................................................................................................... 217
26. EXERCICES COMPLEMENTAIRES ..................................................................................................... 218
26.1. EXERCICE A : CHANGEMENT DE STYLE (COMPLEMENT EX 1) ............................................................................. 218
26.2. EXERCICE B : TEXTES TRADUITS EN GESTION ARTICLE (COMPLEMENT EX 1 ) ........................................................ 219
26.3. EXERCICE C : LISTES GAUCHES EN GESTION CLIENT (COMPLEMENT EX 2) ........................................................... 220
26.4. SUJETS ABORDES .................................................................................................................................... 222
1. INTRODUCTION
Introduction
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.
Introduction
Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet
Types de donnée
Fenêtre Écrans
M. Locaux
T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx
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.
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.
> Audit
− Permet de tracer les modifications d’une table.
2.2.1.Onglet Général :
Champs Intitulé :
Renseignement des champs d’intitulé long et court pour les traitements superviseur
Ceci permet l’affichage automatique de cet intitulé dans les écrans, les changements de code.
Module :
Définit le module de la table. Un module permet à l’installation d’une solution d’activer les éléments
associé 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 inactifs dans un dossier client, il est nécessaire d'avoir une
cohérence dans l'affectation du module aux différents éléments du dictionnaire appelés depuis une
fonction
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 module Support client CRM, Achat ...
Les modules techniques Superviseur et Tronc commun sont SYSTEMATIQUEMENT installés, dans
un dossier client.
Type de base :
Par défaut celle du dossier.
Nombre de fiches :
Déterminera la taille de la table à créer.
Format 130 :
Permet à une Table d’un dossier V6 d’être accédée par un dossier 130.
Remise à zéro :
La table sera effacée par l’utilitaire de remise à zéro du dossier.
Accès non sécurisé :
Coché : tous les dossiers peuvent accéder à cette table en lecture écriture.
Non coché : seuls, les dossiers autorisés peuvent y accéder (onglet « liens » dans la fiche dossier)
Type de table :
Applicatif, Superviseur, Système X3 (dossier mère), Dictionnaire, Interne (non livrée). Pour
des tables spécifiques, l’option « Applicatif » doit être utilisée.
Type de copie :
À l’initialisation du dossier fille. Pour les tables applicatives et superviseur.
Type livraison :
Interne Adonix, cette donnée ne doit pas être modifiée.
2.2.2.Onglet 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 garanti l’intégrité de la base de donnée (annulation, Changement de code,
épuration), il s’agit de la table correspondant à la clef étrangère.
Expression de lien :
Si la table liée a une clé primaire à 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é
+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.
Cette 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)
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.
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
Mode de stockage :
unicode ou ascii
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é et
la fenêtre de la table quitté, 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.
Ceux-ci sont à déclaré 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.
EXPNUM
Information alimenté par le compteur d’export [C]EXPORT. Ce compteur est utilisé par le
superviseur, pour n’exporter que les enregistrements créés ou modifiés depuis le dernier
export.
ENAFLG :
Si besoin d’un flag actif sur la fiche d’un objet, alors un champ ENAFLG de type Menu local 1
(oui/non) doit être déclaré dans la table de l’objet.
Si la fiche est inactive, alors sur les champs liés au type de donnée liée à l’objet, la
fiche sera absente de la fenêtre de sélection.
En contrôle de la saisie, message d’erreur « fiche inactive »
3. ECRANS
3.1. DÉFINITION
Ecrans
Définition Fenêtre
Fenêtre
Une fenêtre X3 est composée de
Exemple
ExempleOBPR OBPR
plusieurs écrans de différents type Objet
Objettiers
tierslié
liéààlalatable
table
– Entête BPARTNER
BPARTNER
– Détail
– Etc...
Ecran1
Ecran1
BPR0
BPR0
Ecran2
Ecran2
BPR1
BPR1
...
...
Ecran
Ecrand’entête
d’entête Ecran
Ecranonglet
onglet
Eléments
Elémentscomposant
composantlala Informations
Informationssur
surl’identité
l’identité
clef
clef
Développement>Dictionnaire traitements>Ecrans>Ecrans
Copyright © Sage 2009-2010 Safe X3 Développement 8
Taille :
Type, nombre de lignes, nombres de colonnes, le maximum étant 28 lignes et 112 colonnes
(74 si la liste de gauche est présente).
RANG DU BLOC :
Donne l’ordre de saisie et peut être utilisé dans certaines instructions de zone (Affzo, Effzo,
Actzo, Diszo, Grizo).
LONGUEUR BLOC :
Sur les blocs de type liste, taille de l’intitulé du champ
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.
Grille maxi :
9 lignes
9 colonnes
Bloc liste :
Prend la taille imposée par l’occupation des champs.
Bloc tableau :
Prend la place qu’il reste sur l’écran.
Hauteur / Largeur : sur les blocs de type tableau, nb minimal de lignes ou colonnes. A
renseigner, qu’en cas de besoin.
CHAMP :
Les noms de champs doivent être préfixé par X,YZxxxxxxxx pour le spécifique.
INTITULE :
Intitulé court, normal, long de la table ou intitulé évalué.
COL :
Numéro de colonnes pour le placement des champs dans un bloc.
SAISIE :
Détermine si le champ est saisi, affiché, invisible ou technique.
MODE :
Mode de saisie d’un champ tableau (fiche, tableau ou les 2).
DIM :
Dimension d’un champ dans bloc liste ou nombre de lignes dans bloc tableau.
OBLIG :
Saisie obligatoire du champ (oui, non).
TUNNEL :
Tunnel sur objet lié au type de donnée de ce champ (oui , non ).
LIEN :
Affichage automatique du libellé défini dans la table liée au type de donnée de ce champ.
Valeur par défaut : ancienne méthode. On favorisera plutôt l’initialisation des champs globalement a
l’affichage de la fenêtre
Condition de saisie : ancienne méthode. On favorisera plutôt le grisage et dé-grisage des champs
globalement a l’affichage de la fenêtre
CHAMPS OPTION :
Dépend du type de champ (alphanumérique, numérique, menu local, date)
FORMAT :
Chaîne de formatage (chapitre « type de donnée ») insérable par le menu « Saisie du format » de la
colonne « Options »
L’existence d’informations sur le format est visualisée par le caractère « $ »
« Click droit>Sélection zones de fichier » sur le tableau des champs permet de sélectionner les
champs à afficher directement dans la base de données.
3.5.1.Clob :
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.
3.5.2.Blob :
Paramètres :
Occupation : Lignes et colonnes physiques
Type photo :
Normale
Etirée
Proportionnelle
Menu contextuel :
Sélectionner
Enregistrer
3.5.3.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.
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.
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.
Etre déclarée dans la colonne « Paramètre » paramètre sur le bloc tableau de l’écran.
Etre appelé 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 ligne à 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.
Exemple
Ecran SOH4 contenant les lignes de commandes de ventes.
Ecrans
Dictionnaire
Dictionnaire
Source
Sourceécran
écranavec
avecActions
Actionsdécrites
décrites
Répertoire
RépertoireEcran
Ecran
VALIDATION
*.msk
*.msk
W0xxx
W0xxx W1xxx
W1xxx SUBxxx
SUBxxx SPVxxx
SPVxxx SPExxx
SPExxx
par écran généré étiquettes par objet étiquettes étiquettes
généré
généré généré étiquettes étiquettes étiquettes
Traitement W0xxx :
Traitements entièrement générés pour l’import
Traitement W1xxx :
Traitements entièrement générés pour la saisie
Notes
4. OBJETS
4.1. DÉFINITION
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 choisis pour l’objet.
Liste
ListeGauche
Gauche Objet
Objeten
encours
coursde
degestion
gestion
Listes
Listesdes
des Clef
Clefde
del’enregistrement
l’enregistrementdans
dansl’écran
l’écrand’entête
d’entête
objets
objets
affichables
affichablessur
sur Listes
Listesdes
deschamps
champsregroupés
regroupéspar
paronglets
onglets
sélection
sélection fonctionnels
fonctionnels
Objets
Objetsaffichés
affichés
Un
Unenregistrement
enregistrementaffichés
affichéspar
parlignes
lignes
Un
Unchamp
champaffichés
affichéspar
parcolonnes
colonnesdu
dutableaux
tableaux
L’objet se présente sous la forme :
D’un seul écran
Pas de liste de sélection à gauche (« browser »)
Liste
ListeGauche
Gauche Objets
Objetsen
encours
coursde
degestion
gestion
Listes
Listesdes
des Clef
Clefde
del’enregistrement
l’enregistrementdans
dansl’écran
l’écrand’entête
d’entêteet
et
regroupements
regroupements dans un champ du tableau.
dans un champ du tableau.
d’objets
d’objets
affichables
affichablessur
sur Listes
Listesdes
desenregistrement
enregistrementdu
dugroupe
groupedans
dansles
les
sélection
sélection lignes du tableau.
lignes du tableau.
La création et la suppression d’un groupe se fait par : fichier nouveau et le bouton bas d’écran
« supprimer »
Liste
ListeGauche
Gaucheréalisée
réaliséeavec
avecl’objet Objet
l’objet ObjetXXX
XXX
de
detype
typebrowser
browser
Regroupement
Regroupementd’informations Mise
d’informations Miseààjours
joursdes
des
pouvant
pouvant provenird’une
provenir d’uneou
ouplusieurs
plusieurs champs
champs
tables.
tables.
Une liste de picking servant à mettre à jour les lignes d’un tableau.
Exemple « Vente>Commandes>Commandes » la liste de picking des devis.
4.6.1.Résumé
Onglet sélection : sélection possible via l’appel d’un type de données, construction de
la liste gauche lié à la table.
4.6.2.Onglet Général
Code objet :
Axxx (objet superviseur) / X,Y,Zxxx (objet spécifique)
Table liée :
Table gérée en automatique par l’objet, Les informations de cette table seront alors affichés et
mis à jour automatiquement.
Intitulé param. :
Texte qui dans le cas ou l’objet géré est identifié par 1 clé à 2 composantes, la 1ère
composante devient un paramètre pour la gestion objet.
Zone site :
Identification du champ de la table contenant le site, permet des contrôles automatiques sur
les habilitations.
Menu standard :
Menu dans lequel la fonction sera présente pour l’utilisateur ADMIN.
Les 2 états Crystal report ou code impressions, lancées par le menu « Fichier>Impression ou
liste ».
4.6.3.Onglet Sélection
Options de sélection :
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)
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ée dans le traitement WOxxx. ( xxx = code objet )
4.6.5.Onglet Vues
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
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
Objets
VALIDATION
WOxxx
WOxxx SUBxxx
SUBxxx SPVxxx
SPVxxx SPExxx
SPExxx
généré
généré Étiquette
Étiquette Étiquette
Étiquette Étiquette
Étiquette
$ACTION
$ACTION $ACTION
$ACTION $ACTION
$ACTION
Traitement WOxxx :
Traitement entièrement généré
Validation de l’objet :
Elle entraîne la validation de toutes les fenêtres s’y rapportant.
Bouton Suppression :
Supprime la description dans le dico, le traitement WOxxx, la fonction. Un objet peut être
supprimé si aucune fenêtre ne s’y rattache.
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
++ Boutons
Boutons/ /Menus
Menus Objets browser
Fenêtre objet :
Elle se nomme Oxxx ( xxx=code objet )
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 Browser
Ajout des listes gauches spécifiques, exemple fenêtre OSOH (gestion des
commandes)
Écran entête :
Obligatoire, si on a plusieurs onglets, celui-ci sera alors affiché en haut de la fenêtre.
Onglets :
Rang : permet au spécifique d’ajouter des onglets en fin de liste, mais de l’afficher au rang
indiqué.
Visible : si invisible, la classe [M] est présente.
Code activité : si inactif, la classe [M] est absente.
gestion :
Validant : contrôles effectués avant exécution du bouton menu.
Non validant : pas de contrôle. Lignes menu sont toutes « non validant ».
Actions :
Action dictionnaire : le traitement exécuté est celui défini dans l’action qui lance dans la fenêtre.
STD ou SPE : pas d’action dictionnaire. ce bouton n’ouvre pas de fenêtre.
Æ le traitement exécuté est celui de l’action modèle liée au bouton (ex EXEBOUT pour la gestion
objet)
L’action dictionnaire s’exécute avant l’action de l’objet.
Action :
Facultatif
Action dictionnaire : lorsqu’on veut ouvrir une fenêtre
expression lien : à renseigner pour les listes récursives, permet le chargement de la clé du sous-
niveau
Attention :
Lorsqu'on modifie le numéro de menu local sur un champ d'écran, ou lorsqu'on modifie le menu local
lui-même par l'ajout ou la modification d'éléments, il faut impérativement patcher l'écran ET la fenêtre.
En effet, la définition du menu local pour un champ est stockée dans la description de la fenêtre pour
le mode web.
5.7.1.Objectif
5.7.2.Marche à suivre
YUOM :
• De rendre la suppression impossible du code unité de la table des unités TABUNIT, s’il est
présent dans cette table des articles.
• De bénéficier des automatismes du superviseur pour l’objet des unités. (appel d’option,
tunnel, contrôle d’existence) Tous ces points seront détaillés dans le chapitre 11 sur les types
de données.
• De filtrer les enregistrements utilisables en ne permettant que la saisie des unités de
conditionnement par exemple.
L’objet est à construire de telle manière qu’on ait une ligne par fiche article.
5.7.3.A vérifier
5.7.4.Etape n° 2
5.7.5.Marche à suivre
Dans un deuxième temps, coloriser la « Référence Article », lorsque l’article est actif en utilisant les
styles conditionnels.
Utiliser les fonctions présentes dans le menu :« Paramétrage > Paramètres généraux >
Personnalisation > Ecrans » :
• Styles conditionnels
• Affectation style conditionnel
5.7.6.A vérifier
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 :
6. MENUS LOCAUX
6.1. DÉFINITION
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 160 - 169
5000 – 5199
Spécifique 6000 – 6199
Menus locaux :
Vertical 1000 – 1999
5200 – 5999
Spécifique 6200 – 6999
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.
7. TABLES DIVERSES
7.1. DÉFINITION
Les tables diverses sont crées dans le menu :
« Développement>Dictionnaire données>Tables diverses>Définition »
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ère depuis la V6
Les données sont :
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.
Affectation d’un champ obligatoire contrôlé par cette table par l’action d’init du champ (chapitre 9 sur
les actions sur champs).
8. VUES
8.1. DEFINITION
Les vues sont crées dans le menu : « Développement>Dictionnaire de données>Vues »
Une vue dans une base de données est une synthèse d'une requête d'interrogation de la
base. On peut la voir comme une table virtuelle, définie par une requête.
Accessible par Crystal
Accessible dans l’éditeur de formule
Accessible en programmation (en lecture seulement)
Certaine fonctions SQL sont maintenant accessible par X3 via la vue (GROUP BY,
UNION)
8.2.1.Résumé
Remarque : une vue ne peut pas porter le même nom qu’une table.
8.2.2.Onglet requête
Des formules Adonix peuvent figurer entre % %. Ces formules sont évaluées au moment de la
validation de la vue.
Par exemple, des variables globales peuvent contenir, le nom d’un dossier (vue d’une table X3 à partir
d’un autre produit).
GDOSX3 : contient le dossier mère pour tout produit
GDOSCPT : contient le dossier X3.
Des constantes peuvent êtres utilisées. Les encadrer par le caractère ‘.
Des variables globales peuvent contenir, par exemple, le nom d’un dossier externe (vue d’une table
X3 à partir d’un autre produit).
Les lignes commençant par le caractère « # » sont considérées comme des commentaires et ne sont
pas transmises à la base.
Normes : Les commentaires sont à écrire en anglais.
Utiliser une formule pour les champs dimensionnés ou activés par code activité.
Exemple :
# Champ Lien de dimension 1, 2 ou 3
Select CLENUM1_0,CLENUM2_0, LIEN_0
# si code activité de dimension 2 ou 3
%string$(find(func AFNC.ACTIV(« XXX »),2,3)<>0,«, LIEN_1»)%
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
Aide à la création
Fenêtre permettant la saisie d’une table et la sélection d’un ou plusieurs champs associés
8.2.4.Onglet Clés
Performances
Table sans trop d’enregistrements, ou avoir une clause « Where » pertinente
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
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.
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.
Filter :
la clause where se cumule avec celle de la requête,
la clause order by inhibe celle contenue dans la requête.
Règles d’écriture :
Abréviation unique pour la classe [F] des tables et vues
Notes
9. CODES ACTIVITÉ
9.1. DEFINITION
Les codes activités sont saisis dans le menu :
« Développement>Dictionnaire données>Ouverture au paramétrage>Codes activité »
− Quelques soit le type de code activité, il s’agit d’un flag pouvant être positionné sur les
éléments catalogués dans les dictionnaires. Ces flags permettent d’activer ou de
désactiver ces éléments, de les dimensionner et de les protéger des éventuelles
évolutions non voulues.
Rang :
Rang d’apparition en validation dossier
Type :
Catégorie de codes activité, fonctionnel implique que le code activité peut être actif ou inactif.
Dépendance :
Dépendance du code activité par rapport à celui précisé sur cette fiche.
Ce code activité n’apparaît pas en validation de dossier
Il est déduit de celui précisé sur cette fiche.
type de dépendance : dimensionnement, inverse, formule
Pour tester la présence d’un élément dés activable par code activité :
• Vérifier le positionnement du code activité (la meilleure solution est d'avoir une variable
globale déclarée dans le dictionnaire des variables et alimentée par le WWAGLOBxxx, sinon
on utilise la fonction ACTIV,)
• ou filinfo(filpath("FIL",table,"fde",nomap),0)>0 (pour savoir si une table existe).
• Rien à faire, car les champs existent systématiquement dans la table, pour Crystal Report.
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" correpondant au type interne du type de données 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.
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.
Notes
Action champ
Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet
Types de donnée
Fenêtre Écrans
M. Locaux
Unique T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Générée Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx
10.1. DEFINITION
Les actions sur champs permettent de renseigner des contrôles, des affichages ou d’initialiser d’autres
champs.
Exemple : Afficher les informations du client une fois que celui-ci a été saisi sur une commande,
contrôler la saisi d’un montant etc…
Action champ
Ecran
EcranOnglet
OngletChamps
Champs
Action
Actionsur
sur Paramètres
Paramètres
Champ1
Champ1 champs
champs
Champ2
Champ2 Contrôles,
Contrôles, Objets,
Objets,
Champ3 init,
init,...
... bornes,…
bornes,…
Champ3
...... ...
...
Développement>Dictionnaire traitements>Ecrans
Type d’action :
On peut saisir plusieurs actions de même type, même pour « sélection » et « bouton ».
Code d’action :
STD : le sous-pro est à écrire dans le traitement standard SUBxxx
SPV : le sous-pro est à écrire dans le traitement vertical SPVxxx
SPE : le sous-pro est à écrire dans le traitement spécifique SPExxx
autre : l’action peut être cataloguée dans le dictionnaire des actions.
nommée Xxxxxx, Yxxxxxx, Zxxxxx pour le spécifique (ne nécessite pas de code activité)
Dans ce cas, le traitement & les sous-programmes appelés sont définis dans le dictionnaire.
Exécution :
Interactive / Import-Web services / Toujours
Désactivation :
Aucune / Standard / Vertical / Toutes
Paramètres :
Permet de saisir 1 valeur pour chaque paramètre des actions du dictionnaire.
A propos du traitement :
La suppression d’une action dans le dictionnaire des écrans n’entraîne pas de suppression dans les
traitements SUBxxx, SPVxxx ou SPExxx
Action champ
Code action
placée sur un champ
Traitement nommé sur écran
STD SUBxxx
SPV SPVxxx
SPE SPExxx
Action champ
Sous-programmes
Dictionnaire
Dictionnaireécran
écran
Pour
Pour11Action
Actioncontrôle
contrôleSPE
SPEdécrite
décrite
Traitement Généré
W1xxxxxxx
W1xxxxxxx
VALIDATION Call
CallC_champ
C_champ(VALEUR)
(VALEUR)from
fromSPExxx
SPExxx
Traitement à compléter
SPExxxxxxx
SPExxxxxxx
Subprog
SubprogC_champ(VALEUR)
C_champ(VALEUR)
Variable
VariableChar
CharValeur()
Valeur()
#VALEUR<>[M]champ
#VALEUR<>[M]champ
End
End
Copyright © Sage 2009-2010 Safe X3 Développement 28
Action champ
Avant_zone :
Eviter l’affichage et la saisie d’un champ : [S]mkstat = 2
Idem + réinitialiser ce champ : [S]mkstat = 1
Attribuer une couleur dans un champ de bloc tableau
(option c sur le champ) [S]pcolor = [V]GCOUL(n) (n=0 à 3)
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 :
Pour éviter la saisie d’un champ : [S]mkstat = 2
Pour effacer puis éviter la saisie d’un champ : [S]mkstat = 1
Pour affecter une nouvelle valeur à un champ : [S]mkstat = 3
Pour supprimer des valeurs d’un menu local. GMENLOC(n)=1 (n=1 à 123)
Utilisez un type de donnée MM.
Action champ
[M]CHAMP = [L]VALEUR
Copyright © Sage 2009-2010 Safe X3 Développement 30
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 : déplacement sur un autre champ
Action champ
Menu contextuel
Type action Contexte d’appel & emploi Etiquette
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.
Action champ
Icône
Type action Contexte d’appel & emploi Etiquette
CL_zone :
Valeur contient le code de l’icône
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.
Action champ
Variable bas tableau
Type action Contexte d’appel & emploi Etiquette
Avant_ligne & Après_ligne :
Ces 2 actions sont disponibles sur la variable de bas de tableau uniquement.
Action champ
Ordre d’exécution
zone Diszo z. affichée
saisissable z. invisible
Grizo
Menu contextuel
Init_bouton IB_ IB_
Sélection S_ S_
Bouton Bn_ Bn_
Lorsqu’un champ est désactivable, il faut tester sa présence dans l’écran avant de l’utiliser.
Ex : If dim([M:ABC]CHAMP <= 0) infbox « variable inexistante » Endif
Variables globales
√ 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 ’ecran
Variables systèmes :
nolign nolign-1 est le numéro de ligne courante 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 status de retour d’une instruction de saisie
pcolor couleur
fstat status de retour d’une opération sur table ou d’une instruction de verrouillage
11.1. DÉFINITION
Attention !
Si besoin de variable de travail, les définir avec une longueur définie dans la variable globale
GLONxxx.
xxx = type de donnée
ex :
Local Char WITEM(GLONITM)
WITEM = [F:ITM]ITMREF
• L’action d’avant_ zone sera exécutée sur le champ sur lequel s’applique le type de donnée.
• Dans l’exemple, l’action d’avant_zone sert à alimenter la variable [V]GDEVFMT.
• Ce type de donnée permet de définir le format du champ en fonction de la devise passée en
paramètre.
• Ce paramètre sera saisi dans le dictionnaire des écrans par le menu contextuel du type de
données.
• On peut renseigner plusieurs actions de même type sauf pour « sélection » et « bouton ».
• On ne peut pas saisir d’action STD, SPE, SPV ( qui sont liées à un objet )
Format tableau :
Cochée, le sous-pro SETDEV du traitement TRTDIV est déclenché en avant_zone de la
variable de bas de tableau
Paramètre :
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.
• 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 :
Texte traduit
Texte avec possibilité d’afficher la traduction pour les langues déclarées dans le
dossier.
• 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 :
$CREATION
$MODIF
Call MAJTEXTRA([M]CRYDES,"TABCOUNTRY","CRYDES",[M]CRY,"") From ATEXTRA
Return
$ANNULE
Delete [AXX] Where CODFIC="TABCOUNTRY" & IDENT1=[L]CODE
If fstat=1 | fstat>5
GOK=0 : Call RSTA([AXX],[L]CODE) From GLOCK : Return
Endif
Return
$CHANGE
Update [AXX] Where CODFIC="TABCOUNTRY" & IDENT1=[L]OCODE With
IDENT1=[L]NCODE
If fstat=1 GOK=-1 : GLOCK="$ATEXTRA TABCOUNTRY"-[L]OCODE : Return
Elsif fstat GOK=0 : Call RSTA([AXX],[L]OCODE) From GLOCK : Return
Endif
Return
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.
Type
K affichage d’une chaîne de caractères
N affichage d’un nombre
D 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.
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
Exemples
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.
• Type de donnée
• Action sur champ
• Bouton
• Sélection
• Click sur icône
11.11.1. Objectif
Développer une gestion des clients sous forme entête, 2 onglets et liste gauche.
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.
Menu local
Création d’un menu local 1000 « Type de contact »
Ce menu comprend les 6 valeurs suivantes :
1_ sans type
2_ téléphone
3_ visite
4_ mail
5_ courrier
6_ divers
Gestion client
Modifier la table des clients YCUSTOMX par les particularités signalées ci-dessous.
Création des écrans clients YCX0, YCX1, YCX2.
Création de l’objet YCX.
Création de la fenêtre OYCX.
YBPCNUM :
Type de donnée lié à l’objet.
YCRY :
Interdire la suppression d’un pays dans la table pays, s’il est référencé dans la table des clients
Préparer dès maintenant la possibilité de :
• Contrôle d’existence
• Fenêtres de sélection
• Tunnel vers la gestion des pays
• Fenêtre de propriétés
YARE :
Interdire la suppression d’un secteur géographique dans la table diverse s’il est référencé dans la
table des clients. (La table diverse est ATABDIV, abréviation ADI ).
Les tables diverses possèdent 2 identifiants, le numéro de table et le code de l’enregistrement, ceux-ci
sont à paramétrer à l’appel du type de données ADI et dans la colonne « Expression de lien » de la
table.
YCNTLASTYP :
Ajouter votre menu local.
YCNTLASDAT :
Date nulle autorisée. Se servir des options du champ
YBPCREM :
Transformer ce champ en clob.
Onglet 1 « adresse »
Onglet 2 « général »
11.11.3. A vérifier
12.1. DÉFINITION
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 »
Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet
Types de donnée
Fenêtre Écrans
M. Locaux
Unique T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Générée Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx
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
_ Leurs 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 »
Modèle « objet »
ANUCOD SUBxxx
SUBxxx
ANUCOD
GOBJSUB
GOBJSUB
SPVxxx
SPVxxx
CHGCOD
CHGCOD
SPExxx
SPExxx
GOBJET1
GOBJET1 GOBJET2
GOBJET2 GOBJET3
GOBJET3
(simple)
(simple) (tableau)
(tableau) (combiné)
(combiné)
TABLEAUX
TABLEAUX
(détail)
Copyright © Sage(détail)
2009-2010 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.
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 utiliser
pour déclarer les variables utiles au traitement spécifique.
Modèle « objet »
$ACTION
Superviseur SUBxxx Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return
Modèle « objet »
$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
Modèle « objet »
Lock
Locklogique
logique
[M]=[F]
La saisie
Lock
Lockphysique
physique
Trbegin [F]=[M]
La transaction de mise à jour
Commit
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.
Les évènements utilisables en gestion de création d’un enregistrement sont les suivants :
Modèle « objet »
Saisie
VERIF_CRE avant la transaction de mise à jour
[F]=[M]
Trbegin
INICRE après le chargement de la classe [F]
WRITE
CREATION après l’écriture de l’enregistrement
Commit
12.2.2.1. RAZCRE
Cette action est lancée en tout début de création après clique 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
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
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 le 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
###########################################################################
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 fstat<>0
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.
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 principal n’est pas empêché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
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 deverrouiller BPARTNER
SYMBOLE2 = "BPR"+num$([M:BPS0]BPSNUM)
Lock = SYMBOLE2
Unlock = SYMBOLE2
###########################################################################
Modèle « objet »
RAZDUP
Sert à :
initialiser les variables de la classe [M]
Nécessite :
le rafraîchissement de l’écran par Affzo
il faut préciser le nom de l’écran.
Modèle « objet »
V [M]=[F]
I LIENS après la lecture de l’enregistrement
S
U
AVANT_MOD dès le début de la saisie (120)
Saisie
VERIF_MOD avant la transaction de mise à jour
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
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
#-----------------------------------------#
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 : [L]OK=0
afficher un message : GMESSAGE
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] est 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
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
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
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 verrouillage 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]QUOPRN<>2
Gosub SET_CLE From GOBJSUB
CLECUR = 1
Endif
If WSLTDOCFLG=2 & [F:SQH]QUOPRN<>2 & !GINTRA & !GIMPORT
Call ETAT(WSLTDOCNAM,"GESSQH",TBPAR,TBVAL) From ETAT
Endif
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
Modèle « objet »
Trbegin
ANNULE avant la suppression de l’enregistrement
commit DELETE
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
###########################################################################
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 verrouillage avec [V]GOK = -1
interrompre la transaction : [V]GOK=0
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
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
12.3.1. Principe
La gestion du modèle objet ne gère par défaut qu’une seule table, la table lié à l’objet.
Ors 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.
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és ici.
Modèle « objet »
Trbegin
INICRE
CREATION gosub CREATION From TABLEAUX
Commit
CREATION
DEFLIG exécuté 1 seule fois
INICRE_LIG `` pour chaque ligne détail
VALLIG
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 )
Modèle « objet »
V
I [M]=[F]
S LIENS gosub LIENS From TABLEAUX
U
LIENS
DEFLIG exécuté 1 seule fois
LIENS_LIG `` 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)
Modèle « objet »
INICRE_LIG
INIMOD_LIG 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
MODIF
DEFLIG exécuté 1 seule fois
INICRE_LIG `` pour chaque création ligne détail
VALLIG
Modèle « objet »
gestion détails : en suppression
Trbegin
ANNULE gosub ANNULE From TABLEAUX
Commit
ANNULE
DEFLIG exécuté 1 seule fois
VALLIG `` pour chaque ligne détail
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
###########################################################################
$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)
#----------------------------------#
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
[V]GOK = -1
Verrouillage d’information par un autre poste.
Abandon de la transaction puis nouvelle tentative
Verrouillage d’informations :
Variable [L]OK
12.4.1. Objectif
YORDNUM :
Type de donnée VCR.
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étrez le code de l’objet dans le paramètre VCROBJ.
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.
Onglet 1 « général »
Onglet 2 « lignes »
• 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.5. A vérifier
A vérifier
• Affectation du compteur
• Numéro de commande saisi doit exister.
• Numéro de commande non saisissable en création.
• Mise à jour de la table client.
Notes
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
peu déclencher les actions sur champs de type contrôlent 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.
Modèle « objet »
Action
Action Dico
Dico déclaré
déclaré dans
dans la
la fenêtre
fenêtre
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
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 »
Action
Action dico
dico déclarée
déclarée dans
dans la
la fenêtre
fenêtre
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 : # Adresse livraison
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
###########################################################################
FIN_ACTION
Action lancée après activation (click) d’un bouton, d’un menu ou d’une liste gauche
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 global.
12.6.1. Présentation
Listes gauche d’un objet, celle-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.
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
liste simple
présente si case cochée
par usage, affichée
Nommage superviseur
CLE_GAUCHE liste principale (GAU_CHE)
CLE_GAUCHE1 à 8 liste secondaires
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
Modèle « objet »
Les Browsers
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
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 ;
Modèle « objet »
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é.
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
Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet
Types de donnée
Fenêtre Écrans
M. Locaux
T. Diverses
Codes activités
Action Traitement standard
Traitement standard
Traitement vertical Traitement vertical
Traitement spécifique Traitement spécifique
Fonction
Actions
Action
Action
FONCTION
FONCTION
Menu
MenuX3
X3 Fenêtre
Fenêtre
ECRAN
ECRAN
champ
champ
TYPE
TYPE
DONNEE
DONNEE
Modèle :
I s’agit du traitement modèle superviseur à lancer, par exemple le modèle objet.
Type :
Permet de classer les sous-programmes et actions afin d'en faciliter la recherche, et ce, dans le but
d’une meilleure ré-utilisabilité.
• Contrôle
• Saisie
• Sélection
• Mise à jour
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.
Zone courante
Si flag positionné, le 1er paramètre récupère automatiquement la valeur du champ courant.
Intéressant pour une action sur champ.
Paramètre :
Par valeur : sauvegarde puis restauration du paramètre pour garder sa valeur
l’argument est soit une constante, soit une variable.
Par adresse : modification du paramètre acceptée au retour du sous-programme
l’argument est obligatoirement une variable
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.
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 ci besoin est.
Ce modèle se lance :
d’une fonction, bouton/menu fenêtre, bouton champ.
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.
Saisie Fenêtre
14.3.1. OUVRE
Sert à :
14.3.2. TITRE
Sert à :
14.3.3. DEBUT
Sert à :
14.3.4. APRES_MODIF
Sert à :
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 traitement SUBxxx ou SPExxx
[L]ACTION=="APRES_MODIF"
"APRES_MODIF"
Gosub
GosubACTION
ACTION $ACTION
$ACTION
Case
Case[L]ACTION
[L]ACTION
When
When""APRES_MODIF
APRES_MODIF"": :Gosub
GosubAPRES_MODIF
APRES_MODIF
When
Whendefault
default
cinématique Endcase
Endcase
sur champ Return
Return
$$APRES_MODIF
APRES_MODIF
REP=
REP=««MM»»
return
return
se déclenche pour tout champ modifié après l’action sur champ AM_zone, avant la
mise à jour de la classe [M].
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
Sert à :
14.3.6. FINSAI
Sert à :
Saisie Fenêtre
Boutons Pré-définis
Action
Action Dictionnaire
Dictionnaire
XXX Après l ’exécution du bouton
pour sortir de la fenêtre FIN=1
(sortie automatique pour bouton « OK » et « FIN »
Saisie Fenêtre
Boutons Spécifiques
Action
Action Dictionnaire
Dictionnaire
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
Saisie Fenêtre
Menus
Action
Action Dictionnaire
Dictionnaire
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
14.5.1. Presentation
Nommage
CLE_GAUCHE1 à 8 liste secondaires
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.6.1. 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.
L’écran XLIV
La fenêtre XLIV
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.
• 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]
14.6.3. A vérifier
Notes
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 se lance :
se lance d’une fonction, bouton/menu fenêtre, bouton champ.
Traitement standard
Traitement standard
Fenêtre Écrans Traitement vertical
critères Traitement spécifique
Traitement standard
Action Fenêtre Écrans Traitement vertical
Principale Traitement spécifique
BATCH
Lancement automatique
Abonnement avec périodicité
15.2. PARAMETRES
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
traitement
EXEC une fois les contrôles OK
TERMINE après le traitement
Affichage de la trace
SORTIE fin de traitement
Copyright © Sage 2009-2010 Safe X3 Développement 69
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…).
15.3.1. INIT
Sert à :
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.
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 à :
15.3.3. INIT_DIA
Action lancée seulement pour une boite de dialogue avant l’affichage de cette fenêtre.
Sert à :
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)
Traitement standard
Traitement standard
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
$ 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 à :
Variable SAI :
SAI=1 retour en saisie, juste avant l’action AVANT_PAR (en mode interactif)
15.3.6. EXEC
Sert à :
Variable TRA :
0 pas d’affichage & conservation de la trace
1 affichage & conservation de la trace
9 affichage & suppression de la trace
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
Sert à :
15.3.8. SORTIE
Sert à :
Etape 1 :
- Saisie des paramètres
- Le superviseur les stocke dans la table ABATRQT
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
Soumission de requêtes
fenêtre de critères
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.
Etape 2 :
Le superviseur lit le paramètre depuis la table ABATRQT
Exécution du traitement
Lecture de la requête
[M]=[F]
traitement
EXEC une fois les contrôles OK
Action CONTROLE :
Si erreur, affichage dans la trace.
Pas de retour possible en saisie.
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
16. FONCTIONS
Présentation :
Se situe dans le menu « Développement>Dictionnaires traitments>Fonctions »
fait le lien entre le menu et soit :
– un menu (sous-niveau de menu)
– un 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)
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.
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.
Sert à :
###############################################################################
$ACTION
Case ACTION
When « TRT_DIV » : Gosub TRT_DIV
Endcase
$TRT_DIV
…
Return
###############################################################################
Variable TRAIT :
Contient l’identifiant de l’action dictionnaire.
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
– 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.
Traitement TABLEAUX
Subprog LINNUM (ZONLIG)
Value char ZONLIG
…
End
Hors modèle
FONCTION
FONCTION
Menu
MenuX3
X3
Action
Action
FENETRE
FENETRE Traitement
Traitementstandard
standard
bouton
bouton/ /menu Traitement
menu Traitementspécifique
spécifique
ECRAN
ECRAN
champ
champ
TYPE
TYPE
DONNEE
DONNEE
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.
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
• 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.
18.4.1. Objectif
Ecran de sélection
Remarque :
Les valeurs saisies dans les bornes peuvent ne pas correspondre à des clients existants et peuvent
ne pas être saisies.
18.4.3. Traitement
18.4.4. A vérifier
Notes
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)
Saisie
19.2.1. SEL_TABLE
Pagination :
Gérée par le superviseur si DEFPAG=1,
Tient compte du tri positionné dans ORDRE et SENS.
Tri :
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«
19.2.2. VERF_TABLE
Sert à :
19.2.3. FIN_TABLE
Action lancée en fin de traitement même si aucune sélection n’a été effectuée
Sert à :
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
Saisie
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.
Sert à :
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.
Action disponible :
Tri sur colonne
(sélection rapide et pagination non supportées)
20.2.2. VERF_LISTE
Sert à :
20.2.3. FIN_LISTE
Action lancée en fin de traitement même si aucune sélection n’a été effectuée
Sert à :
Traitement standard
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 »
Remarque :
Le traitement qui contiendra vos actions est le CNSxxxSPE.
Consultations
Action
Action
FONCTION Consultation
Consultation
FONCTION
Menu
MenuX3
X3
Fenêtre
Fenêtreprincipale
principale
FENETRE
FENETRE Écrans
bouton
bouton/ /menu
menu ++ Boutons
Boutons/ /Menus
Menus
ECRAN Fenêtre
ECRAN Fenêtrede
decritères
critères
champ
champ
Écran
TYPE ++ Boutons
Boutons/ /Menus
Menus
TYPE
DONNEE
DONNEE
Traitement superviseur GCONSULT
Traitement standard
Traitement spécifique
Copyright © Sage 2009-2010 Safe X3 Développement 83
Action CONSxxx
• type de traitement Consultation
• code consultation xxx (obligatoire)
• définition des paramètres
Fonction CONSxxx
• action CONSxxx (obligatoire)
• valeur des paramètres
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).
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 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.
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.
Modèle « consultation »
Affichage
21.6.1. AUTORIS
Cette action est appelée en tout début de modèle. Le modèle a contrôlé 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.
Exemple :
$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
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 :
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.
CHARGMT : recherche déclenchée dès l'entrée dans la consultation ( 0 oui / 1 non ). oui, par
défaut.
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
If NBLU = 1
If CHGPAG=2 | CHGPAG=-2 : Raz [M:CSQ2] : Endif
NBLU = 2
Endif
$SUIV
Next
Filter [SQH]
Return
WFIL2 = "1=1"
If [M:CSQ1]SALFCY <> ""
WFIL += "&[F:SQH]SALFCY=[M:CSQ1]SALFCY"
Endif
...
Case CHGPAG
When 3 : # rafraichissement
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM>=DEBNUM"
When 2 : # tri par date
WFIL1 += "&([F:SQH]QUODAT>DEBDAT | ([F:SQH]QUODAT=DEBDAT &
[F:SQH]SQHNUM>=DEBNUM))"
Endcase
When 2 : # suite
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM>FINNUM"
When 2 : # tri par date
WFIL1 += "&([F:SQH]QUODAT>FINDAT | ([F:SQH]QUODAT=FINDAT &
[F:SQH]SQHNUM>FINNUM))"
Endcase
When -2 : # retour
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM<DEBNUM"
When 2 : # tri par date
WFIL1 += "& ([F:SQH]QUODAT<DEBDAT | ([F:SQH]QUODAT=DEBDAT &
[F:SQH]SQHNUM<DEBNUM))"
Endcase
Endcase
Return
SUITE : permet de désactiver les boutons < Suite > et < Dernier >
21.6.4. FILTRE
Cette action est prévue pour le spécifique uniquement. Elle est appelée depuis l'action LECTURE
pour positionner un filtre spécifique sur les enregistrements à sélectionner.
Attention cette action ne doit jamais être utilisée pour le standard.
Pour le spécifique, on positionne un filtre qui s'exprime sous la forme d'une chaîne de caractères
contenant une condition logique sur un ou plusieurs champs de la table principale. On peut écrire par
exemple :
WFIL+= "BPSTYP=2".
Nous n'avons pas, dans cette version, une variable dédiée à cela. Il faut donc vérifier dans l'action
standard LECTURE, la variable qui est prévue pour le filtre.
21.7.1. Objectif
Créer une consultation capable d’afficher et de trier les clients en fonctions de critères.
Ecran d’entête
Ecran détail
Traitement :
Le traitement devra permettre l’affichage de la liste des clients avec la possibilité de trier de 3
manières différentes :
Pour créer ce traitement aidez vous de l’exemple du cours décrit dans l’action LECTURE.
21.7.3. A vérifier
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.
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.
21.7.5. A vérifier
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>Points d’entrée »
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 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
Développement / Dictionnaire traitements / Points d’entrée
22.2.1. Objectif
• 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.
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).
Ces transactions de saisie permettent de générer des écrans à partir des écrans de base des
commandes (SOH0, SOH1, SOH2, SOH3, SOH4).
22.2.3. A vérifier
Notes
Axes d’analyse
Graphe simple :
Visualisation 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
Axes d’analyse
23.2. PARAMETRAGE
> 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
− 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.
Axes d’analyse
− 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é.
23.3. GANTT
23.3.1. Présentation
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.
Exemple : « Production > Données techniques > Gammes > Gestion Gammes »
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
23.4. AGENDA
23.4.1. Présentation
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
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
23.5.1. Présentation
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
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)
Tableau :
• 1 ligne par jour
• 1 colonne par plage d’activité (1 à 4)
mess(1,9837,1)
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
− 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ètres :
Nombre de mois affichés :
1 à 12 mois
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
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)
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.
23.7.1. Présentation
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 ts les champs du tableau en affiché
Possibilité d’afficher des totaux par activité (calcul automatique par traitement du composant écran)
> Paramètres :
− Code XSL : APLANY
− Menu des types d’activité :
> menu local modifiable (1 à 8 activités)
− Remise à jour graphique :
> permet le recalcule 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
23.8.1. Présentation
Graphe :
Le composant XSL permet de représenter des nomenclatures horizontalement.
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 CODRET<>1
Call ERREUR(MESSAGE) From GESECRAN
Endif
End
− 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 noeud
Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l’XSL
− 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)
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.
Stockage images
Images
A placer dans le répertoire X3_PUB/ »dossier »/RES
23.9.1. Présentation
Graphe :
Composant XSL permettant de représenter des nomenclatures verticales
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
− 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.
− Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l’XSL
− 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
Stockage images
Icones
À placer sous X3_PUB/X3_ROOT
• RESSTD/IMG pour le standard
• RESPER/IMG pour le spécifique
• RESVER/IMG pour le vertical
23.10. RADAR
23.10.1. Présentation
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 )
− 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
− Remarque :
> Possibilité de bouton sur variable de bas de tableau (click droit sur zone)
> Aucun nom n’est imposé.
− Menu échelle :
> Menu local permettant de définir une légende pour la graduation de l’échelle
− Composant écran :
> Aucun programme d’interaction.
> Il n’y aura donc pas de possibilité d’intervenir sur ce graphe.
> Il sera juste en visualisation.
23.11. BROWSER
23.11.1. Présentation
Objectif
Afficher une à trois pages html, dans un bloc écran.
Onglet dans une barre en haut du bloc.
− Code url ou html à renseigner par click 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.12. BUREAUTIQUE
23.12.1. Présentation
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 document et données X3.
Exemple : « Vente>Devis>Devis »
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
###############################################################################
− Appel d’un champ blob définis dans un bloc bureautique de l’écran pour recevoir le
document.
− Par click droit sur le type bloc « bureautique » possibilité de typer le document (Word,
Excel, power point), ou de laisser le choix à l’utilisateur (banalisé)
Syntaxe
CALLIU macro From champ_blob With liste_paramètres
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
##########################################################################
23.13.1. Présentation
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)
Variable Char VALEUR()
Subprog CL_ICO6(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 40
End
23.14.1. Présentation
Gestion Documentation
Existe aussi en gestion documentation champ
Subprog C_VLDFLG(VALEUR)
Variable Integer VALEUR
Look [ADH]ADH0=[M]LAN;[M]TYP;[M]COD;[M]LEV;[M]SUBLEV
If !fstat : mkstat = 4 : Endif
End
###########################################################################
23.15.1. Présentation
− Appel d’un champ clob définis dans un bloc Editeur HTML de l’écran pour recevoir les
informations.
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.
− 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.1. Objectif
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.
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.
Ecran d’entête
Onglet 1
Onglet 2
Fenêtre YGX
Action YGX
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.
23.16.3. A vérifier
Notes
24. SPÉCIFIQUE
Les caractères suivants sont strictement réservés et ne doivent pas être utilisé 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
Action dictionnaire X, Y ou Z
Remarque : Les actions spécifiques sur champs ne nécessitent pas de codes activité.
################################################################################
#Permet l’exécution du standard avant le spécifique
$ACTION
Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return
$OUVRE
Gosub OUVRE From SUBxxx
… ( spécifique)
GPE = 1
return
################################################################################
Objet : SPE+objet
SPV+objet pour traitement vertical
Consultation : CNS+consultation+SPE
Traitement standard
Saisie fenêtre :
Sélection table :
Sélection liste : Xxxx, Yxxx, Zxxx
Affichage divers :
Etat :
Import / export :
Certains écrans standards sont affichés dans l’application via des écrans générés par les
fonctions de transactions de saisie
Pour modifié 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!
Noms Intitulés
W0+écran Traitement d'import d'un écran
W1..9+écran Traitements d'un écran
WO + objet Traitement d'un objet
WG + fenêtre Traitement d'une fenêtre
WWCNS + cons. Traitement d'une consultation
WWINI + abrév. Traitements d'initialisation d'une table
WWI + compteur Traitement d'import
WWE + compteur Traitement d’export
WWGLOBLON Var. glob. liées aux types de données alphanumériques
WWGLOBVAR Variables globales liées aux paramètres
WWGLOB + chap Variables globales liées aux paramètres par chapitre
Messages :
Vertical 160 - 169
5000 – 5199
Spécifique 6000 – 6199
Menus locaux :
Vertical 1000 – 1999
5200 – 5999
Spécifique 6200 – 6999
Ajout d’un chapitre spécifique (Xxx, Yxx, Zxx) dans la table diverse 901 chapitres pour paramètres
Traitement WWGLOBVAR
Dès qu’une variable globale, est associée au paramètre
• exécuté automatiquement à la connexion du dossier
Variable globale
Est à créer dans le dictionnaire associé
Pour le spécifique doit commencer par X,Y,Z,GX,GY ou GZ.
La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \
Création automatique de patch »
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
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 normal : 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.
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
La règle de nommage conseillée, pour les fichiers patchs en spécifique ou vertical est :
<SpecificId>_<PatchNumber>_<X3RequiredPatchLevel>_<X3Version>.dat
Type TAB :
Attention ! Aucun lien avec une autre table n'est pris en compte ( ex : textes traduits ).
Le test d’un patch se fait via le menu : « Développement \ Utilitaires \ Patch \ Test de patch »
Vérifie si des éléments à patcher sont en conflit avec les éléments protégés par code activité
spécifique.
Exemple :
La consultation BAL protégée par le code activité ZDA ne sera pas mise à jour par patch standard.
Dossier :
• passer le patch sur le dossier applicatif uniquement
25. CONCLUSION
− Modification de l’existant :
> tables, écrans, objet, fenêtre, fonctions, code activité, traitement SPE
Sage ERP X3
Introduction
Business Intelligence Installation des
X3F-INT 1 jour Exploitation patchs
X3E-BIU 2 jours X3E-IPT 2 heures
X3F-OVW 3 jours X3F-CTO 3 jours X3A-ADM 3 jours X3E-CRI 2 jours X3E-ECP 1 jour
Interfaces
Import / Export
X3E-IEX 2 jours
Pré-requis obligatoire
Pré-requis recommandé
“Sage Certified Consultant” examen
Web Formation
6 © 2009 Sage – Division Moyennes & Grandes Entreprises
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.
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
Notes
26.2.1. Objectif
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
Notes
26.3.1. Objectif
• YC3 Liste composée des champs YBPCNAM et YBPCNUM, triée par nom.
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
Notes