2014-05-21 5 views
0

sub-reporttextFieldimage 필드가 나란히 있습니다. 이미지가 없으면 텍스트 필드의 내용을 수평으로 이동하려고합니다. 어떤 이미지가없는 경우가로 빈 공간 제거

enter image description here

나는 이미지 대신 textField을 이동하려는.

+1

동적으로 처리 할 수 ​​있습니다. – user1791574

+0

설명해 주시겠습니까? – Abs

답변

0

시도해보십시오.

public JasperDesign setImage(Boolean isImageAvailable) throws JRException { 
    JasperDesign jasperDesign = new JasperDesign(); 
    jasperDesign.setName("NoXmlDesignReport"); 
    jasperDesign.setPageWidth(595); 
    jasperDesign.setPageHeight(842); 
    jasperDesign.setColumnWidth(515); 
    jasperDesign.setColumnSpacing(0); 
    jasperDesign.setLeftMargin(40); 
    jasperDesign.setRightMargin(40); 
    jasperDesign.setTopMargin(20); 
    jasperDesign.setBottomMargin(20); 
    JRDesignBand band = new JRDesignBand(); 
    band.setHeight(200); 

    JRDesignTextField textField = new JRDesignTextField(); 
    textField.setX(350);//Your desired x position when image is not available. 
    textField.setY(0);//Your desired y position when image is not available. 
    textField.setWidth(100); 
    textField.setHeight(20); 
    textField.setStyle(normalStyle); 
    textField.setStretchWithOverflow(true); 
    textField.setPositionType(PositionTypeEnum.FLOAT); 
    textField.setBlankWhenNull(true); 
    JRDesignExpression expression = new JRDesignExpression(); 
    expression.setText("$F{" + fieldName + "}"); 
    textField.setExpression(expression); 

    if(isImageAvailable) { 
    JRDesignImage jrDesignImage = new JRDesignImage(jasperDesign); 
    expression = new JRDesignExpression(); 
    expression.setText("\"/path/to/image.png\""); 
    jrDesignImage.setExpression(expression); 
    jrDesignImage.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    jrDesignImage.setX(400); 
    jrDesignImage.setY(25); 
    jrDesignImage.setWidth(93); 
    jrDesignImage.setHeight(100); 
    jrDesignImage.setScaleImage(ScaleImageEnum.RETAIN_SHAPE); 
    band.addElement(jrDesignImage); 
    textField.setX(10);//Your desired x position when image is available. 
    textField.setY(0);//Your desired y position when image is available. 
    } 

    band.addElement(textField); 
    jasperDesign.setTitle(band); 
    return jasperDesign; 
} 

코딩 즐기기.

+0

코드를위한 고맙습니다 곧 다시 시도해 보겠습니다 ... – Abs