📄 stocktakesubmitframe.java
字号:
stockSubLedgerObjects[i][3] = new Integer(quantity);
}
//显示表格的内容
this.showTableData(stockSubLedgerObjects);
}
//转换表格数据的方法
public void transferTableData(){
stockSubLedgers = new String[stockSubLedgerObjects.length][6];
for(int i = 0; i < stockSubLedgerObjects.length; i++){
stockSubLedgers[i][0] = ((Integer)stockSubLedgerObjects[i][0]).toString();
stockSubLedgers[i][1] = (String)stockSubLedgerObjects[i][1];
stockSubLedgers[i][2] = (String)stockSubLedgerObjects[i][2];
stockSubLedgers[i][3] = "0";
stockSubLedgers[i][4] = ((Integer)stockSubLedgerObjects[i][3]).toString();
//由于盘点单只记录商品条形码和数量,有效期写入系统当前日期
stockSubLedgers[i][5] = dataMethod.getCurrentDate().toString();
}
}
//显示表格内容的方法
public void showTableData(Object[][] detail){
//设置表格的标题
sslTableModel.setColumnNames(colNames);
//设置表格的数据
sslTableModel.setData(detail);
jTable1 = new JTable(sslTableModel);
//设置表格的字体
jTable1.setFont(dialog13);
//将数据表格加入数据滚动框
jScrollPane3.getViewport().add(jTable1, null);
//设置列的宽度
jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(10);
}
//检查明细账的商品条形码方法
public int checkStockSubLedgerGoodsBarCode(){
int result = 0;
for(int i = 0; i < stockSubLedgerObjects.length; i++){
result = stockManagementData.checkGoodsBarCode((String)stockSubLedgerObjects[i][2]);
if(result == 0){
JOptionPane.showMessageDialog(null, "第" + (i + 1) + "行的商品条形码在商品数据库中"
+ "不存在,请打开商品数据管理窗口添加.");
return 0;
}
}
return 1;
}
//检查明细账数量是否为正的方法
public int checkStockSubLedgerQuantity(){
int quantity = 0;
for(int i = 0; i < stockSubLedgerObjects.length; i++){
quantity = ((Integer)stockSubLedgerObjects[i][3]).intValue();
if(quantity < 0){
JOptionPane.showMessageDialog(null, "第" + (i+1) + "行的盘点数量输入错误,盘点数量必须是正数.");
return 0;
}
}
return 1;
}
//清空单个盘点单显示的方法
public void clearStockLedger(){
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jTextField7.setText("");
jTextField8.setText("");
jTextArea1.setText("");
stockSubLedgers = new String[0][6];
stockSubLedgerObjects = new Object[0][4];
this.showTableData(stockSubLedgerObjects);
}
//检查按钮的状态
public void checkBtn(boolean isManipulated){
if(isManipulated){
jButton2.setEnabled(false);
jButton3.setEnabled(false);
jButton4.setEnabled(false);
jButton5.setEnabled(false);
jButton6.setEnabled(true);
jButton7.setEnabled(true);
}else{
jButton2.setEnabled(true);
jButton3.setEnabled(true);
jButton4.setEnabled(true);
jButton5.setEnabled(true);
jButton6.setEnabled(false);
jButton7.setEnabled(false);
}
}
//检查明细账按钮的状态
public void checkSubBtn(boolean isCreated){
if(isCreated){
jButton9.setEnabled(true);
jButton10.setEnabled(true);
}else{
jButton9.setEnabled(false);
jButton10.setEnabled(false);
}
}
//列表1的选择事件
void jList1_valueChanged(ListSelectionEvent e) {
if(listData1.size() > 0){
this.showStockLedger();
}else{
this.clearStockLedger();
}
}
//查询方法
public void search(){
//取得查询选项
int selectedIndex = jComboBox1.getSelectedIndex();
//取得编辑框的变量
String searchValue = jTextField1.getText().trim();
String startDateStr = jTextField2.getText().trim();
String endDateStr = jTextField3.getText().trim();
if (selectedIndex == 0 | selectedIndex == 1 | selectedIndex == 2 |
selectedIndex == 3) {
if (searchValue.length() == 0) {
JOptionPane.showMessageDialog(null, "请输入查询值");
return;
}
switch (selectedIndex) {
case 0:
//根据盘点单编号取得记录
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "orderId", searchValue, 13);
break;
case 1:
//根据商品盘点员取得记录
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "submitUser", searchValue, 13);
break;
case 2:
//根据盘点仓库名字取得记录
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "warehouse", searchValue, 13);
break;
case 3:
if(dataMethod.checkInt(searchValue) == 0){
JOptionPane.showMessageDialog(null, "按完成状态查询时,输入值必须是整数,"
+ "3表示撤消,4表示完成.");
return;
}
//根据完成状态取得记录
stockLedgers = stockManagementData.getStockLedgerByOnProcess(
ledgerDate, 13, Integer.parseInt(searchValue));
break;
}
}else{
java.sql.Timestamp startDate = dataMethod.transferDate(startDateStr);
java.sql.Timestamp endDate = dataMethod.transferEndDate(endDateStr);
if(startDate == null | endDate == null){
JOptionPane.showMessageDialog(null, "日期输入错误,正确的日期格式是"
+ "yyyy-mm-dd(年-月-日),如2004-1-1");
return;
}
//根据日期取得记录
stockLedgers = stockManagementData.getStockLedgerByOrderDate(ledgerDate,
startDate, endDate, 13);
}
this.showSearchStockLedger();
}
//单击事件
public void actionPerformed(ActionEvent e) {
//取得按钮的动作字符串
String actionCommand = e.getActionCommand().trim();
//检查打开的账套是否当前账套
if (actionCommand.equals("createStockLedger") |
actionCommand.equals("updateStockLedger") |
actionCommand.equals("cancelStockLedger") |
actionCommand.equals("restoreStockLedger")) {
int result = stockManagementData.isCurrentLedger(ledgerDate);
if(result == 0){
JOptionPane.showMessageDialog(null, ledgerDate + "是往期账套,不能进行添加、修改和撤消操作.");
return;
}
}
if (actionCommand.equals("search")) {
//查询
search();
}else if(actionCommand.equals("createStockLedger")){
action = "create";
this.clearStockLedger();
this.checkBtn(true);
this.checkSubBtn(true);
}else if(actionCommand.equals("updateStockLedger")){
action = "update";
this.checkBtn(true);
}else if(actionCommand.equals("cancelStockLedger")){
action = "cancel";
this.checkBtn(true);
}else if(actionCommand.equals("restoreStockLedger")){
action = "restore";
this.checkBtn(true);
}else if(actionCommand.equals("ok")){
int selectedIndex = jList1.getSelectedIndex();
//创建库存账套数据表的单个记录数组
String[] stockLedger = new String[13];
//取得盘点单的值
stockLedger[0] = ""; //单据编号
stockLedger[1] = "13"; //13表示盘点单
stockLedger[2] = ""; //关联标识
stockLedger[3] = user.getUserName(); //盘点用户
stockLedger[4] = "";
stockLedger[5] = "";
stockLedger[6] = "";
stockLedger[7] = "";
stockLedger[8] = jTextField6.getText().trim(); //盘点仓库
stockLedger[9] = jTextField7.getText().trim(); //盘点日期
stockLedger[10] = dataMethod.getCurrentDate().toString(); //系统日期
//4表示盘点单完成,3表示盘点单撤消
stockLedger[11] = "4";
stockLedger[12] = jTextArea1.getText().trim();
int result = 0;
if(action.equals("update") | action.equals("create")){
//检查盘点仓库名字
result = stockManagementData.checkWarehouse(stockLedger[8]);
if(result == 0){
JOptionPane.showMessageDialog(null, stockLedger[8] + "在仓库数据库中"
+ "不存在,请打开仓库数据管理窗口添加.");
return;
}
//检查商品盘点日期
if(dataMethod.transferDateTime(stockLedger[9]) == null){
JOptionPane.showMessageDialog(null, "盘点日期输入错误,正确的日期格式是"
+ "yyyy-mm-dd(年-月-日),如2004-1-1");
return;
}
//检查盘点单明细账的商品条形码、盘点数量
result = this.checkStockSubLedgerGoodsBarCode();
if(result == 0) return;
result = this.checkStockSubLedgerQuantity();
if(result == 0) return;
//转换表格数组
this.transferTableData();
}
if(action.equals("create")){
//检查明细账是否为空
if(stockSubLedgerObjects.length == 0){
JOptionPane.showMessageDialog(null, "明细账数据表为空,不可以创建盘点单.");
return;
}
//添加盘点单
result = stockManagementData.createStockLedgerAndSub(ledgerDate,
stockLedger, stockSubLedgers);
if(result == 1){
JOptionPane.showMessageDialog(null, "盘点单添加成功,请重新执行查询操作显示新的盘点单.");
}else{
JOptionPane.showMessageDialog(null, "盘点单添加失败,请检查输入值是否大于字段范围.");
}
}else if (action.equals("update")){
//取得原来的单据编号
stockLedger[0] = stockLedgers[selectedIndex][0].trim();
//修改盘点单
result = stockManagementData.updateStockLedgerAndSub(ledgerDate,
stockLedger, stockSubLedgers);
if(result == 1){
JOptionPane.showMessageDialog(null, "盘点单修改成功.");
//更新数组的数据
for (int i = 0; i < 13; i++) {
stockLedgers[selectedIndex][i] = stockLedger[i];
}
}else{
JOptionPane.showMessageDialog(null, "盘点单修改失败,请检查输入值是否大于字段范围.");
}
}else if (action.equals("cancel")){
//撤消盘点单, 3表示撤消盘点单
result = stockManagementData.signStockLedgerAndSubForFinish(ledgerDate,
"submitUser", user.getUserName(), stockLedgers[selectedIndex][0], 3,
stockLedger[12]);
if(result == 1){
JOptionPane.showMessageDialog(null, "盘点单撤消成功.");
//更新完成状态编辑框的值
jTextField8.setText(onProcesses[3]);
//更新数组的数据
stockLedgers[selectedIndex][11] = "3";
stockLedgers[selectedIndex][12] = stockLedger[12];
}else{
JOptionPane.showMessageDialog(null, "盘点单撤消失败.");
}
}else if (action.equals("restore")){
//恢复盘点单,4表示恢复盘点单
result = stockManagementData.signStockLedgerAndSubForFinish(ledgerDate,
"submitUser", user.getUserName(), stockLedgers[selectedIndex][0], 4,
stockLedger[12]);
if(result == 1){
JOptionPane.showMessageDialog(null, "盘点单恢复成功.");
//更新完成状态编辑框的值
jTextField8.setText(onProcesses[4]);
//更新数组的数据
stockLedgers[selectedIndex][11] = "4";
stockLedgers[selectedIndex][12] = stockLedger[12];
}else{
JOptionPane.showMessageDialog(null, "盘点单恢复失败.");
}
}
this.checkSubBtn(false);
this.checkBtn(false);
}else if(actionCommand.equals("cancel")){
this.jList1_valueChanged(null);
this.checkBtn(false);
this.checkSubBtn(false);
}else if(actionCommand.equals("createSub")){
//添加一个空行
int objectsLength = stockSubLedgerObjects.length;
Object[][] tempObjs = new Object[objectsLength + 1][4];
System.arraycopy(stockSubLedgerObjects, 0, tempObjs, 0, objectsLength);
tempObjs[objectsLength][0] = new Integer(0);
tempObjs[objectsLength][1] = new String("");
tempObjs[objectsLength][2] = new String("");
tempObjs[objectsLength][3] = new Integer(0);
stockSubLedgerObjects = tempObjs;
this.showTableData(stockSubLedgerObjects);
}else if(actionCommand.equals("deleteSub")){
if(jTable1.getSelectedRowCount() == 0){
JOptionPane.showMessageDialog(null, "请选择明细记录.");
return;
}
//删除选择的记录
int selectedIndex = jTable1.getSelectedRow();
Object[][] tempObjs = new Object[stockSubLedgerObjects.length - 1][4];
int line = 0;
for(int i = 0; i < stockSubLedgerObjects.length; i++){
if(i == selectedIndex){
continue;
}else{
for(int j = 0; j < 4; j++){
tempObjs[line][j] = stockSubLedgerObjects[i][j];
}
line++;
}
}
stockSubLedgerObjects = tempObjs;
this.showTableData(stockSubLedgerObjects);
}else if(actionCommand.equals("exit")){
exit();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -