AppQuicker

快速搭建应用系统教程

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

#16 销售数据统计表——双向分组交叉表

这一节你将了解双向分组交叉表的制作过程,双向分组意味着表头的横纵向都将存在扩展字段,我们在销售合同数据的基础上,建立一张客户产品销售情况统计表,它在纵向上按照地区和客户进行汇总,横向上按照产品类别和产品汇总。

制作这张表需要一些销售合同数据,所以,开始本章前你要录入一些临时的合同,便于数据统计。

完成后表样如下图:

image144

本章重点:

横向扩展,格集

第一步:建表

新建一张仅供统计的普通报表,保存为sales.raq 报表文件。报表格式如下:

image146

选择A2 ,输入:客户,产品,金额合计

右键菜单 ? 边框设置,点击s1 按钮,为A2 增加斜线,点击确定。

插入语 设置了斜线的格子,系统会按照单元格内输入字符串中的逗号进行分隔。动手完成上面步骤,直接看效果比看我在这浪费口水直观得多。

第二步:数据集

新建一个复杂SQL 类型的数据集ds1 ,SQL 语句如下:

select A.province,D.areaname,A.customerid,A.customername,

B.typeid,E.typename,B.productid,B.productname,sum(C.money) as jehj

fromcustomer A,product B,contract C,area D,type E

whereC.customerid = A.customerid and C.productid=B.productid

and A.province=D.areaid and B.typeid = E.typeid

group by A.province,D.areaname,A.customerid,A.customername,

B.typeid,E.typename,B.productid,B.productname

SQL 提示 从customer,product,contract, area,type五张数据库表中选出省份编号,地区名称,客户编号,客户名称,产品类别编号,类别名称,产品编号,产品名称,合同金额9个字段,并在where语句中建立相关的关联。 合同金额依据前八个字段做分组合计(sum)。

设计器右侧 数据集tab 页,选择数据对象分组,拖动ds1 节点下的province 字段到A4 ,customerid 到B4 ,typeid 到C2 ,productid 到C3 ,在上述自动形成的表达式上加入分组前排序。如:=ds1.Group(productid,FALSE)。 选择对象类型汇总,选择合计,拖动jehj 字段到C4 。

选择C2 ,属性区域 â 扩展方式 â 属性值,选择横向扩展,同样操作调整C3 为横向扩展。

插入语 为什么我们从没有设置过纵向扩展?

可扩展单元格默认的扩展方式是纵向扩展,所以前面制作的可扩展报表都没有修改扩展方式,本例中C2和 C3要横向显示,所以它们的扩展方向要修改成横向扩展。

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

ds1.select1(areaname,province==value())

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

ds1.select1(customername,customerid==value())

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

ds1.select1(typename,typeid==value())

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

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

设置C2 ,C3 ,C4 ,C5 ,属性区域 â 背景色 â 表达式,

输入:IF(&C2 % 2 ==1,-3342337,-52)

插入语背景色表达式的意义

取出选中的单元格相对于上主格C2的列号,如果列号是奇数,背景色为浅蓝色,否则是淡黄色。 &C2,取出单元格自身对应C2主格的扩展列编号。这是横向扩展,如果是以C2为主格纵向扩展,取得的是扩展行编号。

选择D4 ,输入表达式:=SUM(C4{})

表达式提示 还记得曾经介绍过的主格是什么吗?D4的上主格是C2(产品类别),所以 D4中sum(C4{})的意义是按照C2(产品类别)对C4横向扩展数据(金额合计)进行汇总合计,C4{}中大括号的作用是取得 C4扩展格的值形成一个集合,,称作格集。注意,本例中C4{}取得的不是所有C4的扩展格,原因是D4还有一个左主格B4,所以 D4中的C4{}只取到D4的上主格和左主格扩展出来的C4。

插入语手工设置主格

可以手工修改一个单元格的主格设置(包括左主格和上主格)。属性区域 â左主格/上主格 â属性值,直接输入指定格,如:A2

选择C5 ,输入表达式:=SUM(C4{}) ,这是按照地区对单项产品做合计,能理解为什么是这样吗?现在回到设计器界面,参照D4 中的类别合计,你会明白的!

【属性 _ 报表属性 _ 分页】,修改分页方式为不分页。

插入语 是否分页取决于报表的布局和列表上数据量,如果是一张纵向扩展列表,对它分页可以增加阅读的方便性,同时减轻服务器运行的负担,提高程序的运行速度。本表是一张横纵双向扩展的表,横向的分页不便于浏览,这里我们选择不分页。分页还与打印的内容相关,关于打印请见第18章。

OK !现在做好了一张双向分组交叉表,点击s1 ,预览一下,如果你看到了本章开始显示的样表,说明这张销售统计表已经编制成功了。

第三步:发布报表

登录数据中心控制台,登记sales.raq ,发布报表为客户产品销售情况统计表。

image150

教程 |2007/11/07
#14 窗口帮助——链接技术

Comments are closed.


  • 询问问题

  • 关于AppQuicker

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

AppQuicker © 2007 All Rights Reserved.