Dynamics crm /false、yes/no、1/0等bcoz无空选项。您可能需要另一个字段来捕获该字段上的用户交互,以确定每次的肮脏程度或其他一些复杂逻辑;它显示null、true和false。我试图提出一种逻辑,这样一旦机会被保存,用户就不能更改该字段的值。这不起作用。
Dynamics crm /false、yes/no、1/0等bcoz无空选项。您可能需要另一个字段来捕获该字段上的用户交互,以确定每次的肮脏程度或其他一些复杂逻辑;它显示null、true和false。我试图提出一种逻辑,这样一旦机会被保存,用户就不能更改该字段的值。这不起作用。,dynamics-crm,microsoft-dynamics,dynamics-crm-2013,Dynamics Crm,Microsoft Dynamics,Dynamics Crm 2013,/false、yes/no、1/0等bcoz无空选项。您可能需要另一个字段来捕获该字段上的用户交互,以确定每次的肮脏程度或其他一些复杂逻辑;它显示null、true和false。我试图提出一种逻辑,这样一旦机会被保存,用户就不能更改该字段的值。这不起作用。保存Opportunity后,我仍然可以更改选项。此外,我已确定我属于建议对FSP进行更改的组。您是系统管理员吗?如果是,则可以绕过此规则。它应该适用于所有其他用户。基本上,我所在的组添加了该选项,然后尝试创建新的opportunity,但我仍
/false、yes/no、1/0等bcoz无空选项。您可能需要另一个字段来捕获该字段上的用户交互,以确定每次的肮脏程度或其他一些复杂逻辑;它显示null、true和false。我试图提出一种逻辑,这样一旦机会被保存,用户就不能更改该字段的值。这不起作用。保存Opportunity后,我仍然可以更改选项。此外,我已确定我属于建议对FSP进行更改的组。您是系统管理员吗?如果是,则可以绕过此规则。它应该适用于所有其他用户。基本上,我所在的组添加了该选项,然后尝试创建新的opportunity,但我仍然能够更改选项。FLS始终对记录中不同用户的属性具有相同的权限。因此,在这种情况下,这没有帮助。这不起作用。保存Opportunity后,我仍然可以更改选项。此外,我已确定我属于建议对FSP进行更改的组。您是系统管理员吗?如果是,则可以绕过此规则。它应该适用于所有其他用户。基本上,我所在的组添加了该选项,然后尝试创建新的opportunity,但我仍然能够更改选项。FLS始终对记录中不同用户的属性具有相同的权限。因此,在这种情况下,这不会有帮助。我正在玩的变量是-
internal
。我不明白你说的其他领域是什么意思。像new\u twooptionfield
,new\u hasfieldbeenchanged1
new\u twooptionfield
在您的案例中,字段将是内部的,new\u hasfieldbeenchanged1
在您的案例中是新字段,它将只保存数据,以便您可以基于new\u hasfieldbeenchanged1
(新字段)启用/禁用内部字段我正在玩的变量是-内部
。我不明白你说的其他领域是什么意思。像new\u twooptionfield
,new\u hasfieldbeenchanged1
new\u twooptionfield
在您的案例中,字段将是内部的,new\u hasfieldbeenchanged1
在您的案例中是新字段,它将只保存数据,以便您可以基于new\u hasfieldbeenchanged1
(新字段)启用/禁用内部字段JavaScript是客户端。在这种情况下FLS不可能工作。如果您提到用户只能在创建模式下输入值,而不能在更新模式下输入值,那么这就是解决方案。JavaScript是客户端。在这种情况下FLS不可能工作。如果您提到用户只能在创建模式下输入值,而不能在更新模式下输入值,那么这就是解决方案。
function Form_onload() {
var formType = Xrm.Page.ui.getFormType();
var p = Xrm.Page.getAttribute("opportunityid");
--------------NEW CODE--------------------------------
if(formType ==2){ //form type 2 means the form is a saved form. form type 1 is new form.
alert(formType);
var myattribute = Xrm.Page.getAttribute("var_internal");
var myname = myattribute.getName();
if (Xrm.Page.getControl(myname) != null) {
//alert(myname);
Xrm.Page.getControl(myname).setDisabled(true);
}
}
--------------NEW CODE---------------------------
if (formType == 1 && p != null && p.getValue() != null) {
alert('Child Opportunities can only be created by clicking the Create Child Opportunity button in the Opportunity ribbon.');
window.top.close();
}
}
function onLoad(executionContext) {
debugger;
var formContext;
if (executionContext && executionContext.getFormContext()) {
formContext = executionContext.getFormContext();
//executionContext.getEventSource()
if (formContext.getAttribute("new_hasfieldbeenchanged1") && formContext.getAttribute("new_hasfieldbeenchanged1").getValue()!=null) {
if (formContext.getControl("new_twooptionfield")) {
formContext.getControl("new_twooptionfield").setDisabled(true);
}
}
}
}
function onSave(executionContext) {
debugger;
var formContext;
if (executionContext && executionContext.getFormContext()) {
formContext = executionContext.getFormContext();
//executionContext.getEventSource()
if(formContext.getAttribute("new_hasfieldbeenchanged1") && formContext.getAttribute("new_twooptionfield") && formContext.getAttribute("new_twooptionfield").getIsDirty()){
formContext.getAttribute("new_hasfieldbeenchanged1").setValue((new Date()).toString());
if (formContext.getControl("new_twooptionfield")) {
formContext.getControl("new_twooptionfield").setDisabled(true);
}
}
}
}
function Form_onload() {
if (formType == 2) {
var myattribute = Xrm.Page.getAttribute("internal");
var myname = myattribute.getName();
if (Xrm.Page.getControl(myname) != null) {
Xrm.Page.getControl(myname).setDisabled(true);
}
}
}