根据 key 计算出对应的 hash 值 public V put(K key, V value) { if (value == null) //ConcurrentHashMap...); // 计算键对应的散列码 // 根据散列码找到对应的 Segment return segmentFor(hash).put(key, hash, value..., false); } 然后,根据 hash 值找到对应的Segment 对象: /** * 使用 key 的散列码来得到 segments 数组中对应的 Segment */...相“与”,从而得到 hash 值对应的 segments 数组的下标值,最后根据下标值返回散列码对应的 Segment 对象 return segments[(hash >>> segmentShift...同时,所有读线程几乎不会因本线程的加锁而阻塞(除非读线程刚好读到这个 Segment 中某个 HashEntry 的 value 域的值为 null,此时需要加锁后重新读取该值)。
译者:Fbilo 多细节带区 Crystal Reports 是世界上被用的最多的报表工具。...尽管 VFP 已经有了内建的报表编辑器,但许多 VFP 程序员还是使用 Crystal 的原因之一,就是因为它支持子报表。子报表就是运行在一个报表中的报表。...这里我们的想法是为每个雇员计算订单的数量和合计,只是我们希望在显示真正的订单之前就显示这些计算结果。此外,我们还想要显示每个订单的合计占全部订单合计数的百分比,这就意味着我们要预先计算合计。...图22、EmployeesMD2.FRX 使用细节带区1来预先计算在余下报表中的合计 这个报表的数据环境的设置如图23所示。...图24、使用多细节带区可以很容易的在细节之前显示合计并计算一个合计的百分比
因此传统的格式已经无法满足新的需求,最终用户期望在一张报表中看到更多的汇总、分类信息,而往往这些汇总和分类信息是不固定的,比如下面这张报表 类似上图中的复杂表头和分类汇总,用传统的报表已经无法完成。...矩表由矩阵(Matrix)控件演化而来,矩阵可将存储的原始Detail 数据,通过【行分组】(即垂直显示字段值)和【列分组】(即水平显示字段值),将数据二维的展示出来,然后计算每一行或列的合计;也可以将字段值作为行号或列标...,在每个行列交汇处计算出各自的数量,然后计算小计和总计。...,合计的表达式可以根据自身需求来定制。...定制化的合计功能 在大数据分析过程中,对于数据分析,再也不是简单的求和,最大值,最小值,平均值这些简单的合计功能了,我们需要根据业务规定,对于满足条件的数据进行统计,求占比,同期占比等,矩表支持定制化的合计功能
FV 是一个财务函数,用于根据固定利率计算投资的未来值。 语法:FV(rate,nper,pmt,[pv],[type]) rate:必需。各期利率。 nper:必需。年金的付款总期数。...现值,或一系列未来付款的当前值的累积和。如果省略 pv,则假定其值为 0(零),并且必须包括 pmt 参数。 type:可选。数字 0 或 1,用以指定各期的付款时间是在期初还是期末。...计算一系列付款的未来值。比如:你每月存500美元用于退休养老金,预期的平均年利率5%,期限为10年。到期后,你的退休账户中将会有77,641.14美元。...计算当个总计付款的未来值。比如:你投资了某个项目,投资额为10000美元,预计平均年回报率为2%,按月分红。投资期限是5年,到期后你可以拿到11050.79美元。...如果type取1,未来值的计算结果不变。
NULL替代值:对于包含合计行的列,如果合计行中的列值为NULL,则可以使用COALESCE()函数或其他函数来替代为自定义的值。...数据摘要:使用WITH ROLLUP可以一次性获取分组数据和汇总数据,避免了多次执行额外的聚合查询。这对于快速生成数据摘要和汇总报表非常有用。...NULL值处理:合计行的标识列会被设置为NULL,这可能会在某些情况下引起数据处理问题。需要注意在应用程序或报表中正确处理合计行的NULL值。...数据类型:由于合计行是附加在结果集中的,它们的数据类型可能与分组行不完全匹配。在数据处理和计算时,需要注意数据类型的兼容性和一致性。...性能影响:在生成合计行时,MySQL需要额外的计算和排序操作,可能会对查询的性能产生一定的影响。对于大型数据集或复杂查询,需要评估性能并谨慎使用WITH ROLLUP。
ddEntry(hash, key, value, i)方法根据计算出的hash值,将key-value对放在数组table的i索引处。...resize(2 * table.length); } 当系统决定存储HashMap中的key-value对时,完全没有考虑Entry中的value,仅仅只是根据key来计算并决定每个Entry...hash(int h)方法根据key的hashCode重新计算一次散列。此算法加入了高位计算,防止低位不变,高位变化时,造成的hash冲突。...0 : (h = key.hashCode()) ^ (h >>> 16); } 我们可以看到在HashMap中要找到某个元素,需要根据key的hash值来求得对应数组中的位置。...如何计算这个位置就是hash算法。
[1240] 白茶最近在和小伙伴沟通的时候,经常能遇到一些奇奇怪怪的需求,后来白茶仔细一合计,嗯,妥妥的中国式报表,满足! BOSS:我花钱雇你来,不是要你觉得,我要我觉得!...来,我们来看看需求: 1、首先,要求出这个月人工费用的合计; 2、其次,要求出每个人工资的分配占比; 3、并且,根据占比求出个人奖金; 4、然后,求出每个人的实发工资; 5、最后,这些要体现在一个表里。...虽然求出每一项的占比了,也不影响后续的计算,但是按照中国式报表的需求,想想我们的BOSS,那肯定是要总计显示的啊!...最后SUMX汇总是根据表汇总的,表中都没有“奖金”这一项,那么后面的结果也当然没有了。...SUMMARIZE函数,是先判断后面的计算值的,如果IF的判断为空的话,那么虚拟表就没有这一项,因为它只显示可见组合。最后SUMX汇总可见项。 二者一个是从表出发,一个是从结果出发,结果都是一样的。
不过,报表工具中的运算是一种状态式的计算,也就是把所有计算表达式写在报表布局中,根据依赖关系自动处理计算次序。这种方法很直观,在依赖关系不太复杂时能一目了然地了解各单元格的运算目标。...再比如带明细的分组报表要按汇总值排序,需要先分组后排序,许多报表工具无法控制这个次序。...还有个典型例子是舍位平衡,明细值四舍五入后再合计,可能会与合计值的四舍五入值不相等,会造成报表上明细与合计数值不一致,需要根据合计的舍入值倒推明细的舍入值,这种计算的逻辑并不复杂,但即便用了隐藏格也难以由报表工具完成...动态数据源也是常见的需求,报表工具使用的数据源一般是事先配置好的,不能根据参数动态选择,直接使用报表工具无法实现。...报表被用于通用查询时,取数用的SQL不能简单地用参数控制条件,而经常可能要替换某个子句,有些报表工具支持宏替换,能够一定程度地解决这个问题,但根据参数计算宏值也是个有条件和过程的运算,直接在报表工具中很难完成
常见的二维数据透视表(交叉表)通过横向和纵向展示数据,进行一些简单的汇总运算,而传统的数据透视表功能单一,汇总方式简单,已经无法满足现代大数据量各种条件分析,因此多维透视表应运而生。...多维透视表在功能强大的同时,创建难度也会随之提高 多层分组嵌套的复杂的组织结构 复杂的汇总分析公式的编辑 小计和总计的区分等等要面临的复杂问题 如果用代码实现,可能复杂程度不堪想象,更不用谈大数据量级别下报表加载的性能问题...新建报表模板 2. 添加数据源和数据集 3. 添加矩表控件 添加矩表控件到设计界面,会发现有类似[ 符号,表示分组,即可根据具体数据动态生成行。会发现设计器下面的矩表分组管理器; 4....添加列分组 根据以上分析,列分组是根据月份而定的,因此只需要默认的一个列分组就足够了,所以不需要添加其他列分组; 添加“销售额”,“搭增”,“比例”静态列: 选中“列分组单元格”插入列,选择分组内-右侧...添加省份合计 选中:省份单元格,选择添加合计->分组后面;会自动添加合计行; 效果图: 10. 修改样式 报表设计就完成了,接下来需要做的就是调整报表样式。
示例分享 下面我们用润乾报表,通过几个由简到繁的示例来看看报表工具的开发效率应该怎么考察 示例1:简单分组 根据如下数据表,制作报表 按销售员、类别统计订单数量,并增加合计,结果报表: 制作过程 数据集设置...,进行班级班名以及和去年成绩对比,找出进步最快的三位同学,形成如下结果: 要点:看各工具怎么去做这个计算,看哪个更简单高效 制作过程 参数设置 报表中增加参数nd,默认值为2019,用于接收年份 数据集设置...ptop(-3))",B3{},G3{})),使用润乾内置函数esproc,将K3单元格(名次变化幅度)传入,ptop(-3)取最大的3位的位置,然后用m()函数根据位置取对应的姓名 结果如下: 这个例子主要是测试报表工具的一些复杂计算能力...所谓大客户,定义为销售额占前一半的客户,也就是把客户销售额从大到小排序后,前面若干个客户的合计销售额构成总销售的一半,这些客户被称为大客户 报表结果: 制作过程 数据集设置 润乾报表内置了高效的开源计算工具...B3设置初始值为0,用于做销售额累加操作 A4:对销售额进行累加,取出累加金额大于A3中对应的A2的序号 A5:根据序号取A2中对应的值,并做为结果集返回给报表 报表模板设计 报表结果 从这个例子可以看出
,并增加合计,结果报表: 制作过程 数据集设置 ds1: select * from orderlist 报表模板设计 A2:=ds1.group(NAME;NAME:1),按照销售员分组,可以手动输入公式...,也可以报表设计器右下角选择分组方式拖拽: B1:=ds1.group(CATEGORY;CATEGORY:1),操作方式同 A2,设置扩展方式为横向 B2:设计器右下角,选择汇总,汇总方式选择“计数...”,拖拽任意字段到 B2 单元格 B3、C2、C3:合计单元格,表达式手动输入:=sum(B2{}) 报表结果 对于这类简单报表,各工具效率上基本没有什么差异,润乾报表是直接写表达式(也可以拖拽),其他工具有写表达式的...所谓大客户,定义为销售额占前一半的客户,也就是把客户销售额从大到小排序后,前面若干个客户的合计销售额构成总销售的一半,这些客户被称为大客户 报表结果: 制作过程 数据集设置 润乾报表内置了高效的开源计算工具...B3 设置初始值为 0,用于做销售额累加操作 A4:对销售额进行累加,取出累加金额大于 A3 中对应的 A2 的序号 A5:根据序号取 A2 中对应的值,并做为结果集返回给报表 报表模板设计 报表结果
比如,这种年月和汇总出现同一个报表中的情况,用户既想看到分月销量,又想同时看到YTD汇总及增长情况。...解决方案虽然可以使用辅助表双层表头和SWITCH度量值(根据表头返回结果)的方案,但是度量值相对复杂。...推荐使用计算组,把汇总列放在列小计上,相对简单还可以复用给别的度量值,而且支持给小计列设置不同的条件格式。举例按上图做一个矩阵,小计列带不同的条件格式。...,在属性窗格按照报表需求通过拖动为计算项排序。...STEP 4 在画布中添加矩阵视觉对象并拖入字段,把省份放入行,把计算组的YTD字段和年月字段放入列,把销量度量值放入值,双击列中的YTD,重命名为“.”
我们在打印报表时经常会遇到显示中文星期的问题。Crystal Reports有DateOfWeek函数可以判断一个日期是星期几,比如DateOfWeek返回4时表示星期三。...一个公式可以有很多行,但只有最后一行的计算结果才会作为整个公式的结果打印在报表中。 C.条件计算 在这个例子中我们重点演示如何使用If-Then-Else操作符。...条件计算在报表中使用得非常普遍。例如,我们要根据用户购买的总价格决定折扣的多少。我们假定用户购买200元以下的产品,不打折;200元到1000元提供5%的折扣;1000元以上提供7%的折扣。...比如,我们需要根据一定的条件进行统计。假定我们要统计每组中单价超过10元的商品的销售数量。我们可以先在报表的Detail部分插入一个公式。...也可以引用数据库字段,其格式为:{库名.字段名} A.操作符 水晶报表支持大量的操作符,有些是常见的,也有些是Crystal Reports特有的。
wxml: <view >{{ precent + '%'}}</view> <text >{{welfare_list.welfareDO.haveFor...
目录 1 实现 1 实现 /** * get hash code on 2^32 ring (md5散列的方式计算hash值) * 根据字符串计算hash 值 * @param
计算字符串或二进制内容 md5 值 我们用 hashlib 库来实现对一个参数的 md5 值的计算。特殊的是,字符串需要申明编码。...source.encode('utf-8') m1 = hashlib.md5() m1.update(source) res = m1.hexdigest() return res 因为需要计算的地方入参有限
水晶报表:是由Crystal Services 公司开发的,主要用于设计及产生报表。...中文技术支持论坛 常见问题手册(中文) 学习视频 Demo 代码 表格类报表的支持程度 国内的系统中,大量存在表格类(Excel类、文档类)的数据报表开发,如统计汇总、检测报告、表单等。...无法修改或添加总计,汇总公式,或是自定义单元格合并。更无法支持中国复杂报表的表角斜线及无规则的单元格合并。...交叉表可以创建多维合计透视表,但是在合计表达式只能选择默认的Sum,而且无法创建复杂的表头。...快速创建复杂报表 应用于中国市场中,需要根据国内的特征确适应市场需求,而中国式的复杂报表就是考验报表工具,是否满足市场的一大标准,无论是复杂运算的会计报表,还是复杂表头的汇总统计报表,还是自由度极高的单元格合并报表
作者 :caoli 在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。...页面报表的游览器就可以了 服务器 : 水晶报表引擎(Crystal Report Engine (CREngine.dll)) 通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等...也正是因为报告引擎的作用,才可以将Asp.Net中的水晶报表转换成为普通HTML格式 水晶报表设计器(Crystal Report Designer (CRDesigner.dll)) 水晶报表就是在设计器中创建的...执行模式 水晶报表取数据可以使用下面的方法实现: Pull 模式: 被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。 ...1) 从WebForm工具栏中拖动水晶报表查看器控件(Crystal Report Viewer)至.aspx页面中。
2、园区、开发区资产数字化管理 泛微通过低代码快速为大型园区开发区构建实时查看房源变化及面积汇总、出租率管理的管理体系。深化关联企业、租赁合同和房源,协助园区管理层远程就能了解园区房源状况。...每日根据房源信息表,实时统计当日园区总体建筑面积、配套面积、可出租面积、已出租面积、剩余可出租面积、已租可出租面积的合计值等,并且根据已有数据可快速计算出租率。...1)租金收取 租赁合同汇总后,根据合同周期、面积、租金以及其他细则等,形成租金计算公式。在台账中可查看租金是否已收。 在报表中可实时更新最新欠缴情况,一键发起缴费/催缴流程。...5、园区、开发区数据统计报表 为了方便园区管理层掌握经营情况,泛微OA结合BI报表,智能收集、汇总园区经营数据,客户增长量、新签客户数、租赁合同金额、月度签约金额变化一查便知,多维度展示园区项目运营情况...数据分析:通过构建数据报表,能清晰了解整个园区的资产租赁情况以及财务数据报表。 降低成本:避免出现费用及资产状态更新不及时,清晰了解资产空置情况,提高利用率。
领取专属 10元无门槛券
手把手带您无忧上云