/****************************************************************************** * Project: Trek Global ERP * * Copyright (C) 2009-2018 Trek Global Corporation * * * * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. This program is distributed in the hope * * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * For the text or an alternative of this public license, you may reach us * * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ package org.idempiere.print; import java.awt.Color; import java.awt.Font; import java.awt.Point; import java.awt.Rectangle; import java.text.SimpleDateFormat; import org.compiere.model.MClientInfo; import org.compiere.model.MQuery; import org.compiere.model.MSysConfig; import org.compiere.print.MPrintFormat; import org.compiere.print.MPrintFormatItem; import org.compiere.print.MPrintTableFormat; import org.compiere.print.layout.HeaderFooter; import org.compiere.print.layout.ImageElement; import org.compiere.print.layout.PrintElement; import org.compiere.print.layout.StringElement; import org.compiere.util.Env; import org.compiere.util.Util; /** * Default report header and footer implementation * @author hengsin */ public class StandardHeaderFooter implements IPrintHeaderFooter { /** * Create Standard Header/Footer *
{@code
* title C Page x of x
* Copyright who date&time
* }
*/
@Override
public void createHeaderFooter(MPrintFormat m_format, HeaderFooter m_headerFooter, Rectangle m_header, Rectangle m_footer, MQuery m_query)
{
MClientInfo ci = MClientInfo.get(Env.getCtx());
PrintElement element = null;
if (ci.getLogoReport_ID() > 0) {
element = new ImageElement(ci.getLogoReport_ID(), false);
} else {
element = new ImageElement(org.compiere.Adempiere.getHeaderLogo());
}
element.layout(48, 15, false, MPrintFormatItem.FIELDALIGNMENTTYPE_LeadingLeft);
element.setLocation(m_header.getLocation());
m_headerFooter.addElement(element);
//
MPrintTableFormat tf = m_format.getTableFormat();
Font font = tf.getPageHeader_Font();
Color color = tf.getPageHeaderFG_Color();
//
element = new StringElement("@*ReportName@", font, color, null, true);
element.layout (m_header.width, 0, true, MPrintFormatItem.FIELDALIGNMENTTYPE_Center);
element.setLocation(m_header.getLocation());
m_headerFooter.addElement(element);
//
//
element = new StringElement("@Page@ @*Page@ @of@ @*PageCount@", font, color, null, true);
element.layout (m_header.width, 0, true, MPrintFormatItem.FIELDALIGNMENTTYPE_TrailingRight);
element.setLocation(m_header.getLocation());
m_headerFooter.addElement(element);
// Footer
font = tf.getPageFooter_Font();
color = tf.getPageFooterFG_Color();
//
element = new StringElement(Env.getStandardReportFooterTrademarkText(), font, color, null, true);
element.layout (m_footer.width, 0, true, MPrintFormatItem.FIELDALIGNMENTTYPE_LeadingLeft);
Point ft = m_footer.getLocation();
ft.y += m_footer.height - element.getHeight() - 2; // 2pt above min
element.setLocation(ft);
m_headerFooter.addElement(element);
//
String s = MSysConfig.getValue(MSysConfig.ZK_FOOTER_SERVER_MSG, "", Env.getAD_Client_ID(Env.getCtx()));
if (Util.isEmpty(s, true))
s = "@*Header@";
element = new StringElement(s, font, color, null, true);
element.layout (m_footer.width, 0, true, MPrintFormatItem.FIELDALIGNMENTTYPE_Center);
element.setLocation(ft);
m_headerFooter.addElement(element);
//
String timestamp = "";
s = MSysConfig.getValue(MSysConfig.ZK_FOOTER_SERVER_DATETIME_FORMAT, Env.getAD_Client_ID(Env.getCtx()));
if (!Util.isEmpty(s, true))
timestamp = new SimpleDateFormat(s).format(System.currentTimeMillis());
else
timestamp = "@*CurrentDateTime@";
element = new StringElement(timestamp, font, color, null, true);
element.layout (m_footer.width, 0, true, MPrintFormatItem.FIELDALIGNMENTTYPE_TrailingRight);
element.setLocation(ft);
m_headerFooter.addElement(element);
}
@Override
public int getHeaderHeight() {
return 18;
}
@Override
public int getFooterHeight() {
return 18;
}
}