📄 singlesaleconditionpane.java
字号:
package file2;
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.util.Date;
import java.util.StringTokenizer;
import java.text.SimpleDateFormat;
public class SingleSaleConditionPane extends JPanel {
private DBConnection con = null;
private JLabel tip = null;
private JPanel tipPane = new JPanel();
private JTable table = null;
private JScrollPane tablePane = null;
private String[][] dataForTable = null;
private String[] titleForTable = { "商品名称", "销售数量", "销售额", "赢利额" };
public SingleSaleConditionPane(int tip1, int tip2, String classToQuery) {
con = new DBConnection();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date today = new java.util.Date();
String todayStr = formatter.format(today);
// 查询本日该类商品的销售情况
if (tip1 == 1) {
tip = new JLabel("本日商品销售情况");
if (tip2 == 1) {// 说明查询的是大类的统计数据
tipPane.add(tip);
String queryStr = "SELECT To_Third_name AS third_name, SUM(quantity) AS saled,"
+ "sum(price*quantity)as moneyGet,sum((price-cost)*quantity)as profit "
+ "FROM operationRecord,Third_Catalog ,Second_Catalog,First_Catalog WHERE "
+ "To_Third_name=Third_name and To_Second_ID=Second_ID and To_First_ID=First_ID "
+ "and First_name='"
+ classToQuery
+ "' and "
+ "operationState = '1' AND operateTime='"
+ todayStr
+ "' GROUP 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);
dataForTable[count][1] = (new Integer(set.getInt(2)))
.toString();
dataForTable[count][2] = (new Integer(set.getInt(3)))
.toString();
dataForTable[count][3] = (new Integer(set.getInt(4)))
.toString();
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (tip2 == 2) {// 说明查询的是明细类的统计数据
tipPane.add(tip);
String queryStr = "SELECT To_Third_name AS third_name, SUM(quantity) AS saled,"
+ "sum(price*quantity)as moneyGet,sum((price-cost)*quantity)as profit "
+ "FROM operationRecord,Third_Catalog ,Second_Catalog WHERE "
+ "To_Third_name=Third_name and To_Second_ID=Second_ID "
+ "and Second_name='"
+ classToQuery
+ "' and "
+ "operationState = '1' AND operateTime='"
+ todayStr
+ "' GROUP 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);
dataForTable[count][1] = (new Integer(set.getInt(2)))
.toString();
dataForTable[count][2] = (new Integer(set.getInt(3)))
.toString();
dataForTable[count][3] = (new Integer(set.getInt(4)))
.toString();
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (tip2 == 3) {// 说明查询的是具体商品的统计数据
tipPane.add(tip);
String queryStr = "SELECT To_Third_name AS third_name, SUM(quantity) AS saled,"
+ "sum(price*quantity)as moneyGet,sum((price-cost)*quantity)as profit "
+ "FROM operationRecord,Third_Catalog WHERE "
+ "To_Third_name=Third_name and Third_name='"
+ classToQuery
+ "' and "
+ "operationState = '1' AND operateTime='"
+ todayStr
+ "' GROUP 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);
dataForTable[count][1] = (new Integer(set.getInt(2)))
.toString();
dataForTable[count][2] = (new Integer(set.getInt(3)))
.toString();
dataForTable[count][3] = (new Integer(set.getInt(4)))
.toString();
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 以上代码没错
// 以下查询的是本月的统计数据
if (tip1 == 2) {
tip = new JLabel("本月商品销售情况");
if (tip2 == 1) {// 说明查询的是大类的统计数据
con = new DBConnection();
tipPane.add(tip);
java.util.Date todayNew = new java.util.Date();
SimpleDateFormat formatterNew = new SimpleDateFormat(
"yyyy-MM-dd");
String todayStrNew = formatterNew.format(todayNew);
int year = 0;
int month = 0;
int countGetOfToday = 0;
StringTokenizer st = new StringTokenizer(todayStrNew, "-");
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,"
+ "Third_Catalog,Second_Catalog,First_Catalog WHERE To_Third_name=Third_name and To_Second_ID="
+ "Second_ID and To_First_ID=First_ID and First_name='"
+ classToQuery
+ "' and "
+ "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);// 取得商品名称
dataForTable[count][1] = "0";
dataForTable[count][2] = "0";
dataForTable[count][3] = "0";
count++;
}
// 取得商品本月的销售数量. 销售额.赢利额
String query = "SELECT To_Third_name AS third_name,quantity,(price*quantity) as saled,((price-cost)*quantity) as profit,"
+ "operateTime FROM operationRecord ,Third_Catalog,Second_Catalog,First_Catalog"
+ " WHERE To_Third_name=Third_name and To_Second_ID="
+ "Second_ID and To_First_ID=First_ID and First_name='"
+ classToQuery
+ "' and "
+ "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);
float saled = set.getFloat(3);
float profit = set.getFloat(4);
java.util.Date date = set.getDate(5);
String dateStr = formatter.format(date);
StringTokenizer st1 = new StringTokenizer(dateStr,
"-");
int yearGet = 0;
int monthGet = 0;
int countGet = 0;
while (st1.hasMoreTokens()) {
if (countGet == 0)
yearGet = (new Integer(st1.nextToken()))
.intValue();
if (countGet == 1) {
monthGet = (new Integer(st1.nextToken()))
.intValue();
break;
}
countGet++;
}
if (yearGet == year && monthGet == month)
for (int i = 0; i < count; i++)
if (dataForTable[i][0].equals(name)) {
int numNew1 = (new Integer(
dataForTable[i][1])).intValue();
dataForTable[i][1] = (new Integer(
numNew1 + quantity)).toString();// 把该记录的出货量加到原数量上并转化为字符串存储到原数组单元上
float numNew2 = (new Float(
dataForTable[i][2]))
.floatValue();
dataForTable[i][2] = (new Float(numNew2
+ saled)).toString();// 把该记录的销售额加到原数量上并转化为字符串存储到原数组单元上
float numNew3 = (new Float(
dataForTable[i][3]))
.floatValue();
dataForTable[i][3] = (new Float(numNew3
+ profit)).toString();// 把该记录的赢利额加到原数量上并转化为字符串存储到原数组单元上
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (tip2 == 2) {// 说明查询的是明细类的统计数据
con = new DBConnection();
tipPane.add(tip);
java.util.Date todayNew = new java.util.Date();
SimpleDateFormat formatterNew = new SimpleDateFormat(
"yyyy-MM-dd");
String todayStrNew = formatterNew.format(todayNew);
int year = 0;
int month = 0;
int countGetOfToday = 0;
StringTokenizer st = new StringTokenizer(todayStrNew, "-");
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,"
+ "Third_Catalog,Second_Catalog WHERE To_Third_name=Third_name and To_Second_ID="
+ "Second_ID and Second_name='"
+ classToQuery
+ "' and "
+ "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);// 取得商品名称
dataForTable[count][1] = "0";
dataForTable[count][2] = "0";
dataForTable[count][3] = "0";
count++;
}
// 取得该明细类商品本月的销售数量.销售额.赢利额
String query = "SELECT To_Third_name AS third_name,quantity,(price*quantity) as saled,((price-cost)*quantity) as profit,"
+ "operateTime FROM operationRecord ,Third_Catalog,Second_Catalog"
+ " WHERE To_Third_name=Third_name and To_Second_ID="
+ "Second_ID and Second_name='"
+ classToQuery
+ "' and "
+ "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);
float saled = set.getFloat(3);
float profit = set.getFloat(4);
java.util.Date date = set.getDate(5);
String dateStr = formatter.format(date);
StringTokenizer st1 = new StringTokenizer(dateStr,
"-");
int yearGet = 0;
int monthGet = 0;
int countGet = 0;
while (st1.hasMoreTokens()) {
if (countGet == 0)
yearGet = (new Integer(st1.nextToken()))
.intValue();
if (countGet == 1) {
monthGet = (new Integer(st1.nextToken()))
.intValue();
break;
}
countGet++;
}
if (yearGet == year && monthGet == month)
for (int i = 0; i < count; i++)
if (dataForTable[i][0].equals(name)) {
int numNew1 = (new Integer(
dataForTable[i][1])).intValue();
dataForTable[i][1] = (new Integer(
numNew1 + quantity)).toString();// 把该记录的出货量加到原数量上并转化为字符串存储到原数组单元上
float numNew2 = (new Float(
dataForTable[i][2]))
.floatValue();
dataForTable[i][2] = (new Float(numNew2
+ saled)).toString();// 把该记录的销售额加到原数量上并转化为字符串存储到原数组单元上
float numNew3 = (new Float(
dataForTable[i][3]))
.floatValue();
dataForTable[i][3] = (new Float(numNew3
+ profit)).toString();// 把该记录的赢利额加到原数量上并转化为字符串存储到原数组单元上
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (tip2 == 3) {// 说明查询的是具体商品本月的的统计数据
con = new DBConnection();
tipPane.add(tip);
java.util.Date todayNew = new java.util.Date();
SimpleDateFormat formatterNew = new SimpleDateFormat(
"yyyy-MM-dd");
String todayStrNew = formatterNew.format(todayNew);
int year = 0;
int month = 0;
int countGetOfToday = 0;
StringTokenizer st = new StringTokenizer(todayStrNew, "-");
while (st.hasMoreTokens()) {
if (countGetOfToday == 0)
year = (new Integer(st.nextToken())).intValue();
if (countGetOfToday == 1) {
month = (new Integer(st.nextToken())).intValue();
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -