📄 salemanger.java
字号:
* @return double 转换后的双精度数字 * */ public double StrtoDouble(String str){ double number=0; boolean DemiFlag=false; double Demi=0.1; int len=str.length(); for(int i=0;i<len;i++){ if(str.charAt(i)>='0'&&str.charAt(i)<='9'){ if(DemiFlag){ if(Demi>0.001){ number=number+(str.charAt(i)-'0')*Demi; Demi=Demi/10; } else{ if(str.charAt(i)>='5') { number=number+10*Demi; } return number; } } else{ number=number*10+str.charAt(i)-'0'; } } else if(str.charAt(i)=='.'){ if(!DemiFlag) DemiFlag=true; else return number; }else return number; } return number; } /** * 删除购物栏物品 */ public void DelProduct(){ int ViewRow=table.getSelectedRow(); if(ViewRow<0)/*[当前没有选中商品列表]*/ return; else{/*[当前有选中商品列表]*/ double money=0; model.removeRow(ViewRow); table.revalidate(); for(int i=0;i<table.getRowCount();i++)/*[重新计算商品总价]*/ money=money+StrtoDouble(table.getValueAt(i, 4).toString()); DecimalFormat df1=new DecimalFormat("0.00"); String str=df1.format(money); TTotalCostField.setText(str); df1=new DecimalFormat("0.0"); TCostField.setText(df1.format(money)); GetChangeResult(); } } /** * 新增购物栏物品 */ public void InsertProduct(){ String str=""; str=TIdField.getText(); for(int i=0;i<table.getRowCount();i++){ if(table.getValueAt(i, 0).equals(str)){/*[商品列表中存在该商品,则更新商品列表中的数量]*/ String str1=table.getValueAt(i, 3).toString(); str=TQualityField.getText(); double money=StrtoDouble(str)+ StrtoDouble(str1); String money1=""; DecimalFormat df1=new DecimalFormat("0.00"); money1=df1.format(money); table.setValueAt(money1, i, 3); ClearAll(); return; } } /*[商品列表中找不到该商品,则在商品列表中新增该类商品]*/ Vector v = new Vector(); v.addElement(TIdField.getText()); v.addElement(TNameField.getText()); v.addElement(TPriceField.getText()); v.addElement(TQualityField.getText()); double pay=0; DecimalFormat df1=new DecimalFormat("0.00"); pay=StrtoDouble(TPriceField.getText())*StrtoDouble(TQualityField.getText()); str=df1.format(pay); v.addElement(str); ClearAll(); model.addRow(v);//添加一行 JMoneyField money=new JMoneyField("",15,2); TableColumn colorColumn = table.getColumn("数量"); // Use the combo box as the editor in the "Favorite Color" column. colorColumn.setCellEditor(new DefaultCellEditor(money)); table.revalidate(); pay=0; for(int i=0;i<table.getRowCount();i++) pay=pay+StrtoDouble(table.getValueAt(i, 4).toString()); str=df1.format(pay); TTotalCostField.setText(str); df1=new DecimalFormat("0.0"); TCostField.setText(df1.format(pay)); GetChangeResult(); } /** * 支付结算 * */ public void PayFunction(){ try{ FileWriter myFileStream=new FileWriter("SaleHistory.txt",true); // RandomAccessFile myFileStream=new RandomAccessFile("SaleResult.txt", "rw"); // myFileStream . seek(myFileStream.length()) ; String Str=""; Str=FormatString(Str,140,"#"); Str=Str+"\r\n"; myFileStream.write(Str); java.text.SimpleDateFormat date = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss "); String receivedTime = date.format(new Date(System.currentTimeMillis())); Str=""; Str=FormatString(Str,30,"#"); Str=Str+"[销售记录单]"+receivedTime; Str=FormatString(Str,140,"#"); Str=Str+"\r\n"; myFileStream.write(Str); Str=""; Str=FormatString(Str,140,"#"); Str=Str+"\r\n"; myFileStream.write(Str); Str="商品编码"; Str=FormatString(Str,20," "); Str=Str+"商品名称"; Str=FormatString(Str,60," "); Str=Str+"商品单价"; Str=FormatString(Str,20," "); Str=Str+"销售数量"; Str=FormatString(Str,20," "); Str=Str+"商品总价"; Str=FormatString(Str,20," "); System.out.println(Str); Str=Str+"\r\n"; myFileStream.write(Str); Str=""; Str=FormatString(Str,140,"="); Str=Str+"\r\n"; myFileStream.write(Str); while(true){ try{ Str=""; Str=table.getValueAt(0, 0).toString(); Str=FormatString(Str,20," "); Str=Str+table.getValueAt(0, 1).toString(); Str=FormatString(Str,60," "); Str=Str+table.getValueAt(0, 2).toString(); Str=FormatString(Str,20," "); Str=Str+table.getValueAt(0, 3).toString(); Str=FormatString(Str,20," "); Str=Str+table.getValueAt(0, 4).toString(); Str=FormatString(Str,20," "); System.out.println(Str); Str=Str+"\r\n"; //myFileStream.writeUTF(Str.toString()); //myFileStream.writeBytes(Str); myFileStream.write(Str); Str=""; Str=FormatString(Str,140,"-"); Str=Str+"\r\n"; myFileStream.write(Str); model.removeRow(0); } catch(Exception e){ // myFileStream.close(); // myFileStream. break; } } Str="总价:"+TTotalCostField.getText(); Str=FormatString(Str,20," "); Str=Str+"支付:"+TPayField.getText(); Str=FormatString(Str,20," "); Str=Str+"找零:"+TChangeField.getText(); Str=FormatString(Str,20," "); Str=Str+"操作员:"+SystemUser.getUserId(); Str=FormatString(Str,20," "); Str=Str+"\r\n"; myFileStream.write(Str); Str=""; Str=FormatString(Str,140,"#"); Str=Str+"\r\n"+"\r\n"+"\r\n"; myFileStream.write(Str); myFileStream.close(); Str="总价:"+TTotalCostField.getText(); Str=FormatString(Str,20," "); Str=Str+"支付:"+TPayField.getText(); Str=FormatString(Str,20," "); Str=Str+"找零:"+TChangeField.getText(); Str=FormatString(Str,20," "); JOptionPane.showMessageDialog(tableAggregate,Str,"信息",JOptionPane.ERROR_MESSAGE, new ImageIcon("image/caidanx.gif")); TCostField.setText(""); TTotalCostField.setText(""); TPayField.setText(""); table.revalidate(); } catch(IOException e) { while(true){ try{ model.removeRow(0); } catch(Exception ex){ break; } table.revalidate(); } JOptionPane.showMessageDialog(tableAggregate,"文件操作失败,不能保存结算结果!","提示",JOptionPane.ERROR_MESSAGE, new ImageIcon("image/caidanx.gif")); TCostField.setText(""); TTotalCostField.setText(""); TPayField.setText(""); return; } } /** * 获取找零组合 * @param Money 要获取找零组合的数字 * @return 返回找零组合字符串 * */ public String getChangeMethod(double Money){ int hundredY=0; int fiftyY=0; int twentyY=0; int tenY=0; int fiveY=0; int oneY=0; int fiveJ=0; int oneJ=0; int tempMoney=(int)(Money*10); hundredY=(int)tempMoney/1000; tempMoney=tempMoney%1000; fiftyY=(int)tempMoney/500; tempMoney=tempMoney%500; twentyY=(int)tempMoney/200; tempMoney=tempMoney%200; tenY=(int)tempMoney/100; tempMoney=tempMoney%100; fiveY=(int)tempMoney/50; tempMoney=tempMoney%50; oneY=(int)tempMoney/10; tempMoney=tempMoney%10; fiveJ=(int)tempMoney/5; tempMoney=tempMoney%5; oneJ=(int)tempMoney; String Str="找零组合:"; if(hundredY>0) Str=Str+hundredY+"张一百元* "; if(fiftyY>0) Str=Str+fiftyY+"张五十元* "; if(twentyY>0) Str=Str+twentyY+"张二十元* "; if(tenY>0) Str=Str+tenY+"张十元* "; if(fiveY>0) Str=Str+fiveY+"张五元* "; if(oneY>0) Str=Str+oneY+"张一元* "; if(fiveJ>0) Str=Str+fiveJ+"张五角* "; if(oneJ>0) Str=Str+oneJ+"张一角* "; return Str; } /** * 格式化字符串 * @param Str 要格式化的字符串 * @param Len 字符串格式基本长度量 * @param Sub 填充字符 * @return String 格式化后的字符串 * */ public String FormatString(String str,int Len,String Sub){ int ModLen=0; int size=0; for(int i=0;i<str.length();i++){ size++; int ii=(int)str.charAt(i); if(ii<=0||ii>=126) size++;//双字节字符 } ModLen=size%Len; ModLen=Len-ModLen; for(int i=0;i<ModLen;i++) str=str+Sub; return str; } /** * 连接数据库 * */ public void connect() { dataBase = new JDBCAdapter( "jdbc:odbc:data", "sun.jdbc.odbc.JdbcOdbcDriver", "", ""); } /** * 简易销售系统初始化 * */ public SaleManger() { mainPanel = new JPanel(); /*[创建登陆框]*/ createConnectionDialog(); // Create the buttons. ManagerButton = new JButton("管理"); ManagerButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } } ); BuyButton = new JButton("购买"); BuyButton.setDefaultCapable(true); BuyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //fetch(); if(TIdField.getText().length()<13){ JOptionPane.showMessageDialog(tableAggregate,"必须输入13位商品编码","提示",JOptionPane.ERROR_MESSAGE, new ImageIcon("image/caidanx.gif")); return; } if(TNameField.isEditable()){ TNameField.setEditable(false); TPriceField.setEditable(false); String query="Insert into Product(ID,Name,Price)values('"+ TIdField.getText()+"','"+ TNameField.getText()+"',"+ TPriceField.getText()+")"; dataBase.updateQuery(query); } InsertProduct(); } }); BuyButton.setIcon(BuyIcon); // Create the table. tableAggregate = createTable(); tableAggregate.setBorder(new BevelBorder(BevelBorder.LOWERED)); /*[菜单栏初始化]*/ bar.setOpaque(true); About.setIcon(icon);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -