JavaScript/Dynamics CRM:需要帮助完成 JavaScript 事件,计算网格 "Id & Qualify" 字段中的记录数 ="Yes"
JavaScript/Dynamics CRM: Need help finishing JavaScript event that counts how many records in a grid's "Id & Qualify" field ="Yes"
在我的商机表单中,我添加了一个 "Sales Quota Distribution" 实体可编辑网格。一个Opportunity 可以有多个Sales Quota Distribution 记录。我正在处理一个 JavaScript 事件,该事件计算销售配额分布网格中显示的记录的 "ID & Qualify" 字段中有多少记录 = "Yes"。 "ID & Qualify" 是一个下拉字段,它包含的两个选项是 Yes 和 No。我相信我快完成了,但是代码由于某种原因返回 "null"。任何帮助让它工作的帮助将不胜感激。谢谢!
这是我的代码,无论网格中 "Id & Qualify" 字段中显示了多少 "Yes",它当前都返回 null:
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var allRows = null;
var attributeColl = null;
var idqualifyyescount;
var gridContext = formContext.getControl("s_qd");
allRows = gridContext.getGrid().getRows();
allRows.forEach(function (row, rowIndex) {
attributeColl = row.getData().getEntity().attributes;
switch (att.getName()) {
case "new_idqualify":
if (att.getText() = "Yes") {
idqualifyyescount = idqualifyyescount + 1;
}
}
});
if ((idqualifyyescount) > 4) {
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
}
而不是
if (att.getText() = "Yes") {
试试这个
if (att.getText() == "Yes") {
单等 =
用于赋值,而双等 ==
用于比较。
您必须初始化 idqualityyescount
以将其声明为整数:
var idqualifyyescount = 0;
你什么时候设置att?试试这个。
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var allRows = null;
var attributeColl = null;
var idqualifyyescount;
var gridContext = formContext.getControl("s_qd");
allRows = gridContext.getGrid().getRows();
allRows.forEach(function (row, rowIndex) {
attributeColl = row.getData().getEntity().attributes;
attributeColl.forEach(function(att) {
switch (att.getName()) {
case "new_idqualify":
if (att.getText() == "Yes") {
idqualifyyescount = idqualifyyescount + 1;
}
}
});
});
if ((idqualifyyescount) > 4) {
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
或者更好。
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var idqualifyyescount = 0;
var gridCtx = formContext.getControl("s_qd");
gridCtx.getGrid().getRows().forEach((row) => {
let att = row.getData().entity.getAttributes().getByName("new_idqualify");
if(att.getText() == "Yes")
idqualifyyescount++;
});
if(idqualifyyescount > 4){
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
}
在我的商机表单中,我添加了一个 "Sales Quota Distribution" 实体可编辑网格。一个Opportunity 可以有多个Sales Quota Distribution 记录。我正在处理一个 JavaScript 事件,该事件计算销售配额分布网格中显示的记录的 "ID & Qualify" 字段中有多少记录 = "Yes"。 "ID & Qualify" 是一个下拉字段,它包含的两个选项是 Yes 和 No。我相信我快完成了,但是代码由于某种原因返回 "null"。任何帮助让它工作的帮助将不胜感激。谢谢!
这是我的代码,无论网格中 "Id & Qualify" 字段中显示了多少 "Yes",它当前都返回 null:
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var allRows = null;
var attributeColl = null;
var idqualifyyescount;
var gridContext = formContext.getControl("s_qd");
allRows = gridContext.getGrid().getRows();
allRows.forEach(function (row, rowIndex) {
attributeColl = row.getData().getEntity().attributes;
switch (att.getName()) {
case "new_idqualify":
if (att.getText() = "Yes") {
idqualifyyescount = idqualifyyescount + 1;
}
}
});
if ((idqualifyyescount) > 4) {
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
}
而不是
if (att.getText() = "Yes") {
试试这个
if (att.getText() == "Yes") {
单等 =
用于赋值,而双等 ==
用于比较。
您必须初始化 idqualityyescount
以将其声明为整数:
var idqualifyyescount = 0;
你什么时候设置att?试试这个。
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var allRows = null;
var attributeColl = null;
var idqualifyyescount;
var gridContext = formContext.getControl("s_qd");
allRows = gridContext.getGrid().getRows();
allRows.forEach(function (row, rowIndex) {
attributeColl = row.getData().getEntity().attributes;
attributeColl.forEach(function(att) {
switch (att.getName()) {
case "new_idqualify":
if (att.getText() == "Yes") {
idqualifyyescount = idqualifyyescount + 1;
}
}
});
});
if ((idqualifyyescount) > 4) {
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
或者更好。
function YesCount(executionContext) {
var formContext = executionContext.getFormContext();
var idqualifyyescount = 0;
var gridCtx = formContext.getControl("s_qd");
gridCtx.getGrid().getRows().forEach((row) => {
let att = row.getData().entity.getAttributes().getByName("new_idqualify");
if(att.getText() == "Yes")
idqualifyyescount++;
});
if(idqualifyyescount > 4){
Xrm.Page.ui.setFormNotification("WARNING: There are more than 4 Yes's in Sales Quota Distribution grid.", "WARNING");
}
}