Go Back   MarcomCentral (PTI) and FusionPro User Communities > Software-Related Talk > The JavaScript Library

Notices

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old January 11th, 2021, 11:53 AM
ThePorge ThePorge is offline
Regular Contributor
 
Join Date: Aug 2011
Location: Georgia
Posts: 74
Default Truncated text

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:
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:
Quote:
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 George
Attached Files
File Type: zip Archive.zip (45.0 KB, 5 views)
Reply With Quote
  #2  
Old January 15th, 2021, 12:04 PM
Dan Korn's Avatar
Dan Korn Dan Korn is offline
FusionPro Senior Engineer / Forum Moderator
 
Join Date: Aug 2008
Location: Chicago, IL
Posts: 4,591
Default Re: Truncated text

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:
Code:
myAnswer = [];//Array to hold the collected groups
Then rest of the logic from your rule can go into OnRecordStart, with a few changes:
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

//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.
Attached Files
File Type: pdf PrintLogCoverSheet-Dan.pdf (18.3 KB, 3 views)
__________________
Dan Korn
FusionPro Developer / JavaScript Guru / Forum Moderator
PTI Marketing Technologies | Printable | MarcomCentral
LinkedIn

I am a not a Support engineer, and this forum is not a substitute for Support. My participation on this forum is primarily as a fellow user (and a forum moderator). I am happy to provide help and answers to questions when I can; however, there is no guarantee that I, or anyone else on this forum, will be able to answer all questions or fix any problems. If I ask for files to clarify an issue, I might not be able to look at them personally. I am not able to answer private messages, emails, or phone calls unless they go through proper Support channels. Please direct any sales or pricing questions to your salesperson or inquiries@marcom.com.

Complex template-building questions, as well as all installation and font questions or problems, should be directed to FusionProSupport@marcom.com. Paid consulting work may be required to fulfill your template-building needs.

This is a publicly viewable forum. Please DO NOT post fonts, or other proprietary content, to this forum. Also, please DO NOT post any "live" data with real names, addresses, or any other personal, private, or confidential data.

Please include the specific versions of FusionPro, Acrobat, and your operating system in any problem reports or help requests. I recommend putting this information in your forum signature. Please also check your composition log (.msg) file for relevant error or warning messages.

Please post questions specific to the MarcomCentral Enterprise and Web-to-Print applications in the MarcomCentral forum. Click here to request access. Or contact your Business Relationship Manager (BRM/CPM) for assistance.

Please direct any questions specific to EFI's Digital StoreFront (DSF) to EFI support.

How To Ask Questions The Smart Way

The correct spellings are JavaScript, FusionPro, and MarcomCentral (each with two capital letters and no spaces). Acceptable abbreviations are JS, FP, and MC (or MCC). There is no "S" at the end of "Expression" or "Printable"! The name of the product is FusionPro, not "Fusion". "Java" is not is not the same as JavaScript.

Check out the JavaScript Guide and JavaScript Reference! FusionPro 8.0 and newer use JavaScript 1.7. Older versions use JavaScript 1.5.

return "KbwbTdsjqu!spdlt\"".replace(/./g,function(w){return String.fromCharCode(w.charCodeAt()-1)});
Reply With Quote
  #3  
Old January 18th, 2021, 10:33 AM
ThePorge ThePorge is offline
Regular Contributor
 
Join Date: Aug 2011
Location: Georgia
Posts: 74
Default Re: Truncated text

Thank you sir....working great.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:08 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
(c) 2011, PTI Marketing Technologies™, Inc.