
I recently had a request where I needed a button to perform some validations and then launch a SalesLogix report using the client side report library in the SalesLogix web client. I thought I would show you how I did it.
My solution was done to a quickform so I was limited in what actions I had available. What I ended up doing was loading hidden fields and then reading those fields client side. I placed all of my code on the Page Load event like so:
Sage.Entity.Interfaces.IAccount account = this.BindingSource.Current as Sage.Entity.Interfaces.IAccount;
if (account.UserField7 != null)
{
Contract.Value = account.UserField7;
Sage.Entity.Interfaces.IContract contract = Sage.Platform.EntityFactory.GetById<Sage.Entity.Interfaces.IContract>(account.UserField7);
if (contract != null && contract.CContract != null)
{
ContractDate.Value = contract.CContract.TerminationDate.ToString();
}
}string script = “function FXCheckReport() {“;
script += ” var contract = document.getElementById(‘” + Contract.ClientID + “‘);”;
script += ” if (contract!=null) var cid = contract.value;”;
script += ” var contractdate = document.getElementById(‘” + ContractDate.ClientID + “‘);”;
script += ” if(contractdate!=null) var cdate = contractdate.value;”;
script += ” var currentdate = ‘” + System.DateTime.Now + “‘;”;
script += ” if (!cid || cid==”) {“;
script += ” confirm(‘No contract specified for this account’); return false; }”;
script += ” else if (!cdate|| new Date(cdate) <= new Date(currentdate)) {“;
script += ” confirm(‘Contract has been terminated for this account’); return false; }”;
script += ” else { ShowReportByName(‘Personal:My Report’); return false;} } “;ScriptManager.RegisterStartupScript(Page, GetType(), “FXCheckReport”, script, true);
The first part of my code retrieves data from the currently bound entity and places them in hidden fields. The second part then constructs a java script function called FXCheckReport. This function examines the hidden fields and then based on the examination then shows various messages or if validations pass, it runs the report I want.
On my button client click action I then just called my injected function like so:
return FXCheckReport();
This is a pretty simple solution really. You could even remove the hidden fields and just inject your values right into the java script code that is constructed, if you wanted to. I thought this solution shows a little bit more though since you can see how to retrieve server bound controls client side.
Subscribe To Our Newsletter
Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!
You have Successfully Subscribed!