ThePorge Posted January 11, 2021 Share Posted January 11, 2021 Overflow page Text is truncated. I have a javascript rule written that returns non-formatted text based off a supplied number. In this result the number given is 555. The script returns groups of 100 up to the given qty. Each group is separated by a newline Code: var finalCount = Field("Qty");//Keeps the final record count being printed by groups var myCount = finalCount;//Will be used to determine the number of groups (100ea) needed for qty printing var myIndex1 = 1;//Lowside number of every output group range var myIndex2 = 100;//Highside number of every output group range var myAnswer = [];//Array to hold the collected groups myCount = myCount/100;//breaks records to be printed by 100 myCount = Math.ceil(myCount);//always rounds up 100 group count for (i = 0; i < myCount; i++) { if (myCount == 1) { myAnswer.push("1 thru " + finalCount); break; } if (myCount == i + 1) { myAnswer.push(myIndex1 + " thru " + finalCount); break; } myAnswer.push(myIndex1 + " thru " + myIndex2); myIndex1 = myIndex1 + 100; myIndex2 = myIndex2 + 100; } return myAnswer.join("\n"); Result: 1 thru 100 101 thru 200 201 thru 300 301 thru 400 401 thru 500 501 thru 555 This result is being passed to a text block that will show 1 line but is set to overflow the copy to a new page and continue in this fashion until all lines go onto a page. The problem I'm running into is the 2nd to last page is truncated and that result moves to the last overflow and the last line doesn't show at all. I've also included the test file I was working on this in the attached zip. I'm not 100% certain if this is the code or some other flaw in my setup that I'm overlooking. Any help? Tks GeorgeArchive.zip Quote Link to comment Share on other sites More sharing options...
Dan Korn Posted January 15, 2021 Share Posted January 15, 2021 This is a kind of complicated keeps condition, related to the Widows setting, and how the newline ('\n') is handled as a line break (<br>) but not a paragraph break (<p>). That said, an Overflow page is not the most optimal solution here. Instead, I would just use a single body page, and repeat the record. All you need to do is declare the array in the JavaScript Globals, like so: myAnswer = [];//Array to hold the collected groups Then rest of the logic from your rule can go into OnRecordStart, with a few changes: var finalCount = Field("Qty");//Keeps the final record count being printed by groups var myCount = finalCount;//Will be used to determine the number of groups (100ea) needed for qty printing var myIndex1 = 1;//Lowside number of every output group range var myIndex2 = 100;//Highside number of every output group range //myAnswer = [];//Array to hold the collected groups, global if (FusionPro.Composition.repeatRecordNumber == 1) { myAnswer = []; myCount = myCount/100;//breaks records to be printed by 100 myCount = Math.ceil(myCount);//always rounds up 100 group count for (i = 0; i < myCount; i++) { if (myCount == 1) { myAnswer.push("1 thru " + finalCount); break; } if (myCount == i + 1) { myAnswer.push(myIndex1 + " thru " + finalCount); break; } myAnswer.push(myIndex1 + " thru " + myIndex2); myIndex1 = myIndex1 + 100; myIndex2 = myIndex2 + 100; } FusionPro.Composition.repeatRecordCount = myAnswer.length; } FusionPro.Composition.AddVariable("Group Range Rule", myAnswer[FusionPro.Composition.repeatRecordNumber - 1]); return myAnswer.join("\n"); I've attached the template with these changes as well.PrintLogCoverSheet-Dan.pdf Quote Link to comment Share on other sites More sharing options...
ThePorge Posted January 18, 2021 Author Share Posted January 18, 2021 Thank you sir....working great. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.