MarcomCentral (PTI) and FusionPro User Communities

MarcomCentral (PTI) and FusionPro User Communities (http://forums.pti.com/index.php)
-   Tables & Charts (http://forums.pti.com/forumdisplay.php?f=36)
-   -   Suppressing empty rows in a Table (http://forums.pti.com/showthread.php?t=5289)

LyndaEngelage February 11th, 2019 02:07 PM

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();

kjacobson February 11th, 2019 03:20 PM

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 :)

LyndaEngelage February 12th, 2019 05:22 AM

Re: Suppressing empty rows in a Table
 
Thank you kjacobson!!!


This works perfectly.


I wish I know the coding better.

LyndaEngelage February 12th, 2019 09:20 AM

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.

kjacobson February 12th, 2019 11:30 AM

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. :)

LyndaEngelage February 12th, 2019 12:25 PM

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!


All times are GMT -7. The time now is 09:04 PM.

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