/******************************************************************
This will not run, I had to cut out to much sensitive code
**********************************************************************/

package izyndoc;

import com.jacob.com.*;
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;

public class QuarterlyReport
{
  private static Error anError = null;
  private static Excel excelApp = null;
  private static ExcelWorkbooks excelWbks = null;
  private static ExcelWorkbook excelWbk = null;
  private static ExcelWorksheet excelWorksheet = null;
  private static ExcelRange excelRange = null;



    try
    {
      ComThread.InitSTA();

      //create an instance of Excel
      excelApp = new Excel();

      //get the workbooks collection
      excelWbks = excelApp.getWorkbooks();
      //add xls file to workbooks
      excelWbk = excelWbks.addWorkbook(filePath);
      //get active sheet
      excelWorksheet = new ExcelWorksheet(excelWbk.getActiveSheet());

      //show excel
      excelApp.setVisible(true);
      ComThread.Release();
    }
    catch (ComFailException cfe)
    {
      String[] errorDetails = {"QuarterlyReport", "QuarterlyReport"
        , Constant.EXCELOBJECTFAIL
        + "\nFilename: [" + filePath + "]"
        + "\nRow: " + rowPos
        + "\nExcel version: " + excelApp.getVersion()
        + "\n" + cfe.getMessage()};
      //"Can't get object clsid from progid" means Excel not installed,
      //also get "can't co-create object".
      anError = new Error(errorDetails, Constant.EXCELOBJECT);
      ComThread.Release();
    }
    catch (UnsatisfiedLinkError ule)
    {
      String[] errorDetails = {"QuarterlyReport", "QuarterlyReport"
        , Constant.ERRORARRAY[Constant.JACOBFAIL][1] + "\n" + ule.getMessage()};
      MsgDlg.MsgDialogType(Constant.ERRORARRAY[Constant.JACOBFAIL][0]
          , errorDetails[2], IzynStart.mainUI);
      Log.write(errorDetails, Constant.JACOBFAIL);
    }

        //add value to cell using range object
          new ExcelRange(excelWorksheet.getCellRange("A" + rowPos))
              .addValue(IzynStart.nullToEmpty(rs.getString("claimnum")));

          new ExcelRange(excelWorksheet.getCellRange("B" + rowPos))
              .addValue(IzynStart.nullToEmpty(rs.getString("lastname")));

          new ExcelRange(excelWorksheet.getCellRange("C" + rowPos))
              .addValue(IzynStart.nullToEmpty(rs.getString("branch")));

          new ExcelRange(excelWorksheet.getCellRange("D" + rowPos))
              .addValue(IzynStart.nullToEmpty(rs.getString("cmfirstname")) + " "
              + IzynStart.nullToEmpty(rs.getString("cmlastname")));

          new ExcelRange(excelWorksheet.getCellRange("E"  + rowPos))
              .addValue(ParseDate.dbToDisplayDate(rs.getString("receiveddate")));

          new ExcelRange(excelWorksheet.getCellRange("F" + rowPos))
              .addValue(IzynStart.nullToEmpty(rs.getString("formatrcvd")));

          new ExcelRange(excelWorksheet.getCellRange("G" + rowPos))
              .addValue(ParseDate.dbToDisplayDate(rs.getString("acceptdate")));

          new ExcelRange(excelWorksheet.getCellRange("H" + rowPos))
              .addValue(ParseDate.dbToDisplayDate(rs.getString("declinedate")));

            new ExcelRange(excelWorksheet.getCellRange("I" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("initinterview")));

            new ExcelRange(excelWorksheet.getCellRange("J" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("outcomeinitinterview")));

            new ExcelRange(excelWorksheet.getCellRange( "K" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("programduration")));

            new ExcelRange(excelWorksheet.getCellRange("L" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("rptplansent")));

           new ExcelRange(excelWorksheet.getCellRange("M" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("progstart")));

            new ExcelRange(excelWorksheet.getCellRange("N"  + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("progend")));

            new ExcelRange(excelWorksheet.getCellRange("O" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("progressrptsent")));

            new ExcelRange(excelWorksheet.getCellRange("P" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("noncompwpp")));

            new ExcelRange(excelWorksheet.getCellRange("Q" + rowPos))
                .addValue(ParseDate.dbToDisplayDate(rs.getString("completerptwpp")));

            new ExcelRange(excelWorksheet.getCellRange("R" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("exitwpp")));

            new ExcelRange(excelWorksheet.getCellRange("S" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("goalswpp")));

            new ExcelRange(excelWorksheet.getCellRange("T" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("barrierswpp")));

            new ExcelRange(excelWorksheet.getCellRange("U" + rowPos))
                .addValue(IzynStart.nullToEmpty(rs.getString("comment")));

          //new row for next client
          rowPos++;
        }
      }
  }
