カレンダー

CalendarはOutlookと同様に、Dataverseの予定やタスク、サーバーが登録する他のテーブルを日、勤務週、週、月、または週のリストで表示します。ツールバーは範囲やレイアウトを行き来し、忙しい一日は+以上にまとめられ、同時に予定も並べて表示されます。画面上で範囲の行を読み取り、グリッドと同じクエリとセキュリティを経て読み取り、ユーザーのタイムゾーンでの曜日と時刻も表示し、ポータル上のすべての日付が表示されます。各スタックにアドオンパッケージとして提供され、Fluent UIテーマで描画されます。

React Blazor

レコードの任命

シュメラー&サンズに関する予約、アカウント詳細ページのデモが示すアカウント。 Regarding カレンダーを1つの記録の予約に保持しています。

Reactの例 ブレイザーの例 React TypeScript Razor

それが示すもの

Regardingがなければ、カレンダーは表示されたテーブルの中、ユーザーが読み取れるすべての行を表示します。サーバーがカレンダーに登録したテーブル、つまりノートやすべてのアクティビティテーブル、そしてForCalendarsに登録された他のすべてのテーブルも読み取ります。それぞれが独自の列で日付が付けられています:予定は開始日と終了、タスク、電話、手紙、ファックスは期限で示されます。予定やタスクは最初に表示されます。その他ユーザーが読むことができるものは、ツールバーの「ショー」メニューで提供されますが、その場合は電源が切れています。DefaultTables(React: defaultTables)最初に表示されるものを選択し、表示される可能性のあるものをTables(React: tables)選択します。カレンダーは自分の範囲と関連するレコードを独自の条件として加算するため、表示範囲は絞れますが、広げることはありません。

React Blazor

アクセス

カレンダーにはユーザーが読むことができる予定だけが表示され、変更できる場所でのみ予約を移動できます。ポータルは通常、連絡先に招待された予定をrequiredattendeesでRowsInvolvingContact伝え、optionalattendeesはその予約のパーティーリストを読み上げますが、連絡先を自分のものにすることはありません。

他のアクティビティと同様に、予約は説明が *WEB*で始まる場合にのみポータルに届きます。テーブルが SecurityOptions.PortalVisibility.UnfilteredActivitiesにない場合を除く。カレンダーポータルは上記のようにそこにも appointment を追加するため、スタッフはいつも通りDynamicsやOutlookで予定を予約します。

ポータルのアプリケーションユーザーはDataverse内の予約リードも必要です。Dataverseはすべてのアクティビティタイプに一つの権限セットを付与するため、予約はPower Portals Pro Application Userの役割が既に持つリードオンアクティビティでカバーされます。

定期的な任命

繰り返しの予定の発生は他の予定と同様に表示され、主題の横に繰り返しアイコンが表示されます。クリックすると、そのイベントを開くかシリーズ全体を開くかを尋ねます。移動やサイズ変更だけでそのイベントが変わります。カレンダーはDataverseが記録したイベントを表示します。Dataverseは環境の拡張ウィンドウ(デフォルトで12ヶ月)を前に記録し、時間の経過とともに後のイベントも記録するため、終わらないシリーズは1年分のイベントを表示します。

空き、忙しく、オフィスを離れている

予定はOutlookの描き方で時間の表示で判定されます:色合いのように忙しく、横にバーがあり、バーだけで空いている、紫のストライプで仮のストライプでオフィス外で、ステータス理由から読み取られます。完了した予定は忙しいと表示され、キャンセルされた予定は対象が消線で空いていると表示されます。月では、時刻の予定はその横に点が表示され、議題の列では色だけが表示されます。あなたが提供した予約は ShowAs と Canceled (React: showAs と canceled)を取り、それぞれにクラス( ppp-calendar-appointment-free、 -busy、 -tentative、 -out-of-office 、 -canceled )が描かれ、スタイリングが加えられます。

任命の作成と編集

