Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在CRM 2011的日期时间字段中隐藏非工作时间_Javascript_Dynamics Crm 2011 - Fatal编程技术网

Javascript 在CRM 2011的日期时间字段中隐藏非工作时间

Javascript 在CRM 2011的日期时间字段中隐藏非工作时间,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,在创建新任务、电话、电子邮件、约会等时,是否有方法过滤日期时间控件以仅显示工作时间 我已经为用户配置了工作时间,日历现在显示了正确的工作时间。但当用户创建新任务时,显示截止日期的控件将显示从上午12:00开始的所有小时数 关于如何根据先前定义的工作时间筛选该字段的任何建议?没有支持的方法 不受支持(这不是一个好主意),您可能可以编写一些JavaScript并操纵DOM来更改拾取列表值。我终于找到了如何隐藏日期和时间字段的一些小时。在我的例子中,开始时间和结束时间是硬编码的(从上午7:00到下午6

在创建新任务、电话、电子邮件、约会等时,是否有方法过滤日期时间控件以仅显示工作时间

我已经为用户配置了工作时间,日历现在显示了正确的工作时间。但当用户创建新任务时,显示截止日期的控件将显示从上午12:00开始的所有小时数


关于如何根据先前定义的工作时间筛选该字段的任何建议?

没有支持的方法


不受支持(这不是一个好主意),您可能可以编写一些JavaScript并操纵DOM来更改拾取列表值。

我终于找到了如何隐藏日期和时间字段的一些小时。在我的例子中,开始时间和结束时间是硬编码的(从上午7:00到下午6:30)

这就是创造奇迹的javascript

function InitializeDateTimeControls(){
    var scheduledendAttr = Xrm.Page.getAttribute('scheduledend');
    var scheduledstartAttr = Xrm.Page.getAttribute('scheduledstart');
    if(scheduledendAttr != null)
    {
        RemoveNotWorkingHours('scheduledend');
        SetActualDueDate('scheduledend');
    }
    if(scheduledstartAttr != null)
    {
        RemoveNotWorkingHours('scheduledstart');
        SetActualDueDate('scheduledstart');
    }
};

function RemoveNotWorkingHours(controlname) {
    if(Xrm.Page.ui.getFormType() == 1)
    {

        var timetable = $("td[id^='" + controlname + "Time.']");

        timetable.each(function () {

        var time = $(this)[0].innerText;

        var hours = time.substring(0, time.indexOf(":"));

        var mins = time.substring(time.indexOf(":") + 1, time.indexOf(":") + 3);

        var am_pm = time.substring(time.indexOf(" ") + 1, time.indexOf(" ") + 3);


        var fulltime = hours + ":" + mins + " " + am_pm;


            var hourint = +hours;
            if((hourint < 7 || hourint == 12) && am_pm == 'AM')
            {
                $(this).parent().remove();
            }
            if((hourint > 6 && hourint != 12) && am_pm == 'PM')
            {
                $(this).parent().remove();
            }


        });
    }

};

function SetActualDueDate(controlname)
{
    if(Xrm.Page.ui.getFormType() == 1)
    {
        var dueDate = Xrm.Page.data.entity.attributes.get(controlname);
        var now = new Date();
        dueDate.setValue(now);
    }
}
函数InitializeDateTimeControls(){
var scheduledendAttr=Xrm.Page.getAttribute('scheduledendd');
var scheduledstarttr=Xrm.Page.getAttribute('scheduledstart');
if(scheduledendAttr!=null)
{
取消工作时间(“已安排”);
SetActualDueDate('scheduledend');
}
如果(scheduledstartAttr!=null)
{
取消工作时间(“计划开始”);
SetActualDueDate(“scheduledstart”);
}
};
函数RemoveNotWorkingHours(controlname){
if(Xrm.Page.ui.getFormType()==1)
{
var时间表=$(“td[id^=”+controlname+“Time.]”);
时间表。每个(功能(){
var time=$(this)[0];
var hours=time.substring(0,time.indexOf(“:”);
var mins=time.substring(time.indexOf(“:”)+1,time.indexOf(“:”+3);
var am_pm=time.substring(time.indexOf(“”+1),time.indexOf(“”+3);
var fulltime=小时+“:“+分钟+”+“+上午/下午;
变量hourint=+小时;
如果((hourint<7 | | hourint==12)和&am|u pm=='am')
{
$(this.parent().remove();
}
如果((hourint>6&&hourint!=12)和&am\u pm=='pm')
{
$(this.parent().remove();
}
});
}
};
函数SetActualDueDate(controlname)
{
if(Xrm.Page.ui.getFormType()==1)
{
var dueDate=Xrm.Page.data.entity.attributes.get(controlname);
var now=新日期();
dueDate.setValue(现在);
}
}

谢谢您的回答。我对此很担心。现在我知道,没有一种受支持的方式来实现它。