金蝶BOS性能测试分析分享
- 格式:docx
- 大小:127.79 KB
- 文档页数:10
优秀的平台-----金蝶BOS金蝶BOS是一个开放的集成与应用平台,是金蝶ERP解决方案、合作伙伴解决方案以及客户定制应用的技术平台。
能够为企业灵活而迅速的设计、构建、实施和执行一套随需应变的ERP系统,并能够与现有的IT基础设施无缝地协同运作。
为不同行业不同企业的不同的应用阶段,构建随需应变的ERP解决方案。
金蝶BOS是什么?金蝶BOS是金蝶ERP的集成与应用平台。
金蝶BOS遵循面向服务的架构体系,是一个面向业务的可视化开发平台;是一个金蝶ERP和第三方应用集成的技术平台。
它有效的解决了ERP应用的最主要矛盾?D?D用户需求个性化和传统ERP软件标准化之间的矛盾。
金蝶BOS与金蝶ERP是什么关系?金蝶ERP是企业管理信息化的全面解决方案,金蝶ERP是基于金蝶BOS构建的。
金蝶ERP满足企业全面业务的标准应用;金蝶BOS确保了企业ERP应用中的个性化需求完美实现。
基于金蝶BOS的金蝶ERP,可以为不同行业不同发展阶段的企业构建灵活的、可扩展的、全面集成的整体解决方案。
金蝶BOS与金蝶ERP关系图金蝶BOS能解决客户的哪些问题?* 解决ERP日益增加的应用复杂度和快速开发/实施的矛盾* 能够快速配置或快速定制业务流程并部署到金蝶ERP中* 为客户提供与金蝶ERP集成的、可升级的、高效的、简单易用的开发工具* 满足企业发展与变化的应用需要基于BOS的金蝶ERP具有什么样的独特优势?* 金蝶ERP蕴涵现代企业管理理念, 融合40万企业最佳管理实践,帮助企业提升信息化管理水平* 金蝶BOS使金蝶ERP如虎添翼,有效解决企业应用需求个性化和传统ERP软件标准僵化之间的矛盾* 基于BOS的金蝶ERP,实施速度快,快速搭建贴身的应用环境,成功率高* 广泛的适应性,可针对不同行业的个性化特色,构建行业应用集成平台* 灵活的可扩展性,伴随企业快速成长,可继承性地扩展企业ERP管理应用* 基于BOS实现企业个性化应用的业务系统升级方便,确保系统扩展平稳过渡* 系统维护本地化,快速响应,不依赖实施服务人员,维护成本低且可控金蝶BOS给企业所带来什么价值?满足企业个性化需求* BOS功能强大配合ERP系统,能够实现企业的行业特性或个性要求;* 满足企业的业务流程变更频繁的需要,随需应变;低成本* 流程配置:根据业务流程而设计,降低企业变革成本与风险;* 简单易用:80%的零代码开发,减低企业的开发成本;* 集成功能:可以集成第三方系统,减少企业重复投资;* 维护简便:可减少企业的维护成本,能够随K/3系统升级;高效率* 快速完成信息系统的构建,缩短开发周期* 快速提升员工的应用水平,降低项目风险使用BOS开发和传统的二次开发有什么共性和区别?BOS开发和传统二次开发都是为了满足企业个性化需求。
Step 1:
写好插件,并且编译成为dll.
在编写插件时,你不必从头开始,因为BOS已经为您提供了很好的工具—“BOS插件开发向导”,可以为你生成你的插件的整体代码框架,如下图:
一般情况下你打开VB,新建好工程后,插件向导会出现在你的工具栏上,
如果你的工具栏上看不到的话,可以从VB的菜单“Add-Ins” “Add-In Manager”上进行设置,因为插件向导本身是VB的插件,设置界面如下:
选中“K/3 BOS PlugIns Maker VB AddIn”,将Load Behavior中的前两项选中,如上图,这样,下次你启动VB时就可以在工具栏和菜单栏上看到插件开发向导了。
PS:如果以上都不成功,那么可能是你插件向导的组件没有正确安装或注册,在K3ERP目录下的ADDIN文件夹下找到“K3BOSPLUGINSADDIN.dll”,并用regsvr32重新注册一下即可。
Step 2:
1,在想要调试的地方打好断点,如下图:
2,设置工程的兼容性为二进制兼容,如下图:
3,按下“F5”,出现如下图,点击“确定”即可
Step 3 :
1,在BOS单据中正确配置插件,如下图:
在配置时注意区分插件的类型,如果配置了不正确的类型,那么加载单据时就会报“Automateion错误”
2,保存单据,按“F5”测试单据,在单据上执行相应的操作。
程序在你下的断点处停了下来,这样你就可以进行插件的调试了,如下图:。
EAS打印问题FAQ修订记录:时间作者备注2009-6-24李馥龙创建于BOS6.2集成测试阶段目录1、前言 (3)2、打印预览时内容完整,为什么打印时内容不全(最右边或最下边的部分内容丢失)? (3)3、针式打印机,两边带孔的连续纸张,第一页内容位置正确,第二页开始位置明显向下偏。
使用走纸微调没有效果。
(4)4、喷墨或激光打印机,宽度只够放下A4纸,对于24厘米宽的自定义纸张放不下怎么办? (4)5、打印方向设置成横向时为什么预览内容还是正向的?另外打印机进纸是不是也要横着放? (4)6、A4纸,横向,点打印后打印机上标写[注意]的红灯闪烁,按打印机面板上的开始按钮,内容按纵向输出(造成丢失)。
打印机型号为HP LaserJet5100。
(5)7、电子表格控件(KDSpread控件,Excel模式)调整列宽之后,打印预览内容完整,但打印到纸上,有些内容变成一串“####”。
(5)8、怎样实现双面打印? (5)9、打印时弹出对话框提示“打印中断”,客户端日志client.log文件中可以看到java.awt.print.PrinterException异常。
是什么原因? (6)10、集团统一的套打模板,在不同分公司的打印机上,打印出来的位置不一样。
(6)11、EAS v5.4中,套打预览时可以通过“井”字框拖曳边距,页面设置中也有页边距设置,为什么升级到EAS v6.0之后就没有了? (6)12、集团统一的套打模板,能不能在不同分公司用不同的纸张打印? (7)13、对于陌生的打印问题,是否有万能的终极分析方法? (7)1、前言本文搜集EAS 常见打印问题及解答。
EAS 打印功能的实现(包括序时簿打印、套打等)依赖于BOS 打印框架,打印框架是基于“Java 打印API ”的,受限于JDK 的底层实现,某些细节可能与Windows 常用的打印功能表现不完全一致。
由此而产生的问题,长期困扰实施人员和用户。
金蝶ERP实验报告范文1. 引言本实验报告旨在对金蝶ERP系统进行测试和评估,以了解其功能和性能。
本报告将重点关注以下几个方面:•金蝶ERP的基本功能和使用方法•金蝶ERP在不同业务场景下的应用能力和灵活性•金蝶ERP的性能和稳定性2. 背景金蝶ERP是一款集成管理软件,广泛应用于企业的财务、人力资源、采购、销售等管理领域。
它具有模块化、易于定制、灵活扩展等特点。
本实验将使用金蝶ERP的最新版本进行测试和评估,以熟悉其功能和性能,并对其进行全面的分析。
3. 实验目标本实验的主要目标是评估金蝶ERP在企业管理中的应用能力,并对其性能进行评估。
具体目标包括:•理解金蝶ERP的基本功能•测试金蝶ERP在财务、人力资源、采购、销售等不同业务场景下的应用能力•评估金蝶ERP的性能和稳定性4. 实验步骤4.1 系统安装与配置首先,需要下载并安装金蝶ERP系统。
在安装过程中,按照安装向导的指示完成系统的安装和配置。
4.2 功能测试接下来,我们将对金蝶ERP的基本功能进行测试。
我们将测试以下几个方面:•财务管理:测试金蝶ERP在财务报表、资金管理、成本控制等方面的功能。
•人力资源管理:测试金蝶ERP在人事管理、薪资管理、绩效管理等方面的功能。
•采购管理:测试金蝶ERP在采购申请、采购订单、供应商管理等方面的功能。
•销售管理:测试金蝶ERP在销售订单、客户管理、产品管理等方面的功能。
4.3 应用能力测试在功能测试完成后,我们将对金蝶ERP在不同业务场景下的应用能力进行测试。
我们将选择几个典型的业务场景,如财务报表生成、人力资源招聘流程、采购订单审批流程和销售订单执行流程,并对系统的应对能力和灵活性进行评估。
4.4 性能与稳定性测试最后,我们将对金蝶ERP的性能和稳定性进行测试。
我们将模拟不同负载下的并发用户数,测试系统的响应时间和并发处理能力。
我们还将测试系统在高并发情况下的稳定性,以评估其可靠性。
5. 结果分析与总结通过测试和评估,我们可以得出以下结论:•金蝶ERP具有较为完善的财务、人力资源、采购、销售等管理功能。
XXX项目性能测试分析报告版本:1.0修订历史记录目录1.引言 (4)1.1编写目的 (4)1.3名词术语 (4)1.4参考资料 (4)2.测试概要 (4)2.1测试组织 (4)2.2测试环境与配置 (5)2.3测试工具 (5)2.4测试范围 (5)2.5测试目的 (6)2.6测试内容 (6)3. 测试结果及统计分析 (6)3.1网站发布页面查询用例测试结果分析 (6)3.2网站注册用例测试结果分析................................................................. 错误!未定义书签。
3.3网站登录用例测试结果分析................................................................. 错误!未定义书签。
3.4前台网站我的项目提交用例测试结果分析......................................... 错误!未定义书签。
3.5前台网站我的投融资意向提交用例测试结果分析............................. 错误!未定义书签。
3.6后台登陆用例测试结果分析................................................................. 错误!未定义书签。
3.7我的项目提交用例测试结果分析......................................................... 错误!未定义书签。
3.8我的投融资意向提交用例测试结果分析............................................. 错误!未定义书签。
3.9项目查询用例测试结果分析................................................................. 错误!未定义书签。
⾦蝶BOS开发指南(KDSpread)⾦蝶BOS 开发指南开发指南——————KDSpread KDSpread⽬录1系统概述 (3)1.1产品功能概述 (3)1.2产品特性介绍 (4)2基本概念及应⽤指南 (4)2.1基本概念 (4)2.2应⽤指南 (4)2.2.1实例化KDSpread (4)2.2.2获取表页控制信息 (4)2.2.3保护机制 (5)2.2.4视图缩放和⽹格线 (5)2.2.5获取Range对象 (5)2.2.6融合 (6)2.2.7设置⾏格式 (6)2.2.8设置列格式 (7)2.2.9增加删除⾏列 (7)2.2.10增加删除单元格 (7)2.2.11设置单元格格式 (8)2.2.12设置单元格内容 (8)2.2.13启⽤数据编辑器 (8)2.2.14导⼊导出 (8)2.2.15视图控制 (9)1系统概述Microsoft Excel是最成功的专业软件之⼀,全球⽆数⽤户逐步积累着它的应⽤经验,它的展现和操作模式是业界同类软件的事实标准。
⾦蝶KDSpread控件是商业分析部界⾯组耗时数年制作的类Excel交互⽅式的Java图形控件,它有如下功能:⽀持多表页快速切换,⽀持同时操作多表页⽀持窗⼝拆分和窗格冻结,便于观察和编辑多页数据⽀持细粒度保护机制,⽀持定制的保护策略⽀持视图缩放,垂直⽔平⽹格线是否显⽰等细粒度的界⾯控制⽀持⾏列、单元格格式,条件格式,批注,丰富显⽰效果⽀持数据显⽰和编辑,⽽且可以灵活的更换绘制器(Renderer)和编辑器(Editor)⽀持Undo、Redo⽀持单元格的融合和拆分⽀持查找、替换⽀持多种⽂件格式的导⼊导出⽅式,可以与PDF、Excel等⽂件单向或双向交换数据⽀持打印预览和精确打印、⽤户再分页⽀持图表和嵌⼊式对象⽀持分组汇总、数据筛选⽀持超链接和斜线表头⽀持公式注册和批量取数⽬前KDSpread在如下软件系统中被⼴泛应⽤:预算报表系统合并报表系统;扩展报表系统;部分⼆次开发的模块;1.1产品功能概述KDSpread最⼤程度尊重了客户的Microsoft Excel既有使⽤经验和习惯,提供给客户最熟悉的界⾯展现和操作⽅式,功能涵盖了数据展现、编辑、图表、打印、数据分析、保护、视图控制等,为客户程序员提供了丰富、直观⽽紧凑的接⼝,代码产品经过了EAS530、EAS 540、EAS590、EAS600数个版本的应⽤,功能和稳定性均经受住了客户的考验。
使⽤BOS过程中常见问题BOS⼯具常见问题集⼀、功能点使⽤问题解答 (2)⼆、环境使⽤类问题解答 (3)三、事件类问题解答 (8)四、发布类问题解答 (8)五、部署类问题解答 (12)六、集成模块----单据转换问题 (13)七、集成模块----权限问题 (14)⼋、集成模块----⼯作流问题 (15)九、⼯作流使⽤问题解答 (16)I、⼯作流快速⼊门部分 (16)II、⼯作流常见问题解答 (30)III、现场常见流程配置 (31)IV、现场常见问题解决⽅案 (38)⼗、集成模块----预警平台问题 (65)⼗⼀、集成模块----报表问题 (65)⼗⼆、集成模块----组织架构 (66)⼗三、代码应⽤问题 (68)⼗四、升级参考步骤 (71)⼗五、版本遗留缺陷 (74)⼀、功能点使⽤问题解答1、业务建模⼯具所定义的单据是怎么调整顺序的?在业务建模⼯具视图选中该单据,菜单【业务单元】→【录⼊顺序】⽤来调整编辑界⾯的输⼊顺序,也可以调整分录字段的显⽰顺序;菜单【业务单元】→【查询顺序】⽤来调整序时簿界⾯的显⽰顺序。
2、⽬前字段修改能修改什么属性?业务建模⼯具⾥不能修改系统定义字段(可以切换到studio视图修改),只能修改⾃定义字段;如果想要修改系统定义字段的显⽰标题,可通过属性⾥的“标签⽂字”进⾏修改;在⾃定义字段未保存前,该字段所对应的所有属性都可以修改;在⾃定义字段保存后,该字段只能修改字段标题,出现需要修改字段除了别名以外的属性的问题,⽐较快速的变通处理⽅法是删掉此字段再重建。
3、BIM中建的枚举只有整型吗?可不可以定义其他类型的枚举?⽬前都默认为String类型处理4、在运⾏时,EditUI界⾯中点击复制并新增时,单据编号(已配置编码规则)同时也会复制过去,⽽不会产⽣新的单据编号,如何解决?请重载setFieldsNull()⽅法,然后把你不想复制的字段set⼀个null值在⾥⾯就可以了5、在我们开发单据中,每个单据都⾃定义了⼀个审核的字段(并没有使⽤框架的审核功能),每张单都需要⽤户⼿⼯审核操作的。
金蝶B O S性能测试分析分享Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998金蝶BOS性能测试分析流程目录1.1. 简介最近通过版本的4-5月份集成测试与云平台的性能测试两个案例分析,发现性能测试只定位发现问题的工作方式不利于问题的快速处理,进而错过问题的最佳处理时机,给后续的发版带来很高的风险,4-5月份的集成测试只反馈CPU高消耗的现象与WEB的jprofile分析文档,因开发人员过忙与缺少实际环境而把问题一直耽搁着,这个问题本来在6月1号就发现了,结果到了7月5号迫不得已才组织人员协同分析定位问题,问题定位后也快速解决了问题;而云平台的性能测试我一直跟踪并协助定位性能问题,问题定位后,开发迅速修改代码,整个过程发现的几个重大性能问题都得到了快速的解决,通过对比这两个性能测试案例,得出只有快速定位问题才能高效的解决问题,只反馈问题现象,缺乏足够的依据,开发人员很难快速修复问题。
为了在BOS性能测试过程中快速定位问题以及在调优测试中快速找到性能提升点,特意整理在分析性能问题过程中涉及到的一些工具与方法,以便快速解决问题,本文将从用例分析、问题现象、问题分析、问题定位、辅助工具等方面规范性能问题的分析过程以及工作过程中的输出文档。
1.2. 参考资料2.1. 概述处理任何问题都有一套方法,性能测试分析过程也一样,我们平常测试发现的问题只是问题的表现,我们要透过现象逐步分析到问题的本质,透过本质我们才能快速解决问题,下面我就按经验来整理一下性能问题的分析思路与通用流程。
2.2. 分析思路我们通过一个倒金字塔模型来整理一个分析思路,由上至下逐步聚焦问题,测试过程中首先是会发现问题,发现性能问题后,我们第一步要确认是否是测试用例设计不当而导致的,如果不是我们就要用后续提到的各种工具与方法出具问题分析结果,根据分析数据推断出可能存在的代码可疑点,然后与开发一起如果修改问题。
2.3. 步骤结果输出2.4. 分析流程下图整理一个在性能测试过程中发现性能问题而进行问题定位的分析流程,本流程里不涉及到硬件绝对瓶颈的问题,如磁盘空间不足,另外应用服务器跟数据库服务器的参数都按照产品配置说明进行了正确配置,本流程图只用来指导分析软件本身存在的问题。
3.1. 概述本章节对分析各类问题涉及到的工具进行介绍,在问题分析中,不同的问题都有对应的工具进行辅助分析,选择正确的工具有助于快速定位问题,从而提高问题的处理效率。
3.2. 工具分类介绍一些将从IE、Java、数据库三方面对使用到的工具以及基本使用进行讲解,以此给在性能分析中提供参考3.2.1.HttpWatch3.2.1.1. 工具使用只要打开HttpWatch,然后点击录制,访问IE后,所有的HTTP交互就被录制下来,3.2.1.2. 分析思路通过是否使用catch来判断实际跟服务器起的交互次数,通过响应时间来判断哪个http请求消耗的时间较长,以此来初步判断存在问题的页面3.2.1.3. 分析案例1.问题大连中升项目3个强并发压力测试,发现响应时间比较长,应用服务器CPU消耗过高,能达到60%2.分析通过httpWatch分析http交互过程,重点分析页面,发现该页面每次都要向服务器提交提交60K左右的内容,从提交的内容看出,提交把一大片的HTML代码都提交到WEB SERVER了,而从下面的分析图中看到,一个实际的业务,其实业务本身性能很好,花了秒,而实际花了秒,从这看出性能很差劲,需要优化3.2.2.ThreadDump3.2.2.1. 工具使用1.通过调用EAS门户访问dump工具,访问端口号视具体情况而定,如下2.在打开的界面中分析线程的数量以及线程的调用堆栈3.2.2.2. 分析思路通过分析总线程的数量或某类线程的数量,如果出现的太多,而次数系统运行状况不好,则可以怀疑某类线程调用出现问题,通过线程的调用堆栈,可以推出哪些类的方法存在问题3.2.2.3. 分析案例1.问题金汉斯反馈最近打了几个补丁(有若干关联补丁)后,应用服务器CPU持续100%,系统功能整体非常慢,登录超过1分钟,单据提交10几分钟才能完成2.分析连线看了一下,应用服务器内存消耗正常,排除GC引起的CPU消耗异常。
查看threaddump,发现总是会有几十个活动的线程,虽然线程对应的业务方法各异,但都调用到动态扩展平台的方法,且堆栈大多停留在该方法上,可以认定CPU消耗过高是该方法被频繁调用,且消耗CPU资源过多引起。
a:419)3.2.3.Jprofiler3.2.3.1. 工具使用具体使用网上很多文章介绍,在此不做详解,下面给篇网上金蝶中间件一位同事些的指导文章3.2.3.2. 分析思路该工具可以分析多类问题,其主要优势是分析CPU热点,通过CPU视图,截取一段时间段的调用堆栈信息,停止后我们逐层分析消耗CPU多的方法,逐层深入分析,有些问题可能集中在一个地方爆发,这种情况很容易定位,如大连中升的问题;有些问题过于分散而一下子难以看出问题,这时要继续往下挖掘有用的信息,直至找到问题点,如 4-5月份的集成测试CPU消耗高的问题。
3.2.3.3. 分析案例11.问题4-5月份集成性能测试CPU消耗比以往高处一倍,CPU出现明显瓶颈2.分析通过Jprofile的CPU分析视图,层层分解,发现每个可疑点最后都能调用到动态配置平台,最后调用到BOS的枚举类的toString方法,最后经过开发修改,高消耗CPU的问题得到解决,剖析截图如下3.2.3.4. 分析案例11.问题大连中升项目3个强并发压力测试,发现响应时间比较长,应用服务器CPU消耗过高,能达到60%。
2.分析通过Jprofile的CPU视图,立马可发现主要消耗在一个具体的JSP页面上,此时已经很明确的告诉开发具体的修改地方3.2.4.jca401jca401是IBM公司提供的一个java线程分析工具,主要用来分析死锁、锁等待、线程的阻塞情况,该工具通过打开jvm的线程dump文件即可对当前线程状况进行分析。
3.2.4.1. 工具使用1.通过Java –jar 即可运行工具,启动后如下图2.通过file菜单打开dump文件,点击选中的文件,即可看到汇总信息,如下图3.通过Analysis菜单的Monitor detail分析细节信息,可以看到锁信息已经相应的java堆栈3.2.4.2. 分析思路通过观察线程的阻塞的状态已经JAVA 线程调用堆栈,可以定位到具体类的具体方法已经某行代码上,再结合代码的分析可快速定位问题3.2.4.3. 案例1.问题云平台并行发布元数据出现等待超时错误2.分析通过threaddump工具发现出现100多个线程等待,然后通过工具生成线程dump文件,然后通过jca401工具打开文件诊断,工具提示死锁信息,通过锁信息跟调用堆栈发现,多线程调用经常在一个用来做元数据缓存的HashMap 上发现死锁,具体分析图如上面工具使用过程中的三幅图。
3.2.5.ha404ha404是IBM提供的一个内存堆栈分析工具,用来分析大对象创建以及内存泄露等问题特别有用,目前金蝶分析oom主要就是通过此工具。
3.2.5.1. 工具使用1.通过java -jar -Xmx1024m 打开工具,如下图备注:在实际分析的过程中根据dump文件的大小来设置最大需要内存,有时候客户现场的dump文件很大,达到2G,这时候需要到64位的aix机器下打开,打开过程也需要很长时间,所以平时分析OOM问题的时候,我们实例的内存最好不要设置过大2.通过file菜单打开dump文件,这个时候一般需要等待很长时间,打开后如下图3.通过对内存引入堆栈的逐层展开找到主要内存问题点3.2.5.2. 分析思路逐层分析,找到占用内存最多的点紧系分析,内存泄露一般来说主要由于持续累积的分配内存而不释放导致的,我们主要定位到泄露点就能找到解决问题的办法3.2.5.3. 案例1.问题供应链单据只要连续打开几十次客户端就崩溃掉2.分析通过分析dump文件,发现供应链里每次打开一个UI都对其缓存起来,这样打开多了,客户端内存不够用就导致了OOM3.2.6.ga401ga401工具是一个用来分析JVM GC效率的工具,通过GC的次数、全GC的次数以及GC消耗的时间来判断当前应用程序的健康程度。
3.2.7.jconsole3.2.7.1. 工具使用1.在服务器端打开JDK中提供的Jconsole工具,一般在 %JAVA_HOME%/bin下面,打开的窗口如下2.输入访问地址连接服务器的JVM在高级页签中输入访问地址,如下,地址跟端口号视具体情况而定:6912#jmx/rmi/RMIConnectorServer3.分析内存视图4.分析线程视图3.2.7.2. 分析思路用Jconsole工具主要分析内存跟线程,看内存是否够用以及是否能正常回收,以此来判断内存是否设置太小或者存在内存的泄露,线程视图可以用来判断当前的线程是否创建过多或者存在很多等待状态的线程,如果存在大量阻塞状态的线程,则需要分析是否存在死锁或者严重的锁等待性能问题。
3.2.8.TOP SQL3.2.8.1. 工具使用1.在oracle用户下检测em服务是否启动,如果启动就按给定的地址用IE访问,如下图,提示已经启动,那我们可用访问,一般用IP地址访问,将访问地址改为2.用IE登录EM3.切换到performance页签然后到Top Activity,然后查看TOP sql4.查看执行计划3.2.8.2. 分析思路通过oracle OEM的顶层会话观察活跃SQL的情况,对活跃的SQL查看其执行计划,重点分析全表扫描的表,如果表记录超过1万行且进行了全表扫描,则要重点分析3.2.8.3. 分析案例1.问题深圳建滔系统08年9月上线的时候系统非常慢,应用服务器资源消耗不高,数据库IO等待很严重。
2.分析通过分析TOP SQL分析关键SQ语句,发现有一条SQL语句对一个大表进行全表扫描,后面开发通过修改代码优化SQL语句来解决此问题,如下图。