PBToolboxAI AcheterBuyKaufenAcquistaComprarComprar

← Historique de tous les composants← History of every component← Versionsverlauf aller Komponenten← Cronologia di tutti i componenti← Historial de todos los componentes← Histórico de todos os componentes

L'historique des versions est publié en anglais.Version history is published in English.Der Versionsverlauf wird auf Englisch veröffentlicht.La cronologia delle versioni è pubblicata in inglese.El historial de versiones se publica en inglés.O histórico de versões é publicado em inglês.

Scheduler — version history

u_pbt_scheduler · Introduced in 4.0

An Outlook-style calendar — day, work week, week, month and agenda views, drag and drop, resources side by side, colour categories, and cards and tooltips written with templates — filled appointment by appointment or from a DataStore. Introduced in 4.0.

4.0 — October 2026 #

New #

  • First release. Five views (is_view: day, work week by default, week, month, agenda) around is_date, both read back live and reported by ue_view_changed / ue_date_changed; a toolbar with Today, previous, next and a view menu; working hours shaded, a current-time line, overlapping appointments sharing the width, an all-day band for all-day events and anything lasting 24 hours or more.
  • Appointments added one by one (of_add_appointment, with a text or datetime overload) and driven through their handle (of_appointment → n_pbt_scheduler_appointment): location, organizer, description, resource, category, status ("Show as": busy, tentative, free, out of office, elsewhere), all day, recurring, private, reminder, cancelled, read-only, accent colour; your own fields with of_set_field / of_get_field.
  • of_from_datastore loads a DataStore in one call: one row = one appointment, its key = its row number, ready for SetItem; columns take a role by name or through of_map(ROLE_*, column), and every column becomes a template field. Regional dates written by the DataWindow are read correctly.
  • Dates travel as "yyyy-mm-dd hh:mm", floating local time, exclusive end; an all-day appointment is written and returned as dates only, both days included.
  • Resources (of_add_resource, of_resource) with one column per resource (is_group_by = GROUP_RESOURCE), hiding a resource hides its appointments; colour categories (of_add_category, of_category).
  • Cards, month lines and tooltips are templates (is_card_template, is_month_template, is_tooltip_title_template, is_tooltip_template): rich text with {field}, date formats with PowerBuilder tokens ({start:dddd d mmmm}), conditional blocks {?x}…{/x} / {!x}…{/x}, and the new rich-text tag [symbol=name] (eighteen built-in monochrome symbols: clock, location, person, bell…).
  • The user moves an appointment by dragging (time, day or resource) and resizes it by its edges (ue_appointment_moved, ue_appointment_resized), with an optional veto before the change (ib_veto_changes → ue_appointment_changing); sweeps empty slots (ue_range_selected); asks for a new appointment by double-click or the "+" of a day header (ue_new_requested); opens one (ue_appointment_opened); right-clicks an appointment or an empty slot for your own menu. The calendar never creates, changes or deletes anything else by itself.
  • Keyboard: Enter opens, Delete asks for deletion (ue_delete_requested), arrows move the selection, Page Up / Page Down change period, Alt+Home returns to today.
  • Navigation and selection by code: of_next, of_previous, of_go_to_today, of_select_appointment, of_show_appointment, of_scroll_to_time, of_first_visible_date / of_last_visible_date, of_shown_count; ib_read_only switches every gesture off.
  • Rendering stays fast on large data sets (tens of thousands of appointments).
  • Known limits of this version: no recurrence engine, no time zones, no timeline view or mini-calendar, no iCalendar import or export, no printing, and appointments are created and moved with the mouse only.
  • ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.
  • of_set_property, of_get_property and of_component_name: drive a property by its name (settings screen, saved configuration).