Documentation - Agenda
Ce composant permet d’afficher un agenda sous trois vues : Hebdomadaire / Infinie / Mensuelle
Le composant est multi ressources. Vous pouvez :
- Gérer des jours fériés en automatique ou manuellement
- Verrouiller des évènements
- Choisir les polices, couleurs, transparence de tous les éléments.
Le composant vous renvoie les évènements suivants : Evènement modifié, Sur clic, Sur double clic, Sur survol, Sur création, …
Les évènements sont également gérés dans les zones d’entête, la zone latérale ou le coin.
Les outils permettant de gérer le Drag & Drop externe sont fournis.
Concepts et paramétrage de l'agenda
Présentation
Ce composant d’Agenda SVG (SAG) est conçu pour 4D et utilise les capacités SVG.
Il nécessite la version 12.3 de 4D pour fonctionner ainsi que le composant 4D SVG. Une version pour la V13 exploite certaines fonctions spécifiques pour optimiser le fonctionnement, une version du composant pour la V14 a été testée et fonctionne parfaitement.
Le composant Agenda SVG permet de gérer entre autres les éléments suivants :
- Mode jour, semaine et mois
- Drag & Drop au sein du planning et en dehors
- Affichage de zones d’activité réservées
- Gestion d’apparence en fonction du type d’événement ou spécifique à l’événement
- Défilement synchronisé des entêtes
- Redimensionnement des événements par le haut ou par le bas
- Date picker
- Multi-ressources
- Base d’exemples et de configuration
- Mémorisation et restauration de réglage en un clic
- Drag & Drop dans le planning et en dehors
- Gestion de bulles d’aides au survol sur les événements
- Transparence et ombrage des rendez-vous
- Affichage des jours fériés
- Paramétrage fin des polices et des couleurs
- Optimisation automatique de la hauteur des heures et des largeurs de colonnes en fonction de l’espace disponible
- Mémorisation et restitution très aisé des paramétrages de l’agenda
- Application iOS connectée
- Gestion de la molette de la souris
- Plus de 60 méthodes pour paramétrer et gérer votre agenda
Compatibilité :
- Mac et PC
- V13, V14 et V15
Concepts et dénominations
Les ressources
Les ressources sont les éléments dont vous allez planifier l’activité ou l’utilisation, il s’agit au choix, de personnes, de salles ou de matériel. Vous pouvez rattacher plusieurs ressources à un évènements. Si vous changez une information d’un évènement attaché à plusieurs ressources, ces informations seront modifiées pour toutes les ressources.
Les zones
Les évènements
Les types
Les plannings
Le date picker
Les vues
Vue hebdomadaire
Cette vue permet de visualiser un agenda par semaine.
A l’aide des paramètres vous pouvez afficher verticalement une journée, les heures de débuts et de fin sont paramétrables. Il est possible d’afficher de 1 à N jours. Nous avons effectué des tests avec un agenda sur un an. Les limites sont plus liées aux nombres d’événements à afficher sur la vue et aux temps de réponses attendus (+/- 1s5 pour 10.000 évènements sur une machine récente).
La vue est composée de 4 zones :
- Le corps (body)
- L’entête (Header)
- La partie latérale (Sider)
- Le coin (corner)
Vue mensuelle
Vue unlimited
SAG_getParameter
BIENTOT DISPONIBLE
SAG_getParameterFile
BIENTOT DISPONIBLE
SAG_purgeAllType
Commande permettant d’effacer tous les types d’événements.
Exemple de code
SAG_purgeAllType
SELECTION VERS TABLEAU([Type_Event]Nom;$tableau_Nom;[Type_Event]TitreFond;$tableau_Titrefond;....
$error:=SAG_setEventType (->$tableau_Nom;->$tableau_Titrefond;......
SAG_purgeAllRange
BIENTOT DISPONIBLE
SAG_purgeAllRessource
BIENTOT DISPONIBLE
SAG_setEventType
Paramètres
Paramètres | Type | ==> | Description |
Type Name | Texte | ==>
| Nom du type de rendez-vous |
Type Title Font | Texte | ==>
| Police du titre du rendez-vous |
typeTitleBGColor | Texte | ==>
| |
typeTitleFontStyle | Entier long | ==>
| |
typeTitleFontColor | Texte | ==>
| |
typeTitleFontSize | Entier long | ==>
| |
typeEventFont | Texte | ==>
| |
typeEventBGColor | Texte | ==>
| |
typeEventStyle | Entier long | ==>
| |
typeEventFontColor | Texte | ==>
| |
typeEventFontSize | Entier long | ==>
| |
typeTitleHeight | Entier long | ==>
| |
TypeRoundCorner | Entier long | ==>
| |
typeEventFontStyle | Entier long | ==>
| Optionnel (normal par défaut) |
typeEventFontAlignement | Entier long | ==>
| Optionnel (centré par défaut) |
Erreur | Entier long | Codes d’erreurs |
Description
Permet de définir toutes les informations pour un type d’événement. Les types d’évènement permettent de définir l’apparence de plusieurs évènements d’un seul coup.
Exemple de code
C_ENTIER LONG($error)
SAG_purgeAllType
Boucle ($i;1;Taille tableau($Name))
$error:=$error+SAG_setEventType ($Name{$i};$TitleFont{$i};/
$TitleBGColor{$i};/
$TitleFontStyle{$i};/
$TitleFontColor{$i};/
$TitleFontSize{$i};/
$EventFont{$i};/
$EventBGColor{$i};/
$EventStyle{$i};/
$EventFontColor{$i};/
$EventFontSize{$i};/
$TitleHeight{$i};/
$RoundCorner{$i};/
$EventFontStyle{$i};/
$EventFontAlignement{$i})
Fin de boucle
SAG_purgeAllType
$error:=$error+SAG_setEventType ("Rendez-vous";"Arial";"Blue";Gras;"white";14;"Arial";"rgb(126,149,255):75";Normal;"black";12;20;2;Gras+Italique;Aligné à droite)
$error:=$error+SAG_setEventType ("Déjeuner";"Arial";"Orange";Gras;"white";14;"Arial";"lightgoldenrodyellow:80";Normal;"black";12;25;0)
$error:=$error+SAG_setEventType ("Indisponible";"Times";"Red";Gras;"white";14;"Times";"Red:80";Normal;"black";12;25;0)
SAG_setParameter
Paramètres globaux | |
Ascenseur
| · ScrollbarBGColor : couleur de la barre d’ascenseur (le pourtour) · ScrollbarTrackColor : couleur du fond de l’ascenseur · ScrollbarTrackPieceColor : couleur de l’ascenseur en lui même · ScrollbarSelectedTrackPieceColor: Couleur du track piece scrollbar quand il est activé (clic dessus) |
Bulle d’aide
| · TipsOn : « yes » ou « no » : affichage des bulles d’aide (« yes » par défaut) · TipsBGColor : couleur de fond de la bulle d’aide · TipsBorderColor : couleur du cadre de la bulle d’aide · TipsBordersize : épaisseur du cadre · TipsWidth : largeur de la bulle d’aide · TipsFont : police de la bulle d’aide · TipsFontSize : taille de la police de la bulle d’aide · TipsFontStyle : style de la police de la bulle d’aide · TipsAlignement : alignement du texte de la bulle d’aide |
Corner informations
| · corner_texteFontColor · corner_texteFontSize · corner_texte · corner_texteFont · corner_texteFontStyle · corner_texteFontAlignement · corner_texteHeight · corner_BGColor |
Dates
| · dateFormat : format d’affichage des dates Vous pouvez paramétrer le format de date de 2 manières différentes : $error: =SAG_setParameter (« dateFormat »; »JJ MMM ») Avec cette syntaxe vous pouvez déterminer de manière extrêmement fine votre affichage. Vous pouvez utiliser : o JJ jours sur 2 digits o MM mois au format 01,02, … o MMM mois au format jan, fév.,… o AA Année sur 2 digits o AAAA Année sur 4 digits $error:=SAG_setParameter (« dateFormat »;Chaine(Interne date long)) Avec cette syntaxe, le composant utilisera le format 4D correspondant. |
Horaires
| · startTime · endTime |
Divers
| · ShowAbout : vrai ou faux, permet de désactiver l’alerte d’à-propos dans le carré en bas à droite de l’agenda · authorizedCreation : vrai ou faux, permet de bloquer la création d’événement dans le planning · MultipleSelection : « yes » ou « no », permet de sélectionner plusieurs événements (par défaut : no) |
Jours fériés
| · showHoliday · HolidayFont · HolidayFontSize · HolidayFontColor · holidayBackGroundColor · holidayFontColorOpacity · holidayBackGroundOpacity |
Jours courants
| · HighlightCurrentDay : yes or no · CurrentDayBGColor : couleur au format SVG · CurrentDayArea : Zone à mettre en couleur pour le jour courant : « AllDay », « Header » ou « Date » |
Ressources
| · ResourceVAlign : Alignement vertical de la ressource : Top, Center, Bottom · ResourceHAlign : Alignement Horizontal de la ressource : 1 défaut (à gauche), 2 à gauche, 3 Centré, 4 à droite vous pouvez utiliser chaine de constantes d’alignement d’objets (Aligné à droite, Aligné à gauche, Aligné par défaut, Centré) |
Verrouillage des évènements
| · AutoLock : yes/no est à yes par défaut · AutoLockTime : Heure : durée après laquelle un événement se verrouille · authorizedCreation : yes/no, true/false, oui/non, vrai/faux |
Magnétisme des repères
| · magnetism : yes/no · magnetismTime : heure |
Zones de notification
| · ZoneNotif · ZoneNotifHeight · ZoneNotifBGColor |
Mode Semaine | |
Zone de ressources (en haut)
| · hauteurRessource : hauteur de la zone de ressource · ressourceFontColor : couleur de police de la zone de ressource (Nom des personnes, des salles,…) · ressourceFont : police de la zone de ressource (Nom des personnes, des salles,…) · ressourceFontSize : taille de police de la zone de ressource (Nom des personnes, des salles,…) · ressourceFontStyle : style de police de la zone de ressource (Nom des personnes, des salles,…) · ResourceBGColor · SpecificBGColorOnResource : yes/no (defaut no) · ShowUnikResourceName value : « yes » or « non » (defaut « yes ») : affiche ou masque le nom de la ressource en mode semaine ou jour s’il n’y a qu’une ressource à afficher, par défaut le nom est affiché |
Zone de date et de titre (en haut)
| · DateBGColor · DateBGColor2 · AlternateBGColorOnDate : yes/no (défaut no) · BGColorTitle : couleur de fond de la zone de titre · scheduleTitleHeight : Hauteur de la zone de titre · scheduleTitleFontSize : Taille de la police du titre · scheduleTitleFontTitle : Police du titre · scheduleTitleFontColor : Couleur de la police du titre |
Zone des heures (à gauche)
| · hourHeight : Hauteur en pixel d’une heure · HoursBGColor : couleur de fond de la zone des heures · 30mnLibelle : yes/no affichage des libellés des demi-heures · 30mnLibelleSize : px · 30mnLibelleWithoutHour : affichage uniquement des minutes sur les libellés des demi-heures · hourFont : nom de la police (Arial par exemple) · hourFontColor : couleur · hourFontSize : px · hourHeight : px · lineColor : couleur · 30mnLineColor : couleur · 30mnLine : yes/no Affichage de la ligne des demi-heures · ShowCurrentHour : yes ou no, permet de gérer l’affichage de la ligne de l’heure courante dans l’agenda semaine (Défaut : yes) |
Corps du planning
| · WeekAreaBGColor · StartingMode : jour de démarrage d’affichage du planning : »dayToDraw » ou « 1dayOfWeek » |
Concomitance des évènements
| · eventDeltaPosition=Valeur en pixel du décalage horizontal entre rendez-vous concomitants (Défaut : 20px) |
Mode mois | |
| · MonthEventFontSize : Taille de la police utilisée pour afficher un événement en mode mois (Défaut :12) |
Mode unlimited | |
| · UnlimitedHourWidth : largeur d’une heure en pixel dans le planning « unlimited » · NumberOfIntervals : Nombre d’intervals à afficher sur 24h dans le planning « unlimited » · HoursHeight : hauteur de la zone des heures dans le planning « unlimited » |
Ressources
| · RessourceWidth : largeur de la colonne des ressources dans le planning « unlimited » · ResourceVAlign : Alignement vertical du nom des ressources dans la zone de ressource à gauche : »top » ; »center » ; »bottom » par défaut « top » · ResourceHAlign : Alignement horizontal du nom des ressources dans la zone de ressource à gauche : Ex : Chaine (Aligné au centre) par défaut cadré à gauche |
Zone de notification
| · ZoneNotif : par défaut faux · ZoneNotifHeight : par défaut 30 · ZoneNotifBGColor : par défaut « Pink :50 » |
Traits verticaux des heures
| · UhourLine : Affichage ou pas de lignes verticales pour les heures dans le corps du planning Yes ou No par défaut « no » · UhourLineColor : Couleur de ces lignes par défaut « red » · UhourLineWidth : Epaisseur de ces lignes par défaut « 1 » |
SAG_setParameterFile
BIENTOT DISPONIBLE
SAG_setRange
Paramètres
Paramètres | Type | ==> | Description |
Jour | Entier long | ==>
| De 1 (lundi) à 7 (dimanche) |
Nom | Texte | ==>
| |
Heure début | Heure | ==>
| |
Heure de Fin | Heure | ==>
| |
Couleur de fond | Texte | ==> | Nom d’une couleur SVG ou triplet RGB |
Opacité | Entier long | ==>
| Entre 0 et 100 |
Position du Nom | Texte | ==>
| Position ou sera affiché le libellé de la zone : « top » (en haut), « left » (à gauche), « right » (à droite), « down » en bas ou « Center » centré verticalement dans la zone |
Couleur de la police de caractère | Texte | ==>
| Nom d’une couleur SVG ou triplet RGB, ex : rgb(50;50;50):80 |
Liste des ressources concernées par ce range | Texte | ==>
| Optionnel. Les UUIDs des ressources doivent être séparés pas des » « Si vous ne voulez spécifier aucune ressource : passez une chaine vide. Pour afficher le range dans la zone d’information du planning unlimited passez -1 |
Date de début | Date | ==>
| Optionnel. Si non passé le range est répété sur toute les semaine |
Date de fin | Date | ==>
| Optionnel : Si cette valeur n’est pas passée le range à une durée d’un jour |
Police du nom du range | Texte | ==>
| Optionnel : Si cette valeur n’est pas passée le nom du range est affiché en police arial |
Taille de la police du nom du range | Entier long | ==> | Optionnel : Si cette valeur n’est pas passée le nom du range est affiché en taille 20 |
Style de la police du nom du range | Entier long | ==> | Optionnel : Si cette valeur n’est pas passée le nom du range est affiché en Gras, vous pouvez utiliser les constante 4D : gras, italique et souligné pour définir le style |
Erreur | Booléen | Codes d’erreurs |
Description
Permet de définir les zones spécifiques, elles seront matérialisées sur les plannings sous la forme d’une plage de couleur.
Commandes liées : SAG_purgeAllRange
Exemple de code
C_ENTIER LONG($error)
SAG_purgeAllArea
$error:=$error+SAG_setRange (2;"Réunion hebdomadaire";?09:00:00?;?12:00:00?;"red";75;"left";"Black";"";!00/00/00!;!00/00/00!)
$error:=$error+SAG_setRange (6;"Samedi";?00:30:00?;?24:00:00?;"purple";20;"top";"red")
$error:=$error+SAG_setRange (7;"Dimanche";?00:30:00?;?24:00:00?;"purple";40;"top";"red")
$error:=$error+SAG_setRange (3;"Jour des enfants";?05:30:00?;?24:00:00?;"green";50;"top";"red";"Res001 SF")
$error:=$error+SAG_setRange (3;"Repas";?12:00:00?;?14:00:00?;"blue";20;"Top";"black";"PK SL res001";!22/04/2013!;!22/04/2013!)
$error:=$error+SAG_setRange (3;"Au boulot";?14:00:00?;?18:00:00?;"red";20;"Top";"black";"PK SL";!22/04/2013!;!22/04/2013!)
$error:=$error+SAG_setRange (4;"Commercial";?08:30:00?;?20:00:00?;"green";30;"left";"red";"")
$error:=$error+SAG_setRange (5;"Etude";?10:30:00?;?17:00:00?;"grey";30;"down";"red";uuidRessource1+" "+uuidRessource2)
$error:=$error+SAG_setRange (5;"Jeudi 8";?08:30:00?;?20:00:00?;"grey";30;"left";"red";"";!08/12/2011!)
$error:=$error+SAG_setRange (3;"Autre exemple";?00:00:00?;?00:00:00?;"red";20;"Top";"black";"PK SL";!28/04/2013!;!29/04/2013!;"Times";24;Gras+Italique+Souligné)
SAG_setRessource
Paramètres
Paramètres | Type | ==>
| Description |
Nom de la ressource | Texte | ==>
| Nom de la ressource que l’on veut afficher |
UUID de la ressource | Texte | ==>
| C’est l’id unique de la ressources |
Famille de la ressource | Texte (optionnel) | ==>
| C’est le type de ressources (Personne, Salle, Rétroprojecteur, …) |
Jours à afficher | Texte (optionnel) | ==>
| Ce sont les numéros des jours à afficher pour cette ressource au format : « 1234567 ») 1-> dimanche |
BackGroundColor | Texte (optionnel) | ==>
| C’est la couleur de fond des jours affichants cette ressource en hexa ou en couleur SVG et supportant l’indication de l’opacité |
Hauteur de la ressource | Texte (optionnel) | ==>
| C’est la hauteur de la ressource dans le planning Unlimited si vous passez 0 c’est la valeur par défaut (60) qui sera utilisée |
Description/aide | Texte (optionnel) | ==>
| Texte qui s’affiche dans la bulle d’aide au survol du nom de la ressource en mode unlimited ou semaine |
Erreur | Booléen |
Description
Cette commande permet d’indiquer au composant les ressources qu’il va devoir afficher.
Les ressources ne sont pas triées par le composant, elles s’affichent donc dans l’ordre dans lequel vous les avez insérés Si vous essayez de créer une ressource avec le UUID d’une ressource déjà existante la commande renvoie une erreur 300.
Commandes liées : SAG_deleteAllRessource
Exemple de code
$error:=SAG_setRessource ("Paul Kühn";uuidRessource1;"Concepteur";"23456";"LightBlue";50;"Aide sur Paul Kühn")
Gestion des jours fériés et évènements
SAG_AddDayOff
Paramètres
Paramètres | Type | ==>
| Description |
Nom du jours férié | Texte | ==>
| C’est la chaine qui s’affichera dans la zone du jours |
Date du jours férié | Date | ==>
| Date ou doit s’afficher le nom du jours |
Description
Ajoute un jour férié à afficher au planning.
Exemple de code
SAG_AddDayOff ("Anniversaire de Paul";!30/09/2012!)
SAG_AddFrenchDayOff
Description
Cette méthode réactive l’affichage des jours fériés français.
Exemple de code
SAG_AddFrenchDayOff
SAG_PurgeDayOff
Description
Cette méthode efface tous les jours fériés, les jours fériés français qui sont gérés par défaut par le composant sont également supprimés.
Exemple de code
SAG_PurgeDayOff
SAG_addEvent
Paramètres
Paramètres | Type | Description | |
UUID | Texte | ==> | |
Date de l’événement | Date | ==> | |
Heure du début de l’événement | Entier Long | ==>
| |
Durée de l’événement | Entier Long | ==>
| |
Type de l’événement | Texte | ==> | |
Titre de l’événement | Texte | ==>
| |
Uuid des ressources affectées l’événement | Texte | ==>
| Dans le cas où il y a plusieurs ressources pour l’évènement il faut les séparer par des « espaces » |
Description de l’événement | Texte | ==>
| |
Bulle d’aide de l’événement | Texte | ==>
| Ce texte s’affiche lors du survol d’un événement. |
Paramètres d’apparence | Texte | ==> | Permet de personnaliser l’affichage de cet événement |
Auto verrouillage immédiat | Booléen | ==> | Paramètre optionnel permettant de verrouiller immédiatement un/des événements ajoutés si vous ne le passez pas il sera mis à faux et l’évènement ne sera pas verrouiller immédiatement (voir verrouillage relatif (TimeLock)) |
HardLock | Booléen | ==>
| Vrai pour verrouiller l’évènement et faux pour le laisser modifiable (voir aussi verrouillage absolu (HardLock)) |
Retour | Entier Long |
Description
Cette commande permet d’ajouter un nouvel événement sur le planning.
Dans les Bulle d’aide de l’événement, pour effectuer un retour à la ligne il faut faire un CRLF : Caractere(13) +Caractere(10)
Après les mises à jour du planning vous devez déclencher son « re dessin » à l’aide de la commande reDraw.
Pour les apparences spécifiques, voici la liste des paramètres :
- Nom de la fonction : Description de la fonction
- TitleHeight : Taille de la barre de titre
- RoundCorner : Arrondi des coins du rendez-vous
- TitleBGColor : Couleur de fond de la barre de titre
- TitleFontSize : Taille de la police du titre
- TitleFont : Police du titre
- TitleFontStyle : Style du titre (normal, gras, etc.…)
- TitleFontColor : Couleurs de la police du titre
- EventBGColor : Couleur du fond de l’évènement
- EventFontSize : taille de la police du corps de l’évènement
- EventFont : Police de l’évènement
- EventFontColor : Couleur de la police de l’évènement
Exemple de code
$UUID:=Generer UUID
apparance:="RoundCorner=5&EventBGColor=LightBlue:50"
$error:=SAG_addEvent($UUID; $date; $heure; $duree; $type; $titre; $uid_participant; $description;
$infobulle; $apparance)
SAG_delEvent
Paramètres
Paramètres | Type | ==>
| Description |
UUID | Texte | ==>
| UUID de l’événement à supprimer |
Erreur | Entier long | Codes d’erreurs |
Description
Permet de supprimer un rendez-vous à partir de son UUID.
Exemple de code
$error:=SAG_delEvent($UUID)
SAG_EventPict
Paramètres
Paramètres | Type | ==>
| Description |
UUID | Texte | ==> | Uuid de l’événement dont on veut la représentation |
Apparence | Texte | ==>
| Optionnel : mode de représentation de l’événement : hebdomadaire(défaut) ou unlimited |
Variable image | Image | Image de l’événement sélectionné |
Description
Ce code permet d’obtenir dans une variable image le dessin d’un événement.
Cette commande est particulièrement utile pour la gestion du Drag&Drop.
Exemple de code
$UUID_Event:=SAG_SelectedEvent // On demande le UUID de l'event sélectionné
$EventPict:=SAG_EventPict ($UUID_Event) // on demande son image
SAG_getInfoEvent
Paramètres
Paramètres | Type | ==>
| Description |
UUID de l’évènement | Texte | ==>
| |
Tableau de libellés | Pointeur | ==>
| Pointeur vers un tableau texte |
Tableau de valeurs | Pointeur | ==>
| Pointeur vers un tableau texte |
Erreur | Entier long | Codes d’erreurs |
Description
Permet de demander au composant les informations sur un événement.
Vous pouvez consulter le détail des informations sur les évènements (InfoCallBack)
Exemple de code
TABLEAU TEXTE($T_libelle;0)
TABLEAU TEXTE($T_value;0)
$UUID_Event:=SAG_SelectedEvent
SAG_getInfoEvent ($UUID_Event;->$T_libelle;->$T_value)
Initialisation de l'agenda
SAG_SelectedEvent
Paramètres
Paramètres | Type | Description | |
UUID | Texte | UUID de l’évènement sélectionné |
Description
Renvoi le UUID de l’événement sélectionné.
La méthode renvoie une chaine vide si aucun évènement n’est sélectionné.
Exemple de code
$UUID_Event:= SAG_SelectedEvent
SAG_selectEvent
Exemple de code
BIENTOT DISPONIBLE
SAG_setEvents
Paramètres
Paramètres | Type | Description | |
UUID | Pointeur vers un tableau texte | ==> | |
Date de l’événement | Pointeur vers un tableau date | ==>
| |
Heure du début de l’événement | Pointeur vers un tableau entier Long | ==>
| |
Durée de l’événement | Pointeur vers un tableau entier Long | ==>
| |
Type de l’événement | Pointeur vers un tableau texte | ==>
| |
Titre de l’événement | Pointeur vers un tableau texte | ==>
| |
UUID des ressources affectées l’événement | Pointeur vers un tableau texte | ==> | Dans le cas où il y a plusieurs ressources pour l’évènement il faut les séparer par des « espaces » |
Description de l’événement | Pointeur vers un tableau texte | ==> | |
Bulle d’aide de l’événement | Pointeur vers un tableau texte | ==> | Ce texte s’affiche lors du survol d’un événement. |
Paramètres d’apparence | Pointeur vers un tableau texte | ==> | Permet de personnaliser l’affichage de cet événement |
Auto verrouillage immédiat | Booléen | ==>
| (Optionnel) permet de verrouiller immédiatement un/des événements ajoutés si vous ne le passez pas il sera mis à faux et l’évènement ne sera pas verrouillé immédiatement (voir verrouillage relatif (TimeLock)) |
HardLock | Pointeur vers un tableau booléen | ==>
| (Optionnel) Vrai pour verrouiller l’évènement et faux pour le laisser modifiable (voir aussi verrouillage absolu (HardLock)) |
Largeur (planning hebdomadaire) ou épaisseur (planning unlimited) de l’événement lors de son affichage | Pointeur vers un tableau entier long | ==>
| (Optionnel) |
Décalage vertical (planning unlimited) ou horizontal (planning hebdomadaire) de l’événement lors de son affichage | Pointeur vers un tableau texte | ==> | (Optionnel) |
Retour | Entier Long |
Description
Cette commande permet d’ajouter plusieurs événements sur le planning en une seule fois.
Dans les Bulle d’aide de l’événement, pour effectuer un retour à la ligne il faut faire un CRLF : Caractere(13)+Caractere(10)
Après les mises à jour du planning vous devez déclencher son « re dessin » à l’aide de la commande reDraw
Pour les apparences spécifiques, voici la liste des paramètres :
- Nom de la fonction : Description de la fonction
- TitleHeight : Taille de la barre de titre
- RoundCorner : Arrondi des coins du rendez-vous
- TitleBGColor : Couleur de fond de la barre de titre
- TitleFontSize : Taille de la police du titre
- TitleFont : Police du titre
- TitleFontStyle : Style du titre (normal, gras, etc.…)
- TitleFontColor : Couleurs de la police du titre
- EventBGColor : Couleur du fond de l’évènement
- EventFontSize : taille de la police du corps de l’évènement
- EventFont : Police de l’évènement
- EventFontColor : Couleur de la police de l’évènement
Exemple : « TitleHeight=24&TitleBGColor=green&EventBGColor= »+SVG_Color_RGB_from_long (45122)
Le séparateur entre les paramètres est le symbole « & »
Exemple de code
Dans ce code nous ajoutons les événements manuellement, dans le vôtre vous remplirez les tableaux soit par une sélection vers tableau soit dans une boucle
TABLEAU TEXTE($TableauUUID;0)
TABLEAU DATE($TableauDate;0)
TABLEAU ENTIER LONG($TableauHeure;0)
TABLEAU ENTIER LONG($TableauDuration;0)
TABLEAU TEXTE($TableauType;0)
TABLEAU TEXTE($TableauTitre;0)
TABLEAU TEXTE($TableauRessource;0)
TABLEAU TEXTE($TableauDescription;0)
TABLEAU TEXTE($TableauAide;0)
TABLEAU TEXTE($TableauApparence;0)
TABLEAU BOOLEEN($TableauHL;0)
TABLEAU ENTIER LONG($TableauDeltaY;0)
TABLEAU ENTIER LONG($TableauHauteur;0)
uuidRessource1:="PK"
uuidRessource2:="SF"
uuidRessource3:="SL"
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid)
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:30:00?)
AJOUTER A TABLEAU($TableauDuration;?23:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"pk")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:30 - 22:30")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Vrai)
AJOUTER A TABLEAU($TableauDeltaY;0)
AJOUTER A TABLEAU($TableauHauteur;0)
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid)
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:00:00?)
AJOUTER A TABLEAU($TableauDuration;?12:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"SF")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:00 - 11:00")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Faux)
AJOUTER A TABLEAU($TableauDeltaY;0)
AJOUTER A TABLEAU($TableauHauteur;0)
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid)
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:00:00?)
AJOUTER A TABLEAU($TableauDuration;?10:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"SL")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:00 - 09:00")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Faux)
AJOUTER A TABLEAU($TableauDeltaY;0)
AJOUTER A TABLEAU($TableauHauteur;0)
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid) // 8h 22h
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:30:00?)
AJOUTER A TABLEAU($TableauDuration;?47:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"fb")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:30 - 22:30 - 2 jours")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Vrai)
AJOUTER A TABLEAU($TableauDeltaY;0)
AJOUTER A TABLEAU($TableauHauteur;20)
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid)
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:00:00?)
AJOUTER A TABLEAU($TableauDuration;?34:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"fb")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:00 - 09:00 - 2 jours")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Vrai)
AJOUTER A TABLEAU($TableauDeltaY;20)
AJOUTER A TABLEAU($TableauHauteur;20)
$uid:=Generer UUID
AJOUTER A TABLEAU($TableauUUID;$uid)
AJOUTER A TABLEAU($TableauDate;Date du jour+$i)
AJOUTER A TABLEAU($TableauHeure;?23:00:00?)
AJOUTER A TABLEAU($TableauDuration;?34:00:00?)
AJOUTER A TABLEAU($TableauType;"Rendez-Vous")
AJOUTER A TABLEAU($TableauTitre;"DUps "+Chaine($i)+" - "+Chaine($j))
AJOUTER A TABLEAU($TableauRessource;"fb")
AJOUTER A TABLEAU($TableauDescription;"Un Blabla")
AJOUTER A TABLEAU($TableauAide;Chaine(Date du jour+$i)+" - "+"23:00 - 09:00 - 2 jours")
AJOUTER A TABLEAU($TableauApparence;"")
AJOUTER A TABLEAU($TableauHL;Vrai)
AJOUTER A TABLEAU($TableauDeltaY;40)
AJOUTER A TABLEAU($TableauHauteur;20)
SAG_purgeAllEvent
$error:=SAG_setEvents (->$TableauUUID;\
->$TableauDate;\
->$TableauHeure;\
->$TableauDuration;\
->$TableauType;\
->$TableauTitre;\
->$TableauRessource;\
->$TableauDescription;\
->$TableauAide;\
->$TableauApparence;\
Faux;\
->$TableauHL;\
->$TableauDeltaY;\
->$TableauHauteur)
SAG_updateEvent
Exemple de code
BIENTOT DISPONIBLE
SAG_purgeAllEvent
Description
Efface tous les rendez-vous du planning.
Exemple de code
// on efface les événements
SAG_purgeAllEvent
// On fixe les nouveaux événements
$error:=SAG_setEvents (->$TableauUUID;\
->$TableauDate;\
->$TableauHeure;\
->$TableauDuration;\
->$TableauType;\
->$TableauTitre;\
->$TableauRessource;\
->$TableauDescription;\
->$TableauAide;\
->$TableauApparence)
SAG_purgeAllRange
Exemple de code
BIENTOT DISPONIBLE
SAG_purgeAllRessource
Exemple de code
BIENTOT DISPONIBLE
SAG_purgeAllType
Description
Commande permettant d’effacer tous les types d’événements.
Exemple de code
SAG_purgeAllType
SELECTION VERS TABLEAU([Type_Event]Nom;$tableau_Nom;[Type_Event]TitreFond;$tableau_Titrefond;....
$error:=SAG_setEventType (->$tableau_Nom;->$tableau_Titrefond;......
SAG_PurgeDayOff
Description
Cette méthode efface tous les jours fériés, les jours fériés français qui sont gérés par défaut par le composant sont également supprimés.
Exemple de code
SAG_PurgeDayOff
Lecture d'informations de l'agenda
SAG_GetDateRange
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Date de début | Pointeur | ==>
| 1 | Pointeur vers une date qui contiendra le premier jour affiché dans le planning |
Date de fin | Pointeur | ==>
| 2 | Pointeur vers une date qui contiendra le dernier jour affiché dans le planning. |
Exemple de code
C_DATE($date1;$date2)
SAG_getDateRange(->$date1;->$date2
SAG_getDayResources
Paramètres
Paramètres | Type | Description | |
Date du planning | Date | ==>
| Date pour laquelle vous recherchez les ressources planifiées |
Tableau des UUID de ressources | Pointeur | ==>
| Pointeur vers un tableau texte, les UUID des ressources à planifier ce jour la seront ajoutées à la fin du tableau |
Tableau des noms de ressources | Pointeur | ==>
| Pointeur vers un tableau texte, les noms des ressources à planifier ce jour la seront ajoutées à la fin du tableau |
Erreur | Entier Long | ==>
| Vous pouvez trouver la signification de l’erreur dans la section Codes d’erreurs |
Description
Cette commande permet de connaitre les ressources devant être planifiées à une date donnée. Elle complète les deux tableaux passés en pointeur avec les UUIDs et les noms des ressources qui sont planifiées à la date demandée
Si cette date n’est pas affichée une erreur 304 est générée et les tableaux ne sont pas modifiés.
Exemple de code
$error:=SAG_getDayResources(!15/01/2012!;->$tableauDesUUIDressource;->$tableauDesNomRessource)
SAG_GetDrawSize
Exemple de code
BIENTOT DISPONIBLE
SAG_getInfoClic
Exemple de code
BIENTOT DISPONIBLE
SAG_getInfoClic_M
Exemple de code
BIENTOT DISPONIBLE
SAG_getInfoClic_U
Exemple de code
BIENTOT DISPONIBLE
SAG_GetInfoOnEvent
Exemple de code
TABLEAU TEXTE($Libelle;0)
TABLEAU TEXTE($Value;0)
EXECUTER METHODE DANS SOUS FORMULAIRE("SF_Planning";"SAG_GetInfoOnEvent";*;->$Libelle;->$Value)
SAG_GetLastRedrawDuration
Paramètres
Paramètres | Type | Description | |
Durée du dernier « re dessin » en milliseconde | Entier Long |
Description
Cette commande renvoie la durée de recalcul et de « re dessin » (commande SAG_redraw).
Remarques : Attention, le « re dessin » se fait via un « on timer » et il y a un délai entre l’appel à SAG_reDraw et la MAJ de la durée.
Exemple de code
$Duration:=SAG_GetLastRedrawDuration
SAG_getMouseXY
Paramètres
Paramètres | Type | Description | |
Position X | Pointeur vers un Entier Long | ==>
| |
Position Y | Pointeur vers un Entier Long | ==>
| |
Position globale | Texte | ==>
| Passez « * » pour avoir la position générale dans le planning |
Description
Cette commande renvoie la dernière position de la souris dans la zone de corps de planning.
Si vous souhaitez avoir la dernière position en tenant compte du sider et du header, passez un troisième paramètre de type texte, vous pouvez passer n’importe quoi dans le dernier paramètre car le composant détecte juste sa présence.
Remarques : Si la souris n’est jamais passée sur la zone la commande renvoie 0 dans $MouseX et $MouseY
Exemple de code
SAG_getMouseXY(->$mouseX;->$mouseY)
SAG_getMouseXY(->$mouseX;->$mouseY;"*")
Défilement de l'agenda
SAG_GetScrollBar
BIENTOT DISPONIBLE
SAG_Goto (Vue hebdomadaire uniquement)
Paramètres
Paramètres | Type | Description | |
Date de destination | Date | ==>
| Date à atteindre |
Heure de destination | Heure | ==>
| Heure à atteindre |
Description
Cette méthode permet de positionner un planning hebdomadaire comportant de nombreux jours à une date et une heure bien précise.
La méthode fera de son mieux pour centrer le planning sur la date et l’heure choisie.
Exemple de code
EXECUTER METHODE DANS SOUS FORMULAIRE("SF_Planning";"SAG_Goto";*;Date du jour;?14:30:00?)
SAG_SetScrollBar
Paramètres
Paramètres | Type | Description | |
Position horizontale de l’ascenseur | Entier long | ==>
| Position à fixer sur l’ascenseur horizontal |
Position verticale de l’ascenseur | Entier long | ==>
| Position à fixer sur l’ascenseur vertical |
Position résultante | Texte | Au format XX-YY ou XX est la position verticale et YY la position horizontale |
Description
Permet de positionner les ascenseurs du planning.
Exemple de code
$newPosition:=SAG_SetScrollBar(1000;1500)
SAG_xColumnMove
BIENTOT DISPONIBLE
SAG_xRowMove
BIENTOT DISPONIBLE
Verrouillage des évènements / Méthodes de CallBack
Les 2 types de verrouillage
Le composant permet 2 types de verrouillage, le verrouillage absolu (HardLock) et le verrouillage relatif (TimeLock) lié à un délai.
Le verrouillage a pour but d’empêcher la modification ou le déplacement d’un évènement. Vous pouvez l’utiliser en particulier pour :
- Empêcher une action d’une personne non autorisée
- Verrouiller un évènement x minutes après qu’il ait été créé pour qu’il ne puisse être modifié/déplacé par une erreur d’un utilisateur
SAG_isEventLocked
BIENTOT DISPONIBLE
SAG_isThisEventLocked
BIENTOT DISPONIBLE
SAG_LockEvents
BIENTOT DISPONIBLE
SAG_UnlockEvents
BIENTOT DISPONIBLE
SAG_setHardLock
Paramètres
Paramètres | Type | Description | |
UUID | Texte | ⇒ | Identifiant unique de l’évènement |
Etat du verrou | Booléen | ⇒ | Vrai pour verrouiller l’event et faux pour le déverrouiller |
Error | Entier Long | ⇐ | codes d’erreurs |
SAG_callOnClic
BIENTOT DISPONIBLE
SAG_CallOnCornerEvent
BIENTOT DISPONIBLE
SAG_callOnCreation
BIENTOT DISPONIBLE
SAG_callOnDoubleClic
BIENTOT DISPONIBLE
SAG_callOnDrop
Paramètres
Paramètres | Type | Description | |
Méthode 4D | Texte | ==>
| Nom de la méthode qui sera exécuté lors du call-back |
Erreur | Entier Long | ==>
| Codes d’erreurs |
Description
Cette commande permet de gérer un des call-back. Nous lui passons en paramètre la méthode à exécuter.
Exemple de code
$error:=SAG_callOnDrop("MaMethodeOndrop")
SAG_CallOnHeaderEvent
BIENTOT DISPONIBLE
SAG_callOnModification
BIENTOT DISPONIBLE
SAG_CallOnMouseOver
BIENTOT DISPONIBLE
SAG_callOnRightClic
BIENTOT DISPONIBLE
SAG_CallOnSiderEvent
BIENTOT DISPONIBLE
SAG_i_redimensionnement
Description
Cette commande permet de recalculer automatiquement l’image lors du redimensionnement du formulaire ou est situé le sous formulaire de planning.
Exemple de code
Au cas ou
: (Evenement formulaire=Sur redimensionnement)
EXECUTER METHODE DANS SOUS FORMULAIRE("Nom_Sous_Formulaire";"SAG_i_redimensionnement";*)
Fin de cas
Gestion du DatePicker
SAG_DPAnnuel
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Date courante | Date | ==> | 1 | Date courante sélectionnée |
Type de la fenêtre du DatePicker | Entier long | ==> | 1 | Type de fenêtre au format de 4D (paramètre optionnel) |
Position horizontale de la fenêtre | Entier long | ==> | 1 | Position horizontale de la fenêtre au format de 4D (paramètre optionnel) Si vous passez le paramètre 3 vous devez passer aussi le paramètre 4 |
Position verticale de la fenêtre | Entier long | ==> | 1 | Position verticale de la fenêtre au format de 4D (paramètre optionnel) Si vous passez la paramètre 4 vous devez passer un paramètre 3 |
Date sélectionnée | Date | Retour | Date sélectionnée par l’utilisateur dans le datepicker annuel |
Exemple de code
$date:=SAG_DPAnnuel (laDate;Form dialogue modal déplaçable;A droite;En bas)
Si ($date#!00/00/00!)
laDate:=$date
SAG_reDraw (laDate)
Fin de si
// Ce code positionnera une fenêtre modale déplaçable qui sera positionnée en bas à droite de l'écran.-->
//Pour le détail des paramètres 2 à 4 vous pouvez vous baser sur la documentation 4D :Creer fenetre formulaire-->
SAG_datePicker
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Date à afficher | Pointeur | ==> | 1 | Pointeur vers une date devant être contenu dans le datepicker |
Taux d’occupation | Pointeur | ==> | 2 | Pointeur vers un tableau de 42 éléments correspondant au pourcentage d’occupation de la journée Ce paramètre est optionnel |
Format d’affichage du taux d’occupation | Texte | ==>
| 3 | Ce paramètre indique la manière dont le taux d’occupation être affiché. Vous disposez de deux modes : « bar » ou « day » le mode par défaut est « bar » (cf. exemples ci-dessous) Ce paramètre est optionnel |
Code SVG | Pointeur | ==>
| 4 | Pointeur vers un texte qui contiendra uniquement le code SVG du DatePicker, ce peut être utile pour une utilisation sur le WEB. Ce paramètre est optionnel |
Date picker | Image | Retour | Image incluant le code SVG avec des ID sur chaque objet vous permettant de connaitre la date survolée ou cliquée |
Exemple de code
// VISUEL 1
// Voir la commande SAG_DPsetParameter pour le paramétrage de cet affichage.
PlanningMois:=SAG_datePicker (->laDate)
// VISUEL 2
C_DATE($date1;$date2)
SAG_GetDateRange (->$date1;->$date2)
TABLEAU REEL(TableauPourcent;42)
Boucle ($i;1;42)
TableauPourcent{$i}:=Ent(Modulo(Hasard;100))+1
Fin de boucle
PlanningMois:=SAG_datePicker (->laDate;->TableauPourcent)
// VISUEL 3
C_DATE($date1;$date2)
SAG_GetDateRange (->$date1;->$date2)
TABLEAU REEL(TableauPourcent;42)
Boucle ($i;1;42)
TableauPourcent{$i}:=Ent(Modulo(Hasard;100))+1
Fin de boucle
SAG_DPsetOccupancyColors ("Grey";"green";"yellow";"orange";"red")
PlanningMois:=SAG_datePicker (->laDate;->TableauPourcent)
// VISUEL 4
C_DATE($date1;$date2)
SAG_GetDateRange (->$date1;->$date2)
TABLEAU REEL(TableauPourcent;42)
Boucle ($i;1;42)
TableauPourcent{$i}:=Ent(Modulo(Hasard;100))+1
Fin de boucle
SAG_DPsetOccupancyColors ("Grey";"green";"yellow";"orange";"red")
PlanningMois:=SAG_datePicker (->laDate;->TableauPourcent;"day")
SAG_DPgetDateRange
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Date de référence du DatePicker | Date | ==> | 1 | Date permettant de déterminer le mois à afficher dans le DatePicker. |
Date de début | Pointeur | ==>
| 2 | Pointeur vers une date qui contiendra le premier jour affiché dans le DatePicker. |
Date de fin | Pointeur | ==>
| 3 | Pointeur vers une date qui contiendra le dernier jour affiché dans le DatePicker. Les deux dates sont espacées de 41 jours, il y a donc 42 jours en comptant le jour de début et le jour de fin |
Exemple de code
C_DATE($date1;$date2)
SAG_DPgetDateRange (laDate;->$date1;->$date2)
SAG_DPgetParameter
BIENTOT DISPONIBLE
SAG_DPgetParameterFile
BIENTOT DISPONIBLE
SAG_DPLoadLanguage
BIENTOT DISPONIBLE
SAG_DPsetOccupancyColors
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Couleur 1 | Texte | ==>
| 1 | Valeur de la couleur d’affichage des taux d’occupation entre 0 et 25 |
Couleur 2 | Texte | ==>
| 2 | Valeur de la couleur d’affichage des taux d’occupation supérieur à 25 et jusqu’à 50 |
Couleur 3 | Texte | ==>
| 3 | Valeur de la couleur d’affichage des taux d’occupation supérieur à 50 et jusqu’à 75 |
Couleur 4 | Texte | ==>
| 4 | Valeur de la couleur d’affichage des taux d’occupation supérieur à 75 et jusqu’à 90 |
Couleur 5 | Texte | ==>
| 5 | Valeur de la couleur d’affichage des taux d’occupation supérieur à 90 |
Exemple de code
SAG_DPsetOccupancyColors ("Grey";"green";"yellow";"orange";"red")
SAG_DPsetParameter
Paramètres
Paramètres | Type | Description | |
Nom du paramètre | Texte | ==>
| |
Valeur du paramètre | Texte | ==>
| |
Erreur | Booléen | ==>
| Codes d’erreurs |
Description
SAG_DPsetParameter permet le réglage des paramètres de DatePicker. Tous les paramètres sont passé sous forme de chaine,vous devez donc éventuellement les convertir à l’aide de la commande « chaine » de 4D.
- dayRollOver : Couleur de fond des jours lors du survol : Couleur
- dayBorderRollOver : Couleur de la bordure des jours lors du survol : Couleur
- Width : largeur d’une case de jour : Entier long
- Height : hauteur d’une case de jour : Entier long
- Border : Epaisseur de la bordure d’un jour : Entier long
- TitleHeight : hauteur du titre du planning : Entier long
- TitleFont : Police du titre du planning : Nom de Police
- TitleFontColor : Couleur du titre du planning : Couleur
- TitleFontSize : Taille de la police du titre du planning : Entier Long
- TodayColor : Couleur de la date du jour : Couleur
- TodayBorderColor : Couleur de la date du jour : Couleur
- BGColor : couleur de fond du planning : Couleur
- RoundCorner : Nbre de pixel d’arrondi dans les angles des jours : Entier Long
- DayOffColor : Couleur de fond des jours non travaillés : Couleur
- DayOffBorderColor : Couleur de bord des jours non travaillés : Couleur
- DayOfMonthColor : Couleur de fond des jours du mois en cours : Couleur
- DayOfMonthBorderColor : Couleur de bord des jours du mois en cours : Couleur
- OtherDayOfMonthColor : Couleur de fond des jours du mois en cours : Couleur
- OtherDayOfMonthBorderColor : Couleur de bord des jours du mois en cours : Couleur
- DayFontSize : Taille de Police des dates : Entier Long
- DayFont : Police des dates : Nom de Police
- BGColor : Couleur de fond du date picker : Couleur
- ShowDayName : affichage de l’initiale du jour au-dessus des dates du date picker : « yes » ou « no »
Exemple de code
PlanningMois:=SAG_datePicker (->laDate)
$error:=0
$error:=$error+SAG_DPsetParameter ("Width";"30")
$error:=$error+SAG_DPsetParameter ("Height";"30")
$error:=$error+SAG_DPsetParameter ("Border";"3")
$error:=$error+SAG_DPsetParameter ("TitleHeight";"30")
$error:=$error+SAG_DPsetParameter ("TitleFont";"Calibri")
$error:=$error+SAG_DPsetParameter ("TitleFontColor";"DarkBlue")
$error:=$error+SAG_DPsetParameter ("TitleFontSize";"24")
$error:=$error+SAG_DPsetParameter ("TodayColor";"Orange:75")
$error:=$error+SAG_DPsetParameter ("TodayBorderColor";"Red")
$error:=$error+SAG_DPsetParameter ("BGColor";"White")
$error:=$error+SAG_DPsetParameter ("DayOffColor";"orange:40")
$error:=$error+SAG_DPsetParameter ("DayOffBorderColor";"orange:70")
$error:=$error+SAG_DPsetParameter ("DayOfMonthColor";"Lightblue:50")
$error:=$error+SAG_DPsetParameter ("DayOfMonthBorderColor";"Lightblue")
$error:=$error+SAG_DPsetParameter ("OtherDayOfMonthColor";"cornflowerblue:50")
$error:=$error+SAG_DPsetParameter ("OtherDayOfMonthBorderColor";"cornflowerblue")
$error:=$error+SAG_DPsetParameter ("DayFontSize";"16")
$error:=$error+SAG_DPsetParameter ("DayFont";"Arial")
$error:=$error+SAG_DPsetParameter ("RoundCorner";"0")
Si ($error=0)
PlanningMois:=SAG_datePicker (->laDate)
Sinon
ALERTE("Erreur au paramétrage du DatePicker")
Fin de si
SAG_DPsetParameterFile
BIENTOT DISPONIBLE
SAG_DPsurvol
Paramètres
Paramètres | Type | Description | |
Image | Pointeur vers une variable Image | ==>
| |
Mouse X | Entier long | ==>
| |
Mouse Y | Entier long | ==>
| |
Début ou fin de survol | Booléen | ==>
|
Description
SAG_DPsurvol gère les fonctions du survol d’un date picker.
La commande doit être appelée dans le survol et sur le fin survol de la zone image du date picker.
Paramètres
au cas ou
: ((Evenement formulaire=Sur survol) | (Evenement formulaire=Sur fin survol))
Si (Evenement formulaire=Sur fin survol)
SAG_DPsurvol(Self;MouseX;MouseY;Vrai)
Sinon
SAG_DPsurvol (Self;MouseX;MouseY;Faux)
Fin de si
fin de cas
Méthodes utilitaires
SAG_ErrorText
BIENTOT DISPONIBLE
SAG_EventPict
Paramètres
Paramètres | Type | Description | |
Uuid | Texte | ==>
| Uuid de l’événement dont on veut la représentation |
Apparence | Texte | ==>
| Optionnel : mode de représentation de l’événement : hebdomadaire(défaut) ou unlimited |
Variable image | Image | ==>
| Image de l’événement sélectionné |
Description
Ce code permet d’obtenir dans une variable image le dessin d’un événement.
Cette commande est particulièrement utile pour la gestion du Drag&Drop.
Exemple de code
$UUID_Event:=SAG_SelectedEvent // On demande le UUID de l'event sélectionné
$EventPict:=SAG_EventPict ($UUID_Event) // on demande son image
SAG_reDraw
Paramètres
Paramètres | Type | Description | |
Date début | Date | ==>
| Date de référence pour re-dessin du planning |
Description
Permet de dessiner ou de redessiner le planning SGV.
Vous devez appeler SAG_reDraw après la modification de paramètres d’affichage (ajout ou retrait d’event, modification de paramètres, de range,…) ou pour un changement de date.
Exemple de code
SAG_reDraw($laDate)
SAG_roundTime
Paramètres
Paramètres | Type | Description | |
Heure à arrondir | Heure | ==> | |
Arrondi | Heure | ==> | |
Heure arrondi | Heure |
Description
Effectue un arrondi d’une heure.
Exemple de code
// Exemples d'arrondi à 5 minutes près :
// Exemple 1
$HeureArrondie:=SAG_roundTime(?11:52:31?;?00:05:00?)
HeureArrondie vaudra ?11:55:00?
// Exemple 2
$HeureArrondie:=SAG_roundTime(?11:52:30?;?00:05:00?)
HeureArrondie vaudra ?11:50:00?
SAG_UTL_ControleCouleur
BIENTOT DISPONIBLE
SAG_UTL_Est_un_jour_ferie
BIENTOT DISPONIBLE
SAG_UTL_Paques
BIENTOT DISPONIBLE
SAG_Version
Paramètres
Paramètres | Type | N° du paramètre | Description | |
Version | Texte | 1 | Version du composant en cours d’utilisation |
Description
Cette commande renvoie la version du composant.
Exemple de code
$theVersion:=SAG_Version
Annexes
Codes d'erreurs
Code | Erreur texte | Description de l’erreur |
100 | Character « – » forbidden in UUID event | Le caractère « – » est interdit dans les identifiants d’évènement |
101 | Duplicated UUID event | L’ajout de l’event est impossible car l’uuid choisie existe déjà dans le tableau des évènements |
102 | Empty UUID event | L’ajout de l’event est impossible car l’uuid choisie est vide |
103 | Event not found | L’évènement n’a pas été trouvé, impossible de le mettre à jour (SAG_updateEvent) |
104 | Day not found | |
300 | Missing parameter | |
301 | Bad parameter | |
302 | Wrong day number | |
303 | Undefined value | |
304 | Missing parameter | |
400 | Event not found | |
401 | Il manque un paramètre. Certainement le pointeur vers le tableau de valeur | |
402 | Il manque 2 paramètres. Certainement les pointeurs vers les tableaux | |
500 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnClic | |
501 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnCreation | |
502 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnDoubleClic | |
503 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnDrop | |
504 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnModification | |
505 | Il manque le nom de la méthode dans l’exécution de la méthode SAG_callOnRightClic | |
1001 | Langue non prise en charge |
Constantes
Couleurs en SVG
Le SVG reconnaît toutes les syntaxes alternatives pour les couleurs définies dans la norme CSS2. Une couleur peut être exprimée sous l’une des formes suivantes :
- #f00
- #ff0000
- #rvb(255,0,0)
- #rvb(100%,0%,0%)
Pour obtenir une couleur à l’un de ces formats à partir d’une couleur 4D vous pouvez utiliser la commande « SVG_Color_RGB_from_long » du composant SVG
Le SVG admet également une liste étendue de mots-clés de noms de couleur, par exemple « red ».
Vous trouverez dans ce lien la liste des couleurs et leur nom : Liste des couleurs SVG normalisées Vous pouvez obtenir cette liste de nom de couleurs à l’aide de la commande « SGR_GetSVGColors«
Informations sur les évènements dans les méthodes de CallBack
Informations générales
- CalendarType -> Type de calendrier affiché (Week / Month / Unlimited)
Vue Hebdomadaire
- Date
- Hour
- Column
- ressourceName
- ressourceUUID
Vue Mensuelle
- Date
- Column
- Line
Vue unlimmited
Si évènement
- eventUUID : UUID de l’événement
- Date : Date de l’événement
- eventTime : Heure de début de événement
- eventDuration : Durée de l’événement
- eventType : Type de l’événement
- eventTitle : Titre de l’événement
- eventResource : Uuid de la ressource de l’événement
- eventDescription : Description de l’événement
- eventHelp : Texte de la bulle d’aide de l’événement
- eventApparence : Paramétre de personalisation d’affichage de l’événement
Versions
2.5.7 du 22 janvier 2019
- Correction d’affichage pour les rendez-vous de plus de 24h dans le planning unlimited
2.5.6 du 24 juillet 2018
Correction de bugs :
- Correction de gestion des fonctions événementielles
Versions antérieures (2.5.3 à 1.1.3)
2.5.3 du 7 mars 2018 (seulement à partir de 4D V15)
Correction de bugs :
- Correction de la disparition des tips après un déplacement d’event
- Correction d’une erreur qui apparaissait lors d’un changement de période après un déplacement d’event
2.5.2 du 3 mars 2018 (seulement à partir de 4D V15)
Améliorations :
- SAG_setParameter
- NoCreation a vrai ou faux qui permet de bloquer la création d’événements, ce paramètre s’applique aussi bien en planning classique qu’en unlimited
- Comportements des events
- Possibilité de bloquer le redimensionnement d’un event : mettre « NoModification=True » dans l’apparence de l’event
- Possibilité de bloquer la sélection d’un event : mettre « NoSelection=True » dans l’apparence de l’event
- Possibilité de bloquer le déplacement d’un event : mettre « NoMove=True » dans l’apparence de l’event
Cela s’applique aussi bien en planning classique qu’en planning unlimited
- Mise à disposition des commandes concernant les TIPS
- SAG_TipsHIDE
- SAG_TipsSHOW
Correction de bug :
- Correction de la méthode de gestion du drop sur le planning Unlimited
- Correction de la méthode de gestion du drop sur le planning mensuel
2.5.1 du 10 octobre 2017 (seulement à partir de 4D V15)
Corrections de bugs :
- Report des corrections qui avaient été faites pour le planning hebdomadaire dans le planning ‘unlimited’
- Sélection multiple de rendez-vous
- La commande SAG_selectMultiEvent ne sélectionne que le dernier du tableau
2.5.0 du 08 octobre 2017 (dernière version en 4D V13)
Corrections de bugs :
- Bug de dessin de période dans le planning semaine
- Plusieurs bugs liés à la sélection multiple d’événements
- Bug suite à l’appel d’un redimensionnement avant que le planning ne soit dessiné
- Ajout de la commande SAG_selectMultiEvent (->TableauUUIDevent)
2.4.0 du 21 décembre 2016
Améliorations :
- Refonte de la vue mensuelle qui n’affiche plus les événements mais une synthèse des événements.
- Ajout de la notion d’ID sur les ranges
- Possibilité de mettre des « quadrillages » dans l’agenda unlimited
- Paramètre « UhourLine », « UhourLineColor », « UhourLineWidth »
- Mesure du temps de redessin d’un agenda (SAG_GetLastRedrawDuration)
- Possibilité de faire des sélections multiples d’évènements et donc refonte complète de la gestion des sélections d’évènements.
- Paramètre « MultipleSelection » à passer a « yes »
- Commande SAG_getSelection(ptr tableau texte) retourne les ID des events sélectionnés
- Envoi d’un event -5000 en fin de redraw a l’objet conteneur de l’agenda
Corrections de bugs :
- Bug de synchronisation des différentes parties de l’agenda lors du défilement avec refonte importante du défilement
- Correction de positionnement de range dans le planning Unlimited
- Correction de l’impossibilité de mettre des retours à la ligne dans les textes du planning « hebdo »
- Sélection multiple avec la touche commande ou contrôle et non plus avec shift
- Inactivation en mode compilé de la mise d’info de debug dans le presse-papier
- Bugs de sélections et de-sélections multiples
2.3.8 du 29 novembre 2015
- Bug de prise en compte de l’opacité des textes d’un event
- Bug sur la commande Sag_Goto dans certain cas critiques
2.3.5 du 11 juillet 2015 (build)
- Repositionnement incorrect des ascenseurs après un redimensionnement du planning en mode semaine
2.3.4 du 7 juillet 2015 (build)
- Resize par le haut d’un événement comportant des icônes (planning semaine)
- Resize des textes des événements dans certain cas (planning semaine)
2.3.3 du 27 mai 2015 (build)
- Sag_Goto : gestion de limites de scroll
- Traçage des heures et des demi-heures dans certain cas sur le planning semaine
2.1.1 du 24 mai 2013 (build 153)
- Ajout de deux paramètres permettant de gérer l’alignement des ressources dans le planning unlimited
- La couleur du texte d’un event est bien pris en compte dans le planning unlimited
- Correction du calage de la zone de notification sur macintosh
- Correction du format de nouvelle durée lors d’un resize d’un event dans le planning unlimited
2.1.0 du 18 mai 2013 (build 152)
- Ajout de la zone de notification dans le planning unlimited
- Ajout de la gestion du coin dans le planning unlimited (police, taille couleur contenu, alignement,)
- Gestion des formats de date en entête de manière plus fine
- Création de la notion de verrou HardLock
- Affichage de bulle d’aide en mode unlimited lors du resize ou de la création d’event
1.2.16 du 21 juillet 2012 (build 113)
- Correction du positionnement de la bulle d’aide des ressources en planning unlimited si l’ascenseur vertical est déplacé,
- Sécurisation de la commande setEventType pour interdire la création d’un doublon,
- Correction d’un bug d’affichage en cas de resize du planning unlimitedsi on a peu de ressources,
- Sécurisation du dessin des event du planning unlimited si on n’a pas passé d’opacité dans la couleur de fond du type d’event.
1.2.13 du 11 juin 2012
- Ajout de la commande SAG_isThisEventLock pour simplifier le contrôle de verrouillage d’un événement.
1.2.12 du 10 juin 2012
- Correction d’un bug d’affichage dans le planning unlimited,
- Correction d’un bug dans la méthode SAG_LockEvents,
- Modification du planning hebdomadaire pour gérer le cas où on aurait aucune colonne à afficher.
1.2.7 du 10 avril 2012
- Ajout des commandes SAG_xColumnMove et SAG_xRowMove qui permettent de se déplacer dans le planning unlimitedau clavier (prévu pour les autres plannings dans une prochaine version)
1.2.6 du 27 mars 2012
- Affichage des jours fériés dans le date picker,
- Forte amélioration de performance pour les plannings avec beaucoup de rendez-vous (>1000 event).
1.2.1 du 3 mars 2012
- Ajout d’un paramètre pour changer le mode de rendering SVGdes événements pour pouvoir obtenir des bordures fines : 1px au lieu de 2, ce paramètre est à vrai par défaut,
- Modification de la commande SAG_setRessource afin de pouvoir passer une description ou une aide qui s’affiche au survol de la ressource en mode « semaine » et « unlimited »,
1.2.0 du 1 mars 2012
- Ajout du nouveau format d’affichage « unlimited »,
- Ajout de nouveaux paramètres pour le format format d’affichage « unlimited »
- UnlimitedHourWidth
- NumberOfIntervals
1.1.11 du 3 février 2012
- Correction d’un bug dans la commande SAG_UnlockEvents qui déverrouillait tous les événements même quand on lui passait un UUID.
1.1.10 du 2 février 2012
- Ajout de code défensif en cas d’oubli de paramètres : ce sera fait au fur et à mesure dans l’ensemble des méthodes,
- Ajout d’un paramètre optionnel aux commandes SAG_addEvent et SAG_setEvents permettant un verrouillage immédiat de l’autolock.
1.1.9 du 31 janvier 2012
- Changement de la méthode de positionnement des noms des jours fériés pour un affichage optimisé,
- Correction d’un bug d’affichage sur les range/area quand ils duraient plusieurs jours et qu’il n’y avait qu’une ressource affichée.
1.1.8 du 30 janvier 2012
- Changement de l’algorithme de gestion de SAG_getDayResources pour que la commande fonctionne pour tous les jours y compris ceux qui ne sont pas affichés.
1.1.7 du 29 janvier 2012
- Ajout d’un paramètre pour masquer le nom des ressources quand il n’y en a qu’une, en mode mois et jour,
- Correction d’un bug de positionnement des libellés des zones de réservation des plages horaires.
1.1.6 du 28 janvier 2012
- Ajout de la gestion du Contrôle clic sur Macintosh pour la gestion des évènements en équivalent clic droit,
- Correction d’un bug dans la commande SAG_setParameter pour la fixation de la police de caractère des zones de jours fériés,
- Ajout de la commande SAG_getDayResources qui renvoie un tableau des ressources affichées à une date
1.1.5 du 27 janvier 2012
- Correction de cas critiques sur l’affichage des plages horaires réservée,
- Ajout de fonctions pour remonter les évènements sur les entêtes, coins et zone d’heure en mode mois/jours : SAG_CallOnSiderEvent ,SAG_CallOnCornerEvent , SAG_CallOnHeaderEvent,
- Début d’intégration d’un nouveau mode de visualisation.
1.1.4
- Correction de cas critiques sur l’affichage des plages horaires réservée.
1.1.3 du 12 janvier 2012
- Correction de 3 bugs :
- Partage de la méthode SAG_Goto avec la base hôte ce qui avait été oublié,
- Correction d’une erreur de date lors de la création d’un événement en mode semaine,
- Correction d’une erreur de nombre de colonnes sur les zones de réservation.



