0

2 つのリードフォームを作成しました。1 つはオフィス用家具の製品ライン用で、もう 1 つは家庭用家具の製品ライン用です。これで、Office Furniture と Home Furniture の値を持つオプション タイプとして設定されたフィールドができました。ユーザーがホーム ファニチャー リード フォームを選択した場合、フォームはホーム ファニチャーを静的な値および読み取り専用として設定できる必要があります。同様に、オフィス家具リードフォームの場合、オフィス家具は読み取り専用の静的値として設定する必要があります。ある意味で、このフィールドの編集機能をユーザーから取り除きたいと考えています。両方のフォームで同じフィールドが参照されているため、ここで課題に直面しています。家庭用家具をデフォルト値として設定して読み取り専用にすると、オフィス用家具のリード フォームにも同じ値が表示されます。リード フォームの選択に基づいて 2 つの異なる値を割り当てるスクリプトを手伝ってくれる人がいれば、

4

2 に答える 2

1

これで結果を示すことができました。しかし、フォームごとに 1 つずつ、2 つの異なる関数を記述しました。

function HomeFurniture() {
Xrm.Page.getAttribute("new_lineofbusiness").setValue(100000000);
}

他のフォームに同じ関数を挿入しました

function OfficeFurniture() {
Xrm.Page.getAttribute("new_lineofbusiness").setValue(100000000);
}
于 2013-04-19T07:58:35.100 に答える
0

現在のフォームを確認してフィールドを設定する必要があります。次の例から始めることができます。

var currentForm = Xrm.Page.ui.formSelector.getCurrentItem();
if (currentForm != null) {
    var formValue = null;
    var currentFormLabel = currentForm.getLabel();
    switch (currentFormLabel) {
        case "Office Furniture":
            formValue = 1;
            break;
        case "Home Furniture":
            formValue = 2;
            break;
    }
    if (formValue != null) {
        Xrm.Page.getAttribute("new_formtype").setValue(formValue);
        Xrm.Page.getAttribute("new_formtype").setSubmitMode("always");
        Xrm.Page.getControl("new_formtype").setDisabled(true);
    }   
}

もちろん、このコードだけでは十分ではありません。ユーザーがフォームを変更するとき (この可能性を残したい場合) に注意するか、navigate メソッドを使用してフォームを自動的に変更する必要があります。

この msdn の記事をお勧めします。

http://msdn.microsoft.com/en-us/library/gg328253.aspx

于 2013-04-18T18:58:42.227 に答える