|
|
@ -25,6 +25,8 @@ import javax.swing.JPanel;
|
|
|
|
import javax.swing.JScrollPane;
|
|
|
|
import javax.swing.JScrollPane;
|
|
|
|
import javax.swing.JTable;
|
|
|
|
import javax.swing.JTable;
|
|
|
|
import javax.swing.JTextField;
|
|
|
|
import javax.swing.JTextField;
|
|
|
|
|
|
|
|
import javax.swing.event.CellEditorListener;
|
|
|
|
|
|
|
|
import javax.swing.event.ChangeEvent;
|
|
|
|
import javax.swing.event.ListSelectionEvent;
|
|
|
|
import javax.swing.event.ListSelectionEvent;
|
|
|
|
import javax.swing.event.ListSelectionListener;
|
|
|
|
import javax.swing.event.ListSelectionListener;
|
|
|
|
import javax.swing.event.TableModelEvent;
|
|
|
|
import javax.swing.event.TableModelEvent;
|
|
|
@ -38,6 +40,7 @@ import com.connor.chint.sap2.util.KUtil;
|
|
|
|
import com.connor.chint.sap2.util.ProgressBar;
|
|
|
|
import com.connor.chint.sap2.util.ProgressBar;
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFApplication;
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFApplication;
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFDialog;
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFDialog;
|
|
|
|
|
|
|
|
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
|
|
|
|
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
|
|
|
|
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
|
|
|
|
import com.teamcenter.rac.kernel.ListOfValuesInfo;
|
|
|
|
import com.teamcenter.rac.kernel.ListOfValuesInfo;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponent;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponent;
|
|
|
@ -57,11 +60,13 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
|
|
|
|
|
|
|
|
private static final long serialVersionUID = 1190944518442503011L;
|
|
|
|
private static final long serialVersionUID = 1190944518442503011L;
|
|
|
|
public static final String[] HEADER = { "序号", "更改类别", "父件物料编码", "父件物料描述", "旧物料编码", "旧物料描述", "旧物料数量", "新物料编码",
|
|
|
|
public static final String[] HEADER = { "序号", "更改类别", "父件物料编码", "父件物料描述", "旧物料编码", "旧物料描述", "旧物料数量", "新物料编码",
|
|
|
|
"新物料描述", "新物料数量", "原因大类", "原因小类", "处理类型" };
|
|
|
|
"新物料描述", "新物料数量", "原因大类", "原因小类", "处理类型", "差异来源" };
|
|
|
|
public static final int[] HEADERWIDTH = new int[] { 50, 80, 120, 220, 120, 180, 80, 120, 180, 80, 100, 100, 100 };
|
|
|
|
public static final int[] HEADERWIDTH = new int[] { 50, 80, 120, 220, 120, 180, 80, 120, 180, 80, 100, 100, 100, 80 };
|
|
|
|
private AbstractAIFApplication app;
|
|
|
|
private AbstractAIFApplication app;
|
|
|
|
private TCSession session;
|
|
|
|
private TCSession session;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private JButton btn_add = new JButton("增加行");
|
|
|
|
|
|
|
|
private JButton btn_del = new JButton("删除行");
|
|
|
|
private final JButton btn_ok = new JButton("确定");
|
|
|
|
private final JButton btn_ok = new JButton("确定");
|
|
|
|
private final JButton btn_cel = new JButton("取消");
|
|
|
|
private final JButton btn_cel = new JButton("取消");
|
|
|
|
|
|
|
|
|
|
|
@ -81,8 +86,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
private Map<String, String> map_class = new HashMap<>(8); // 大类
|
|
|
|
private Map<String, String> map_class = new HashMap<>(8); // 大类
|
|
|
|
private Map<String, String> map_subclass = new HashMap<>(64); // 小类
|
|
|
|
private Map<String, String> map_subclass = new HashMap<>(64); // 小类
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private BOMDifCellEditor cellEditor;
|
|
|
|
// 多选编辑
|
|
|
|
// 多选编辑
|
|
|
|
JPanel selectPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
|
|
private JPanel selectPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
|
|
private JComboBox<String> box_class = new JComboBox<String>();
|
|
|
|
private JComboBox<String> box_class = new JComboBox<String>();
|
|
|
|
private JComboBox<String> box_subClass = new JComboBox<String>();
|
|
|
|
private JComboBox<String> box_subClass = new JComboBox<String>();
|
|
|
|
private JComboBox<String> box_processType = new JComboBox<String>();
|
|
|
|
private JComboBox<String> box_processType = new JComboBox<String>();
|
|
|
@ -100,8 +106,8 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
private void initUI() {
|
|
|
|
private void initUI() {
|
|
|
|
this.setTitle("BOM差异表");
|
|
|
|
this.setTitle("BOM差异表");
|
|
|
|
this.setLayout(new BorderLayout());
|
|
|
|
this.setLayout(new BorderLayout());
|
|
|
|
this.setPreferredSize(new Dimension(1400, 400));
|
|
|
|
this.setPreferredSize(new Dimension(1400, 600));
|
|
|
|
this.setMinimumSize(new Dimension(1300, 300));
|
|
|
|
this.setMinimumSize(new Dimension(1300, 500));
|
|
|
|
this.add(BorderLayout.NORTH, getSelectPanel());
|
|
|
|
this.add(BorderLayout.NORTH, getSelectPanel());
|
|
|
|
this.add(BorderLayout.CENTER, getTablePanel());
|
|
|
|
this.add(BorderLayout.CENTER, getTablePanel());
|
|
|
|
this.add(BorderLayout.SOUTH, getButtonPanel());
|
|
|
|
this.add(BorderLayout.SOUTH, getButtonPanel());
|
|
|
@ -363,7 +369,11 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean isCellEditable(int row, int column) {
|
|
|
|
public boolean isCellEditable(int row, int column) {
|
|
|
|
// Auto-generated method stub
|
|
|
|
// Auto-generated method stub
|
|
|
|
if (column > 9) {
|
|
|
|
if (column == 13) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
} else if (column > 9) {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} else if(column != 0 && getValueAt(row, 13).equals("手工增加")) {
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
@ -396,10 +406,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
jcm_reason.addItem(list.get(i).getKey());
|
|
|
|
jcm_reason.addItem(list.get(i).getKey());
|
|
|
|
box_class.addItem(list.get(i).getKey());
|
|
|
|
box_class.addItem(list.get(i).getKey());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
t_part.getColumnModel().getColumn(10).setCellEditor(new DefaultCellEditor(jcm_reason));
|
|
|
|
colModel.getColumn(10).setCellEditor(new DefaultCellEditor(jcm_reason));
|
|
|
|
|
|
|
|
|
|
|
|
t_part.getModel().addTableModelListener(new TableModelListener() {
|
|
|
|
t_part.getModel().addTableModelListener(new TableModelListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void tableChanged(TableModelEvent e) {
|
|
|
|
public void tableChanged(TableModelEvent e) {
|
|
|
|
int col = e.getColumn();
|
|
|
|
int col = e.getColumn();
|
|
|
@ -413,6 +422,13 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
//TODO 更改类别列为下拉框
|
|
|
|
|
|
|
|
Object[] values = map_indexs.keySet().toArray();
|
|
|
|
|
|
|
|
JComboBox<String> changeType = new JComboBox<String>();
|
|
|
|
|
|
|
|
changeType.addItem("");
|
|
|
|
|
|
|
|
for(Object s : values)
|
|
|
|
|
|
|
|
changeType.addItem(s.toString());
|
|
|
|
|
|
|
|
colModel.getColumn(1).setCellEditor(new DefaultCellEditor(changeType));
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("processType:" + processType);
|
|
|
|
System.out.println("processType:" + processType);
|
|
|
|
if (processType.size() > 0) {
|
|
|
|
if (processType.size() > 0) {
|
|
|
@ -426,12 +442,71 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Collections.sort(list2);
|
|
|
|
Collections.sort(list2);
|
|
|
|
JComboBox<String> jcom_Type = new JComboBox<String>(list2.toArray(new String[size]));
|
|
|
|
JComboBox<String> jcom_Type = new JComboBox<String>(list2.toArray(new String[size]));
|
|
|
|
t_part.getColumnModel().getColumn(12).setCellEditor(new DefaultCellEditor(jcom_Type));
|
|
|
|
colModel.getColumn(12).setCellEditor(new DefaultCellEditor(jcom_Type));
|
|
|
|
|
|
|
|
|
|
|
|
for (String processType : list2) {
|
|
|
|
for (String processType : list2) {
|
|
|
|
box_processType.addItem(processType);
|
|
|
|
box_processType.addItem(processType);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for(int i = 0; i < t_part.getColumnCount(); i++) {
|
|
|
|
|
|
|
|
if(i == 2 || i == 4 || i == 7) {
|
|
|
|
|
|
|
|
//输入父件物料编码、旧物料编码、新物料编码后,物料描述通过查询自动填写
|
|
|
|
|
|
|
|
TableCellEditor descEditor = new DefaultCellEditor(new JTextField());
|
|
|
|
|
|
|
|
descEditor.addCellEditorListener(new CellEditorListener() {
|
|
|
|
|
|
|
|
public void editingStopped(ChangeEvent e) {
|
|
|
|
|
|
|
|
// 编辑完成后的操作
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
int row = t_part.getSelectedRow(), col = t_part.getSelectedColumn();
|
|
|
|
|
|
|
|
String val = "" + ((TableCellEditor)e.getSource()).getCellEditorValue();
|
|
|
|
|
|
|
|
System.out.println("编辑完成: " + row + "," + col + "==" + val);
|
|
|
|
|
|
|
|
HashMap<String, String> fields = new HashMap<>();
|
|
|
|
|
|
|
|
fields.put("materialno", val);
|
|
|
|
|
|
|
|
AIFComponentContext[] parts = KUtil.query(session, "chint_query_material", fields).toArray();
|
|
|
|
|
|
|
|
if(parts.length == 0)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
TCComponentItemRevision part = (TCComponentItemRevision) parts[0].getComponent();
|
|
|
|
|
|
|
|
t_part.setValueAt(part.getProperty("object_desc"), row, col + 1);
|
|
|
|
|
|
|
|
}catch(Exception e1) {
|
|
|
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
|
|
|
MessageBox.post(CreateBOMDifferenceDialogWh.this, "错误:" + e1, "警告", MessageBox.ERROR);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void editingCanceled(ChangeEvent e) {
|
|
|
|
|
|
|
|
// 编辑取消后的操作
|
|
|
|
|
|
|
|
System.out.println("编辑取消: " + t_part.getSelectedRow() + "," + t_part.getSelectedColumn() + "==" + ((TableCellEditor)e.getSource()).getCellEditorValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
colModel.getColumn(i).setCellEditor(descEditor);
|
|
|
|
|
|
|
|
}else if(i == 6 || i == 9) {
|
|
|
|
|
|
|
|
TableCellEditor descEditor = new DefaultCellEditor(new JTextField());
|
|
|
|
|
|
|
|
descEditor.addCellEditorListener(new CellEditorListener() {
|
|
|
|
|
|
|
|
public void editingStopped(ChangeEvent e) {
|
|
|
|
|
|
|
|
// 编辑完成后的操作
|
|
|
|
|
|
|
|
int row = t_part.getSelectedRow(), col = t_part.getSelectedColumn();
|
|
|
|
|
|
|
|
TableCellEditor editor = ((TableCellEditor)e.getSource());
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
String val = "" + editor.getCellEditorValue();
|
|
|
|
|
|
|
|
System.out.println("编辑完成: " + row + "," + col + "==" + val);
|
|
|
|
|
|
|
|
Double.parseDouble("" + val);
|
|
|
|
|
|
|
|
if(val.contains("d") || val.contains("D")) {
|
|
|
|
|
|
|
|
MessageBox.post(CreateBOMDifferenceDialogWh.this, "物料数量填写不符合要求", "错误", MessageBox.ERROR);
|
|
|
|
|
|
|
|
// t_part.setValueAt(e.toString(), row, col);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (NumberFormatException e1) {
|
|
|
|
|
|
|
|
MessageBox.post(CreateBOMDifferenceDialogWh.this, "物料数量填写不符合要求", "错误", MessageBox.ERROR);
|
|
|
|
|
|
|
|
// t_part.setValueAt(e.toString(), row, col);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void editingCanceled(ChangeEvent e) {
|
|
|
|
|
|
|
|
// 编辑取消后的操作
|
|
|
|
|
|
|
|
System.out.println("编辑取消: " + t_part.getSelectedRow() + "," + t_part.getSelectedColumn() + "==" + ((TableCellEditor)e.getSource()).getCellEditorValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
colModel.getColumn(i).setCellEditor(descEditor);
|
|
|
|
|
|
|
|
}else if(i != 1 && i != 10 && i != 11 && i != 12) {
|
|
|
|
|
|
|
|
colModel.getColumn(i).setCellEditor(new DefaultCellEditor(new JTextField()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
JScrollPane scroll = new JScrollPane(t_part);
|
|
|
|
JScrollPane scroll = new JScrollPane(t_part);
|
|
|
|
panel.add(BorderLayout.CENTER, scroll);
|
|
|
|
panel.add(BorderLayout.CENTER, scroll);
|
|
|
@ -439,18 +514,56 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private JPanel getButtonPanel() {
|
|
|
|
private JPanel getButtonPanel() {
|
|
|
|
|
|
|
|
JPanel south = new JPanel(new BorderLayout());
|
|
|
|
JPanel panel = new JPanel(new FlowLayout());
|
|
|
|
JPanel panel = new JPanel(new FlowLayout());
|
|
|
|
|
|
|
|
panel.add(btn_add);
|
|
|
|
|
|
|
|
panel.add(btn_del);
|
|
|
|
panel.add(btn_ok);
|
|
|
|
panel.add(btn_ok);
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
|
|
// for (int i = 0; i < 4; i++) {
|
|
|
|
panel.add(new JLabel(" "));
|
|
|
|
// panel.add(new JLabel(" "));
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
panel.add(btn_cel);
|
|
|
|
panel.add(btn_cel);
|
|
|
|
return panel;
|
|
|
|
south.add(BorderLayout.WEST, new JLabel("<html>物料数量变更:只能是当前物料数量由**减少到**<br>物料新增:当前物料数量由**增加了**个 <br>物料删除:物料从BOM中全部移除</html>"));
|
|
|
|
|
|
|
|
south.add(BorderLayout.CENTER, panel);
|
|
|
|
|
|
|
|
return south;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void addListener() {
|
|
|
|
private void addListener() {
|
|
|
|
btn_cel.addActionListener(new ActionListener() {
|
|
|
|
//TODO
|
|
|
|
|
|
|
|
btn_add.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
|
|
|
|
int[] rows = t_part.getSelectedRows();
|
|
|
|
|
|
|
|
if(rows.length == 0) {
|
|
|
|
|
|
|
|
tm_part.addRow(new Object[] { 0, "", "", "", "", "", "", "", "", "", "", "", "", "手工增加" });
|
|
|
|
|
|
|
|
cellEditor.changeRow(t_part.getRowCount() - 1, true);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
int row = rows[rows.length - 1] + 1;
|
|
|
|
|
|
|
|
tm_part.insertRow(row, new Object[] { 0, "", "", "", "", "", "", "", "", "", "", "", "", "手工增加" });
|
|
|
|
|
|
|
|
cellEditor.changeRow(row, true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
refrashNo(t_part);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
btn_del.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
|
|
|
|
int[] rows = t_part.getSelectedRows();
|
|
|
|
|
|
|
|
if(rows.length == 0) {
|
|
|
|
|
|
|
|
MessageBox.post("请选择要删除的行", "", MessageBox.WARNING);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for(int i = rows.length - 1; i >= 0; i--) {
|
|
|
|
|
|
|
|
if(!t_part.getValueAt(rows[i], 13).equals("手工增加"))
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
tm_part.removeRow(rows[i]);
|
|
|
|
|
|
|
|
cellEditor.changeRow(rows[i], false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
refrashNo(t_part);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
btn_cel.addActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
// Auto-generated method stub
|
|
|
|
// Auto-generated method stub
|
|
|
@ -459,7 +572,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
// 点击OK 则将界面显示数据写入zt2_BOMEC,并挂载到更改通知单对象下
|
|
|
|
// 点击OK 则将界面显示数据写入zt2_BOMEC,并挂载到更改通知单对象下
|
|
|
|
btn_ok.addActionListener(new ActionListener() {
|
|
|
|
btn_ok.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
new Thread(new Runnable() {
|
|
|
|
new Thread(new Runnable() {
|
|
|
@ -469,6 +581,32 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
KUtil.stopTableEditing(t_part);
|
|
|
|
KUtil.stopTableEditing(t_part);
|
|
|
|
// 组织数据
|
|
|
|
// 组织数据
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
|
|
|
|
//删除空行
|
|
|
|
|
|
|
|
int last = HEADER.length - 1;
|
|
|
|
|
|
|
|
for(int i = t_part.getRowCount() - 1; i >= 0; i--) {
|
|
|
|
|
|
|
|
if(t_part.getValueAt(i, last).equals("自动生成"))
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if(!isEmpty(t_part.getValueAt(i, 4)))
|
|
|
|
|
|
|
|
Double.parseDouble("" + t_part.getValueAt(i, 6));
|
|
|
|
|
|
|
|
if(!isEmpty(t_part.getValueAt(i, 7)))
|
|
|
|
|
|
|
|
Double.parseDouble("" + t_part.getValueAt(i, 9));
|
|
|
|
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
|
|
|
|
throw new Exception("物料数量填写不符合要求");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
boolean del = true;
|
|
|
|
|
|
|
|
for(int j = 1; j < last; j++) {
|
|
|
|
|
|
|
|
if(!isEmpty(t_part.getValueAt(i, j))) {
|
|
|
|
|
|
|
|
del = false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(del) {
|
|
|
|
|
|
|
|
tm_part.removeRow(i);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
refrashNo(t_part);
|
|
|
|
|
|
|
|
|
|
|
|
createBOMEC(t_part.getRowCount());
|
|
|
|
createBOMEC(t_part.getRowCount());
|
|
|
|
btn_ok.setEnabled(false);
|
|
|
|
btn_ok.setEnabled(false);
|
|
|
|
MessageBox.post("BOM差异表生成成功", "", 2);
|
|
|
|
MessageBox.post("BOM差异表生成成功", "", 2);
|
|
|
@ -477,13 +615,11 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
MessageBox.post("BOM差异表生成失败:" + e.getMessage(), "", 2);
|
|
|
|
MessageBox.post("BOM差异表生成失败:" + e.getMessage(), "", 2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).start();
|
|
|
|
}).start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
t_part.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
|
|
|
t_part.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void valueChanged(ListSelectionEvent e) {
|
|
|
|
public void valueChanged(ListSelectionEvent e) {
|
|
|
|
if (t_part.getSelectedRowCount() >= 2) {
|
|
|
|
if (t_part.getSelectedRowCount() >= 2) {
|
|
|
@ -494,10 +630,8 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
box_class.addItemListener(new ItemListener() {
|
|
|
|
box_class.addItemListener(new ItemListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
|
|
|
|
|
|
|
|
// 使Table编辑失去焦点
|
|
|
|
// 使Table编辑失去焦点
|
|
|
|
TableCellEditor tableCellEditor = t_part.getCellEditor();
|
|
|
|
TableCellEditor tableCellEditor = t_part.getCellEditor();
|
|
|
|
if (tableCellEditor != null) {
|
|
|
|
if (tableCellEditor != null) {
|
|
|
@ -515,7 +649,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
private void setSubClassBoxValue() {
|
|
|
|
private void setSubClassBoxValue() {
|
|
|
|
|
|
|
|
|
|
|
|
if (selectClassItemString != "") {
|
|
|
|
if (selectClassItemString != "") {
|
|
|
|
|
|
|
|
|
|
|
|
field_subClass.setVisible(false);
|
|
|
|
field_subClass.setVisible(false);
|
|
|
|
box_subClass.setVisible(true);
|
|
|
|
box_subClass.setVisible(true);
|
|
|
|
box_subClass.removeAllItems();
|
|
|
|
box_subClass.removeAllItems();
|
|
|
@ -524,7 +657,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
for (String item : subClassMap.keySet()) {
|
|
|
|
for (String item : subClassMap.keySet()) {
|
|
|
|
box_subClass.addItem(item);
|
|
|
|
box_subClass.addItem(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
field_subClass.setVisible(true);
|
|
|
|
field_subClass.setVisible(true);
|
|
|
|
box_subClass.setVisible(false);
|
|
|
|
box_subClass.setVisible(false);
|
|
|
@ -543,7 +675,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
box_subClass.addItemListener(new ItemListener() {
|
|
|
|
box_subClass.addItemListener(new ItemListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
// 使Table编辑失去焦点
|
|
|
|
// 使Table编辑失去焦点
|
|
|
@ -559,7 +690,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
setTableSubClassCellValue();
|
|
|
|
setTableSubClassCellValue();
|
|
|
|
selectSubClassItemString = null;
|
|
|
|
selectSubClassItemString = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void setTableSubClassCellValue() {
|
|
|
|
private void setTableSubClassCellValue() {
|
|
|
@ -567,11 +697,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
for (int index : selectRowsIndex) {
|
|
|
|
for (int index : selectRowsIndex) {
|
|
|
|
t_part.setValueAt(selectSubClassItemString, index, 11);
|
|
|
|
t_part.setValueAt(selectSubClassItemString, index, 11);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
box_processType.addItemListener(new ItemListener() {
|
|
|
|
box_processType.addItemListener(new ItemListener() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
public void itemStateChanged(ItemEvent e) {
|
|
|
|
// 使Table编辑失去焦点
|
|
|
|
// 使Table编辑失去焦点
|
|
|
@ -587,7 +715,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
setTableSubClassCellValue();
|
|
|
|
setTableSubClassCellValue();
|
|
|
|
selectProcessTypeItemString = null;
|
|
|
|
selectProcessTypeItemString = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void setTableSubClassCellValue() {
|
|
|
|
private void setTableSubClassCellValue() {
|
|
|
@ -595,7 +722,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
for (int index : selectRowsIndex) {
|
|
|
|
for (int index : selectRowsIndex) {
|
|
|
|
t_part.setValueAt(selectProcessTypeItemString, index, 12);
|
|
|
|
t_part.setValueAt(selectProcessTypeItemString, index, 12);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
@ -618,7 +744,7 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
System.out.println("form uid:" + form.getUid());
|
|
|
|
System.out.println("form uid:" + form.getUid());
|
|
|
|
List<String> list = new ArrayList<>(rowCout);
|
|
|
|
List<String> list = new ArrayList<>(rowCout);
|
|
|
|
for (int i = 0; i < 13; i++) {
|
|
|
|
for (int i = 0; i < HEADER.length; i++) {
|
|
|
|
String[] values = KUtil.getColumnValues(rowCout, i, list, t_part).toArray(new String[rowCout]);
|
|
|
|
String[] values = KUtil.getColumnValues(rowCout, i, list, t_part).toArray(new String[rowCout]);
|
|
|
|
System.out.println("设置值:" + "zt2_property" + (i + 1) + ";" + Arrays.toString(values));
|
|
|
|
System.out.println("设置值:" + "zt2_property" + (i + 1) + ";" + Arrays.toString(values));
|
|
|
|
switch (i) {
|
|
|
|
switch (i) {
|
|
|
@ -697,5 +823,23 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// return revs;
|
|
|
|
// return revs;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 判断表格内容是否为空
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param val 表格内容
|
|
|
|
|
|
|
|
* @return 是否为空
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static boolean isEmpty(Object val) {
|
|
|
|
|
|
|
|
return val == null || ("" + val).isEmpty();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 表格序号重排
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static void refrashNo(JTable t_part) {
|
|
|
|
|
|
|
|
for(int i = 0; i < t_part.getRowCount(); i++) {
|
|
|
|
|
|
|
|
t_part.setValueAt(i + 1, i, 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|