润乾报表if函数
循序渐进使用润乾报表3.0
循序渐进使用润乾报表第一章入门润乾报表3.0是一套专门面向程序开发人员制作复杂报表的工具系统,润乾报表3.0首次成功解决了复杂中国式报表的格式任意性及关系数据库的关联规律性之间的矛盾,使得用户能够方便简捷地制作自动化的任意报表,实现了报与表的完美结合。
润乾报表3.0采用了纯JAVA技术,设计器和运算器均采用JAVA开发,可以运行在任何操作系统下(Windows,Linux,各种UNIX),支持所有有JDBC接口的关系数据库,支持所有J2EE标准的应用服务器。
润乾报表3.0提供报表运算的JAVA类的API调用,可最紧密地和应用程序无缝结合,运算器可采用应用服务器的数据库缓冲池,程序员可自定义参数输入界面与运算器结合。
第一节基本概念单元格我们运行润乾报表编辑器,点击新建报表菜单,即可出现如下界面:我们发现,新建的报表由行列整齐的格子组成,这些格子我们称为单元格,所有的单元格组成了报表。
合并单元格我们选中一片连续的单元格区域,点击合并单元格菜单,就把这些被选中的单元格合并成了一个单元格,如下图所示,这个合并出来的新单元格称为合并单元格单元格数据类型我们选中一个单元格,在窗口右边的属性列表中,点击数据类型的属性值下拉箭头,即可看到下拉选项,分别有文字、统计图、图片字段、图片文件,如下图所示。
也就是说,单元格里的内容可以是文字、也可以是图片,图片内容可以来自文件,也可以来自数据库中的字段,还可以是统计图单元格属性的属性值和表达式在单元格的属性列表中,大家看到,每个属性都有属性值和表达式两种,这两种有什么区别呢?首先,属性值和表达式是互斥的,定义了属性值,就不必定义表达式,定义了表达式,就不必定义属性值。
其次,属性值是在编辑报表时就写死了的,在报表运行时不必经过运算,也不会被改变。
例如:你在单元格的背景色的属性值中定义了红色,那么报表运行时,它就是红色,不会被运算,不会被改变。
而属性的表达式在报表运行时,会被运算,该属性的最终属性值取决于表达式的运算结果值。
润乾报表常用函数
润乾报表常用函数1.to函数说明:生成一组连续的整数数据语法: to(startE xp,endExp{,stepEx p})参数说明:startE xp 整数数据开始的表达式endExp整数数据结束的表达式stepEx p 整数数据步长的表达式函数示例:to(1,5)=list(1,2,3,4,5)to(1,5,2)=list(1,3,5)to(-5,-10,-2)=list(-5,-7,-9)to(-10,-8)=list(-10,-9,-8)2.select函数说明:从数据集的当前行集中选取符合条件的记录语法:datase tName.select( <select_exp>{, desc_e xp{, filter_exp{,sort_e xp{,rootGr oupEx p}}}} )datase tName.select( <select_exp>, , <filter_exp> )//适用于不需排序或数据集中已排好序参数说明:select_exp:要选择的字段列名/列号,,也可以是表达式。
列号用#n 表示,例如#0代表第0列,#1代表第1列,依此类推desc_e xp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。
filter_exp:数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。
sort_e xp: 数据排序表达式。
当此项为空时先检查de sc_ex p是否为空,如果为空,则不排序,否则使用se lect_exp排序。
rootGr oupEx p 是否root数据集表达式返回值:一组数据的集合,数据类型由s elect_exp的运算结果决定函数示例:例1:ds1.select( name ) 从数据源ds1中选取n ame字段列的所有值, 不排序例2:ds1.select( #2, true ) 从数据源ds1中选取第二个字段列的所有值并降序排列例3:ds1.select( name,false,sex=='1') 从数据源ds1中选取性别为男性的name字段列的值并升序排列例4:ds1.select( name, true, sex=='1', id ) 从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列3.Int函数说明:将字符串或数字转换成整数语法: int( string ) int( number )参数说明:string需要转换的字符串表达式number数字,如果带有小数位,转换后小数位被截掉返回值:32位整数示例:例1:int( "100" ) 返回:100例2:int( 100.1 ) 返回:100例3:int(100.9999) 返回:1004.map函数说明显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回n ull语法: map(valueL istEx p, displa yList Exp)参数说明:valueL istEx p 真实值列表,可以是可扩展单元格或结果为集合列表的表达式displa yList Exp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式真实值列表和显示值列表一一对应返回值:字符型,和当前格真实值对应的显示值示例:例1:map(to(1,3),list("男","女","不定"))例2:map(arg1,arg2) 其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组例3:map(list(1,2,3),list("男","女","不定"))5.Select1函数说明:从数据集中按顺序检索到符合过滤条件的第一条记录,返回其sel ectEx p值语法: datase tName.select1(select Exp{,filter Exp{,rootGr oupEx p}})参数说明: select Exp 要选择的字段列名/列号,,也可以是表达式。
润乾报表设计总结
润乾报表设计1.项目:中国海洋石油公司财务系统中填报系统2.表结构设计:填报系统:主要表设计填报数据专用表3张:表名:rc_project_col表名:rc_project_row表名:rc_report_value_detail;表名:rc_report_value_total;系统税总:税总:增值税(一般纳税人):01增值税(小规模纳税人):02营业税:03消费税:04资源税:05矿区使用费:06关税:07企业所得税:08个人所得税:09印花税:10车船税:11房产税:12土地使用税:13土地增值税:14城市建设维护税:15教育费附加:16防洪费:17石油特别收益金:18其他:19增值税20油气增值税21代扣代缴营业税22矿产资源补偿费23水利基金24堤围防护费25地方教育费附加26义务兵家属优待费27河道管理费283.报表设计1.打开设计器2.配置数据源3.填写数据源用jdbc连接:4.填写数据集给报表传的参数表样4.报表函数总结:1 打开设计器2 定义数据连接池3 链接数据源4 新建报表5 定义数据集6 定义单元格表达式7 预览报表8 报表发布to函数说明:生成一组连续的整数数据语法:to(startExp,endExp{,stepExp})参数说明:startExp 整数数据开始的表达式endExp 整数数据结束的表达式stepExp 整数数据步长的表达式函数示例:to(1,5)=list(1,2,3,4,5)to(1,5,2)=list(1,3,5)to(-5,-10,-2)=list(-5,-7,-9)to(-10,-8)=list(-10,-9,-8)●Int函数说明将字符串或数字转换成整数语法:int( string )int( number )参数说明:string 需要转换的字符串表达式number 数字,如果带有小数位,转换后小数位被截掉示例:例1:int( "100" ) 返回:100例2:int( 100.1 ) 返回:100例3:int(100.9999) 返回:100disp单元格的显示值也可以被引用,此时用到disp函数,例如:disp(A1) 代表A1单元格的显示值map2、例如:ds1.select1(name,value()==id)对照表定义法:例如:map(list("0","1"),list("男","女"))例1:map(to(1,3),list("男","女","不定"))例2:map(arg1,arg2) 其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组例3:map(list(1,2,3),list("男","女","不定"))例1:if(value()>100,-65536,value()<=100 and value()>80,-16776961,-14336 )表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且大于80时,返回-16776961颜色值,否则返回-14336颜色值if(row()%2==0,-3342337,-1)group例1:ds1.group(class)把数据集ds1中所有记录按照class字段进行分组,并返回每组的class值组成的集合例2:ds1.group(class, true )把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,并返回每组的class值组成的集合例3:ds1.group(class,false,sex=='1')从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,然后根据class进行分组,并返回每组的class值组成的集合例4:ds1.group(class, true, sex=='1', id )从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,然后根据class进行分组,并返回每组的class值组成的集合例5:ds1.group(省份,true,,,sum(工业产值),true)对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),然后按照这个汇总值对组进行逆序排列count例4:count(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的个数sum例1:sum(A1:A10) 求出单元格A1至A10的合计值,被统计单元格可以是数值型也可以是字符型例2:sum(arg1) 其中arg1是参数组,求出arg1中所有元素的合计值例3:sum(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值例4:sum(B1[`0]{}) 表示求得根坐标下所有扩展后的B1单元格的合计值例5:sum(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值例6:sum(A1[`0]{},B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值左主格:跟随某个单元格一起复制本身:---------------------------------有左主格:员工信息表姓名颖静生日1968-12-08员工ID 1 入职日期1992-05-01职务销售代表邮政编码100098地址复兴门245 号员工信息表姓名伟生日1962-02-19员工ID 2 入职日期1992-08-14职务副总裁(销售) 邮政编码109801地址罗马花园890 号无左主格:员工信息表姓名颖静生日1968-12-08伟生日1962-02-19芳生日1973-08-30建杰生日1968-09-19军生日1965-03-04林生日1967-07-02士鹏生日1960-05-29员工ID 1 入职日期1992-05-01职务销售代表邮政编码100098 //不随主格循环...和行式报表不一样地址复兴门245 号-----------------------------------``新建报表的注意事项:新建报表的窗口中存在普通报表和填报或参数表单两种填报类型选项,如果是汇总类型的报表,一般选择普通报表,如果是需要填写的或者作为参数模板使用的,选择填报或参数表单。
表格if的使用方法
表格if的使用方法全文共四篇示例,供读者参考第一篇示例:表格if是Excel中非常常用的条件判断函数,可以根据特定条件的满足与否来进行相应的操作。
在Excel中,if函数的基本语法是“=IF(条件,值为真时的结果,值为假时的结果)”。
在这个函数中,条件为需要判断的条件,值为真时的结果是条件成立时希望得到的结果,值为假时的结果是条件不成立时希望得到的结果。
使用表格if函数的方法如下:1. 打开Excel表格,在需要使用if函数的单元格中输入“=IF(”,然后输入条件,条件可以是单元格的值、其他函数的计算结果等。
2. 在输入完条件后,在逗号后面输入条件成立时的值,这个值可以是一个具体的数值、文字、公式等。
4. 在函数的末尾输入“)”并按下回车键,Excel会根据条件的成立情况自动给出相应的结果。
在一个成绩表中,如果要根据学生的成绩判断是否及格,可以使用if函数来实现。
假设成绩单中A列为学生姓名,B列为学生成绩,C 列需要判断学生是否及格,可以在C2单元格中输入“=IF(B2>=60,”及格”,”不及格”)”,然后按下回车键,Excel会根据B2单元格的成绩给出相应的结果。
除了单纯的判断,if函数还可以嵌套使用。
嵌套if函数的语法为在if函数的值为真时的结果和值为假时的结果中再次使用if函数。
这样可以实现更加复杂的条件判断。
在一个销售数据表中,如果要根据销售额的高低来判断销售人员的绩效评定,可以使用嵌套if函数来实现。
假设销售数据表中D列为销售额,E列为绩效评定,要求销售额在1000以上为“优秀”,在500到1000之间为“良好”,在500以下为“一般”,可以在E2单元格中输入“=IF(D2>=1000,”优秀”,IF(D2>=500,”良好”,”一般”))”,然后按下回车键,Excel会根据D2单元格的销售额给出相应的绩效评定。
在使用表格if函数时,需要注意一些问题。
首先要保证输入的条件是正确的,否则会导致if函数给出错误的结果。
excel中if函数的格式及其功能
一、介绍Excel 中的 IF 函数是一种非常常用的逻辑函数,它允许用户在特定条件下返回不同的值。
使用 IF 函数可以根据特定的条件判断来实现不同的计算和处理,是 Excel 中进行逻辑判断的重要工具之一。
本文将介绍 IF 函数的格式及其功能,帮助读者更好地了解和使用这一功能。
二、IF 函数的格式IF 函数的格式如下:=IF(逻辑表达式, 值为真时的返回值, 值为假时的返回值)其中,各部分含义如下:1. 逻辑表达式:即条件判断的逻辑表达式,可以是各种逻辑运算符的组合,比如大于、小于、等于等。
2. 值为真时的返回值:即当逻辑表达式的结果为真时,函数返回的值。
3. 值为假时的返回值:即当逻辑表达式的结果为假时,函数返回的值。
三、IF 函数的功能IF 函数的主要功能是根据逻辑条件来返回不同的值,从而实现按条件进行计算和处理。
具体来说,IF 函数可以实现以下几种功能:1. 条件判断:IF 函数可以根据特定条件来判断并返回不同的值,比如根据考试成绩判断学生是否及格,根据销售额判断业绩是否达标等。
2. 数据筛选:IF 函数可以结合其他函数实现数据的筛选和分类,比如将符合条件的数据单独提取出来或进行特定的处理。
3. 逻辑计算:IF 函数还可以进行复杂的逻辑计算,比如根据多个条件的组合来返回不同的值,实现更加灵活的逻辑判断。
四、IF 函数的示例下面通过一些具体的示例来演示 IF 函数的使用方法和功能:1. 根据成绩判断等级假设有一列学生的考试成绩,现在需要根据成绩判断他们的等级,可以使用以下公式:=IF(A2>=90, "优秀", IF(A2>=80, "良好", IF(A2>=60, "及格", "不及格")))这个公式中,如果成绩大于等于90,返回“优秀”,否则判断成绩是否大于等于80,依次类推。
2. 根据销售额计算提成假设某公司的销售提成按照不同的销售额进行计算,可以使用以下公式:=IF(A2>=xxx, A2*0.1, IF(A2>=5000, A2*0.08, IF(A2>=3000,A2*0.05, 0)))这个公式中,根据销售额的不同区间返回不同的提成比例,从而实现提成的计算。
使用和培训教程-——IF函数的使用方法
IF函数的使用方法IF 函数是Excel 中最常用的函数之一,是一个逻辑判断函数
IF函数解释:
根据条件满足与否,返回不同的值
语法解释:
=IF(条件,"条件满足时返回的值","条件不满足时返回的值")
实例讲解一:单条件判断
=IF(A1="发工资","逛街","在家待着")
公式解释:
如果A1单元格的内容等于发工资,那么就返回逛街,否则就返回在家待着
实例讲解二:多条件判断
= IF ( 表达式,,IF(表达式,,IF(表达式,, )))
=IF(B25>=80,"优秀",IF(B25>=60,"及格","不及格"))
公式解释:
如果B列的值大于或等于80,返回优秀,如果没有大于或等于80则继续判断有没有大于或等于60,如果有返回及格,否则返回不及格
实例三讲解:
=IF(AND(B11>=80,C11="男"),"是","否")
公式解释:如果成绩等于或等于80分并且性别为男,这两个条件同时成立则返回是否则为否,(AND是同时满足条件)
实例四讲解:
=IF(OR(B12>=80,C12="男"),"是","否")
公式解释:
如果成绩等于或等于80分或者性别为男,这两个条件任意满足条件则返回是否则为否,(OR是任意满足条件)。
if函数的使用方法
if函数的使用方法在我们日常处理数据和进行计算时,if 函数是一个非常实用且强大的工具。
无论是在电子表格软件(如 Excel),还是在编程语言(如Python)中,if 函数都能帮助我们根据不同的条件做出相应的决策和处理。
接下来,让我们详细了解一下 if 函数的使用方法。
首先,我们来看看在 Excel 中 if 函数的用法。
在 Excel 中,if 函数的语法通常是这样的:IF(logical_test, value_if_true, value_if_false)。
“logical_test”是要进行判断的条件,可以是一个比较运算(如大于、小于、等于等),也可以是一个逻辑运算(如与、或、非等)。
例如,我们可以写“A1>10”来判断 A1 单元格中的值是否大于 10。
“value_if_true”是当条件为真(即满足“logical_test”)时返回的值。
比如,如果 A1 大于 10,我们希望返回“合格”,那么这里就填写“合格”。
“value_if_false”则是当条件为假(即不满足“logical_test”)时返回的值。
继续上面的例子,如果 A1 不大于 10,我们希望返回“不合格”,这里就写“不合格”。
假设我们有一组学生的考试成绩在 B 列,我们想要根据成绩来判断是否及格。
如果成绩大于等于 60 分为及格,小于 60 分为不及格。
那么,我们可以在 C 列输入以下公式:=IF(B2>=60,"及格","不及格"),然后向下填充,就能快速得到所有学生的成绩判定结果。
再来说说在 Python 中的 if 语句。
Python 中的 if 语句语法如下:```pythonif condition:当条件为真时执行的代码else:当条件为假时执行的代码```这里的“condition”同样是一个条件表达式,其结果为布尔值(True 或 False)。
例如,如果我们要判断一个数是否为偶数,可以这样写:```pythonnum = 10if num % 2 == 0:print(f"{num} 是偶数")else:print(f"{num} 是奇数")```在实际应用中,if 函数(或语句)常常会和其他函数或语句结合使用,以实现更复杂的逻辑判断和处理。
润乾报表查询手册
润乾报表查询手册整理:Yangmc1.怎么实现报表中行(列)的按条件隐藏?在报表设计器中,选择相应报表的主格对应的单元格,在其属性“是否隐藏本行”的表达式中输入if(ds1.count()==0,true,false),具体用法请参考润乾报表的函数帮助。
(设计器中的函数帮助查看对应函数的用法)2.怎么实现报表与jsp文件的无缝结合?在Tag页面中输入<body style="margin: 0px 0px 0px 0px>。
扩展:实现定制结合。
如果还不能达到要求,一般到解析报表文件的那个jsp文件中找错误设置。
如我在应用中遇到这样的情况,我在Tag页面中输入<body style="margin: 0px 0px 0px 0px>,但是在页面顶部还是有一块空白区域,经检查发现是多了一个无用的<table></table>所制。
3.报表中参数传递步骤首先,保证报表中设计没问题,具体表现是在设计器中浏览要达到目标。
其次,在解析报表文件的jsp文件的<% …%>设置参数,具体设置参考testinput.jsp。
最后,在连接中设置传递参数值。
如%root%testinput.jsp?report=””?¶m1=””+¶m2=””+ …4.报表样式设计报表样式设计是在设计器中进行的,通过相应的前景颜色或背景颜色来设置颜色样式。
通过相关的属性设置其他的样式。
基本可以满足开发的需要。
5.层效果设置选中要实现层效果的行(1,2,3,……)或列(A,B,C,……),在对应行类型或列类型的属性值中选择值(表头区,标题区,……)。
在网通项目应用中,我们是把表头设置在jsp页面中,这样也可以实现我们需要的效果。
至于具体怎么设好,可以根据具体应用以及方便性来实现。
6.显示特殊字符如果想要显示特殊字符,最好是用英文中的特殊字符,如果用GBK中的特殊字符,在设计器中没有问题,但是在发布的时候显示为问号(?)。
润乾报表初级教程
润乾报表V4.5初级教程下一页目录1. 前言1.1. 使用对象1.2. 文档目的2. 入门2.1. 制作一张报表的步骤2.2. 启动报表设计器2.3. 选择设计器授权2.4. 连接数据源2.5. 一张最简单的报表2.6. 将报表发布到web上3. 网格式报表3.1. 网格式报表,体会扩展3.2. 显示格式、显示值3.3. 报表区域3.4. 设置预警条件3.5. 增加动态背景色3.6. 取数排序3.7. 导出excel3.8. 内建数据集3.8.1. 内建数据集的概念3.8.2. 内建数据集的用途3.8.3. 编辑内建数据集3.8.4. 内/外部数据集的转换4. 参数4.1. 参数的概念4.2. 参数的使用4.3. 参数模板设计4.4. 将报表和参数模板结合起来发布5. 行式报表5.1. 行式报表的概念5.2. 把网格报表变成行式报表6. 分组报表6.1. 分组报表,体验主子格概念6.2. 多层分组6.3. 汇总统计6.3.1. 分组汇总6.3.2. 汇总样式变换16.3.3. 汇总样式变换26.3.4. 汇总样式变换36.4. 组表头重复6.5. 计算列的汇总6.6. 三维饼形统计图,初步了解统计图的使用6.7. 跟随扩展的统计图7. 交叉报表7.1. 交叉报表,体会横向扩展7.2. 多层交叉,深入了解扩展7.3. 汇总统计,深入了解汇总规则7.4. 定位与拉伸7.5. 柱形统计图,与交叉报表的结合7.6. 跟随扩展的统计图8. 自由报表8.1. 自由格式的报表,深入了解主格概念8.2. 图片字段9. 主子表9.1. 单表式主子报表9.2. 嵌入式主子报表9.3. 引入式主子报表10. 打印10.1. 打印设置10.1.1. 纸张与方向10.1.2. 打印缩放10.1.3. 页边距与对齐10.1.4. 镜像打印10.2. 分页10.2.1. 页眉页脚、表头表尾等的打印方式10.2.2. 分页方式10.2.3. 强制分页10.3. 分栏10.3.1. 业务背景10.3.2. 实际操作10.4. 套打10.4.1. 业务背景10.4.2. 实际操作11. 宏11.1. 宏的概念11.2. 实例11.3. 参数与宏的区别,在web上如何使用宏12. 动态参数的应用12.1. 需求背景12.2. 1实例介绍12.3. 总结12.4. 临时变量13. 动态宏的应用13.1. 需求背景13.2. 实例介绍13.3. 总结14. 高级统计图14.1. 双轴柱线图14.2. 双轴折线图14.3. 时间走势图14.4. 时序状态图14.5. 甘特图14.6. 仪表盘14.7. 雷达图14.8. 里程碑图14.9. 工字图14.10. 全距图京C备05019289号版权信息@CopyRight 北京润乾信息系统技术有限公司第 1 章前言上一页下一页第 1 章前言目录1.1. 使用对象1.2. 文档目的1.1. 使用对象润乾报表V4.5初级教程适用于对报表业务有一定的了解,需要学习润乾报表的初学者。
润乾报表高级设计二
练习-动态参数1
要求:在参数报表的基础上修改,只需输入起始 日期,显示起始日期之当前系统日期期间的订单 情况。
动态参数
练习-动态参数2
要求动态查询出所输入的日期所在周的一周订单 情况。
二、动态宏
宏是个字符串标识 宏没有数据类型 报表运算前进行宏替换,即字符串替换,替换结束才 进行报表运算
宏的用法
带参数的报表组的发布
制作参数表单
分别用<report:param>和<report:group>发布参数 报表和报表组
填报报表组的发布
填报表组要求报表组的所有报表均为填报表,制 作方式与普通报表组一样,只需将发布用的jsp文 件略作改动即可将报表组以填报的形式发布 。 <report:group groupFileName="sheet3.rpg" isInput="yes" funcBarLocation="top“ /> 增加属性 isInput="yes"
制作步骤
前提:与做常规报表一样制作报表组中的所有报 表,分别保存为raq文件。 开始制作报表组
报表源
填报表源的路径,可以是url,绝对路径,也可以是相对路径。 URL 只要能够返回一个报表模板文件流的URL均可以 绝对路径 资源管理器中报表模板的全路径文件名 相对路径 如果是相对路径的话,编辑器中相对于 系统/选项 中配置的应用资源路径; web发布中相对于reportconfig.xml里配置的reportFileHome属性中的报表文 件路径。
sql语句中使用宏
举例:SELECT contract.contractno,contract.${macro1},contract.amo unt FROM contract WHERE contract.signdate >? and contract.signdate <? ORDER BY contract.signdate ASC
润乾报表函数文档
润乾报表函数文档数据集函数Avg函数说明:从数据集中,从满足条件的记录中,算出给定字段或表达式的平均值语法:datasetName.avg(selectExp{,filterExp})datasetName.average(selectExp{,filterExp})参数说明:selectExp 需要计算平均值的字段或表达式,数值类型filterExp 过滤条件表达式返回值:实数举例:例1:ds1.avg(score,sex="1")表示从数据集的当前记录行集中过滤出sex为"1"的记录集合,求得其score字段的平均值,score字段要求为数值型。
例2:ds2.avg(quantity*price)表示对数据集的当前记录行集求得表达式quantity*price的平均值函数说明:此函数功能等同select1(),但是算法不同,采用二分法,适用于数据集记录已经按照参考字段排好序的情况,运算速度比select1()快bselect1语法:datasetName.bselect_one(selectExp,referExp1,referDescExp 1,referV alueExp1{,referExp2,referDescExp2,referV alueExp2{....}}})datasetName.bselect1(selectExp,referExp1,referDescExp1,ref erV alueExp1)参数说明:selectExp 选出字段或表达式referExp1 参考字段表达式referDescExp1 参考字段表达式的数据顺序,true表示降序排列,false表示升序排列referV alueExp1 参考字段的值表达式,一旦找到参考字段和该值相同的记录,即返回selectExp的值返回值:数据类型不定,由selectExp的运算结果决定示例:例1:ds1.bselect1(name,id,false,@value)采用二分法,找到数据集ds1中id和当前格的值相等的记录,返回其name字段值例2:ds1.bselect1(name,id,false,@value,class,false,A1,sex,true,B1) 采用二分法,找到数据集ds1中id和当前格的值相等、class和A1相等且sex和B1相等的记录,返回其name字段值Bselect_one()此函数同数据集函数bselect1colcount()函数说明:获得数据集的列数语法:datasetName.colcount()返回值:整数举例:例1:ds1.colcount() 获得ds1数据集的列数,整数类型函数说明:计算数据集当前记录行集中,满足条件的记录数count()语法:datasetName.count({filterExp})参数说明:filterExp 条件表达式,如果全部选出,则不要此参数,返回值:整数举例:例1:ds1.count()例2:ds1.count(true)含义同上,但是运算速度比ds1.count()慢,因此当记录全部选出时,建议不要true例3:ds1.count(quantity>500)表示从ds1当前记录行集中选出quantity>500的记录进行计数,返回记录数。
润乾报表实用技巧大全
=floor(3451231.234,1)
返回: 3451231.2
round()
对数据在指定位置上 进行截取,剩余部分 四舍五入
=round(3451251.274,1)
返回: 3451251.3
字符串函数
函数名称 函数说明
去掉字符串左右的空 串
实例
实例说明
trim()
trim(" abc ")
常用单元格函数
函数名称 函数说明
对可扩展单元格或集 合表达式求平均值
实例
实例说明 表示当前主格扩 展区域内所有扩 展后的B1单元 格的平均值
avg()
avg(B1{})
if()
根据布尔表达式的不 同计算结果,返回不 同的值。
求当前格的值大 if(value()>100,-65536) 于100时,返回65536颜色值 求当前主格扩展 区域内所有扩展 后的B1单元格 的个数
相同的大小写,并将电子签名文件存放到润乾文件目录下的统一目
录中。如下所示。
2.在需要签名的单元格上右击,选择“数据类型”,在弹出的对话框中 选择图片文件。
制作电子签名
3.修改内容为:=“reportFiles/image/”+RNAM+“.jpg” 点确定保存。
制作电子签名
4.在浏览器中查看签名
网格式填报表-自动计算
• 基本概念
– 在客户端浏览器中跟据输入自动实现单元格值计算
输入自动计算的表达式的规则如下:
• 自动计算的表达式语法规则全部采用 操作 JavaScript 的语法规则。 • 自动计算的表达式中,如果需要相对引用单元格,即当报表进行扩展 注意
打印补空行
润乾报表使用手册
报表使用手册XX股份有限公司中国济南目录1概述.............................................................................................................................. - 3 - 2安装.............................................................................................................................. - 3 -2.1准备好安装程序.......................................................................................... - 3 -2.2安装中的选项.............................................................................................. - 3 -2.3授权文件配置.............................................................................................. - 4 - 3报表制作...................................................................................................................... - 5 -3.1报表制作要求.............................................................................................. - 5 -3.2制作一张报表的步骤.................................................................................. - 5 -3.3启动报表设计器.......................................................................................... - 6 -3.4连接数据源.................................................................................................. - 7 -3.4.1 数据源对话框......................................................................................... - 7 -3.4.2 编辑数据源............................................................................................. - 7 -3.4.3 注意事项................................................................................................. - 9 -3.5设计报表格式.............................................................................................. - 9 -3.5.1 格式设计................................................................................................. - 9 -3.5.2 需注意事项........................................................................................... - 10 -3.6定义参数.................................................................................................... - 10 -3.6.1 参数的编辑........................................................................................... - 10 -3.6.2 常用参数举例....................................................................................... - 11 -3.7定义宏........................................................................................................ - 11 -3.7.1 宏的编辑............................................................................................... - 11 -3.7.2 常用宏举例........................................................................................... - 12 -3.8建立数据集................................................................................................ - 12 -3.8.1 数据集的编辑....................................................................................... - 12 -3.8.2 常用数据集举例................................................................................... - 13 -3.9设置单元格属性........................................................................................ - 14 -3.9.1 数据集在单元格中应用....................................................................... - 14 -3.9.2 显示格式............................................................................................... - 14 -3.9.3 设置预警条件....................................................................................... - 15 -3.9.4 增加动态背景色................................................................................... - 15 -3.9.5 按参数隐藏列....................................................................................... - 16 -3.9.6 主格应用............................................................................................... - 16 -3.10报表预览.................................................................................................... - 17 -3.11报表发布.................................................................................................... - 17 - 4报表部署.................................................................................................................... - 18 -4.1部署位置.................................................................................................... - 18 -4.2Web中显示................................................................................................ - 18 - 5重要概念.................................................................................................................... - 19 -5.1数据源........................................................................................................ - 19 -5.2数据集........................................................................................................ - 19 -5.3参数............................................................................................................ - 19 -5.4宏定义........................................................................................................ - 22 -5.5单元格........................................................................................................ - 22 -5.6主格............................................................................................................ - 23 - 6常用函数.................................................................................................................... - 25 -6.1数据集函数................................................................................................ - 25 -6.1.1 select() .................................................................................................... - 25 -6.1.2 select1() .................................................................................................. - 25 -6.1.3 count() .................................................................................................... - 26 -6.2单元格函数................................................................................................ - 26 -6.2.1 if() ........................................................................................................... - 26 -6.2.2 row() ....................................................................................................... - 26 -6.2.3 value() .................................................................................................... - 26 -6.3字符串函数................................................................................................ - 26 -6.3.1 pos() ....................................................................................................... - 26 -6.3.2 mid() ....................................................................................................... - 26 -6.4数据类型转换函数.................................................................................... - 26 -6.4.1 dateTime() .............................................................................................. - 26 -6.4.2 str() ......................................................................................................... - 26 -1概述该文档主要满足iES-E200电量采集系统中自定义报表制作编写。
if函数的使用方法
if函数的使用方法IF函数一般是指Excel中的IF函数。
下面是为您带来的Excel 中if函数的一些使用方法,希望对大家有所帮助。
if函数的使用方法if函数除了遵守一般函数的通用规则以外,还有其特有的注意事项。
1 括号必须成对,上下对应。
2 if函数有N个条件则有N+1个结果,即若结果只有3种情况的,那么条件只要2个就够了。
3 if函数最多允许出现8个返回值(结果),也就意味着,最多套用7个if 。
4 多个if嵌套时,尽量使用同一种逻辑运算符。
即:统一使用大于号或者统一使用小于号。
避免出现不必要的错误。
5 if是个好函数,很管用。
哈哈。
他的格式是:=if(条件1,返回值1,返回值2) 。
多个嵌套的格式:=if(条件1,返回值1,if(条件2,返回值2,if(条件3,返回值3,返回值4))) 。
这里先写3层嵌套,4、5、6、7层同理。
IF函数介绍IF函数一般是指Excel中的IF函数,根据指定的条件来判断其“真”(TRUE)、“假”(FALSE),根据逻辑计算的真假值,从而返回相应的内容。
可以使用函数IF 对数值和公式进行条件检测。
IF函数的语法IF(logical_test,value_if_true,value_if_false)Logical_test 表示计算结果为TRUE 或FALSE 的任意值或表达式。
例如,A10=100 就是一个逻辑表达式,如果单元格A10 中的值等于100,表达式即为TRUE,否则为FALSE。
本参数可使用任何比较运算符(一个标记或符号,指定表达式内执行的计算的类型。
有数学、比较、逻辑和引用运算符等。
)。
Value_if_true logical_test 为TRUE 时返回的值。
例如,如果本参数为文本字符串“预算内”而且logical_test 参数值为TRUE,则IF 函数将显示文本“预算内”。
如果logical_test 为TRUE 而value_if_true 为空,则本参数返回0(零)。
excelif函数的使用方法
excelif函数的使用方法IF函数是Excel中一个非常重要的函数之一,它允许我们根据其中一种条件对数据进行分析和处理。
IF函数的基本语法如下:IF(condition, value_if_true, value_if_false)其中,condition是一个逻辑表达式,可以是任何产生TRUE或FALSE 结果的表达式;value_if_true是条件成立时的返回值;value_if_false 是条件不成立时的返回值。
下面是一些IF函数的常见使用方法:1.基本用法最常见的IF函数用法是根据一些条件来判断结果。
例如,我们可以使用IF函数来判断一个学生的成绩是否及格:=IF(A1>=60,"及格","不及格")这个公式的意思是,如果A1单元格的值大于等于60,返回"及格",否则返回"不及格"。
2.多个条件IF函数还可以嵌套使用,从而实现多个条件的判断。
例如,假设我们要根据一个学生的考试成绩来判断其等级:=IF(A1>=90,"优秀",IF(A1>=80,"良好",IF(A1>=70,"中等",IF(A1>=60,"及格","不及格"))))这个公式中,每个IF函数都是前一个IF函数的value_if_false参数,这样就可以根据不同的条件判断出学生的等级。
3.逻辑运算符在IF函数中,我们可以使用逻辑运算符(如AND、OR、NOT)来组合多个条件。
例如,我们要判断一个学生是否既及格又遵守纪律:=IF(AND(A1>=60,B1="是"),"符合要求","不符合要求")这个公式中,AND函数用于判断两个条件是否同时成立,如果是,则返回"符合要求",否则返回"不符合要求"。
自定义函数实现润乾报表call函数功能
自定义函数实现报表call函数功能关键字:自定义增强函数call 存储过程使用前注意由于增强函数是授权控制的功能点,所以这种在简单版本下实现增强函数的功能请慎用。
本文介绍的方式适用于客户开发时使用的全功能临时授权,而正式购买的版本中无增强函数,销售要求在现有版本上实现增强函数的功能。
使用时可根据实际情况适当采用。
问题背景某客户购买的报表开发版(无增强套件),而他们在开发报表阶段使用的是全功能临时授权,报表中使用了大量的call query seq等增强函数,正式上线时发现报表不可用,提示使用了增强函数。
客户处已无预算增购增强套件,销售要求在现有版本上实现报表call函数等功能。
问题分析报表call函数的作用是调用存储过程,并将输出参数返回给报表。
可以通过自定义函数,在程序里调用存储过程,并将输出参数作为自定义函数的返回值返回给报表。
所以在自定义函数中要实现如下几块功能:1、解析自定义函数中的传递的报表表达式参数,如:A1;2、根据相应参数调用存储过程并接收存储过程输出参数;3、将输出参数值返回具体实现自定义函数名:callProcedure,参数:存储过程名,输入参数1、接收参数,并解析// 取得第一个参数,默认为表达式,需要把该表达式算出来,结果才是函数的参数值Expression param1 = (Expression) this.paramList.get(0);Expression param2 = (Expression) this.paramList.get(1);// 算出参数值Object result1 = Variant2.getValue(param1.calculate(ctx, isInput),false, isInput);Object result2 = Variant2.getValue(param2.calculate(ctx, isInput),false, isInput);2、调用存储过程//获取ctx中保存的连接工厂连接conn = ctx.getConnectionFactory("mysqlProc").getConnection();//调用存储过程cstmt = conn.prepareCall("{call "+procName+"(?,?)}");cstmt.setString(1, inParam);//设置第一个输入参数值cstmt.registerOutParameter(2, Types.VARCHAR);//将 OUT 参数注册为 JDBC 类型 sqlTypecstmt.execute();outParam = cstmt.getString(2);//接收输出参数的值3、将输出参数值返回给报表return outParam;//函数返回值源程序:1、mysql存储过程create procedure nameProc(in id varchar(10),out name varchar(50))beginset name =CONCAT(id,'aaa');end2、自定义函数CallProcedure.javapackage customFunction;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Types;import com.runqian.base4.resources.EngineMessage;import com.runqian.base4.resources.MessageManager;import com.runqian.base4.util.ReportError;import com.runqian.report4.model.expression.Expression;import com.runqian.report4.model.expression.Function;import com.runqian.report4.model.expression.Variant2;import ermodel.Context;public class CallProcedure extends Function{public Object calculate(Context ctx, boolean isInput) { /***计算报表参数*///判断参数个数if (this.paramList.size() < 1) {MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+ mm.getMessage("function.missingParam"));}// 取得第一个参数,默认为表达式,需要把该表达式算出来,结果才是函数的参数值Expression param1 = (Expression) this.paramList.get(0);Expression param2 = (Expression) this.paramList.get(1);if (param1 == null) {// 判断参数是否为空MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+mm.getMessage("function.invalidParam"));}if (param2 == null) {// 判断参数是否为空MessageManager mm = EngineMessage.get();throw new ReportError("encrypt:"+mm.getMessage("function.invalidParam"));}// 算出参数值Object result1 = Variant2.getValue(param1.calculate(ctx, isInput),false, isInput);Object result2 = Variant2.getValue(param2.calculate(ctx, isInput),false, isInput);// 判断第一个参数值是否为空if (result1 == null) {return null;}if (result2 == null) {return null;}String procName = result1.toString();//存储过程名String inParam = result2.toString();//输入参数Connection conn = null;CallableStatement cstmt = null;Statement stmt = null;ResultSet rs = null;String outParam = null;try {//获取ctx中保存的连接工厂连接conn =ctx.getConnectionFactory("mysqlProc").getConnection();//调用存储过程cstmt = conn.prepareCall("{call "+procName+"(?,?)}");cstmt.setString(1, inParam);//设置第一个输入参数值cstmt.registerOutParameter(2, Types.VARCHAR);//将 OUT 参数注册为 JDBC 类型 sqlTypecstmt.execute();outParam = cstmt.getString(2);//接收输出参数的值} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(cstmt!=null)cstmt.close();if(conn!=null)conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return outParam;//函数返回值}}。
excel公式if的用法
excel公式if的用法Excel是一款功能强大的电子表格软件,广泛应用于各个领域。
其中,IF函数是Excel中最常用的函数之一,它可以根据特定的条件来进行逻辑判断,并返回相应的结果。
下面将介绍IF函数的用法及其在实际工作中的应用。
IF函数的基本语法为:=IF(条件, 结果1, 结果2)。
其中,条件是一个逻辑表达式,用于判断是否满足某个条件;结果1是当条件为真时返回的结果;结果2是当条件为假时返回的结果。
首先,我们来看一个简单的例子。
假设我们要根据学生成绩判断其等级,如果成绩大于等于90分,则为优秀;如果成绩大于等于80分,则为良好;如果成绩大于等于60分,则为及格;否则为不及格。
我们可以使用IF函数来实现这个功能。
假设学生成绩存储在A列,等级存储在B列,我们可以在B2单元格中输入以下公式:=IF(A2>=90, "优秀", IF(A2>=80, "良好", IF(A2>=60, "及格", "不及格")))。
然后将公式拖拽至其他单元格,即可得到相应的等级。
除了基本的IF函数外,Excel还提供了一些其他的IF函数变体,用于处理更复杂的逻辑判断。
例如,IFERROR函数可以用于处理错误值。
假设我们要计算A列和B列的商,但是B列中可能存在0值,这样会导致除零错误。
我们可以使用IFERROR函数来处理这种情况。
假设A列存储被除数,B列存储除数,商存储在C列,我们可以在C2单元格中输入以下公式:=IFERROR(A2/B2, "除零错误")。
这样,如果B列中存在0值,C列中将显示“除零错误”。
另一个常用的IF函数变体是IFNA函数,用于处理#N/A错误。
假设我们要查找某个值在某个范围内的位置,如果找不到,则返回“未找到”。
我们可以使用IFNA函数来处理这种情况。
假设要查找的值存储在A列,范围存储在B列到E列,结果存储在F列,我们可以在F2单元格中输入以下公式:=IFNA(MATCH(A2, B2:E2, 0), "未找到")。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。