Change Jenkins text "build" to "Linux Build" or "Mac Build" - github

Can we be more precise of target build?
I would like to know if we can customize a build type text of Jenkins. Most of the project have a table format instead
.svg source
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" width="90" height="20">
<linearGradient id="a" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<rect rx="3" width="90" height="20" fill="#555"/>
<rect rx="3" x="37" width="53" height="20" fill="#4c1"/>
<path fill="#4c1" d="M37 0h4v20h-4z"/>
<rect rx="3" width="90" height="20" fill="url(#a)"/>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="19.5" y="15" fill="#010101" fill-opacity=".3">build</text>
<text x="19.5" y="14">build</text>
<text x="62.5" y="15" fill="#010101" fill-opacity=".3">passing</text>
<text x="62.5" y="14">passing</text>
</g>
</svg>

Related

Figma SVG not rendering with package flutter_svg

I'm exporting svg file from figma, flutter have errors:
Failed to find definition for url(#pattern0)
Failed to find definition for url(#pattern1)
Full text of error:
The following assertion was thrown while parsing AssetBundlePictureKey(bundle: PlatformAssetBundle#41f97(), name: "assets/images/select-image.svg", colorFilter: null, theme: SvgTheme(currentColor: Color(0xff000000), fontSize: 14.0, xHeight: 7.0)) in _getDefinitionPaint:
Failed to find definition for url(#pattern1)
This library only supports and xlink:href references that are defined ahead of their references.
This error can be caused when the desired definition is defined after the element referring to it (e.g. at the end of the file), or defined in another file.
This error is treated as non-fatal, but your SVG file will likely not render as intended
My svg filу
<svg width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<image id="image0_133_96" width="100" height="100" xlink:href="data:image/png;base64,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"/>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_133_96" transform="translate(-0.0142405) scale(0.0102848 0.01)"/>
</pattern>
<pattern id="pattern1" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_133_96" transform="translate(-0.0142405) scale(0.0102848 0.01)"/>
</pattern>
</defs>
<mask id="mask0_133_96" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="26" height="27">
<rect y="0.333344" width="25.28" height="26" fill="url(#pattern0)"/>
</mask>
<g mask="url(#mask0_133_96)">
<rect y="0.333344" width="25.28" height="26" fill="url(#pattern1)"/>
<rect y="0.333344" width="25.28" height="26" fill="#9A9EAA"/>
</g>
Where is my error?
I solved my problem, I converted image from figma to png to svg

Jasper Report Crosstab with ArrayList of Data

I am trying to create Jasper Report with crosstab by writing JRXML with DTOs.
I am trying to create rows dynamic number of chargeCodes and their total. It looks something like this:
jobNo
chargeCodeA
chargeCodeB
Total
jobNoABC
100.10
300.30
400.40
jobNoDEF
200.20
400.40
600.60
In my Java backend, I have DTO which looks like this
class MyDTO {
private String jobNo;
private List <String> chargeCode = new ArrayList <> ();
private List <BigDecimal> chargeCodeTotal = new ArrayList <> ();
}
where the list codeCode contains chargeCodeA, chargeCodeB for jobNoABC
and chargeCodeTotal contains 100.10, 300.30 for jobNoABC also.
In my JRXML, I have this:
<?xml version="1.0" encoding="UTF-8" ?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="vendorBillingCompletedJobReport" leftMargin="5" rightMargin="5">
<parameter name="lblJobNo" class="java.lang.String" isForPrompting="false"/>
<field name="jobNo" class="java.lang.String"/>
<field name="chargeCode" class="java.util.List"/>
<field name="chargeCodeTotal" class="java.util.List"/>
<summary>
<band height="60">
<crosstab>
<reportElement width="782" y="0" x="0" height="60" />
<rowGroup name="jobNo" width="100" totalPosition="End">
<bucket>
<bucketExpression class="java.util.List">
<![CDATA[$F{jobNo}]]>
</bucketExpression>
</bucket>
<crosstabRowHeader>
<cellContents>
<box>
<pen lineColor="black" lineWidth="1"/>
</box>
<textField>
<reportElement width="100" y="0" x="0" height="20" />
<textElement textAlignment="Right" verticalAlignment="Middle" />
<textFieldExpression>
<![CDATA[$V{jobNo}]]>
</textFieldExpression>
</textField>
</cellContents>
</crosstabRowHeader>
<crosstabTotalRowHeader>
<cellContents>
<box>
<pen lineColor="black" lineWidth="1"/>
</box>
<staticText>
<reportElement x="0" y="0" width="60" height="20" />
<textElement verticalAlignment="Middle" />
<text>TOTAL</text>
</staticText>
</cellContents>
</crosstabTotalRowHeader>
</rowGroup>
<columnGroup name="chargeCode" height="20" totalPosition="End">
<bucket>
<bucketExpression class="java.util.List">
$F{chargeCode}
</bucketExpression>
</bucket>
<crosstabColumnHeader>
<cellContents>
<box>
<pen lineColor="black" lineWidth="1"/>
</box>
<textField isStretchWithOverflow="true">
<reportElement width="60" y="0" x="0" height="20" />
<textElement verticalAlignment="Bottom" />
<textFieldExpression>
<![CDATA[$V{chargeCode}]]>
</textFieldExpression>
</textField>
</cellContents>
</crosstabColumnHeader>
<crosstabTotalColumnHeader>
<cellContents>
<box>
<pen lineColor="black" lineWidth="1"/>
</box>
<staticText>
<reportElement width="60" y="0" x="0" height="20" />
<textElement verticalAlignment="Bottom" />
<text>TOTAL</text>
</staticText>
</cellContents>
</crosstabTotalColumnHeader>
</columnGroup>
<measure name="chargeCodeTotalCount" class="java.math.BigDecimal" calculation="Sum">
<measureExpression>$F{chargeCodeTotal}</measureExpression>
</measure>
<crosstabCell height="20" width="60">
<cellContents backcolor="#FFFFFF">
<box>
<pen lineColor="black" lineWidth="1"/>
</box>
<textField>
<reportElement x="5" y="0" width="55" height="20" />
<textElement textAlignment="Left" verticalAlignment="Bottom" />
<textFieldExpression class="java.math.BigDecimal">
$V{chargeCodeTotalCount}
</textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
</crosstab>
</band>
</summary>
</jasperReport>
But I am getting error:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Comparable
at org.apache.commons.collections.comparators.ComparableComparator.compare(ComparableComparator.java:91)
I am not sure how to create infinite number of chargeCodes using JRXML.
And I cannot use Dynamic Jasper. I can only think of crosstab. Please help. Thanks.

Powershell Make a Dymo LabelWriter 450 Label

I made a label and then opened it in notepad and got the following.
<?xml version="1.0" encoding="utf-8"?>
<DieCutLabel Version="8.0" Units="twips" MediaType="Default">
<PaperOrientation>Landscape</PaperOrientation>
<Id>Small30336</Id>
<IsOutlined>false</IsOutlined>
<PaperName>30336 1 in x 2-1/8 in</PaperName>
<DrawCommands>
<RoundRectangle X="0" Y="0" Width="1440" Height="3060" Rx="180" Ry="180" />
</DrawCommands>
<ObjectInfo>
<TextObject>
<Name>TEXT</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" />
<BackColor Alpha="0" Red="255" Green="255" Blue="255" />
<LinkedObjectName />
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<GroupID>-1</GroupID>
<IsOutlined>False</IsOutlined>
<HorizontalAlignment>Center</HorizontalAlignment>
<VerticalAlignment>Top</VerticalAlignment>
<TextFitMode>ShrinkToFit</TextFitMode>
<UseFullFontHeight>True</UseFullFontHeight>
<Verticalized>False</Verticalized>
<StyledText>
<Element>
<String xml:space="preserve">Hello
World</String>
<Attributes>
<Font Family="Arial" Size="12" Bold="False" Italic="False" Underline="False" Strikeout="False" />
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" HueScale="100" />
</Attributes>
</Element>
</StyledText>
</TextObject>
<Bounds X="130" Y="147" Width="2798" Height="1188" />
</ObjectInfo>
so what I attempted to do is use powershell to make the same label and print it automatically per below
$Word = "Hello"
$Word1 = "World"
#"
<?xml version="1.0" encoding="utf-8"?>
<DieCutLabel Version="8.0" Units="twips" MediaType="Default">
<PaperOrientation>Landscape</PaperOrientation>
<Id>Small30336</Id>
<IsOutlined>false</IsOutlined>
<PaperName>30336 1 in x 2-1/8 in</PaperName>
<DrawCommands>
<RoundRectangle X="0" Y="0" Width="1440" Height="3060" Rx="180" Ry="180" />
</DrawCommands>
<ObjectInfo>
<TextObject>
<Name>TEXT</Name>
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" />
<BackColor Alpha="0" Red="255" Green="255" Blue="255" />
<LinkedObjectName />
<Rotation>Rotation0</Rotation>
<IsMirrored>False</IsMirrored>
<IsVariable>False</IsVariable>
<GroupID>-1</GroupID>
<IsOutlined>False</IsOutlined>
<HorizontalAlignment>Center</HorizontalAlignment>
<VerticalAlignment>Top</VerticalAlignment>
<TextFitMode>ShrinkToFit</TextFitMode>
<UseFullFontHeight>True</UseFullFontHeight>
<Verticalized>False</Verticalized>
<StyledText>
<Element>
<String xml:space="preserve">$Word
$Word1 </String>
<Attributes>
<Font Family="Arial" Size="12" Bold="False" Italic="False" Underline="False" Strikeout="False" />
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" HueScale="100" />
</Attributes>
</Element>
</StyledText>
</TextObject>
<Bounds X="130" Y="147" Width="2798" Height="1188" />
</ObjectInfo>
</DieCutLabel>
"#>Save.label
& ".\PrintLabel.exe" Save.label
is there a way to make this work or a better way to do this ?
it will print but a default label in the examples and not the one i want to say hello world (on two different lines)
i tried to add full links to each but it does the same thing.

How to set Page footer to the bottom of the every page in Jasper Reports?

For export the page footer are always at the bottom of the page.
But in Print preview the page footer comes immediately after the detail band.
I want the page footer to appear always at the bottom of the page , irrespective of detail band height.
Below is the xml,
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Created with Jaspersoft Studio version 6.0.3.final using JasperReports Library version 6.0.3 -->
<!-- 2015-03-12T14:09:48 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="Listing Report" pageWidth="1385" pageHeight="922" orientation="Landscape" columnWidth="1335" leftMargin="25" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.5" />
<property name="ireport.x" value="0" />
<property name="ireport.y" value="0" />
<template>
<![CDATA[$P{templatePath}]]>
</template>
<style name="Crosstab Data Text" />
<style name="Zebra" mode="Opaque">
<conditionalStyle> <conditionExpression><![CDATA[$V {
REPORT_COUNT
}
%2==1]]></conditionExpression> <style backcolor="#F0F0F0"/> </conditionalStyle>
</style>
<parameter name="appointmentid" class="java.lang.String" />
<parameter name="reportsetid" class="java.lang.Object" />
<parameter name="savedreportid" class="java.lang.Object" />
<parameter name="dbtablename" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<![CDATA[appointmentlistingseedreport]]>
</parameterDescription>
</parameter>
<parameter name="partialInlineQuery" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<!-----------------Query--------------------->
</parameterDescription>
</parameter>
<parameter name="dynamicdbtablename" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<![CDATA[appointmentlistingdynamicdata]]>
</parameterDescription>
</parameter>
<parameter name="templatePath" class="java.lang.String" />
<queryString>
<!--Query String------------------>
</queryString>
<field name="reportsetid" class="java.lang.Object" />
<field name="savedreportid" class="java.lang.Object" />
<field name="organizationname" class="java.lang.String" />
<field name="duration" class="java.lang.Integer" />
<field name="appointmenttypename" class="java.lang.String" />
<field name="personname" class="java.lang.String" />
<field name="appointmentstatus" class="java.lang.String" />
<field name="appointmentdate" class="java.sql.Date" />
<field name="location" class="java.lang.String" />
<field name="ordername" class="java.lang.String" />
<field name="ordertype" class="java.lang.String" />
<field name="orderstatus" class="java.lang.String" />
<field name="resultstatus" class="java.lang.String" />
<field name="resourcename" class="java.lang.String" />
<field name="appointmentstarttime" class="java.sql.Time" />
<variable name="GrandTotal_Count" class="java.math.BigDecimal" calculation="Count">
<variableExpression>
<![CDATA[$F{reportsetid}]]>
</variableExpression>
</variable>
<variable name="GrandTotal_Variable" class="java.lang.String" calculation="Count">
<variableExpression>
<![CDATA["Grand Total ( " + $V{GrandTotal_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="organizationname_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="organizationname" calculation="Count">
<variableExpression>
<![CDATA[$F{organizationname}]]>
</variableExpression>
</variable>
<variable name="organizationname_Variable" class="java.lang.String" resetType="Group" resetGroup="organizationname" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{organizationname} != null) ? $F{organizationname} : "") + " " + "(" + $V{organizationname_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="location_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="location" calculation="Count">
<variableExpression>
<![CDATA[$F{location}]]>
</variableExpression>
</variable>
<variable name="location_Variable" class="java.lang.String" resetType="Group" resetGroup="location" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{location} != null) ? $F{location} : "") + " " + "(" + $V{location_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="resourcename_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="resourcename" calculation="Count">
<variableExpression>
<![CDATA[$F{resourcename}]]>
</variableExpression>
</variable>
<variable name="resourcename_Variable" class="java.lang.String" resetType="Group" resetGroup="resourcename" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{resourcename} != null) ? $F{resourcename} : "") + " " + "(" + $V{resourcename_Count} + ")"]]>
</variableExpression>
</variable>
<group name="FooterGrandTotal">
<groupFooter>
<band height="20">
<textField>
<reportElement x="0" y="0" width="0" height="20" uuid="a23e46f3-b798-42ec-816e-c3e0c76ee7f6" />
<textElement>
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{GrandTotal_Variable} != null) ? $V{GrandTotal_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="organizationname" isStartNewPage="true">
<groupExpression>
<![CDATA[(($F{organizationname} != null) ? ($F{organizationname} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Org</style> ") :"Org")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="cf936d24-cfb0-44ff-a601-e4bcba0a1cf7" />
<box leftPadding="15" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{organizationname} != null) ? ($F{organizationname} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Org</style> ") :"Org")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="cf936d24-cfb0-44ff-a601-e4bcba0a1cf7" />
<box leftPadding="15" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{organizationname_Variable} != null) ? $V{organizationname_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="location">
<groupExpression>
<![CDATA[(($F{location} != null) ? ($F{location} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Location</style> ") :"Location")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="0f1dc658-577b-4a1a-a937-b21af77454d4" />
<box leftPadding="40" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{location} != null) ? ($F{location} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Location</style> ") :"Location")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="0f1dc658-577b-4a1a-a937-b21af77454d4" />
<box leftPadding="40" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{location_Variable} != null) ? $V{location_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="resourcename">
<groupExpression>
<![CDATA[(($F{resourcename} != null) ? ($F{resourcename} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Resource</style> ") :"Resource")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333"/>
<box leftPadding="65" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{resourcename} != null) ? ($F{resourcename} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Resource</style> ") :"Resource")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="613e4649-a0be-402b-b641-6792d681a3fd" />
<box leftPadding="65" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{resourcename_Variable} != null) ? $V{resourcename_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<title>
<band height="24" splitType="Stretch" />
</title>
<pageHeader>
<band height="100">
<textField>
<reportElement x="0" y="0" width="1335" height="20" forecolor="#999999" uuid="07f143b8-4615-48bf-a984-3f5d9f1b7fdb" />
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("GENHEALTH FAMILY PRACTICE ASSOCIATES (GFPA)" != null) ? "GENHEALTH FAMILY PRACTICE ASSOCIATES (GFPA)" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="20" width="1335" height="20" forecolor="#999999" uuid="548c383a-181b-4a5e-9773-95bec6028b2f" />
<textElement textAlignment="Left">
<font size="17" isBold="false" isItalic="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Appointment List" != null) ? "Appointment List" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="40" width="1335" height="20" forecolor="#999999" uuid="9a238441-512f-4e24-84c4-d0c6f78a912a" />
<textElement textAlignment="Left">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(("Appointment Date : is not : 03/12/2015" != null) ? "Appointment Date : is not : 03/12/2015" : "")]]>
</textFieldExpression>
</textField>
</band>
</pageHeader>
<columnHeader>
<band height="25" splitType="Stretch">
<staticText>
<reportElement style="table-header" x="0" y="0" width="210" height="20" uuid="2d0b156b-95f8-487c-bb7d-09e729e3e364">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box leftPadding="85" />
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Type]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="210" y="0" width="125" height="20" uuid="e059ad06-5f5d-4056-9217-a21fa154640e">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Date]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="335" y="0" width="125" height="20" uuid="3890f6d6-0d75-4bda-90ca-97cb7a7d4333">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Time]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="460" y="0" width="125" height="20" uuid="9f7d46ea-c2ee-4a6f-ba73-57e90ed1045b">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Dur]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="585" y="0" width="125" height="20" uuid="e4d430ab-b03d-4f18-8779-c8d37e30e21b">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Pat Name]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="710" y="0" width="125" height="20" uuid="3c06f694-8e55-4565-af1a-7386ccee9422">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Sts]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="835" y="0" width="125" height="20" uuid="434fe607-d680-4fef-b67d-0cc18957f6f9">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Name]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="960" y="0" width="125" height="20" uuid="a2f59de7-7964-4d52-8beb-e9f4e3c8ca03">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Type]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="1085" y="0" width="125" height="20" uuid="4b7703eb-2426-4574-bb23-66b35dadaa03">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Status]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="1210" y="0" width="125" height="20" uuid="1add3ebc-c688-41af-831c-efba8ee67b92">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Result Status]]>
</text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement style="Zebra" x="0" y="0" width="210" height="20" uuid="2ae4a4f2-473e-42a9-8055-c02309813c9a">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box leftPadding="85" />
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{appointmenttypename} != null) ? $F{appointmenttypename} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="210" y="0" width="125" height="20" uuid="d9a4e371-73f3-4540-a135-952dacb1d937">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[$P{REPORT_SCRIPTLET}.formatDate($F{appointmentdate})]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="335" y="0" width="125" height="20" uuid="b293699a-e8cb-4dd4-a878-1fc5082f686d">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[$P{REPORT_SCRIPTLET}.formatTime($F{appointmentstarttime})]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="460" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box rightPadding="10" />
<textElement textAlignment="Right" verticalAlignment="Middle">
<font size="17" isBold="false" />
<paragraph lineSpacing="1_1_2" rightIndent="20" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{duration} != null) ? $F{duration} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="585" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{personname} != null) ? $F{personname} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="710" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{appointmentstatus} != null) ? $F{appointmentstatus} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="835" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{ordername} != null) ? $F{ordername} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="960" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{ordertype} != null) ? $F{ordertype} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="1085" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{orderstatus} != null) ? $F{orderstatus} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="1210" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{resultstatus} != null) ? $F{resultstatus} : "")]]>
</textFieldExpression>
</textField>
</band>
</detail>
<pageFooter>
<band height="100">
<textField>
<reportElement x="890" y="20" width="445" height="20"/>
<textElement textAlignment="Right">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Confidential" != null) ? "Confidential" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="20" width="445" height="20"/>
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Prepared at 01:16 PM CDT,March 12, 2015" != null) ? "Prepared at 01:16 PM CDT,March 12, 2015" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="445" y="20" width="222" height="20"/>
<textElement textAlignment="Right">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Page "+$V{PAGE_NUMBER}+" of" != null) ? "Page "+$V{PAGE_NUMBER}+" of" : "")]]>
</textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="667" y="20" width="222" height="20"/>
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[((" " + $V{PAGE_NUMBER} != null) ? " " + $V{PAGE_NUMBER} : "")]]>
</textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height="35" splitType="Prevent" />
</summary>
<noData>
<band height="20">
<staticText>
<reportElement x="206" y="0" width="174" height="20"/>
<textElement textAlignment="Center">
<font size="14" isBold="true" />
</textElement>
<text>
<![CDATA[No Data Found]]>
</text>
</staticText>
</band>
</noData>
</jasperReport>
Are you sure its page footer? because page footer will always be at the bottom of page. Try decreasing the height, may be the top of your page footer is at middle of the page. And one more thing, page footer will always be after detail section unless you don't have a column footer in between.
I just facing same issue, It seems that pageFooter extends its height to fill all left space if exists.
Try to change all your page footer elements position to "FixRelativeToBottom"
<reportElement positionType="FixRelativeToBottom" ... >
Or create a frame with this position type and then you put all your elements inside

Unable to print borders for empty cells in PDF via JasperReports

I am constructing a 'table' by having cells next to each other and they all have borders. But I have a problem where the borders won't show if the cell for workcode text doesn't have a value.
This is my jrxml - (it is a subreport so I have a extra dataset there, and workcodeText is handled this way because I don't know how many workcode text nodes I will have in the xml data.)
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="estimate-subreport" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" scriptletClass="com.cybage.mo.CostCalculation" uuid="2df6e224-aab9-42e3-a97c-aa614b05982c">
<property name="ireport.zoom" value="1.5"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1"/>
</style>
<style name="Normal-Text-Small-with-borders" style="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1">
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Normal-Text-Small-bold" style="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1"/>
</style>
<style name="Normal-Text-Small-bold-with-borders" style="Normal-Text-Small-bold" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1">
<pen lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="WorkcodeText" uuid="3615899a-9e63-45db-a26e-d4e6d1670f84">
<queryString language="xPath">
<![CDATA[/MCSResponse/EstimateDisplayResponse/CategoryDetail/WorkcodeDetail/WorkcodeText]]>
</queryString>
<field name="WorkcodeText" class="java.lang.String">
<fieldDescription><![CDATA[child::text()]]></fieldDescription>
</field>
<field name="last_wct" class="java.lang.String">
<fieldDescription><![CDATA[../WorkcodeText[last()]]]></fieldDescription>
</field>
<field name="WorkcodeAmount" class="java.lang.String">
<fieldDescription><![CDATA[/MCSResponse/EstimateDisplayResponse/CategoryDetail/WorkcodeDetail/WorkcodeAmount]]></fieldDescription>
</field>
<variable name="varWorkcodeText" class="java.lang.String">
<variableExpression><![CDATA[$V{varWorkcodeText}+($F{WorkcodeText} != null? $F{WorkcodeText}:" test ")]]></variableExpression>
<initialValueExpression><![CDATA[""]]></initialValueExpression>
</variable>
</subDataset>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["D:\\iReport\\Saquib\\Single_Estimate_Report\\Test\\"]]></defaultValueExpression>
</parameter>
<queryString language="xPath">
<![CDATA[CategoryDetail/WorkcodeDetail]]>
</queryString>
<field name="Workcode" class="java.lang.String">
<fieldDescription><![CDATA[Workcode]]></fieldDescription>
</field>
<field name="WorkcodeName" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeName]]></fieldDescription>
</field>
<field name="ExtraWorkcodeName" class="java.lang.String">
<fieldDescription><![CDATA[ExtraWorkcodeName]]></fieldDescription>
</field>
<field name="WorkcodeAmount" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeAmount]]></fieldDescription>
</field>
<field name="WorkcodeText" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeText]]></fieldDescription>
</field>
<field name="ItemDetail" class="java.lang.String">
<fieldDescription><![CDATA[ItemDetail]]></fieldDescription>
</field>
<detail>
<band height="15">
<componentElement>
<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="150" y="0" width="300" height="15" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="6b4ddd03-9978-4f83-a247-3fff22149cb1"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="WorkcodeText" uuid="7aeae23c-e1fe-4470-9ee5-98f84cd82159">
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//WorkcodeText")]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="15" width="300">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="Normal-Text-Small-with-borders" positionType="Float" stretchType="RelativeToTallestObject" mode="Transparent" x="0" y="0" width="300" height="15" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" forecolor="#0000FF" uuid="03dd8f13-7604-41be-9155-ae02aa44500e">
<printWhenExpression><![CDATA[$F{WorkcodeText}.equals($F{last_wct})]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Top">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$V{varWorkcodeText}.replaceAll( "<nl>", "\n" )]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
<textField isStretchWithOverflow="true" isBlankWhenNull="false">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="0" y="0" width="20" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3333FF" uuid="8c9080c7-cb77-430c-be2e-b6252f9b8d8e"/>
<textElement verticalAlignment="Top">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{Workcode}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="#,##0.00" isBlankWhenNull="true">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="450" y="0" width="105" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3300FF" uuid="ebdd4d26-bc29-4546-a9b5-24f2be132aa8"/>
<textElement textAlignment="Right">
<font size="9"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[($F{WorkcodeAmount}==""||$F{WorkcodeAmount}==null)?0.00:Float.valueOf($F{WorkcodeAmount})/100]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="false">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="20" y="0" width="130" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3333FF" uuid="f5fcc495-f401-4498-ac71-7352581cde59"/>
<textElement verticalAlignment="Top">
<font size="9"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{WorkcodeName}]]></textFieldExpression>
</textField>
</band>
</detail>
This is the XML I am testing with:
<?xml version="1.0" encoding="UTF-8"?>
<CategoryDetail>
<CategoryCode>1</CategoryCode>
<CategoryName>EXTERNAL CREATIVE</CategoryName>
<CategoryTotalName>TOTAL EXTERNAL CREAT</CategoryTotalName>
<CategoryType>1</CategoryType>
<CategoryStatus>YNNYN</CategoryStatus>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1B</Workcode>
<WorkcodeName>VISUALS</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Concept and Development</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1C</Workcode>
<WorkcodeName>COPY WRITING</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Visualisation/Finished Art/Lasers</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1E</Workcode>
<WorkcodeName>PHOTOGRAPHY</WorkcodeName>
<WorkcodeAmount>500</WorkcodeAmount>
<WorkcodeCommissionAmount>75</WorkcodeCommissionAmount>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Setting</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
<WorkcodeText>Jaspersoft was originally called Panscopic, and was founded by Al Campa, CEO, and Raj Bhargava, VP of Products in 2001. Panscopic raised $23M from Doll Capital, Discovery Ventures, Morgenthaler Ventures, and Partech. In 2004 Panscopic teamed up with</WorkcodeText>
<WorkcodeText> Teodor Danciu,[7] acquired the intellectual property of JasperReports, and changed the name of the company to Jaspersoft. Brian Gentile became CEO in 2007.<nl><nl>Jaspersoft provides commercial software around the JasperReports product, and negotiat</WorkcodeText>
<WorkcodeText>e contracts with software developers that wish to embed the JasperReports engine into a closed source product.<nl><nl>Jaspersoft's main related product is JasperReports Server, a Java EE web application that provides advanced report server capabiliti</WorkcodeText>
<WorkcodeText>es such as report scheduling and permissions. It is available under an open source license for use in conjunction with open source infrastructure such as MySQL and JBoss, or a commercial license for enterprise deployments involving commercial databas</WorkcodeText>
<WorkcodeText>es and application servers.</WorkcodeText>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1F</Workcode>
<WorkcodeName>ILLUSTRATIONS</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Photography</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1G</Workcode>
<WorkcodeName>MODEL FEES</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Models</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>T9</Workcode>
<WorkcodeName>T3 Overtime Pr.</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>T3 Overtime Pr.</ExtraWorkcodeName>
<WorkcodeType>T</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
</CategoryDetail>
try isRemoveLineWhenBlank="true" set to false in your textFields