Login / Register  search  syndication  about

          Kris Halsrud's Blog

Kris Halsrud on development and Integration with CRM and Development

Changing the Default Operator in the SalesLogix Lookup Control in the SalesLogix 7.5.4 Web Client

In the SalesLogix web client, the Lookup Control is a custom composite control that is contained in a compiled Sage assembly.  When you perform a lookup with this control, the operators available are based upon the type of field being looked up for.  For string fields, the default operator is “Contains”

SalesLogix Lookup Control

 

The reason the “Contains” operator is the default is because it is the first option on the drop down list.  Luckily the drop down list is not constructed from within the Sage Controls assembly.  Rather a client library is used to add the operators using Ext-JS.

The code for this client library is in the VFS under Portal Manager…Sage SalesLogix…Support Files…JScript…Sage-Controls.  There are two files involved:

  • Sage-Controls-Lookup.JS
  • Sage-Controls.JS

The Sage-Controls is a composite of all of the other script files and is minified.  This is the file that is actually used by the deployed web site.

If we look in the human-readable Sage-Controls-Lookup.js file we can see code around line 80 that looks like:

LookupControl.__operators = {
    "System.String": [
        {name: "LookupControl_Operator_Contains", value: "ct"},
        {name: "LookupControl_Operator_StartsWith", value: "sw"},       
        {name: "LookupControl_Operator_Equal", value: "eq"},
        {name: "LookupControl_Operator_NotEqual", value: "ne"},
        {name: "LookupControl_Operator_GT", value: "gt"},
        {name: "LookupControl_Operator_GE", value: "ge"},
        {name: "LookupControl_Operator_LT", value: "lt"},
        {name: "LookupControl_Operator_LE", value: "le"}       
    ],

This code is what is constructing the list of Operators available in the Lookup for a string field lookup.

If we wanted to change the lookup behavior so that Starts With is the default option, we simply need to make that operator the first one added to the list.

LookupControl.__operators = {
    "System.String": [
        {name: "LookupControl_Operator_StartsWith", value: "sw"},
        {name: "LookupControl_Operator_Contains", value: "ct"},               
        {name: "LookupControl_Operator_Equal", value: "eq"},
        {name: "LookupControl_Operator_NotEqual", value: "ne"},
        {name: "LookupControl_Operator_GT", value: "gt"},
        {name: "LookupControl_Operator_GE", value: "ge"},
        {name: "LookupControl_Operator_LT", value: "lt"},
        {name: "LookupControl_Operator_LE", value: "le"}       
    ],

Now to make this change actually take effect, you need to modify the minified sage-controls.js file.  The easiest way to do this is to search for “LookupControl_Operator_StartsWith”.  It should be around line 719.  Since it is minified there are no line breaks or spacing but if you make the equivalent change on this line, when you save these files and deploy, your lookup should then default to the operator at the top of your list.

 

What's This?
  
Bookmark and Share

About Kris Halsrud

   Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.


Related Content
   Adding Filters to the Lookup Control at Runtime in the Infor CRM (formerly Saleslogix) Web Client
To add a new Lookup Pre-filter you can add code such as this on a quick form:LookupPreFilter preFilter =
Posted on Dec 22, 2014 by Kris Halsrud to Kris Halsrud's Blog
 
   Easily Showing and Hiding Tabs at Runtime in Infor CRM (Saleslogix)
Showing and hiding tabs in the Infor CRM (Saleslogix) client should be an easy thing. It should be someth
Posted on Dec 16, 2014 by Ryan Farley to Ryan Farley's Blog
 
   Problem setting SLXTextbox enabled property / Setting unexposed base control properties for a custom control
I recently had an issue with a Quickform where I was attempting to set the Enabled property of a TextBox
Posted on Dec 05, 2014 by Jason Buss to Jason Buss' Blog
 
   Checking Infor CRM (Saleslogix) Picklists for valid data
This week I received a question about a particular picklist. One of the picklist items, when chosen, wou
Posted on Dec 05, 2014 by Dale Richter to Infor CRM Questions & Answers
 
   Avoiding the Dirty Data Message When Programatically Redirecting to a Record in Infor CRM (Saleslogix)
In my last post I wrote about using the OnClientClick property of a control (or button) to run JavaScript
Posted on Dec 02, 2014 by Ryan Farley to Ryan Farley's Blog
 
Comments

 

Kris Halsrud's Blog said:

The SalesLogix group area has a lookup control, that while it looks similar to the standard Lookup Control is actually a separate control with different code base. This post describes how you can change the default conditional operator of this control

May 31, 2012 2:14 PM
 

PieInTheSky said:

If you want to change the Display Name of the different operators, you can do this only with editing the "Sage.SalesLogix.Web.Controls.dll" in the directory "\Model\Portal\SlxClient\SupportFiles\Bin\".

Is this correct? Or is there another option to achieve this - maybe with editing the *.js-file mentioned in this article?

February 5, 2013 11:11 AM
 

Kris Halsrud said:

You cannot modify the dll so your only hope is to modify the js file.  You might be able to do something like this:

LookupControl.__operators = {

   "System.String": [

       {name: "LookupControl_Operator_StartsWith", value: "sw"},

       {name: "LookupControl_Operator_Contains", value: "ct"},              

       {name: "Apples", value: "eq"},

       {name: "Banana", value: "ne"},

       {name: "Chocolate", value: "gt"},

       {name: "Turnip", value: "ge"},

       {name: "Cabbage", value: "lt"},

       {name: "Olive", value: "le"}      

   ],

I dont know if that would work but is worth a try.

February 5, 2013 11:28 AM

Leave a Comment

(required)  
(optional)
(required)  
Add
All contents Copyright © 2014 Customer FX Corporation
Customer FX Corporation
2324 University Avenue West, Suite 115
Saint Paul, Minnesota 55114
Tel: 800.728.5783

  Follow @CustomerFX on twitter
Follow the best news, tips, and articles
  Subscribe to Customer FX on youtube
Watch SalesLogix tutorial videos from Customer FX
Login / Register