カスタムエンティティのフォームにカスタムボタンを追加しました。クリックするとレコードが複製され、新しく作成されたレコードが新しいウィンドウに開きます。新しく作成されたレコードのFormType
はupdate
です。CRM2015:フォームが初めて更新されたときにフィールドを検証する
開いているウィンドウで、保存ボタンがクリックされたかどうかを知る必要があります。クリックされていない限り、いくつかのフィールドは編集のために開いていなければなりません。クリックされると、これらのフィールドは無効になります。
現在、レコードが重複していて、その初期値がtrueに設定されているかどうかを示す(非表示の)ビットフィールドがあります。私のonSave
関数の保存ボタンの最初のクリックで、私はそれをfalseに設定しました。さらに、私はonLoad
関数がこのフィールドを真(レコードが複製されたときにのみ起こるかもしれない)かfalseにチェックする機能を持っています。
私の問題は論理的なものです。最初の保存クリックでこのフィールドをfalseに設定するには、実際にsave
ボタンをクリックするたびに検証を行う必要があります(重複しないレコードでも同じです)。
私は誰かが他の、より論理的に正しい方法を提供できると思ったかもしれません。そう、あなたはすべてのフォームの修正をした後、あなたのOnLoad関数に
Xrm.Page.getAttribute("sln_isduplicate").setValue(false);
:
function OnLoad()
{
// some code...
if (Xrm.Page.getAttribute("sln_isduplicate").getValue() == true)
{
// open for edit relevant fields
}
else
{
// close for edit relevant fields
}
// some code...
}
function OnSave()
{
// some code...
if (Xrm.Page.getAttribute("sln_isduplicate").getValue() == true)
{
Xrm.Page.getAttribute("sln_isduplicate").setValue(false);
}
// some code...
}
解決策2と3は私が探していたものです。ありがとうございます! – HeyJude