PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • Overview
  • Handling the Scheduler control through programming
  • Adding a resource
  • Adding an appointment
  • Filling a Scheduler control with the data from an HFSQL data file
  • Retrieving a list of appointments
  • Displaying the schedule from a specific resource or from a specific date
  • Deleting an appointment
  • Deleting a resource
  • Modifying the display of the control
  • Handling an appointment through programming
  • Using the popup menu (AAF)
  • Advanced use of events associated with the Scheduler control
  • Advanced use of events with procedure
  • Managing bank holidays
  • Properties specific to the Scheduler controls
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Overview
A Scheduler control can be:
To handle a Scheduler control through programming, WINDEV and WEBDEV propose the SchedulerXXX functions.
This help page explains how to handle a Scheduler control through programming. The following example is used to store appointments in an HFSQL database. Remark: From version 19, HFSQL is the new name of HyperFileSQL.
Handling the Scheduler control through programming

Adding a resource

Adding a resource into a Scheduler control is performed by SchedulerAddResource. This resource can correspond to a person, a room, ...
Example:
// Adds resources into a Scheduler control
SchedulerAddResource(SCH_Schedule1, "Florence" + gStoredValue("FL"))
SchedulerAddResource(SCH_Schedule1, "Emma" + gStoredValue("EM"))
SchedulerAddResource(SCH_Schedule1, "Fred" + gStoredValue("FR"))
In this example, gStoredValue is used to propose a displayed resource ("Vince" for example) and a resource handled through programming ("VP" for example).

Adding an appointment

Adding an appointment into a Scheduler control is performed by SchedulerAddAppointment. This function accepts two syntaxes:
  • syntax used to specify the appointment characteristics: title, description, ...
    Example:
    // Adds a 1-hour appointment for tonight
    MyResource is string
    MyTitle is string
    StartAPT is DateTime
     
    MyResource = "Vince"
    MyTitle = "Sales meeting"
    StartAPT = DateSys() + "17000000"
     
    SchedulerAddAppointment(SCH_Schedule, MyResource, MyTitle, StartAPT)
  • syntax that handles a variable of type Appointment.
    Example:
    // Declares an Appointment variable
    MyAppointment is Appointment
     
    // Fills the appointment
    MyAppointment.Title = "Sales meeting"
    MyAppointment.Content = "Meeting to discuss the weekly objectives."
    MyAppointment.StartDate = "201003220845"
    MyAppointment.EndDate = "201003221230"
    MyAppointment.Category = "Sales"
    MyAppointment.ID = 1
     
    // Adds the appointment into the control
    SchedulerAddAppointment(SCH_Schedule, MyAppointment)

The BackgroundColor property of the Appointment variable is used to define a display color for an appointment. If no background color is defined, the Scheduler control will automatically use the color associated with the category of the appointment.

Filling a Scheduler control with the data from an HFSQL data file

The records are stored in an HFSQL file. The initial fill of the Scheduler control can be done by browsing the data file via the FOR EACH syntax and by adding each appointment via SchedulerAddAppointment.
// Appointment variable
MyAppointment is Appointment
 
// Browse the appointments stored in database
FOR EACH APT
// Fills the information of the variable
MyAppointment.Title = APT.Title
MyAppointment.Content = APT.Content
MyAppointment.StartDate = APT.StartDate
MyAppointment.EndDate = APT.EndDate
MyAppointment.Category = APT.Category
MyAppointment.ID = APT.APTID
 
// Adds the appointment into the Scheduler control
SchedulerAddAppointment(SCH_MySchedule, MyAppointment)
END

Retrieving a list of appointments

