package com.product.server.report.service; import com.product.core.entity.DataTableEntity; /** * * @author Administrator * exmple * * */ public class Report { /** * 报表名字,最前面的标题 */ private String reportName; /** * 报表数据 */ private DataTableEntity dt; //分组字段必须排在前面,并按分组的字段进行排序,如: select a,b,c,* from table order by a,b,c /** * 显示标题,支持多级标题 */ private String title[][];// /** * 标题合并列数,一一对应标题,被合并的列,列数为0 * */ private int colspan[][];// /** * 标题合并行数,一一对应标题,被合并的行,行数为0 */ private int rowspan[][];// /** * 取值字段 */ private String field[];//分组字段必须排在前面 a,b,c, /** * 分组的字段,要分组字段必须排在最前面 */ private boolean groupField[];//字段field[]一一对应,不是分组字段,则为false,是则为true /** * 记录最后分组字段的下标 */ private int maxGroupFieldIndex=-1; /** * 统计的字段 */ private boolean totalField[];//字段field[]一一对应,,不是合计字段,则为false,是则为true /** * 是否显示统计行 */ private boolean isShowTotalRow=false; /** * 是否最后总计 */ private boolean isTotal=false; /** * 列宽度,百分比,不能超过或小于100 */ private int colWidth[];//字段field[]一一对应,只需配最后一行的每列宽度,不能小于等于0,合起来的总数=100 /** * 报表整体固定宽度,不设置默认为100% */ private int width; public boolean isShowTotalRow() { return isShowTotalRow; } public void setShowTotalRow(boolean isShowTotalRow) { this.isShowTotalRow = isShowTotalRow; } private String aligh[]; public String[] getAligh() { return aligh; } public void setAligh(String[] aligh) { this.aligh = aligh; } private String url[];//与字段field[]一一对应,穿透查询,字段对应的链接地址,可以有动态变量取前面字段值,格式:#{字段名},如 "3,~SG00~,1",需要在jsp页面中添加js方法 // function show(searchKey){//来处理 // var data=searchKey.split(','); // if(data[0]==1){ // showDept(data[1]); // }else if(data[0]==2){ // showPM(data[1]) // }else if(data[0]==3){ // showProject(data[1],data[2]); // } // } // //------------------------------------------ /* * 统计字段的类型,如合计、平均值 暂不支持 */ private String totalType[];//字段field[]一一对应,不是合计字段,则为null,是则可以为SUM、ARG public String getTotalRowColor() { return totalRowColor; } public void setTotalRowColor(String totalRowColor) { this.totalRowColor = totalRowColor; } private String titleBackColor;//标题 背景 private String bodyBackColor;//表格 背景 private String totalRowColor; private String format[];//数据格式:字符串为null ,数字(小数):##.##,日期: yyyy-dd-mm,百分比: ##.##%,参照数据: private boolean page;//是否要分页 private int pageSize;//每页多少条 private int currentPage;//当前页 private int totalPage;//总页数 private int totalRow;//总条数 public int getTotalRow() { return totalRow; } public void setTotalRow(int totalRow) { this.totalRow = totalRow; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public boolean isPage() { return page; } public void setPage(boolean page) { this.page = page; } public boolean isFixHeader() { return isFixHeader; } public void setFixHeader(boolean isFixHeader) { this.isFixHeader = isFixHeader; } private String onloadMethod;//页面初始调用方法; private boolean isFixHeader; //----------------------------------------------------- public String getOnloadMethod() { return onloadMethod; } public void setOnloadMethod(String onloadMethod) { this.onloadMethod = onloadMethod; } public String getReportName() { return reportName; } public String[] getFormat() { return format; } public void setFormat(String format[]) { this.format = format; } public void setReportName(String reportName) { this.reportName = reportName; } public String getTitleBackColor() { return titleBackColor; } public void setTitleBackColor(String titleBackColor) { this.titleBackColor = titleBackColor; } public String getBodyBackColor() { return bodyBackColor; } public void setBodyBackColor(String bodyBackColor) { this.bodyBackColor = bodyBackColor; } public String[] getTotalType() { return totalType; } public void setTotalType(String[] totalType) { this.totalType = totalType; } public int[][] getRowspan() { return rowspan; } public void setRowspan(int[][] rowspan) { this.rowspan = rowspan; } public int getWidth() { return width; } public String[] getUrl() { return url; } public void setUrl(String[] url) { this.url = url; } public void setWidth(int width) { this.width = width; } public String[][] getTitle() { return title; } public int[][] getColspan() { return colspan; } public void setColspan(int[][] colspan) { this.colspan = colspan; } public void setTitle(String[][] title) { this.title = title; } public int[] getColWidth() { return colWidth; } public void setColWidth(int[] colWidth) { this.colWidth = colWidth; } public DataTableEntity getDt() { return dt; } public void setDt(DataTableEntity dt) { this.dt = dt; } public String[] getField() { return field; } public void setField(String[] field) { this.field = field; } public boolean[] getGroupField() { return groupField; } /** * 获取最大的分组字段下标 * @param groupField */ public void setGroupField(boolean[] groupField) { this.groupField = groupField; for(int i=0;i