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

Notices

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old February 11th, 2019, 01:07 PM
LyndaEngelage LyndaEngelage is offline
Junior Community Member
 
Join Date: Sep 2014
Posts: 20
Default Suppressing empty rows in a Table

I have created a Table as follows. My question is how do I suppress the rows if the data is empty so that the last line moves up under the last record with data. I have a total of 12 possible rows with a total row at the last. The table looks great now but need to purge the empty rows for each record.



new FPTable;
var table = new FPTable;
table.AddColumns(13500,1800,5400);
table.AddRows(13);

table.Rows[0].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[0].Cells[0].HAlign = "Left";
table.Rows[0].Cells[0].Content=Field("Designation_1");
table.Rows[0].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[0].Cells[1].HAlign = "Center";
table.Rows[0].Cells[1].Content=Field("GC1");
table.Rows[0].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[0].Cells[2].Content=Field("Amount_1");

table.Rows[1].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[1].Cells[0].HAlign = "Left";
table.Rows[1].Cells[0].Content=Field("Designation_2");
table.Rows[1].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[1].Cells[1].HAlign = "Center";
table.Rows[1].Cells[1].Content=Field("GC2");
table.Rows[1].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[1].Cells[2].Content=Field("Amount_2");

table.Rows[2].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[2].Cells[0].HAlign = "Left";
table.Rows[2].Cells[0].Content=Field("Designation_3");
table.Rows[2].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[2].Cells[1].HAlign = "Center";
table.Rows[2].Cells[1].Content=Field("GC3");
table.Rows[2].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[2].Cells[2].Content=Field("Amount_3");

table.Rows[3].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[3].Cells[0].HAlign = "Left";
table.Rows[3].Cells[0].Content=Field("Designation_4");
table.Rows[3].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[3].Cells[1].HAlign = "Center";
table.Rows[3].Cells[1].Content=Field("GC4");
table.Rows[3].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[3].Cells[2].Content=Field("Amount_4");

table.Rows[4].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[4].Cells[0].HAlign = "Left";
table.Rows[4].Cells[0].Content=Field("Designation_5");
table.Rows[4].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[4].Cells[1].HAlign = "Center";
table.Rows[4].Cells[1].Content=Field("GC5");
table.Rows[4].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[4].Cells[2].Content=Field("Amount_5");

table.Rows[5].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[5].Cells[0].HAlign = "Left";
table.Rows[5].Cells[0].Content=Field("Designation_6");
table.Rows[5].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[5].Cells[1].HAlign = "Center";
table.Rows[5].Cells[1].Content=Field("GC6");
table.Rows[5].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[5].Cells[2].Content=Field("Amount_6");

table.Rows[6].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[6].Cells[0].HAlign = "Left";
table.Rows[6].Cells[0].Content=Field("Designation_7");
table.Rows[6].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[6].Cells[1].HAlign = "Center";
table.Rows[6].Cells[1].Content=Field("GC7");
table.Rows[6].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[6].Cells[2].Content=Field("Amount_7");

table.Rows[7].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[7].Cells[0].HAlign = "Left";
table.Rows[7].Cells[0].Content=Field("Designation_8");
table.Rows[7].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[7].Cells[1].HAlign = "Center";
table.Rows[7].Cells[1].Content=Field("GC8");
table.Rows[7].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[7].Cells[2].Content=Field("Amount_8");

table.Rows[8].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[8].Cells[0].HAlign = "Left";
table.Rows[8].Cells[0].Content=Field("Designation_9");
table.Rows[8].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[8].Cells[1].HAlign = "Center";
table.Rows[8].Cells[1].Content=Field("GC9");
table.Rows[8].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[8].Cells[2].Content=Field("Amount_9");

table.Rows[9].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[9].Cells[0].HAlign = "Left";
table.Rows[9].Cells[0].Content=Field("Designation_10");
table.Rows[9].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[9].Cells[1].HAlign = "Center";
table.Rows[9].Cells[1].Content=Field("GC10");
table.Rows[9].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[9].Cells[2].Content=Field("Amount_10");

table.Rows[10].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[10].Cells[0].HAlign = "Left";
table.Rows[10].Cells[0].Content=Field("Designation_11");
table.Rows[10].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[10].Cells[1].HAlign = "Center";
table.Rows[10].Cells[1].Content=Field("GC11");
table.Rows[10].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[10].Cells[2].Content=Field("Amount_11");

table.Rows[11].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[11].Cells[0].HAlign = "Left";
table.Rows[11].Cells[0].Content=Field("Designation_12");
table.Rows[11].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[11].Cells[1].HAlign = "Center";
table.Rows[11].Cells[1].Content=Field("GC12");
table.Rows[11].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[11].Cells[2].Content=Field("Amount_12");

