📄 mprintformatitem.java
字号:
sb.append(",FieldAlign=").append(getFieldAlignmentType());
//
sb.append(", Type=").append(getPrintFormatType());
if (isTypeText())
;
else if (isTypeField())
sb.append(",AD_Column_ID=").append(getAD_Column_ID());
else if (isTypePrintFormat())
sb.append(",AD_PrintFormatChild_ID=").append(getAD_PrintFormatChild_ID())
.append(",AD_Column_ID=").append(getAD_Column_ID());
else if (isTypeImage())
sb.append(",ImageIsAttached=").append(isImageIsAttached()).append(",ImageURL=").append(getImageURL());
//
sb.append(", Printed=").append(isPrinted())
.append(",SeqNo=").append(getSeqNo())
.append(",OrderBy=").append(isOrderBy())
.append(",SortNo=").append(getSortNo())
.append(",Summarized=").append(isSummarized());
sb.append("]");
return sb.toString();
} // toString
/*************************************************************************/
/** Lookup Map of AD_Column_ID for ColumnName */
private static CCache<Integer,String> s_columns = new CCache<Integer,String>("AD_PrintFormatItem", 200);
/**
* Get ColumnName from AD_Column_ID
* @return ColumnName
*/
public String getColumnName()
{
if (m_columnName == null) // Get Column Name from AD_Column not index
m_columnName = getColumnName (new Integer(getAD_Column_ID()));
return m_columnName;
} // getColumnName
/**
* Get Column Name from AD_Column_ID.
* Be careful not to confuse it with PO method getAD_Column_ID (index)
* @param AD_Column_ID column
* @return Column Name
*/
private static String getColumnName (Integer AD_Column_ID)
{
if (AD_Column_ID == null || AD_Column_ID.intValue() == 0)
return null;
//
String retValue = (String)s_columns.get(AD_Column_ID);
if (retValue == null)
{
String sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, AD_Column_ID.intValue());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
retValue = rs.getString(1);
s_columns.put(AD_Column_ID, retValue);
}
else
s_log.log(Level.SEVERE, "Not found AD_Column_ID=" + AD_Column_ID);
rs.close();
pstmt.close();
}
catch (SQLException e)
{
s_log.log(Level.SEVERE, "AD_Column_ID=" + AD_Column_ID, e);
}
}
return retValue;
} // getColumnName
/**************************************************************************
* Create Print Format Item from Column
* @param format parent
* @param AD_Column_ID column
* @param seqNo sequence of display if 0 it is not printed
* @return Print Format Item
*/
public static MPrintFormatItem createFromColumn (MPrintFormat format, int AD_Column_ID, int seqNo)
{
MPrintFormatItem pfi = new MPrintFormatItem (format.getCtx(), 0, null);
pfi.setAD_PrintFormat_ID (format.getAD_PrintFormat_ID());
pfi.setClientOrg(format);
pfi.setAD_Column_ID(AD_Column_ID);
pfi.setPrintFormatType(PRINTFORMATTYPE_Field);
// translation is dome by trigger
String sql = "SELECT c.ColumnName,e.Name,e.PrintName, " // 1..3
+ "c.AD_Reference_ID,c.IsKey,c.SeqNo " // 4..6
+ "FROM AD_Column c, AD_Element e "
+ "WHERE c.AD_Column_ID=?"
+ " AND c.AD_Element_ID=e.AD_Element_ID";
// translate base entry if single language - trigger copies to trl tables
Language language = format.getLanguage();
boolean trl = !Env.isMultiLingualDocument(format.getCtx()) && !language.isBaseLanguage();
if (trl)
sql = "SELECT c.ColumnName,e.Name,e.PrintName, " // 1..3
+ "c.AD_Reference_ID,c.IsKey,c.SeqNo " // 4..6
+ "FROM AD_Column c, AD_Element_Trl e "
+ "WHERE c.AD_Column_ID=?"
+ " AND c.AD_Element_ID=e.AD_Element_ID"
+ " AND e.AD_Language=?";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, AD_Column_ID);
if (trl)
pstmt.setString(2, language.getAD_Language());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
String ColumnName = rs.getString(1);
pfi.setName(rs.getString(2));
pfi.setPrintName(rs.getString(3));
int displayType = rs.getInt(4);
if (DisplayType.isNumeric(displayType))
pfi.setFieldAlignmentType(FIELDALIGNMENTTYPE_TrailingRight);
else if (displayType == DisplayType.Text || displayType == DisplayType.Memo )
pfi.setFieldAlignmentType(FIELDALIGNMENTTYPE_Block);
else
pfi.setFieldAlignmentType(FIELDALIGNMENTTYPE_LeadingLeft);
boolean isKey = "Y".equals(rs.getString(5));
//
if (isKey
|| ColumnName.startsWith("Created") || ColumnName.startsWith("Updated")
|| ColumnName.equals("AD_Client_ID") || ColumnName.equals("AD_Org_ID")
|| ColumnName.equals("IsActive")
|| displayType == DisplayType.Button || displayType == DisplayType.Binary
|| displayType == DisplayType.ID || displayType == DisplayType.Image
|| displayType == DisplayType.RowID
|| seqNo == 0 )
{
pfi.setIsPrinted(false);
pfi.setSeqNo(0);
}
else
{
pfi.setIsPrinted(true);
pfi.setSeqNo(seqNo);
}
int idSeqNo = rs.getInt(6); // IsIdentifier SortNo
if (idSeqNo > 0)
{
pfi.setIsOrderBy(true);
pfi.setSortNo(idSeqNo);
}
}
else
s_log.log(Level.SEVERE, "Not Found AD_Column_ID=" + AD_Column_ID
+ " Trl=" + trl + " " + language.getAD_Language());
rs.close();
pstmt.close();
}
catch (SQLException e)
{
s_log.log(Level.SEVERE, sql, e);
}
if (!pfi.save())
return null;
// pfi.dump();
return pfi;
} // createFromColumn
/**
* Copy existing Definition To Client
* @param To_Client_ID to client
* @param AD_PrintFormat_ID parent print format
* @return print format item
*/
public MPrintFormatItem copyToClient (int To_Client_ID, int AD_PrintFormat_ID)
{
MPrintFormatItem to = new MPrintFormatItem (p_ctx, 0, null);
MPrintFormatItem.copyValues(this, to);
to.setClientOrg(To_Client_ID, 0);
to.setAD_PrintFormat_ID(AD_PrintFormat_ID);
to.save();
return to;
} // copyToClient
/**
* Before Save
* @param newRecord
* @return true if ok
*/
protected boolean beforeSave (boolean newRecord)
{
// Order
if (!isOrderBy())
{
setSortNo(0);
setIsGroupBy(false);
setIsPageBreak(false);
}
// Rel Position
if (isRelativePosition())
{
setXPosition(0);
setYPosition(0);
}
else
{
setXSpace(0);
setYSpace(0);
}
// Image
if (isImageField())
{
setImageIsAttached(false);
setImageURL(null);
}
return true;
} // beforeSave
/**
* After Save
* @param newRecord new
* @param success success
* @return success
*/
protected boolean afterSave (boolean newRecord, boolean success)
{
// Set Translation from Element
if (newRecord
// && MClient.get(getCtx()).isMultiLingualDocument()
&& getPrintName() != null && getPrintName().length() > 0)
{
String sql = "UPDATE AD_PrintFormatItem_Trl trl "
+ "SET PrintName = (SELECT e.PrintName "
+ "FROM AD_Element_Trl e, AD_Column c "
+ "WHERE e.AD_Language=trl.AD_Language"
+ " AND e.AD_Element_ID=c.AD_Element_ID"
+ " AND c.AD_Column_ID=" + getAD_Column_ID() + ") "
+ "WHERE AD_PrintFormatItem_ID = " + get_ID()
+ " AND EXISTS (SELECT * "
+ "FROM AD_Element_Trl e, AD_Column c "
+ "WHERE e.AD_Language=trl.AD_Language"
+ " AND e.AD_Element_ID=c.AD_Element_ID"
+ " AND c.AD_Column_ID=" + getAD_Column_ID()
+ " AND trl.AD_PrintFormatItem_ID = " + get_ID() + ")"
+ " AND EXISTS (SELECT * FROM AD_Client "
+ "WHERE AD_Client_ID=trl.AD_Client_ID AND IsMultiLingualDocument='Y')";
int no = DB.executeUpdate(sql, get_TrxName());
log.fine("translations updated #" + no);
}
return success;
} // afterSave
} // MPrintFormatItem
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -