⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mprintformat.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 * The contents of this file are subject to the   Compiere License  Version 1.1
 * ("License"); You may not use this file except in compliance with the License
 * You may obtain a copy of the License at http://www.compiere.org/license.html
 * Software distributed under the License is distributed on an  "AS IS"  basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 * The Original Code is                  Compiere  ERP & CRM  Business Solution
 * The Initial Developer of the Original Code is Jorg Janke  and ComPiere, Inc.
 * Portions created by Jorg Janke are Copyright (C) 1999-2002 Jorg Janke, parts
 * created by ComPiere are Copyright (C) ComPiere, Inc.;   All Rights Reserved.
 * Contributor(s): ______________________________________.
 *****************************************************************************/
package org.compiere.print;

import java.util.*;
import java.sql.*;

import org.compiere.model.*;
import org.compiere.util.*;

/**
 *	AD_PrintFormat - Print Format Model
 *
 * 	@author 	Jorg Janke
 * 	@version 	$Id: MPrintFormat.java,v 1.28 2003/04/30 06:25:48 jjanke Exp $
 */
public class MPrintFormat extends PO
{
	/**
	 *	Private Constructor.
	 * 	Use static get methods
	 *  @param ctx context
	 *  @param AD_PrintFormat_ID AD_PrintFormat_ID
	 */
	private MPrintFormat (Properties ctx, int AD_PrintFormat_ID)
	{
		super (ctx, AD_PrintFormat_ID);
		m_language = Env.getLanguage(ctx);
		if (AD_PrintFormat_ID == 0)
		{
			setStandardHeaderFooter(true);
			setTableBased(true);
			setForm(false);
		}
		m_items = getItems();
	}	//	MPrintFormat

	/** Items							*/
	private MPrintFormatItem[]		m_items = null;
	/** Translation View Language		*/
	private String					m_translationViewLanguage = null;
	/**	Language of Report				*/
	private Language 				m_language;
	/** Table Format					*/
	private MPrintTableFormat 		m_tFormat;

	/**
	 *  Initialize and return PO_Info
	 *  @param ctx context
	 *  @return POInfo
	 */
	protected POInfo initPO (java.util.Properties ctx)
	{
		int AD_Table_ID = 493;
		return POInfo.getPOInfo (ctx, AD_Table_ID);
	}	//	initPO

	/**
	 * 	Get Context
	 * 	@return context
	 */
	public Properties getCtx()
	{
		return p_ctx;
	}	//	getCtx

	/**
	 * 	Get Language
	 *  @return language
	 */
	public Language getLanguage()
	{
		return m_language;
	}	//	getLanguage

	/**
	 * 	Set Language
	 *  @param language language
	 */
	public void setLanguage(Language language)
	{
		if (language != null)
			m_language = language;
		m_translationViewLanguage = null;
	}	//	getLanguage

	/**
	 * 	Get AD_Column_ID of Order Columns
	 * 	@return Array of AD_Column_IDs in Sort Order
	 */
	public int[] getOrderAD_Column_IDs()
	{
		HashMap map = new HashMap();	//	SortNo - AD_Column_ID
		for (int i = 0; i < m_items.length; i++)
		{
			//	Sort Order and Column must be > 0
			if (m_items[i].getSortNo() != 0 && m_items[i].getAD_Column_ID() != 0)
				map.put(new Integer(m_items[i].getSortNo()), new Integer(m_items[i].getAD_Column_ID()));
		}
		//	Get SortNo and Sort them
		Integer[] keys = new Integer[map.keySet().size()];
		map.keySet().toArray(keys);
		Arrays.sort(keys);

		//	Create AD_Column_ID array
		int[] retValue = new int[keys.length];
		for (int i = 0; i < keys.length; i++)
		{
			Integer value = (Integer)map.get(keys[i]);
			retValue[i] = value.intValue();
		}
		return retValue;
	}	//	getOrderAD_Column_IDs

	/**
	 * 	Get AD_Column_IDs of columns in Report
	 * 	@return Array of AD_Column_ID
	 */
	public int[] getAD_Column_IDs()
	{
		ArrayList list = new ArrayList();
		for (int i = 0; i < m_items.length; i++)
		{
			if (m_items[i].getAD_Column_ID() != 0 && m_items[i].isPrinted())
				list.add(new Integer(m_items[i].getAD_Column_ID()));
		}
		//	Convert
		int[] retValue = new int[list.size()];
		for (int i = 0; i < list.size(); i++)
			retValue[i] = ((Integer)list.get(i)).intValue();
		return retValue;
	}	//	getAD_Column_IDs