Editableカレンダーで独自の予定を読み込む場合、時間を選択するとその上に新しい予定が開き、Regardingレコードについての新しい予定が開き、予約をクリックするとその詳細がフォームとして開きます。フォームは他のレコードと同じテーブル、行、列のセキュリティで保存されます。行を移動またはリサイズすると、開始・終了、そして丸一日かかるかどうかも保存されます。ユーザーが行や列を変更しても完了、キャンセル、非アクティブにはなりません。タスクの締め切りのように一つの日付を保持するテーブルは移動してもサイズ変更せず、作成日で日付が付けられた行はそのまま残ります。別のテーブルの行をクリックするとフォームが開きます。登録された列が表示されるか、カレンダー内のMultiTableFormである自分のテーブルフォーム(React: forms)が表示されます。予約の詳細や他のテーブルのフォームは、中央のダイアログで開かれ、FormLocation(React: formLocation)では左側または右側のサイドパネルに表示されます。参加者は PartyListEdit で編集され、ColumnEdit はすべてのパーティーリストにもこのアドレスを使います。メールの「To」「From」「CC」も含まれます。ユーザーが入力すると、メールアドレスを持つ連絡先、アカウント、ユーザー(Read and Append To)を提案し、両方を持たないテーブルは検索しません。どちらか一方を選ぶとチップとして追加されます。環境が未解決のメール受信者へのメッセージを許可している場合、あるいはAllowUnresolvedEmailAddressesがそう言っている場合、Enterで自動的に記録と一致しないメールアドレスが追加されます。アメージメントのRegardingは、ユーザーが読みリンクできる記録を指し示せるテーブルを提供します。RegardingTables(React: regardingTables)は、あなたが名前を挙げたものに絞り込みます。代わりにOnRangeSelectで自分なりの予約を作成し、(React: onAppointmentChange)SaveChangeで自分のやり方で移動を保存しましょう。

React Blazor

予約の繰り返し

Editableカレンダーでは、予約フォームは「繰り返し」を提供します:毎日または平日、曜日、月ごとまたは年次(日付や第2火曜日など)に、数回またはある日の後に終了しない。Dataverseはユーザーのタイムゾーンでイベントを配置するため、10時の会議は時計の変更に間違う10時に維持されます。シリーズは独自の形態として始まり、繰り返しの方法を変更でき、イベントの削除はそれやシリーズ全体を削除することができます。繰り返しは、既に存在する予約に対しては変更・削除が可能なユーザーrecurringappointmentmaster提供されます。なぜなら、それがシリーズとなるからです。予約を付与するのと同様にシリーズを付与し、Dataverseのアプリユーザーに「Read on Connection」を付与します。予約をシリーズにすると接続が読み取られ、Dataverseはそれなしの保存を拒否します。

新しい予定、または変更は、同じ取引内で他のセーブデータとシリーズになります。保存は予約の隣に1つの AddRecurrenceRequest を送るため、予約はシリーズなしで保存されることはありません。Dataverseは予約から参加者と共にシリーズを作成し、予約を削除します。ページは独自のフォームを構築する場合も同様にリクエストを送信できます。

Outlook: Dataverseのように、次の出来事から始まったシリーズは、終了した出来事を独自の連載として保持し、シリーズの起 groupidを共有しているため、起こったままのままです。シリーズのカウントはシリーズ全体の終わりを経て終わります。ポータルは既に保持された出来事と共に読み、保存します。そして、今後の出来事が残っていないシリーズは、もはや変更できません。 「一日中 切り替え」は時間に合います:オンはその日が始まる日、オフは1日目の9時、30分間。データバースは一日中予定を一日として管理します。ポータルはユーザーのタイムゾーンに関係なく、その日を表示・保存します。

あなたが提供する予約

代わりに Appointments パスすると、カレンダーはDataverseを読むのではなく、そのページを表示します。 Editable をオンにすると、予約は範囲を選択して移動、サイズ変更、作成できます: SaveChange (React: onAppointmentChange)は移動を保存し、falseを返すと予約が戻ります。 OnRangeSelect は選択した範囲を受け取り、開かれた予約を返 OnAppointmentClick します。

React Blazor

予約の詳細

ポインターをアポイントに置くと、その主題、時間、場所が表示され、クリックすると詳細のダイアログが開きます。これはDataverseから読み取るのと同じテーブルアクセスとカラムセキュリティでレコードを読み取るのと同じ方法で、読み取り専用に表示されます。 OnAppointmentClick (React: onAppointmentClick)操作して、クリックで他のことを行えば、例えば自分のページを開くこともあります。カレンダーの行、ツールチップ、詳細ダイアログはそれぞれ自分なりに描くことができます:カスタム レンダリングを参照してください。

ツールバーボタン

ツールバーに自分のコントロールを、グリッドのツールバーボタンと同様に検索ボックスの前にToolbarItems(React:カレンダーの子)を配置してください。CalendarButtonはクリックするとカレンダーが渡されます:表示される期間、記録、CreateAppointmentAsyncとRefreshAsync(React:createAppointmentとrefresh)です。NewAppointmentCalendarButton、時間選択と同じように新しい予定を開始します。表示された期間が今日を反映した次の30分から、そうでなければ初日の8時から、そしてそれが何かを始める場所、つまりホストがOnRangeSelectを扱う、あるいはユーザーが作成できる予定を読み込むEditableカレンダーです。

