フォーム スクリプトの簡易参照
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
このトピックは、それらで実行するタスクに基づきよく使用されるフォーム スクリプトのクイック リファレンスを示します。 完全なリファレンスについては、「クライアント側のプログラミング リファレンス」を参照してください。 このページのすべての例では、既定のすべてのアカウント エンティティのメイン フォームを使用しますが、他に指定がある場合は除きます。
このトピックの内容
属性
属性へのアクセス
エンティティ属性データを取得または設定します。
属性メタデータの取得
イベント引数の保存
通知の表示
コントロール
フォーム コントロールへのアクセス
ヘッダー コントロールへのアクセス
業務プロセス フローのコントロールへのアクセス
フォーム コントロールのメソッド
OptionSet コントロール メソッド
IFRAME および Web リソースのコントロールのメソッド
検索コントロールのメソッド
サブグリッド コントロールのメソッド
日付コントロールのメソッド
フォームのナビゲーション
タブおよびセクション
実行時のイベント ハンドラーの追加または削除
コンテキスト情報のメソッド
エンティティ データの取得、更新、保存
属性
属性は、レコードで使用可能なデータを格納します。
属性へのアクセス
属性は Xrm.Page.data.entity.attributes のコレクションから使用できます。 属性にアクセスするには Xrm.Page.data.entity.attributes.9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get メソッドまたはショートカット バージョンXrm.Page.getAttributeを使用できます。get 方法では 4 種類の引数を使用できます:
文字列: 属性の名前が文字列に一致する属性オブジェクトを返します。
番号:Xrm.Page.data.entity.attributes コレクションのインデックスが数字に一致する属性オブジェクトを返します。
なし:すべての属性の配列を返します。
Delegate function(attribute,index): は Xrm.Page.data.entity.attributes のコレクションの中で、デリゲート関数が trueを返すすべての属性の配列を返します。
タスク |
例 |
---|---|
名前による属性へのアクセス |
var nameAttribute = Xrm.Page.getAttribute("name"); nameAttribute 変数への[アカウント名] フィールドの属性の割り当て |
インデックスによる属性へのアクセス |
var firstAttribute = Xrm.Page.getAttribute(0); firstAttribute 変数に Xrm.Page.data.entity.attributes コレクションの最初の属性を割り当てます。 |
すべての属性へのアクセス |
var allAttributes = Xrm.Page.getAttribute(); allAttributes 変数に Xrm.Page.data.entity.attributes コレクションのすべての属性の配列を割り当てます。 |
特定の条件を満たすすべての属性へのアクセス |
var optionsetAttributes = Xrm.Page.getAttribute(function (attribute, index) { 属性の種類が "optionset "のときに、true を返す、匿名関数に設定した条件を満たす Xrm.Page.data.entity.attributes のコレクションのすべてのプロパティの配列を、optionsetAttributes変数に割り当てます。 |
Xrm.Page.data.entity.attributes のコレクションにはさらに、関数内の属性にアクセスするときに使用できる 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach 方法があります。 次の writeRequiredAttributesToConsole 関数によって、デバッグ コンソールにデータを必要とするすべての属性名が作成されます:
function writeRequiredAttributesToConsole() {
var requiredAttributeNames = [];
Xrm.Page.data.entity.attributes.forEach(
function (attribute, index) {
if (attribute.getRequiredLevel() == "required")
{ requiredAttributeNames.push(attribute.getName()); }
});
if (requiredAttributeNames.length > 0) {
if (typeof console != "undefined") {
console.log(requiredAttributeNames.join());
}
}
else {
if (typeof console != "undefined") {
console.log("No required attributes detected");
}
}
}
このトピックの内容
エンティティ属性データを取得または設定します。
次の表の例は、属性に保存されているデータを取得または変更する方法を示します。
タスク |
方法 |
例 |
---|---|---|
属性の値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getValue |
var nameValue = Xrm.Page.getAttribute("name").getValue(); nameValue 変数に[アカウント名] フィールドの値を割り当てます。 |
属性の値の設定 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue |
Xrm.Page.getAttribute("name").setValue("new name"); "新しい名前"に[アカウント名] フィールドの値を設定します。 |
optionset 属性の現在選択オプションのテキスト値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getText |
var addressType = Xrm.Page.getAttribute("address1_addresstypecode").getText(); addressType 変数に[住所の種類] フィールドで選択されたオプションのテキストを割り当てます。 |
optionset属性の現在選択のオプション オブジェクトを取得する |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSelectedOption |
var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getSelectedOption(); addressTypeOption 変数に[住所の種類] フィールドで選択されたオプションを割り当てます。 |
このトピックの内容
属性メタデータの取得
次の表の例では、どのような属性かを理解したり、属性の動作をする方法を変更する方法について属性のプロパティにクエリを送る方法を示しています。
タスク |
方法 |
例 |
---|---|---|
属性の種類の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getAttributeType |
var attributeType = Xrm.Page.getAttribute(0).getAttributeType(); attributeType 変数に、最初の属性の種類を表す文字列値を割り当てます。 |
属性のフォーマット方法の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getFormat |
var attributeFormat = Xrm.Page.getAttribute(0).getFormat(); attributeFormat 変数に、最初の属性の形式を表す文字列値を割り当てます。 |
Booleanまたは optionset属性の初期値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getInitialValue |
var attributeInitialValue = Xrm.Page.getAttribute("address1_addresstypecode").getInitialValue(); attributeInitialValue 変数に[住所の種類] フィールドの初期番号値を割り当てます。 |
属性値が変更されているかどうかの判定 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsDirty |
var isNameChanged = Xrm.Page.getAttribute("name").getIsDirty(); isNameChanged 変数に、[アカウント名] フィールドの値が変更されたかどうかを示す Boolean 値を割り当てます。 |
検索属性が関係者リスト検索を表すかどうかを指定します。 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsPartyList |
var isPartyList = Xrm.Page.getAttribute("to").getIsPartyList(); [電子メール] エンティティの [宛先] フィールドが関係者リストの検索を表すかどうかを示す Boolean 値を割り当てます。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
数を格納する属性で許容される最大値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMax |
var newValue = 100000000000001; newValue 変数の値が [与信限度額] フィールドで許可される最大値を超過するかどうかを示す Boolean 値を、newValueBelowMax 変数に割り当てます。 |
文字列を格納する属性で許容される最大長の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMaxLength |
var newAccountName = "A Store"; newAccountName 変数の値が [取引先企業名] フィールドで許可される最大長を超過するかどうかを示す Boolean 値を、nameTooLong 変数に割り当てます。 |
数を格納する属性で許容される最小値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMin |
var newValue = -1; newValue 変数の値が [与信限度額] フィールドで許可される最小値を下回るかどうかを示す Boolean 値を、newValueBelowMin 変数に割り当てます。 |
属性の論理名の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getName |
var attributeName = Xrm.Page.getAttribute(0).getName(); attributeName 変数へのページの最初の属性の論理名の値を割り当て |
値を示すオプション オブジェクトの取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption |
var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getOption(1); 1という値の [住所の種類] フィールド オプションのテキストを表示する警告が表示されます。 |
数値の属性に精度のレベルを表す数値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getPrecision |
var creditLimitPrecision = Xrm.Page.getAttribute("creditlimit").getPrecision(); creditLimitPrecision 変数に[利用限度額] フィールドの精度値を割り当てます。 |
値を持つために属性が必須かどうを表す文字列値の取得 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getRequiredLevel |
var creditLimitRequired = Xrm.Page.getAttribute("creditlimit").getRequiredLevel(); creditLimitRequired の変数値は none、required、または recommendedとすることができます。 |
レコードを保存するためにデータがフィールドで必要かどうかの変更 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setRequiredLevel |
Xrm.Page.getAttribute("creditlimit").setRequiredLevel("required"); [与信限度額] フィールドを必須にします。 |
レコードを保存する際に属性のデータが送信されるかどうかの判定 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSubmitMode |
var nameSubmitMode = Xrm.Page.getAttribute("name").getSubmitMode(); nameSubmitMode の変数値は always、never、または dirty のいずれかで、[アカウント名]フィールドの submitMode を表します。 |
レコードを保存する際に属性のデータが保存されるかどうかのコントロール |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setSubmitMode |
Xrm.Page.getAttribute("name").setSubmitMode("always"); 例では、変更されていない場合でも、[アカウント名] フィールド値が常に強制的に保存されます。 |
フィールド レベルのセキュリティを属性に適用した場合、 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getUserPrivilege |
var canUpdateNameAttribute = Xrm.Page.getAttribute("name").getUserPrivilege().canUpdate; canUpdateNameAttribute 変数に [アカウント名] フィールドを更新するユーザーの特権を表す Boolean 値を割り当てます。 |
このトピックの内容
イベント引数の保存
ビジネス ロジックを実装する際、レコードが、ユーザーが必要な情報を含めることができるように、保存されるのを避けることは、頻繁に必要です。 このため、イベント ハンドラーを構成して、実行コンテキストに渡すようにする必要があります。 実行コンテキストには、イベントの引数を取得するための getEventArgs メソッドが含まれます。 これらの引数には、レコードが、save イベントについて通知するプロパティを保存するか、またはクエリするかをコントロールするために使用できるメソッドが含まれます。
タスク |
例 |
---|---|
レコードが保存されるのを防ぎます。 |
function My_PreventSaveFunction(eContext) { 実行コンテキストを取得して、イベントの引数に含まれる preventDefault 方法を使用するには eContext パラメーターを使用します。 |
どのアクションが保存を開始するかを決定します。 |
function My_GetSaveModeTextFunction(eContext) { 実行コンテキストを取得して、整数コード値をテキストに変換するために、イベントの引数に含まれる getSaveMode 方法を使用するには eContext パラメーターを使用します。 |
このトピックの内容
通知の表示
通知はメッセージをユーザーに表示する方法を提供します。
タスク |
方法 |
例 |
---|---|---|
データが無効であることを示すメッセージをコントロールの近くに表示。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setnotification |
Xrm.Page.getAttribute("name").controls.forEach( [アカウント名] 属性のフォームのすべてのコントロールに対して検証エラー メッセージを設定します。 このメッセージが表示されているかぎり、レコードは保存できません。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
コントロールに対して既に表示されているメッセージを削除。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearnotification |
Xrm.Page.getAttribute("name").controls.forEach( [アカウント名] 属性のフォームのすべてのコントロールに対する検証エラー メッセージをすべて除去します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
フォーム レベルの通知の表示。 |
0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_setFormNotification |
Xrm.Page.ui.setFormNotification( フォームの最上部にシステム情報アイコンとともにメッセージ "Hello" を表示します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
フォーム レベルの通知の削除。 |
0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_clearFormNotification |
Xrm.Page.ui.clearFormNotification("helloMsg"); helloMsgを uniqueid パラメーターとして使用して、前に設定されたメッセージを消去します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
コールバック関数を使用してブロッキング不可の警告ダイアログを表示。 |
72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog |
var alertDisplayed = false; クローズ時に、警告を表示し、alertDisplayed 変数の値を設定します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
ユーザーがクリックしたボタンに基づく異なるコールバックでブロック不可確認ダイアログを表示。 |
72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_confirmDialog |
var agree = false; 確認メッセージを表示し、応答に基づいて、agree 変数の値を設定します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
このトピックの内容
コントロール
コントロールは、フォームのユーザー インターフェイス要素を表します。 フォームの各属性には関連付けられた少なくとも 1 つのコントロールがあります。 必ずしもすべてのコントロールが属性に関連付けられているとは限りません。IFRAME、web リソース、サブグリッドは属性がないコントロールです。
フォーム コントロールへのアクセス
コントロールは Xrm.Page.ui.controls のコレクションから使用できます。 コントロールにアクセスするには Xrm.Page.ui.controls.9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get メソッドまたはショートカット バージョンXrm.Page.getControlを使用できます。
get方法では 4 種類の引数を使用できます:
文字列: 論理名が文字列に一致するコントロールを返します。
番号:Xrm.Page.ui.controls コレクションのインデックスが数字に一致するコントロールを返します。
なし:すべてのコントロールの配列を返します。
Delegate function(control,index): は Xrm.Page.ui.controls のコレクションの中で、デリゲート関数がtrueを返すすべてのコントロールの配列を返します。
タスク |
例 |
---|---|
特定の属性に対するすべてのコントロールにアクセスする |
var nameControls = Xrm.Page.getAttribute("name").controls.get(); nameControls 変数に name 属性のすべてのコントロールの配列を割り当てます。 |
コントロールに名前でアクセスする |
var nameControl = Xrm.Page.getControl("name"); nameControl 変数に[アカウント名] フィールドを表す最初のコントロールを割り当てます。 属性に対するフォームに追加される最初のコントロールには属性と同じ名前があります。 そのほかの各コントロール名には、名前に追加されたインデックス番号があります。 たとえば、名前属性の 3 つのコントロールには、それぞれ、name、name1、および name2という名前があります。 |
コントロールにインデックスでアクセスする |
var firstControl = Xrm.Page.getControl(0); firstControl 変数に Xrm.Page.ui.controls コレクションの最初のコントロールを割り当てます。 |
すべてのコントロールにアクセスする |
var allControls = Xrm.Page.getControl(); allControls 変数に Xrm.Page.ui.controls コレクションのすべてのコントロールの配列を割り当てます。 |
特定の条件を満たすすべてのコントロールへのアクセス |
var optionsetControls = Xrm.Page.getControl(function (control, index) { 属性の種類が "optionset "のときに、trueを返す、匿名関数に設定した条件を満たす Xrm.Page.ui.controls のコレクションのすべての属性の配列を、optionsetControls変数に割り当てます。 |
各セクションには、このセクションにちょうどコントロールを含むコントロールのコレクションがあります。 次のコード サンプルは [一般] タブの [アドレス] セクションで見つかるコントロールの配列に generalTabAccountInfoSectionControls の変数に割り当てます。
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();
注意
各属性はフォーム内に一度だけ存在しますが、フィールドはその属性のフォームに複数回追加できます。 追加する各フィールドは別のコントロールを作成します。 スクリプトの作成後、フォームをさらにカスタマイズできます。 属性コントロールに対して作成するスクリプトは、フォームに複数回含まれていることを前提とする必要があります。 属性のコントロールに対して取るアクションは、通常、その属性のすべてのコントロールに適用する必要があります。 たとえば、コントロールを無効にするとき、コントロールの 1 つだけを無効にする場合は、別のコントロールを使用してさらにデータを入力する場合があります。 この理由から、スクリプトの作成時に 1 つのコントロールだけが存在する場合でも、コレクションの 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach メソッドを使用して次のパターンを使用することを推奨します。
Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });
このトピックの内容
ヘッダー コントロールへのアクセス
ヘッダーのコントロールは、コントロール名の前に "header_" が追加される命名規則に従います。 たとえば、name 属性がヘッダーにある場合は、
var nameControlInHeader = Xrm.Page.getControl("header_name"); を使用してアクセスできます。
業務プロセス フローのコントロールへのアクセス
業務プロセス フローのコントロールは、コントロール名の前に "header_process_" が追加される命名規則に従います。 たとえば、name 属性がヘッダーにある場合は、
var nameControlInBPF = Xrm.Page.getControl("header_process_name"); を使用してアクセスできます。
注意
フォームが読み込まれると、アクティブ ステージのコントロールのみが Xrm.Page.ui.controls コレクションに含まれます。 他の業務プロセス フローのコントロールは、現在のエンティティのステージが選択されると追加されます。
フォーム コントロールのメソッド
コントロールへのアクセスを入手したら、次のメソッドを呼び出すことができます。
タスク |
方法 |
例 |
---|---|---|
コントロールを表示するかどうかを判断する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getVisible |
var isNameVisible = Xrm.Page.getControl("name").getVisible(); [アカウント名]フィールドが表示されるかどうかを表す isNameVisible変数に、Boolean値を割り当てます。 |
コントロールの表示または非表示 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setVisible |
Xrm.Page.getControl("name").setVisible(false); [アカウント名] フィールドが表示されません。 |
コントロールの属性への参照を取得する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getAttribute |
var nameAttribute = Xrm.Page.getControl("name").getAttribute(); nameAttribute 変数に[アカウント名] フィールドのコントロールの属性を割り当てます。 注意 必ずしもすべてのコントロールに属性はあるわけではありません。 |
コントロールの種類を決定する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getControlType |
var optionSetControls = Xrm.Page.getControl(function (control, index) { return control.getControlType() == "optionset"; }); optionSetControls 変数に、optionset コントロールの配列を割り当てます。 |
コントロールを有効かどうかを判断する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDisabled |
var disabledControls = Xrm.Page.getControl(function(control, index) { return control.getDisabled(); }); disabledControls 変数に、無効なコントロールの配列を割り当てます。 注意 Web リソース、およびサブグリッド コントロールは、このメソッドをサポートしません。 |
コントロールの無効化または有効化 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDisabled |
Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); }); name 属性の各コントロールを無効にします。 ヒント どの属性にも複数のコントロールがある可能性があることに留意してください。 |
コントロールのラベルを取得する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getLabel |
var nameControlLabel = Xrm.Page.getControl("name").getLabel(); nameControlLabel 変数に[アカウント名] フィールドのコントロールの値を割り当てます。 |
コントロールのラベルを変更する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setLabel |
Xrm.Page.getControl("name").setLabel("Company Name"); [会社名] へ [アカウント名] フィールドのラベルを変更します。 |
コントロールの名前の取得 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getName |
var firstControlName = Xrm.Page.getControl(0).getName(); firstControlName 変数に Xrm.Page.ui.controls コレクションの最初のコントロールの名前を割り当てます。 |
コントロールの親の取得 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getParent |
var parentSection = Xrm.Page.getControl("name").getParent(); parentSection 変数に[アカウント名] フィールドのコントロールの親セクションを割り当てます。 |
コントロールにフォーカスを設定する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setFocus |
Xrm.Page.getControl("name").setFocus(); [アカウント名] フィールドにフォーカスを設定します。 |
このトピックの内容
OptionSet コントロール メソッド
Optionsets にはいくつかの特別な方法があります。 属性がoptionsetの有効なオプションを定義することを理解することが重要です。optionsetコントロールを操作する場合、使用できるオプションを操作できますが、新しいオプションを作成することはできません。
タスク |
方法 |
例 |
---|---|---|
optionset コントロールにオプションを追加する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addOption |
var addressTypeCodeControl = Xrm.Page.getControl("address1_addresstypecode"); [住所の種類]フィールドのコントロールへの参照を使用して、コントロールの属性にアクセスし、6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption 方法を使用して、billToAddressOption 変数を [請求書送付先] オプションを示すオプションに設定します。 51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptionsを使用して、既存のあらゆるオプションを削除し、addOptionを使用して、このコントロールに使用できる唯一のオプションとしてbillToAddressOption を設定します。 |
optionset コントロールからすべてのオプションを削除する |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptions |
Xrm.Page.getControl("address1_addresstypecode").clearOptions(); [住所の種類] フィールドのコントロールからすべてのオプションを削除します。 |
optionset コントロールから単一のオプションを削除します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_removeOption |
Xrm.Page.getControl("address1_addresstypecode").removeOption(1); [住所の種類] フィールドのコントロールから請求先オプションを削除します。 |
このトピックの内容
IFRAME および Web リソースのコントロールのメソッド
IFRAME コントロールは、URLを提供することによって、フォーム内にページを含めることができます。 フォームに追加された HTML Web リソースは、IFRAME 要素を使用して提供されます。Silverlight および画像の Web リソースは、ページ内に直接埋め込まれます。
タスク |
方法 |
例 |
---|---|---|
Silverlight web リソースに渡すデータ クエリ文字列パラメーターの値を取得します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getData |
var dataValue = Xrm.Page.getControl("WebResource_SilverLightControl").getData(); データ クエリ文字列パラメーターによって渡された値を dataValue 変数に割り当てます。 |
現在IFRAMEに表示されるコンテンツの URL を取得します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getSrc |
var iframeSource = Xrm.Page.getControl("IFRAME_targetPage").getSrc(); 現在の IFRAME.src 属性値を表す文字列を iframeSource 変数に割り当てます。 |
コンテンツがIFRAMEに表示されるように URL を設定します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setSrc |
Xrm.Page.getControl("IFRAME_targetPage").setSrc("http://www.bing.com"); URL をコントロールの IFRAME.src になるように設定します。 |
IFRAMEに既定で構成されているURL を表す URL を取得します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getUrl |
var initialUrl = Xrm.Page.getControl("IFRAME_bing").getInitialUrl(); initialUrl 変数に、IFRAME で表示するように構成されたイニシャルURL を割り当てます。 |
web リソースまたはIFRAMEを示すフォームのオブジェクトを取得します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getObject |
var obj = Xrm.Page.getControl("IFRAME_bing").getObject(); obj 変数に、オブジェクト参照を割り当てます。IFRAMEでは、これは IFRAMEドキュメント オブジェクト モデル(DOM)の要素です。Silverlight web リソースでは、これは、オブジェクトオブジェクト 要素で、埋め込みSilverlightプラグインを表します。 |
このトピックの内容
検索コントロールのメソッド
検索コントロールの一般的な要件は、ユーザーがフィールドを更新するときに表示される既定のビューを指定することです。
タスク |
方法 |
例 |
---|---|---|
検索用のカスタム ビューを追加します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomView |
var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}"; viewId、viewDisplayName、fetchXmlと layoutXml変数を、カスタム ビューが [親アカウント] の検索フィールドのコントロールに既定のビューとして追加できるように引数として渡すように設定します。 |
検索の既定ビューを取得します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDefaultView |
var defaultViewId = Xrm.Page.getControl("parentaccountid").getDefaultView(); defaultViewId 変数に、既定ビューのid 値を割り当てます。 |
検索の既定ビューを設定します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDefaultView |
var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}"; viewId 変数のid値に [親アカウント] フィールドのコントロールの既定のビューを設定します。 |
検索コントロールに返されるレコードにフィルターを適用します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomFilter |
次のコード サンプルは、営業案件フォームの [取引先企業] (parentaccountid) 検索用です。Sdk.setParentAccountIdFilter 関数がフォーム Onload イベント ハンドラーに設定されている場合、Sdk.filterCustomAccounts 関数が検索用 PreSearch イベントに追加されます。 結果として、[カテゴリ] (accountcategorycode) の値が [優先する顧客] (1) である取引先企業のみが戻されます。
|
このトピックの内容
サブグリッド コントロールのメソッド
SubGrid コントロールはフォーム内のグリッドです。 これには 1 種類の固有の方法があります。
タスク |
方法 |
例 |
---|---|---|
サブグリッドの表示データの最新情報への更新 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_refresh |
Xrm.Page.getControl("accountcontactsgrid").refresh(); [連絡先]subgrid を更新します。 |
このトピックの内容
日付コントロールのメソッド
Date コントロールには 1 つの固有のメソッドがあります。
タスク |
方法 |
例 |
---|---|---|
日付コントロールで日付の時間の部分を表示するかどうかを指定します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setShowTime |
Xrm.Page.getControl("createdon").setShowTime(false); 時間が表示されないように、[作成日] フィールドを設定します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
このトピックの内容
フォームのナビゲーション
フォームの左側のナビゲーション項目を使用して操作できます。 これらのナビゲーション アイテムは通常、フォームで表示されるレコードに関連したレコードを表示します。
Xrm.Page.ui.navigation.items コレクションを使用してナビゲーション アイテムにアクセスでき、フォームのすべてのコレクションと同様に 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEachと9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get メソッドがあります。
タスク |
方法 |
例 |
---|---|---|
ナビゲーション アイテムの名前の取得 |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getId |
var navItemIds = []; Xrm.Page.ui.navigation.items のコレクションの各ナビゲーション アイテムの id の値を含む navItemIds の配列を作成します。 |
ナビゲーション アイテムのラベルを取得します。 |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getLabel |
var navAddressesLabel = Xrm.Page.ui.navigation.items.get("navAddresses").getLabel(); navAddressesLabel 変数に [追加の住所] のナビゲーション項目のラベルを割り当てます。 |
ナビゲーション アイテムのラベルを設定する |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setLabel |
Xrm.Page.ui.navigation.items.get("navAddresses").setLabel("Other Addresses"); [追加の住所] に、[追加の住所]のナビゲーション アイテムのラベルを変更します。 |
ナビゲーション項目を表示または非表示にする |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setVisible |
Xrm.Page.ui.navigation.items.get("navAddresses").setVisible(false); More Addresses ナビゲーション項目を非表示にします。 |
ナビゲーション アイテムを表示するかどうかを判断する |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getVisible |
var moreAddressesVisible = Xrm.Page.ui.navigation.items.get("navAddresses").getVisible() [追加の住所] のナビゲーション項目を表示するかどうかを示すため、moreAddressesVisible 変数にBoolean値を割り当てます。 |
ナビゲーション項目にフォーカスを設定します。 |
bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setFocus |
Xrm.Page.ui.navigation.items.get("navAddresses").setFocus(); [追加の住所] ナビゲーション項目にフォーカスを設定します。 |
このトピックの内容
タブおよびセクション
各フォームには、タブのコレクションが含まれます。 各タブにはセクションのコレクションがあります。 各セクションにはコントロールのコレクションがあります。 プログラムによりこれらの要素にアクセスし、それらのメソッドを使用できます。
タスク |
方法 |
例 |
---|---|---|
タブが展開されたか、または閉じられたかどうかを判断する |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_getDisplayState |
var isGeneralTabExpanded = (Xrm.Page.ui.tabs.get("general").getDisplayState() == "expanded") [一般] タブが展開されたかどうかを示す isGeneralTabExpanded 変数に Boolean 値を割り当てます。 |
タブを展開または閉じる |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetDisplayState |
Xrm.Page.ui.tabs.get("general").setDisplayState("collapsed"); [全般] タブを折り畳みます。 |
タブを表示するかどうかを判断する |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetVisible |
var isGeneralTabVisible = Xrm.Page.ui.tabs.get("general").getVisible(); [一般] タブが表示されるかどうかを示す isGeneralTabVisible 変数に Boolean 値を割り当てます。 |
タブの表示または非表示 |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetVisible |
Xrm.Page.ui.tabs.get("general").setVisible(false); [全般] タブを非表示にします。 |
タブのラベルを取得する |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetLabel |
var generalTabLabel = Xrm.Page.ui.tabs.get("general").getLabel(); generalTabLabel 変数に [一般] タブ ラベルを割り当てます。 |
タブのラベルを変更する |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetLabel |
Xrm.Page.ui.tabs.get("general").setLabel("Major"); [メジャー] に [一般] タブのラベルを変更します。 |
タブにフォーカスを設定する |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetFocus |
Xrm.Page.ui.tabs.get("general").setFocus(); [一般] タブにフォーカスを設定します。 |
タブの名前の取得 |
205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetName |
var firstTabName = Xrm.Page.ui.tabs.get(0).getName(); firstTabName 変数に、最初のタブの名前を割り当てます。 |
セクションのタブの取得 |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetParent |
Xrm.Page.getControl("industrycode").getParent().getParent().setFocus(); [業種] フィールドを含むタブにフォーカスを設定します。 |
セクションを表示するかどうかを判断する |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetVisible |
var industrySectionVisible = Xrm.Page.getControl("industrycode").getParent().getVisible(); [業種] フィールドを含むセクションが表示可能かどうかを示すindustrySectionVisible変数に、Boolean の値を割り当てます。 |
セクションの表示または非表示 |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetVisible |
Xrm.Page.getControl("industrycode").getParent().setVisible(false); [業種] フィールドを含むセクションを非表示にします。 |
セクションのラベルを取得する |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_getLabel |
var industryFieldSectionLabel = Xrm.Page.getControl("industrycode").getParent().getLabel(); industryFieldSectionLabel 変数に [業種] フィールドを含むセクションのラベルを割り当てます。 |
セクションのラベルを変更する |
a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetLabel |
Xrm.Page.getControl("industrycode").getParent().setLabel("Detailed Information"); [詳細な情報] に [業種] セクションを含むフィールドのラベルを変更します。 |
このトピックの内容
実行時のイベント ハンドラーの追加または削除
イベント ハンドラーは通常、アプリケーションのフォーム エディターを使用して構成されますが、実行時にこれらの APIsを使用して、フォームOnSaveのイベントおよび属性 OnChange イベントを追加することができます。 このセクションの例は次関数の定義を示しています:
function myFunction() {
//perform action here
}
匿名関数を追加できますが、その関数には削除するために参照するための名前が必要です。
タスク |
方法 |
例 |
---|---|---|
OnSave イベントに関数を追加する |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave |
Xrm.Page.data.entity.addOnSave(myFunction); OnSaveイベントにmyFunction関数を追加します。 |
OnSave イベントから関数を削除する |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_removeOnSave |
Xrm.Page.data.entity.removeOnSave(myFunction); OnSave イベントに対して myFunction 関数を削除します。 |
属性の OnChange イベントに関数を追加します。 |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange |
Xrm.Page.getAttribute("name").addOnChange(myFunction); [アカウント名] フィールドのOnChange イベントに、myFunction関数を追加します。 |
属性の OnChange イベントから関数を削除する |
6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_removeOnChange |
Xrm.Page.getAttribute("name").removeOnChange(myFunction); [アカウント名] フィールドのOnChange イベントに対して、myFunction関数を削除します。 |
検索コントロールの PreSearch イベントに関数を追加します。 |
51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch |
次のコード サンプルは、営業案件フォームの [取引先企業] (parentaccountid) 検索用です。Sdk.setParentAccountIdFilter 関数がフォーム Onload イベント ハンドラーに設定されている場合、Sdk.filterCustomAccounts 関数が検索用 PreSearch イベントに追加されます。 結果として、[カテゴリ] (accountcategorycode) の値が [優先する顧客] (1) である取引先企業のみが戻されます。
|
業務プロセス フローのコントロールで発生するイベントに対して、d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange および d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected を使用します。 これらのイベントは、イベント ハンドラーをプログラム的に追加または削除するメソッドのみを持っています。詳細:イベント ハンドラーを管理するメソッド。
このトピックの内容
コンテキスト情報のメソッド
ユーザー、クライアント、組織に関する情報を取得するには、これらのメソッドを使用します。 次の表は、最も有用なコンテキスト方法の一部を示します。 すべてコンテキスト メソッドについては、クライアント側コンテキスト(クライアント側の参照)を参照してください
タスク |
方法 |
例 |
---|---|---|
組織に接続するには URL を取得します。 |
var serverUrl = Xrm.Page.context.getClientUrl(); serverUrl の変数に URL を表す文字列を割り当てます。 |
|
現在のユーザーの一意識別子を取得します。 |
var userId = Xrm.Page.context.getUserId(); ユーザーの ID を表す文字列を userId 変数に割り当てます。 |
|
現在のユーザー名を取得します。 |
var userName = Xrm.Page.context.getUserName(); ユーザーの名前を表す文字列を userName 変数に割り当てます。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
|
ユーザーが指定したユーザー インターフェイス言語を表す言語コードを取得します。 |
var userLCID = Xrm.Page.context.getUserLcid(); userLCID 変数にユーザーが指定した言語を示す数を割り当てます。 |
|
ユーザーが関連付けられている現在のユーザーとチームに割り当てられている各セキュリティ ロールの GUID 値を表す文字列の配列を取得します。 |
var userRoles = Xrm.Page.context.getUserRoles(); userRoles 変数にユーザーのセキュリティ ロールを表す文字列の配列を割り当てます。 |
|
スクリプトが Outlook 用 Microsoft Dynamics 365 のクライアントで動作しているかどうかを確認します。 |
var isOutlookClient = (Xrm.Page.context.client.getClient() == "Outlook"); isOutlookClient変数に、コードが Outlook 用 Dynamics 365 のクライアントで動作しているかどうかを示す Boolean 値を割り当てます。 |
|
ユーザーが オフライン アクセス対応 Microsoft Office Outlook 用 Microsoft Dynamics 365 クライアントでオフラインを使用しているかどうかを確認します。 |
var IsOffline = (Xrm.Page.context.client.getClientState() == "Offline"); IsOffline変数に、ユーザーが現在オフラインで作業しているかどうかを表す Boolean 値を割り当てます。 |
このトピックの内容
エンティティ データの取得、更新、保存
次の表には、現在のレコードに関する情報を取得したり、変更を保存したりする場合に使用できるメソッドが含まれます。 詳細については、「Xrm.Page.data.entity (クライアント側の参照)」および「Xrm.Page.data (クライアント側の参照)」を参照してください。
タスク |
方法 |
例 |
---|---|---|
現在のエンティティの論理名を取得する |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getEntityName |
var entityName = Xrm.Page.data.entity.getEntityName(); entityName変数に、論理エンティティ名を割り当てます。 |
現在のエンティティの主属性値を取得する。 |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue |
var primaryAttributeValue = Xrm.Page.data.entity.getPrimaryAttributeValue(); 主属性の値を primaryAttributeValue 変数に割り当てます。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
現在のレコードの Id を取得する |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getId |
var recordId = Xrm.Page.data.entity.getId(); recordId 変数に、レコードのid を割り当てます。 |
ページを再読み込みせずに、非同期でフォームのデータを更新する。 |
ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_refresh |
Xrm.Page.data.refresh(); フォームのデータを更新します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
現在のレコードを保存する |
Xrm.Page.data.entity.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_save |
Xrm.Page.data.entity.save(); レコードを保存します。 オプションの引数があります。 同等の操作を実行するために saveandclose または saveandnew を使用します。 |
レコードを非同期で、保存操作の完了後にコールバック関数を実行するように設定するオプションを使用して保存する。 |
Xrm.Page.data.ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_dataSave |
Xrm.Page.data.save().then( レコードを保存し、保存の状態を示すメッセージを表示します。 このメソッドは、41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties でのみ使用できます。 |
現在のレコード内のいずれかのデータが変更されているかどうかを判断します。 |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getIsDirty |
var isDirty = Xrm.Page.data.entity.getIsDirty(); isDirty 変数に、レコードのデータが変更されたかどうかを示す Boolean 値を割り当てます。 |
レコードが保存されるときにサーバーに送信されるデータを表す文字列を取得します。 |
fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getDataXml |
var dataXml = Xrm.Page.data.entity.getDataXml(); dataXml変数に、保存されるデータを表す文字列を割り当てます。 |
このトピックの内容
関連項目
Xrm.Page オブジェクト モデルの使用
Microsoft Dynamics 365 フォームのコードを記述する
クライアント側のプログラミング リファレンス
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権