<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3195555066670047212</id><updated>2011-09-21T06:27:16.303-07:00</updated><category term='standard layout'/><category term='visuaforce'/><category term='formula field'/><category term='force.com ide'/><category term='visualforce bar'/><category term='translation workbench'/><category term='url parameters'/><category term='reports'/><category term='javascript'/><category term='business hour'/><category term='salesforce'/><title type='text'>Swaleh's Salesforce Blog.. Initialized!!! Force.com, Apex, Visualforce, Cloud Computing..</title><subtitle type='html'>Sharing a few things that I learned in Force.com development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-5962828823772410556</id><published>2011-09-02T09:11:00.000-07:00</published><updated>2011-09-04T11:38:53.582-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='url parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='visuaforce'/><category scheme='http://www.blogger.com/atom/ns#' term='reports'/><title type='text'>Few "Salesforce Reports" tips and tricks</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Again, it's been long time since my last post. But, better late than never. Isn't it? :)&lt;br /&gt;&lt;br /&gt;Lets discuss about some tips and tricks for salesforce reports.&lt;br /&gt;&lt;br /&gt;1. First of all, if we want to access a list of all the&amp;nbsp; reports programatically, you can get it in xml format by opening following URL:&lt;br /&gt;&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/servlet/servlet.ReportList"&lt;/span&gt;. Needless to say, you have to be logged into your salesforce instance.&lt;br /&gt;&lt;br /&gt;2. Next, let us say we want to show a particular report in a visualforce page on a link/button click. Simply include an iFrame in the page with src=&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/&lt;/span&gt;&lt;span style="color: lime;"&gt;00Ox000000xxxxx&lt;/span&gt;&lt;span style="color: lime;"&gt;"&lt;/span&gt;. &lt;br /&gt;This was simple one. Right? :)&lt;br /&gt;&lt;br /&gt;3. But, the above page will have one problem, it will show the headers in the iFrame which looks kind of odd to have two headers (list of tabs visible).&lt;br /&gt;So, how to remove this. Simple, just modify the URL by putting &lt;span style="color: lime;"&gt;"?isdtp=mn"&lt;/span&gt; in the end. Which makes the URL look like this:&lt;br /&gt;&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/00Ox000000xxxxx?isdtp=mn"&lt;/span&gt;. And whooshh. The header is gone.&lt;br /&gt;&lt;br /&gt;4. Now, let us assume you need to give a direct download link to a report in csv/xls format. The url for the link would be:&lt;br /&gt;&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/00Ox0000000xxxx?export=1&amp;amp;enc=UTF-8&amp;amp;xf=csv"&lt;/span&gt; or &lt;span style="color: lime;"&gt;"https://instance.salesforce.com/00Ox0000000xxxx?export=1&amp;amp;enc=UTF-8&amp;amp;xf=xls"&lt;/span&gt;.&lt;br /&gt;This is done by setting the parameters export, enc (encoding) and xf (the format). One thing is quite interesting here, the "xls" format report is not "a native excel file".&lt;br /&gt;They just format it in this way and put an ".xls" extension, so that by default it opens with MS Excel. However, if you try to open this file in some mobile application which supports excel files, it wont open properly as it is not actually an excel file.&lt;br /&gt;&lt;br /&gt;5. Finally, this one will look an old one, but still useful. &lt;br /&gt;Suppose we want to give some filter criteria for a report at run time (e.g. there is report link visible to all but the filter criteria for country depends on user's country).&lt;br /&gt;For this, create a report; create the filter but don't but any values in the filter. Keep them empty.Now, build a URL in the following format:&lt;br /&gt;&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/00Ox0000000xxxx?pv0=India&amp;amp;pv1=Active"&lt;/span&gt; (assuming filter 1 is for country and 2 is for some status field).&lt;br /&gt;The values "India" and "Active" can be dynamically generated in a controller class.&lt;br /&gt;If you have more filters, you can continue to pv2, pv3 and so on.&lt;br /&gt;&lt;br /&gt;There are some more parameters that you pass in the URL to do a thing or two. For example to delete a report the URL would be something like this:&lt;br /&gt;&lt;span style="color: lime;"&gt;"https://instance.salesforce.com/00Ox0000000xxxx?delrep"&lt;/span&gt;. Want to explore more thing? Open a report, view HTML source and find out the actions of the buttons/links on the report page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Don't forget to put Id of your report instead of the ones given in the examples :).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please note that the salesforce may change any of the above parameters without notice (may be not so soon though) bacause they don't provide standard API access to these thing and not even standard documentation.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;These tricks are for in situations when you are asked "just do it" and you have no standard documented way of doing it.&lt;br /&gt;&lt;br /&gt;There are very little documentation for point 5. You can find one of them &lt;a href="https://na12.salesforce.com/help/doc/en/salesforce_web_integration_links.pdf"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;You can find some more references from "Salesforce Heretic blog (&lt;span style="color: magenta;"&gt;http://sfdc-heretic.warped-minds.com/2006/04/10/progmatic-access-to-salesforcecom-reports/&lt;/span&gt;)" and developer force discussion boards.&lt;br /&gt;&lt;br /&gt;Let me know if any of the above tricks don't work for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers. Happy Clouding :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-5962828823772410556?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/5962828823772410556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2011/09/some-report-tips-and-tricks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/5962828823772410556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/5962828823772410556'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2011/09/some-report-tips-and-tricks.html' title='Few &quot;Salesforce Reports&quot; tips and tricks'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-5344059812174918661</id><published>2011-03-31T09:55:00.000-07:00</published><updated>2011-03-31T09:58:00.284-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='visuaforce'/><title type='text'>Clock in Visualforce page</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It has been a long time since my dormant mode started, finally I am back.&lt;br /&gt;&lt;br /&gt;Well, this may not be a very peculiar requirement that you get from your client but you may find it interesting to show a countdown timer or a stop watch or even a clock on a visualforce page.&lt;br /&gt;&lt;br /&gt;I will discuss, how to show a ticking clock in a visualforce page. The countdown timer or stop watch can be derived from this.&lt;br /&gt;&lt;br /&gt;I have taken reference from &lt;a href="http://www.w3schools.com/"&gt;W3Schools&lt;/a&gt; for the javascript. Infact, I was searching for some javascript function which does something on some specified time interval and I found two very useful javascript functions, "setInterval" and "clearInterval".&lt;br /&gt;&lt;br /&gt;The visualforce page tag is just a container for the html and javascript.&lt;br /&gt;&lt;div style="color: lime;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: lime;"&gt;&amp;lt;apex:page id="thePage" showHeader="false"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;center&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;div id="clock"&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/center&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;br/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;div align="right"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;button onclick="int=window.clearInterval(int);" id="stop"&amp;gt;Stop Clock&amp;lt;/button&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;var int = self.setInterval("clock()",1000);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;function clock()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var d=new Date();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var t=d.toLocaleTimeString();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("clock").innerHTML = "&amp;lt;B&amp;gt;" + t + "&amp;lt;/B&amp;gt;";&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;&amp;lt;/apex:page&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can play around with "setInterval" and "clearInterval" functions to create a stop watch or countdown timer code.&lt;br /&gt;&lt;br /&gt;Hope this was interesting and useful.&lt;br /&gt;&lt;br /&gt;Happy Clouding.. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-5344059812174918661?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/5344059812174918661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2011/03/clock-in-visualforce-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/5344059812174918661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/5344059812174918661'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2011/03/clock-in-visualforce-page.html' title='Clock in Visualforce page'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-7675865322734569002</id><published>2010-12-24T13:04:00.000-08:00</published><updated>2011-01-25T09:56:03.755-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='visualforce bar'/><category scheme='http://www.blogger.com/atom/ns#' term='visuaforce'/><title type='text'>Horizontal Bar graph in visualforce page</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It came to me multiple times to create horizontal bar graph kind of representation of some status based on some field values; both on standard layout and on a visualforce page.&lt;br /&gt;&lt;br /&gt;Let us take an example, you want to show a bar graph to user with red and green color with varying width of red and green color depending upon a percent or number type &lt;br /&gt;field (say Percent_Complete__c). If the value of the field is 40,you want show a bar with 40% green and remaining 60% as red and so on.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_64-Ge9HdRzk/TRWW9lk2MBI/AAAAAAAAACY/iKB3iqGpJcA/s1600/bar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="41" src="http://1.bp.blogspot.com/_64-Ge9HdRzk/TRWW9lk2MBI/AAAAAAAAACY/iKB3iqGpJcA/s320/bar.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You could create a formula field of type text then using an IMAGE function. The formula could be -&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;(IMAGE("/img/samples/color_green.gif", "green", 15, Percent_Complete__c*2) &amp;amp; IMAGE("/img/samples/color_red.gif", "red", 15, 200 - Percent_Complete__c*2))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But here is a catch in using a formula field, waht if the caculation is based upon data from multiple objects and fields. This could be very painful or even sometime not possible&lt;br /&gt;to do this using formula field.&lt;br /&gt;&lt;br /&gt;So what options do we have left, VISUALFORCE page.&lt;br /&gt;&lt;br /&gt;Again, to do this in visualforce, there many be many ways. Some people may use some javascript library like jQuery or some other library. But there is an easier way of doing this. &lt;br /&gt;This solution WE (I along with a colleague of mine, Chetan - AS) came across while working on a similar requirement. We used a simple html table with one row amd two table data&lt;br /&gt;(columns) with background color of green and red. The width of the columns would be varying based upon your requirements.&lt;br /&gt;&lt;br /&gt;Here is a simple code snippet assuming a single field would be basis to calculate the width of red and green colored columns.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: lime; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: lime; font-size: small;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;HorizontalBar.page&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;apex:page controller="BarController"&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &amp;lt;table&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td style="background-color:red" width="{!redPart}"&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td style="background-color:green" width="{!greenPart}"&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/apex:page&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;BarController.cls&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;public class BarController(){&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer redPart{get;set;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer greenPart{get;set;}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BarController(){&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Object__c obj = [SELECT Percent_Complete__c FROM Object__c WHERE XYZ = 'xyz'][0];&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; greenPart = obj.Percent_Complete__c;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; redPart = 100 - greenPart;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: yellow; font-size: x-small;"&gt;&lt;span style="color: #ea9999; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;AND that is it. This page can even be used in inline VF page in standard page layout.&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;br /&gt;&lt;br /&gt;Happy Clouding... :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-7675865322734569002?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/7675865322734569002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/12/horizontal-bar-graph-in-visualforce.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/7675865322734569002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/7675865322734569002'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/12/horizontal-bar-graph-in-visualforce.html' title='Horizontal Bar graph in visualforce page'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_64-Ge9HdRzk/TRWW9lk2MBI/AAAAAAAAACY/iKB3iqGpJcA/s72-c/bar.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-8583015424507520701</id><published>2010-08-16T12:19:00.000-07:00</published><updated>2010-12-26T01:02:58.604-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='formula field'/><title type='text'>Using IMAGE function in formula fields</title><content type='html'>Things that are "visible" are more easy to understand than things that are meant to "read".&lt;br /&gt;&lt;br /&gt;In salesforce standard pages, IMAGE function is the answer to above line. You can show images to the user instead of just having TEXT. And your images can be very dynamic, the way you want them to be. This is the very core objective of salesforce IMAGE formula.&lt;br /&gt;&lt;br /&gt;Let us take an example of a very simple IMAGE field. Suppose we want to create an IMAGE field which shows a RED flag when your Lead score is less than 2, yellow when score is between 2 and 4 and green when Lead score is 5.&lt;br /&gt;&lt;br /&gt;Create a formula field by going through Setup --&amp;gt; Customize --&amp;gt;Lead --&amp;gt; Fields --&amp;gt; Create&amp;nbsp; New Custom field and the return data type as TEXT.&lt;br /&gt;Select the field type as formula field. in the formula editor type in the following:&lt;br /&gt;&lt;br /&gt;IMAGE(IF(Lead_Score__c &amp;lt;= 2, "/img/samples/flag_red.gif", IF(AND(Lead_Score__c &amp;gt; 2,Lead_Score__c &amp;lt;= 4), "/img/samples/flag_yellow.gif",IF(Lead_Score__c = 5, "/img/samples/flag_green.gif"))))&lt;br /&gt;&lt;br /&gt;Now you can put this field in your page layout and try changing your Lead Score field (I am assuming you have Lead Score field on your Lead object, else create one) and see the flag changing. The images that you see here are standard icons provided by salesforce. You can get more icons at &lt;a href="http://www.force2b.net/"&gt;mgsmith's&lt;/a&gt; blog post &lt;a href="http://www.force2b.net/index.php/2010/08/salesforce-icons/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One more formula field that I used in one of my project implementation, is below. It just illustrates how you can "concatenate" your image formula field the same way you do it with TEXT.&lt;br /&gt;&lt;br /&gt;IF(OR(NumberofLocations__c=1,NumberofLocations__c=2,NumberofLocations__c=3,NumberofLocations__c=4),IMAGE("/img/samples/color_green.gif", "green", 15, 49),IMAGE("/img/samples/color_red.gif", "red", 15, 49))&lt;br /&gt;&amp;amp; IMAGE("/s.gif", "green", 15, 1)&lt;br /&gt;&amp;amp; IF(OR(NumberofLocations__c=2,NumberofLocations__c=3,NumberofLocations__c=4),IMAGE("/img/samples/color_green.gif", "green", 15, 49),IMAGE("/img/samples/color_red.gif", "red", 15, 49))&lt;br /&gt;&amp;amp; IMAGE("/s.gif", "green", 15, 1)&lt;br /&gt;&amp;amp; IF(OR(NumberofLocations__c=3,NumberofLocations__c=4),IMAGE("/img/samples/color_green.gif", "green", 15, 49),IMAGE("/img/samples/color_red.gif", "red", 15, 49))&lt;br /&gt;&amp;amp; IMAGE("/s.gif", "green", 15, 1)&lt;br /&gt;&amp;amp; IF(OR(NumberofLocations__c=4),IMAGE("/img/samples/color_green.gif", "green", 15, 49),IMAGE("/img/samples/color_red.gif", "red", 15, 49)).&lt;br /&gt;&lt;br /&gt;Here I have taken refrence of a field NumberofLocations__c on say Account object. It displays a series of images concatenated. So this is kind of Progress Bar that you can show to your user.&lt;br /&gt;&lt;br /&gt;Did you note the '&amp;amp;', the numbers 15 and 49, and /s.gif location?&lt;br /&gt;&amp;nbsp;The '&amp;amp;'&amp;nbsp; is used to concatenate two strings or texts. In salesforce image fields are treated as string so you can 'add' them.&lt;br /&gt;The number 15 is the height of your image and 49 is the width or span. &lt;br /&gt;One very good image provided by salesforce is "blank" image i.e. '/s.gif'. So when you do not want to show any image in your condition, simply put the url of image as '/s.gif'. It shows a blank. In case you do not want to show an image and leave the url part as blank, it shows a red cross instead of blank. Which definetely doesn't look good.&lt;br /&gt;&lt;br /&gt;You can find more about image formulas at salesforce documentation &lt;a href="http://www.salesforce.com/community/assets/docs/Sample_Image_Formula_Fields_Customization_Guide.pdf"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Hope this was useful.&lt;br /&gt;&lt;br /&gt;Happy Clouding :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-8583015424507520701?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/8583015424507520701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/08/using-image-function-in-formula-fields.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/8583015424507520701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/8583015424507520701'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/08/using-image-function-in-formula-fields.html' title='Using IMAGE function in formula fields'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-4445238185627327853</id><published>2010-08-05T11:59:00.000-07:00</published><updated>2010-12-26T01:22:21.262-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='visuaforce'/><category scheme='http://www.blogger.com/atom/ns#' term='standard layout'/><title type='text'>Creating Visualforce page code against your standard page layout using AJAX toolkit</title><content type='html'>I was wondering if we somehow, could automate this and I came across a &lt;a href="http://blog.jeffdouglas.com/2009/02/09/generate-a-visualforce-page-from-an-existing-page-layout/"&gt;post &lt;/a&gt;by &lt;a href="http://blog.jeffdouglas.com/"&gt;Jeff Douglas&lt;/a&gt;. This was simply amazing. I got the base. he had done it using web service API in .NET and this was somewhat disappointing because I never worked on it. I decided to run it, got environment setup using some tutorials on .NET and the result.. wow..&lt;br /&gt;&lt;br /&gt;My next step was to simplify it without using the WSDL and all that stuff. But this is not possible in Apex (please correct me, if I am wrong), so I had to look for an alternate way. My search ended up with &lt;b&gt;AJAX Toolkit&lt;/b&gt;. And I learned AJAX for the first time then only. (Credit goes to Jeff, he made me learn two new technologies). I must tell you this is simply powerfullll. I used it in a visualforce page along with a small controller class (I had to use the class, its a different story). Later on I found that it is possible even without using the class. Here is how it looks like.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_64-Ge9HdRzk/TFsErBAuXCI/AAAAAAAAAB8/85bco69YW4s/s1600/1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="75" src="http://4.bp.blogspot.com/_64-Ge9HdRzk/TFsErBAuXCI/AAAAAAAAAB8/85bco69YW4s/s400/1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Input Screen&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_64-Ge9HdRzk/TFsFxGvtkfI/AAAAAAAAACE/ZEFTYvszX18/s1600/2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="308" src="http://3.bp.blogspot.com/_64-Ge9HdRzk/TFsFxGvtkfI/AAAAAAAAACE/ZEFTYvszX18/s640/2.JPG" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;And here is the generated visualforce code&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The logic is almost the same. You can even see variable names not very different. Below is the code for all this. (Please excuse me, code with no comments :)).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Page Code&lt;/b&gt;&lt;br /&gt;&lt;div style="color: lime;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: lime; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt;&amp;lt;apex:page controller="OutputController"&amp;gt;&lt;br /&gt;&amp;lt;apex:form &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;var __sfdcSessionId = '{!GETSESSIONID()}';&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script src="../../soap/ajax/19.0/connection.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//var output='';&lt;br /&gt;function setupPage() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var obj = document.getElementById("obj");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var opt = document.getElementById("opt");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rct = document.getElementById("rct");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(rct.value != '' &amp;amp;&amp;amp; rct.value != null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = sforce.connection.describeLayout(obj.value, new Array(rct.value));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = sforce.connection.describeLayout(obj.value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(result);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert('please note that you have not provided record type id. if the object has more than one record type and different page layout assignments, you will get the code with all the page layouts');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //call methods edit or details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(opt.value == 'Edit')editLayoutResults(result, obj);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else detailLayoutResults(result, obj);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(error){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var er = new String(error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(er.indexOf('INVALID_TYPE') != -1)alert('please check object api name');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("{!$Component.hide}").value = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//edit*****************************************layout&lt;br /&gt;function editLayoutResults(result, obj) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var layouts = result.getArray("layouts");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'page standardController=' + '"' + obj.value + '"' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'sectionHeader' + ' title=' + '"' + obj.value + ' Edit' + '"' + ' subtitle=' + '"' + '{' + '!' + obj.value + '.name}' + '"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'form' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'pageBlock title=' + '"' + obj.value + ' Edit' + '"' + ' mode=' + '"edit"&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'pageBlockButtons location=' + '"top"&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value=' + '"' + 'Save' + '" ' + 'action=' + '"' + '{' + '!' + 'save' + '}"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value=' + '"' + 'Save &amp;amp; New' + '"' + ' action=' + '"' + '{' + '!save}" /&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value="Cancel" action=' + '"' + '{' + '!cancel}' + '"/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlockButtons&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'pageBlockButtons location=' + '"bottom"&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value=' + '"' + 'Save' + '" ' + 'action=' + '"' + '{' + '!' + 'save' + '}"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value=' + '"' + 'Save &amp;amp; New' + '"' + ' action=' + '"' + '{' + '!save}" /&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:commandButton value="Cancel" action=' + '"' + '{' + '!cancel}' + '"/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlockButtons&amp;gt;';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adding fields and sections&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var allTheLayouts = result.getArray("layouts");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i = 0; i &amp;lt; allTheLayouts.length; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var layout = allTheLayouts[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layout.editLayoutSections != null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var elSections = layout.getArray("editLayoutSections");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var j = 0; j &amp;lt; elSections.length; j++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var els = elSections[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:pageBlockSection title=' + '"' + els.heading + '" ' +&amp;nbsp; 'columns=' + '"' + els.columns + '"' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var allTheLayoutRows = els.getArray("layoutRows");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k = 0; k &amp;lt; allTheLayoutRows.length; k++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lr = allTheLayoutRows[k];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lis = lr.getArray("layoutItems");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var h = 0; h &amp;lt; lis.length; h++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var li = lis[h];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //only in case of Lead and Contact First Name, which includes Salutation also&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (li.layoutComponents != null &amp;amp;&amp;amp; li.layoutComponents.length == 2){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:inputField value=' + '"' + '{' + '!' + obj.value + '.' + li.layoutComponents[1].value + '}' + '" ' + 'required=' + '"' + li.required.toString() + '"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for all other fields&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (li.layoutComponents != null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:inputField value=' + '"' + '{' + '!' + obj.value + '.' + li.layoutComponents.value + '}' + '" ' + 'required=' + '"' + li.required.toString() + '"' + '/&amp;gt;'; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlockSection&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlock&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:form&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:page&amp;gt;';&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("{!$Component.hide}").value = output;&amp;nbsp; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//details**********************************layout&lt;br /&gt;function detailLayoutResults(result, obj) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var layouts = result.getArray("layouts");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var output = '';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'page standardController=' + '"' + obj.value + '"' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'sectionHeader' + ' title=' + '"' + obj.value + '"' + ' subtitle=' + '"' + '{' + '!' + obj.value + '.name}' + '"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex' + ':' + 'pageBlock title=' + '"' + obj.value + '"' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //adding fields and sections&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var allTheLayouts = result.getArray("layouts");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i = 0; i &amp;lt; allTheLayouts.length; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var layout = allTheLayouts[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layout.editLayoutSections != null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var elSections = layout.getArray("editLayoutSections");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var j = 0; j &amp;lt; elSections.length; j++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var els = elSections[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:pageBlockSection title=' + '"' + els.heading + '" ' +&amp;nbsp; 'columns=' + '"' + els.columns + '"' + '&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var allTheLayoutRows = els.getArray("layoutRows");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k = 0; k &amp;lt; allTheLayoutRows.length; k++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lr = allTheLayoutRows[k];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var lis = lr.getArray("layoutItems");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var h = 0; h &amp;lt; lis.length; h++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var li = lis[h];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //only in case of Lead and Contact First Name, which includes Salutation also&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (li.layoutComponents != null &amp;amp;&amp;amp; li.layoutComponents.length == 2){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:outputField title=' + '"' + li.label + '" value="' + '{' + '!' + obj.value + '.' + li.layoutComponents[1].value + '}' + '"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for all other fields&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (li.layoutComponents != null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + 'apex:outputField title=' + '"' + li.label + '" value="' + '{' + '!' + obj.value + '.' + li.layoutComponents.value + '}' + '"' + '/&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlockSection&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:pageBlock&amp;gt;';&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '\n';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output += '&amp;lt;' + '/apex:page&amp;gt;';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("{!$Component.hide}").value = output;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Enter the object API Name and record type Id associated to create visualforce code of the page layout for the selected page type.&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr &amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Object API Name&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="obj"/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;tr &amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Record Type Id&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="rct"/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;tr &amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Page Type&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;select id="opt"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;option value="Edit"&amp;gt;Edit&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;option value="Detail"&amp;gt;Detail&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;/select&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;center&amp;gt;&amp;lt;apex:commandButton id="but" value="Create Page Code" onclick="setupPage()" action="{!create}" rerender="pan" status="pageStatus"/&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;&amp;lt;apex:inputHidden id="hide" value="{!hide}"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;&amp;lt;apex:actionStatus id="pageStatus" startText="Getting page code..." stopText="Page Code"/&amp;gt;&lt;br /&gt;&amp;lt;table &amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;apex:outputPanel id="pan"&amp;gt;&lt;br /&gt;{!output}&lt;br /&gt;&amp;lt;/apex:outputPanel&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/apex:form&amp;gt;&lt;br /&gt;&amp;lt;/apex:page&amp;gt;&lt;/i&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;Controller Class&lt;/b&gt;&lt;br /&gt;&lt;div style="color: #6aa84f; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;span style="color: lime;"&gt;public class OutputController {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //variables and getter/setter&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public String output {get;set;}&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public String hide {get;set;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //action method of the button&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public PageReference create() {&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = hide;&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //test method&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public static testMethod void testPage(){&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test.setCurrentPage(Page.VisualforceCodeCreator);&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test.startTest();&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputController oc = new OutputController();&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oc.create();&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test.stopTest();&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="color: lime;" /&gt;&lt;span style="color: lime;"&gt; }&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: lime; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;An This Is It.&lt;br /&gt;&lt;br /&gt;The controller, I had to use for a reason. We cannot just print some text with HTML encoding in it in a visualforce page. The option I came across later on is to use HTMLENCODE() function in the page and you'll get rid of the controller.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Clouding.&lt;br /&gt;And its not my dialog but I love it...Human Knowledge belongs to the world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-4445238185627327853?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/4445238185627327853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/08/creating-visualforce-page-code-against.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/4445238185627327853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/4445238185627327853'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/08/creating-visualforce-page-code-against.html' title='Creating Visualforce page code against your standard page layout using AJAX toolkit'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_64-Ge9HdRzk/TFsErBAuXCI/AAAAAAAAAB8/85bco69YW4s/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-1131997710176201270</id><published>2010-07-17T15:06:00.000-07:00</published><updated>2010-07-17T15:37:29.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='force.com ide'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='translation workbench'/><title type='text'>Migrating translations for fields and other components using Force.com IDE</title><content type='html'>Well, this is quite risky job if your machine does not support a language to be edited in its proper format and re formats the content into some garbage characters. This might be the case with chinese, japanese and for all the languages that do not use 'script' similar to english.&lt;br /&gt;&lt;br /&gt;The steps are quite easy with just one DON'T..what? wait for a minute, you'll get to know soon..&lt;br /&gt;I am assuming that you know how to use Force.com IDE. Now&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a Force.com package using your credentials for your source environment/sandbox&lt;/li&gt;&lt;li&gt;While selecting metadata components, select second option (i.e. Choose manually)&lt;/li&gt;&lt;li&gt;Expand "objects" and select the object(s) whose translation you want to migrate (including field translations). Example: Account, MyObject__c&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Expand "translations" and select the languages for which the translation is done. Example: ja, zh_CN&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next expand "objectTranslation" and select the translation for the objects in step3 and select the labguage for those objects in step 4.&lt;/li&gt;&lt;/ul&gt;Now when you will click Next and Finish, three folders should be there in your project's "src" folder, viz. object, tranaslation and objectTranslation. And here is that DON'T. DO NOT open any objectTranslation file on your machine. just keep them as they are. Although you can open a fine that supports your "keyboard". for example if you are using an english keybord, you can open French or German file and so on.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To deploy this to your target environment/sandbox, right click on project --&gt; Force.com --&gt;Deploy to server&lt;/li&gt;&lt;li&gt;Enter the credentials&lt;/li&gt;&lt;li&gt;On the next page, "Deselect All" the components, then manually select only the objectTranslation file (assuming you have already migrated objects and have set up the language otherwise select all the components)&lt;/li&gt;&lt;li&gt;Validate your deployment before clicking Next&lt;/li&gt;&lt;li&gt;Click Next when you get a Green signal&lt;/li&gt;&lt;li&gt;And yayy..you are done..&lt;/li&gt;&lt;/ul&gt;See how simple. For further reference go to&lt;a href="http://wiki.developerforce.com/index.php/Documentation#Usage_and_Implementation_Guides"&gt;&lt;br /&gt;http://wiki.developerforce.com/index.php/Documentation#Usage_and_Implementation_Guides&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and the book is &lt;b&gt;Localizing with the Force.com IDE.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Here is the &lt;a href="https://na1.salesforce.com/help/doc/en/salesforce_ide_localization.pdf"&gt;direct link&lt;/a&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;Hope this was useful.&lt;br /&gt;&lt;br /&gt;Happy clouding..&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-1131997710176201270?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/1131997710176201270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/07/migrating-translations-for-fields-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/1131997710176201270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/1131997710176201270'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/07/migrating-translations-for-fields-and.html' title='Migrating translations for fields and other components using Force.com IDE'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-8958857847889792809</id><published>2010-06-19T13:24:00.000-07:00</published><updated>2010-12-26T01:03:21.718-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='business hour'/><title type='text'>Business Hours SLA in Salesforce workflow</title><content type='html'>Someone once said, there are two ways to do a job. One is doing smartly and the other is doing hardly.&lt;br /&gt;&lt;br /&gt;When it came to implement a requirement, I chose the second way..alas..&lt;br /&gt;&lt;br /&gt;The scenario was to calculate End Time of a Start Time not in 24 hours format. I had to exclude weekend, holidays and Non-Business Hours (only Business Hours, say 9am to 6pm taken into consideration).&lt;br /&gt;&lt;br /&gt;I tried a hell lot of things, and ended up doing everything my way. &lt;a href="http://www.blogger.com/profile/08434583574889047062"&gt;JPSeabury&lt;/a&gt; did this very thing the salesforce way, the easiest way. You can find it &lt;a href="http://forcemonkey.blogspot.com/2009/11/calculating-business-hours.html"&gt;here &lt;/a&gt;in his blogpost.&lt;br /&gt;&lt;br /&gt;I tried everything in the same order he did. Then I came up with "my" way.&lt;br /&gt;1. Created an object to store Holidays&lt;br /&gt;2. Created another object to store user locales (Time Zones)&lt;br /&gt;3. Created a lot of apex (about 400 lines) to calculate the time elapsed between two times.&lt;br /&gt;&lt;br /&gt;Morale: Don't reinvent the wheel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: If you have faced a problem like this, please refer to &lt;a href="http://forcemonkey.blogspot.com/2009/11/calculating-business-hours.html"&gt;JP's blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Clouding...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-8958857847889792809?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/8958857847889792809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/06/business-hours-sla-in-workflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/8958857847889792809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/8958857847889792809'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/06/business-hours-sla-in-workflow.html' title='Business Hours SLA in Salesforce workflow'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195555066670047212.post-800392204629373269</id><published>2010-05-27T09:50:00.000-07:00</published><updated>2010-12-26T01:02:25.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce'/><title type='text'>Prepopulating values from a visualforce page to a standard page</title><content type='html'>Once I had this requirement, wherein I was asked to pre-populate some of the values from a visualforce page to a standard page.&lt;br /&gt;&lt;br /&gt;The flow can be like this (just an example):&lt;br /&gt;&lt;br /&gt;1. Create a custom List button on Account, let's name it "Quick Account".&lt;br /&gt;&lt;br /&gt;2. This button opens a visualforrce page. This page has an input text field (say Your Account Name) and one command button (say Go Create) in it.&lt;br /&gt;&lt;br /&gt;3 . In your controller get and set the value for the text field and store it in a String (say your String variable name is "myAccountName")&lt;br /&gt;&lt;br /&gt;4. In the action method of the button (returning a PageRefrence) return a page as below-&lt;br /&gt;PageRefrence accPage = PageRefrence('/001/e?acc2=myAccoontName');&lt;br /&gt;return accPage;&lt;br /&gt;&lt;br /&gt;5. Bingo, now when you click on the Quick Account button, you will see a standard account edit page with pre-populated Account Name field.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The idea is that the name of the fields on the HTML have some very standard conventions. e.g. for account object, Account Name field had the HTML Id as 'acc2'. So the some of the standard fields are named as acc3, acc4 and so on.&lt;br /&gt;&lt;br /&gt;Also for custom fields, the salesforce Id is used as HTML id. e.g. let us say a custom field on Account is 'My Name' and the salesforce Id of the fields is 'xxxxxxx'. So to pre-populate this field also you can do as:&lt;br /&gt;PageRefrence accPage = PageRefrence('/001/e?acc2='+myAccoontName+'&amp;amp;xxxxxxx=swaleh');&lt;br /&gt;&lt;br /&gt;and again bingo........&lt;br /&gt;&lt;br /&gt;Happy clouding :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195555066670047212-800392204629373269?l=forcecrazy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forcecrazy.blogspot.com/feeds/800392204629373269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://forcecrazy.blogspot.com/2010/05/prepopulating-values-from-visualforce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/800392204629373269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195555066670047212/posts/default/800392204629373269'/><link rel='alternate' type='text/html' href='http://forcecrazy.blogspot.com/2010/05/prepopulating-values-from-visualforce.html' title='Prepopulating values from a visualforce page to a standard page'/><author><name>Mohammad Swaleh</name><uri>http://www.blogger.com/profile/02041953384617169075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://4.bp.blogspot.com/_64-Ge9HdRzk/TTLZ1vzNvbI/AAAAAAAAACw/b-qJJHMZyqQ/S220/Logo.jpg'/></author><thr:total>0</thr:total></entry></feed>
