I'm now trying to add one more level of complexity to this project. We want to take this script and make it possible for the orderer to fill in up to 20 facts but only make 5 required. If they leave a fact blank the script would skip it and randomly place only those that contain text. Below is the script in it's current state. Can one of you please assist?
FusionPro.Composition.repeatRecordCount = Field("Quantity");
var facts = [TaggedDataField("Fact1"),TaggedDataField("Fact2"),TaggedDataField("Fact3"),TaggedDataField("Fact4"),TaggedDataField("Fact5"),TaggedDataField("Fact6"),TaggedDataField("Fact7"),TaggedDataField("Fact8"),TaggedDataField("Fact9"),TaggedDataField("Fact10"),TaggedDataField("Fact11"),TaggedDataField("Fact12"),TaggedDataField("Fact13"),TaggedDataField("Fact14"),TaggedDataField("Fact15"),TaggedDataField("Fact16"),TaggedDataField("Fact17"),TaggedDataField("Fact18"),TaggedDataField("Fact19"),TaggedDataField("Fact20")]; // Create an array of facts
result = []; // Create an array to hold the facts at random
for (var i=0; i<3; i++){
var number = Math.floor(Math.random()*facts.length); // generate a random number between 0 and length of the array
result.push(facts[number]); // push the fact into the result array
facts.splice(number,1); // remove that fact from the Facts array so that it won't be pulled again
}
FindTextFrame("Fact1").content = result[0];
FindTextFrame("Fact2").content = result[1];
FindTextFrame("Fact3").content = result[2];