我正在使用https://github.com/delegateas/XrmDefinitelyTyped。Program Year
我为具有名为, Start Date
,的字段的表单创建了以下脚本End Date
。我希望这是通用的,这样如果在表单属性中我onChange
为 ProgramYear 设置了一个事件,我可以将其指向,TI.Forms.EventHandlers.onProgramYearChange
然后它将执行脚本。
但是,当我传递字段的执行上下文时,据我所知,我无法访问其他属性的执行上下文,而且我看不到任何获取 and 的其他属性的Start Date
方法End Date
。即使我强制form
转换any
,也没有getAttribute
定义函数。解决这个问题的正确方法是什么?
namespace TI.Forms.EventHandlers {
export function onProgramYearChange(executionContext: Xrm.ExecutionContext<any>) {
var form = executionContext.getFormContext();
form.getAttribute("ti_programyear").addOnChange((context) => {
const updatedProgramYear = context.getEventSource().getValue()[0].name;
XrmQuery.retrieveMultiple(x => x.ti_program_years)
.select(x => [x.ti_start_date, x.ti_end_date])
.filter(x => Filter.equals(x.ti_name, updatedProgramYear))
.execute(programYears => {
const startDateField = form.getAttribute("ti_start_date");
const endDateField = form.getAttribute("ti_end_date");
if (!startDateField.getValue() && !endDateField.getValue()) {
startDateField.setValue(programYears[0].ti_start_date);
endDateField.setValue(programYears[0].ti_end_date);
}
});
});
}
}
您可以从属性的 executionContext 访问其他属性吗?