use of org.compiere.model.MTable in project adempiere by adempiere.
the class QueryTest method testIterate.
public void testIterate() throws Exception {
Iterator<MTable> it = new Query(getCtx(), "AD_Table", "TableName IN (?,?)", getTrxName()).setParameters(new Object[] { "C_Invoice", "M_InOut" }).setOrderBy("TableName").iterate();
int i = 0;
while (it.hasNext()) {
MTable t = it.next();
if (i == 0) {
assertEquals("Invalid object " + i, "C_Invoice", t.getTableName());
} else if (i == 1) {
assertEquals("Invalid object " + i, "M_InOut", t.getTableName());
} else {
assertFalse("More objects retrived than expected", true);
}
i++;
}
}
use of org.compiere.model.MTable in project adempiere by adempiere.
the class TrifonTest method testMProductCreation.
public void testMProductCreation() {
boolean singleCommit = true;
MTable mTable = MTable.get(Env.getCtx(), MInvoice.Table_Name);
System.out.println("XML presentation... is: " + mTable.get_xmlDocument(false));
MColumn[] mcolumn = mTable.getColumns(true);
for (int i = 0; i < mcolumn.length; i++) {
System.out.println("Name............ is: " + mcolumn[i].getName());
System.out.println("ColumnName...... is: " + mcolumn[i].getColumnName());
System.out.println("Desc............ is: " + mcolumn[i].getDescription());
System.out.println("Length.......... is: " + mcolumn[i].getFieldLength());
System.out.println("Reference_ID.... is: " + mcolumn[i].getAD_Reference_ID());
X_AD_Reference reference = new X_AD_Reference(Env.getCtx(), mcolumn[i].getAD_Reference_ID(), getTrxName());
System.out.println("ReferenceName... is: " + reference.getName());
System.out.println("..............................");
}
assertTrue(this.getClass().getName(), true);
}
use of org.compiere.model.MTable in project adempiere by adempiere.
the class QueryTest method testFirst.
public void testFirst() throws Exception {
MTable t = new Query(getCtx(), "AD_Table", "TableName IN (?,?)", getTrxName()).setParameters(new Object[] { "C_Invoice", "M_InOut" }).setOrderBy("TableName").first();
assertEquals("Invalid object", "C_Invoice", t.getTableName());
}
use of org.compiere.model.MTable in project adempiere by adempiere.
the class QueryTest method testScroll.
public void testScroll() throws Exception {
POResultSet<MTable> rs = new Query(getCtx(), "AD_Table", "TableName IN (?,?)", getTrxName()).setParameters(new Object[] { "C_Invoice", "M_InOut" }).setOrderBy("TableName").scroll();
try {
int i = 0;
while (rs.hasNext()) {
MTable t = rs.next();
if (i == 0) {
assertEquals("Invalid object " + i, "C_Invoice", t.getTableName());
} else if (i == 1) {
assertEquals("Invalid object " + i, "M_InOut", t.getTableName());
} else {
assertFalse("More objects retrived than expected", true);
}
i++;
}
} finally {
DB.close(rs);
rs = null;
}
}
use of org.compiere.model.MTable in project adempiere by adempiere.
the class ReportEngine method get.
/**************************************************************************
* Get Report Engine for process info
* @param ctx context
* @param pi process info with AD_PInstance_ID
* @return report engine or null
*/
public static ReportEngine get(Properties ctx, ProcessInfo pi) {
int AD_Client_ID = pi.getAD_Client_ID();
//
int AD_Table_ID = 0;
int AD_ReportView_ID = 0;
String TableName = null;
String whereClause = "";
int AD_PrintFormat_ID = 0;
boolean IsForm = false;
int Client_ID = -1;
// Get AD_Table_ID and TableName
String sql = "SELECT rv.AD_ReportView_ID,rv.WhereClause," + " t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm, pf.AD_Client_ID " + "FROM AD_PInstance pi" + " INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)" + " INNER JOIN AD_ReportView rv ON (p.AD_ReportView_ID=rv.AD_ReportView_ID)" + " INNER JOIN AD_Table t ON (rv.AD_Table_ID=t.AD_Table_ID)" + " LEFT OUTER JOIN AD_PrintFormat pf ON (p.AD_ReportView_ID=pf.AD_ReportView_ID AND pf.AD_Client_ID IN (0,?)) " + // #2
"WHERE pi.AD_PInstance_ID=? " + // own first
"ORDER BY pf.AD_Client_ID DESC, pf.IsDefault DESC";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, AD_Client_ID);
pstmt.setInt(2, pi.getAD_PInstance_ID());
rs = pstmt.executeQuery();
// Just get first
if (rs.next()) {
// required
AD_ReportView_ID = rs.getInt(1);
whereClause = rs.getString(2);
if (rs.wasNull())
whereClause = "";
whereClause = Env.parseContext(ctx, 0, whereClause, false);
//
AD_Table_ID = rs.getInt(3);
// required for query
TableName = rs.getString(4);
// required
AD_PrintFormat_ID = rs.getInt(5);
// required
IsForm = "Y".equals(rs.getString(6));
Client_ID = rs.getInt(7);
}
} catch (SQLException e1) {
log.log(Level.SEVERE, "(1) - " + sql, e1);
} finally {
DB.close(rs, pstmt);
rs = null;
pstmt = null;
}
// Nothing found
if (AD_ReportView_ID == 0) {
// Check Print format in Report Directly
sql = "SELECT t.AD_Table_ID,t.TableName, pf.AD_PrintFormat_ID, pf.IsForm " + "FROM AD_PInstance pi" + " INNER JOIN AD_Process p ON (pi.AD_Process_ID=p.AD_Process_ID)" + " INNER JOIN AD_PrintFormat pf ON (p.AD_PrintFormat_ID=pf.AD_PrintFormat_ID)" + " INNER JOIN AD_Table t ON (pf.AD_Table_ID=t.AD_Table_ID) " + "WHERE pi.AD_PInstance_ID=?";
try {
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, pi.getAD_PInstance_ID());
rs = pstmt.executeQuery();
if (rs.next()) {
whereClause = "";
AD_Table_ID = rs.getInt(1);
// required for query
TableName = rs.getString(2);
// required
AD_PrintFormat_ID = rs.getInt(3);
// required
IsForm = "Y".equals(rs.getString(4));
Client_ID = AD_Client_ID;
}
} catch (SQLException e1) {
log.log(Level.SEVERE, "(2) - " + sql, e1);
} finally {
DB.close(rs, pstmt);
rs = null;
pstmt = null;
}
if (AD_PrintFormat_ID == 0) {
log.log(Level.SEVERE, "Report Info NOT found AD_PInstance_ID=" + pi.getAD_PInstance_ID() + ",AD_Client_ID=" + AD_Client_ID);
return null;
}
}
// Create Query from Parameters
MQuery query = null;
if (// Form = one record
IsForm && pi.getRecord_ID() != 0 && // Not temporary table - teo_sarca, BF [ 2828886 ]
!TableName.startsWith("T_")) {
MTable table = MTable.get(ctx, AD_Table_ID);
String columnKey = null;
if (table.isSingleKey())
columnKey = table.getKeyColumns()[0];
else
columnKey = TableName + "_ID";
query = MQuery.getEqualQuery(columnKey, pi.getRecord_ID());
} else {
query = MQuery.get(ctx, pi.getAD_PInstance_ID(), TableName);
}
// Add to static where clause from ReportView
if (whereClause.length() != 0)
query.addRestriction(whereClause);
// Get Print Format
MPrintFormat format = null;
Object so = pi.getSerializableObject();
if (so instanceof MPrintFormat)
format = (MPrintFormat) so;
if (format == null && AD_PrintFormat_ID != 0) {
// We have a PrintFormat with the correct Client
if (Client_ID == AD_Client_ID)
format = MPrintFormat.get(ctx, AD_PrintFormat_ID, false);
else
format = MPrintFormat.copyToClient(ctx, AD_PrintFormat_ID, AD_Client_ID);
}
if (format != null && format.getItemCount() == 0) {
log.info("No Items - recreating: " + format);
format.delete(true);
format = null;
}
// Create Format
if (format == null && AD_ReportView_ID != 0)
format = MPrintFormat.createFromReportView(ctx, AD_ReportView_ID, pi.getTitle());
if (format == null)
return null;
format.setTranslationLanguage(format.getLanguage());
//
PrintInfo info = new PrintInfo(pi);
info.setAD_Table_ID(AD_Table_ID);
// FR [ 295 ]
ReportEngine re = new ReportEngine(ctx, format, query, info, pi.getTransactionName());
// Set Process Information
re.setProcessInfo(pi);
return re;
}
Aggregations