package api;
import java.awt.Color;
import java.util.ArrayList;
import com.fr.base.Formula;
import com.fr.base.IconManager;
import com.fr.base.Margin;
import com.fr.base.PaperSize;
import com.fr.base.Parameter;
import com.fr.base.background.ColorBackground;
import com.fr.base.background.TextureBackground;
import com.fr.base.headerfooter.DateHFElement;
import com.fr.base.headerfooter.FormulaHFElement;
import com.fr.base.headerfooter.HFElement;
import com.fr.base.headerfooter.ImageHFElement;
import com.fr.base.headerfooter.NewLineHFElement;
import com.fr.base.headerfooter.NumberOfPageHFElement;
import com.fr.base.headerfooter.PageNumberHFElement;
import com.fr.base.headerfooter.TextHFElement;
import com.fr.base.headerfooter.TimeHFElement;
import com.fr.base.iofile.attr.WatermarkAttr;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.base.print.NativePrintAttr;
import com.fr.base.print.NativePrintAttr.PageType;
import com.fr.base.print.NoClientPrintAttr;
import com.fr.base.print.PrintSettingsAttrMark;
import com.fr.data.ClassSubmitJob;
import com.fr.data.ClassVerifyJob;
import com.fr.data.VerifyItem;
import com.fr.data.core.db.dml.Table;
import com.fr.form.ui.CustomToolBarButton;
import com.fr.form.ui.TextArea;
import com.fr.form.ui.ToolBar;
import com.fr.form.ui.WebContentUtils;
import com.fr.general.FRFont;
import com.fr.io.TemplateWorkBookIO;
import com.fr.io.attr.ExcelExportAttr;
import com.fr.io.attr.PDFExportAttr;
import com.fr.io.attr.ReportExportAttr;
import com.fr.io.attr.WordExportAttr;
import com.fr.js.CustomActionJavaScript;
import com.fr.js.EmailJavaScript;
import com.fr.js.JavaScriptImpl;
import com.fr.main.impl.WorkBook;
import com.fr.main.parameter.ReportParameterAttr;
import com.fr.page.stable.PaperSetting;
import com.fr.page.stable.ReportPageAttr;
import com.fr.privilege.finegrain.CellPrivilegeControl;
import com.fr.privilege.finegrain.WidgetPrivilegeControl;
import com.fr.privilege.finegrain.WorkSheetPrivilegeControl;
import com.fr.report.cell.DefaultTemplateCellElement;
import com.fr.report.core.ReportHF;
import com.fr.report.fit.FitAttrState;
import com.fr.report.fit.ReportFitAttr;
import com.fr.report.mobile.ElementCaseMobileAttr;
import com.fr.report.stable.LayerReportAttr;
import com.fr.report.stable.ReportConstants;
import com.fr.report.stable.ReportSettings;
import com.fr.report.stable.WorkSheetAttr;
import com.fr.report.web.Location;
import com.fr.report.web.Printer;
import com.fr.report.web.ToolBarManager;
import com.fr.report.web.WebContent;
import com.fr.report.web.WebPage;
import com.fr.report.web.WebView;
import com.fr.report.web.WebWrite;
import com.fr.report.web.button.Email;
import com.fr.report.web.button.ExcelO;
import com.fr.report.web.button.ExcelP;
import com.fr.report.web.button.ExcelS;
import com.fr.report.web.button.Export;
import com.fr.report.web.button.PDF;
import com.fr.report.web.button.PageSetup;
import com.fr.report.web.button.Print;
import com.fr.report.web.button.PrintPreview;
import com.fr.report.web.button.Scale;
import com.fr.report.web.button.Word;
import com.fr.report.web.button.form.DefaultListener;
import com.fr.report.web.button.page.First;
import com.fr.report.web.button.page.Last;
import com.fr.report.web.button.page.Next;
import com.fr.report.web.button.page.PageNavi;
import com.fr.report.web.button.page.Previous;
import com.fr.report.web.button.write.AppendColumnRow;
import com.fr.report.web.button.write.ClearStashedButton;
import com.fr.report.web.button.write.CustomizeImportExcelData;
import com.fr.report.web.button.write.DeleteColumnRow;
import com.fr.report.web.button.write.ExcelImport;
import com.fr.report.web.button.write.ImExcelAppend;
import com.fr.report.web.button.write.ImExcelClean;
import com.fr.report.web.button.write.ImExcelCover;
import com.fr.report.web.button.write.ImportExcelData;
import com.fr.report.web.button.write.ShowCellValue;
import com.fr.report.web.button.write.StashButton;
import com.fr.report.web.button.write.Submit;
import com.fr.report.web.button.write.Verify;
import com.fr.report.worksheet.WorkSheet;
import com.fr.report.write.BuiltInSQLSubmiter;
import com.fr.report.write.ReportWriteAttr;
import com.fr.report.write.ValueVerifier;
import com.fr.report.write.WClassSubmiter;
import com.fr.report.write.WClassVerifier;
import com.fr.stable.ColumnRow;
import com.fr.stable.Constants;
import com.fr.stable.ListMap;
import com.fr.stable.unit.MM;
import com.fr.third.com.lowagie.text.Font;
import com.fr.web.attr.ReportWebAttr;
import com.fr.write.config.ColumnConfig;
import com.fr.write.config.IntelliDMLConfig;
/**
* 普通报表模板
*
* @author Administrator
*/
public class CommonReportlet {
public static void main(String[] args) {
try {
ServerConnector.remote();
WorkBook workbook = new WorkBook();
workbook.setPreviewType(WorkBook.DEFAULT_PREVIEW_TYPE);
WorkSheet sheet = new WorkSheet();
web(workbook);
exportSetting(workbook);
templateParameter(workbook);
fitAttribute(workbook);
mobileAttribute(workbook);
printAttribute(workbook);
watermark(workbook);
paperSetting(sheet);
header(sheet);
footer(sheet);
background(sheet);
reportWrite(sheet);
sheetAttr(sheet);
layer(sheet);
repeatFreeze(sheet);
privilege(workbook, sheet);
workbook.addReport("sheet", sheet);
TemplateWorkBookIO.writeTemplateWorkBook(workbook, "模板设置.cpt");
} catch (Exception ex) {
ex.printStackTrace();
}
ServerConnector.disconnect();
}
/**
* 模板WEB属性
*
* @param workbook
*/
private static void web(WorkBook workbook) {
ReportWebAttr web = new ReportWebAttr();
/*
* 基本
*/
// 标题
web.setTitle("=now()");
// 报表缓存有效时间
web.setCacheValidateTime(3);
/*
* 打印机(服务器)
*/
Printer p = new Printer();
p.setPrinters(new String[] { "Microsoft XPS Document Writer" });
web.setPrinter(p);
/*
* 分页预览设置
*/
WebPage page = new WebPage();
// 报表显示位置
page.setViewAtCenter(true);
// 页面
page.setShowAsImage(false);
page.setAutoScaleWhenEmbeddedInIframe(false);
page.setTDHeavy(false);
// 顶部工具栏
ToolBarManager topToolbar = ToolBarManager.createDefaultToolBar();
topToolbar.setToolBarLocation(Location.createTopEmbedLocation());
ToolBar toolbar = topToolbar.getToolBar();
toolbar.clearWidgets();
// 首页
toolbar.addWidget(new First());
// 上一页
toolbar.addWidget(new Previous());
// 当前页/总页数
toolbar.addWidget(new PageNavi());
// 下一页
toolbar.addWidget(new Next());
// 末页
toolbar.addWidget(new Last());
// 缩放
toolbar.addWidget(new Scale());
// 邮件
Email email = new Email();
email.setCustomConsignee(false);
email.setConsigneeByDepartment(true);
email.setConsigneeByRole(true);
toolbar.addWidget(email);
// 导出
Export export = new Export();
export.setPdfAvailable(false);
export.setExcelPAvailable(true);
export.setExcelOAvailable(false);
export.setExcelSAvailable(true);
export.setWordAvailable(false);
export.setImageAvailable(false);
toolbar.addWidget(export);
// PDF
toolbar.addWidget(new PDF());
// Excel(分页导出)
toolbar.addWidget(new ExcelP());
// Excel(原样导出)
toolbar.addWidget(new ExcelO());
// 分页分Sheet导出
toolbar.addWidget(new ExcelS());
// Word格式
toolbar.addWidget(new Word());
// 打印
toolbar.addWidget(new Print());
// 自定义按钮
CustomToolBarButton b = new CustomToolBarButton("custom_button", IconManager.EDIT.getName());
b.setShowIcon(true);
b.setShowText(true);
b.setText("自定义按钮");
b.setIconName(IconManager.EDIT.getName());
// JavaScript脚本
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
b.setJSImpl(j);
toolbar.addWidget(b);
// 底部工具栏
ToolBarManager bottomToolbar = ToolBarManager.createDefaultToolBar();
bottomToolbar.setToolBarLocation(Location.createBottomEmbedLocation());
bottomToolbar.setToolBar(toolbar);
page.setToolBarManagers(new ToolBarManager[] { topToolbar, bottomToolbar });
// 事件设置 WebContentUtils/WebContent/WebWrite
DefaultListener l = new DefaultListener(WebContentUtils.EVENT_AFTERLOAD, j);
// 背景设置
toolbar.setDefault(false);
toolbar.setBackground(ColorBackground.getInstance(Color.GREEN));
page.addListener(l);
web.setWebPage(page);
/*
* 填报页面设置
*/
WebWrite write = new WebWrite();
// sheet标签页显示位置
write.setSheetPosition(Constants.TOP);
// 报表显示位置
write.setViewAtLeft(false);
// 填报当前行背景
write.setEditRowColor(true);
write.setSelectedColor(Color.red);
// 未提交离开提示
write.setUnloadCheck(false);
// 直接显示控件
write.setShowWidgets(true);
// 自动暂存
write.setAutoStash(true);
// 顶部工具栏
topToolbar = ToolBarManager.createDefaultWriteToolBar();
topToolbar.setToolBarLocation(Location.createTopEmbedLocation());
toolbar = new ToolBar();
// 提交
Submit submit = new Submit();
submit.setVerify(true);
submit.setFailVerifySubmit(true);
submit.setOnlySubmitSelect(true);
toolbar.addWidget(submit);
// 数据校验
toolbar.addWidget(new Verify());
// 导入[Excel]
toolbar.addWidget(new ImportExcelData());
// 显示单元格值
toolbar.addWidget(new ShowCellValue());
// 插入记录
AppendColumnRow append = new AppendColumnRow();
append.setCount(2);
toolbar.addWidget(append);
// 删除记录
toolbar.addWidget(new DeleteColumnRow());
// 暂存
toolbar.addWidget(new StashButton());
// 清空
toolbar.addWidget(new ClearStashedButton());
// 自定义导入Excel行列
toolbar.addWidget(new CustomizeImportExcelData());
// 多次导入[Excel]
toolbar.addWidget(new ExcelImport());
// 覆盖导入
toolbar.addWidget(new ImExcelCover());
// 清空导入
toolbar.addWidget(new ImExcelClean());
// 增量导入
toolbar.addWidget(new ImExcelAppend());
toolbar.setDefault(true);
topToolbar.setToolBar(toolbar);
// 底部工具栏
bottomToolbar = ToolBarManager.createDefaultToolBar();
bottomToolbar.setToolBarLocation(Location.createBottomEmbedLocation());
bottomToolbar.setToolBar(toolbar);
write.setToolBarManagers(new ToolBarManager[] { topToolbar, bottomToolbar });
// 事件设置 WebContentUtils/WebContent/WebWrite
EmailJavaScript e = new EmailJavaScript();
e.setMailTo("");
e.setTitle("title");
e.setMainText("text");
l = new DefaultListener(WebContentUtils.EVENT_AFTERLOAD, e);
write.addListener(l);
web.setWebWrite(write);
/*
* 数据分析
*/
WebView view = new WebView();
// 数据分析
view.setSortFuncCheck(true);
view.setConditionFuncCheck(true);
view.setListFuncCheck(true);
// 工具栏
topToolbar = ToolBarManager.createDefaultViewToolBar();
topToolbar.setToolBarLocation(Location.createTopEmbedLocation());
toolbar = new ToolBar();
// 打印预览
toolbar.addWidget(new PrintPreview());
// 页面设置 WebContentUtils/WebContent/WebWrite
toolbar.addWidget(new PageSetup());
toolbar.addListener(new DefaultListener(WebContent.EVENT_AFTER_APPLET_PRINT,
new CustomActionJavaScript(new ClassSubmitJob("custom.MySubmitJob"))));
web.setWebView(view);
/*
* 浏览器背景
*/
web.setBackground(new TextureBackground(TextureBackground.FISH_FOSSIL_TEXTURE_PAINT));
/*
* 引用CSS
*/
web.addCSSImport("css/my.css");
/*
* 引用JavaScript
*/
web.addJSImport("js/my.js");
workbook.setReportWebAttr(web);
}
/**
* 模板导出设置
*
* @param workbook
*/
private static void exportSetting(WorkBook workbook) {
ReportExportAttr attr = new ReportExportAttr();
/*
* Excel
*/
ExcelExportAttr excelAttr = new ExcelExportAttr();
// 导出隐藏行
excelAttr.setExportHidedRow(true);
// 导出隐藏列
excelAttr.setExportHidedColumn(true);
// 需要密码
excelAttr.setPassword("excel_file_password");
// 保护密码
excelAttr.setProtectedWord("excel_protected_password");
attr.setExcelExportAttr(excelAttr);
/*
* PDF
*/
PDFExportAttr pdf = new PDFExportAttr();
// 需要密码
pdf.setPassword("pdf_file_password");
attr.setPDFExportAttr(pdf);
/*
* Word
*/
WordExportAttr word = new WordExportAttr();
// 不固定行高导出
word.setExportAsTable(true);
attr.setWordExportAttr(word);
workbook.setReportExportAttr(attr);
}
/**
* 模板参数
*
* @param workbook
*/
private static void templateParameter(WorkBook workbook) {
ReportParameterAttr attr = new ReportParameterAttr();
attr.addParameter(new Parameter("p1", "123"));
workbook.setReportParameterAttr(attr);
}
/**
* PC端自适应属性
*/
private static void fitAttribute(WorkBook workbook) {
ReportFitAttr attr = new ReportFitAttr();
attr.setFitFont(true);
attr.setFitStateInPC(FitAttrState.HORIZONTAL_FIT.getState());
workbook.setReportFitAttr(attr);
}
/**
* 移动端属性
*
* @param workbook
*/
private static void mobileAttribute(WorkBook workbook) {
ElementCaseMobileAttr attr = new ElementCaseMobileAttr();
// 模板设置
attr.setMobileCanvasSize(true);
// 自适应
attr.setHorziontalAttr(MobileFitAttrState.HORIZONTAL);
attr.setVerticalAttr(MobileFitAttrState.BIDIRECTIONAL);
// 其他
attr.setAppearRefresh(true);
attr.setAllowDoubleClickOrZoom(false);
workbook.setReportMobileAttr(attr);
}
/**
* 打印属性
*
* @param workbook
*/
private static void printAttribute(WorkBook workbook) {
PrintSettingsAttrMark print = new PrintSettingsAttrMark();
print.setValid(true);
/*
* 零客户端打印
*/
print.setPrintType(PrintSettingsAttrMark.NO_CLIENT_PRINT);
NoClientPrintAttr ncp = print.getNoClientPrintAttr();
// 打印时可设置打印边距
ncp.setSetMarginOnPrint(true);
// IE浏览器中不显示打印设置
ncp.setIeQuietPrint(true);
// 针式打印优化
ncp.setNeedlePrinterOptimize(true);
// 继承页面边距设置
ncp.setInheritPageMarginSetting(false);
ncp.setMargin(new Margin(new MM(5), new MM(5), new MM(5), new MM(5)));
/*
* 本地软件打印
*/
print.setPrintType(PrintSettingsAttrMark.NATIVE_PRINT);
NativePrintAttr np = print.getNativePrintAttr();
// 打印时需要打印设置窗口
np.setShowDialog(true);
// 打印需要设置指定sheet
np.setNeedSelectSheet(true);
// 打印机
np.setPrinterName("printer_name");
// 份数
np.setCopy(2);
// 页码
np.setPageType(PageType.ALL_PAGES);
np.setPageType(PageType.CURRENT_PAGE);
np.setPageType(PageType.SPECIFIED_PAGES);
np.setArea("1-3");
np.setPageType(PageType.ODD_PAGES);
np.setPageType(PageType.EVEN_PAGES);
// 纸张
np.setInheritPagePaperSetting(false);
np.setPaperSize(PaperSize.PAPERSIZE_A4);
np.setPaperSize(new PaperSize(new MM(100), new MM(150)));
// 布局
np.setInheritPageLayoutSetting(false);
np.setOrientation(ReportConstants.LANDSCAPE);
// 边距
np.setInheritPageMarginSetting(false);
np.setMargin(new Margin(new MM(6), new MM(6), new MM(6), new MM(6)));
// 缩放
np.setFitPaperSize(false);
np.setScalePercent(95);
workbook.addAttrMark(print);
}
/**
* 水印
*
* @param workbook
*/
private static void watermark(WorkBook workbook) {
WatermarkAttr attr = new WatermarkAttr();
// 文字
attr.setText("watermark");
// 字号
attr.setFontSize(25);
// 水印间距
attr.setHorizontalGap(200);
attr.setVerticalGap(100);
// 文字颜色
attr.setColor(Color.RED);
workbook.addAttrMark(attr);
}
/**
* 页面设置
*
* @param sheet
*/
private static void paperSetting(WorkSheet sheet) {
ReportSettings rs = new ReportSettings();
PaperSetting attr = new PaperSetting();
/*
* 页面
*/
// 方向
attr.setOrientation(ReportConstants.PORTRAIT);
// 页边距
attr.setMargin(new Margin(new MM(7), new MM(7), new MM(7), new MM(7)));
// 纸张大小
attr.setPaperSize(PaperSize.PAPERSIZE_A5.rotate());
rs.setPaperSetting(attr);
// 高度
rs.setHeaderHeight(new MM(10));
rs.setFooterHeight(new MM(10));
/*
* 其他
*/
// 分页顺序
rs.setPageOrder(Constants.LEFT_TO_RIGHT);
// 居中方式
rs.setHorizontalCenterOnPage(true);
rs.setVerticalCenterOnPage(true);
// 起始页码
rs.setFirstPageNumber(3);
// 根据单元格内容自定调整
rs.setShrinkToFitMode(ReportConstants.AUTO_SHRINK_TO_FIT_HEIGHT);
sheet.setReportSettings(rs);
}
/**
* 编辑页眉
*
* @param sheet
*/
private static void header(WorkSheet sheet) {
ReportHF h = new ReportHF();
ArrayList<HFElement> list = new ArrayList<HFElement>();
// 文本
TextHFElement text = new TextHFElement("text", FRFont.getInstance("黑体", Font.BOLD, 14));
// 公式
FormulaHFElement formula = new FormulaHFElement("now()");
// 页码
NumberOfPageHFElement np = new NumberOfPageHFElement();
// 总页数
PageNumberHFElement pn = new PageNumberHFElement();
// 日期
DateHFElement date = new DateHFElement();
// 时间
TimeHFElement time = new TimeHFElement();
// 图片
ImageHFElement image = new ImageHFElement();
// 换行符
NewLineHFElement nl = new NewLineHFElement();
list.add(text);
list.add(formula);
list.add(np);
list.add(pn);
list.add(date);
list.add(time);
list.add(image);
list.add(nl);
// 背景
h.setBackground(ColorBackground.getInstance(Color.YELLOW));
// 打印/导出报表背景
h.setPrintBackground(false);
// 高度
sheet.getReportSettings().setHeaderHeight(new MM(10));
// 左
h.setLeftList(list);
// 中
h.setCenterList(list);
// 右
h.setRightList(list);
// 默认页
sheet.setHeader(ReportConstants.REPORTPAGE_DEFAULT, h);
// 首页
sheet.setHeader(ReportConstants.REPORTPAGE_FIRST, h);
// 最后一页
sheet.setHeader(ReportConstants.REPORTPAGE_LAST, h);
// 奇数页
sheet.setHeader(ReportConstants.REPORTPAGE_ODD, h);
// 偶数页
sheet.setHeader(ReportConstants.REPORTPAGE_EVEN, h);
}
/**
* 编辑页脚
*
* @param sheet
*/
private static void footer(WorkSheet sheet) {
ReportHF f = new ReportHF();
ArrayList<HFElement> list = new ArrayList<HFElement>();
// 文本
TextHFElement text = new TextHFElement("text", FRFont.getInstance("黑体", Font.BOLD, 14));
// 公式
FormulaHFElement formula = new FormulaHFElement("now()");
// 页码
NumberOfPageHFElement np = new NumberOfPageHFElement();
// 总页数
PageNumberHFElement pn = new PageNumberHFElement();
// 日期
DateHFElement date = new DateHFElement();
// 时间
TimeHFElement time = new TimeHFElement();
// 图片
ImageHFElement image = new ImageHFElement();
// 换行符
NewLineHFElement nl = new NewLineHFElement();
list.add(text);
list.add(formula);
list.add(np);
list.add(pn);
list.add(date);
list.add(time);
list.add(image);
list.add(nl);
// 背景
f.setBackground(ColorBackground.getInstance(Color.YELLOW));
// 打印/导出报表背景
f.setPrintBackground(false);
// 高度
sheet.getReportSettings().setHeaderHeight(new MM(10));
// 左
f.setLeftList(list);
// 中
f.setCenterList(list);
// 右
f.setRightList(list);
// 默认页
sheet.setFooter(ReportConstants.REPORTPAGE_DEFAULT, f);
// 首页
sheet.setFooter(ReportConstants.REPORTPAGE_FIRST, f);
// 最后一页
sheet.setFooter(ReportConstants.REPORTPAGE_LAST, f);
// 奇数页
sheet.setFooter(ReportConstants.REPORTPAGE_ODD, f);
// 偶数页
sheet.setFooter(ReportConstants.REPORTPAGE_EVEN, f);
}
/**
* 纸张背景
*
* @param sheet
*/
private static void background(WorkSheet sheet) {
ReportSettings rs = ((ReportSettings) sheet.getReportSettings());
// 导出报表背景
rs.setExportBackground(true);
// 打印报表背景
rs.setPrintBackground(true);
// 背景
rs.setBackground(ColorBackground.getInstance(Color.BLUE));
}
/**
* 报表填报属性
*
* @param sheet
*/
private static void reportWrite(WorkSheet sheet) {
ReportWriteAttr attr = new ReportWriteAttr();
/*
* 数据校验
*/
// 内置校验
ValueVerifier vv = new ValueVerifier();
vv.addVerifyItem(new VerifyItem(new Formula("false"), "校验提示信息"));
vv.setName("数据校验");
attr.addVerifier(vv);
// 自定义校验
WClassVerifier cv = new WClassVerifier();
cv.setName("自定义校验");
cv.setClassVerifyJob(new ClassVerifyJob("custom.MyVerifyJob"));
attr.addVerifier(cv);
/*
* 提交
*/
// 内置SQL
BuiltInSQLSubmiter ss = new BuiltInSQLSubmiter();
ss.setDBName("FRDemo");
IntelliDMLConfig config = new IntelliDMLConfig();
config.setTable(new Table("销量"));
config.addColumnConfig(new ColumnConfig("销量", ColumnRow.valueOf("A1"), false));
ss.setDmlConfig(config);
attr.addSubmitVisitor("内置SQL", ss);
// 自定义提交
WClassSubmiter cs = new WClassSubmiter();
ClassSubmitJob csj = new ClassSubmitJob("custom.MySubmitJob");
ListMap<String, Object> m = new ListMap<String, Object>();
m.put("p1", "123");
csj.setPropertyMap(m);
cs.setSubmitJob(csj);
attr.addSubmitVisitor("自定义提交", cs);
sheet.addAttributeTarget(attr);
}
/**
* 报表分栏
*
* @param sheet
*/
private static void sheetAttr(WorkSheet sheet) {
WorkSheetAttr attr = new WorkSheetAttr();
// 分栏样式
attr.setDirection(Constants.TOP_TO_BOTTOM);
// 超过列分栏
attr.setMaxCount(5);
// 分栏成行
attr.setCount(3);
// 分栏数据
attr.setStartIndex(0);
attr.setOppoStartIndex(1);
attr.setEndIndex(3);
attr.setOppoEndIndex(5);
// 复制列序号
attr.setIndexsToCopy("1,2-3,5");
// 补充空白列
attr.setShowBlank(true);
sheet.setWorkSheetAttr(attr);
}
/**
* 重复与冻结
*
* @param sheet
*/
private static void repeatFreeze(WorkSheet sheet) {
ReportPageAttr attr = new ReportPageAttr();
/*
* 重复
*/
// 重复标题行
attr.setRepeatHeaderRowFrom(0);
attr.setRepeatHeaderRowTo(1);
// 重复标题列
attr.setRepeatHeaderColumnFrom(0);
attr.setRepeatHeaderColumnTo(1);
// 重复结尾行
attr.setRepeatFooterRowFrom(2);
attr.setRepeatFooterRowTo(3);
// 重复结尾列
attr.setRepeatFooterColumnFrom(2);
attr.setRepeatFooterColumnTo(3);
/*
* 冻结
*/
// 分页冻结
attr.setUsePageFrozenRow(true);
attr.setUsePageFrozenColumn(true);
// 填报冻结
sheet.getReportSettings().setWriteFrozenColumnRow(ColumnRow.valueOf("B3"));
sheet.setReportPageAttr(attr);
}
/**
* 报表引擎属性
*
* @param sheet
*/
private static void layer(WorkSheet sheet) {
LayerReportAttr attr = new LayerReportAttr();
// 使用按页运算分段执行报表
attr.setPageQuery(true);
// 每页记录数
attr.setCountPerPage(65);
sheet.setLayerReportAttr(attr);
}
/**
* 权限管理
*
* @param workbook
*/
private static void privilege(WorkBook workbook, WorkSheet sheet) {
/*
* 单元格
*/
DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, 0, "A1");
CellPrivilegeControl cc = new CellPrivilegeControl();
// 单元格可见
cc.addInvisibleRole("开发维护工程师");
// 单元格新值
cc.getNewValueMap().put("", "123");
cell.setCellPrivilegeControl(cc);
/*
* 控件
*/
TextArea w = new TextArea();
WidgetPrivilegeControl wc = new WidgetPrivilegeControl();
wc.addInvisibleRole("开发部长");
wc.addUnusableRole("开发部长");
w.setWidgetPrivilegeControl(wc);
cell.setWidget(w);
/*
* 行
*/
sheet.addRowPrivilegeControl(0, "开发部长");
/*
* 列
*/
sheet.addColumnPrivilegeControl(0, "开发部长");
/*
* sheet
*/
WorkSheetPrivilegeControl sc = new WorkSheetPrivilegeControl();
sc.addInvisibleRole("开发部长");
sheet.setWorkSheetPrivilegeControl(sc);
sheet.addCellElement(cell);
}
}
普通报表模板
最新推荐文章于 2022-08-29 17:35:23 发布