|
|
|
@ -8,18 +8,11 @@ import java.awt.event.ActionEvent;
|
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
|
import java.io.FileNotFoundException;
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
import java.io.FileReader;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.io.OutputStream;
|
|
|
|
|
import java.nio.file.Files;
|
|
|
|
|
import java.nio.file.Path;
|
|
|
|
|
import java.nio.file.Paths;
|
|
|
|
|
import java.util.LinkedList;
|
|
|
|
|
import java.util.Properties;
|
|
|
|
|
|
|
|
|
|
import javax.swing.JButton;
|
|
|
|
|
import javax.swing.JFileChooser;
|
|
|
|
@ -57,7 +50,6 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
private JButton b_path; // 文件保存路径
|
|
|
|
|
protected JTextField jtf_path; // 文件路径
|
|
|
|
|
private String name;//报表类型
|
|
|
|
|
private String nameEnglish = "";//报表类型
|
|
|
|
|
|
|
|
|
|
public static final String[] HEADER = new String[] { "", "序号", "方案名称", "物料编码" };
|
|
|
|
|
public static final int[] HEADERWIDTH = new int[] { 50, 60, 180, 180 };
|
|
|
|
@ -78,7 +70,6 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
public void run() {
|
|
|
|
|
try {
|
|
|
|
|
initUI();
|
|
|
|
|
System.out.println("initUI()==============================================");
|
|
|
|
|
conntroller.readSpecs(actionInfo);
|
|
|
|
|
addListeners();
|
|
|
|
|
showDialog();
|
|
|
|
@ -91,32 +82,26 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void initUI() throws IOException {
|
|
|
|
|
private void initUI() {
|
|
|
|
|
|
|
|
|
|
this.setPreferredSize(new Dimension(700, 400));
|
|
|
|
|
this.setMinimumSize(new Dimension(650, 400));
|
|
|
|
|
this.setLayout(new BorderLayout());
|
|
|
|
|
this.add(BorderLayout.SOUTH, getBtnPanel());
|
|
|
|
|
this.add(BorderLayout.CENTER, getTablePanel());
|
|
|
|
|
|
|
|
|
|
this.add(BorderLayout.NORTH, getPathPanel());
|
|
|
|
|
switch (actionInfo) {
|
|
|
|
|
case "000":
|
|
|
|
|
this.setTitle("项目规范书报表导出"); // 中压
|
|
|
|
|
name = "中压项目规范书报表";
|
|
|
|
|
nameEnglish = "c";
|
|
|
|
|
System.out.println("nameEnglish1======="+nameEnglish);
|
|
|
|
|
break;
|
|
|
|
|
case "001":
|
|
|
|
|
this.setTitle("一次规范书汇总报表导出"); // 中压
|
|
|
|
|
name = "中压一次规范书汇总报表";
|
|
|
|
|
nameEnglish = "a";
|
|
|
|
|
System.out.println("nameEnglish2======="+nameEnglish);
|
|
|
|
|
break;
|
|
|
|
|
case "002":
|
|
|
|
|
this.setTitle("二次规范书汇总报表导出"); // 中压
|
|
|
|
|
name = "中压二次规范书汇总报表";
|
|
|
|
|
nameEnglish = "b";
|
|
|
|
|
System.out.println("nameEnglish3======="+nameEnglish);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "003":
|
|
|
|
@ -129,7 +114,7 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
this.add(BorderLayout.NORTH, getPathPanel());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void setCompEnabled(boolean b) {
|
|
|
|
@ -236,35 +221,22 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
return panel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private JPanel getPathPanel() throws IOException {
|
|
|
|
|
private JPanel getPathPanel() {
|
|
|
|
|
JPanel panel = new JPanel(new PropertyLayout());
|
|
|
|
|
jtf_path = new JTextField(30);
|
|
|
|
|
//2022/11/14新增记录保存路径
|
|
|
|
|
//2022/11/14新增记录保存路径
|
|
|
|
|
System.out.println("System.getenv(\"Temp\")==========="+System.getenv("Temp"));
|
|
|
|
|
Path configFilePath = Paths.get(System.getenv("Temp")+"//export_dir.config");
|
|
|
|
|
// 检查文件是否存在,不存在则创建
|
|
|
|
|
if (!Files.exists(configFilePath)) {
|
|
|
|
|
Files.createFile(configFilePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Properties properties = new Properties();
|
|
|
|
|
try (InputStream in = new FileInputStream(System.getenv("Temp")+"//export_dir.config")) {
|
|
|
|
|
properties.load(in);
|
|
|
|
|
}
|
|
|
|
|
System.out.println("properties==="+properties.toString());
|
|
|
|
|
System.out.println("size==="+properties.size());
|
|
|
|
|
System.out.println("nameEnglish======="+nameEnglish);
|
|
|
|
|
String property = properties.getProperty(nameEnglish);
|
|
|
|
|
if(property != null && !property.isEmpty()) {
|
|
|
|
|
jtf_path.setText(property);
|
|
|
|
|
String tempPath = System.getProperty("java.io.tmpdir");
|
|
|
|
|
String tempFilePath = tempPath + File.separator + name + "功能导出路径.txt";
|
|
|
|
|
File exportFileTxt = new File(tempFilePath);
|
|
|
|
|
if(exportFileTxt.exists()) {
|
|
|
|
|
String[] openTextFile = openTextFile(tempFilePath);
|
|
|
|
|
System.out.println("上次保存路径:"+openTextFile[0]);
|
|
|
|
|
jtf_path.setText(openTextFile[0]);
|
|
|
|
|
}else {
|
|
|
|
|
File desktopDir = FileSystemView.getFileSystemView().getHomeDirectory();
|
|
|
|
|
String desktopPath = desktopDir.getAbsolutePath();
|
|
|
|
|
jtf_path.setText(desktopPath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b_path = new JButton("浏览");
|
|
|
|
|
|
|
|
|
|
panel.add("1.1.left.top", new JLabel("报表保存路径: "));
|
|
|
|
@ -278,13 +250,16 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
JFileChooser jfc = new JFileChooser();
|
|
|
|
|
FileSystemView fsv = FileSystemView.getFileSystemView();
|
|
|
|
|
//2022/11/14新增记录保存路径
|
|
|
|
|
String property = properties.getProperty(nameEnglish);
|
|
|
|
|
if(property != null && !property.isEmpty()) {
|
|
|
|
|
jfc.setCurrentDirectory(new File(property));
|
|
|
|
|
String tempPath = System.getProperty("java.io.tmpdir");
|
|
|
|
|
String tempFilePath = tempPath + File.separator + name + "功能导出路径.txt";
|
|
|
|
|
File exportFileTxt = new File(tempFilePath);
|
|
|
|
|
if(exportFileTxt.exists()) {
|
|
|
|
|
String[] openTextFile = openTextFile(tempFilePath);
|
|
|
|
|
System.out.println("上次保存路径:"+openTextFile[0]);
|
|
|
|
|
jfc.setCurrentDirectory(new File(openTextFile[0]));
|
|
|
|
|
}else {
|
|
|
|
|
jfc.setCurrentDirectory(fsv.getHomeDirectory());
|
|
|
|
|
}
|
|
|
|
|
System.out.println("111111111111111111111111111111111111111111111111");
|
|
|
|
|
|
|
|
|
|
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
|
|
|
|
jfc.showOpenDialog(SpecStatementDialog2.this);
|
|
|
|
@ -293,17 +268,14 @@ public class SpecStatementDialog2 extends AbstractAIFDialog {
|
|
|
|
|
System.out.println("->" + f.getAbsolutePath());
|
|
|
|
|
jtf_path.setText(f.getAbsolutePath());
|
|
|
|
|
//2022/11/14新增记录保存路径
|
|
|
|
|
properties.setProperty(nameEnglish, f.getAbsolutePath());
|
|
|
|
|
System.out.println("f.getAbsolutePath()=========="+f.getAbsolutePath());
|
|
|
|
|
}
|
|
|
|
|
// 保存修改后的配置
|
|
|
|
|
try (OutputStream out = Files.newOutputStream(configFilePath)) {
|
|
|
|
|
properties.store(out, null);
|
|
|
|
|
try {
|
|
|
|
|
writeFile(tempFilePath,f.getAbsolutePath());
|
|
|
|
|
} catch (IOException e1) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return panel;
|
|
|
|
|