React Blazor

レイアウト

カレンダーは1日の時間、平日や週、月日数、または予定リストごとに予定を並べ、ツールバーにはそれらを切り替えるピッカーがあります。 DefaultLayout (React: defaultLayout)は開く1週間で、別の週を選ばない限り開きます。 Layouts (React: layouts)は、順番に記載した指定したものに割り当てます。1つ名前を挙げれば、ピックは移動し、カレンダーはその中に残ります。各レイアウトには「 Day」「 Work Week」「Week」「 Month」「 Month 」「 Agenda」というページがあります。

React Blazor

閲覧、フィルター、検索

ViewIdsでビュー(Dataverseのビュー、それぞれが独立したテーブルを持つ)、MultiTableViewIds、AddMultiTableViewに登録されたまたはDataverseに保存されている複数のテーブルのビュー、CustomViewDefinitionsコードで定義されたビューを提供し、ツールバーにはカレンダーに表示されるものを選ぶピッカーがあります。DefaultViewIdが開くウィンドウです。検索ボックスはグリッドの検索のように各テーブルの検索列を見つけます。AllowSearchでオフにしてください。

AllowFilteringでは、ツールバーのフィルターメニューに編集フィルターがあり、表示されたテーブルのフィルターを開き、名前の順に各タブを開き、各ダイアログのグリッドのフィルターボタンが開きます。テーブルの列の条件、グループにネストされた状態、フィルター可能な関連テーブル、ユーザーが読むことができる列やテーブルの上で。タブの列は最初に開いたときに読み取られます。フィルターはビューの代わりに機能し、ユーザーが別のビューを選択するまで続きます。デフォルトではオフにされており、ユーザーはビューのすべてのフィルターを削除できます。

AllowSavedViews(React: allowSavedViews)では、サインインしたユーザーはカレンダーに表示されたもの(ビュー、フィルター、表示されたテーブル、レイアウト)を自分のビューとして保存し、デフォルトビューを選択して使わないビューをツールバーのフィルターメニューから非表示にできます。予定のグリッド上には予定のみのビューも提供され、タイムライン上の複数のテーブルのビューも見られます。ビューの保存、変更、共有方法は「保存済みビュー」ページにあります。

React Blazor

複数の表の眺め

Schmeler and Sonsの会議、タスク、電話通話は、コードで定義された2つのビュー「 meetings and tasks」と 「まだやること 」(まだ完了していないタスクや通話、各テーブルのクエリ)を通じて行われます。フィルターメニューは各テーブルのオン・オフを切り替え、 編集フィルター にはそれぞれのタブがあり、サインインしている訪問者はカレンダーに表示されたものを自分のビューとして保存できます。タスクや通話は右側のサイドパネル(FormLocation)で開きます。

Reactの例 ブレイザーの例 React TypeScript Razor

URL内の位置を保つこと

クエリパラメータを PersistedStateQueryParameterに設定すると、カレンダーはレイアウト、表示される期間、そしてそこで選んだ予定ビューを保持し、リロードや共有リンクで元の位置から開きます。本来開くはずの時間は省略されます。日付は省略されます。表示された期間には今日が含まれているため、現在の週へのリンクが今日の後に続きます。 IncludeSearchInPersistedStateをオンにすると検索も保持されますが、ユーザーが検索する内容が機密扱いになるため、デフォルトでは省略されます。変更ごとにブラウザの履歴エントリが置き換えられるため、Backはページを離れ、毎週戻ることはありません。両方のスタックは同じ値を書き込むため、一方で作成したリンクはもう一方で同じカレンダーを開きます。

React Blazor

Teams会議一覧

コードで定義されたビューは、Teamsで開催された会議のカレンダーを保持し、週の議題に開いて設定された高さで表示します。

Reactの例 ブレイザーの例 React TypeScript Razor

パッケージ

カレンダーはアドオンで、Blazorで PowerPortalsPro.Web.Blazor.Calendar 、Reactで @powerportalspro/react-calendar します。フレームワークの隣にパッケージを追加して使うことができます。

React Blazor
反応してください ブレイザー

Calendar クラス

パラメータ

