📄 totalsaleconditionofthisyear.java
字号:
package file2;
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.util.StringTokenizer;
import java.text.SimpleDateFormat;
public class TotalSaleConditionOfThisYear extends JPanel{
private DBConnection con=null;
private JLabel tip=new JLabel("本年销售情况统计");
private JPanel tipPane=new JPanel();
private JTable table=null;
private JScrollPane tablePane=null;
private String[][] dataForTable=null;
private String[] titleForTable={"商品名称","销售数量","销售额","赢利额"};
public TotalSaleConditionOfThisYear(){
con=new DBConnection();
//tipPane.setLayout(new FlowLayout(FlowLayout.CENTER));
tipPane.add(tip);
java.util.Date today=new java.util.Date();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd");
String todayStr=formatter.format(today);
int year=0;
int month=0;
int countGetOfToday=0;
StringTokenizer st=new StringTokenizer(todayStr,"-");
while(st.hasMoreTokens()){
if(countGetOfToday==0)
year=(new Integer(st.nextToken())).intValue();
if(countGetOfToday==1){
month=(new Integer(st.nextToken())).intValue();
break;
}
countGetOfToday++;
}
String queryStr="SELECT distinct To_Third_name AS third_name FROM operationRecord WHERE "+
"operationState = '1' order by To_Third_name";
ResultSet set=con.executeSelect1(queryStr);
int count=0;
try{
while(set.next()){
count++;
}
if(count==0){
dataForTable=new String[1][4];
dataForTable[count][0]="无";
dataForTable[count][1]="0";
dataForTable[count][2]="0";
dataForTable[count][3]="0";
}else{
set.beforeFirst();
dataForTable=new String[count][4];
count=0;
while(set.next()){
dataForTable[count][0]=set.getString(1);//取得所有出货商品名称
count++;
}
//初始化每种商品销售额等
for(int i=0;i<count;i++){
dataForTable[i][1]="0";
dataForTable[i][2]="0";
dataForTable[i][3]="0";
}
//取得所有商品本年的销售数量
String query="SELECT To_Third_name AS third_name,quantity,"+
"operateTime FROM operationRecord WHERE "+
"operationState = '1' order by To_Third_name";
set=null;
set=con.executeSelect1(query);
while(set.next()){
String name=set.getString(1);
int quantity=set.getInt(2);
java.util.Date date=set.getDate(3);
String dateStr=formatter.format(date);
StringTokenizer st1=new StringTokenizer(dateStr,"-");
int yearGet=0;
int countGet=0;
while(st1.hasMoreTokens()){
if(countGet==0){
yearGet=(new Integer(st1.nextToken())).intValue();
break;
}
}
if(yearGet==year){
for(int i=0;i<count;i++){
if(dataForTable[i][0].equals(name)){
int numNew=(new Integer(dataForTable[i][1])).intValue();
dataForTable[i][1]=""+(numNew+quantity);//把该记录的出货量加到原数量上并转化为字符串存储到原数组单元上
break;
}
}
}
}
//取得所有商品本年的销售额
String querySaled="SELECT To_Third_name AS third_name,(price*quantity) as saled,"+
"operateTime FROM operationRecord,Third_Catalog WHERE To_Third_name=Third_name and "+
"operationState = '1' order by To_Third_name";
set=null;
set=con.executeSelect1(querySaled);
while(set.next()){
String name=set.getString(1);
int saled=set.getInt(2);
java.util.Date date=set.getDate(3);
String dateStr=formatter.format(date);
StringTokenizer st1=new StringTokenizer(dateStr,"-");
int yearGet=0;
int countGet=0;
while(st1.hasMoreTokens()){
if(countGet==0){
yearGet=(new Integer(st1.nextToken())).intValue();
break;
}
}
if(yearGet==year){
for(int i=0;i<count;i++){
if(dataForTable[i][0].equals(name)){
int numNew=(new Integer(dataForTable[i][2])).intValue();
dataForTable[i][2]=""+(numNew+saled);//把该记录的销售额加到原数量上并转化为字符串存储到原数组单元上
break;
}
}
}
}
//取得所有商品本年的赢利额
String queryProfit="SELECT To_Third_name AS third_name,((price-cost)*quantity) as profit,"+
"operateTime FROM operationRecord,Third_Catalog WHERE To_Third_name=Third_name and "+
"operationState = '1' order by To_Third_name";
set=null;
set=con.executeSelect1(queryProfit);
while(set.next()){
String name=set.getString(1);
int profit=set.getInt(2);
java.util.Date date=set.getDate(3);
String dateStr=formatter.format(date);
StringTokenizer st1=new StringTokenizer(dateStr,"-");
int yearGet=0;
int countGet=0;
while(st1.hasMoreTokens()){
if(countGet==0){
yearGet=(new Integer(st1.nextToken())).intValue();
break;
}
}
if(yearGet==year){
for(int i=0;i<count;i++){
if(dataForTable[i][0].equals(name)){
int numNew=(new Integer(dataForTable[i][3])).intValue();
dataForTable[i][3]=""+(numNew+profit);//把该记录的赢利额加到原数量上并转化为字符串存储到原数组单元上
break;
}
}
}
}
}
table=new JTable(dataForTable,titleForTable);
tablePane=new JScrollPane(table);
this.setLayout(new GridLayout(2,1));
this.add(tipPane);
this.add(tablePane);
}catch(Exception e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -