var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>
jutleo
欢迎走进有风的地方~~
posts - 63,  comments - 279,  trackbacks - 0
上篇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时才发现所以来了个续
posted on 2008-12-18 14:48 凌晨风 阅读(3246) 评论(8)  编辑  收藏 所属分类: iReport + JasperReport 系列

FeedBack:
# re: iReport+jasperReport之scriptlet(续)
2009-02-06 13:27 | 凌晨风
@梦想在这里起飞
抱歉!
  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)
2009-11-02 09:18 | tt
请问一下,当生成execl时,怎么合并有相同数据的列,比如这一列有两个技术部,而我想合并它,请问怎么实习呢?  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)
2009-11-18 20:31 | tgm
请问一下,用jasperreport生成execl时,怎么合并有相同数据的列,比如这一列有两个技术部,而我想合并它,请问怎么实习呢?  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)
2009-11-20 15:16 | tgm
请帮一下忙啊~~~这个问题困扰好久了~~~  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)
2009-11-21 00:45 | 凌晨风
我们以前做这样报表的时候是采用动态画单元格的形式做的,通过一个三元运算动态的生产框,麻烦是很麻烦 不过可以满足需求。如果我没有理解错的话你这种合并是那种合并分组的情况吧?这个就很简单了,看一下自带的例子中就有了。实在不好意思,最近有点忙都没有时间上来看看  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)
2010-01-18 14:53 | Kundera
Good Job!  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)[未登录]
2010-03-24 13:40 | 111
setVariableValue()应该是有的吧,getParameterValue()是没有  回复  更多评论
  
# re: iReport+jasperReport之scriptlet(续)[未登录]
2010-12-20 22:57 | lyon
为甚么我的scprit的 beforeDetailEval() 方法会执行两遍呢?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(11)

我参与的团队

随笔分类

随笔档案

文章分类

文章档案

新闻分类

新闻档案

收藏夹

围脖

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