	/**
	 * 	Set Items
	 * 	@param items items
	 */
	private void setItems (MPrintFormatItem[] items)
	{
		if (items != null)
			m_items = items;
	}	//	setItems

	/**
	 * 	Get active Items
	 * 	@return items
	 */
	private MPrintFormatItem[] getItems()
	{
		ArrayList list = new ArrayList();
		String sql = "SELECT * FROM AD_PrintFormatItem "
			+ "WHERE AD_PrintFormat_ID=? AND IsActive='Y' ORDER BY SeqNo";
		try
		{
			PreparedStatement pstmt = DB.prepareStatement(sql);
			pstmt.setInt(1, getID());
			ResultSet rs = pstmt.executeQuery();
			while (rs.next())
				list.add (new MPrintFormatItem(p_ctx, rs));
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			Log.error("MPrintFormat.getItems", e);
		}
		//
		MPrintFormatItem[] retValue = new MPrintFormatItem[list.size()];
		list.toArray(retValue);
		return retValue;
	}	//	getItems

	/**
	 * 	Get Item Count
	 * 	@return number of items
	 */
	public int getItemCount()
	{
		return m_items.length;
	}	//	getItemCount

	/**
	 * 	Get Print Format Item
	 * 	@param index index
	 * 	@return Print Format Item
	 */
	public MPrintFormatItem getItem (int index)
	{
		if (index < 0 || index >= m_items.length)
			throw new ArrayIndexOutOfBoundsException("Index=" + index + " - Length=" + m_items.length);
		return m_items[index];
	}	//	getItem

	/**
	 * 	Set the translation of the Format Items to the original
	 */
	public void setTranslation()
	{
		StringBuffer sb = new StringBuffer ("UPDATE AD_PrintFormatItem_Trl t"
			+ " SET (PrintName, PrintNameSuffix)="
			+ " (SELECT PrintName, PrintNameSuffix FROM AD_PrintFormatItem i WHERE i.AD_PrintFormatItem_ID=t.AD_PrintFormatItem_ID) "
			+ "WHERE AD_PrintFormatItem_ID IN"
			+ " (SELECT AD_PrintFormatItem_ID FROM AD_PrintFormatItem WHERE AD_PrintFormat_ID=").append(getID()).append(")");
		int no = DB.executeUpdate(sb.toString());
		log.debug("setTranslation #" + no);
	}	//	setTranslation

	/*************************************************************************/

	/**
	 * 	Set Name
	 * 	@param name name
	 */
	public void setName (String name)
	{
		setValue("Name", name);
	}
	/**
	 *	Get Name
	 *  @return name
	 */
	public String getName()
	{
		return (String)getValue("Name");
	}

	public void setDescription (String description)
	{
		setValue("Description", description);
	}
	public String getDescription()
	{
		return (String)getValue("Description");
	}

	protected void setTableBased (boolean tableBased)
	{
		setValueNoCheck("IsTableBased", new Boolean(tableBased));
		if (tableBased)
			setForm(false);
	}
	public boolean isTableBased()
	{
		return ((Boolean)getValue("IsTableBased")).booleanValue();
	}

	public void setForm (boolean form)
	{
		setValue("IsForm", new Boolean(form));
	}
	public boolean isForm()
	{
		return ((Boolean)getValue("IsForm")).booleanValue();
	}

	public void setStandardHeaderFooter (boolean standardHeaderFooter)
	{
		setValue("IsStandardHeaderFooter", new Boolean(standardHeaderFooter));
		if (standardHeaderFooter)
		{
			setFooterMargin(0);
			setHeaderMargin(0);
		}
	}
	public boolean isStandardHeaderFooter()
	{
		return ((Boolean)getValue("IsStandardHeaderFooter")).booleanValue();
	}

	public void setHeaderMargin (int headerMargin)
	{
		setValue("HeaderMargin", new Integer(headerMargin));
	}
	public int getHeaderMargin()
	{
		return ((Integer)getValue("HeaderMargin")).intValue();
	}

	public void setFooterMargin (int footerMargin)
	{
		setValue("FooterMargin", new Integer(footerMargin));
	}
	public int getFooterMargin()
	{
		return ((Integer)getValue("FooterMargin")).intValue();
	}

	public void setAD_Table_ID (int AD_Table_ID)
	{
		setValue("AD_Table_ID", new Integer(AD_Table_ID));
	}
	public int getAD_Table_ID()
	{
		return ((Integer)getValue("AD_Table_ID")).intValue();
	}

	public void setAD_ReportView_ID (int AD_ReportView_ID)
	{
		setValue("AD_ReportView_ID", new Integer(AD_ReportView_ID));
	}
	public int getAD_ReportView_ID()
	{
		Integer ii = (Integer)getValue("AD_ReportView_ID");
		if (ii == null)
			return 0;
		return ii.intValue();
	}

	public void setAD_PrintPaper_ID (int AD_PrintPaper_ID)
	{
		setValue("AD_PrintPaper_ID", new Integer(AD_PrintPaper_ID));
	}
	public int getAD_PrintPaper_ID()
	{
		return ((Integer)getValue("AD_PrintPaper_ID")).intValue();
	}

	public void setAD_PrintColor_ID (int AD_PrintColor_ID)
	{
		setValue("AD_PrintColor_ID", new Integer(AD_PrintColor_ID));
	}
	public int getAD_PrintColor_ID()
	{
		return ((Integer)getValue("AD_PrintColor_ID")).intValue();
	}

	public void setAD_PrintFont_ID (int AD_PrintFont_ID)
	{
		setValue("AD_PrintFont_ID", new Integer(AD_PrintFont_ID));
		getTableFormat().setStandard_Font (MPrintFont.get (getAD_PrintFont_ID()).getFont());
	}
	public int getAD_PrintFont_ID()
	{
		Integer ii = (Integer)getValue("AD_PrintFont_ID");
		if (ii != null)
			return ii.intValue();
		return -1;
	}

	/*************************************************************************/

	/**
	 * 	Set Translation View Language.
	 * 	@param language language (checked for base language)
	 */
	public void setTranslationLanguage (Language language)
	{
		if (language == null || language.isBaseLanguage())
		{
			Log.trace(Log.l5_DData, "MPrintFormat.setTranslationLanguage - ignored", language);
			m_translationViewLanguage = null;
		}
		else
		{
			Log.trace(Log.l5_DData, "MPrintFormat.setTranslationLanguage", language.getAD_Language());
			m_translationViewLanguage = language.getAD_Language();
			m_language = language;
		}
	}	//	setTranslationLanguage

	/**
	 *  Get Translation View use
	 *	@return true if a translation view is used
	 */
	public boolean isTranslationView()
	{
		return m_translationViewLanguage != null;
	}	//	isTranslationView

	/**
	 *	Update the Query to access the Translation View.
	 *  Can be called multiple times, adds only if not set already
	 *  @param query query to be updated
	 */
	public void setTranslationViewQuery (MQuery query)
	{
		//	Set Table Name and add add restriction, if a view and language set
		if (m_translationViewLanguage != null && query != null && query.getTableName().toUpperCase().endsWith("_V"))
		{
			query.setTableName(query.getTableName() + "t");
			query.addRestriction("AD_Language", MQuery.EQUAL, m_translationViewLanguage);
		}
	}	//	setTranslationViewQuery

	/*************************************************************************/

	/**
	 * 	Get Optional TableFormat
	 * 	@return AD_PrintTableFormat_ID
	 */
	public int getAD_PrintTableFormat_ID()
	{
		Integer ii = (Integer)getValue("AD_PrintTableFormat_ID");
		if (ii == null)
			return 0;
		return ii.intValue();
	}	//	getAD_PrintTableFormat_ID

	/**
	 * 	Get Optional TableFormat
	 * 	@param AD_PrintTableFormat_ID table format
	 */
	public void setAD_PrintTableFormat_ID (int AD_PrintTableFormat_ID)
	{
		setValue("AD_PrintTableFormat_ID", new Integer(AD_PrintTableFormat_ID));
		m_tFormat = MPrintTableFormat.get (AD_PrintTableFormat_ID, getAD_PrintFont_ID());
	}	//	getAD_PrintTableFormat_ID

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -