AppQuicker

快速搭建应用系统教程

  • 首页
  • 教程
  • 疑难解答
  • 关于AppQuicker

#15 联查分析——链接技术

信息系统的联查分析功能给对账查账工作带来了很大的便利,常见的是从分类账联查到明细账,或与你还不了解分类账和明细帐是什么东西!举例说:我们查每个客户的销售额统计,在这个列表上,点击一个客户分录,能够查询出这个客户的所有销售记录,这就是联查分析。

下面我们就来实现联查分析功能。

第一步:建立客户销售统计表和销售明细表

客户销售统计表:

新建一张可以填报的普通报表,保存为customerstat.raq ,报表结构如图:

image139

【配置_ 数据集】,新增基于contract 表的SQL检索 数据集ds1 ,包括customerid 和money 字段;建立基于customer 的SQL检索 数据集ds2 ,包括customerid 和customername 字段。

数据集tab页 ,选择数据类型8分组 ,拖动ds1 节点下的customerid 到A3 ,选择数据类型8汇 总,在下拉列表中选择求和,拖动ds1 节点下的money 到B3 。

修改A3 的表达式为:=ds1.Group(customerid,false) ,在分组前先进行排序。

选择A3 ,设置前景色为蓝色,字体带有下划线,切换到属性区域â 显示值â 表达式,输入:

if(value() == null,”零售合计“,ds2.select1(customername,customerid==value()))

表达式提示如果A3中没有编号(合同中没有录入客户编号),显示”零售合计”,如果有编号,从ds2数据集中查找出与该编号对应的客户名称作为A3显示值。

选择A3 ,属性区域â 超链接â 表达式,输入:

“javascript:show_MX(”+A3+”)”

表达式提示show_MX()函数作用是:当用户点击某行客户名称时,打开该用户的所有销售明细。函数引用把A3的值(客户编号)作为查询参数。

插入语本例也可以通过SQL语句实现汇总,上例为了练习使用技巧,采用了前端分组的方法。

销售明细表:

新建一张可以填报的普通报表,保存为customerMX.raq ,报表结构如图:

image140

【配置_参数】,新建整数类型参数customerid,

数据集tab页,拖动参数节点下@customerid到B2,选择B2,属性区域â显示格式â属性值,双击,在表达式窗口中输入:

if(value()==0,”零售合计“,customer.select1(customername,customerid==value()))

提示 如果客户编号为0值,客户名称中显示零售合计,客户编号是否为0值由链接函数中决定,算法见下文JSP代码。

【配置_宏】,增加一动态宏macro1,值表达式如下:

if(@customerid ==0,”where customerid is null “,”where customerid=”+@customerid)

【配置_数据集】,新增基于contract表的复杂SQL数据集,SQL语句如下:

SELECT * FROM contract where ${macro1}

新增基于customer表的SQL检索数据集,包含customerid和customername两个字段;新增基于product表的SQL检索数据集;新增基于employee表的SQL检索数据集,包含employeeid和employeename两个字段;

数据集tab页,数据类型选择列表,拖动contract节点下contractid到A4,数据类型选择取值,拖动orderdate到B4,empid到C4,consignmentdate到D4,banlancetype到E4,transmethod到F4,productid到G4,amount到H4,price到I4,money到J4。

选择B4,D4属性区域â显示格式â属性值,双击,在格式编辑窗口中选择日期:yyyy-MM-dd。

选择C4,属性区域â显示值â表达式,输入:

employee.select1(empname,empid==value())

选择E4,属性区域â显示格式â属性值,双击,在表达式窗口中输入:

if(value()==”1″,”现金支付“,”银行支票“)

选择F4,属性区域â显示格式â属性值,双击,在表达式窗口中输入:

if(value()==”1″,”铁路运输“,”公路运输“)

选择G4,属性区域â显示值â表达式,输入:

product.select1(productname,productid==value())

第二步:建立JSP文件

在C:\Program Files\runqianReportCenter\webapps\reportCenter 目录下,新建一个文本文档,保存为customerstat.jsp ,这里记得修改文件的扩展名, 这个JSP 作用是显示customerstat.raq 报表文件。

customerstat.jsp 内容如下:

#001 <%@ page contentType=”text/html;charset=GBK” %>

#002 <%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report”%>

#003 <html>

#004 <body leftMargin=0 top =0 rigtMargin=0 bottonMargin=0>

#005 <report:html name=”report1″ reportFileName=”basic/customerstat.raq”

#006 funcBarLocation=”"

#007 />

#008 </body>

#009 </html>

#010 <SCRIPT LANGUAGE=”JavaScript”>

#011 function show_MX(customerid)

#012 {

#013 if(customerid == null)

#014 {

#015 customerid=0;

#016 }

#017 var strurl=”customerMX.jsp?params=customerid=”+customerid;

#018 window.open(strurl,”_blank”,”Scrollbars=yes,Toolbar=no,Location=no,Direction=yes,titlebar=no,Resizeable=no,

Width=780 ,Height=500,top=”+(window.screen.height-500)/2+”,left=”+(window.screen.width-800)/2);

#019 }

#020 </SCRIPT>

插入语if语句作用:对customerid参数进行判断,如果该参数是空值(customerstat报表上客户编号是空值),那么customerid被赋值0,这里0是一个标记,在customerMX表中会以该标记为依据,整理零售合计数据。

在C:\Program Files\runqianReportCenter\webapps\reportCenter 目录下,新建一个文本文档,保存为customerMX.jsp ,这里记得修改文件的扩展名, 这个JSP 作用是显示customerMX.raq 报表文件。

CustomerMX.jsp 内容如下:

#001 <%@ page contentType=”text/html;charset=GBK” %>

#002 <%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report”%>

#003 <html>

#004 <body leftMargin=0 top =0 rigtMargin=0 bottonMargin=0>

#005 <report:html name=”report1″ reportFileName=”basic/customerMX.raq”

#006 funcBarLocation=”"

#007 params=”<%=request.getParameter(”params”)%>”

#008 />

#009 </body>

#010 </html>

第三步:发布链接节点

登录数据中心控制台,打开报表发布,在查询分析节点下新建超链接类型节点,节点名称客户销售统计表,此节点对应的超链接选择系统功能链接,在编辑框内输入:

/customerstat.jsp

提交 后,登录数据中心首页,打开用户销售统计表,检查一下报表的联查功能。

image142

教程 |2007/11/14
1 认识AppQuicker 1

Comments are closed.


  • 询问问题

  • 关于AppQuicker

    • 认识APPQUICKER
    • AppQuicker适用于哪些企业
    • APPQUICKER的开发模式
    • 为什么可以快速开发
    • 打造企业级系统的优势

AppQuicker © 2007 All Rights Reserved.