1

すべて、開始フィールドと終了フィールドの日付に基づいて、javascript を使用して整数をフィールドに設定しようとしています。CRM javascript を使用して曜日を見つけるための正しい構文が何であるかさえわかりません。これまでの私のコードは次のとおりです。

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue();

    cycletime = endday - startday;

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime);

}
4

3 に答える 3

3

これを試して:

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue().getDay();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue().getDay();

    cycletime = endday - startday;

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime);

}

getDay()は、曜日の0ベースの表現を返します。 http://www.w3schools.com/jsref/jsref_getday.asp

2つの日付の間の日数を計算する場合は、次のことを試してください。

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue();

    cycletime = Math.abs(endday - startday)

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime / 86400000);

}
于 2012-05-04T18:32:49.393 に答える
0

私は最終的に解決策を見つけました:誰でも自由に使用してください。:)

function netbdays_change() {
    var startdays = Xrm.Page.getAttribute("new_dateqaassigned").getValue();
    var enddays = Xrm.Page.getAttribute("new_quotecomplete").getValue();

    var cycletime = Math.abs(enddays - startdays) / 86400000; // This first part now works

    startday = Xrm.Page.getAttribute("new_dateqaassigned").getValue().getDay();
    endday = Xrm.Page.getAttribute("new_quotecomplete").getValue().getDay();

    var x = startday; // day of the week
    var y = 0; // number of business days for output
    var z = 0; // augment up to the total number of days

    while (x <= 7 && z <= cycletime) {
        if (x > 0 && x < 6) {
            y++;
        }
        x++;
        z++;
    }
    x = 0;
    while (x <= 7 && z <= cycletime) {
        if (x > 0 && x < 6) {
        y++;
    }
        x++;
        z++;
        if (x == 6) {
            x = 0;
        }
    }
    Xrm.Page.getAttribute("new_quotetotalcycletime").setValue(y);
}
于 2012-05-05T04:11:25.423 に答える