public class Start extends JFrame implements ActionListener{
// Konstanten
private static String startText = "Cofely AG - Bestelleingang Gebäudeautomation";
// GUI-Elemente
private JMenuBar menuBar;
private JMenu menuFile, menuBestelleingang, menuAnzeigen, menuHelp;
private JMenuItem jmiExit, jmiHelp, jmiInfo;
private JMenuItem jmiEdit;
private JMenuItem jmi2008, jmi2009, jmi2010, jmi2011, jmi2012, jmi2013;
private JTextField jtfStatus;
private ImageIcon iconExit, iconErfassen, iconEdit, iconHelp, iconInfo;
// Tabelle
private JTable table;
private DefaultTableModel tableModel;
// Datenmodell anlegen
private String[][] data = {
{"Januar", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ""},
{"Februar", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ""},
{"März", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ""},
{"April", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ""},
{"Mai", "", "", "", "", "", "", "", "", "", "", ""},
{"Juni", "", "", "", "", "", "", "", "", "", "", ""},
{"Juli", "", "", "", "", "", "", "", "", "", "", ""},
{"August", "", "", "", "", "", "", "", "", "", "", ""},
{"Septemper", "", "", "", "", "", "", "", "", "", "", ""},
{"Oktober", "", "", "", "", "", "", "", "", "", "", ""},
{"November", "", "", "", "", "", "", "", "", "", "", ""},
{"Dezember", "", "", "", "", "", "", "", "", "", "", ""},
{"Total", "", "", "", "", "", "", "", "", "", "", ""},
{"Soll % Monat", "", "", "", "", "", "", "", "", "", "", ""},
{"Soll % Jahr", "", "", "", "", "", "", "", "", "", "", ""}
};
// Tabellen-Spalten anlagen
private String[] spalten = {"", "Aarau", "Basel", "Bern", "Luzern", "Frauenfeld", "Rapperswil", "St. Gallen", "Winterthur", "Zürich", "Romandie", "Total"};
// Variablen PopUps
private JLayeredPane desktop;
private JInternalFrame internalFrame;
private Integer layerLevelHelp = new Integer(300);
// Variablen Login
private JTextField loginUser = new JTextField();
private JTextField loginPassword = new JTextField();
private int userLevel;
// Variablen Datenbank
private Connection con;
private String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
private String connectionURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/!Daten/CofelyBestelleingang.mdb";
private String user = "";
private String password = "";
private String stmt;
private ResultSet rs;
private long bestellungID;
private String nl;
private int jahr;
private Double jan, feb, mrz, apr, mai, jun;
private Double jul, aug, sep, okt, nov, dez, umsatz;
// enthält Funktionen für DB-Zugriffe
public DBmanager dbmanager;
public Bestelldialog bestelldialog;
public static void main(String[] args) {
new Start(startText);
}
public Start(){
}
public Start(String title) {
super(title);
//this.setSize(1280,760);
this.setSize(900,500);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
Start.this.ausgangAction();
}
});
// contentPane enthält alle Komponenten
Container contentPane = this.getContentPane();
desktop = getLayeredPane();
createGUI();
// Statusleiste erstellen
jtfStatus = new JTextField();
jtfStatus.setBackground(Color.BLACK);
jtfStatus.setForeground(Color.WHITE);
jtfStatus.setEditable(false);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(BorderLayout.SOUTH, jtfStatus);
tableModel = new DefaultTableModel(data, spalten);
table = new JTable(tableModel);
table.setModel(tableModel);
// tableModel.fireTableDataChanged();
JScrollPane scrollPane = new JScrollPane(table);
panel.add(BorderLayout.CENTER, scrollPane);
contentPane.add(BorderLayout.CENTER, panel);
this.setVisible(true);
// Wieder aktivieren, wenn Anmeldung erforderlich
// ***********************************************
//loginActionPerformed();
}
public void createGUI(){
// Icons der MenuItems
iconExit = new ImageIcon(getClass().getResource("Exit.gif"));
iconErfassen = new ImageIcon(getClass().getResource("New16.gif"));
iconEdit = new ImageIcon(getClass().getResource("Edit16.gif"));
iconHelp = new ImageIcon(getClass().getResource("Help16.gif"));
iconInfo = new ImageIcon(getClass().getResource("About16.gif"));
// Menu-Konstruktion - zuerst die MenuBar
menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
// Datei-Menu
menuFile = new JMenu("Datei");
menuFile.setMnemonic('D');
// Datei-Untermenu schliessen
jmiExit = new JMenuItem("Beenden", iconExit);
jmiExit.setMnemonic('B');
jmiExit.setToolTipText("Programm schliessen");
jmiExit.addActionListener(this);
menuFile.add(jmiExit);
// Trennlinie einfügen
// menuFile.addSeparator();
menuBar.add(menuFile);
// Menu Bestelleingang
menuBestelleingang = new JMenu("Bestelleingang");
menuBestelleingang.setMnemonic('B');
menuBar.add(menuBestelleingang);
// Bestelleingang Untermenu Anzeigen
menuAnzeigen = new JMenu("Anzeigen");
menuAnzeigen.setMnemonic('A');
menuAnzeigen.setToolTipText("Bestelleingänge anzeigen...");
// Bestelleingang Unter-Untermenu Anzeigen
jmi2013 = new JMenuItem("2013", iconErfassen);
jmi2013.setMnemonic('3');
jmi2013.setToolTipText("Bestelleingänge 2013");
jmi2013.addActionListener(this);
menuAnzeigen.add(jmi2013);
jmi2012 = new JMenuItem("2012", iconErfassen);
jmi2012.setMnemonic('2');
jmi2012.setToolTipText("Bestelleingänge 2012");
jmi2012.addActionListener(this);
menuAnzeigen.add(jmi2012);
jmi2011 = new JMenuItem("2011", iconErfassen);
jmi2011.setMnemonic('1');
jmi2011.setToolTipText("Bestelleingänge 2011");
jmi2011.addActionListener(this);
menuAnzeigen.add(jmi2011);
jmi2010 = new JMenuItem("2010", iconErfassen);
jmi2010.setMnemonic('0');
jmi2010.setToolTipText("Bestelleingänge 2010");
jmi2010.addActionListener(this);
menuAnzeigen.add(jmi2010);
jmi2009 = new JMenuItem("2009", iconErfassen);
jmi2009.setMnemonic('9');
jmi2009.setToolTipText("Bestelleingänge 2009");
jmi2009.addActionListener(this);
menuAnzeigen.add(jmi2009);
jmi2008 = new JMenuItem("2008", iconErfassen);
jmi2008.setMnemonic('8');
jmi2008.setToolTipText("Bestelleingänge 2008");
jmi2008.addActionListener(this);
menuAnzeigen.add(jmi2008);
menuBestelleingang.add(menuAnzeigen);
// Bestelleingang Untermenu Ändern
jmiEdit = new JMenuItem("Bearbeiten", iconEdit);
jmiEdit.setMnemonic('B');
jmiEdit.setToolTipText("Bestelleingang bearbeiten");
jmiEdit.addActionListener(this);
menuBestelleingang.add(jmiEdit);
// Hilfemenu
menuHelp = new JMenu("?");
// Hilfe-Untermenu Hilfe
// jmiHelp = new JMenuItem("Hilfe", iconHelp);
// jmiHelp.setMnemonic('H');
// jmiHelp.setToolTipText("Hilfe zur Anwendung");
// jmiHelp.addActionListener(this);
// menuHelp.add(jmiHelp);
// Hilfe-Untermenu Info
jmiInfo = new JMenuItem("Info", iconInfo);
jmiInfo.setMnemonic('I');
jmiInfo.setToolTipText("Info über die Anwendung");
jmiInfo.addActionListener(this);
menuHelp.add(jmiInfo);
menuBar.add(menuHelp);
}
// die actionPerformed-Methode des ActionListener verteilt nur
public void actionPerformed(ActionEvent ae) {
Object eventTarget = ae.getSource();
if (eventTarget.equals(jmiExit)){
this.ausgangAction();
}if(eventTarget.equals(jmi2013)){
this.anzeigenAction(2013);
}if(eventTarget.equals(jmi2012)){
this.anzeigenAction(2012);
}if(eventTarget.equals(jmi2011)){
this.anzeigenAction(2011);
}if(eventTarget.equals(jmi2010)){
this.anzeigenAction(2010);
}if(eventTarget.equals(jmi2009)){
this.anzeigenAction(2009);
}if(eventTarget.equals(jmi2008)){
this.anzeigenAction(2008);
}if(eventTarget.equals(jmiEdit)){
this.bearbeitenAction();
} if (eventTarget.equals(jmiHelp)){
this.helpAction();
} if (eventTarget.equals(jmiInfo)){
this.infoAction();
}
}
private void ausgangAction() {
if(dbmanager != null){
dbmanager.closeConnection();
}
this.setVisible(false);
this.dispose();
System.exit(0);
}
private void anzeigenAction(int Jahr){
jtfStatus.setText("Bestelleingang Jahr " + Jahr + " anzeigen");
stmt = "SELECT * FROM TBestellungen WHERE JAHR = " + Jahr;
dbmanager = new DBmanager();
con = dbmanager.getConnection(driverClass, connectionURL, user, password);
rs = dbmanager.selectStmt(con, stmt);
try{
if(rs != null){
while(rs.next()){
jtfStatus.setText(rs.getString("NL"));
}
}
}catch(SQLException sqle){
System.out.println("selectStmt: " + sqle.getMessage() + " SQLException");
}
dbmanager.closeStatement();
dbmanager.closeConnection();
}
private void bearbeitenAction(){
jtfStatus.setText("Bestelleingang bearbeitenxxxx");
// Dialog zur Auswahl von Jahr und Niederlassung
String comboJahr[] = {"2014", "2013", "2012", "2011", "2010", "2009", "2008"};
String comboNL[] = {
"Aarau", "Basel", "Bern", "Frauenfeld", "Luzern",
"Rapperswil", "Romandie", "St. Gallen", "Winterthur", "Zürich"};
JComboBox cmbJahr = new JComboBox(comboJahr);
JComboBox cmbNL = new JComboBox(comboNL);
Object[] message = {"Bitte Jahr und Niederlassung auswählen...", cmbJahr, cmbNL};
int auswahl = JOptionPane.showConfirmDialog(null, message, "Bestelleingang bearbeiten",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (auswahl == JOptionPane.OK_OPTION) {
String strJahr = (String)cmbJahr.getSelectedItem();
String strNL = (String) cmbNL.getSelectedItem();
int iJahr = Integer.parseInt(strJahr);
stmt = "SELECT * FROM TBestellungen WHERE JAHR = " + iJahr + " AND NL = '" + strNL + "'";
dbmanager = new DBmanager();
con = dbmanager.getConnection(driverClass, connectionURL, user, password);
rs = dbmanager.selectStmt(con, stmt);
// Variablen initialisieren
bestellungID = 0;
nl = "";
jahr = 0;
jan = 0.0;
feb = 0.0;
mrz = 0.0;
apr = 0.0;
mai = 0.0;
jun = 0.0;
jul = 0.0;
aug = 0.0;
sep = 0.0;
okt = 0.0;
nov = 9.9;
dez = 0.0;
umsatz = 0.0;
try{
if(rs != null){
while(rs.next()){
bestellungID = rs.getLong("BestellungID");
nl = rs.getString("NL");
jahr = rs.getInt("Jahr");
jan = rs.getDouble("Jan");
feb = rs.getDouble("Feb");
mrz = rs.getDouble("Mrz");
apr = rs.getDouble("Apr");
mai = rs.getDouble("Mai");
jun = rs.getDouble("Jun");
jul = rs.getDouble("Jul");
aug = rs.getDouble("Aug");
sep = rs.getDouble("Sep");
okt = rs.getDouble("Okt");
nov = rs.getDouble("Nov");
dez = rs.getDouble("Dez");
umsatz = rs.getDouble("UmsatzSoll");
}
jtfStatus.setText(nl);
System.out.println(nl + "xxxxxxxxxxxxxxxxxxxx");
}
}catch(SQLException sqle){
System.out.println("selectStmt: " + sqle.getMessage() + " SQLException");
}
dbmanager.closeStatement();
dbmanager.closeConnection();
System.out.println("Aufruf bestelldialog");
System.out.println(nl);
System.out.println(getNL());
bestelldialog = new Bestelldialog(this, "Bestellungseintrag bearbeiten");
//bestelldialog.setVisible(true);
}
}
public String getNL(){
System.out.println(nl + "yyyyyyyyyyyyyy");
return nl;
}
private void helpAction(){
jtfStatus.setText("Hilfe ...");
internalFrame = new JInternalFrame("Hilfe", true, true);
internalFrame.setSize(150, 100);
internalFrame.setLocation(25*desktop.getComponentCount(), 25*desktop.getComponentCount());
desktop.add(internalFrame, layerLevelHelp);
internalFrame.setVisible(true);
}
private void infoAction(){
jtfStatus.setText("Info ...");
JOptionPane.showMessageDialog(null,
"Cofely - Bestelleingang Gebäudeautomation \n" + "Version : 1.0 / 24.11.2012 \n" +
"Author : Thomas Hellstern", "Info",
JOptionPane.WARNING_MESSAGE);
}
private void loginAction(){
Object[] message = {"Benutzername", loginUser, "Passwort", loginPassword};
JOptionPane pane = new JOptionPane( message,
JOptionPane.QUESTION_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Login - Cofely Bestelleingang").setVisible(true);
// Gedrückte Tasten abfragen
Object val = pane.getValue();
if (val != null && val.equals(new Integer(JOptionPane.OK_OPTION))) {
// Benutzer in der Datenbank suchen
dbmanager = new DBmanager();
con = dbmanager.getConnection(driverClass, connectionURL, user, password);
userLevel = 0;
userLevel = dbmanager.selectStmtLogin(con, loginUser.getText(), loginPassword.getText());
dbmanager.closeStatement();
dbmanager.closeConnection();
if(userLevel > 0){
jtfStatus.setText("userLevel = " + userLevel);
}else{
ausgangAction();
}
}else if (val != null && val.equals(new Integer(JOptionPane.CANCEL_OPTION))) {
ausgangAction();
}
}
}