📄 vinvoicegen.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.form;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.beans.*;
import java.util.*;
import java.util.*;
import java.math.*;
import java.sql.*;
import org.compiere.util.*;
import org.compiere.apps.*;
import org.compiere.minigrid.*;
import org.compiere.grid.ed.*;
import org.compiere.model.*;
import org.compiere.print.*;
import org.compiere.plaf.*;
import org.compiere.swing.*;
import org.compiere.process.*;
/**
* Manual Invoice Selection
*
* @author Jorg Janke
* @version $Id: VInvoiceGen.java,v 1.22 2003/02/15 06:31:42 jjanke Exp $
*/
public class VInvoiceGen extends CPanel
implements FormPanel, ActionListener, VetoableChangeListener, ChangeListener, TableModelListener, ASyncProcess
{
/**
* Standard Constructor
*/
public VInvoiceGen()
{
} // VInvoiceGen
/**
* Initialize Panel
* @param WindowNo window
* @param frame frame
*/
public void init (int WindowNo, FormFrame frame)
{
Log.trace(Log.l1_User, "VInvoiceGen.init");
m_WindowNo = WindowNo;
m_frame = frame;
Env.setContext(Env.getCtx(), m_WindowNo, "IsSOTrx", "Y");
try
{
fillPicks();
jbInit();
dynInit();
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
frame.getContentPane().add(statusBar, BorderLayout.SOUTH);
}
catch(Exception ex)
{
Log.error("VInvoiceGen,init", ex);
}
} // init
/** Window No */
private int m_WindowNo = 0;
/** FormFrame */
private FormFrame m_frame;
private boolean m_selectionActive = true;
private String m_whereClause;
private Object m_AD_Org_ID = null;
private Object m_C_BPartner_ID = null;
//
private CTabbedPane tabbedPane = new CTabbedPane();
private CPanel selPanel = new CPanel();
private CPanel selNorthPanel = new CPanel();
private BorderLayout selPanelLayout = new BorderLayout();
private CLabel lOrg = new CLabel();
private VLookup fOrg;
private CLabel lBPartner = new CLabel();
private VLookup fBPartner;
private FlowLayout northPanelLayout = new FlowLayout();
private ConfirmPanel confirmPanelSel = new ConfirmPanel(true);
private ConfirmPanel confirmPanelGen = new ConfirmPanel(false, true, false, false, false, true);
private StatusBar statusBar = new StatusBar();
private CPanel genPanel = new CPanel();
private BorderLayout genLayout = new BorderLayout();
private CText info = new CText();
private JScrollPane scrollPane = new JScrollPane();
private MiniTable miniTable = new MiniTable();
/**
* Static Init.
* <pre>
* selPanel (tabbed)
* fOrg, fBPartner
* scrollPane & miniTable
* genPanel
* info
* </pre>
* @throws Exception
*/
void jbInit() throws Exception
{
CompiereColor.setBackground(this);
//
selPanel.setLayout(selPanelLayout);
lOrg.setLabelFor(fOrg);
lOrg.setText("Org");
lBPartner.setLabelFor(fBPartner);
lBPartner.setText("BPartner");
selNorthPanel.setLayout(northPanelLayout);
northPanelLayout.setAlignment(FlowLayout.LEFT);
tabbedPane.add(selPanel, Msg.getMsg(Env.getCtx(), "Select"));
selPanel.add(selNorthPanel, BorderLayout.NORTH);
selNorthPanel.add(lOrg, null);
selNorthPanel.add(fOrg, null);
selNorthPanel.add(lBPartner, null);
selNorthPanel.add(fBPartner, null);
selPanel.setName("selPanel");
selPanel.add(confirmPanelSel, BorderLayout.SOUTH);
selPanel.add(scrollPane, BorderLayout.CENTER);
scrollPane.getViewport().add(miniTable, null);
confirmPanelSel.addActionListener(this);
//
tabbedPane.add(genPanel, Msg.getMsg(Env.getCtx(), "Generate"));
genPanel.setLayout(genLayout);
genPanel.add(info, BorderLayout.CENTER);
genPanel.setEnabled(false);
info.setWrapStyleWord(true);
info.setLineWrap(true);
info.setBackground(CompierePLAF.getFieldBackground_Inactive());
info.setEditable(false);
genPanel.add(confirmPanelGen, BorderLayout.SOUTH);
confirmPanelGen.addActionListener(this);
} // jbInit
/**
* Fill Picks
* Column_ID from C_Order
* @throws Exception if Lookups cannot be initialized
*/
private void fillPicks() throws Exception
{
MLookup orgL = MLookupFactory.create (Env.getCtx(), 2163, m_WindowNo, DisplayType.TableDir, false);
fOrg = new VLookup ("AD_Org_ID", false, false, true, orgL, DisplayType.TableDir, m_WindowNo);
lOrg.setText(Msg.translate(Env.getCtx(), "AD_Org_ID"));
fOrg.addVetoableChangeListener(this);
//
MLookup bpL = MLookupFactory.create (Env.getCtx(), 2762, m_WindowNo, DisplayType.Search, false);
fBPartner = new VLookup ("C_BPartner_ID", false, false, true, bpL, DisplayType.Search, m_WindowNo);
lBPartner.setText(Msg.translate(Env.getCtx(), "C_BPartner_ID"));
fBPartner.addVetoableChangeListener(this);
} // fillPicks
/**
* Dynamic Init.
* - Create GridController & Panel
* - AD_Column_ID from C_Order
*/
private void dynInit()
{
// create Columns
miniTable.addColumn("C_Order_ID");
miniTable.addColumn("AD_Org_ID");
miniTable.addColumn("C_DocType_ID");
miniTable.addColumn("DocumentNo");
miniTable.addColumn("C_BPartner_ID");
miniTable.addColumn("DateOrdered");
miniTable.addColumn("TotalLines");
//
miniTable.setMultiSelection(true);
miniTable.setRowSelectionAllowed(true);
// set details
miniTable.setColumnClass(0, IDColumn.class, false, " ");
miniTable.setColumnClass(1, String.class, true, Msg.translate(Env.getCtx(), "AD_Org_ID"));
miniTable.setColumnClass(2, String.class, true, Msg.translate(Env.getCtx(), "C_DocType_ID"));
miniTable.setColumnClass(3, String.class, true, Msg.translate(Env.getCtx(), "DocumentNo"));
miniTable.setColumnClass(4, String.class, true, Msg.translate(Env.getCtx(), "C_BPartner_ID"));
miniTable.setColumnClass(5, Timestamp.class, true, Msg.translate(Env.getCtx(), "DateOrdered"));
miniTable.setColumnClass(6, BigDecimal.class, true, Msg.translate(Env.getCtx(), "TotalLines"));
//
miniTable.autoSize();
miniTable.getModel().addTableModelListener(this);
// Info
statusBar.setStatusLine(Msg.getMsg(Env.getCtx(), "InvGenerateSel"));
statusBar.setStatusDB(" ");
// Tabbed Pane Listener
tabbedPane.addChangeListener(this);
} // dynInit
/**
* Query Info
*/
private void executeQuery()
{
Log.trace(Log.l1_User, "VInvoiceGen.executeQuery");
int AD_Client_ID = Integer.parseInt(Env.getContext(Env.getCtx(), "#AD_Client_ID"));
// Create SQL
StringBuffer sql = new StringBuffer(
"SELECT C_Order_ID, o.Name, dt.Name, DocumentNo, bp.Name, DateOrdered, TotalLines "
+ "FROM C_Invoice_Candidate_v ic, AD_Org o, C_BPartner bp, C_DocType dt "
+ "WHERE ic.AD_Org_ID=o.AD_Org_ID"
+ " AND ic.C_BPartner_ID=bp.C_BPartner_ID"
+ " AND ic.C_DocType_ID=dt.C_DocType_ID"
+ " AND ic.AD_Client_ID=?");
if (m_AD_Org_ID != null)
sql.append(" AND ic.AD_Org_ID=").append(m_AD_Org_ID);
if (m_C_BPartner_ID != null)
sql.append(" AND ic.C_BPartner_ID=").append(m_C_BPartner_ID);
//
sql.append(" ORDER BY o.Name,bp.Name,DateOrdered");
// Log.trace(Log.l5_DData, "VInvoiceGen.executeQuery - AD_Client_ID=" + AD_Client_ID, sql.toString());
// reset table
int row = 0;
miniTable.setRowCount(row);
// Execute
try
{
PreparedStatement pstmt = DB.prepareStatement(sql.toString());
pstmt.setInt(1, AD_Client_ID);
ResultSet rs = pstmt.executeQuery();
//
while (rs.next())
{
// extend table
miniTable.setRowCount(row+1);
// set values
miniTable.setValueAt(new IDColumn(rs.getInt(1)), row, 0); // C_Order_ID
miniTable.setValueAt(rs.getString(2), row, 1); // Org
miniTable.setValueAt(rs.getString(3), row, 2); // DocType
miniTable.setValueAt(rs.getString(4), row, 3); // Doc No
miniTable.setValueAt(rs.getString(5), row, 4); // BPartner
miniTable.setValueAt(rs.getTimestamp(6), row, 5); // DateOrdered
miniTable.setValueAt(rs.getBigDecimal(7), row, 6); // TotalLines
// prepare next
row++;
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error("VInvoiceGen.executeQuery", e);
}
//
miniTable.autoSize();
// statusBar.setStatusDB(String.valueOf(miniTable.getRowCount()));
} // executeQuery
/**
* Dispose
*/
public void dispose()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -