有些报表工具不直接支持跨行计算,需要用表脚本实现,非常麻烦,遇到多层分组的情况会更复杂。集算器支持有序计算,可以弥补这一不足。报表工具可将集算器脚本文件当做数据库存储过程执行,详情参考集算器辅助报表开发的集成方法。
下面举例说明报表开发中常见的跨行计算,以及集算器对应的解法。
比上期和同期比
库表sOrder存储着每个销售员每天的订单,报表需要统计指定时间段内各月份销售额的比上期和同期比。源数据如下:
比上期代码如下:
先用SQL进行分组汇总,计算出每年每月的销售额,再用公式“当月销售额/上月销售额”计算比上期。结果如下:
同期比代码如下:
用SQL对分组后的数据按月份、年份排序,再用公式“当月销售额/上一年同月份销售额”进行计算,结果如下:
每月累计销售额
计算每个销售员每个月的累计销售额,跨年时清零。
集算器代码:
先用SQL进行分组汇总,计算出每个销售员每年每月的销售额,再进行跨行计算,用公式“当月累计=本月销售额+上月累计”。结果如下:
单账户各期余额
data.csv存储着某账户各期资金存取情况,初始余额为45,需要根据该文件计算出各期余额,部分源数据如下:
集算器代码:
以逗号为分隔符读入文件,按照公式“上期余额-本期存款-本期取款”为公式计算本期余额,结果如下:
多产品每日库存
库表inout记录着每种商品每天的出入库情况,日期无间断,初始库存为0。现在需要在报表中展现这些数据,并额外增加一列:每日库存。
集算器代码:
对每种产品分别计算(分组),当日库存的算法是“当日入库-当日出库+昨日库存”。集算器可用[-1]表示上一条记录,因此可以直观写出表达式。计算结果如下:
假设时间是间断的,则需要将数据先按不间断的时间序列对齐,再计算库存,代码如下:
贷款分期
库表loan存储着贷款信息,包括贷款总额、按月分期数、年利率。要求实现一张分组表,在每条贷款信息下列出各期明细,包括:当期还款额、当期利息、当期本金、剩余本金。源数据如下:
集算器代码:
先根据公式计算每笔贷款的月利率和每期还款额,再根据每笔贷款信息新建明细二维表,计算出当期利息、当期本金、剩余本金,最后合并明细表。其中第1笔贷款的明细如下:
不规则跨行占比
数据库表majorSum存储着某医院重点科室以及全院的患者统计,报表需要按字母顺序呈现各科室的患者占比,并在最后保留全院患者数量。源数据如下:
期望的报表如下:
集算器代码如下:
首先用函数maxp找到全院患者对应的记录(patient最大),再用“\”进行差集运算,获得各科室患者对应的记录,之后计算各科室患者的占比,最后用“|”纵向拼接记录。结果如下:
相关推荐
标题“C#报表工具的设计与实现”所涉及的知识点主要包括: 1. 报表工具的概念与重要性:报表工具是软件系统中的一个模块,用于分析、处理数据并将结果以表格或图表的形式动态展示。其在现代企业信息系统中尤为重要...
在实现这些运算时,通常需要编写硬件描述语言(如VHDL或Verilog)来描述逻辑电路,并使用相应的软件工具(如Xilinx Vivado或Intel Quartus)进行综合和配置。在设计过程中,需要考虑资源利用率、功耗、速度和复杂性...
实现一个能进行稀疏矩阵基本运算的运算器。 功能要求: 1. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相加、 相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则 以...
### 基于Quartus II的运算器的设计与实现 #### 摘要 本文主要探讨了如何利用Quartus II软件设计并实现一个具备基本运算功能的运算器。通过对这一过程的深入剖析,不仅可以了解电路仿真的基本流程,同时也能验证所...
实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx源码EXCEL VBA宏编程xlsx实例代码下载实现收支的跨表运算.xlsx...
在本次实验中,我们重点研究了带有累加器的运算器的设计,包括溢出检测、有符号数与无符号数运算的差异,以及基于补码的加/减运算实现原理。 一、实验目的 1. 熟悉运算器的基本结构,掌握带有累加器的运算器的实现...
这个名为"集成运算放大器应用电路集.rar"的压缩包文件显然包含了关于集成运算放大器实际应用的详细资料,可能是电路设计图、理论分析或者实验指导等内容。下面我们将深入探讨集成运算放大器的一些基本概念和常见应用...
本程序通过C++实现向量的加法、减法、乘法(标量乘法)和点积(内积),这四个基本的向量运算。在VC++环境下经过测试,确保了代码的稳定性和正确性。 向量通常表示为一组有序的数值,例如在二维空间中,一个向量...
神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算神经网络实现加法运算...
在本项目“C语言数据结构用栈实现四则运算”中,开发者利用栈这种数据结构来处理数学中的四则运算,包括加法(+)、减法(-)、乘法(*)和除法(/)。这种方法相比传统的递归或循环方式,通常更加简洁且易于理解。...
运算器是计算机硬件系统中的核心组成部分,主要负责执行基本的算术和逻辑运算。在数字系统设计中,尤其是使用VHDL(Very High Speed Integrated Circuit Hardware Description Language)进行设计时,运算器的构建是...
函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数运算的实现函数...
数字图像处理图像点运算和代数运算的实现方法(matlab) 图像点运算和代数运算是数字图像处理的基本操作,它们对图像进行处理和变换,以达到图像增强、去噪、图像识别等目的。在 MATLAB 中,可以使用各种函数和命令...
这篇文档是关于使用汇编语言实现四则运算的课程设计说明,主要涵盖了加法、减法、乘法和除法的实现过程。汇编语言是一种低级编程语言,它直接对应于计算机硬件的指令集,因此可以高效地完成计算任务。 在设计思想...
在“Proteus 仿真运算器实验”中,我们将专注于理解并应用74LS181,这是一个经典的集成电路,用于实现逻辑运算。 74LS181 是一款4位二进制可编程逻辑阵列(PLA),它能够执行四种基本的二进制算术和逻辑运算:加法...
- **Util组**:提供额外工具的运算器,如布尔运算、几何变换、排序、插值等。 - **Math组**:包含数学运算的运算器,如加减乘除、三角函数、向量运算等。 - **Domain组**:主要涉及数学上的域(如数值范围)的操作...
在这个VERILOG实现的4位ALU模块中,设计者通过编程实现了加、减、与、或、非五种基本运算。下面将详细解释这些知识点。 1. **VERILOG**: VERILOG是一种硬件描述语言(HDL),用于设计和验证数字系统,如微处理器...
在FPGA(Field-Programmable Gate Array)中使用Verilog实现开方运算是一项复杂的硬件设计任务,因为开方操作通常涉及到浮点数运算,而在硬件级别,这需要精细的逻辑设计。Verilog是一种硬件描述语言,用于描述数字...
在本项目中,我们关注的是一个使用C++编程语言实现的四则运算计算器,它具有处理括号的能力。这个计算器的实现是基于一种常见的算法设计技术——递归和栈数据结构。以下是对该项目的详细解释。 首先,让我们理解四...