use of org.compiere.model.MQuery in project adempiere by adempiere.
the class AZoomAcross method launchZoom.
/**
* Launch Zoom
* @param pp KeyPair
*/
private void launchZoom(final ZoomInfoFactory.ZoomInfo zoomInfo) {
final int AD_Window_ID = zoomInfo.windowId;
final MQuery query = zoomInfo.query;
logger.info("AD_Window_ID=" + AD_Window_ID + " - " + query);
AWindow frame = new AWindow();
if (!frame.initWindow(AD_Window_ID, query))
return;
AEnv.addToWindowManager(frame);
if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED)) {
AEnv.showMaximized(frame);
} else {
AEnv.showCenterScreen(frame);
}
frame = null;
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class Find method cmd_ok_Simple.
// stateChanged
/**
* Simple OK Button pressed
*/
private void cmd_ok_Simple() {
// Create Query String
m_query = new MQuery(m_tableName);
m_query.addRestriction(Env.parseContext(Env.getCtx(), m_targetWindowNo, m_whereExtended, false));
if (hasValue && !valueField.getText().equals("%") && valueField.getText().length() != 0) {
String value = valueField.getText().toUpperCase();
if (!value.endsWith("%"))
value += "%";
m_query.addRestriction("UPPER(Value)", MQuery.LIKE, value, valueLabel.getText(), value);
}
//
if (hasDocNo && !docNoField.getText().equals("%") && docNoField.getText().length() != 0) {
String value = docNoField.getText().toUpperCase();
if (!value.endsWith("%"))
value += "%";
m_query.addRestriction("UPPER(DocumentNo)", MQuery.LIKE, value, docNoLabel.getText(), value);
}
//
if ((hasName) && !nameField.getText().equals("%") && nameField.getText().length() != 0) {
String value = nameField.getText().toUpperCase();
if (!value.endsWith("%"))
value += "%";
m_query.addRestriction("UPPER(Name)", MQuery.LIKE, value, nameLabel.getText(), value);
}
//
if (hasDescription && !descriptionField.getText().equals("%") && descriptionField.getText().length() != 0) {
String value = descriptionField.getText().toUpperCase();
if (!value.endsWith("%"))
value += "%";
m_query.addRestriction("UPPER(Description)", MQuery.LIKE, value, descriptionLabel.getText(), value);
}
// Special Editors
for (int i = 0; i < m_sEditors.size(); i++) {
VEditor ved = (VEditor) m_sEditors.get(i);
Object value = ved.getValue();
Object modifiedvalue = null;
String ColumnSQL = null;
String ColumnName = ((Component) ved).getName();
GridField field = getTargetMField(ColumnName);
if (value != null && value.toString().length() > 0) {
ColumnName = ((Component) ved).getName();
log.fine(ColumnName + "=" + value);
// globalqss - Carlos Ruiz - 20060711
// fix a bug with virtualColumn + isSelectionColumn not yielding results
field = getTargetMField(ColumnName);
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
ColumnSQL = field.getColumnSQL(false);
// Be more permissive for String columns
if (isSearchLike(field)) {
String valueStr = value.toString().toUpperCase();
if (!valueStr.endsWith("%"))
valueStr += "%";
//
ColumnSQL = "UPPER(" + ColumnSQL + ")";
modifiedvalue = valueStr;
} else
modifiedvalue = value;
//
if (modifiedvalue.toString().indexOf('%') != -1 && !field.isRangeLookup())
m_query.addRestriction(ColumnSQL, MQuery.LIKE, modifiedvalue, ColumnName, ved.getDisplay());
else if (isProductCategoryField && value instanceof Integer)
m_query.addRestriction(getSubCategoryWhereClause(((Integer) value).intValue()));
else if (!field.isRangeLookup())
m_query.addRestriction(ColumnSQL, MQuery.EQUAL, value, ColumnName, ved.getDisplay());
/*
if (value.toString().indexOf('%') != -1)
m_query.addRestriction(ColumnName, MQuery.LIKE, value, ColumnName, ved.getDisplay());
else
m_query.addRestriction(ColumnName, MQuery.EQUAL, value, ColumnName, ved.getDisplay());
*/
// end globalqss patch
}
if (field.isRangeLookup()) {
VEditor editor2 = (VEditor) m_sEditors2.get(i);
Object value2 = null;
Object parsedValue = null;
Object parsedValue2 = null;
String infoDisplay_to = null;
String infoDisplay = null;
if (editor2 != null)
value2 = editor2.getValue();
//GridField field = null;
if ((value != null && !value.toString().isEmpty()) && (value2 != null && !value2.toString().isEmpty()) && value2.toString().length() > 0) {
ColumnName = ((Component) ved).getName();
log.fine(ColumnName + "=" + value2);
field = getTargetMField(ColumnName);
infoDisplay = value.toString();
parsedValue = parseValue(field, value);
parsedValue2 = parseValue(field, value2);
infoDisplay_to = value2.toString();
if (parsedValue2 == null)
continue;
m_query.addRangeRestriction(ColumnSQL, parsedValue, parsedValue2, ColumnSQL, infoDisplay, infoDisplay_to);
} else //then get all the records after the First value
if (value != null && !value.toString().isEmpty() && (value2 == null || value2.toString().isEmpty())) {
ColumnName = ((Component) ved).getName();
m_query.addRestriction(ColumnSQL, MQuery.GREATER_EQUAL, value, ColumnName, ved.getDisplay());
} else // then get all the records before the second value
if ((value == null || value.toString().isEmpty()) && value2 != null && !value2.toString().isEmpty()) {
ColumnName = ((Component) ved).getName();
field = getTargetMField(ColumnName);
ColumnSQL = field.getColumnSQL(false);
m_query.addRestriction(ColumnSQL, MQuery.LESS_EQUAL, value2, ColumnName, editor2.getDisplay());
}
}
}
// editors
// teo_sarca [ 1708717 ]
m_isCancel = false;
// Test for no records
if (getNoOfRecords(m_query, true) != 0)
dispose();
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class Find method codeUserQuery.
// actionPerformed
/**
* Code the query parameters entered in the table into a string that can be saved in the database.
* This is the counterpart to {@link #parseUserQuery()}.
* @return a StringBuffer containing the coded query information.
*/
private StringBuffer codeUserQuery() {
advancedTable.stopEditor(true);
m_query = new MQuery(m_tableName);
m_query.addRestriction(Env.parseContext(Env.getCtx(), m_targetWindowNo, m_whereExtended, false));
StringBuffer code = new StringBuffer();
int openBrackets = 0;
for (int row = 0; row < advancedTable.getRowCount(); row++) {
// Column
Object column = advancedTable.getValueAt(row, INDEX_COLUMNNAME);
if (column == null)
continue;
String ColumnName = column instanceof ValueNamePair ? ((ValueNamePair) column).getValue() : column.toString();
String infoName = column.toString();
//
GridField field = getTargetMField(ColumnName);
if (field == null)
continue;
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
String ColumnSQL = field.getColumnSQL(false);
String lBrackets = (String) advancedTable.getValueAt(row, INDEX_LEFTBRACKET);
if (lBrackets != null)
openBrackets += lBrackets.length();
String rBrackets = (String) advancedTable.getValueAt(row, INDEX_RIGHTBRACKET);
if (rBrackets != null)
openBrackets -= rBrackets.length();
boolean and = true;
if (row > 0)
and = !"OR".equals((String) advancedTable.getValueAt(row, INDEX_ANDOR));
// Op
Object op = advancedTable.getValueAt(row, INDEX_OPERATOR);
if (op == null)
continue;
String Operator = ((ValueNamePair) op).getValue();
// Value ******
Object value = advancedTable.getValueAt(row, INDEX_VALUE);
if (value == null) {
if (MQuery.OPERATORS[MQuery.EQUAL_INDEX].equals(op) || MQuery.OPERATORS[MQuery.NOT_EQUAL_INDEX].equals(op)) {
m_query.addRestriction(ColumnSQL, Operator, null, infoName, null, and, openBrackets);
if (code.length() > 0)
code.append(SEGMENT_SEPARATOR);
code.append(ColumnName).append(FIELD_SEPARATOR).append(Operator).append(FIELD_SEPARATOR).append("").append(FIELD_SEPARATOR).append("").append(FIELD_SEPARATOR).append(and ? "AND" : "OR").append(FIELD_SEPARATOR).append(lBrackets != null ? lBrackets : "").append(FIELD_SEPARATOR).append(rBrackets != null ? rBrackets : "");
} else {
continue;
}
} else {
Object parsedValue = parseValue(field, value);
if (parsedValue == null)
continue;
String infoDisplay = value.toString();
if (field.isLookup())
infoDisplay = field.getLookup().getDisplay(value);
else if (field.getDisplayType() == DisplayType.YesNo)
infoDisplay = Msg.getMsg(Env.getCtx(), infoDisplay);
// Value2 ******
Object value2 = null;
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op)) {
value2 = advancedTable.getValueAt(row, INDEX_VALUE2);
if (value2 == null)
continue;
Object parsedValue2 = parseValue(field, value2);
String infoDisplay_to = value2.toString();
if (parsedValue2 == null)
continue;
m_query.addRangeRestriction(ColumnSQL, parsedValue, parsedValue2, infoName, infoDisplay, infoDisplay_to, and, openBrackets);
} else if (isProductCategoryField && MQuery.OPERATORS[MQuery.EQUAL_INDEX].equals(op)) {
if (!(parsedValue instanceof Integer)) {
continue;
}
m_query.addRestriction(getSubCategoryWhereClause(((Integer) parsedValue).intValue()), and, openBrackets);
} else
m_query.addRestriction(ColumnSQL, Operator, parsedValue, infoName, infoDisplay, and, openBrackets);
if (code.length() > 0)
code.append(SEGMENT_SEPARATOR);
code.append(ColumnName).append(FIELD_SEPARATOR).append(Operator).append(FIELD_SEPARATOR).append(value.toString()).append(FIELD_SEPARATOR).append(value2 != null ? value2.toString() : "").append(FIELD_SEPARATOR).append(and ? "AND" : "OR").append(FIELD_SEPARATOR).append(lBrackets != null ? lBrackets : "").append(FIELD_SEPARATOR).append(rBrackets != null ? rBrackets : "");
}
}
return code;
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class InfoAsset method zoom.
// hasHistory
/**
* Zoom
*/
protected void zoom(int record_ID) {
log.info("InfoAsset.zoom");
Integer A_Asset_ID = record_ID;
if (A_Asset_ID == null)
return;
MQuery query = new MQuery("A_Asset");
query.addRestriction("A_Asset_ID", MQuery.EQUAL, A_Asset_ID);
query.setRecordCount(1);
int AD_WindowNo = getAD_Window_ID("A_Asset", true);
zoom(AD_WindowNo, query);
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class ReportCtl method startStandardReport.
/**************************************************************************
* Start Standard Report.
* - Get Table Info & submit.<br>
* A report can be created from:
* <ol>
* <li>attached MPrintFormat, if any (see {@link ProcessInfo#setTransientObject(Object)}, {@link ProcessInfo#setSerializableObject(java.io.Serializable)}
* <li>process information (AD_Process.AD_PrintFormat_ID, AD_Process.AD_ReportView_ID)
* </ol>
* @param processInfo Process Info
* @param IsDirectPrint if true, prints directly - otherwise View
* @return true if OK
*/
public static boolean startStandardReport(ProcessInfo processInfo) {
ReportEngine reportEngine = null;
//
// Create Report Engine by using attached MPrintFormat (if any)
Object transientObject = processInfo.getTransientObject();
if (transientObject == null)
transientObject = processInfo.getSerializableObject();
if (transientObject != null && transientObject instanceof MPrintFormat) {
Properties ctx = Env.getCtx();
MPrintFormat format = (MPrintFormat) transientObject;
String tableName = MTable.getTableName(ctx, format.getAD_Table_ID());
MQuery query = MQuery.get(ctx, processInfo.getAD_PInstance_ID(), tableName);
PrintInfo info = new PrintInfo(processInfo);
reportEngine = new ReportEngine(ctx, format, query, info);
createOutput(reportEngine, processInfo.isPrintPreview(), null);
return true;
} else //
// Create Report Engine normally
{
reportEngine = ReportEngine.get(Env.getCtx(), processInfo);
if (reportEngine == null) {
processInfo.setSummary("No ReportEngine");
return false;
}
}
createOutput(reportEngine, processInfo.isPrintPreview(), null);
return true;
}
Aggregations