Modèle Conceptuel des Données
Vocabulaire utilisé
- Un Objet K est une entité. On peut également faire l'amalgame entre un objet et une table de données.
- Une instance correspond à un enregistrement dans une table physique.
- Une fiche s'appelle également un formulaire, un écran de saisie.



Depuis cette liste, vous devez créer vos objets et modifier leurs propriétés suivantes :
- Ico : Icone de Font Awesome représentant l'objet concerné.
- Nom objet : Nom court, simple et reconnaissable par les utilisateurs.
- Sans fiche : Si coché, la saisie se fera directement dans une liste (sans passer par une fiche/formulaire). Convient uniquement aux objets sans fils.
-
IsVirtuel : L'objet est virtuel : un autre objet pourra ainsi hériter de l'ensemble de ses attributs
Dans notre exemple l'objet ENTITE est virtuel tandis que les objets Fournisseurs et Etablissements héritent.
Cela permet de partager des attributs communs tels que le nom, l'adrese, le téléphone, l'email, .... mais également des traitements.
Afficher les données d'un objet virtuel revient à afficher toutes les instances des objets héritants. - Hérite de : L'objet héritera de l'objet virtuel concerné. (informations, process, workflow ... )
- Père 1 : relation forte (1-1) par convention est le D1 dans les filtres/critères. Un objet virtuel peut avoir également des Pères pour ses objets héritants.
- Pos 1 : Position de l'onglet des données fils dans la fiche du Père 1.
- Statut ini : Premier état (ou statut) que prend une instance lorsque l'objet comporte un cycle de vie.
- Chrono : Dernier numéro de chrono utilisé
- Actif : Critère permettant de définir les instances qui ne seront plus proposées (dans une liste de chox) car devenues obsolètes.
- JSValid : Fonction Javascript (à mettre dans le fichier js/specifique.js) appelée pour valider une conformité spécifique de la saisie.
- Layer : Nom donné à une famille d'objets
- Duplicable : Précise à l'utilisateur qu'il peut dupliquer une fiche existante (génère un CLONE)
- Histo : Permet l'historique des modifications de chaque instance (Heure, Valeurs, Utilisateur).
- FilterUnicité : Impose un contrôle d'unicité (mono ou multi champs séparés par $).
Exemples D2;D1|L|$D1|L| ou I|133|L|$I|134|L| ou I|191|egal ou I|391|egal $I|475|egal ou I|210|egal $D1|L| - Axes : Définis des axes d'intérêts sur l'objet utilisés par certains outils comme la vue arborescente
- Filtercalculagrégat : Critère de condition portant sur l'instance pour effectuer le recalcul de ses aggrégats.
- Couleur : Chemin relatif vers une information de type couleur pour imposer la couleur de chaque ligne dans les listes
- Hauteur Variable : indique que la hauteur des lignes en mode liste varie en fonction du contenu
- NbCar : Nombre minimal de caractères à frapper pour commencer la recherche dans une liste déroulante
- Aide : lien URI de la page html d'aide proposée à l'utilisateur pour cet objet (=support formation)
- Liste des données : Ouvrir la liste de toutes les instances de l'objet
- Importer des données : Importe des données au format excel (voir k-Import.pdf)
- Exporter des données : Exporte les données au format excel
- Administrer cet objet : Ouvre la fiche de paramétrage de l'objet
- Relation X : Permet de paramétrer la relation avec le Pere X
- Correction des données : Lance un contrôle et une correction automatique des données non viables structurellement
- Transformer en Classique : Isole les instances de cet objet dans une table physique optimisée. (à faire au délà de 10000 instances)
Dans la gestion des droits, chaque objet pourra être :
- visible ou non selon le profil de l'utilisateur
- modificable ou non selon le profil de l'utilisateur
- restreint (par un filtre) pour certains profil
Relations
Tableau de Bord > MCD -SI > Clic droit sur objet > Relation XChaque relation Père défini dans le MCD doit être paramétrée en utilisant un clic droit sur la ligne de l'objet Fils pour sélectionner la relation avec l'objet Père voulu.
Propriétés d'une relation forte entre deux objets :

- N° d'onglet : identitique à [Pos X] : c'est la position de l'onglet dans la fiche Père (qui affiche la liste de l'objet fils concerné). Il peut rester vide.
-
Droits : l'utilisateur en cours a les mêmes droits sur les fils que sur l'objet Père.(ajout, suppression, modification, export)
Le fils hérite des droits de l'utilisateur sur l'objet Père. Cet héritage fonctionne en cascade à l'infini. - Restrictions : L'utilisateur ne pourra visualiser que les instances fils dont il peut visualiser leurs pères. Cette restriction fonctionne en cascade.
- hors null : Les instances n'ayant pas de père connu (null) seront alors visibles malgré la restriction préalable.
- Préservation : La suppression d'un Père n'est possible que s'il n'existe pas ou plus d'éléments fils.
- Destruction en cascade : La suppression d'un Père provoque la suppression automatique des éléments fils (si eux mêmes sont supprimables en cascade).
- Obligatoire : Impose que chaque fils soit toujours créé en connaissance du Père.
Administration d'un objet
Tableau de Bord > MCD -SI > Clic droit sur objet > Administrer cet objetChaque objet sera administrable depuis cet écran :

- Informations K : Ensemble des informations de l'objet ( donnée saisie, calculée, affichée,.. )
- Process : Ensemble des actions utilisateurs possibles depuis cet objet
- Workflow : Liste des états/statuts possibles pour chaque instance de l'objet
- Kchart : Liste des données étudiées graphiquement
- Embed : Ensemble des améliorations visuelles à porter sur la fiche
- Sélection : Liste des pré-sélections partagées ou non par tous les utilisateurs.
- IA : Actions (javascript) à déclencher sur évènement (Sauvegarde, fermeture,création,impression...)
- IA : Comportements applicables entre cet objet et les autres
Information K
Une information K représente une zone de saisie ou de calcul qui est généralement affichée dans une fiche et/ou une liste. Elle peut être utilisée lors des recherches, des regroupements, dans un rapport, une statistique, un calcul, etc...

- Objet : Objet K contenant l'information.
- Libellé info : Nom court, simple et non ambigüe de l'information. c'est l'étiquette dans une fiche et le titre de la colonne dans une liste.
- Type : Type de donnée à saisir ou afficher, dans le doute utilisez Texte.
-
Nature : Uniquement en complément du Type Texte, la nature permet d'influencer le mode de saisie et/ou l'affichage de l'information:
- Compteur : zone numérique dont la valeur évolue dans le temps avec RAZ possible. Les évolutions sont préservées.
- Relevé : zone numérique dont la valeur évolue dans le temps. Les évolutions sont préservées.
- Couleur : La saisie attendue est une couleur conforme html
- Combo Fixe : La saisie est un choix limité de valeurs préfixées
- Sans Etiquette : N'affichera pas d'étiquette de ce texte
- Régime : Permet la saisie d''un cycle de temps hebdomadaire
- Editeur html : Zone de saisie au format HTML
- Base de connaissance : Assistant de saisie par utilisation d'une base de connaissance (jeux de questions réponses)
- Liste Instances : liste d'instances (stockée sous la forme id1;id2;id3) modifiable via un panier
- Icone : Choix d'un Icone FA pour
- Tel : Permet d'utiliser un CallTo sur cette zone en double cliquant (Voice IP)
- Instance : Donnée stockée sous la forme IdObjet-IdInstance, permettant une liaison vers n'importe quoi (anciennement géniteur)
- Combo sur : Liste déroulante à un choix unique d'un autre objet K.
- Relation D : précise qu'il s'agit d'un Pere à afficher et potentiellement à saisir/modifier. Choisir le type Texte.
-
Filtre : Filtre à appliquer sur les instances du Combo ou de la Relation D (dans le cas d'un combo Fixe c'est l'event onupdate à appeler).
On peut mettre des variables sous la forme @chemin (ou @@chemin si ce critère n'est pas obligatoire) ex : D1|L|@D1 ou I|503|HAS|@102 - Formule : chemin relatif ou calcul, ce dernier commence par le signe =
- Validation : Expression régulière qui permet de valider la saisie.
Dans le cas d'un numérique on peut contrôler une valeur mini ou maxi : ///@>50 si vide non autorisé ou //@<11 si vide autorisé - PosX - PosY : Coordonnées de la position X Y en pixel de la zone
- Largeur : Largeur en Pixel de la zone
- Hauteur : Hauteur en Pixel de la zone : chaque multiple de 15 represente une ligne de saisie
- Focus : Numéro d'ordre de la tabulation (passage d'une zone à une autre avec le clavier en mode Fiche)
- Titre : L'information fait partie du Titre. En général, cette information a une Validation de saisie obligatoire.
- Pos Liste : Position de la colonne dans la liste. Laissez vide pour ne pas afficher cette information dans la liste.
- Vue : une lettre par vue, cumulable : * affichage normal, C pour Combo , P pour Panier. La vue peut être imposée en fonction du rôle (registre gridvue)
- Section : Numéro de section dans la page (uniquement si la fiche utilise l'affichage par sections ).
- Op. Pied Liste : Calcul affiché en pied de colonne : SUM AVG MIN MAX
- RGPD : La donnée est une donnée à caractère personnel soumis aux règles RGPD
- Pos. Virtuel : La donnée est affichée dans l'onglet correspondant d'un Sous Formulaire .
- Info Bulle : Texte explicatif affiché au passage de la souris
- Etiq Up : La zone de saisie est située sous l'étiquette.
- Crypté : la donnée est stockée cryptée dans la base
- Calcul stocké : Impose de stocker le résultat de la Formule pour éviter un recalcul à chaque affichage, filtrage, traitement.
-
Attributs : si nature Fixe : précise les choix fixes possibles séparés par un point virgule : Libellé 1|Valeur 1;Libellé 2|Valeur2;...
si nature Liste Instance : précise l'objet source des instances et (en option) le filtre à appliquer séparés par un double point : Objet:Filtre
sinon précise des évenements ou style à appliquer sur la zone (séparés par [|]) : onchange,alert('Bravo !')[|]style.color,red[|]style.font-size,15px - Format : Format spécifique d'affichage de l'information.
Dans le cas d'un type URI, il peut contenir un sous répertoire spécifique de stockage composé d'une partie fixe et d'un chemin exemple : Client:D1#ID - Couleur : Couleur de fond de la colonne dans les listes.
-
Valeur Auto : Valeur automatique (généralement non modifiable).
- Pour la date d'échéance à partir d'un objet Conditions (NbJours+finDeMois+LeJour) : EDATE;IdInfoDateDépart;IdComboObjetConditions;IdInfoNbJours;IdInfoFinDeMois;IdInfoLeJour;FormatDate ex:EDATE;301;882;1211;1212;1213;dd/MM/yyy
- Pour une valeur aléatoire fait de paquets de NbCar séparés par un tiret :RANDOM;NbPaquet;NbCarInPaquet ex:RANDOM;2;3
- Pour une date à X jours de la date du jour :NOW ex:NOW;+30
- Dernière date de consultation :LASTSEE
- Dernière date de modification :LASTCHANGE
- Dernier utilisateur ayant modifié:USERCHANGE
- Utilisateur créateur de l'instance :USER
- Date de création de l'instance :DATE
- Pour le prochain chrono de l'objet :CHRONO
- Pour le prochain chrono mensuel de l'objet :CHRONORAZMM
- Pour une clef composée du type F2002-1234 : F;YY;MM;-;CHRONO
- Jour de création de l'instance :DD
- Mois de création de l'instance :MM
- Année de création de l'instance :YY
- Année complète de création de l'instance :YYYY
-
Par défaut : Valeur par défaut de la donnée lors de sa création. Pour initialisez un combo ou une relation D, utilisez l'ID de l'instance.
- Pour la valeur d'une clef du fichier web.config : config;clef
- Pour la valeur du Père (depuis onglet fils) : peredata
- Pour la valeur à partir d'un chemin dépendant du Père : *IdObjetPere#CheminAsuivre*autreIdObjetPere#autreCheminAsuivre
- Pour une valeur imposée : asit;Valeur
- Pour obtenir une valeur réservée par mot clef: eval;MotClef avec comme MotClef possibles : now,time,year,lastyear,month,user,moi,ressource
- Pour une valeur d'un Combo FixeValeur|Libellé
- Recalcul père : Précise les objets pères dont les agrégats stockés doivent être recalculés en cas de modification
- Champ : Nom du champ physique dans la table de stockage (si Objet classique)
- visible ou non avec ou sans critère
- modificable ou non avec ou sans critère
- obligatoire ou non
- filtrée (pour un combo) en fonction d'une autre information
Les process
Fiche Objet > Onglet ProcessLes process sont liés à un objet (virtuel ou non). Il servent à lancer un traitement ou une fonction javascript. C'est généralement le cas d'une impression.

- Intitulé : Le libellé du Menu proposant l'exécution du Process
- Condition : Filtre de condition pour pouvoir exécuter le Process.
- Lien href : url à lancer
- Commande Java : fonction javascript à exécuter
- Par Lot : permet d'exécuter ce process sur un ensemble de lignes de la liste de l'objet
- Sur Liste : permet d'exécuter ce process depuis un click droit sur une liste
- Sur Fiche : permet d'exécuter ce process depuis le menu d'une fiche
- Icône : image symbolisant le Process
- Blank : Ouvre le process dans une nouvelle fenêtre du navigateur ( PDF, Export, ... )
Envoi manuel d'un email depuis un Process
Pour un mode par LOT utiliser Lien Href :
k_ajax.aspx?type=sendmails&IdCurrent=55&IdPubCorps=100&IdPubPJ=86&CheminCorps=&CheminPJ=D1&IdDest=D1#ID&From=info@monentreprise.fr&CheminTo=R644#329&IdGed=267&
Pour un mode sur fiche ou liste utilisez Command Java :
Wait('sendmails&IdCurrent=55&IdPubCorps=100&IdPubPJ=86&CheminPJ=D1&IdDest=D1#ID&From=info@monentreprise.fr&CheminTo=R644#329&IdGed=267&IdInstance=
avec :
- IdCurrent = id de l'objet sélectionné
- IdPubCorps = id modele du corps (avec ou sans Source de rapport)
- IdPubPJ = Rapport à intégrer en PJ du mail
- CheminCorps = chemin relatif entre IdPubCorps et IdCurrent (ne mettre ce parametre que si le corps de l'email contient des champs de fusion)
- CheminPJ = Chemin vers objet de fusion de IdPubPJ
- IdDest = Chemin vers ID de l'entité destinataire
- CheminTo = Chemin depuis IdPubPJ vers l'email destinataire
- IdGed = précise (en cas de IdPubPJ) publipostage en PJ
- MailCc = Email en Cc
- MailFrom = Email en dur OU chemin relatif depuis IdCurrent vers une Kinfo email
- ListInstances = Instances de l'objet IdCurrent à traiter
Les chemins relatifs
La métabase descriptive du MCD permet d'utiliser des chemins relatifs dans les requêtes, recherches, exports, calculs, dons,...Un chemin relatif permet d'accéder aux pères Durables (relation 1-1) ainsi qu'aux données Combo (relation 0-1).
Par convention pour atteindre la valeur d'une information relative on utilise DX#IdInfo (X est le numéro du Père) pour l'un et R#IdInfo pour l'autre
Exemples | |
I|456 | Valeur de l'information id N°456 |
D2#122 | Valeur de l'information N°122 située sur le Père N°2 |
D2;D1#850 | Valeur de l'information N°850 située sur le Père N°1 du Père N°2 |
R341#741 | Valeur de l'information N°741 située sur l'objet du combo N°341 |
D1;R341;D2#73 | Valeur de l'information N°73 située sur le Père N°2 du combo N°341 du père N°1 |
Mots réservés | |
ID | Identifiant unique de l'instance dans l'objet |
GENRE | Libellé de l'objet (non virtuel) |
TITLE | Libellé de l'instance (composé d'une ou plusieurs Info) |
W | Libellé du Workflow |
W|ID | Identifiant Workflow |
Exemple avec mots réservés | |
D2#TITLE | Libellé du père N°2 |
D2;D3#ID | Identifiant du père N°3 du père N°2 |
...;RXXX#ZZZ | Pour atteindre l'information ZZZ depuis une Kinfo XXXX de type Utilisateur |
.GetView("ID[ET]I|984[ET]I|978[ET]I|979[ET]D2#ID[ET]D3#763[ET]D3#532[ET]D2;D1#490[ET]D2;D1;D1#637"
Les Filtres - Critères
Pour définir un filtre (ou un critère), il faut un chemin, un comparateur et une valeur séparés par un pipe |.Les comparateurs possibles sont : [inf ],[infe],[sup ],[supe],[diff],[egal],[like].
Le comparateur L est utilisé pour une appartenance à une liste d'ID tandis que NOTL sera utilisé pour obtenir ceux qui ne sont pas dans la liste d'ID
Le comparateur HAS est utilisé pour tester si une donnée de type listeinst contient un code donné (HASN autorise les null) et NHAS est son inverse.
Une recherche portant sur un fils est également possible :
FILSIN|CHEMINVERSPERE$OBJET$FILTRE* // si plusieurs arguments dans le filtre, les séparer par le signe [+]
Exemples | |
D3#374|L|1 | instances dont la valeur 374 du Pere 3 est 1 |
NOTL|401252;454;421;411; | instances qui n'ont pas les identifiants 401252,454,421 et 411 |
I|1061|egal NULL | instances pour lesquelles la valeur 1061 est NULL |
FILSIN|D1$60$I|826|diff [+]D2;D1|L|44;46 | instances dont les fils (objet 60 lié par la relation D1) ont une valeur 826 non vide et dont le père D1 du père D2 a pour identifiant 44 ou 46 |
I|877|HASN|411 | instances dont la donnée (de type liste d''instanceq) 877 contient l'identifiant 411 ou est null |
I|1013|fmto now;-1M;c D1|I|375|fmto now;-3D;c I|633|inf now+30 I|633|supe 21/12/2023 I|697|fmto now;-1Y I|584|entr NOW+1 et NOW+7 |
Les critères applicables sur une date peuvent être fixes (I|633|supe 21/12/2023) ou relatif à la date du jour notée NOW (I|633|inf now+30). On peut préciser une période fixe (I|584|entr 01/01/2023 et 01/01/2024) ou relative (I|584|entr NOW et NOW+365) Le critère fmto permet de préciser une notion de période civile (I|1013|fmto now;-1M;c) ou glissante (I|1013|fmto now;-1M) D (day),W (week),M (month),Q (quarter=trimestre),H (heure),Y (year) |
Vous pouvez utiliser l'écran de recherche pour générer et obtenir la syntaxe d'un Filtre :

Les données calculées
Une donnée calculée est une formule qui peut utiliser un chemin relatif, des données propres ou de ses fils ou encore des fonctions SQLPar convention on place entre crochet les chemins, les Fonctions F: (SUM, COUNT, MIN, MAX), les valeurs d'Historique H:
Le double signe == signifie que la formule ne contient que des membres physiquement sur le même objet (sans chemin ni groupement... )
Exemples | |
==[I|353]+[I|354] | Addition des valeurs des informations 353 et 354 |
=[F:SUM:D1#270:I|233|egal true] | Somme des valeurs de l'information 270 de l'objet fils par D1 limité aux fils ayant l'info 233 a True |
=[I|264]-[F:SUM:D1#271:] | |
==CASE WHEN [I|285] IS NOT NULL THEN DATEADD(m,[I|382],[I|285]) END | |
=CASE WHEN [I|749] IS NULL THEN DATEDIFF(m,[I|285],{fn NOW()}) ELSE DATEDIFF(m,[I|285],[I|749]) END | |
==DATEDIFF(hh,[I|341],[I|390]) | |
=[R:MAX:D1#696:] | |
=CAST((CASE WHEN [F:COUNT:D1#447:I|447|L|1]>0 THEN 0 ELSE 1 END) AS BIT) | Pour renvoyer une info de type booléen |
=[R:MAX:D1#434:] | R au lieu de F impose de prendre en compte les Restrictions de l'utilisateur' |
=[R:SUM:D1#332:] | Somme des 332 dans l'objet fils m'ayant comme D1 |
=[F:SUM:D3#520:]+([D3#317]*[I|342])+([R450#317]*[I|809]) | F est un calcul qui porte sur les Fils (comme R)|
=[F:MAX:D1#367:R443;R372¨L¨14;13;] | Valeur max de l'information 367 de l'objet fils par D1 ayant 14 ou 13 dans la valeur du combo 443 |
=[H:date:champ_k_histo='id_k_workflow_c_73' and value_k_histo=17:] | Recherche d'une date (ou value) dand Historique selon critère en dur |
==ROUND([I|444]*[I|929],2) | |
==DATEDIFF(m, [I|487], { fn NOW() }) -1 | |
==YEAR([I|842]) | |
==datepart(ISO_WEEK,[I|842]) | |
=CASE WHEN [I|446]=0 THEN ROUND([I|453],[D2#928]) ELSE ROUND([I|446]*[I|453],[D2#928]) END | |
==DATEADD(d,-1, [I|542]) | |
==(CASE [I|479] WHEN '1' THEN 'Activer' WHEN '2' THEN 'Désactiver' WHEN '3' THEN 'Réactiver' ELSE 'Annulé' END) | |
=(CASE [I|646] WHEN 6 THEN DATEDIFF(hh,[R:MAX:D1#705:],getdate()) ELSE 0 END) | |
==(CASE WHEN ([I|419]='4' OR [I|419]='6') THEN [I|414] ELSE [I|413] END) | |
=[CONCAT-INFO-FILS:Info:séparateurr:critère] | Concaténation de l'Info d'un Fils D avec ou sans critère |
=[CONCAT-TITLE:Info:séparateurr] | Concaténation des TITLE d'une Info de nature Liste Instances |
=[CONCAT-INFO-LIENFILS:objetLien:Info:séparateur] | Concaténation de l'Info du fils lié depuis un objet (classique) de lien pere-fils |
Cycle de vie = Workflow
Lorsque les instances d'un objet suivent un cycle de vie déterminé par les modes opératoires en place au sein de l'entreprise ou bien si les instances ont un statut/état qui détermine leur couleur et comportement, on utilisera le workflow.
- Libellé : libellé du statut/état
- Visible : indique si les instances ayant ce statut sont visibles ou non.
- Modifiable : indique si les instances ayant ce statut sont modifiables ou non.
- Supprimable : indique si les instances ayant ce statut sont supprimables ou non.
- Couleur : couleur de la ligne dans les listes
- OnEnter : Mot clef pour exécuter du code spécifique coté serveur
- Ordre : Ordre d'affichage dans la liste de choix
Il est possible de préciser les transitions autorisées entre les différents statuts/états.
Chaque transition peut faire l'objet d'une condition (commencant par *), d'un message spécfique si la condition n'est pas remplie.
On peut paramétrer le passage automatique (condition ne commencant pas par *) d'une transition selon un délai en jours.

Les analyses graphiques
Consultez le document Kchart.pdfEmbed : Les éléments additionnels
Dans un écran, on peut intégrer des éléments pour des raisons visuelles, pratiques, rapides pour traiter certaines informations de l'objet.L'embed s'active majoritairement lorsque que la fiche est enregistrée.

- Titre : Titre de l'élément.
- Objet : Objet K à impacter.
- Type : voir tableau ci dessous
- Vue : Seules les fiches/listes ayant cette vue seront concernées.
- Critères : Seules les instances répondant à ce critère seront impactées.
- Langue : Seuls les utilisateurs utilisant cette langue seront concernés.
- Rôles : Seuls les utilisateurs connectés avec ce profil seront concernés.
Type | Utilité | Pos./Taille | Paramètres |
Sections | S'il y a trop de données à afficher, vous pouvez éclater une fiche en sections (pavés) ouvrables ou fermables individuellement. |
Titre : Titre section1;Titre section2;...
Param1 : Hauteur-largeur;Hauteur-Largeur;... (290px-99%;250px-99%) |
|
Initform | Lance un code javascript à l'ouverture | Param1 : Fonction javascript à éxécuter, ID est remplacé par l'identifiant de la fiche. | |
Pièce Jointe | Emplacement d'accès rapide aux pièces jointes | XYLH |
Param1 (Option): Si vide alors la classe utilisée est Cadre, si commence par # alors cela correspond à une couleur de fond sinon cela indiquera la classe à utiliser. Param2 (Option): En notant PREVIEW, il apparaitra un cadre affichant les pièces sinon un simple bouton d'accès aux pièces jointes. Param3 (Option): Impose un seul type de document (=ID d'un objet K héritant de Document) Param4 (Option): Si C alors les utilisateurs peuvent ajouter une pièce jointe (au delà de leurs droits). Param5 (Option): N° de Section |
Sous formulaire | Permet d'afficher un ou plusieurs onglets au creux de la fiche. Le titre des onglets est séparé par le signe ¨ dans Titre | XYLH |
Param1 : (séparer chaque onglet par le signe ¨) pour afficher une liste de fils = FXX.D (instances de l'objet XX ayant comme père durable D la fiche concernée) pour afficher une liste indépendante = SXX.Filter (instances de l'objet XX répondant à Filter) sinon contient le [Pos. Virtuel] des k_info à afficher Param2 (Option): Options des sous listes Vue-ToolBar-Filtre;... (R-false-;E-true-D1|@D1;...) Param3 : Critère d'affichage de chaque onglet séparé par le signe ¨ |
Graphique | Affiche un Kchart | XYLH | Param1: Valeur du Filtre (ID Instance) |
Cadre | Affiche un cadre en fond pour présentation. | XYLH |
Param1 (Option): Si vide alors la classe utilisée est Cadre, si commence par # alors cela correspond à une couleur de fond sinon cela indiquera la classe à utiliser. Si H=15 alors le Titre est affiché avec le style du Param1. Param2 : Param4 : (option) Fonction (de refresh/recalcule) appelée en cas de click sur fond, this est remplacé par l'Id de l'embed. Param5 : N° de section |
Bouton | Affiche un bouton | XYLH | Param1 : Fonction javascript appelée. Param2 : (Option) image à préciser. Param3 : Texte du bouton Param4 (option) : ONNEW pour afficher également le bouton en mode création Param5 : N° de section |
Bouton Grid | Ajoute un bouton sur la toolbar de la Liste | Param1 : Fonction javascript appelée (IDGRID est remplacé par l'Id de la liste). Param2 : Info bulle du bouton | |
Boite Mail | Affiche un bouton d'accès à l'outil Kmails. | XYW | |
Jauge | Affiche une jauge en mode liste | L | Param1 : InfosPos ou NOW Param2 : Liste d'infos dates séparées par [ET] Param3 : Liste de couleurs correspondantes séparées par [ET] Param4 : décalage|backcolor|curseurFix|infoBulle Param5 : Filtre¤cols¤couleurs Si filtre ok alors on prend les cols et couleurs de param5 au lieu de param2 et param3 ex : I|578|diff [ET]I|659|diff [ET]I|439|egal VN¤I|578[ET]I|660[ET]I|661¤#FF0011[ET]#FF0011[ET]#000000 |
Formulaire lié | Affiche un formulaire lié bijectivement avec changement possible du choix de la fiche liée. | XYLH |
Param1 : Les chemins séparés par le signe [|] Param2 : Filtres sur infos séparés par le signe [|] Param3 (Option) : Nom de la classe Param 5 (Option): N° de Section |
Pré-sélections
L'administrateur peut définir des pré-sélections pour l'ensemble des utilisateurs dans le but de faciliter leurs recherches récurrentes.- Nom : Nom de la sélection/veille.
- Utilisateur : Sélection réalisée pour et par un utilisateur unique.
- Objet : Objet sur lequel porte la sélection
- Critères : Seules les instances répondant à ce critère seront obtenues.
- Groupe TDB : Nom du regroupement de veilles
- Veille TDB : Priorité d'affichage (si plusieurs fois le même Nom)
- Couleur Veille : Couleur du bouton dans le tableau de bord.

IA: Comportement entre objets
Type et Utilité | Explications |
Panier Affiche un bouton type caddy pour création de lignes en regard des données d'un autre objet (son ID sera récupéré dans un D) avec en option une donnée à saisir. Ex : Choix des articles dans une facture, une commande, un catalogue fournisseur, inventaire |
Libellé : nom libre pour ce panier Objet 1 : Objet donneur Objet 2 : Objet receveur Filtre 1 : Filtre sur l'objet 1 (données proposées). Ce filtre accepte une variable portant sur l'objet père de l'objet 2 Dx|L|@Dx;Dx Filtre 2 : Condition que doit respecter le peredata du receveur (permet aussi de conditionner le panier à utiliser s'il y en a plusieurs) Param 1 : Donnée à saisir en regard des données sélectionnées de l'objet 1 (ex: *;199-) Vue;IdInfoASaisir- Param 2 : Permet de limiter la saisie à une valeur max (ex: 0-I199) preinfo_k_ia : Impose une pré-saisie avant l'ouverture du panier (ex: 199) openmode_k_ia : Mode du panier (2 n'autorise l'ajout qu'avec le panier, pas de bouton [+] ) Sur modifier : Partie gauche : Les info sources depuis Objet 1 Partie droite : Les infos de destination dans Objet 2 |
Trigger: déclencheur (de javascript) sur évènement
Nom : libellé libreConcerne : Objet (ou objet hérité) sur lequel le trigger est déclenché
Condition : Filtre optionnel (sur l'objet concerné) de déclenchement
Actions : appel javascript (sauf exception ci dessous*), IDFICHE est remplacé par l'ID de l'instance modifiée.
exemple: Wait('qc_closeservice&IdService=IDFICHE')
Type et Utilité | Explications |
Sauvegarde Fiche (1) | Appelé après un Save. |
Fermeture Fiche (2) | Equivalent de OnClose (du container). Si IsNew alors la Condition n'est pas testée |
Création fiche (3) |
Equivalent de AfterCreate sur création instance. IDOBJET est remplacé par l'IdObjet et IDK par l'IdInstance' Permet par exemple l'ajout automatique de Fils : Wait('AddFilsOnCreate&ListeIa=4-5-10-14-24&Instance=IDFICHE'); |
Impression (4) |
Equivalent de OnPrint. La condition est juste un IdPublipostage. *Déclenche l'appel de : Special.OnTrigger("4",Concerne, KIA, Instance, param2) Ce déclencheur est appelé avant et après génération physique du PDF. AVANT : param2 est vide, APRES : param2 contient le nom du fichier physique du PDF Ceci permet, par exemple, de fusionner un PDF avec celui généré. |
Création depuis (5) |
Equivalent de OnCreateFrom. Ce déclencheur est appelé sur une création ayant une instance d'origine. *Déclenche l'appel de : Special.OnTrigger("5", ObjetToCreate, IAK, IdNewInstance, ObjetFrom + "-" + InstanceFrom); Ceci permet d'agir sur l'instance générée ou génitrice. |
CritereOnUpdateImport (6) | *Provoque l'arrêt complet d'une importation si l'instance à modifier ne répond pas à la Condition. |
GridOnAnyChange (7) |
Déclenche un appel sur toute modification ou suppression dans une sous liste. Pas de Condition possible PEREDATA est remplacé par l'IdInstance du container de la sous liste Exemple : WaitSpec('test_simple&Service=PEREDATA'); |
CreateKmail (8) |
*Déclenche l'appel de Special.OnTrigger(Action, IdObjetMail, KIA, IdInstanceMail, IdPublipostage); Pas de Condition possible |
Rapports, états, PDF, email,
Outil Kmails, client messagerie
L'outil Kmail permet la création, la prévisualisation, l'envoi et l'historisation d'emails (ou de courriers) échangés.Le message est un rapport et peut donc contenir des champs de fusion, sous rapport, etc...
L'emetteur From est un email
Le destinataire To est de type multi-instance dont l'objet contient une info de type email (paramétrer Attribut)
Le destinataire en Copie Carbone CC est de type multi-instance dont l'objet contient une info de type email (paramétrer Attribut)
Les Pièces jointes PJ est de type multi-instance dont l'objet contient une info de type uri (généralement l'objet Document Ged) (paramétrer Attribut)
Chaque instance de Kmail est liée à une instance souvent le Client (paramétrer D1)
Les info de l'objet Kmail ne sont pas modifiés par les mises à jour Kupdate
Registre
Role : si non vide, ce registre ne concerne que ce role. Utilisateur : Si non vide, ce registre ne concerne que cet utilisateur.Name | Utilité | Valeur |
ShowOngletFils | Restriction d'affichage d'un objet fils à certains pères ? | Objet=IdObjetFils Valeur=Liste des pères autorisés séparés par des ; |
OngletFiltreXX | Affichage onglet fils conditionné par un critère portant sur l'objet père XX | Objet=IdObjetFils Valeur=Critère/filtre sur objet XX |
ClassInfoXXX | Impose une classe spécifique pour l'affichage de l'info XXX en mode liste (pour éviter de tronquer ou d'avoir une taille plus petite..) | Objet=null Valeur=Nom de la classe |
srcjs | Load un fichier js spécifique (externe ou local) | Objet=null Valeur=https://maps.googleapis.com/maps/api/js?key=xxxxx |
gridvue | Impose une vue dans l'affichage des listes/fiches pour un rôle | une lettre majuscule |
RGPD
Consultez le document Krgpd.pdfLes expressions régulières
Si vous n'êtes pas habitué à écrire une expression régulière, le plus simple est encore de chercher sur le web l'expression déjà faite...Une des plus courante est celle qui impose une saisie obligatoire : /^.+$/