The screen shot above of a Company Summary screen shows a graph displaying the count of opportunities and cases belonging to the company in the TopContent area.
This has been created using the following code added to the Custom Content box of the CompanyBoxLong…
In the image below you can see that I have added some additional HTML to the TopContent of the Person Summary screen.
The following code can be added to the custom content box of a system screen like the PersonBoxLong or CompanyBoxLong.
[code language…
The image above shows that the value of the oppo_certainty field has been rendered as a graphic widget. The certainty is shown as a value on a linear gauge using the features of the FusionChart libraries that can be used within Sage CRM.
I created the…
A partner recently asked me ""how can I discourage any fiddling with the code I have written for my customer"". The person who asked me this was anxious about two things. They wanted to make sure that their code didn't break, and they didn't want unauthorized…
In this article I would like to consider 3 examples of adding a custom print button to a system screen.
The button to be added will open a new version of the current screen that has minimal formatting which will allow the relevant information on the…
The previous article " Calling Extensions (ASP pages and .NET assemblies) from Buttons added using the Client Side API " discussed how new buttons can be added to system screens.
This article will look at how we can add the button exactly where we need…
The new Client Side API adds a very easy way of adding new buttons.
crm.addButton(imageURL,captionfamily,captioncode,[options])
The new Client Side API allows application extensions to be called. This would typically mean calling either an ASP page…
One of the common requirements that I hear during my conversations with partners and customers who are implementing Sage CRM is that at different points within a workflow or business process the organisation may need to make a user concentrate on only…
Below is a screen shot of an Opportunity Summary page. You can see that as the mouse hovered over the Company Name in the 'For' panel of the screen a tool-tip appeared that displayed the company's Status and Type. This is information that is not normally…
The Client Side API contains methods that make it much easier to select rows, columns and individual cells for manipulation. Properties can be set, new data displayed in tool tips and the style of each cell can be changed.
The documentation contains…
Sage CRM Screens can exist in different 'Modes'. The basic two modes that we have to worry about in Client Side code are View and Edit.
We can use the fact that in Sage CRM HTML tags are named and have an ID with same name as the physical field in the…
Consider the following business rule.
"A customer has a requirement that the Case Tab in the company screen should only display when the Company has an agreed service level agreement and the user accessing the screen is in the 'Customer Service' team…
The GoRecent function is held in Sage CRM in an external file which is included in every page.
Sage CRM Code Example
function doCode()
{
SageCRM.webMenu.GoRecent('C');
}
In a previous article " Script Libraries: Reusing Client Side Code Between Screens " I discussed how Sage CRM will automatically add any JavaScript file that you add to the custom folder into the header of every page produced by the system.
It is…
It has always been possible in Sage CRM to share client side code between screens. In Sage CRM we could do this by using a shared external script library.
For example if we wanted a set of business rules to be available in both the PersonBoxLong screen…
Sage CRM has a Client Side method crm.ready() which is used to execute scripts once the page is loaded.
We do not have to worry whether the browser is Chrome or Internet Explorer. The crm.ready() method will take the browser version into account and…
What I find is so useful about the Chrome developer console is that it lets you edit JavaScript code on the fly and so is a very good way of starting to evolve a business rule that needs to be written in the Custom Content field or even an onChange script…
This is a simplified and specialised set of code libraries that will allow easy screen customizations.
The API is based on the JQuery syntax although I must stress that knowledge of JQuery is not needed in order to use the API.
The API is included…
A Customer had a need as part of a Case Workflow to generate a Self Service username and password for their contacts. They were using an ASP page to do this and asked whether I had any code to generate a password for Self Service.
This is a simple little…
I see most of us in the developer community wanting to develop Sage CRM Client Side customizations via Javascript, but we when we use Visual Studio may not have great flexibility in writing client side code, This studio i.e. Web Storm helps you write…
You can add a button
In a custom ASP page
In a the code of a .NET assembly
In a an existing system screen
Buttons in an ASP Page
If this is in an ASP page then the code for a simple button to call an external ASP page looks like
var strCallASPButton…
In every screen (entrygroup) where you can add javascript (
And other articles discuss how the CurrentUser object could be used to extend the functionality further by making reference to the current users team or checking whether the user has info manager…
Note: This type of customization has become easier in Sage CRM v7.2 using the new Client Side API).
The fields in screens are output with clear 'IDs' that allow the control of the field caption and data to be very easy.
The HTML that makes up the…
I thought I had written about this trick before but it appears not!
A customer needed a technique to allow a chart to be displayed at the top of the company screen. This is a bit like the PipeLineGraphic of the OpportunityList or CaseList system screens…
If you are developing a server-side script such as a Create Script, Validate Script or Table Level Script, it is often useful to write debugging information to a log.
I'd like to share with you a very simple function that you can use to write to the…