有没有办法过滤日期时间控件,只显示创建新任务,电话,电子邮件,约会等的工作时间。
我已为用户archive配置了工作时间,现在日历显示正确的工作时间。但是,当用户创建新任务时,显示截止日期的控件将显示从上午12:00开始的所有小时数。 1
有关如何根据之前定义的工作时间过滤该字段的任何建议吗?
答案 0 :(得分:1)
没有支持的方法可以做到这一点。
不支持(从来不是一个好主意)你可能会写一些JavaScript并操纵DOM来改变选择列表值。
答案 1 :(得分:0)
我终于找到了如何隐藏日期和时间字段的几个小时。在我的情况下,开始时间和结束时间是硬编码的(从上午07:00到下午06: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);
}
}