import java.awt.Frame;
import java.awt.Event;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.TextField;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.sql.*;
import java.sql.SQLException.*;

public class FYdbEntry extends Frame  {
  static TextField field1 = new TextField("", 5);  // client #
  static TextField field2 = new TextField("", 4);   // call #
  static TextField field3 = new TextField("", 8);  // amount paid
  static TextField field4 = new TextField("", 4);  // date - just MMdd
  static TextField field5 = new TextField("", 18);  // comment
  static Checkbox field6 = new Checkbox("no comm", true);   
  static TextField field7 = new TextField("", 6);  // travel expense
  static TextField field8 = new TextField("", 6);  // phone cost
  static TextField field9 = new TextField("", 6);  // commission
  static TextField field10 = new TextField("", 7);  // part cost
  static TextField field11 = new TextField("", 7);  // tool cost
  static TextField field12 = new TextField("", 7);  // other expense

  static GridLayout severalButtons = new GridLayout(10,3,15,8);
  static Panel bsPane = new Panel(severalButtons);
  static Panel taPane = new Panel();
  static Label blank1 = new Label(" ");
  static Label blank2 = new Label(" ");
  static Label blank3 = new Label(" ");
  static Label blank4 = new Label(" ");
  static Label lab1 = new Label(" Client ID");
  static Label lab2 = new Label(" Call #");
  static Label lab3 = new Label(" $ paid");
  static Label lab4 = new Label(" date");
  static Label lab5 = new Label(" comments");
  static Label lab6 = new Label(" ");
  static Label lab7 = new Label(" travel");
  static Label lab8 = new Label(" phone");
  static Label lab9 = new Label(" commission");
  static Label lab10 = new Label(" part(s)");
  static Label lab11 = new Label(" tool(s)");
  static Label lab12 = new Label(" other expense");
  static Button submitData = new Button("Submit");
  static Button viewDB = new Button("View Dbase");
  static Button otherFields = new Button("Expenses");
  static TextArea sqlanswers = new TextArea("", 12, 58, java.awt.TextArea.SCROLLBARS_VERTICAL_ONLY);
    String dbUrl = "jdbc:odbc:demonstration";
    String user = "";
    String password = "";
  String dbresultverify;

  FYdbEntry()  {
    new Frame();
  }

  public void dispose()  {  super.dispose();  }

