In this article , I am going to explain how to filter lookup using javascript.
CRM provide inbuilt functionality for filter lookup from other lookup but in this article i am filtering lookup from picklist value
// 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);
}
Navish, I like your blogs but they are not very clear .. can you please add what is the purpose behind using this code, for e.g any business scenario and also the step by step approach (Adding Screen shots will be great help to new CRM developers) .. you seems to have a great talent .. i read all your blogs but i find difficulty and question myself why Navish has blogged, what is the reason behind it. Please do the needful. It would be great to learn from such a experience developer.
Reply DeleteHi Puneet, I know my code only understandable to the experienced CRM Developer. I will try to make articles more user friendly (with screen shots and example)
Delete