SchedulerListAppointment is used to get:
  • the list of all the appointments found in the Scheduler control.
    For example:
    // Array containing a list of Appointment
    arrAppointmentList is array of Appointment
     
    // Lists of appointments
    arrAppointmentList = SchedulerListAppointment(SCH_MySchedule)
  • the list of appointments for a resource included between two dates.
    For example:
    // List of appointments for January 2020
    arrAppointmentList is array of Appointment
     
    // Lists of appointments
    arrAppointmentList = SchedulerListAppointment(SCH_MyScheduler, MyResource, ...
    "20200101", "20200131")
  • the appointment currently selected or hovered.
    For example:
    // Selected appointment
    arrAppointmentList is array of Appointment
     
    arrAppointmentList = SchedulerListAppointment(SCH_MyScheduler, schAptSelected)
Versions 17 and later

Displaying the schedule from a specific resource or from a specific date

To display the Scheduler control from:
  • a specific resource, use SchedulerPositionResource.
    For example:
    SchedulerAddAppointment(SCH_NoName1, "ABC room", "APT 1", ...
    DateSys() + "14000", DateSys() + "16000")
    SchedulerPositionResource(SCH_NoName1, "ABC room")
  • from a specific date, use SchedulerPositionDateTime.
    For example:
    // Positions the schedule on today's date
    SchedulerPositionDateTime(SCH_Schedule, Today())
New in version 17

Displaying the schedule from a specific resource or from a specific date

To display the Scheduler control from:
  • a specific resource, use SchedulerPositionResource.
    For example:
    SchedulerAddAppointment(SCH_NoName1, "ABC room", "APT 1", ...
    DateSys() + "14000", DateSys() + "16000")
    SchedulerPositionResource(SCH_NoName1, "ABC room")
  • from a specific date, use SchedulerPositionDateTime.
    For example:
    // Positions the schedule on today's date
    SchedulerPositionDateTime(SCH_Schedule, Today())

Displaying the schedule from a specific resource or from a specific date

To display the Scheduler control from:
  • a specific resource, use SchedulerPositionResource.
    For example:
    SchedulerAddAppointment(SCH_NoName1, "ABC room", "APT 1", ...
    DateSys() + "14000", DateSys() + "16000")
    SchedulerPositionResource(SCH_NoName1, "ABC room")
  • from a specific date, use SchedulerPositionDateTime.
    For example:
    // Positions the schedule on today's date
    SchedulerPositionDateTime(SCH_Schedule, Today())

Deleting an appointment

SchedulerDeleteAppointment is used to delete:
  • the appointment selected in the control.
  • a specific appointment.
// Deletes the first appointment
SchedulerDeleteAppointment(SCH_Schedule, 1)

Deleting a resource

SchedulerDeleteResource is used to delete a resource from the Scheduler control.
// Deletes one of the resources
ResDel is boolean
ResDel = SchedulerDeleteResource(SCH_Schedule1, "Vince")
IF ResDel = True THEN
Info("Resource deleted")
END
SchedulerDeleteAll is used to delete all the appointments in the Scheduler control as well as all its resources.

Modifying the display of the control

The current display of a Scheduler control can be modified via the following functions:
Handling an appointment through programming
You have the ability to handle an appointment by programming:
  • by using the index of the appointment to modify.
  • by pointing by reference on the appointment to modify.
1. Using the index
Each time an appointment is added to a schedule, SchedulerAddAppointment returns an index. This index represents the added appointment. This index can be used to handle the appointment directly.
Example:
APTNum is int
APTNum = 5
 
// Change the title displayed on the appointment #5
SCH_ROOM[APTNum].Title = "Blue room"
2. Using a reference
To handle an appointment, use the <- operator to associate the appointment found in the Scheduler control with the Appointment variable. A modification performed on the variable will be automatically applied to the control.
Example:
À is Appointment
À <- SCH_Room[APTNum]
À.Title = "New title"
Using the popup menu (AAF)
Windows The Scheduler control is associated with a popup menu (AAF). The popup menu of the Scheduler control is used to:
  • modify the display mode of control,
  • add, modify or delete an appointment.
To save the operations performed, you must use the events of the Scheduler control.
In the corresponding event, simply retrieve the appointment currently used and perform the corresponding process.
Example: To store an appointment added by the user via the popup menu in an APT data file, simply write the following in the event "Entry in edit in an appointment":
PROCEDURE Edit(aptEdited is Appointment)
 
// Store the data
APT.Title = aptEdited.Title
APT.StartDate = aptEdited.StartDate
APT.EndDate = aptEdited.EndDate
...
HAdd(APT)
The same type of code can be implemented for the different events of the Scheduler control. Indeed, for each control event that handles an appointment, a procedure has been automatically declared by the Scheduler control.
These procedures receive as parameter an Appointment variable affected by the process.
Advanced use of events associated with the Scheduler control

Advanced use of events with procedure

You can allow the user to define more precisely the characteristics of his appointment during an addition or a modification. To do so, create a window or a page with the information to fill.
In the code, simply open the window or the page in the event "Entry in edit in an appointment". To lock the direct input, the event must return False.
Windows This principle can be applied to all the events called by the context menu of the Scheduler control.
Example: Opening a window used to enter the appointment.
PROCEDURE Edit(aptEdited is Appointment)
 
// Opens the window for entering an appointment
// with the selected appointment (in Creation or Modification mode)
Open(WIN_InputAPT_HFSQL, aptEdited)
 
// Returns False to lock the direct input in the Scheduler control
RESULT False
Managing bank holidays
The bank holidays are managed through programming. Several WLanguage functions (starting with BankHolidayXXX) are available.
To define the bank holidays displayed in the Organizer, Scheduler and Calendar controls, you must use BankHolidayAdd. This function allows you to define the list of bank holidays that will be used. This function allows you to customize the bank holidays according to the country and to the local regulations. This function must be used at the beginning of the application because it has a global effect on the application.
The bank holidays will be colored in green in the schedule.
Example:
// Delete all bank holidays
BankHolidayDeleteAll()
// Initialize the 11 bank holidays common to the French regions and to the French territories
BankHolidayAdd("0101") // 1st of January
BankHolidayAdd(bhEasterMonday) // Easter Monday
BankHolidayAdd("0501") // 1st of May
BankHolidayAdd("0508") // 8th of May
BankHolidayAdd(bhAscensionDay) // Ascension day
BankHolidayAdd(bhWhitMonday) // Whit Monday
BankHolidayAdd("0714") // 14th of July
BankHolidayAdd("0815") // 15th of August (Assumption)
BankHolidayAdd("1101") // All Saints' Day
BankHolidayAdd("1111") // 11th of November
BankHolidayAdd("1225") // Christmas
 
// Add 2 additional bank holidays for the regions of Moselle and Alsace
BankHolidayAdd("1226" + CR + bhGoodFriday)
Properties specific to the Scheduler controls
The following properties are used to manage a Scheduler control through programming.
Versions 17 and later
DayBreakHeight
New in version 17
DayBreakHeight
DayBreakHeight
The DayBreakHeight property is used to get and change the height of breaks between days in a Scheduler control where days are arranged in rows, and resources are arranged in columns.
Versions 17 and later
DayHeight
New in version 17
DayHeight
DayHeight
The DayHeight property is used to get and change the height of days in a Scheduler control where days are arranged in rows, and resources are arranged in columns.
Versions 17 and later
DayWidth
New in version 17
DayWidth
DayWidth
The DayWidth property is used to determine and change the width of days:
  • in a Scheduler control where the days are displayed in column and the resources in rows.
  • in a Gantt Chart column.
Versions 17 and later
DirectInputAPT
New in version 17
DirectInputAPT
DirectInputAPT
The DirectInputAPT property is used to determine and specify if the user can directly change the title of an appointment in a Scheduler or Organizer control.
Versions 14 and later
EndDate
New in version 14
EndDate
EndDate
The EndDate property is used to get and change the selected time period end date:
  • in a Calendar control,
  • in an Organizer control.
  • in a Scheduler control.
