Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

Don't print empty fields...?

Avatar

Former Community Member
I need a little help... I am creating a User Request Form and i would

like the form to print only with the fields/boxes that are checked or

filled. I am not too experienced with scripts so i was looking for some

advice and or where i could find out how to accomplish this. Many

thanks!
1 Reply

Avatar

Former Community Member
You will have to get a list of all objects on the form, test then one by one to make sure you have a field, see if the field is empty and if so then set it to be Visible (screen only).



This script is not trivial for a non-programmer. If you want to try it here is the basis for creating a script object that will allow you to get all fields and set the relevant property to -print so that it will be excluded from the print. This is a function meant to go into a scripting object. To call the scripting object use:



scriptobjectname.NoPrintEmptyFields(form1);



/*************************************************************************************

Function: NoPrintEmptyFields

Description: This function will set all empty fieldsso that they will not print.

IN: The parent subform. It could also be an element that contains subform like form1

OUT : nothing

**************************************************************************************/

function NoPrintEmptyFields(myParentObject){



var allChildElements;

var intNumElements;

var currentElement;

var j;



//Get all the child nodes of the parent element

allChildElements = myParentObject.nodes;



//Total number of element in the object

intNumElements = allChildElements.length;



//Loop through all the child elements

for(j=0; j< intNumElements;j++){

currentElement = allChildElements.item(j);

//If the element is another subform we'll recusively call the function again

if(allChildElements.item(j).className == "subform"){

LockAllFields(currentElement);

}

//If the objects are fields and they are empty then we will set the relevant property to -print

else if((currentElement.className == "field") && (currentElement.rawValue == null)){



currentElement.relevant = "-print";



}

//Check for exclusion groups - Radio Buttons

else if(currentElement.className == "exclGroup"){

for(k=0; k< currentElement.nodes.length;k++){

if(currentElement.nodes.item(k).className == "field"){

//set the relevant property for the radio buttons individually

currentElement.relevant = "-print";

}



}

}

}

}//end function