For Zoho services only


I'm currently part of a wider delivery team at Ascent Business Solutions, recognised as a leading Zoho Premium Solutions Partner in the United Kingdom.

Ascent Business Solutions support organisations with everything from targeted technical fixes through to full Zoho CRM implementations and long-term platform adoption. Working as a team rather than a one-person consultancy allows projects to move forward consistently, with access to the right skills at each stage.

The team I manage specialises in API integrations between Zoho and third-party finance and commerce platforms such as Xero, Shopify, WooCommerce, and eBay. Much of our work involves solving integration challenges that fall outside standard documentation, supporting new ideas, new sectors, and evolving business models.

Success is measured through practical outcomes and return on investment, ranging from scaling small operations into high-turnover businesses to delivering rapid gains through online payments, automation, and streamlined digital workflows.

If you are looking for structured Zoho expertise backed by an established consultancy, you can contact Ascent Business Solutions on 0121 392 8140 (UK), email info@ascentbusiness.co.uk, or visit https://www.ascentbusiness.co.uk.
Zoho Creator: Embed Forms/Reports on a Page

Zoho Creator: Embed Forms/Reports on a Page

What?
Well known by most but this serves as a quick reminder to myself and anyone else on how to embed a form or a report into a Zoho Creator page.

Why?
Cos

How?
The below is a template snippet for a Zoho Creator page. We set the parameters of the form/report. Then this shows how to embed using a DIV layer which allows for CSS styling. The last part shows how to embed using an IFRAME tag which isn't great for CSS styling as you can't do cross-dom acoss child iframes; but it does let you use OpenURL(v_Url, "iframe", "iframe_name") which is good if you have multiple iframes on a page and you only want part of the page to display different content dynamically or on click of a button:

copyraw
<%{
	l_FormParams = List();
	l_FormParams.add("zc_Header=false");
	l_FormParams.add("zc_Footer=false");
	v_FormParams = l_FormParams.toString("&");
	//
	l_ReportParams = List();
	l_ReportParams.add("zc_Header=false");
	l_ReportParams.add("zc_Footer=false");
	v_ReportParams = l_ReportParams.toString("&");	
%>
// embeds using DIV: allows for CSS styling
// embed a form
<div class='my-form' elName='zc-component' formLinkName='Schedule_Week' params='<%=v_FormParams%>'>loading ...</div>
// embed a report
<div class='my-report' elName='zc-component' viewLinkName='Schedules' params='<%=v_ReportParams%>'>loading ...</div>
//
// embed using IFRAME: allows for content refreshing with openUrl to target iframes on a page
// embed a form
<iframe name='my-form' height='500px' width='100%' frameborder='0' allowTransparency='true' scrolling='auto' src='https://<base_url>/<account_owner_name>/<app_link_name>/form-embed/<form_link_name>'></iframe>
//
// embed a report
<iframe name='my-report' height='500px' width='100%' frameborder='0' allowTransparency='true' scrolling='auto' src='https://<base_url>/<account_owner_name>/<app_link_name>/report-embed/<report_link_name>'></iframe>
<%}%>
//
//
// embed a published form, the parameter is "privateLink" and for me this is the publish key of the report, not the form (though I publish both form and report)
p_PublishKey = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789";
l_FormParams.add("privateLink=" + p_PublishKey);
v_FormParams = l_FormParams.toString("&");
%>
<div class='my-form' elName='zc-component' formLinkName='Schedule_Week' params='<%=v_FormParams%>'>loading ...</div>
<% ...

//
// embed an iframe with published key
<iframe 
	name='my-frame' 
	height='500px' 
	width='100%' 
	frameborder='0' 
	allowTransparency='true' 
	scrolling='no' 
	src='https://creatorapp.zohopublic.com/app_owner/app_name/form-embed/my_form/my_PublishKey?recLinkID=my_Record_ID&viewLinkName=my_Record_Report'
></iframe>
  1.  <%{ 
  2.      l_FormParams = List()
  3.      l_FormParams.add("zc_Header=false")
  4.      l_FormParams.add("zc_Footer=false")
  5.      v_FormParams = l_FormParams.toString("&")
  6.      // 
  7.      l_ReportParams = List()
  8.      l_ReportParams.add("zc_Header=false")
  9.      l_ReportParams.add("zc_Footer=false")
  10.      v_ReportParams = l_ReportParams.toString("&")
  11.  %> 
  12.  // embeds using DIV: allows for CSS styling 
  13.  // embed a form 
  14.  <div class='my-form' elName='zc-component' formLinkName='Schedule_Week' params='<%=v_FormParams%>'>loading ...</div> 
  15.  // embed a report 
  16.  <div class='my-report' elName='zc-component' viewLinkName='Schedules' params='<%=v_ReportParams%>'>loading ...</div> 
  17.  // 
  18.  // embed using IFRAME: allows for content refreshing with openUrl to target iframes on a page 
  19.  // embed a form 
  20.  <iframe name='my-form' height='500px' width='100%' frameborder='0' allowTransparency='true' scrolling='auto' src='https://<base_url>/<account_owner_name>/<app_link_name>/form-embed/<form_link_name>'></iframe> 
  21.  // 
  22.  // embed a report 
  23.  <iframe name='my-report' height='500px' width='100%' frameborder='0' allowTransparency='true' scrolling='auto' src='https://<base_url>/<account_owner_name>/<app_link_name>/report-embed/<report_link_name>'></iframe> 
  24.  <%}%> 
  25.  // 
  26.  // 
  27.  // embed a published form, the parameter is "privateLink" and for me this is the publish key of the report, not the form (though I publish both form and report) 
  28.  p_PublishKey = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789"
  29.  l_FormParams.add("privateLink=" + p_PublishKey)
  30.  v_FormParams = l_FormParams.toString("&")
  31.  %> 
  32.  <div class='my-form' elName='zc-component' formLinkName='Schedule_Week' params='<%=v_FormParams%>'>loading ...</div> 
  33.  <% ... 
  34.   
  35.  // 
  36.  // embed an iframe with published key 
  37.  <iframe 
  38.      name='my-frame' 
  39.      height='500px' 
  40.      width='100%' 
  41.      frameborder='0' 
  42.      allowTransparency='true' 
  43.      scrolling='no' 
  44.      src='https://creatorapp.zohopublic.com/app_owner/app_name/form-embed/my_form/my_PublishKey?recLinkID=my_Record_ID&viewLinkName=my_Record_Report' 
  45.  ></iframe> 

Multiple params with an OR?
Let's say I want the report filtered where ID can be 1 of 2 values, then to do this, our page parameters can remain a text value with the IDs and comma delimited. The page code would then be something like:
copyraw
<%{
	//
	l_ReportParams = List();
	l_ReportParams.add("zc_Header=false");
	l_ReportParams.add("zc_Footer=false");
	//
	// my parameter as a comma delimited string converting to a list (not really necessary) - double-quotes if these are not numbers.
	// this is a string datatype but if passing parameters to this page, you may need to URL encode the values
	l_DocIDs = ifnull(input.p_DocIDs, List()).toList();
	//
	// now add the square brackets on either side
	l_ReportParams.add("ID=[" + l_DocIDs + "]");
	v_ReportParams = l_ReportParams.toString("&");
	//
%>
	<div class='my-report' elName='zc-component' viewLinkName='All_Documents' params='<%=v_ReportParams%>'>loading ...</div>
<%}%>
  1.  <%{ 
  2.      // 
  3.      l_ReportParams = List()
  4.      l_ReportParams.add("zc_Header=false")
  5.      l_ReportParams.add("zc_Footer=false")
  6.      // 
  7.      // my parameter as a comma delimited string converting to a list (not really necessary) - double-quotes if these are not numbers. 
  8.      // this is a string datatype but if passing parameters to this page, you may need to URL encode the values 
  9.      l_DocIDs = ifnull(input.p_DocIDs, List()).toList()
  10.      // 
  11.      // now add the square brackets on either side 
  12.      l_ReportParams.add("ID=[" + l_DocIDs + "]")
  13.      v_ReportParams = l_ReportParams.toString("&")
  14.      // 
  15.  %> 
  16.      <div class='my-report' elName='zc-component' viewLinkName='All_Documents' params='<%=v_ReportParams%>'>loading ...</div> 
  17.  <%}%> 

Source(s)
Category: Zoho Creator :: Article: 346

Credit where Credit is Due:


Feel free to copy, redistribute and share this information. All that we ask is that you attribute credit and possibly even a link back to this website as it really helps in our search engine rankings.

Disclaimer: Please note that the information provided on this website is intended for informational purposes only and does not represent a warranty. The opinions expressed are those of the author only. We recommend testing any solutions in a development environment before implementing them in production. The articles are based on our good faith efforts and were current at the time of writing, reflecting our practical experience in a commercial setting.

Thank you for visiting and, as always, we hope this website was of some use to you!

Kind Regards,

Joel Lipman
www.joellipman.com