iReport+jasperReport之scriptlet(续)

上篇iReport+jasperReport之scriptlet时遗漏了一个问题,getParameterValue、setParameterValue方法可以操作Parameter,Field/Variable该怎么set呢?
    看看 JRAbstractScriptlet.java类的这个方法:
public   void  setData(
        Map parsm,
        Map fldsm,
        Map varsm,
        JRFillGroup[] grps
        )
    
{
        parametersMap 
= parsm;
        fieldsMap 
= fldsm;
        variablesMap 
= varsm;
        groups 
= grps;
    }
        似乎有点意思,我们可以通过这个方法把我们期望的数据组装成Map然后set进去,可是要只针对个别字段怎么处理呢,调用此方法似乎不太合常理,仔细查看API却没有实际能调用的API吧!这个似乎不太合乎,仔细看看确实没有调用的,至少目前我还是没有发现,怎么办 自己写吧!
    设置Field方法:
public   void  setFieldValue(String fieldName, Object value)  throws  JRScriptletException
    
{
        JRFillField field 
= (JRFillField)this.fieldsMap.get(fieldName);
        
if (field == null)
        
{
            
throw new JRScriptletException("FieldName not found : " + fieldName);
        }

        
        field.setValue(value);
    }
    设置Variable方法:
public   void  setVariableValue(String variableName, Object value)  throws  JRScriptletException
    
{
        JRFillVariable variable 
= (JRFillVariable)this.variablesMap.get(variableName);
        
if (variable == null)
        
{
            
throw new JRScriptletException("Variable not found : " + variableName);
        }

        
        
if (value != null && !variable.getValueClass().isInstance(value) )
        
{
            
throw new JRScriptletException("Incompatible value assigned to variable " + variableName + ". Expected " + variable.getValueClassName() + ".");
        }

        
        variable.setValue(value);
    }
    OK!这样我们就可以针对报表上的每一个字段处理了,测试通过 代码就不贴了哦,写上篇的时候忘记这两个方法是我自己加的,查看API时才发现所以来了个续
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值