Versions 15 and later
GranularityAppointment
New in version 15
GranularityAppointment
GranularityAppointment
The GranularityAppointment gets and changes the precision of the grid used to define appointments in Organizer or Scheduler controls. Property kept for backward compatibility.
Versions 16 and later
GranularityDuration
New in version 16
GranularityDuration
GranularityDuration
The GranularityDuration property is used to get and change the size of the grid to resize:
  • appointments in an Organizer control.
  • appointments in a Scheduler control.
  • events in a TimeLine control.
  • tasks in a Gantt Chart column.
Versions 16 and later
GranularityMovement
New in version 16
GranularityMovement
GranularityMovement
The GranularityMovement property is used to get and change the size of the grid to move:
  • appointments in an Organizer control.
  • appointments in a Scheduler control.
  • events in a TimeLine control.
  • tasks in a Gantt Chart column.
Versions 16 and later
MaskTitleDate
New in version 16
MaskTitleDate
MaskTitleDate
The MaskTitleDate property is used to identify and change the input mask used for the title of day columns in Organizer or Scheduler controls
Versions 17 and later
MovementAPT
New in version 17
MovementAPT
MovementAPT
The MovementAPT property allows you to know and specify whether users can move appointments in a Scheduler or Organizer control.
Versions 15 and later
NbDayDisplayed
New in version 15
NbDayDisplayed
NbDayDisplayed
The NbDayDisplayed property is used to:
  • get and change the number of days displayed in an Organizer or Scheduler control.
  • get the number of days displayed in a Gantt Chart control in a report.
Versions 15 and later
Num1stDayOfTheWeek
New in version 15
Num1stDayOfTheWeek
Num1stDayOfTheWeek
Num1stDayOfTheWeek is used to find out and modify the 1st day of the week displayed in:
  • a Calendar control.
  • an Organizer control.
  • a Scheduler control.
  • an edit control in Date format with Calendar.
Versions 17 and later
PeriodSelection
New in version 17
PeriodSelection
PeriodSelection
The PeriodSelection property is used to determine and specify if the user can select a time period in an Scheduler or Organizer control.
Versions 16 and later
Resource
New in version 16
Resource
Resource
The Resource property is used to:
  • find out the resources visible in a Scheduler control.
  • find out the resource of the Scheduler control that corresponds to the specified index.
Versions 17 and later
ResourceHeight
New in version 17
ResourceHeight
ResourceHeight
The ResourceHeight property is used to get and change the height of resources in a Scheduler control where resources are arranged in rows.
Versions 17 and later
ResourceWidth
New in version 17
ResourceWidth
ResourceWidth
The ResourceWidth property is used to get and change the width of resources in a Scheduler control where resources are arranged in columns.
Versions 16 and later
SelectedResource
New in version 16
SelectedResource
SelectedResource
The SelectedResource property returns the name of the resource that corresponds to the user's selection in a Scheduler control.
Versions 14 and later
StartDate
New in version 14
StartDate
StartDate
The StartDate property is used to determine and change the start date of the selected time period:
  • in a Calendar control.
  • in an Organizer control.
  • in a Scheduler control.
Versions 15 and later
WorkingHourEnd
New in version 15
WorkingHourEnd
WorkingHourEnd
The WorkingHourEnd property is used to identify and change the end time of working hours used:
  • by an Organizer control.
  • by a Scheduler control.
  • by a Gantt Chart column (in a Table or TreeView Table control).
Versions 15 and later
WorkingHourStart
New in version 15
WorkingHourStart
WorkingHourStart
The WorkingHourStart property is used to get and change the start time of working hours used:
  • by an Organizer control.
  • by a Scheduler control.
  • by a Gantt Chart column (in a Table or TreeView Table control).
For a complete list of WLanguage properties that can be used with a Scheduler control, see Properties associated with the Scheduler control.
Minimum version required
  • Version 16
This page is also available for…
Comments
Click [Add] to post a comment