📄 profitlossjdialog.java.svn-base
字号:
/* * ProfitLossJDialog.java * * Created on 2007年6月10日, 下午12:44 */package com.studio009.store.ui;import com.studio009.store.StoreApp;import com.studio009.store.entity.Goods;import com.studio009.store.entity.ProfitLoss;import com.studio009.store.entity.ProfitLossItem;import com.studio009.store.entity.Store;import com.studio009.store.entity.StoreGoods;import java.util.Vector;import javax.swing.DefaultComboBoxModel;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;/** * 报损报溢的对话框 * @see ProfitLoss * @author wangs */public class ProfitLossJDialog extends javax.swing.JDialog { /** Creates new form ProfitLossJDialog * @param parent 父窗口 * @param modal 模式 */ public ProfitLossJDialog(java.awt.Window parent, boolean modal) { super(parent, java.awt.Dialog.ModalityType.APPLICATION_MODAL); initComponents(); // 设置对话框居中 this.setLocationRelativeTo(parent); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { em = StoreApp.getEntityManagerFactory().createEntityManager(); storeQuery = em.createQuery("select s from Store s"); storeList = storeQuery.getResultList(); store = storeList.get(0); storeGoodsQuery = em.createQuery("select sg from StoreGoods sg"); storeGoodsList = storeGoodsQuery.getResultList(); jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); storeJComboBox = new javax.swing.JComboBox(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("\u62a5\u635f\u62a5\u6ea2"); jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jLabel1.setFont(new java.awt.Font("Dialog", 1, 18)); jLabel1.setText("\u4ed3\u5e93:"); storeJComboBox.setFont(new java.awt.Font("Dialog", 1, 18)); storeJComboBox.setModel(getStoreComboBoxModel()); storeJComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { storeJComboBoxActionPerformed(evt); } }); jButton1.setText("\u62a5\u635f"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("\u62a5\u6ea2"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(storeJComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(46, 46, 46) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(48, 48, 48) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(108, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(storeJComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jTable1.setModel(getStoreGoodsTableModel()); jScrollPane1.setViewportView(jTable1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 647, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 623, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 322, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed int row = jTable1.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(this, "请选择报溢的商品!"); return; } StoreGoods sg = storeGoodsList.get(row); String str = JOptionPane.showInputDialog(this,"请输入溢出的商品数目:", "1.00"); double quantity = -1; try { quantity = Double.parseDouble(str); } catch (Exception e) { } profitLoss(sg, quantity, 1);}//GEN-LAST:event_jButton2ActionPerformedprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed int row = jTable1.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(this, "请选择报损的商品!"); return; } StoreGoods sg = storeGoodsList.get(row); String str = JOptionPane.showInputDialog(this,"请输入损失的商品数目:", "1.00"); double quantity = -1; try { quantity = Double.parseDouble(str); } catch (Exception e) { } profitLoss(sg, quantity, -1);}//GEN-LAST:event_jButton1ActionPerformedprivate void storeJComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_storeJComboBoxActionPerformed store = storeList.get(storeJComboBox.getSelectedIndex()); storeGoodsQuery = em.createQuery("select sg from StoreGoods sg where sg.storeName = :storeName"); storeGoodsQuery.setParameter("storeName", store); storeGoodsList = storeGoodsQuery.getResultList(); updateTable();}//GEN-LAST:event_storeJComboBoxActionPerformed/** * 返回仓库combobox空间的模型 * @return 返回仓库combobox空间的模型 */public DefaultComboBoxModel getStoreComboBoxModel() { Vector<String> storeNameList = new Vector<String>(); for (Store s : storeList) storeNameList.add(s.getStoreName()); return new DefaultComboBoxModel(storeNameList);}/** * 获取用来显示仓库货物的表格模型 * @return 用来显示仓库货物的表格模型 */public DefaultTableModel getStoreGoodsTableModel() { Vector columnName=new Vector(); columnName.add("商品条形码"); columnName.add("商品名称"); columnName.add("规格"); columnName.add("单位"); columnName.add("单价"); columnName.add("数量"); columnName.add("备注"); Vector content=new Vector(); for( StoreGoods sg : storeGoodsList) { Vector row = new Vector(); row.add(sg.getGoodsID().getGoodsID()); row.add(sg.getGoodsID().getGoodsName()); row.add(sg.getGoodsID().getSpec()); row.add(sg.getGoodsID().getUnit()); row.add(String.format("%.2f",sg.getGoodsID().getPrice())); row.add(String.format("%.2f",sg.getStoreGoodsQuantity())); row.add(sg.getGoodsID().getGoodsNote()); content.add(row); } DefaultTableModel stockItemTableModel=new DefaultTableModel(content,columnName){ public boolean isCellEditable(int row, int col) { return false; } }; return stockItemTableModel;}/** * 更新表格 */private void updateTable(){ jTable1.setModel(getStoreGoodsTableModel());}/** * 报损报溢处理函数 */private void profitLoss(StoreGoods storeGoods, double quantity, int state) { try { if (storeGoods == null) return; double goodsQuantity = storeGoods.getStoreGoodsQuantity() + (quantity * state); // 检查数量 if (quantity <= 0 || goodsQuantity < 0) { JOptionPane.showMessageDialog(this, "输入的数目不正确!"); return; } storeGoods.setStoreGoodsQuantity(goodsQuantity); ProfitLoss pf = new ProfitLoss(); pf.setStoreName(store); pf.setProfitLossItemCollection(new Vector<ProfitLossItem>()); ProfitLossItem pli = new ProfitLossItem(); pli.setProfitLossID(pf); pli.setProfitOrLoss(state); pli.setProfitlossitemQuantity(quantity); pli.setStoreGoodsID(storeGoods); pf.getProfitLossItemCollection().add(pli); em.persist(pf); em.persist(pli); em.getTransaction().begin(); em.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); em.clear(); } updateTable();}/** * @param args the command line arguments */public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { ProfitLossJDialog dialog = new ProfitLossJDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } });} // Variables declaration - do not modify//GEN-BEGIN:variables private javax.persistence.EntityManager em; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private com.studio009.store.entity.Store store; private java.util.List<StoreGoods> storeGoodsList; private javax.persistence.Query storeGoodsQuery; private javax.swing.JComboBox storeJComboBox; private java.util.List<Store> storeList; private javax.persistence.Query storeQuery; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -