//Filter lookup values using javascript and fetchXml
// call function on picklist onchange and form onload event
function filterLookup() {
//get defaul view id
var defaultViewId = Xrm.Page.getControl("pms_timesheetperiod").getDefaultView();
var fiscalYear = Xrm.Page.getAttribute("pms_fiscalyear").getValue();
if (fiscalYear != null) {
// use randomly generated GUID Id for our new view
var viewId = "{1DFB2B35-B07C-44D1-868D-258DEEAB88E2}";
var entityName = "pms_timesheetperiod";
// give the custom view a name
var viewDisplayName = "Active time sheet periods for " + fiscalYear + "";
// find all contacts where [Parent Customer] = [Account indicated by AccountId]
// AND where [Statecode] = Active
var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
"<entity name='pms_timesheetperiod'>" +
"<attribute name='pms_fiscalyear' />" +
"<attribute name='pms_name' />" +
"<filter type='and'>" +
"<condition attribute='pms_fiscalyear' operator='eq' value='" + fiscalYear + "' />" +
"</filter>" +
"</entity>" +
"</fetch>";
// build Grid Layout
var layoutXml = "<grid name='resultset' " +
"object='1' " +
"jump='pms_timesheetperiodid' " +
"select='1' " +
"icon='1' " +
"preview='1'>" +
"<row name='result' " +
"id='pms_timesheetperiodid'>" +
"<cell name='pms_fiscalyear' " +
"width='200' />" +
"<cell name='pms_name' " +
"width='250' />" +
"</row>" +
"</grid>";
// add the Custom View to the indicated [lookupFieldName] Control
Xrm.Page.getControl("pms_timesheetperiod").addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true);
}
else {
// set default view id
Xrm.Page.getControl("pms_timesheetperiod").setDefaultView(defaultViewId);
}
No comments:
Post a Comment