table.Rows[12].Cells[0].Margins = {Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[12].Cells[0].HAlign = "Left";
table.Rows[12].Cells[0].Font = "Brandon Grotesque Bold";
table.Rows[12].Cells[0].Content="TOTAL 2018 TAX-DEDUCTIBLE GIVING:";
table.Rows[12].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
table.Rows[12].Cells[2].HAlign = "Center";
table.Rows[12].Cells[2].Font = "Brandon Grotesque Bold";
table.Rows[12].Cells[2].Content=Field("CAL18_TTL");

return table.MakeTags();
Reply With Quote
  #2  
Old February 11th, 2019, 02:20 PM
kjacobson's Avatar
kjacobson kjacobson is offline
Junior Community Member
 
Join Date: Oct 2008
Location: Alameda, CA
Posts: 49
Default Re: Suppressing empty rows in a Table

Hi LyndaEngelage;


If you want to skip a row, you can use the skip type with a condition to check if there is content.


Code:
if (Field("Amount_10")=="") {
    table.Rows[9].Type = "Skip";
} else {
    table.Rows[9].Cells[0].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
    table.Rows[9].Cells[0].HAlign = "Left";
    table.Rows[9].Cells[0].Content=Field("Designation_10");
    table.Rows[9].Cells[1].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
    table.Rows[9].Cells[1].HAlign = "Center";
    table.Rows[9].Cells[1].Content=Field("GC10");
    table.Rows[9].Cells[2].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
    table.Rows[9].Cells[2].Content=Field("Amount_10");
}

I've had formatting issue with skipped rows in the past. I have found that it's better to use loops in tables especially when there are sequential fields like you are using.


Code:
new FPTable;
var table = new FPTable;
table.AddColumns(13500,1800,5400);

for (i=1;i<=12;i++) {//Loop through fields
    if (Field("Amount_"+i)!="") {//add a row if the Amount field is not empty
        var tableRow = table.AddRow();  
        tableRow.Cells[0].HAlign = "Left";
        tableRow.Cells[1].HAlign = "Center";
        tableRow.SetContents(Field("Designation_"+i),Field("GC"+i),Field("Amount_"+i)); //Add content to the columns
        for (c=0;c<=2;c++) {//loop through cells to apply margins
            tableRow.Cells[c].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
        }
    }
}

var totalRow = table.AddRow(); //Add total row
totalRow.Cells[0].HAlign = "Left";
totalRow.Cells[2].HAlign = "Center";
totalRow.SetContents("TOTAL 2018 TAX-DEDUCTIBLE GIVING:","",Field("CAL18_TTL")); //Set total row content
for (c=0;c<=2;c++) {//loop through cells to apply margins & font
    totalRow.Cells[c].Margins = { Top:0, Bottom:68, Left:0, Right:0 };
    totalRow.Cells[c].Font = "Brandon Grotesque Bold";
}

return table.MakeTags();

Hope this helps
__________________
Windows 7 | InDesign CC 2017 | Acrobat DC 2019 | FusionPro 10.1.9
Reply With Quote
  #3  
Old February 12th, 2019, 04:22 AM
LyndaEngelage LyndaEngelage is offline
Junior Community Member
 
Join Date: Sep 2014
Posts: 20
Default Re: Suppressing empty rows in a Table

Thank you kjacobson!!!


This works perfectly.


I wish I know the coding better.
Reply With Quote
  #4  
Old February 12th, 2019, 08:20 AM
LyndaEngelage LyndaEngelage is offline
Junior Community Member
 
Join Date: Sep 2014
Posts: 20
Default Re: Suppressing empty rows in a Table

I ran into a snag for this rule, dealing with the ampersand.


In the "Designation_"+i fields, the ampersand plus one character gets removed from the data.


Example:


B&A Scholarship Fund returns as


B Scholarship Fund.


I know I can use syntax of NormalizeEntities, but I'm not sure where to put it or how.
Reply With Quote
  #5  
Old February 12th, 2019, 10:30 AM
kjacobson's Avatar
kjacobson kjacobson is offline
Junior Community Member
 
Join Date: Oct 2008
Location: Alameda, CA
Posts: 49
Default Re: Suppressing empty rows in a Table

You would add the NormalizeEntities() function around the field that you want it applied to:
Code:
NormalizeEntities(Field("Designation_"+i))
The full line would be:
Code:
tableRow.SetContents(NormalizeEntities(Field("Designation_"+i)),Field("GC"+i),Field("Amount_"+i)); //Add content to the columns
Glad to help. You'll learn more JavaScript as you go. Loops, arrays, and functions are great places to start. These aren't just used in FusionPro. This forum and other JavaScript forums have great information if you are willing to search for what you need. Good luck and let me know if you have any other issues with the code.
__________________
Windows 7 | InDesign CC 2017 | Acrobat DC 2019 | FusionPro 10.1.9
Reply With Quote
  #6  
Old February 12th, 2019, 11:25 AM
LyndaEngelage LyndaEngelage is offline
Junior Community Member
 
Join Date: Sep 2014
Posts: 20
Default Re: Suppressing empty rows in a Table

Yes, this worked great. Sorry for posting on another thread. I didn't know if a second request would be appropriate on an original thread. Again, thank you for all your help!
Reply With Quote
Reply

Tags
empty, suppress, variable table

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 07:44 AM.


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