Dynamics CRM脚本帮助 - 与当前日期+数字字段的日期字段比较

时间:2014-10-31 14:39:14

标签: dynamics-crm-2011 jscript

订单有两个字段,发货日期(日期字段)和提前期(数字字段,以天为单位)。

输入发货日期时,应大于当前日期+提前期。如果没有警告用户,并且不允许保存记录。

  • 该规则有一个例外:如果填写了已批准的抢占字段并经过字段批准,则不需要警报并且可以保存记录。

++如果这实际上不能解释周末日,那将是一个加分。但不是强制性的

function checkLeadTime
{
var shipDate = Xrm.Page.getAttribute("requestdeliveryby").getValue();
var leadTime = Xrm.Page.getAttribute("orbus_leadtime").getValue();
var leadTimeDate = Xrm.Page.getAttribute("orbus_leadtimedate").getValue():

if(leadTime != NULL)
{

var approvedRushProduction = xrm.getAttribute("orbus_projectapprovedrush").getValue();
var approvedBy = Xrm.Page.getAttribute("orbus_approvedbyid").getValue();
var currentTime = new Date();
var newDate = currentTime.setDays(currentTime.getDays + leadTime);
leadTimeDate.setValue(newDate);

if(approvedRushProduction == 0 && approvedBy == NULL)
 {
 if ( newDate < shipDate)
  {
    alert("Sorry, Ship Date is less than lead time!");
  }
  else
  {
    alert("Current Time = " + newDate);
  }
 }

}  }

2 个答案:

答案 0 :(得分:0)

您可以将函数附加到表单onSave事件。

if ( newDate < shipDate ) {
    alert("Sorry, Ship Date is less than lead time!");
    Xrm.Page.context.getEventArgs().preventDefault();
} else {
    alert("Current Time = " + newDate);
}

使用Xrm.Page.context.getEventArgs()。preventDefault()来停止保存事件。

答案 1 :(得分:0)

要停止保存并显示错误消息,您可以使用:

Xrm.Page.getControl(fieldName).setNotification(message);

http://garethtuckercrm.com/2013/10/17/crm-2013-new-features-javascript-notifications/