Der Kalender zeichnet Termine, Aufgaben und seine anderen Zeilen auf seine eigene Weise: ihre Zeit, das Thema, den Ort und das Wiederholungssymbol im Kalender, ein Tooltip für wann und wo sowie einen Dialog mit den Details eines Termins. Jede Zeile kann stattdessen auf eigene Weise gezeichnet werden, Tabelle für Tabelle, und die Zeilen einer Tabelle können in eigenen Formen geschrieben und geändert werden. All das gilt in jedem Layout.
A MultiTableTemplate (React: ein Eintrag von templates) zeichnet die Zeilen einer Tabelle im Kalender anstelle aller Kalender-Zeichnungen davon – deren Zeit, Thema, Ort und Wiederholungssymbol – wie es auf einer Zeitleiste der Fall ist. Es wird die Zeile zugewiesen, wobei jede Spalte in ihrer RecordZeile gelesen wird; halte sie auf eine Zeile, da die Zellen eines Monats kurz sind. Wie ein Tooltip zeigt es, was der Benutzer lesen sollte, nicht die Steuerungen: Der Kalender öffnet die Zeile trotzdem, wenn sie angeklickt wird.
<Calendar
regarding={account}
templates={{
task: (item) => (
<>
<TaskListLtr16Regular /> {item.title}
</>
),
}}
/><Calendar Regarding="@account">
<MultiTableTemplate Table="task" Context="item">
<FluentIcon Value="@(new Icons.Regular.Size16.TaskListLtr())" /> @item.Title
</MultiTableTemplate>
</Calendar>Der Kalender liest die Spalten, die er selbst anzeigt. Damit eine Vorlage oder ein Tooltip eine andere anzeigt, nennt man sie in einem View's FetchXML, wie es die untenstehende Demo für die Richtung und Nummer eines Telefonats tut: Der Kalender liest die Spalten einer Ansicht neben seiner eigenen.
Wenn der Zeiger auf einen Termin gelegt wird, zeigt das Objekt an, wann und wo es sich befindet. Geben Sie (React: appointmentTooltip) durch, TooltipTemplate um ein eigenes Tooltip anzuzeigen. Es erhält den Termin, dessen Record Spalte jede gelesene Spalte seiner Zeile enthält, mit dem formatierten Wert, damit er eigene Spalten anzeigen kann, die der Kalender nicht zeichnet. Ein Tooltip ist nicht interaktiv: Zeigt an, was der Benutzer lesen sollte, nicht die Steuerungen, die verwendet werden sollen.
<Calendar
viewIds={[accountAppointmentsViewId]}
appointmentTooltip={(appointment) => (
<>
<strong>{appointment.subject}</strong>
<div>{appointment.record?.formattedValues?.['ppp_customercode']}</div>
</>
)}
/><Calendar ViewIds="@([accountAppointmentsViewId])">
<TooltipTemplate>
<strong>@context.Subject</strong>
<div>@context.Record?.FormattedValues.GetValueOrDefault("ppp_customercode")</div>
</TooltipTemplate>
</Calendar>Schmeler and Sons' Termine und Telefonate, jeweils einen Monat auf einmal. Ein Anruf wird mit einem Symbol gezeichnet, in welche Richtung er gegangen ist, und das Tooltip gibt die Nummer an, zu der er gegangen ist oder von woher er war; der Tooltip eines Termins zeigt an, wo er ist.
Ein Klick auf einen Termin öffnet einen Dialog mit seinen Details, der aus Dataverse gelesen wird, während eine Datensatzseite einen Datensatz liest – über denselben Tabellenzugriff und dieselbe Spaltensicherheit – und wird als schreibgeschützt angezeigt: wann es ist, wo, was es betrifft, seinen Status und seine Beschreibung. Geben Sie (Reagieren: appointmentDetails) weiter, AppointmentDetails um stattdessen eigene Felder darin anzuzeigen, binden Sie den Datensatz des Termins wie auf einer Datenliste oder verwalten OnAppointmentClick (Reagieren: onAppointmentClick) um etwas anderes mit einem Klick zu tun, wie zum Beispiel eine eigene Seite zu öffnen.
<Calendar
appointmentDetails={
<>
<ColumnEdit columnName="scheduledstart" readOnly />
<ColumnEdit columnName="location" readOnly />
</>
}
/><Calendar>
<AppointmentDetails>
<ColumnEdit ColumnName="scheduledstart" ReadOnly="true" />
<ColumnEdit ColumnName="location" ReadOnly="true" />
</AppointmentDetails>
</Calendar>Schmeler and Sons' Termine, jeder öffnet an seinem Anfang, seinem Ende, wo er ist und welche Teilnehmer benötigt werden.
In einem Editable Kalender öffnet sich eine Zeile einer Tabelle, die außer den Terminen ist, in Form der Spalten, die seine Registrierung anzeigt. Ein MultiTableForm Verzeichnis im Kalender (React: ein Eintrag von forms) liefert eine eigene Tabelle, die eigene Zeilen erstellt, und eine zum Ändern sie: Komponenten von Editoren, die in einer Form des Datensatzes angezeigt werden. FormLocation (React: formLocation) gibt an, wo sie geöffnet werden: ein Dialog in der Mitte, wie standardmäßig, oder ein Seitenfeld links oder rechts.
<Calendar
regarding={account}
editable
formLocation="right"
forms={{ task: { create: TaskForm, edit: TaskForm } }}
/><Calendar Regarding="@account" Editable="true" FormLocation="DialogLocation.Right">
<MultiTableForm Table="task" CreateForm="typeof(TaskForm)" EditForm="typeof(TaskForm)" />
</Calendar>Ein ausführlicheres Beispiel – Aufgaben, die mit der Frage gezeichnet sind, ob sie erledigt sind und wie dringend sie sind, sowie einen Tooltip für jede Tabelle – siehe die Kalender-Custom Rendering-Demo.