填报表可能会遇到这样的需求,某个单元格值发生变化后,其他一些单元格值也跟着发生变化(局部刷新)。如果是简单的加减乘除运算,可以在单元格的自动计算里面实现;如果关联单元格显示的内容是从数据库中取出来的,就需要用ajax来异步取数加载了。
比如订单表,当选择产品后,产品的单价、库存自动填充,用户便可以根据这些信息填写订货量。
分析思路:
利用报表单元格的自动计算功能完成不同单元格信息的自动关联,自动计算表达式采用的是js函数,js函数中调用ajax,ajax中调用servlet查询数据库检索订单、库存量信息,返回给相应的单元格。
实现过程:
报表(如A3单元格)设置下拉数据集,用来选择产品,在B3单元格自动计算里面设置表达式“getValue("单价",A3)”(第一个参数是要查询的字段,第二个参数是关联的单元格,返回数据库中A3选择的产品对应的单价),C3单元格自动计算的表达式“getValue("库存量",A3)”,单元格D3设置为可写。
解析报表的jsp如下
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/runqianReport4.tld" prefix="report" %>
<html>
<body>
<%request.setCharacterEncoding( "GBK" );%>
<