📄 basedatasource.java
字号:
return value.toString();
}
return "";
}
/**
* 取得数据源当前记录指定字段的值,
* @param fieldName 字段名称
* @param applyListener <br>
* true 启用字段取值事件监听器; <br>
* false 不启用字段取值事件监听器。
* @return 非空:返回字段值;
* <br>null:字段或字段值不存在。
*/
public Object getValue(String fieldName, boolean applyListener) {
if(index < recordList.size() && recordList.size() > 0){
Map curRecord = (Map)recordList.get(index);
if(null == curRecord) return null;
Object originalValue = curRecord.get(fieldName);
Object retValue = getFieldListenerValue(fieldName, originalValue);
if((null == originalValue) || (retValue != null)){
//没取到则直接返回FieldListener中的值
//如果FieldListener中有值,则优先返回该值。
return retValue;
}else{
//FieldListener没有返回值,则直接返回Map中取得的值。
return originalValue;
}
}
return null;
}
/* (non-Javadoc)
* @see excel.report.datasource.IDataSource#getValue(java.lang.String)
*/
public Object getValue(String fieldName) {
return getValue(fieldName, true);
}
/**
* 取得当前记录的map, 调用该函数数据源会返回一个封装了当前记录的map对象。
* @return 成功:返回当前封装了当前记录集的map对象。 <br>
* 失败:返回空(当前数据源为空或数据源游标处于记录集合的末尾)
*/
public Map getCurRecord(){
if(index < recordList.size() && recordList.size() > 0){
return (Map)recordList.get(index);
}
return null;
}
/**
* 取得字段取值监听器返回的字段值。
* @param fieldName 监听的字段名称
* @param value 字段原始值
* @return 返回监听函数返回的值
*/
private Object getFieldListenerValue(String fieldName, Object value){
if(null == fieldListener){
return null;
}
String[] fields = fieldListener.getFields();
Object retValue = null;
if(null == fields){
retValue = fieldListener.getValue(this, fieldName, value);
}else{
for(int i=0; i<fields.length; i++){
if(fields[i].equalsIgnoreCase(fieldName)){
retValue = fieldListener.getValue(this, fieldName, value);
break;
}
}
}
return retValue;
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#size()
*/
public int size(){
return recordList == null ? 0 : recordList.size();
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#getParams()
*/
public Map getParams(){
return params;
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#getFieldType(java.lang.String)
*/
public String getFieldType(String fieldName){
return (String)config.getFields().get(fieldName);
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSourceListener#setQueryDataListener(excel.report.IQueryDataListener)
*/
public boolean setQueryDataListener(IQueryDataListener listener){
if(null != listener){
this.queryListener = listener;
return true;
}
return false;
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSourceListener#setFieldListener(excel.report.datasource.IFieldListener)
*/
public boolean setFieldListener(IFieldListener listener){
if(null != listener){
this.fieldListener = listener;
return true;
}
return false;
}
/*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString(){
return this.getClass().getName();
}
/**
* 初始化数据源记录集。调用该函数会丢掉数据源中原有的数据集。
* @param capacity
*/
public void initializeDataSourceCapacity(int capacity){
if(null == recordList){
recordList = new ArrayList(capacity);
}else{
recordList.clear();
((ArrayList)recordList).ensureCapacity(capacity);
}
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#getType()
*/
public String getType(){
return "";
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#initialize()
*/
public boolean initialize() throws Exception{
return true;
}
/*
* (non-Javadoc)
* @see excel.report.datasource.IDataSource#destroy()
*/
public void destroy()throws Exception{
;
}
/**
* 添加字段数据.向当前记录中添加一个字段数据。
* @param field 字段名称。
* @param value 字段数据值
* @return true 数据添加成功; false 数据添加失败。
*/
public boolean addField(String field, Object value){
if(null != field && null != value){
if(null == tempRecord){
tempRecord = new HashMap();
}
tempRecord.put(field, value);
return true;
}
return false;
}
/**
* 修改数据源对象中当前记录的指定字段值。如果传入的字段不存在函数返回false。
* 否则函数会将数据源对象当前记录集的字段值修改为value传入的值。
* @param fieldName 要修改值的字段名称
* @param value 字段的新的值。
* @return true:修改成功 false 修改失败
*/
public boolean setFieldValue(String fieldName, Object value){
if(null == fieldName || "".equals(fieldName) || null == value){
return false;
}
if(index < recordList.size() && recordList.size() > 0){
Map curRecord = (Map)recordList.get(index);
Object fieldValue = curRecord.get(fieldName);
if(null == fieldValue){
return false;
}
curRecord.put(fieldName, value);
return true;
}
return false;
}
/**
* 在数据源中插入一条新记录.调用该操作后,会将先前插入的所有字段值作为一条记录插入到数据源中。
* @return true 记录添加成功; false 记录添加失败。
*/
public boolean addRecord(){
if(null != tempRecord){
this.addRecord(tempRecord);
tempRecord = new HashMap();
return true;
}
return false;
}
private Map tempRecord = null;
/**
* 加入一条新的记录到数据源
* @param map 记录集合Map
* @return 返回是否成功。true 成功, false 失败。
*/
public boolean addRecord(Map map){
if(null == this.recordList){
recordList = new ArrayList();
}
recordList.add(map);
return true;
}
//保存当前记录游标.
private int index = 0;
//保存数据源配置文件
private DataSourceConfig config = null;
//保存数据源参数
private Map params = null;
//保存数据查询监听器
private IQueryDataListener queryListener = null;
//保存字段监视对象。
private IFieldListener fieldListener = null;
//保存记录数据列表.
protected List recordList = null;
//保存数据源参数初始化配子信息
private Map paramsInit = null;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -