📄 mprintformat.java
字号:
/******************************************************************************
* 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 + -