名称
種類
デフォルト
概要
AllowFilteringbool
False
AllowSavedViewsbool
False
AllowSearchbool
True
AppointmentDetailsRenderFragment?
AppointmentsIReadOnlyList<CalendarAppointment>?
ChildContentRenderFragment?
CssClassstring?
CustomViewDefinitionsList<MultiTableViewDefinition>?
DefaultLayoutCalendarLayout
Week
DefaultTablesIEnumerable<string>?
DefaultViewIdGuid?
Editablebool
False
FormLocationDialogLocation
Center
Heightstring
600px
IncludeSearchInPersistedStatebool
False
LayoutsIReadOnlyList<CalendarLayout>?
MatchPartiesbool?
MultiTableViewIdsIEnumerable<Guid>?
PersistedStateQueryParameterstring?
RegardingTableRecordReference?
RegardingTablesIReadOnlyList<string>?
SaveChangeFunc<CalendarAppointmentChange, Task<bool>>?
SavedViewsKeystring?
SeriesMultiTableSeries?
ShowRecordLinksbool
True
SignInUrlstring
Account/Login
TablesIEnumerable<string>?
ToolbarItemsRenderFragment?
TooltipTemplateRenderFragment<CalendarAppointment>?
ViewIdsIEnumerable<Guid>?
ViewSortViewSort
NameAscending
名称: AllowFiltering
種類: bool
デフォルト: False
名称: AllowSavedViews
種類: bool
デフォルト: False
名称: AllowSearch
種類: bool
デフォルト: True
名称: AppointmentDetails
種類: RenderFragment?
名称: Appointments
種類: IReadOnlyList<CalendarAppointment>?
名称: ChildContent
種類: RenderFragment?
名称: CssClass
種類: string?
名称: CustomViewDefinitions
種類: List<MultiTableViewDefinition>?
名称: DefaultLayout
種類: CalendarLayout
デフォルト: Week
名称: DefaultTables
種類: IEnumerable<string>?
名称: DefaultViewId
種類: Guid?
名称: Editable
種類: bool
デフォルト: False
名称: FormLocation
種類: DialogLocation
デフォルト: Center
名称: Height
種類: string
デフォルト: 600px
名称: IncludeSearchInPersistedState
種類: bool
デフォルト: False
名称: Layouts
種類: IReadOnlyList<CalendarLayout>?
名称: MatchParties
種類: bool?
名称: MultiTableViewIds
種類: IEnumerable<Guid>?
名称: PersistedStateQueryParameter
種類: string?
名称: Regarding
種類: TableRecordReference?
名称: RegardingTables
種類: IReadOnlyList<string>?
名称: SaveChange
種類: Func<CalendarAppointmentChange, Task<bool>>?
名称: SavedViewsKey
種類: string?
名称: Series
種類: MultiTableSeries?
名称: ShowRecordLinks
種類: bool
デフォルト: True
名称: SignInUrl
種類: string
デフォルト: Account/Login
名称: Tables
種類: IEnumerable<string>?
名称: ToolbarItems
種類: RenderFragment?
名称: TooltipTemplate
種類: RenderFragment<CalendarAppointment>?
名称: ViewIds
種類: IEnumerable<Guid>?
名称: ViewSort
種類: ViewSort
デフォルト: NameAscending

イベント

名称
種類
概要
OnAppointmentClickEventCallback<string>
OnRangeSelectEventCallback<CalendarRangeSelection>
名称: OnAppointmentClick
種類: EventCallback<string>
名称: OnRangeSelect
種類: EventCallback<CalendarRangeSelection>

方法

名称
パラメータ
種類
概要
CreateAppointmentAsyncDateTimeOffset? start
DateTimeOffset? end
bool allDay
Task
LoadAppointmentsAsyncDateTimeOffset start
DateTimeOffset end
Task<IReadOnlyList<CalendarAppointment>>
OnAppointmentChangeAsyncCalendarAppointmentChange change
Task<bool>
OnAppointmentClickAsyncstring id
string subject
bool recurring
string table
Task
OnRangeChangedRangeChanged range
void
OnRangeSelectAsyncDateTimeOffset start
DateTimeOffset end
bool allDay
Task
RefreshAsyncTask
RenderTooltipstring id
int
名称: CreateAppointmentAsync
パラメータ: DateTimeOffset? start
DateTimeOffset? end
bool allDay
種類: Task
名称: LoadAppointmentsAsync
パラメータ: DateTimeOffset start
DateTimeOffset end
種類: Task<IReadOnlyList<CalendarAppointment>>
名称: OnAppointmentChangeAsync
パラメータ: CalendarAppointmentChange change
種類: Task<bool>
名称: OnAppointmentClickAsync
パラメータ: string id
string subject
bool recurring
string table
種類: Task
名称: OnRangeChanged
パラメータ: RangeChanged range
種類: void
名称: OnRangeSelectAsync
パラメータ: DateTimeOffset start
DateTimeOffset end
bool allDay
種類: Task
名称: RefreshAsync
種類: Task
名称: RenderTooltip
パラメータ: string id
種類: int