package database;
import java.sql.*;
import java.awt.*;
import javax.swing.*;public class develop_page
    extends JPanel {
  BorderLayout borderLayout1 = new BorderLayout();
  private int pages = 1; //总页数
  private String table = ""; //表名字
  private int nowpage = 1; //当前页数
  private int pagecols = 5; //一页显示的行数
  private String database_name; //数据库类型
  private int all_col_num; //表table的总行数
  private String sql;
  private String order;
  private String url;
  private String formname="ZuAA_Form";
  private String selectname="nowpage";
  private String field="id";//要查看的字段 要以,号分开
  private String where="";
  public develop_page() {
    try {
      jbInit();    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }  private void jbInit(      ) throws Exception {    setLayout(borderLayout1);
  }
  /**
   * 计算页数的喝总行数<br>
   * 不返回如何值
   * 但是在运行之前一定要调用
   * @throws SQLException
   */
  public void do_it_now() throws SQLException {
    database.conoracle con = new conoracle();
    sql = "select count(*) from " + table;
    ResultSet rs = con.chaxun(sql);
    while (rs.next()) {
      all_col_num = rs.getInt(1);
    }
    rs.close();
    pages = (all_col_num + pagecols - 1) / pagecols;  }  /**
   * 分页的核心
   * @return ResultSet
   */
  public ResultSet show_data() throws SQLException {
    do_it_now();//初始化页数和总行数
    ResultSet reason = null;
    sql = "select * from(select "+field+",rownum num from (select " + table +
        ".* from " + table +where+ " order by id desc)";
    sql = sql + " order by id  desc)where num<=" +nowpage*pagecols+" and num>"+(nowpage-1)*pagecols;
    database.conoracle con = new conoracle();
    ResultSet rs = con.chaxun(this.sql);
    reason = rs;
    return reason;
  }
  /**
   * 要引用自动跳转的那段脚本
   * 实现跳转菜单
   * @return String
   */
  public String showpage()
  {
    String reason="";
    reason=reason+"<form name='"+formname+"'>";
    reason=reason+"<select name='ZuAA_Menu' onChange=MM_jumpMenu('parent',this,0)>";
    for(int i=1;i<=pages;i++)
    {
      if(i==nowpage)
        reason=reason+"<option selected='selected' value='"+url+"?nowpage="+i+"'>第"+i+"页</option>";
      else
        reason=reason+"<option value='"+url+"?nowpage="+i+"'>第"+i+"页</option>";
    }
    reason=reason+"</select></form>";
    return reason;
  }
  /**
   * 显示分页的next和previous部分
   * @return String
   */
  public String previous_next_page()
  {
    String reason="";
    reason=reason+"<table> <tr> ";
    reason=reason+"<td valign='middle'>"+add_url("首页",1)+"</td>";
    if(nowpage==1)
      reason=reason+"<td valign='middle'>上一页</td>";
    else
      reason=reason+"<td valign='middle'>"+add_url("上一页",nowpage-1)+"</td>";
    reason=reason+"<td valign='middle'>"+"第"+nowpage+"页"+"</td>";
    if(nowpage==pages)
      reason=reason+"<td valign='middle'>下一页</td>";
    else
      reason=reason+"<td valign='middle'>"+add_url("下一页",nowpage+1)+"</td>";
    reason=reason+"<td valign='middle'>"+add_url("最后一页",pages)+"</td>";
    reason=reason+"<td valign='middle'>"+"共"+pages+"页"+"</td>";
    reason=reason+"</tr></table>";
    return reason;
  }
  /**
   * 添加连接内容
   * 连接只能提供nowpage为参数的连接
   * 分页用
   * @param content String
   * @param parm String
   * @param data String
   * @return String
   */
  public String add_url(String content,int data)
  {
    String reason="";
    reason=reason+"<a href='"+url+"?nowpage="+data+"'>"+content+"</a>";
    return reason;
  }
  public void setPages(int pages) {
    this.pages = pages;
  }  public void setTable(String table) {
    this.table = table;
  }  public void setNowpage(int nowpage) {
    this.nowpage = nowpage;
  }  public void setPagecols(int pagecols) {
    this.pagecols = pagecols;
  }  public void setDatabase_name(String database_name) {
    this.database_name = database_name;
  }  public void setAll_col_num(int all_col_num) {
    this.all_col_num = all_col_num;
  }  public void setSql(String sql) {
    this.sql = sql;
  }  public void setOrder(String order) {
    this.order = order;
  }  public void setUrl(String url) {
    this.url = url;
  }  public void setFormname(String formname) {
    this.formname = formname;
  }  public void setSelectname(String selectname) {
    this.selectname = selectname;
  }  public void setField(String field) {
    this.field = field;
  }  public int getPages() {
    return this.pages;
  }  public String getTable() {
    return this.table;
  }  public int getNowpage() {
    return this.nowpage;
  }  public int getPagecols() {
    return this.pagecols;
  }  public String getDatabase_name() {
    return this.database_name;
  }  public int getAll_col_num() {
    return this.all_col_num;
  }  public String getSql() {
    return sql;
  }  public String getOrder() {
    return order;
  }  public String getUrl() {
    return url;
  }  public String getFormname() {
    return formname;
  }  public String getSelectname() {
    return selectname;
  }  public String getField() {
    return field;
  }
}