Search in sources :

Example 76 with MQuery

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;
}
Also used : MQuery(org.compiere.model.MQuery)

Example 77 with MQuery

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();
}
Also used : MQuery(org.compiere.model.MQuery) VEditor(org.compiere.grid.ed.VEditor) GridField(org.compiere.model.GridField) Component(java.awt.Component)

Example 78 with MQuery

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;
}
Also used : MQuery(org.compiere.model.MQuery) ValueNamePair(org.compiere.util.ValueNamePair) GridField(org.compiere.model.GridField)

Example 79 with MQuery

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);
}
Also used : MQuery(org.compiere.model.MQuery) ALayoutConstraint(org.compiere.apps.ALayoutConstraint)

Example 80 with MQuery

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;
}
Also used : MQuery(org.compiere.model.MQuery) PrintInfo(org.compiere.model.PrintInfo) Properties(java.util.Properties)

Aggregations

MQuery (org.compiere.model.MQuery)109 PrintInfo (org.compiere.model.PrintInfo)19 GridField (org.compiere.model.GridField)15 MPrintFormat (org.compiere.print.MPrintFormat)14 ReportEngine (org.compiere.print.ReportEngine)12 Point (java.awt.Point)11 ALayoutConstraint (org.compiere.apps.ALayoutConstraint)9 GridWindowVO (org.compiere.model.GridWindowVO)9 SQLException (java.sql.SQLException)8 GridTab (org.compiere.model.GridTab)8 GridWindow (org.compiere.model.GridWindow)7 PreparedStatement (java.sql.PreparedStatement)6 ResultSet (java.sql.ResultSet)6 AWindow (org.compiere.apps.AWindow)6 File (java.io.File)5 IOException (java.io.IOException)5 Language (org.compiere.util.Language)4 AdempiereException (org.adempiere.exceptions.AdempiereException)3 MClient (org.compiere.model.MClient)3 MLookup (org.compiere.model.MLookup)3