  public boolean handleEvent(Event wiev)  {
    if(wiev.id == Event.WINDOW_DESTROY)  {
	dispose();
	System.exit(0);
    }
    else if (wiev.id == Event.ACTION_EVENT)  {
      if (wiev.target instanceof Button)  {

	String value1 = field1.getText();
	String value2 = field2.getText();
	String value3 = field3.getText();

	try  {
            Class.forName (
                "sun.jdbc.odbc.JdbcOdbcDriver");
	    Connection c = DriverManager.getConnection(
		dbUrl, user, password);
	    // SQL code:
	    Statement s = c.createStatement();
	    int nilval = s.executeUpdate(
"use FY1;"
);

	    if (wiev.arg == "Submit")  {
	      dbresultverify = "Written to database - Result:\n\n";
	      if (field6.getState())  {
	        int nilval2 = s.executeUpdate(
"INSERT INTO fydb (client_number, call_number, amt_paid, date, metro_x, phone_x, commission, part_cost, tool_purchase, other_expense, comment) " +
"VALUES (\"" + value1 + "\", \"" + value2 + "\", \"" + value3 + "\", \"2001" + field4.getText() + "\", \"" + field7.getText() + "\", \"" + field8.getText() + "\", \"" + field9.getText() + "\", \"" + field10.getText() + "\", \"" + field11.getText() + "\", \"" + field12.getText() + "\", \"" + field5.getText() +
"\");"
   );
	      }
	      else  {
		int nilval2 = s.executeUpdate(
"INSERT INTO fydb (client_number, call_number, amt_paid, date, no_cmish, metro_x, phone_x, commission, part_cost, tool_purchase, other_expense, comment) " +
"VALUES (\"" + value1 + "\", \"" + value2 + "\", \"" + value3 + "\", \"2001" + field4.getText() + "\", \"\", \"" + field7.getText() + "\", \"" + field8.getText() + "\", \"" + field9.getText() + "\", \"" + field10.getText() + "\", \"" + field11.getText() + "\", \"" + field12.getText() + "\", \"" + field5.getText() +
"\");"
   );
	      }

	      ResultSet r = s.executeQuery(
"SELECT * FROM FY1.fydb WHERE client_number='" + value1 +
"' AND call_number='" + value2 + "';"
);
	      while (r.next())  {
		dbresultverify = dbresultverify + r.getString("client_number") + "-" + r.getString("call_number") + " " + r.getString("date") + "  $" + r.getString("amt_paid") + "  " + r.getString("comment"); 
		if (r.getString("no_cmish") != "null")  {
		  dbresultverify = dbresultverify + "*" + "\n";
		}
		else {  dbresultverify = dbresultverify + "\n";
		}
	      }
	    }
	    if (wiev.arg == "View Dbase")  {
	      dbresultverify = " - FY1.fydb database contains:\n--------------------------------\n";

	      ResultSet r = s.executeQuery(
"SELECT * FROM FY1.fydb;"
  );
	      while (r.next())  {
		dbresultverify = dbresultverify + r.getString("client_number") + "-" + r.getString("call_number") + " " + r.getString("date") + "  $" + r.getString("amt_paid") + "  " + r.getString("comment"); 
		if (r.getString("no_cmish") == "")  {
		  dbresultverify = dbresultverify + "*" + "\n";
		}
		else {  dbresultverify = dbresultverify + "\n";
		}
	      }
	    }
	    if (wiev.arg == "Expenses")  {
	      dbresultverify = " - FY1.fydb expense fields:\n--------------------------------\n";

	      ResultSet r = s.executeQuery(
"SELECT * FROM FY1.fydb;"
  );
	      while (r.next())  {
		dbresultverify = dbresultverify + r.getString("client_number") + "-" + r.getString("call_number") + " M$" + r.getString("metro_x") + " ph$" + r.getString("phone_x") + " P$" + r.getString("part_cost") + " t$" + r.getString("tool_purchase") + " O$" + r.getString("other_expense"); 
		if (r.getString("no_cmish") != "null")  {
		  dbresultverify = dbresultverify + "\n";
		}
		else {  dbresultverify = dbresultverify + "  J$" + r.getString("commission") + "\n";
		}
	      }
	    }
	    sqlanswers.setText(dbresultverify);

	    s.close(); 
	}
	catch (SQLException e)  {
		e.printStackTrace();
                System.out.println("\nSQL State code:\n" + e.getSQLState());
	}
	catch (Exception e)  {
		e.printStackTrace();
	}
	finally  {
	    field3.setText("");
	    field4.setText("");
	    field5.setText("");
	    field6.setEnabled(true);
	    field7.setText("");
	    field8.setText("");
	    field9.setText("");
	    field10.setText("");
	    field11.setText("");
	    field12.setText("");
	}

	return true;

      }
      return true;
    }
    else  {
      return super.handleEvent(wiev);
    }
    return true;
  }

    public static void main (String[] args)  {
	FYdbEntry FY1Frm = new FYdbEntry();
	bsPane.add(lab1);
	bsPane.add(lab2);
	bsPane.add(lab3);
	bsPane.add(field1);
	bsPane.add(field2);
	bsPane.add(field3);
	bsPane.add(lab4);
	bsPane.add(lab5);
	bsPane.add(lab6);
	bsPane.add(field4);
	bsPane.add(field5);
	bsPane.add(field6);
	bsPane.add(lab7);
	bsPane.add(lab8);
	bsPane.add(lab9);
	bsPane.add(field7);
	bsPane.add(field8);
	bsPane.add(field9);
	bsPane.add(lab10);
	bsPane.add(lab11);
	bsPane.add(lab12);
	bsPane.add(field10);
	bsPane.add(field11);
	bsPane.add(field12);
	bsPane.add(submitData);
	bsPane.add(viewDB);
	bsPane.add(otherFields);
	taPane.add(sqlanswers);
	FY1Frm.add(bsPane);
	FY1Frm.add("South", taPane);
	bsPane.show();
	FY1Frm.resize(450, 485);
	FY1Frm.setTitle("Enter data into FY1:fydb - JDBC by R. Hess");
	FY1Frm.show();
    }

}




// download the source code .JAVA file,
// and the compiled Java application .CLASS file, here.

// - Page composed December 28 2001 by R. Hess <hess1@bigfoot.com>, Webmaster.