📄 infoorder.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-2001 Jorg Janke, parts
* created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.apps.search;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.math.*;
import org.compiere.apps.*;
import org.compiere.grid.ed.*;
import org.compiere.minigrid.*;
import org.compiere.util.*;
import org.compiere.model.*;
import org.compiere.plaf.*;
import org.compiere.swing.*;
/**
* Info Order
*
* @author Jorg Janke
* @version $Id: InfoOrder.java,v 1.11 2003/03/18 07:07:39 jjanke Exp $
*/
public class InfoOrder extends Info
{
/**
* Detail Protected Contructor
* @param frame parent frame
* @param modal modal
* @param WindowNo window no
* @param value query value
* @param multiSelection multiple selections
* @param whereClause where clause
*/
protected InfoOrder(Frame frame, boolean modal, int WindowNo, String value,
boolean multiSelection, String whereClause)
{
super (frame, modal, WindowNo, "o", "C_Order_ID", multiSelection, whereClause);
Log.trace(Log.l1_User, "InfoOrder");
setTitle(Msg.getMsg(Env.getCtx(), "InfoOrder"));
//
try
{
statInit();
m_loadedOK = initInfo ();
}
catch (Exception e)
{
return;
}
//
int no = m_table.getRowCount();
setStatusLine(Integer.toString(no) + " " + Msg.getMsg(Env.getCtx(), "SearchRows_EnterQuery"), false);
setStatusDB(Integer.toString(no));
if (value != null && value.length() > 0)
{
fDocumentNo.setValue(value);
executeQuery();
}
//
pack();
// Focus
fDocumentNo.requestFocus();
} // InfoOrder
/** String Array of Column Info */
private Info_Column[] m_generalLayout;
/** list of query columns */
private ArrayList m_queryColumns = new ArrayList();
/** Table Name */
private String m_tableName;
/** Key Column Name */
private String m_keyColumn;
// Static Info
private CLabel lDocumentNo = new CLabel(Msg.translate(Env.getCtx(), "DocumentNo"));
private CTextField fDocumentNo = new CTextField(10);
private CLabel lDescription = new CLabel(Msg.translate(Env.getCtx(), "Description"));
private CTextField fDescription = new CTextField(10);
private CLabel lPOReference = new CLabel(Msg.translate(Env.getCtx(), "POReference"));
private CTextField fPOReference = new CTextField(10);
//
// private CLabel lOrg_ID = new CLabel(Msg.translate(Env.getCtx(), "AD_Org_ID"));
// private VLookup fOrg_ID;
private CLabel lBPartner_ID = new CLabel(Msg.translate(Env.getCtx(), "C_BPartner_ID"));
private VLookup fBPartner_ID;
//
private CLabel lDateFrom = new CLabel(Msg.translate(Env.getCtx(), "DateOrdered"));
private VDate fDateFrom = new VDate("DateFrom", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateFrom"));
private CLabel lDateTo = new CLabel("-");
private VDate fDateTo = new VDate("DateTo", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateTo"));
private CLabel lAmtFrom = new CLabel(Msg.translate(Env.getCtx(), "GrandTotal"));
private VNumber fAmtFrom = new VNumber("AmtFrom", false, false, true, DisplayType.Amount, Msg.translate(Env.getCtx(), "AmtFrom"));
private CLabel lAmtTo = new CLabel("-");
private VNumber fAmtTo = new VNumber("AmtTo", false, false, true, DisplayType.Amount, Msg.translate(Env.getCtx(), "AmtTo"));
private VCheckBox fIsSOTrx = new VCheckBox ("IsSOTrx", false, false, true, Msg.translate(Env.getCtx(), "IsSOTrx"), "", false);
/** Array of Column Info */
private static final Info_Column[] s_invoiceLayout = {
new Info_Column(" ", "o.C_Order_ID", IDColumn.class),
new Info_Column(Msg.translate(Env.getCtx(), "C_BPartner_ID"), "(SELECT Name FROM C_BPartner bp WHERE bp.C_BPartner_ID=o.C_BPartner_ID)", String.class),
new Info_Column(Msg.translate(Env.getCtx(), "DateOrdered"), "o.DateOrdered", Timestamp.class),
new Info_Column(Msg.translate(Env.getCtx(), "DocumentNo"), "o.DocumentNo", String.class),
new Info_Column(Msg.translate(Env.getCtx(), "C_Currency_ID"), "(SELECT ISO_Code FROM C_Currency c WHERE c.C_Currency_ID=o.C_Currency_ID)", String.class),
new Info_Column(Msg.translate(Env.getCtx(), "GrandTotal"), "o.GrandTotal", BigDecimal.class),
new Info_Column(Msg.translate(Env.getCtx(), "ConvertedAmount"), "C_Base_Convert(o.GrandTotal,o.C_Currency_ID,o.AD_Client_ID,o.DateAcct, o.AD_Org_ID)", BigDecimal.class),
new Info_Column(Msg.translate(Env.getCtx(), "IsSOTrx"), "o.IsSOTrx", Boolean.class),
new Info_Column(Msg.translate(Env.getCtx(), "Description"), "o.Description", String.class),
new Info_Column(Msg.translate(Env.getCtx(), "POReference"), "o.POReference", String.class)
};
/**
* Static Setup - add fields to parameterPanel
* @throws Exception if Lookups cannot be initialized
*/
private void statInit() throws Exception
{
lDocumentNo.setLabelFor(fDocumentNo);
fDocumentNo.setBackground(CompierePLAF.getInfoBackground());
fDocumentNo.addActionListener(this);
lDescription.setLabelFor(fDescription);
fDescription.setBackground(CompierePLAF.getInfoBackground());
fDescription.addActionListener(this);
lPOReference.setLabelFor(lPOReference);
fPOReference.setBackground(CompierePLAF.getInfoBackground());
fPOReference.addActionListener(this);
fIsSOTrx.setSelected(!"N".equals(Env.getContext(Env.getCtx(), m_WindowNo, "IsSOTrx")));
fIsSOTrx.addActionListener(this);
//
// fOrg_ID = new VLookup("AD_Org_ID", false, false, true,
// MLookupFactory.create(Env.getCtx(), 3486, m_WindowNo, DisplayType.TableDir, false),
// DisplayType.TableDir, m_WindowNo);
// lOrg_ID.setLabelFor(fOrg_ID);
// fOrg_ID.setBackground(CompierePLAF.getInfoBackground());
fBPartner_ID = new VLookup("C_BPartner_ID", false, false, true,
MLookupFactory.create(Env.getCtx(), 3499, m_WindowNo, DisplayType.Search, false),
DisplayType.Search, m_WindowNo);
lBPartner_ID.setLabelFor(fBPartner_ID);
fBPartner_ID.setBackground(CompierePLAF.getInfoBackground());
//
lDateFrom.setLabelFor(fDateFrom);
fDateFrom.setBackground(CompierePLAF.getInfoBackground());
fDateFrom.setToolTipText(Msg.translate(Env.getCtx(), "DateFrom"));
lDateTo.setLabelFor(fDateTo);
fDateTo.setBackground(CompierePLAF.getInfoBackground());
fDateTo.setToolTipText(Msg.translate(Env.getCtx(), "DateTo"));
lAmtFrom.setLabelFor(fAmtFrom);
fAmtFrom.setBackground(CompierePLAF.getInfoBackground());
fAmtFrom.setToolTipText(Msg.translate(Env.getCtx(), "AmtFrom"));
lAmtTo.setLabelFor(fAmtTo);
fAmtTo.setBackground(CompierePLAF.getInfoBackground());
fAmtTo.setToolTipText(Msg.translate(Env.getCtx(), "AmtTo"));
//
parameterPanel.setLayout(new ALayout());
// First Row
parameterPanel.add(lDocumentNo, new ALayoutConstraint(0,0));
parameterPanel.add(fDocumentNo, null);
parameterPanel.add(lBPartner_ID, null);
parameterPanel.add(fBPartner_ID, null);
parameterPanel.add(fIsSOTrx, new ALayoutConstraint(0,5));
// 2nd Row
parameterPanel.add(lDescription, new ALayoutConstraint(1,0));
parameterPanel.add(fDescription, null);
parameterPanel.add(lDateFrom, null);
parameterPanel.add(fDateFrom, null);
parameterPanel.add(lDateTo, null);
parameterPanel.add(fDateTo, null);
// 3rd Row
parameterPanel.add(lPOReference, new ALayoutConstraint(2,0));
parameterPanel.add(fPOReference, null);
parameterPanel.add(lAmtFrom, null);
parameterPanel.add(fAmtFrom, null);
parameterPanel.add(lAmtTo, null);
parameterPanel.add(fAmtTo, null);
// parameterPanel.add(lOrg_ID, null);
// parameterPanel.add(fOrg_ID, null);
} // statInit
/**
* General Init
* @return true, if success
*/
private boolean initInfo ()
{
// Set Defaults
String bp = Env.getContext(Env.getCtx(), m_WindowNo, "C_BPartner_ID");
if (bp != null && bp.length() != 0)
fBPartner_ID.setValue(new Integer(bp));
// prepare table
StringBuffer where = new StringBuffer("o.IsActive='Y'");
if (m_whereClause.length() > 0)
where.append(" AND ").append(Util.replace(m_whereClause, "C_Order.", "o."));
prepareTable(s_invoiceLayout,
" C_Order o",
where.toString(),
"2,3,4");
return true;
} // initInfo
/*************************************************************************/
/**
* Construct SQL Where Clause and define parameters.
* (setParameters needs to set parameters)
* Includes first AND
* @return sql
*/
String getSQLWhere()
{
StringBuffer sql = new StringBuffer();
if (fDocumentNo.getText().length() > 0)
sql.append(" AND UPPER(o.DocumentNo) LIKE ?");
if (fDescription.getText().length() > 0)
sql.append(" AND UPPER(o.Description) LIKE ?");
if (fPOReference.getText().length() > 0)
sql.append(" AND UPPER(o.POReference) LIKE ?");
//
if (fBPartner_ID.getValue() != null)
sql.append(" AND o.C_BPartner_ID=?");
//
if (fDateFrom.getValue() != null || fDateTo.getValue() != null)
{
Timestamp from = (Timestamp)fDateFrom.getValue();
Timestamp to = (Timestamp)fDateTo.getValue();
if (from == null && to != null)
sql.append(" AND TRUNC(o.DateOrdered) <= ?");
else if (from != null && to == null)
sql.append(" AND TRUNC(o.DateOrdered) >= ?");
else if (from != null && to != null)
sql.append(" AND TRUNC(o.DateOrdered) BETWEEN ? AND ?");
}
//
if (fAmtFrom.getValue() != null || fAmtTo.getValue() != null)
{
BigDecimal from = (BigDecimal)fAmtFrom.getValue();
BigDecimal to = (BigDecimal)fAmtTo.getValue();
if (from == null && to != null)
sql.append(" AND o.GrandTotal <= ?");
else if (from != null && to == null)
sql.append(" AND o.GrandTotal >= ?");
else if (from != null && to != null)
sql.append(" AND o.GrandTotal BETWEEN ? AND ?");
}
sql.append(" AND o.IsSOTrx=?");
// Log.trace(Log.l6_Database, "InfoOrder.setWhereClause", sql.toString());
return sql.toString();
} // getSQLWhere
/**
* Set Parameters for Query.
* (as defined in getSQLWhere)
* @param pstmt statement
* @throws SQLException
*/
void setParameters(PreparedStatement pstmt) throws SQLException
{
int index = 1;
if (fDocumentNo.getText().length() > 0)
pstmt.setString(index++, getSQLText(fDocumentNo));
if (fDescription.getText().length() > 0)
pstmt.setString(index++, getSQLText(fDescription));
if (fPOReference.getText().length() > 0)
pstmt.setString(index++, getSQLText(fPOReference));
//
if (fBPartner_ID.getValue() != null)
{
Integer bp = (Integer)fBPartner_ID.getValue();
pstmt.setInt(index++, bp.intValue());
Log.trace(Log.l5_DData, "BPartner=" + bp);
}
//
if (fDateFrom.getValue() != null || fDateTo.getValue() != null)
{
Timestamp from = (Timestamp)fDateFrom.getValue();
Timestamp to = (Timestamp)fDateTo.getValue();
Log.trace(Log.l5_DData, "Date From=" + from + ", To=" + to);
if (from == null && to != null)
pstmt.setTimestamp(index++, to);
else if (from != null && to == null)
pstmt.setTimestamp(index++, from);
else if (from != null && to != null)
{
pstmt.setTimestamp(index++, from);
pstmt.setTimestamp(index++, to);
}
}
//
if (fAmtFrom.getValue() != null || fAmtTo.getValue() != null)
{
BigDecimal from = (BigDecimal)fAmtFrom.getValue();
BigDecimal to = (BigDecimal)fAmtTo.getValue();
Log.trace(Log.l5_DData, "Amt From=" + from + ", To=" + to);
if (from == null && to != null)
pstmt.setBigDecimal(index++, to);
else if (from != null && to == null)
pstmt.setBigDecimal(index++, from);
else if (from != null && to != null)
{
pstmt.setBigDecimal(index++, from);
pstmt.setBigDecimal(index++, to);
}
}
pstmt.setString(index++, fIsSOTrx.isSelected() ? "Y" : "N");
} // setParameters
/**
* Get SQL WHERE parameter
* @param f field
* @return sql
*/
private String getSQLText (CTextField f)
{
String s = f.getText().toUpperCase();
if (!s.endsWith("%"))
s += "%";
Log.trace(Log.l5_DData, "String=" + s);
return s;
} // getSQLText
} // InfoOrder
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -