<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VBCS</title>
	<atom:link href="https://khalil232.com/tag/vbcs/feed/" rel="self" type="application/rss+xml" />
	<link>https://khalil232.com</link>
	<description></description>
	<lastBuildDate>Sun, 15 Feb 2026 15:51:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/khalil232-favicon-color.png?fit=32%2C32&#038;ssl=1</url>
	<title>VBCS</title>
	<link>https://khalil232.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">222554886</site>	<item>
		<title>How to Build User-Friendly Web Apps</title>
		<link>https://khalil232.com/vbcs-tutorials/298/how-to-build-user-friendly-web-apps/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 16:15:31 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=298</guid>

					<description><![CDATA[By implementing these best practices, you can create a web app that prioritizes user convenience, respects their preferences, and offers a seamless and enjoyable experience. Prioritizing these details will ensure users have an intuitive, efficient, and frustration-free interaction with your app.]]></description>
										<content:encoded><![CDATA[
<ol class="wp-block-list">
<li><strong>Enable Easy Bookmarking</strong>
<ul class="wp-block-list">
<li>When offering search functionality, provide users with an option to bookmark the URL dynamically.
<ul class="wp-block-list">
<li>This helps users return directly to their previous search or specific page, enhancing usability.</li>



<li>Example: After searching for &#8220;Vehicle XYZ,&#8221; update the URL to <code>khalil232.com/someapp/search?query=Vehicle+XYZ</code> so users can bookmark it for quick access.</li>
</ul>
</li>
</ul>
</li>



<li><strong>Support Deep Linking</strong>
<ul class="wp-block-list">
<li>Allow users to navigate directly to specific sections or data within your application using deep links.</li>



<li>For instance, if your app has a &#8220;Search Vehicle&#8221; and &#8220;View Vehicle Details&#8221; feature, create links like <code><code>khalil232.com/someapp</code>/vehicle/12345</code> where <code>12345</code> is the vehicle ID.</li>



<li>This lets users quickly return to the exact item or section they need, saving time and effort.</li>
</ul>
</li>



<li><strong>Respect User Actions</strong>
<ul class="wp-block-list">
<li>Do not hijack cut, copy, or paste functionality: Users should be free to interact with text in your app. Restricting these basic actions can lead to frustration, particularly for tasks like copying transaction IDs or pasting search terms.</li>



<li>Avoid disabling right-click or text selection: Users often rely on right-click or text selection for browser features (like &#8220;Inspect&#8221;) or to select and share information. Disabling these options can hinder user experience.</li>
</ul>
</li>



<li><strong> Reduce Blocking Actions</strong>
<ul class="wp-block-list">
<li>Avoid full-screen blocking overlays during loading or processing. Instead, implement non-blocking alternatives:
<ul class="wp-block-list">
<li>Background Processes: Let processes like downloading large files or generating reports run in the background.</li>



<li>Interactive Screens: Allow users to continue interacting with the app while background tasks are running.</li>



<li>Completion Notifications: Use a popup, toast message, or notification to inform users when the process is complete.</li>



<li>Example: While generating a complex report, allow users to browse other parts of the application. When the report is ready, show a message or button to download it.</li>
</ul>
</li>
</ul>
</li>



<li><strong>Make Links Different from Normal Text</strong>
<ul class="wp-block-list">
<li>Ensure that links are visually distinct from other text. This can be achieved by using a different color, underlining them, or adding an icon. This makes it clear that the text is interactive and improves the navigation experience.</li>
</ul>
</li>



<li><strong>Confirm Difficult Actions</strong>
<ul class="wp-block-list">
<li>Always prompt users with a confirmation dialog for actions that are irreversible or difficult to undo, such as deleting a record. A simple &#8220;Are you sure?&#8221; prompt, along with an explanation of the consequences, can prevent unintended mistakes.</li>



<li>Example<strong>:</strong> <em>&#8220;This action will permanently delete your record. Do you wish to continue?&#8221;</em></li>



<li>This extra layer of confirmation reassures users and reduces the risk of accidental deletions.</li>
</ul>
</li>



<li><strong>Manage Text Lengths in Tables or Lists</strong>
<ul class="wp-block-list">
<li>Consider how text will vary in length when designing tables or lists. Set reasonable character limits for data input or display. You can also implement features like text truncation with “Read More” buttons for longer content.</li>



<li>Additionally, use tooltips or modals to display extra information when a user hovers over or clicks on a specific entry. This ensures that long or short text doesn’t break the layout, and users can still access all the information.</li>
</ul>
</li>



<li><strong>Provide File Upload Previews</strong>
<ul class="wp-block-list">
<li>If your web app allows users to upload files, provide a preview of the file before they submit it. Include the file name, file size, and file type for full transparency. Offering a cancel option after previewing the file will also give users flexibility if they change their mind. </li>



<li>For example, if a user uploads the wrong file, they should be able to cancel or replace it without any issues.</li>
</ul>
</li>
</ol>



<p>By implementing these best practices, you can create a web app that prioritizes user convenience, respects their preferences, and offers a seamless and enjoyable experience. Prioritizing these details will ensure users have an intuitive, efficient, and frustration-free interaction with your app.<br></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">298</post-id>	</item>
		<item>
		<title>Make VBCS application migration easier</title>
		<link>https://khalil232.com/vbcs-tutorials/282/make-vbcs-application-migration-easier/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Fri, 02 Aug 2024 18:32:38 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=282</guid>

					<description><![CDATA[These are some general tips for a VBCS developer to make changes in VBCS application before migrating to different instances. Use connections based on backend. Instead of directly using a URL, This way, when we migrate from one instance to another, we can make changes in backend URL and credentials. This will be one-time setup&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/282/make-vbcs-application-migration-easier/" rel="bookmark"><span class="screen-reader-text">Make VBCS application migration easier</span></a>]]></description>
										<content:encoded><![CDATA[
<p>These are some general tips for a VBCS developer to make changes in VBCS application before migrating to different instances. </p>



<h2 class="wp-block-heading has-medium-font-size">Use connections based on backend. Instead of directly using a URL,</h2>



<p class="has-small-font-size">This way, when we migrate from one instance to another, we can make changes in backend URL and credentials. This will be one-time setup when me get a new instance and at code level, we don&#8217;t have to make many changes </p>



<p class="has-medium-font-size">Get Application URL using JS function </p>



<p class="has-small-font-size">For any kind of link to different VBCS application, use JavaScript code to get application URL using </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="$application.path
// design url -- {{vbcs-cloud-url}}/ic/builder/design/khalil/1.0.0/preview/webApps/demo/
// live url -- {{vbcs-cloud-url}}/ic/builder/rt/khalil/live/webApps/demo/ " style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">$application</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">path</span></span>
<span class="line"><span style="color: #6A9955">// design url -- {{vbcs-cloud-url}}/ic/builder/design/khalil/1.0.0/preview/webApps/demo/</span></span>
<span class="line"><span style="color: #6A9955">// live url -- {{vbcs-cloud-url}}/ic/builder/rt/khalil/live/webApps/demo/ </span></span></code></pre></div>



<p>Get SaaS URL using JS function</p>



<p class="has-small-font-size">For any kind of link to different ERP instance for any deep link or report link to get the host name of SaaS application, configure the SaaS application as one of the backend and configure a get API</p>



<p class="has-small-font-size">Using the get API, we can use the below JavaScript code to get full URL of API, from which we can extract the exact host name</p>



<p class="has-small-font-size">Code sample for getting SaaS URL using Rest Helper</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="define([&quot;vb/helpers/rest&quot;], (Rest) =&gt; {
  &quot;use strict&quot;;

  class PageModule {
    async getSaaSURL(arg1, arg2) {

      let apiURL = await Rest.get(&quot;jsonplaceholderTypicodeCom/getUsers&quot;).toUrl();

      // jsonplaceholderTypicodeCom --&gt; this is service name
      // you can find this under Service Connections --&gt; Overview --&gt; Connection name 

      // getUsers --&gt; this is endpoint name 
      // in above tab --&gt; select endpoint and This is endpoint id 
      
      let hostName = new URL(apiURL).origin;

      console.log(apiURL); // https://jsonplaceholder.typicode.com/users
      console.log(hostName); // https://jsonplaceholder.typicode.com/
    }
  }

  return PageModule;
});
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">define</span><span style="color: #D4D4D4">([</span><span style="color: #CE9178">&quot;vb/helpers/rest&quot;</span><span style="color: #D4D4D4">], (</span><span style="color: #9CDCFE">Rest</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #CE9178">&quot;use strict&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">PageModule</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">getSaaSURL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">arg1</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">arg2</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">apiURL</span><span style="color: #D4D4D4"> = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">Rest</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">get</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;jsonplaceholderTypicodeCom/getUsers&quot;</span><span style="color: #D4D4D4">).</span><span style="color: #DCDCAA">toUrl</span><span style="color: #D4D4D4">();</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #6A9955">// jsonplaceholderTypicodeCom --&gt; this is service name</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #6A9955">// you can find this under Service Connections --&gt; Overview --&gt; Connection name </span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #6A9955">// getUsers --&gt; this is endpoint name </span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #6A9955">// in above tab --&gt; select endpoint and This is endpoint id </span></span>
<span class="line"><span style="color: #D4D4D4">      </span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">hostName</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">URL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">apiURL</span><span style="color: #D4D4D4">).</span><span style="color: #9CDCFE">origin</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">apiURL</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// https://jsonplaceholder.typicode.com/users</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">hostName</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// https://jsonplaceholder.typicode.com/</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">PageModule</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">});</span></span>
<span class="line"></span></code></pre></div>



<p>Use messages or static status like APPROVED, DONE, or some ID like -1, 0, 1, or 2024 using a constant value at the application level. </p>



<p class="has-small-font-size">This will help to easily see all the values at one time and later, if there is change in actual value, we can change the value at this place with no need to change the code.</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="{
  &quot;id&quot;: &quot;demo&quot;,
  &quot;description&quot;: &quot;A new VB app&quot;,
  &quot;defaultPage&quot;: &quot;shell&quot;,
  &quot;constants&quot;: {
    &quot;SUCCESS_STATUS&quot;: {
      &quot;type&quot;: &quot;string&quot;,
      &quot;defaultValue&quot;: &quot;Successfully Created&quot;
    }
  }
}" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">&quot;id&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;demo&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">&quot;description&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;A new VB app&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">&quot;defaultPage&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;shell&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">&quot;constants&quot;</span><span style="color: #D4D4D4">: {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">&quot;SUCCESS_STATUS&quot;</span><span style="color: #D4D4D4">: {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">&quot;type&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;string&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">&quot;defaultValue&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;Successfully Created&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="define([&quot;vb/helpers/rest&quot;], (Rest) =&gt; {
  &quot;use strict&quot;;

  class PageModule {
    async checkStatus(status, APP_SUCCESS_STATUS) {
     // pass $application.constants.SUCCESS_STATUS
      return ( status === APP_SUCCESS_STATUS )
    }
  }

  return PageModule;
});
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">define</span><span style="color: #D4D4D4">([</span><span style="color: #CE9178">&quot;vb/helpers/rest&quot;</span><span style="color: #D4D4D4">], (</span><span style="color: #9CDCFE">Rest</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #CE9178">&quot;use strict&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">class</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">PageModule</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">checkStatus</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">status</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">APP_SUCCESS_STATUS</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">     </span><span style="color: #6A9955">// pass $application.constants.SUCCESS_STATUS</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> ( </span><span style="color: #9CDCFE">status</span><span style="color: #D4D4D4"> === </span><span style="color: #4FC1FF">APP_SUCCESS_STATUS</span><span style="color: #D4D4D4"> )</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">PageModule</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">});</span></span>
<span class="line"></span></code></pre></div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">282</post-id>	</item>
		<item>
		<title>How to learn VBCS as beginner</title>
		<link>https://khalil232.com/vbcs-tutorials/275/how-to-learn-vbcs-as-beginner/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Tue, 16 Jul 2024 18:14:48 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=275</guid>

					<description><![CDATA[How to learn VBCS as beginner

Basics of VBCS
What are application, page, and flow scopes?
How to connect to other systems
How to store data
Different status of application:]]></description>
										<content:encoded><![CDATA[
<p>General approach and topics to learn in VBCS</p>



<ol class="wp-block-list">
<li>Basics of&nbsp;VBCS
<ul class="wp-block-list">
<li>What is VBCS?</li>



<li>Why is it used?</li>
</ul>
</li>



<li>What are application, page, and flow scopes?
<ul class="wp-block-list">
<li>Which scope is used when </li>



<li>Identifying default flow / default page</li>
</ul>
</li>



<li>How to connect to other systems 
<ul class="wp-block-list">
<li>Using service connections
<ul class="wp-block-list">
<li>OIC-related connections: call an integration on a button and click from VBCS page</li>



<li>SaaS-related connections: call some fusion API on button click and populate in a table</li>



<li>Some direct APIs &#8212; call some external API to other than OIC or SaaS API </li>
</ul>
</li>



<li> In Service connections, understand different type of authentication methods, like basic authentication / OAuth.</li>



<li>Try to call REST APIs with different types of http methods ( GET, POST, PUT, PATCH, DELETE )</li>
</ul>
</li>



<li>How to store data 
<ul class="wp-block-list">
<li>Import and export data from business object using inbuilt data manager</li>



<li>Create business objects with different types of fields
<ul class="wp-block-list">
<li>generated id</li>



<li>number field</li>



<li>string field</li>



<li>date field</li>



<li>calculate field</li>
</ul>
</li>



<li>how to write business rules and inside we can write Groovy, and this can be called using API</li>



<li>Write some validations using business object trigger (like the salary of person cannot be &lt; 200 ) or (start date should always be less than end date)</li>



<li>Understanding how data is stored in development, stage and live applications.</li>



<li>Understanding how to copy data (from development to stage) or (from stage to live)</li>
</ul>
</li>



<li>Different status of application:
<ul class="wp-block-list">
<li>Development, Stage and Live mode</li>



<li>Understanding when to use which one to use when</li>



<li>Generally, when working on application, it will be in Development mode</li>



<li>When we want to test the application or if we want to share the application, we can stage and share the URL, or we can publish the application and share the live URL.</li>
</ul>
</li>



<li>Understanding different components
<ul class="wp-block-list">
<li>form-layout</li>



<li>oj-input-text</li>



<li>oj-bind-text</li>



<li>oj-input-date</li>



<li>oj-select-single&nbsp;&nbsp; </li>



<li>oj-table</li>



<li>template</li>



<li>oj-bind-if</li>



<li>oj-for-each</li>
</ul>
</li>



<li>Understanding actions in Action chain
<ul class="wp-block-list">
<li>assign variable ( create a variable and assign it using action chain and display using text field )</li>



<li>show notification (e.g.: show some message on button click using fire notification action )</li>



<li>call component ( e.g.: open dialog / close dialog )</li>



<li>call JS function  ( e.g.: create a JS function to find sum of two numbers)</li>



<li>if else ( use some condition to show different messages ) </li>



<li>call rest api ( get / post )</li>



<li>navigation ( e.g.: navigate to different page on link click ) </li>



<li>open URL (e.g.: on link-click, open some external site like google.com )</li>
</ul>
</li>



<li>Understanding variables and types
<ul class="wp-block-list">
<li>How to create variables</li>



<li>How to create types </li>



<li>How to create types using service endpoints</li>



<li>What is ADP ( Array Data Provider)?</li>



<li>What is SDP ( Service Data Provider)?</li>



<li>Understand scope of variables ( application, flow and page )</li>
</ul>
</li>



<li>Events and Event listeners</li>



<li>File structure -> Import/Export code -> Show file structure in Explorer.</li>



<li>Roles and Security </li>



<li>Custom styling using app.css / default themes</li>



<li>Deploying applications from one instance to another.</li>
</ol>



<p>Resources </p>



<p>Official documentation: <a href="https://docs.oracle.com/en/cloud/paas/app-builder-cloud/index.html" target="_blank" rel="noreferrer noopener">https://docs.oracle.com/en/cloud/paas/app-builder-cloud/index.html</a></p>



<p>VBCS cookbook: <a href="https://vbcookbook.oracle.com/" target="_blank" rel="noreferrer noopener">https://vbcookbook.oracle.com/</a> It has a lot of examples where you can download the sample code, import it into an application and modify it according to your needs</p>



<p>Customer Connect for visual builder: <a href="https://community.oracle.com/customerconnect/categories/oci-visual-builder-studio" target="_blank" rel="noreferrer noopener">https://community.oracle.com/customerconnect/categories/oci-visual-builder-studio</a> Great place to ask or find questions when you get stuck</p>



<p>JET Cookbook: <a href="https://www.oracle.com/webfolder/technetwork/jet/jetcookbook.html" target="_blank" rel="noreferrer noopener">https://www.oracle.com/webfolder/technetwork/jet/jetcookbook.html</a> &#8212; There is a lot of documentation of JET components and example, we can check the code from here, tweak it and use in VBCS applications</p>



<p>JS docs: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojTable.html" target="_blank" rel="noreferrer noopener">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojTable.html</a> &#8212; JS documents for jet components can be navigated using left navigation bar to find JS documents for other components</p>



<p>Linkedin group: <a href="https://www.linkedin.com/groups/13630219/" target="_blank" rel="noreferrer noopener">https://www.linkedin.com/groups/13630219/</a></p>



<p>Youtube Videos which I found </p>



<p>Visual Builder: A Crash Course from Oracle Developers &#8212; <a href="https://www.youtube.com/watch?v=9DNBAh0UTeY" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=9DNBAh0UTeY</a></p>



<p>Visual Builder Playlist: <a href="https://www.youtube.com/playlist?list=PL3X62LScvI_K1Glab5N9Dvwcervel5e4R" target="_blank" rel="noreferrer noopener">https://www.youtube.com/playlist?list=PL3X62LScvI_K1Glab5N9Dvwcervel5e4R</a></p>



<p></p>



<p>Youtube channels that post content about VBCS and OIC</p>



<p>Shay: <a href="https://www.youtube.com/@ShayOracle" target="_blank" rel="noreferrer noopener">https://www.youtube.com/@ShayOracle</a></p>



<p>Oracle Developers Channel: <a href="https://www.youtube.com/channel/UCdDhYMT2USoLdh4SZIsu_1g" target="_blank" rel="noreferrer noopener">https://www.youtube.com/channel/UCdDhYMT2USoLdh4SZIsu_1g</a></p>



<p>Beenum learning: <a href="https://www.youtube.com/@BEENUMLEARNING" target="_blank" rel="noreferrer noopener">https://www.youtube.com/@BEENUMLEARNING</a></p>



<p>Techsupper Ankur: <a href="https://www.youtube.com/@TechSupper" target="_blank" rel="noreferrer noopener">https://www.youtube.com/@TechSupper</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">275</post-id>	</item>
		<item>
		<title>To upload csv data as ADP(Array data provider) or array</title>
		<link>https://khalil232.com/vbcs-tutorials/49/to-upload-csv-data-as-adparray-data-provider-or-array/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Mon, 29 Apr 2024 19:16:42 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=49</guid>

					<description><![CDATA[Steps to upload csv data as ADP(Array data provider) or array JavaScript function Sample CSV data that will work with this code Sample file picker html code Sample working code &#8212; iframe Link to live demo &#8212; file-picker]]></description>
										<content:encoded><![CDATA[
<p>Steps to upload csv data as ADP(Array data provider) or array</p>



<ul class="wp-block-list">
<li>Add a file component</li>



<li>On file select call the below JavaScript function and pass file as parameter</li>



<li>Assign the result from below function to ADP.data or Array </li>
</ul>



<p>JavaScript function </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="PageModule.prototype.getRowsFromCsv = function (file) {
  return new Promise((resolve) =&gt; {
    try {
      let fileContent = [];
      const fileReader = new FileReader();
      fileReader.readAsText(file);
      fileReader.onload = (e) =&gt; {
        let result = e.target.result;
        let columns = ['employee','name','phone','salary'];
        let size;
        let inputData = [];
        if (result) {
          let lines = result.split(&quot;\n&quot;);
          for ( let  i = 1 ; i &lt; lines.length ; i++ ) {
            let row = lines[i];
            let rowArray = row.split(&quot;,&quot;);
            let inputObj = {} ;
            inputObj.employee = rowArray[0];
            inputObj.name = rowArray[1];
            inputObj.phone = rowArray[2];
            inputObj.salary= rowArray[3];
            inputData.push(inputObj);
          }
          resolve({
            success: true,
            inputData: inputData,
            error: &quot;&quot;
          });
        } else {
          resolve({
            success: false,
            inputData: [],
            error: &quot;Empty File : &quot; + result
          });
        }
      };
    } catch (err) {
      resolve({
        success: false,
        inputData: [],
        error: &quot;Error while reading file : &quot; + err.detail
      });
    }
  });
};" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #FFCB6B">PageModule</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">prototype</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">getRowsFromCsv</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">=</span><span style="color: #BABED8"> </span><span style="color: #C792EA">function</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">file</span><span style="color: #89DDFF">)</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #89DDFF">new</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">Promise</span><span style="color: #F07178">(</span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">resolve</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #C792EA">=&gt;</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF; font-style: italic">try</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">fileContent</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> []</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">const</span><span style="color: #F07178"> </span><span style="color: #BABED8">fileReader</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">new</span><span style="color: #F07178"> </span><span style="color: #82AAFF">FileReader</span><span style="color: #F07178">()</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #BABED8">fileReader</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">readAsText</span><span style="color: #F07178">(</span><span style="color: #BABED8">file</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #BABED8">fileReader</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">onload</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">e</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #C792EA">=&gt;</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">result</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">e</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">target</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">result</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">columns</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> [</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">employee</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">,</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">name</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">,</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">phone</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">,</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">salary</span><span style="color: #89DDFF">&#39;</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">size</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">inputData</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> []</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #F07178"> (</span><span style="color: #BABED8">result</span><span style="color: #F07178">) </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">lines</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">result</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">split</span><span style="color: #F07178">(</span><span style="color: #89DDFF">&quot;</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">&quot;</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF; font-style: italic">for</span><span style="color: #F07178"> ( </span><span style="color: #C792EA">let</span><span style="color: #F07178">  </span><span style="color: #BABED8">i</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #F78C6C">1</span><span style="color: #F07178"> </span><span style="color: #89DDFF">;</span><span style="color: #F07178"> </span><span style="color: #BABED8">i</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&lt;</span><span style="color: #F07178"> </span><span style="color: #BABED8">lines</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">length</span><span style="color: #F07178"> </span><span style="color: #89DDFF">;</span><span style="color: #F07178"> </span><span style="color: #BABED8">i</span><span style="color: #89DDFF">++</span><span style="color: #F07178"> ) </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">row</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">lines</span><span style="color: #F07178">[</span><span style="color: #BABED8">i</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">rowArray</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">row</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">split</span><span style="color: #F07178">(</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">&quot;</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">inputObj</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{}</span><span style="color: #F07178"> </span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #BABED8">inputObj</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">employee</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">rowArray</span><span style="color: #F07178">[</span><span style="color: #F78C6C">0</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #BABED8">inputObj</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">name</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">rowArray</span><span style="color: #F07178">[</span><span style="color: #F78C6C">1</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #BABED8">inputObj</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">phone</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">rowArray</span><span style="color: #F07178">[</span><span style="color: #F78C6C">2</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #BABED8">inputObj</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">salary</span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">rowArray</span><span style="color: #F07178">[</span><span style="color: #F78C6C">3</span><span style="color: #F07178">]</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #BABED8">inputData</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">push</span><span style="color: #F07178">(</span><span style="color: #BABED8">inputObj</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            success</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #FF9CAC">true</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">            inputData</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #BABED8">inputData</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">            error</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;&quot;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178"> </span><span style="color: #89DDFF; font-style: italic">else</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            success</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #FF9CAC">false</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">            inputData</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> []</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">            error</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">Empty File : </span><span style="color: #89DDFF">&quot;</span><span style="color: #F07178"> </span><span style="color: #89DDFF">+</span><span style="color: #F07178"> </span><span style="color: #BABED8">result</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF">};</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF">}</span><span style="color: #F07178"> </span><span style="color: #89DDFF; font-style: italic">catch</span><span style="color: #F07178"> (</span><span style="color: #BABED8">err</span><span style="color: #F07178">) </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">        success</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #FF9CAC">false</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">        inputData</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> []</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">        error</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">Error while reading file : </span><span style="color: #89DDFF">&quot;</span><span style="color: #F07178"> </span><span style="color: #89DDFF">+</span><span style="color: #F07178"> </span><span style="color: #BABED8">err</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">detail</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #89DDFF">};</span></span></code></pre></div>



<p>Sample CSV data that will work with this code </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="employee,name,phone,salary
1,khalil,123,3000
2,ahmed,345,4000
3,sayeed,929,25000" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">employee,name,phone,salary</span></span>
<span class="line"><span style="color: #D4D4D4">1,khalil,123,3000</span></span>
<span class="line"><span style="color: #D4D4D4">2,ahmed,345,4000</span></span>
<span class="line"><span style="color: #D4D4D4">3,sayeed,929,25000</span></span></code></pre></div>



<p></p>



<p>Sample file picker html code</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;div class=&quot;oj-sm-padding-0 oj-md-padding-4x&quot;&gt;
    &lt;h4&gt;file-picker sample code&lt;/h4&gt;

    &lt;oj-file-picker on-oj-select=&quot;[[ fileSelectListener ]]&quot;&gt;

    &lt;/oj-file-picker&gt;


    &lt;oj-table class=&quot;custom-table&quot; id=&quot;employeetable&quot; scroll-policy=&quot;loadMoreOnScroll&quot;
        class=&quot;oj-flex-item oj-sm-12 oj-md-12&quot; data=&quot;[[ employeeADP ]]&quot; columns='[
    {&quot;headerText&quot;:&quot;employee&quot;,&quot;field&quot;:&quot;employee&quot;},
    {&quot;headerText&quot;:&quot;name&quot;,&quot;field&quot;:&quot;name&quot;},
    {&quot;headerText&quot;:&quot;phone&quot;,&quot;field&quot;:&quot;phone&quot;},
    {&quot;headerText&quot;:&quot;salary&quot;,&quot;field&quot;:&quot;salary&quot;}
    ]'&gt;
    &lt;/oj-table&gt;

&lt;/div&gt;" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">div</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">oj-sm-padding-0 oj-md-padding-4x</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #BABED8">    </span><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">h4</span><span style="color: #89DDFF">&gt;</span><span style="color: #BABED8">file-picker sample code</span><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">h4</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #BABED8">    </span><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">oj-file-picker</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">on-oj-select</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">[[ fileSelectListener ]]</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #BABED8">    </span><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">oj-file-picker</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #BABED8">    </span><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">custom-table</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">id</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">employeetable</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">scroll-policy</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">loadMoreOnScroll</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">        </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">oj-flex-item oj-sm-12 oj-md-12</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">data</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">[[ employeeADP ]]</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">columns</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">[</span></span>
<span class="line"><span style="color: #C3E88D">    {&quot;headerText&quot;:&quot;employee&quot;,&quot;field&quot;:&quot;employee&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">    {&quot;headerText&quot;:&quot;name&quot;,&quot;field&quot;:&quot;name&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">    {&quot;headerText&quot;:&quot;phone&quot;,&quot;field&quot;:&quot;phone&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">    {&quot;headerText&quot;:&quot;salary&quot;,&quot;field&quot;:&quot;salary&quot;}</span></span>
<span class="line"><span style="color: #C3E88D">    ]</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #BABED8">    </span><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">div</span><span style="color: #89DDFF">&gt;</span></span></code></pre></div>



<p>Sample working code &#8212; iframe</p>



<p></p>



<iframe src="https://khalil232.com/apps/ojet-apps/?ojr=file-picker" frameborder="0" width="100%" height="400px">

</iframe>



<p>Link to live demo &#8212; <a href="https://khalil232.com/apps/ojet-apps/?ojr=file-picker">file-picker</a></p>



<p></p>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">49</post-id>	</item>
		<item>
		<title>Format dates in VBCS page using functions</title>
		<link>https://khalil232.com/vbcs-tutorials/241/format-dates-in-vbcs-page-using-functions/</link>
					<comments>https://khalil232.com/vbcs-tutorials/241/format-dates-in-vbcs-page-using-functions/#comments</comments>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Wed, 17 Jan 2024 20:20:18 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=241</guid>

					<description><![CDATA[You can use oj-input-date or oj-input-date-time components for showing formatted date and use convertor options But when using above component only for read-only purpose to show some values in grid or table, it doesn&#8217;t make sense to use input fields. Instead we can use oj-bind-text field and pass data using following JavaScript function. The JavaScript&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/241/format-dates-in-vbcs-page-using-functions/" rel="bookmark"><span class="screen-reader-text">Format dates in VBCS page using functions</span></a>]]></description>
										<content:encoded><![CDATA[
<p>You can use <strong>oj-input-date</strong> or <strong>oj-input-date-time</strong> components for showing formatted date and use convertor options  </p>



<p></p>



<p>But when using above component only for read-only purpose to show some values in grid or table, it doesn&#8217;t make sense to use input fields.</p>



<p></p>



<p>Instead we can use <strong>oj-bind-text</strong> field and pass data using following JavaScript function. </p>



<p></p>



<p>The JavaScript function will add necessary formatting to the date and return the value as string.</p>



<p></p>



<p>Live code preview</p>



<iframe src="https://khalil232.com/apps/ojet-apps/?ojr=date-format-sample" frameborder="0" width="100%" height="400px">

</iframe>



<p></p>



<p>We can use date convertor functions to format the date in required format </p>



<p></p>



<p>JavaScript function</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="define([&quot;ojs/ojconverter-datetime&quot;], (datetimeConverter) =&gt; {
  &quot;use strict&quot;;

  class PageModule {
    convertDateToStr(customDate) {
        let dateConvertor = new datetimeConverter.IntlDateTimeConverter({
          pattern: &quot;dd-MMM-yyyy&quot;,
        });
      return dateConvertor.format(customDate);
    }
  }

  return PageModule;
});

" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #82AAFF">define</span><span style="color: #BABED8">([</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">ojs/ojconverter-datetime</span><span style="color: #89DDFF">&quot;</span><span style="color: #BABED8">]</span><span style="color: #89DDFF">,</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">datetimeConverter</span><span style="color: #89DDFF">)</span><span style="color: #BABED8"> </span><span style="color: #C792EA">=&gt;</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">use strict</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #C792EA">class</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">PageModule</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">    convertDateToStr</span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">customDate</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">dateConvertor</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">new</span><span style="color: #F07178"> </span><span style="color: #BABED8">datetimeConverter</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">IntlDateTimeConverter</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          pattern</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">dd-MMM-yyyy</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #BABED8">dateConvertor</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">format</span><span style="color: #F07178">(</span><span style="color: #BABED8">customDate</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #BABED8">PageModule</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #89DDFF">}</span><span style="color: #BABED8">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"></span>
<span class="line"></span></code></pre></div>



<p>Patterns examples</p>



<figure class="wp-block-table"><table><thead><tr><th class="has-text-align-left" data-align="left">Patterns </th><th class="has-text-align-left" data-align="left">Input &#8211; date string</th><th class="has-text-align-left" data-align="left">Output &#8211; formatted date</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">dd-MMM-yyyy</td><td class="has-text-align-left" data-align="left">2024-01-18T13:59:23+05:30</td><td class="has-text-align-left" data-align="left">18-Jan-2024</td></tr><tr><td class="has-text-align-left" data-align="left">dd-MM-yyyy</td><td class="has-text-align-left" data-align="left">2024-01-18T13:59:23+05:30</td><td class="has-text-align-left" data-align="left">18-01-2024</td></tr><tr><td class="has-text-align-left" data-align="left">MM/dd/yyyy</td><td class="has-text-align-left" data-align="left">2024-01-18T13:59:23+05:30</td><td class="has-text-align-left" data-align="left">01/18/2024</td></tr><tr><td class="has-text-align-left" data-align="left">MM/dd/yyyy hh:mm:ss</td><td class="has-text-align-left" data-align="left">2024-01-18T13:59:23+05:30</td><td class="has-text-align-left" data-align="left">01/18/2024 01:59:23</td></tr><tr><td class="has-text-align-left" data-align="left">MM/dd/yyyy hh:mm:ss a</td><td class="has-text-align-left" data-align="left">2024-01-18T13:59:23+05:30</td><td class="has-text-align-left" data-align="left">01/18/2024 01:59:23 PM</td></tr></tbody></table></figure>



<p>References &#8211; </p>



<p>jsDoc for IntlDateTimeConverter ( to view all convertor options  )</p>



<p><a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.IntlDateTimeConverter.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.IntlDateTimeConverter.html</a></p>



<p>Live application URL ( to try out few configs )</p>



<p><a href="https://khalil232.com/apps/ojet-apps/?ojr=date-format-sample">https://khalil232.com/apps/ojet-apps/?ojr=date-format-sample</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://khalil232.com/vbcs-tutorials/241/format-dates-in-vbcs-page-using-functions/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">241</post-id>	</item>
		<item>
		<title>How to have different colors on rows based on one field in row in oj-data-grid</title>
		<link>https://khalil232.com/vbcs-tutorials/217/how-to-have-different-colors-on-rows-based-on-one-field-in-row-in-oj-data-grid/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Mon, 04 Dec 2023 19:10:44 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[datagrid]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=217</guid>

					<description><![CDATA[On a data grid, we can use a function in the cell.class-name attribute to dynamically pass the class name based on row data. &#8220;cellContext&#8221; will contain the required information. We can use console.log() to identify the structure. This can be used for other attributes, like &#8220;header.column.class-name&#8221; as well on oj-data-grid This can be used when&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/217/how-to-have-different-colors-on-rows-based-on-one-field-in-row-in-oj-data-grid/" rel="bookmark"><span class="screen-reader-text">How to have different colors on rows based on one field in row in oj-data-grid</span></a>]]></description>
										<content:encoded><![CDATA[
<p>On a data grid, we can use a function in the <strong>cell.class-name</strong> attribute to dynamically pass the class name based on row data.</p>



<p>&#8220;<em>cellContext</em>&#8221; will contain the required information. We can use console.log() to identify the structure.</p>



<p>This can be used for other attributes, like <em>&#8220;header.column.class-name&#8221;</em> as well on oj-data-grid</p>



<p>This can be used when we want show different style for different rows, like </p>



<ul class="wp-block-list">
<li>If we want to highlight top performer in a data set,</li>



<li>or differently show calculated fields </li>



<li>or if we want to show different type with a different color</li>
</ul>



<p>Sample HTML code:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;div class=&quot;oj-flex&quot;&gt;
  &lt;div class=&quot;oj-flex-item oj-sm-12 &quot;&gt;
    &lt;h5&gt;Data grid&lt;/h5&gt;
    &lt;oj-data-grid id=&quot;datagrid&quot; style=&quot;width:100%;height:400px&quot; aria-label=&quot;My Data Grid&quot; 
      data='{{ salaryDataADP }}'
      header.column.style=&quot;[[ headerColStyle ]]&quot; header.column.resizable.width=&quot;enable&quot;
      header.column.resizable.height=&quot;enable&quot; header.row.resizable.width=&quot;enable&quot;     
      header.row.resizable.height=&quot;enable&quot;
      header.column.class-name=&quot;oj-helper-justify-content-flex-start&quot; 
      cell.class-name=&quot;[[ cellClassNameFunc ]]&quot;
      cell.style=&quot;width: 200px;&quot;&gt;     
    &lt;/oj-data-grid&gt;
  &lt;/div&gt;
&lt;/div&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-flex&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-flex-item oj-sm-12 &quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">h5</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Data grid</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">h5</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-data-grid</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;datagrid&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;width:100%;height:400px&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">aria-label</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;My Data Grid&quot;</span><span style="color: #D4D4D4"> </span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&#39;{{ salaryDataADP }}&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">header.column.style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;[[ headerColStyle ]]&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">header.column.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">header.column.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">header.row.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span><span style="color: #D4D4D4">     </span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">header.row.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">header.column.class-name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-helper-justify-content-flex-start&quot;</span><span style="color: #D4D4D4"> </span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">cell.class-name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;[[ cellClassNameFunc ]]&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">cell.style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;width: 200px;&quot;</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">     </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">oj-data-grid</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p>Sample JS code:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="this.cellClassNameFunc = function (cellContext) {
  let cellRowIndex = cellContext.indexes.row;
  let classNameStr = &quot;oj-helper-justify-content &quot;;
  
  // to do styling based on index 
  // if (cellRowIndex % 3 === 0) {
  //   classNameStr += &quot;oj-bg-success-10 oj-text-color-success&quot;;
  // } else if (cellRowIndex % 3 === 1) {
  //   classNameStr += &quot;oj-bg-danger-30	 oj-text-color-danger&quot;;
  // } else {
  //   classNameStr += &quot;oj-bg-warning-30 oj-text-color-warning&quot;;
  // }
  
  let key = cellContext.key;
  console.log(cellContext);
  console.log(cellContext.datasource.data[cellRowIndex]);
  let rowData = cellContext.datasource.data.find((x) =&gt; x.id === key);
  if (rowData.city === &quot;Delhi&quot; || rowData.city === &quot;Banglore&quot;) {
    classNameStr += &quot;oj-bg-success-10 oj-text-color-success&quot;;
  } else if (rowData.city === &quot;Hyderabad&quot; || rowData.city === &quot;Kolkata&quot;) {
    classNameStr += &quot;oj-bg-danger-30	 oj-text-color-danger&quot;;
  } else if (rowData.city === &quot;Mumbai&quot; || rowData.city === &quot;Nagpur&quot;) {
    classNameStr += &quot;oj-bg-warning-30 oj-text-color-warning&quot;;
  }
  
  cellContext.datasource[cellRowIndex];
  
  return classNameStr;
};" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">this</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">cellClassNameFunc</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">cellRowIndex</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">indexes</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">row</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">classNameStr</span><span style="color: #D4D4D4"> = </span><span style="color: #CE9178">&quot;oj-helper-justify-content &quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// to do styling based on index </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// if (cellRowIndex % 3 === 0) {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">//   classNameStr += &quot;oj-bg-success-10 oj-text-color-success&quot;;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// } else if (cellRowIndex % 3 === 1) {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">//   classNameStr += &quot;oj-bg-danger-30	 oj-text-color-danger&quot;;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// } else {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">//   classNameStr += &quot;oj-bg-warning-30 oj-text-color-warning&quot;;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// }</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">key</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">key</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">console</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">log</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">datasource</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">cellRowIndex</span><span style="color: #D4D4D4">]);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">datasource</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">find</span><span style="color: #D4D4D4">((</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4"> === </span><span style="color: #9CDCFE">key</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Delhi&quot;</span><span style="color: #D4D4D4"> || </span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Banglore&quot;</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">classNameStr</span><span style="color: #D4D4D4"> += </span><span style="color: #CE9178">&quot;oj-bg-success-10 oj-text-color-success&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  } </span><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Hyderabad&quot;</span><span style="color: #D4D4D4"> || </span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Kolkata&quot;</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">classNameStr</span><span style="color: #D4D4D4"> += </span><span style="color: #CE9178">&quot;oj-bg-danger-30	 oj-text-color-danger&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  } </span><span style="color: #C586C0">else</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Mumbai&quot;</span><span style="color: #D4D4D4"> || </span><span style="color: #9CDCFE">rowData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">city</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;Nagpur&quot;</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">classNameStr</span><span style="color: #D4D4D4"> += </span><span style="color: #CE9178">&quot;oj-bg-warning-30 oj-text-color-warning&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">cellContext</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">datasource</span><span style="color: #D4D4D4">[</span><span style="color: #9CDCFE">cellRowIndex</span><span style="color: #D4D4D4">];</span></span>
<span class="line"><span style="color: #D4D4D4">  </span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">classNameStr</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span></code></pre></div>



<p>Screenshots </p>



<p>Choosing row background color and text color based on city </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1024" height="646" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-2.png?resize=1024%2C646&#038;ssl=1" alt="" class="wp-image-218" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-2.png?resize=1024%2C646&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-2.png?resize=300%2C189&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-2.png?resize=768%2C484&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-2.png?w=1194&amp;ssl=1 1194w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="1013" height="601" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-4.png?resize=1013%2C601&#038;ssl=1" alt="" class="wp-image-220" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-4.png?w=1013&amp;ssl=1 1013w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-4.png?resize=300%2C178&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-4.png?resize=768%2C456&amp;ssl=1 768w" sizes="(max-width: 1013px) 100vw, 1013px" /></figure>



<p></p>



<p>Choosing row background color and text color based on index </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" width="1024" height="627" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-3.png?resize=1024%2C627&#038;ssl=1" alt="" class="wp-image-219" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-3.png?resize=1024%2C627&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-3.png?resize=300%2C184&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-3.png?resize=768%2C470&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-3.png?w=1128&amp;ssl=1 1128w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Live application URL ( row style based on city ):  <a href="https://khalil232.com/apps/ojet-apps/?ojr=data-grid-example">https://khalil232.com/apps/ojet-apps/?ojr=data-grid-example</a> </p>



<p></p>



<p>References: </p>



<p>Datagrid js doc for identifying other attributes : <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html</a></p>



<p>CSS helpers used:</p>



<p>Background-color: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/BackgroundColor.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/BackgroundColor.html</a></p>



<p>Font color: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/Text.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/Text.html</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">217</post-id>	</item>
		<item>
		<title>How to enable resize in oj-data-grid</title>
		<link>https://khalil232.com/vbcs-tutorials/212/how-to-enable-resize-in-oj-data-grid/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Mon, 04 Dec 2023 18:32:09 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[datagrid]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=212</guid>

					<description><![CDATA[We can enable resize in oj-data-grid by adding the following html code to &#60;oj-data-grid>: The following attributes on the header will allow resizing. When hovering on a border, the user can resize the row or column height or width. To add an additional right-click menu, we can add the below code. The user can right-click&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/212/how-to-enable-resize-in-oj-data-grid/" rel="bookmark"><span class="screen-reader-text">How to enable resize in oj-data-grid</span></a>]]></description>
										<content:encoded><![CDATA[
<p>We can enable resize in oj-data-grid by adding the following html code to &lt;oj-data-grid>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;oj-data-grid
  id=&quot;datagrid&quot;
  style=&quot;width:100%;height:400px&quot;
  aria-label=&quot;My Data Grid&quot;
  data='{{ salaryDataADP }}'
  header.column.style=&quot;[[ headerColStyle ]]&quot;
  header.column.resizable.width=&quot;enable&quot;
  header.column.resizable.height=&quot;enable&quot;
  header.row.resizable.width=&quot;enable&quot;
  header.row.resizable.height=&quot;enable&quot;
  header.column.class-name=&quot;oj-helper-justify-content-flex-start&quot;
  cell.class-name=&quot;oj-helper-justify-content-flex-start&quot;
&gt;
  &lt;oj-menu slot=&quot;contextMenu&quot; aria-label=&quot;Employee Edit&quot;&gt;
    &lt;oj-option id=&quot;resizeWidth&quot; value=&quot;Resize Width&quot;
      data-oj-command=&quot;oj-datagrid-resizeWidth&quot;&gt;&lt;/oj-option&gt;
    &lt;oj-option id=&quot;resizeHeight&quot; value=&quot;Resize Height&quot;
      data-oj-command=&quot;oj-datagrid-resizeHeight&quot;&gt;&lt;/oj-option&gt;
    &lt;oj-option id=&quot;resizeFitToContent&quot; value=&quot;Resize Fit To Content&quot;
      data-oj-command=&quot;oj-datagrid-resizeFitToContent&quot;&gt;&lt;/oj-option&gt;
  &lt;/oj-menu&gt;
&lt;/oj-data-grid&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-data-grid</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;datagrid&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;width:100%;height:400px&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">aria-label</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;My Data Grid&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&#39;{{ salaryDataADP }}&#39;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;[[ headerColStyle ]]&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.row.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.row.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.class-name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-helper-justify-content-flex-start&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">cell.class-name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-helper-justify-content-flex-start&quot;</span></span>
<span class="line"><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-menu</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">slot</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;contextMenu&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">aria-label</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Employee Edit&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeWidth&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Width&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeWidth&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeHeight&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Height&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeHeight&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeFitToContent&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Fit To Content&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeFitToContent&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">oj-menu</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">oj-data-grid</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p>The following attributes on the header will allow resizing. When hovering on a border, the user can resize the row or column height or width.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;oj-data-grid
  header.column.resizable.width=&quot;enable&quot;
  header.column.resizable.height=&quot;enable&quot;
  header.row.resizable.width=&quot;enable&quot;
  header.row.resizable.height=&quot;enable&quot;
&gt;
&lt;/oj-data-grid&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-data-grid</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.column.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.row.resizable.width</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">header.row.resizable.height</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;enable&quot;</span></span>
<span class="line"><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">oj-data-grid</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p>To add an additional right-click menu, we can add the below code. The user can right-click and click on Resize width, and enter a desired width, like 100 or 200.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;oj-menu slot=&quot;contextMenu&quot; aria-label=&quot;Employee Edit&quot;&gt;
    &lt;oj-option id=&quot;resizeWidth&quot; value=&quot;Resize Width&quot;
      data-oj-command=&quot;oj-datagrid-resizeWidth&quot;&gt;&lt;/oj-option&gt;
    &lt;oj-option id=&quot;resizeHeight&quot; value=&quot;Resize Height&quot;
      data-oj-command=&quot;oj-datagrid-resizeHeight&quot;&gt;&lt;/oj-option&gt;
    &lt;oj-option id=&quot;resizeFitToContent&quot; value=&quot;Resize Fit To Content&quot;
      data-oj-command=&quot;oj-datagrid-resizeFitToContent&quot;&gt;&lt;/oj-option&gt;
  &lt;/oj-menu&gt;" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-menu</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">slot</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;contextMenu&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">aria-label</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Employee Edit&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeWidth&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Width&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeWidth&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeHeight&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Height&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeHeight&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">oj-option</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;resizeFitToContent&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">value</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;Resize Fit To Content&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">data-oj-command</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;oj-datagrid-resizeFitToContent&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">oj-option</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">oj-menu</span><span style="color: #808080">&gt;</span></span></code></pre></div>



<p>There are other commands available, like below ( see the jsdoc link for more information ). Few features are supported only in latest version of JET</p>



<figure class="wp-block-table"><table><thead><tr><th>Default Function</th><th>data-oj-command value</th></tr></thead><tbody><tr><td><kbd>Resize menu</kbd>&nbsp;(contains width and height resize)</td><td>oj-datagrid-resize</td></tr><tr><td><kbd>Sort Row menu</kbd>&nbsp;(contains ascending and descending sort)</td><td>oj-datagrid-sortRow</td></tr><tr><td><kbd>Sort Column menu</kbd>&nbsp;(contains ascending and descending sort)</td><td>oj-datagrid-sortCol</td></tr><tr><td><kbd>Resize Width</kbd></td><td>oj-datagrid-resizeWidth</td></tr><tr><td><kbd>Resize Height</kbd></td><td>oj-datagrid-resizeHeight</td></tr><tr><td><kbd>Resize Fit To Content</kbd></td><td>oj-datagrid-resizeFitToContent</td></tr><tr><td><kbd>Sort Row Ascending</kbd></td><td>oj-datagrid-sortRowAsc</td></tr><tr><td><kbd>Sort Row Descending</kbd></td><td>oj-datagrid-sortRowDsc</td></tr><tr><td><kbd>Sort Column Ascending</kbd></td><td>oj-datagrid-sortColAsc</td></tr><tr><td><kbd>Sort Column Descending</kbd></td><td>oj-datagrid-sortColDsc</td></tr><tr><td><kbd>Cut (for reordering)</kbd></td><td>oj-datagrid-cut</td></tr><tr><td><kbd>Paste (for reordering)</kbd></td><td>oj-datagrid-paste</td></tr><tr><td><kbd>CutCells (for data transferring)</kbd></td><td>oj-datagrid-cutCells</td></tr><tr><td><kbd>CopyCells (for data transferring)</kbd></td><td>oj-datagrid-copyCells</td></tr><tr><td><kbd>PasteCells (for data transferring)</kbd></td><td>oj-datagrid-pasteCells</td></tr><tr><td><kbd>Fill</kbd></td><td>oj-datagrid-fillCells</td></tr><tr><td><kbd>Select Multiple Cells on Touch Device</kbd></td><td>oj-datagrid-discontiguousSelection</td></tr><tr><td><kbd>Freeze Columns</kbd></td><td>oj-datagrid-freezeCol</td></tr><tr><td><kbd>Freeze Rows</kbd></td><td>oj-datagrid-freezeRow</td></tr><tr><td><kbd>Unfreeze Columns</kbd></td><td>oj-datagrid-unfreezeColumn</td></tr><tr><td><kbd>Unfreeze Rows</kbd></td><td>oj-datagrid-unfreezeRow</td></tr><tr><td><kbd>Hide Columns</kbd></td><td>oj-datagrid-hideCol</td></tr><tr><td><kbd>Unhide Columns</kbd></td><td>oj-datagrid-unhideCol</td></tr></tbody></table></figure>



<p>Screenshots</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="652" height="467" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image.png?resize=652%2C467&#038;ssl=1" alt="" class="wp-image-213" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image.png?w=652&amp;ssl=1 652w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image.png?resize=300%2C215&amp;ssl=1 300w" sizes="(max-width: 652px) 100vw, 652px" /></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="515" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-1.png?resize=1024%2C515&#038;ssl=1" alt="" class="wp-image-214" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-1.png?resize=1024%2C515&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-1.png?resize=300%2C151&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-1.png?resize=768%2C386&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/12/image-1.png?w=1432&amp;ssl=1 1432w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Live application URL: <a href="https://khalil232.com/apps/ojet-apps/?ojr=data-grid-example">https://khalil232.com/apps/ojet-apps/?ojr=data-grid-example</a></p>



<p>References: </p>



<p>helper classes: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/Helpers.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/Helpers.html</a></p>



<p>jet cookbook: <a href="https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=dataGrid&amp;demo=resizing">https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=dataGrid&amp;demo=resizing</a></p>



<p>link for oj-data-commands: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html#contextmenu-section">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html#contextmenu-section</a></p>



<p></p>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">212</post-id>	</item>
		<item>
		<title>How to refresh particular cell in oj-data-grid</title>
		<link>https://khalil232.com/vbcs-tutorials/209/how-to-refresh-particular-cell-in-oj-data-grid/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Sun, 03 Dec 2023 19:57:12 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=209</guid>

					<description><![CDATA[We can use the update event to refresh particular grid cells. Let us say we are displaying a grid with few rows where the user can edit the data and we are showing few calculated fields (like total or percentage). If we have to refresh the grid cells after updating the cell with the correct&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/209/how-to-refresh-particular-cell-in-oj-data-grid/" rel="bookmark"><span class="screen-reader-text">How to refresh particular cell in oj-data-grid</span></a>]]></description>
										<content:encoded><![CDATA[
<p>We can use the update event to refresh particular grid cells.</p>



<p>Let us say we are displaying a grid with few rows where the user can edit the data and we are showing few calculated fields (like total or percentage). If we have to refresh the grid cells after updating the cell with the correct value, we can use the following JavaScript code:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="// &quot;gridData&quot; is a variable holding grid information. 
// We can pass &quot;gridData&quot; to the JS function and call the below code.

let updateEventDetails = {
&quot;type&quot;: &quot;update&quot;,
&quot;detail&quot;: {
    &quot;ranges&quot;: [{
            &quot;rowOffset&quot;: 0,      // start of grid row
            &quot;columnOffset&quot;: 0,   // start of grid col
            &quot;rowCount&quot;:  gridData.counts.row // end of grid row
            &quot;columnCount&quot;: gridData.counts.column // end of grid col 
       }]
    }
};
gridData.dispatchEvent(updateEventDetails);" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// &quot;gridData&quot; is a variable holding grid information. </span></span>
<span class="line"><span style="color: #6A9955">// We can pass &quot;gridData&quot; to the JS function and call the below code.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">updateEventDetails</span><span style="color: #D4D4D4"> = {</span></span>
<span class="line"><span style="color: #CE9178">&quot;type&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;update&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #CE9178">&quot;detail&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #CE9178">&quot;ranges&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> [{</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #CE9178">&quot;rowOffset&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">,      </span><span style="color: #6A9955">// start of grid row</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #CE9178">&quot;columnOffset&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">,   </span><span style="color: #6A9955">// start of grid col</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #CE9178">&quot;rowCount&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">gridData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">counts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">row</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">// end of grid row</span></span>
<span class="line"><span style="color: #D4D4D4">            </span><span style="color: #CE9178">&quot;columnCount&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #9CDCFE">gridData</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">counts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">column</span><span style="color: #D4D4D4"> </span><span style="color: #6A9955">// end of grid col </span></span>
<span class="line"><span style="color: #D4D4D4">       }]</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">};</span></span>
<span class="line"><span style="color: #9CDCFE">gridData</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">dispatchEvent</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">updateEventDetails</span><span style="color: #D4D4D4">);</span></span></code></pre></div>



<p>The above code will refresh all the grid cells; if we want to refresh only a particular grid cell, we can set relative rowOffset, columnOffset, rowCount or columnCount.</p>



<p></p>



<p>We can also give multiple ranges if the cells cannot be captured in a single range.</p>



<p></p>



<p>When we use the refresh event on the grid, the grid becomes white and renders again. In order to avoid that, we use the update event. The update event doesn&#8217;t remove the focus, and only the cells in range will get refreshed. </p>



<p></p>



<p>If you have a huge amount of data in the grid, use the update event very rarely. It has a huge impact on performance. If you want a large number of cells to be refreshed, use the refresh event instead of the update event.</p>



<p></p>



<p>References:</p>



<p>Data Grid Cookbook: <a href="https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=dataGrid&amp;demo=overView">https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=dataGrid&amp;demo=overView</a></p>



<p>ojDataGrid JS doc: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojDataGrid.html</a></p>



<p>DataGridProviderUpdateEvent: <a href="https://www.oracle.com/webfolder/technetwork/jet/jsdocs/DataGridProviderUpdateEvent.html">https://www.oracle.com/webfolder/technetwork/jet/jsdocs/DataGridProviderUpdateEvent.html</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">209</post-id>	</item>
		<item>
		<title>Calling Rest API using JavaScript function in vbcs</title>
		<link>https://khalil232.com/vbcs-tutorials/183/calling-rest-api-using-javascript-function-in-vbcs/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Tue, 10 Oct 2023 17:56:43 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=183</guid>

					<description><![CDATA[We can call rest API configured in service connection using RestHelper The function getLineItems() can be called using action chain. We can call the rest API configured in the service connection using Rest Helper in APP UI as well We have to additional pass extensionId &#8211; site_MyExtension. ( id of the APP UI extension. You&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/183/calling-rest-api-using-javascript-function-in-vbcs/" rel="bookmark"><span class="screen-reader-text">Calling Rest API using JavaScript function in vbcs</span></a>]]></description>
										<content:encoded><![CDATA[
<p>We can call rest API configured in service connection using RestHelper</p>



<p>The function <strong>getLineItems()</strong> can be called using action chain.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="define([&quot;vb/helpers/rest&quot;], (Rest) =&gt; {
  &quot;use strict&quot;;

  class PageModule {
    getLineItems() {
      let endpointurl = &quot;buinessObjects/getalls_Country&quot;;
      let queryString = &quot;id is not null&quot;;

      return new Promise(function (resolve, reject) {
        var ep = Rest.get(endpointurl);
        ep.parameters({
          q: queryString,
          onlyData: true,
          limit: 50,
          orderBy: &quot;id:asc&quot;,
        });
        ep.fetch().then(function (result) {
          if (result.response.ok) {
            resolve(result.body.items);
          } else {
            resolve([]);
          }
        });
      });
    }
  }

  return PageModule;
});" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #82AAFF">define</span><span style="color: #BABED8">([</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">vb/helpers/rest</span><span style="color: #89DDFF">&quot;</span><span style="color: #BABED8">]</span><span style="color: #89DDFF">,</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">Rest</span><span style="color: #89DDFF">)</span><span style="color: #BABED8"> </span><span style="color: #C792EA">=&gt;</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">use strict</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #C792EA">class</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">PageModule</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">    getLineItems</span><span style="color: #89DDFF">()</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">endpointurl</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">buinessObjects/getalls_Country</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">queryString</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">id is not null</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #89DDFF">new</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">Promise</span><span style="color: #F07178">(</span><span style="color: #C792EA">function</span><span style="color: #F07178"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">resolve</span><span style="color: #89DDFF">,</span><span style="color: #F07178"> </span><span style="color: #BABED8; font-style: italic">reject</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">var</span><span style="color: #F07178"> </span><span style="color: #BABED8">ep</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">Rest</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">get</span><span style="color: #F07178">(</span><span style="color: #BABED8">endpointurl</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #BABED8">ep</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">parameters</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          q</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #BABED8">queryString</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          onlyData</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #FF9CAC">true</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          limit</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #F78C6C">50</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          orderBy</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">id:asc</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #BABED8">ep</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">fetch</span><span style="color: #F07178">()</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">then</span><span style="color: #F07178">(</span><span style="color: #C792EA">function</span><span style="color: #F07178"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">result</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #F07178"> (</span><span style="color: #BABED8">result</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">response</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">ok</span><span style="color: #F07178">) </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">(</span><span style="color: #BABED8">result</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">body</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">items</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span><span style="color: #F07178"> </span><span style="color: #89DDFF; font-style: italic">else</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">([])</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #BABED8">PageModule</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #89DDFF">}</span><span style="color: #BABED8">)</span><span style="color: #89DDFF">;</span></span></code></pre></div>



<p></p>



<p></p>



<p>We can call the rest API configured in the service connection using Rest Helper in APP UI as well</p>



<p>We have to additional pass extensionId &#8211; site_MyExtension. ( id of the APP UI extension.</p>



<p>You can find the extension id from -&gt; </p>



<ul class="wp-block-list">
<li>Open workspace, click on extension name in left hand side </li>



<li>Go to settings and you will find extension id.</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="define([&quot;vb/helpers/rest&quot;], (Rest) =&gt; {
  &quot;use strict&quot;;

  class PageModule {
    getLineItems() {
      let extensionId = &quot;site_MyExtension&quot;
    
      let endpointurl = &quot;site_MyExtension:saasRestApi/getalls_Country&quot;;
      let queryString = &quot;id is not null&quot;;
 
      return new Promise(function (resolve, reject) {
        var ep = Rest.get(endpointurl, { extensionId: &quot;site_MyExtension&quot; } );
        ep.parameters({
          q: queryString,
          onlyData: true,
          limit: 50,
          orderBy: &quot;id:asc&quot;,
        });
        ep.fetch().then(function (result) {
          if (result.response.ok) {
            resolve(result.body.items);
          } else {
            resolve([]);
          }
        });
      });
    }
  }

  return PageModule;
});" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #82AAFF">define</span><span style="color: #BABED8">([</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">vb/helpers/rest</span><span style="color: #89DDFF">&quot;</span><span style="color: #BABED8">]</span><span style="color: #89DDFF">,</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">Rest</span><span style="color: #89DDFF">)</span><span style="color: #BABED8"> </span><span style="color: #C792EA">=&gt;</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">use strict</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #C792EA">class</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">PageModule</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">    getLineItems</span><span style="color: #89DDFF">()</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">extensionId</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">site_MyExtension</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #F07178">    </span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">endpointurl</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">site_MyExtension:saasRestApi/getalls_Country</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #C792EA">let</span><span style="color: #F07178"> </span><span style="color: #BABED8">queryString</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">id is not null</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178"> </span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #89DDFF">new</span><span style="color: #F07178"> </span><span style="color: #FFCB6B">Promise</span><span style="color: #F07178">(</span><span style="color: #C792EA">function</span><span style="color: #F07178"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">resolve</span><span style="color: #89DDFF">,</span><span style="color: #F07178"> </span><span style="color: #BABED8; font-style: italic">reject</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #C792EA">var</span><span style="color: #F07178"> </span><span style="color: #BABED8">ep</span><span style="color: #F07178"> </span><span style="color: #89DDFF">=</span><span style="color: #F07178"> </span><span style="color: #BABED8">Rest</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">get</span><span style="color: #F07178">(</span><span style="color: #BABED8">endpointurl</span><span style="color: #89DDFF">,</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span><span style="color: #F07178"> extensionId</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">site_MyExtension</span><span style="color: #89DDFF">&quot;</span><span style="color: #F07178"> </span><span style="color: #89DDFF">}</span><span style="color: #F07178"> )</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #BABED8">ep</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">parameters</span><span style="color: #F07178">(</span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          q</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #BABED8">queryString</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          onlyData</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #FF9CAC">true</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          limit</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #F78C6C">50</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">          orderBy</span><span style="color: #89DDFF">:</span><span style="color: #F07178"> </span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">id:asc</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">,</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #BABED8">ep</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">fetch</span><span style="color: #F07178">()</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">then</span><span style="color: #F07178">(</span><span style="color: #C792EA">function</span><span style="color: #F07178"> </span><span style="color: #89DDFF">(</span><span style="color: #BABED8; font-style: italic">result</span><span style="color: #89DDFF">)</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #F07178"> (</span><span style="color: #BABED8">result</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">response</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">ok</span><span style="color: #F07178">) </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">(</span><span style="color: #BABED8">result</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">body</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">items</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span><span style="color: #F07178"> </span><span style="color: #89DDFF; font-style: italic">else</span><span style="color: #F07178"> </span><span style="color: #89DDFF">{</span></span>
<span class="line"><span style="color: #F07178">            </span><span style="color: #82AAFF">resolve</span><span style="color: #F07178">([])</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">          </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">        </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">      </span><span style="color: #89DDFF">}</span><span style="color: #F07178">)</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #F07178">    </span><span style="color: #89DDFF">}</span></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F07178">  </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #F07178"> </span><span style="color: #BABED8">PageModule</span><span style="color: #89DDFF">;</span></span>
<span class="line"><span style="color: #89DDFF">}</span><span style="color: #BABED8">)</span><span style="color: #89DDFF">;</span></span></code></pre></div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">183</post-id>	</item>
		<item>
		<title>How to handle large text in table or grid</title>
		<link>https://khalil232.com/vbcs-tutorials/174/how-to-handle-large-text-in-table-or-grid/</link>
		
		<dc:creator><![CDATA[khalil]]></dc:creator>
		<pubDate>Tue, 10 Oct 2023 17:40:30 +0000</pubDate>
				<category><![CDATA[VBCS-Tutorials]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OJET]]></category>
		<category><![CDATA[VBCS]]></category>
		<guid isPermaLink="false">https://khalil232.com/?p=174</guid>

					<description><![CDATA[By default long text in table or data-grid will expand, showing all text in single line, that may not be very useful. Columns will get expanded and few columns which we want to show will be hidden. We can set for the column, so that it doesn&#8217;t expand. e.g.: In this for Address we can&#8230;&#160;<a href="https://khalil232.com/vbcs-tutorials/174/how-to-handle-large-text-in-table-or-grid/" rel="bookmark"><span class="screen-reader-text">How to handle large text in table or grid</span></a>]]></description>
										<content:encoded><![CDATA[
<p>By default long text in table or data-grid will expand, showing all text in single line, that may not be very useful. </p>



<p>Columns will get expanded and few columns which we want to show will be hidden.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="343" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-1.png?resize=1024%2C343&#038;ssl=1" alt="" class="wp-image-175" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-1.png?resize=1024%2C343&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-1.png?resize=300%2C101&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-1.png?resize=768%2C258&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-1.png?w=1264&amp;ssl=1 1264w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;oj-table class=&quot;custom-table&quot; 
  id=&quot;employeetable&quot;
  scroll-policy=&quot;loadMoreOnScroll&quot; 
  class=&quot;oj-flex-item oj-sm-12 oj-md-12&quot;
  data=&quot;[[ employeeListADP ]]&quot; 
  columns='[
            {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},
            {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},
            {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},
            {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},
            {&quot;headerText&quot;:&quot;Address&quot;,&quot;field&quot;:&quot;address&quot;},
            {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}
        ]'&gt;
  &lt;/oj-table&gt;" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">custom-table</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">  </span><span style="color: #C792EA">id</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">employeetable</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">  </span><span style="color: #C792EA">scroll-policy</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">loadMoreOnScroll</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">  </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">oj-flex-item oj-sm-12 oj-md-12</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">  </span><span style="color: #C792EA">data</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">[[ employeeListADP ]]</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">  </span><span style="color: #C792EA">columns</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">[</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Address&quot;,&quot;field&quot;:&quot;address&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">            {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}</span></span>
<span class="line"><span style="color: #C3E88D">        ]</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #BABED8">  </span><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF">&gt;</span></span></code></pre></div>



<p>We can set for the column, so that it doesn&#8217;t expand.</p>



<p>e.g.: In this for Address we can give max-width as 200px </p>



<p>This will show the text up to 200px and later it is show as &#8230; This is similar to <strong>text-overflow: ellipsis;</strong> css code </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="332" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-2.png?resize=1024%2C332&#038;ssl=1" alt="" class="wp-image-176" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-2.png?resize=1024%2C332&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-2.png?resize=300%2C97&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-2.png?resize=768%2C249&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-2.png?w=1263&amp;ssl=1 1263w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;oj-table class=&quot;custom-table&quot; 
    id=&quot;employeetable&quot;
    scroll-policy=&quot;loadMoreOnScroll&quot;
    class=&quot;oj-flex-item oj-sm-12 oj-md-12&quot;
    data=&quot;[[ employeeListADP ]]&quot; 
    columns='[
      {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},
      {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},
      {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},
      {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},
      {&quot;headerText&quot;:&quot;Address&quot;,&quot;field&quot;:&quot;address&quot;,&quot;style&quot;: &quot;max-width:200px&quot;},
      {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}
    ]'&gt;
&lt;/oj-table&gt;" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">custom-table</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">id</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">employeetable</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">scroll-policy</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">loadMoreOnScroll</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">oj-flex-item oj-sm-12 oj-md-12</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">data</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">[[ employeeListADP ]]</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">columns</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">[</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Address&quot;,&quot;field&quot;:&quot;address&quot;,&quot;style&quot;: &quot;max-width:200px&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">      {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}</span></span>
<span class="line"><span style="color: #C3E88D">    ]</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF">&gt;</span></span></code></pre></div>



<p></p>



<p>We can try to wrap the text using <strong>oj-helper-overflow-wrap-anywhere oj-helper-white-space-normal</strong> classes</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="333" src="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-3.png?resize=1024%2C333&#038;ssl=1" alt="" class="wp-image-177" srcset="https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-3.png?resize=1024%2C333&amp;ssl=1 1024w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-3.png?resize=300%2C98&amp;ssl=1 300w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-3.png?resize=768%2C250&amp;ssl=1 768w, https://i0.wp.com/khalil232.com/wp-content/uploads/2023/10/image-3.png?w=1255&amp;ssl=1 1255w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="" style="font-size:clamp(14px, .875rem, 21px);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="&lt;h5&gt;Table with added width to Address column&lt;/h5&gt;
&lt;oj-table class=&quot;custom-table&quot;  
    id=&quot;employeetable&quot;  
    scroll-policy=&quot;loadMoreOnScroll&quot; 
    class=&quot;oj-flex-item oj-sm-12 oj-md-12&quot;
    data=&quot;[[ employeeListADP ]]&quot; 
    columns='[
        {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},
        {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},
        {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},
        {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},
        {  
            &quot;headerText&quot;:&quot;Address&quot;,
            &quot;field&quot;:&quot;address&quot;,
            &quot;className&quot;: &quot;oj-helper-overflow-wrap-anywhere oj-helper-white-space-normal&quot;
        },
        {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}
    ]'&gt;
&lt;/oj-table&gt;
" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki material-theme-ocean" style="background-color: #0F111A" tabindex="0"><code><span class="line"><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">h5</span><span style="color: #89DDFF">&gt;</span><span style="color: #BABED8">Table with added width to Address column</span><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">h5</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #89DDFF">&lt;</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF"> </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">custom-table</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">  </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">id</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">employeetable</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF">  </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">scroll-policy</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">loadMoreOnScroll</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">class</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">oj-flex-item oj-sm-12 oj-md-12</span><span style="color: #89DDFF">&quot;</span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">data</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&quot;</span><span style="color: #C3E88D">[[ employeeListADP ]]</span><span style="color: #89DDFF">&quot;</span><span style="color: #89DDFF"> </span></span>
<span class="line"><span style="color: #89DDFF">    </span><span style="color: #C792EA">columns</span><span style="color: #89DDFF">=</span><span style="color: #89DDFF">&#39;</span><span style="color: #C3E88D">[</span></span>
<span class="line"><span style="color: #C3E88D">        {&quot;headerText&quot;:&quot;Id&quot;,&quot;field&quot;:&quot;id&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">        {&quot;headerText&quot;:&quot;Employee Number&quot;,&quot;field&quot;:&quot;empNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">        {&quot;headerText&quot;:&quot;Employee Name&quot;,&quot;field&quot;:&quot;empName&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">        {&quot;headerText&quot;:&quot;Department Name&quot;,&quot;field&quot;:&quot;departmentNumber&quot;},</span></span>
<span class="line"><span style="color: #C3E88D">        {  </span></span>
<span class="line"><span style="color: #C3E88D">            &quot;headerText&quot;:&quot;Address&quot;,</span></span>
<span class="line"><span style="color: #C3E88D">            &quot;field&quot;:&quot;address&quot;,</span></span>
<span class="line"><span style="color: #C3E88D">            &quot;className&quot;: &quot;oj-helper-overflow-wrap-anywhere oj-helper-white-space-normal&quot;</span></span>
<span class="line"><span style="color: #C3E88D">        },</span></span>
<span class="line"><span style="color: #C3E88D">        {&quot;headerText&quot;:&quot;Address line&quot;,&quot;field&quot;:&quot;addressLine2&quot;}</span></span>
<span class="line"><span style="color: #C3E88D">    ]</span><span style="color: #89DDFF">&#39;</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"><span style="color: #89DDFF">&lt;/</span><span style="color: #F07178">oj-table</span><span style="color: #89DDFF">&gt;</span></span>
<span class="line"></span></code></pre></div>



<p>Link to live application &#8211; <a href="https://khalil232.com/apps/ojet-apps/?ojr=table-long-text">https://khalil232.com/apps/ojet-apps/?ojr=table-long-text</a></p>



<p>Link for <strong>text-overflow: ellipsis</strong> &#8211; <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow">https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow</a></p>



<p>Link for oradocs for content wrap &#8211; <a href="https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=table&amp;demo=columnContentWrapping">https://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=table&amp;demo=columnContentWrapping</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">174</post-id>	</item>
	</channel>
</rss>
