Embedded List Add or New Button

Radhika Aluru1
Mega Contributor

Hi All,

I have added an embedded list to a form. When user want to add any record in that related table, he needs to go through the Insert New Row and edit the entered record. In the normal related list, we can see New button. I searched in embedded list control and there is no option to set New or add button unlike in related list control.

I can see the Add button from the attachment of the below forum post.

Embedded Lists

Is there any setting that I need to modify to see the Add button in the embedded list?

Regards,
Radhika

1 ACCEPTED SOLUTION

Here is the UI macro code that we have created. I have used the sample code from SNC guru to open the popup and added little bit of code to pass the values to the dialog form



<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
    <g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
    <j:set var="jvar_n" value="add_${jvar_guid}:${ref}"/>
                <img border="0" src="add.gifx" title="${gs.getMessage('Add')}" alt="${gs.getMessage('Add')}" onclick="addEditUserPopopt('${ref}')"/>
          <script>
          //OnClick function for UI macro


          function addEditUserPopopt(reference){
               
                var v = gel('sys_uniqueValue').value;


if(v == ''){
                      var dialog = new GlideDialogForm('Add, your table name',saveOriginalForm);
                      dialog.setSysID('-1'); //Pass in -1 to create a new record
                }
               
                else{
         
               
                      var dialog = new GlideDialogForm('Add ', 'your table name',saveOriginalForm);
                      dialog.setSysID(-1); //Pass in reference sys_id to edit record
                }
                dialog.addParm('sysparm_view', 'default'); //Specify a form view
                dialog.addParm('sysparm_form_only', 'true'); //Remove related lists
             


                //Callback function executed from dialog submit
             
dialog.setLoadCallback(function(iframeDoc) {
var dialogFrame = 'defaultView' in iframeDoc ? iframeDoc.defaultView : iframeDoc.parentWindow;
var interval;
var count = 0;
interval = setInterval(function() {
try {
if (dialogFrame.g_form) {
dialogFrame.g_form.setValue('related field', v);
clearInterval(interval);
dialogFrame = null;
} else if (count > 50) {
clearInterval(interval);
dialogFrame = null;
}
}catch (e) {
clearInterval(interval);
dialogFrame = null;
}
count++;
}, 200);
});
dialog.render(); //Open the dialog
                }
function saveOriginalForm(action){
g_form.save();
}        
    </script>
</j:jelly>


View solution in original post

20 REPLIES 20

mel_harty
Kilo Contributor

Worthy to note that I wanted the other way round, I wanted to add an embedded list and the insert row button/field was not there. The workaround I did was to add the list as related list first, personalize and enable the list insert row, remove the related list from the form, then add it again from the form layout instead.



Hope this helps someone some day, took a lot of time from me.


I appreciate you posting this as it solved my issue. I know this is an old post but wanted to add to this in-case someone else runs into this issue:



If you create a new defined related list (System Definition > Relationships) and show it on the form as an embedded list, the "Add New Row" functionality is disabled by default. There didn't appear to be any option to enable this (which was going to force me to do a UI Macro and GlideDialogForm to add records to the list while on the form). However, removing the embedded list, adding as a related list, personalize > list control > List edit insert row, then putting the related list back as an embedded list will add the Insert new row line to the defined relationship.



Thanks again!


After smashing my head around for an hour, this worked Crazzy!!!


Can you share what you did to get this working?

robw
Kilo Contributor

Thanks Cary - this worked like a charm and saved me a ton of time chasing down more elaborate solutions!