home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / DBServ / SAMPLES / SAMPLES.ZIP / EXPENSES / EXPENSEAPPLET.JAVA < prev    next >
Encoding:
Text File  |  1997-02-21  |  19.1 KB  |  489 lines

  1. /**************************************************************************************************
  2. *                                                                                                 *
  3. *  Class name: expenseApplet                                                                      *
  4. *                                                                                                 *
  5. *     Purpose: Main menu for Expenses, allowing access to creating a new expense report, viewing  *
  6. *              current expense reports, adding new categories, and adding new employees.          *
  7. *                                                                                                 *
  8. *     Imports:  java.awt.*                                                                        *
  9. *               java.applet.*                                                                     *
  10. *               symjava.sql.*                                                                     *
  11. *               java.io.*                                                                         *
  12. *               java.util.*                                                                       *
  13. *               java.lang.*                                                                       *
  14. *                                                                                                 *
  15. * Methods include: public boolean handleEvent(Event event)                                        *
  16. *                  public synchronized void show()                                                *
  17. *                  public void clickedEmployeeInfo()                                              *
  18. *                  public void clickedExpenseCategories()                                         *
  19. *                  public void clickedFind ()                                                     *
  20. *                  public void clickedNewExpenseReport()                                          *
  21. *                  public void clickedViewExpenseReport(String empID)                             *
  22. *                  public void getConnected()                                                     *
  23. *                  public void getEmployees (Panel newwindow, Choice employeename)                *
  24. *                  public void getEmployees2(List emplist)                                        *
  25. *                  public void getExpenseInfo(String empID)                                       *
  26. *                                                                                                 *
  27. *                                                                                                 *
  28. * Additional Notes:                                                                               *
  29. * THIS SOFTWARE HAS BEEN COMPILED AND EXECUTED SUCCESSFULLY IN SPECIFIC SYMANTEC                  *
  30. * ENVIRONMENTS, AND IS BEING PROVIDED ONLY AS SAMPLE CODE.                                        *
  31. *                                                                                                 *
  32. * SYMANTEC MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,          *
  33. * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF               *
  34. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.  SYMANTEC SHALL NOT     *
  35. * BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING, OR DISTRIBUTING *
  36. * THIS SOFTWARE OR ITS DERIVATIVES.                                                               *
  37. *                                                                                                 *
  38. *  Please see the Sample Code Configuration item in the Read Me file for additional               *
  39. *  information about the sample database used in this applet.                                     *
  40. *                                                                                                 *
  41. * Copyright (c) 1996 Symantec.  All Rights Reserved.                                              *
  42. *                                                                                                 *
  43. **************************************************************************************************/
  44.  
  45. import java.awt.*;
  46. import java.util.*;
  47. import symjava.sql.*;
  48. import java.lang.*;
  49. import java.applet.Applet;
  50.  
  51. public class expenseApplet extends Applet {
  52.  
  53.     Driver driver;
  54.     Connection connection;
  55.     String urlValue = " ";
  56.     String sqlStatement = " ";
  57.     Panel oldwindow;
  58.     Button oldbutton;
  59.     int flag = 0;
  60.     List emplist=new List();
  61.     List list1=new List();
  62.     public void init () {
  63.  
  64.         // super("    EXPENSES APPLET ");
  65.  
  66.         //{{INIT_CONTROLS
  67.  
  68.         setLayout(null);
  69.  
  70.         resize(600,600);
  71.         //resize(insets().left + insets().right + 600, insets().top + insets().bottom + 390);
  72.  
  73.         newExpenseReport=new Button("New Expense Report");
  74.         newExpenseReport.setFont(new Font("Helvetica",Font.BOLD,10));
  75.         add(newExpenseReport);
  76.         newExpenseReport.reshape(insets().left + 0,insets().top + 0,150,34);
  77.         viewExpenseReport=new Button("View Expense Report");
  78.         viewExpenseReport.setFont(new Font("Helvetica",Font.BOLD,10));
  79.         add(viewExpenseReport);
  80.         viewExpenseReport.reshape(insets().left + 150,insets().top + 0,150,34);
  81.         employeeInfo=new Button("Enter Employee Information");
  82.         employeeInfo.setFont(new Font("Helvetica",Font.BOLD,10));
  83.         add(employeeInfo);
  84.         employeeInfo.reshape(insets().left + 300,insets().top + 0,150,34);
  85.         expenseCategories=new Button("Enter Expense Categories");
  86.         expenseCategories.setFont(new Font("Helvetica",Font.BOLD,10));
  87.         add(expenseCategories);
  88.         expenseCategories.reshape(insets().left + 450,insets().top + 0,150,34);
  89.  
  90.         //}}
  91.  
  92.         getConnected();
  93.  
  94.         show();
  95.     }
  96.  
  97.     public synchronized void show() {
  98.         move(50, 50);
  99.         super.show();
  100.     }
  101.  
  102.     public boolean handleEvent(Event event) {
  103.           if (event.id == Event.ACTION_EVENT && event.target == expenseCategories) {
  104.             clickedExpenseCategories();
  105.             return true;
  106.         }
  107.         else
  108.         if (event.id == Event.ACTION_EVENT && event.target == employeeInfo) {
  109.             clickedEmployeeInfo();
  110.             return true;
  111.         }
  112.         else
  113.         if (event.id == Event.ACTION_EVENT && event.target == viewExpenseReport) {
  114.             clickedViewExpenseReport(null);
  115.             return true;
  116.         }
  117.         else
  118.         if (event.id == Event.ACTION_EVENT && event.target == newExpenseReport) {
  119.             clickedNewExpenseReport();
  120.             return true;
  121.         }
  122.         else
  123.         if (event.id == Event.ACTION_EVENT && event.target == emplist) {
  124.                 String empID = selectedEmployee(emplist);
  125.                 remove(emplist);
  126.                 emplist.clear();
  127.                 clickedViewExpenseReport(empID);
  128.         }
  129.         return super.handleEvent(event);
  130.     }
  131.  
  132.  
  133.     //{{DECLARE_CONTROLS
  134.     Label label1;
  135.     Button newExpenseReport;
  136.     Button viewExpenseReport;
  137.     Button employeeInfo;
  138.     Button expenseCategories;
  139.     //}}
  140.  
  141.  
  142. /************************** Establish connection ***************************************/
  143.     public void getConnected() {
  144.         urlValue = "jdbc:dbaw://localhost:8889/SQL_Server/dbaw/pubs";
  145.  
  146.         try {
  147.             String DriverName = "symantec.itools.db.jdbc.Driver";
  148.             driver = (Driver)Class.forName(DriverName).newInstance();
  149.         }
  150.         catch (ClassNotFoundException e) {
  151.             System.out.println("Class Exception recieved: " + e.getMessage());
  152.             return;
  153.         }
  154.         catch (IllegalAccessException e) {
  155.             System.out.println("Access Exception recieved: " + e.getMessage());
  156.             return;
  157.         }
  158.         catch (InstantiationException e) {
  159.             System.out.println("Instantiation Exception recieved: " + e.getMessage());
  160.             return;
  161.         }
  162.         Properties p = new Properties();
  163.         try
  164.         {
  165.             p.put("user", "sa");
  166.             p.put("password", "dbawsqlserver");
  167.             connection = (Connection)driver.connect(urlValue, p);
  168.         }
  169.         catch (SQLException e)
  170.         {
  171.             System.out.println("Exception recieved: " + e.getMessage());
  172.             return;
  173.         }
  174.  
  175.         if (connection == null)
  176.             System.out.println("No driver found!");
  177.         else
  178.             System.out.println("  Connection Established - SUCCESS!");
  179.  
  180.     }
  181. /***************************************************************************************/
  182.  
  183.     public void clickedNewExpenseReport() {
  184.  
  185.        Choice employeename=new Choice();
  186.        Choice cat1=new Choice();
  187.        Choice cat2=new Choice();
  188.        Choice cat3=new Choice();
  189.        Choice cat4=new Choice();
  190.        Choice cat5=new Choice();
  191.  
  192.        if (flag != 0) {
  193.             remove(oldwindow);
  194.             oldbutton.setFont(new Font("Helvetica",Font.BOLD,10));
  195.        }
  196.        Button newbutton = newExpenseReport;
  197.        newbutton.setFont(new Font("Helvetica",Font.BOLD,12));
  198.  
  199.        emplist.hide();
  200.        Panel newwindow = new expenseEntryForm(this, employeename, cat1, cat2, cat3, cat4, cat5);
  201.        getEmployees(newwindow, employeename);
  202.        getCategories(cat1, cat2, cat3, cat4, cat5);
  203.  
  204.        oldwindow = newwindow;
  205.        oldbutton = newbutton;
  206.        flag = 1;
  207.  
  208.        add(newwindow);
  209.        newwindow.add(employeename);
  210.        employeename.reshape(insets().left + 228,insets().top + 146,128,25);
  211.        newwindow.add(cat1);
  212.        cat1.reshape(insets().left + 172,insets().top + 311,138,22);
  213.        newwindow.add(cat2);
  214.        cat2.reshape(insets().left + 172,insets().top + 338,138,22);
  215.        newwindow.add(cat3);
  216.        cat3.reshape(insets().left + 172,insets().top + 366,138,22);
  217.        newwindow.add(cat4);
  218.        cat4.reshape(insets().left + 172,insets().top + 394,138,22);
  219.        newwindow.add(cat5);
  220.        cat5.reshape(insets().left + 172,insets().top + 420,138,22);
  221.     }
  222.  
  223.  
  224.  
  225.     public void clickedViewExpenseReport(String empID) {
  226.        if (flag != 0) {
  227.         remove(oldwindow);
  228.         oldbutton.setFont(new Font("Helvetica",Font.BOLD,10));
  229.        }
  230.  
  231. //       emplist.hide();
  232.        Panel newwindow = new expenseView(this, empID);
  233.        add(newwindow);
  234.        Button newbutton = viewExpenseReport;
  235.        newbutton.setFont(new Font("Helvetica",Font.BOLD,12));
  236.        list1.setFont(new Font("Courier",Font.PLAIN,8));
  237.        newwindow.add(list1);
  238.        list1.reshape(insets().left + 48,insets().top + 353,681,75);
  239.        oldwindow = newwindow;
  240.        oldbutton = newbutton;
  241.        flag = 1;
  242.     }
  243.     public void clickedEmployeeInfo() {
  244.        if (flag != 0) {
  245.             remove(oldwindow);
  246.             oldbutton.setFont(new Font("Helvetica",Font.BOLD,10));
  247.        }
  248.  
  249.        emplist.hide();
  250.        Panel newwindow = new employeeEntry(this);
  251.        add(newwindow);
  252.        Button newbutton = employeeInfo;
  253.        newbutton.setFont(new Font("Helvetica",Font.BOLD,12));
  254.        oldwindow = newwindow;
  255.        oldbutton = newbutton;
  256.        flag = 1;
  257.     }
  258.     public void clickedExpenseCategories() {
  259.        if (flag != 0) {
  260.             remove(oldwindow);
  261.             oldbutton.setFont(new Font("Helvetica",Font.BOLD,10));
  262.        }
  263.  
  264.        emplist.hide();
  265.        Panel newwindow = new categoryEntry(this);
  266.        add(newwindow);
  267.        Button newbutton = expenseCategories;
  268.        newbutton.setFont(new Font("Helvetica",Font.BOLD,12));
  269.        oldwindow = newwindow;
  270.        oldbutton = newbutton;
  271.        flag = 1;
  272.     }
  273.  
  274.      public void clickedFind () {
  275.  
  276.        add(emplist);
  277.        emplist.reshape(insets().left + 50,insets().top + 50,300,200);
  278.  
  279.        getEmployees2(emplist);
  280.     }
  281.  
  282.  
  283.     public void getEmployees (Panel newwindow, Choice employeename) {
  284.         Statement s2;
  285.         ResultSet rs2;
  286.         String empName;
  287.         employeename.addItem("<null>");
  288.  
  289.         /*****************   Query the Employees Table   *************************************************/
  290.         try
  291.         {
  292.             s2 = (Statement)connection.createStatement();
  293.             rs2 = (ResultSet)s2.executeQuery("select LastName, FirstName from Employees");
  294.             while (rs2.next()) {
  295.                 String lname = rs2.getString(1);
  296.                 String fname = rs2.getString(2);
  297.                 employeename.addItem(fname + " " + lname);
  298.             }
  299.  
  300.             s2.close();
  301.         }
  302.         catch (SQLException e)
  303.         {
  304.             System.out.println(e.getMessage());
  305.         }
  306.     }
  307.  
  308.     public boolean getCategories(Choice cat1, Choice cat2, Choice cat3, Choice cat4, Choice cat5) {
  309.         Statement  s3;
  310.         ResultSet rs3;
  311.  
  312.         /*********************   Query the Expense Category Table   ***********************************/
  313.         try {
  314.             s3 = (Statement)connection.createStatement();
  315.             rs3 = (ResultSet)s3.executeQuery("select ExpenseCategory from Expense_Categories");
  316.             String catName = "<null>";
  317.             cat1.addItem(catName);
  318.             cat2.addItem(catName);
  319.             cat3.addItem(catName);
  320.             cat4.addItem(catName);
  321.             cat5.addItem(catName);
  322.             while (rs3.next()) {
  323.                 catName = rs3.getString(1);
  324.                 int len = catName.length();
  325.                 if (len < 23) {
  326.                     for (int i = 0; i < (23-len); i++) {
  327.                         catName = catName + " ";
  328.                     }
  329.                 }
  330.                 cat1.addItem(catName);
  331.                 cat2.addItem(catName);
  332.                 cat3.addItem(catName);
  333.                 cat4.addItem(catName);
  334.                 cat5.addItem(catName);
  335.             }
  336.  
  337.             s3.close();
  338.             return true;
  339.         }
  340.         catch (SQLException e)
  341.         {
  342.             String errmsg = (e.getMessage());
  343.             System.out.println(errmsg);
  344.             return false;
  345.         }
  346.         /************************************************************************************************/
  347.     }
  348.  
  349.     public void getEmployees2(List emplist) {
  350.         Statement s2;
  351.         ResultSet rs2;
  352.         String empInfo;
  353.  
  354.         try
  355.         {
  356.             s2 = (Statement)connection.createStatement();
  357.             rs2 = (ResultSet)s2.executeQuery("select EmployeeID, FirstName, LastName from Employees");
  358.             while (rs2.next()) {
  359.                 empInfo  = rs2.getString(1) + "     " + rs2.getString(2) + "          " + rs2.getString(3);
  360.                 emplist.addItem(empInfo);
  361.             }
  362.             s2.close();
  363.         }
  364.         catch (SQLException e)
  365.         {
  366.             System.out.println(e.getMessage());
  367.             return;
  368.         }
  369.     }
  370.  
  371.      public String selectedEmployee(List emplist) {
  372.  
  373.         String empName = emplist.getSelectedItem();
  374.         int space = empName.indexOf(" ");
  375.         String empID = empName.substring(0, space);
  376.  
  377.         return empID;
  378.     }
  379.  
  380.     //****  get expense info for the selected employee from database  ********
  381.  
  382.     public void getExpenseInfo(String empID) {
  383.         Statement  s, s2;
  384.         ResultSet rs, rs2;
  385.         float count = 0;
  386.         String Paid = null;
  387.  
  388.         /****************   Query the Expense Reports Table   *********************************************/
  389.         try
  390.         {
  391.             s = (Statement)connection.createStatement();
  392.             rs = (ResultSet)s.executeQuery("select ExpenseRptName, ExpenseReportID, DateSubmitted, AdvanceAmount, Paid from Expense_Reports where EmployeeID = '" + empID + "'");
  393.             System.out.println("EmployeeID = '" + empID + "'");
  394.             boolean stuff = rs.next();
  395.             String rptID = rs.getString(2);
  396.             int j = 0;
  397.             while (stuff && j < 10) {
  398.                 System.out.println(stuff);
  399.                 String rptname = rs.getString(1);
  400.                 String rptdate = rs.getString(3);
  401.                 int space = rptdate.indexOf(" ");
  402.                 String Rptdate = rptdate.substring(0, space);
  403.  
  404.                 int paid = rs.getInt(5);
  405.  
  406.                 float rptadv = rs.getFloat(4);
  407.                 float due = 0;
  408.  
  409.                 Float RPTADV = new Float(rptadv);
  410.                 String Rptadv = RPTADV.toString();
  411.  
  412.                 String listItems = "";
  413.             /***********************   Query the Expense Details Table   ***********************************/
  414.                 s2 = (Statement)connection.createStatement();
  415.                 rs2 = (ResultSet)s2.executeQuery("select ExpenseItemAmount from Expense_Details where ExpenseReportID = '" + rptID + "'");
  416.                 System.out.println("select ExpenseItemAmount from Expense_Details where ExpenseReportID = '" + rptID + "'");
  417.                 boolean stuff2 = rs2.next ();
  418.                 int i = 0;
  419.                 while (stuff2 && i < 10) {
  420.                     String f = rs2.getString(1);
  421.                     count += (Float.valueOf(f)).intValue();
  422.                     stuff2 = rs2.next();
  423.                     f = rs2.getString(1);
  424.                     if (f == null || f == "")
  425.                         stuff2 = false;
  426.                     i+=1;
  427.                 }
  428.                 if (i==10)
  429.                     System.out.println("little while is over stuffed");
  430.  
  431.             /***********************************************************************************************/
  432.                 if (paid == 1) Paid = "yes";
  433.                 else  Paid = "no";
  434.  
  435.                 due = count - rptadv;
  436.                 Float DUE = new Float(due);
  437.                 String Due = DUE.toString();
  438.                 Float COUNT = new Float(count);
  439.                 String Count = COUNT.toString();
  440.  
  441.                 listItems += padStrings(rptname, 20);
  442.                 listItems += padStrings(Rptdate, 15);
  443.                 listItems += padStrings(Rptadv, 15);
  444.                 listItems += padStrings(Count, 15);
  445.                 listItems += padStrings(Due, 12);
  446.                 listItems += Paid;
  447.  
  448.                 list1.addItem(listItems);
  449.  
  450.                 s2.close();
  451.                 stuff = rs.next();
  452.                 rptID = rs.getString(2);
  453.                 //if (rptID.equals(null) || rptID.equals(""))
  454.                 if (rptID==null || rptID== "")
  455.                     stuff = false;
  456.                 j+=1;
  457.             }
  458.             if (j==10)
  459.                     System.out.println(" big while is over stuffed");
  460.  
  461.             s.close();
  462.         }
  463.         catch (SQLException e)
  464.         {
  465.             System.out.println(e.getMessage());            return;
  466.         }
  467.         /**************************************************************************************************/
  468.     }
  469.  
  470. //****  pad strings to format output  **********
  471.  
  472.     public String padStrings(String theString, int reqSize) {
  473.         int len = theString.length();
  474.         int count = 0;
  475.  
  476.         if (len < reqSize) {
  477.             count = reqSize - len;
  478.             for (int i = 0; i < count; i++) {
  479.                 theString += " ";
  480.             }
  481.         }
  482.         else {
  483.             theString = theString.substring(0, reqSize-3);
  484.             theString += "   ";
  485.         }
  486.         return theString;
  487.     }
  488. }
  489.