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

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
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
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
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			

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;......

				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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)

				
			
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 »

				
					BIENTOT DISPONIBLE
				
			
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é)

				
			
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

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!)
				
			
Description

Cette méthode réactive l’affichage des jours fériés français.

Exemple de code
				
					SAG_AddFrenchDayOff
				
			
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
				
			
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)

				
			
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)
				
			
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

				
			
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

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
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
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)

				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
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)

				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
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;......

				
			
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

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

				
			
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)
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
Exemple de code
				
					BIENTOT DISPONIBLE
				
			
Exemple de code
				
					TABLEAU TEXTE($Libelle;0)
TABLEAU TEXTE($Value;0)
EXECUTER METHODE DANS SOUS FORMULAIRE("SF_Planning";"SAG_GetInfoOnEvent";*;->$Libelle;->$Value)

				
			
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
				
			
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

				
					BIENTOT DISPONIBLE
				
			
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?)
				
			
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)
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			

Verrouillage des évènements / Méthodes de CallBack

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
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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

				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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")
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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

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-->

				
			
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")

				
			
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)

				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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")
				
			
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

				
			
				
					BIENTOT DISPONIBLE
				
			
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

				
					BIENTOT DISPONIBLE
				
			
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

				
			
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)
				
			
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?

				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
				
					BIENTOT DISPONIBLE
				
			
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

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

 

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 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

  • Correction d’affichage pour les rendez-vous de plus de 24h dans le planning unlimited

Correction de bugs :

  • Correction de gestion des fonctions événementielles
 
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.
Retour en haut