zoukankan      html  css  js  c++  java
  • KDTable公式解析提示信息设置

    KDTable扩展功能
     
    一、KDTable支持类似Excel公式的功能,当计算单元格出现错误时,如数据非法、被零除等错误信息如何进行设置?
     
    详见下文:
     
    1、定义信息提示解析类:
     
     1 public class AnlysScriptErrorReport implements IScriptErrorHandler {
     2 
     3     private String errorDiv0_DefaltValue = null;
     4 
     5     public AnlysScriptErrorReport() {
     6     }
     7 
     8     public void setDiv0Value(String defaultValue) {
     9         this.errorDiv0_DefaltValue = defaultValue;
    10     }
    11 
    12     public void handle(KDTable table, Exception exception, CellPosition cellPos, String scriptSource, int pos) {
    13         if (pos == -1 || cellPos == null) {
    14             exception.printStackTrace();
    15         } else {
    16             if (table != null) {
    17                 /*
    18                  * 设置当公式是除且是除以0时显示的默认信息: 默认是显示:#DIV0 除数为零
    19                  * 可以通过该方法设置默认要显示的值:如可以设置为0,或-
    20                  */
    21                 String errorMessage = exception.getMessage();
    22                 if (exception instanceof SyntaxErrorException) {
    23                     SyntaxErrorException e = (SyntaxErrorException) exception;
    24                     long errorCode = e.getErrorCode();
    25                     if (errorCode == ExprError.Div0) {// 如果是除数为零的Exception,错误信息特别处理
    26                         errorMessage = "";
    27                     } else if (errorCode == ExprError.BadValue) {
    28                         errorMessage = "";
    29                     }
    30                 }
    31                 table.getRow(cellPos.row).getCell(cellPos.col).getKDTCell().setValue(errorMessage);
    32             }
    33         }
    34     }
    35 }
    2、应用信息解析类:
    table.getScriptManager().setErrorHandler(new AnlysScriptErrorReport());
     
     二、单元格为0的显示格式扩展
     
    1、定义表格单元格内容显示器
     
     1 public class AnlysFilterZeroParser implements IUserCellDisplayParser {
     2 
     3     public Object parse(int rowIndex, int colIndex, ICell cell, Object value) {
     4         if(value==null) return value;
     5         String strValue=value.toString();
     6         
     7         if("0".equals(strValue) || "0.0".equals(strValue) || "0.00%".equals(strValue)) {
     8             return "";
     9         }
    10         return value;
    11     }
    12 }
     
    2、应用单元格内容显示:
    table.setUserCellDisplayParser(new AnlysFilterZeroParser());
     
  • 相关阅读:
    一个黑客与电脑白痴的聊天纪录!!!
    java 面试
    hdu 5685 Problem A
    poj 2785 4 Values whose Sum is 0(折半枚举(双向搜索))
    android开发之service详解
    android开发之Notification学习笔记
    android反编译经验谈
    viewpager+fragment学习笔记
    android开发之broadcast学习笔记 分类: android 学习笔记 2015-07-19 16:33 32人阅读 评论(0) 收藏
    android开发之调试技巧 分类: android 学习笔记 2015-07-18 21:30 140人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/masb/p/3012090.html
Copyright © 2011-2022 走看看