Below is a screen shot of a compound screen that populates the fields on the screen from data retrieved from a view.
This page has been built using an ASP page.
It has used the method CRM.FindRecord().
Syntax is
CRM.FindRecord('Entity,vViewName',ArgString);
This is a good way of quickly displaying information from the view. But it can not be used for updating and inserting. In the code below a check is made only to use the fields from the person table (derived from the view) in View mode.
<!-- #include file ="sagecrm.js"-->
<%
var intRecordId = CRM.GetContextInfo("company","comp_companyid");
var myRecord = CRM.FindRecord('Company,vEntityCompany','comp_companyid='+intRecordId);
var CompanyBlock = CRM.GetBlock("companyboxlong");
CompanyBlock.Title = CRM.GetTrans("tabnames","company");
CompanyBlock.ArgObj = myRecord;
var PersonBlock = CRM.GetBlock("personboxshort");
PersonBlock.Title = CRM.GetTrans("tabnames","contact");
PersonBlock.ArgObj = myRecord;
var myBlockContainer = CRM.GetBlock("Container");
with (myBlockContainer)
{
AddBlock(CompanyBlock);
//only display person data when in View mode
if (CRM.Mode!=Edit)
{
AddBlock(PersonBlock);
}
}
CRM.AddContent(myBlockContainer.Execute());
Response.Write(CRM.GetPage());
%>