水晶报表常用字段
- 格式:docx
- 大小:427.52 KB
- 文档页数:5
水晶报表应用需求尽含于此——高级参数功能!!!(编辑:海波.NET)------------------------------------------------高级参数功能在报表内使用参数的方法有很多种。
本节介绍一些使用参数的高级方法:1、创建具有多个值的参数2、使用参数字段应用条件格式设置3、使用参数字段创建报表标题4、指定单个值或范围值5、将参数包含在公式中6、使用参数字段定义排序顺序7、使用编辑掩码定义输入类型和格式------------------------------------------------1、创建具有多个值的参数在“视图”菜单上单击“字段资源管理器”。
选择“参数字段”并单击“新建”。
输入“名称”和“提示文本”。
选择“值类型”。
选择“允许多个值”复选框以便能将多个值输入到参数中。
允许单独使用或组合使用离散类型的值和范围类型的值。
注意:有关单个值或范围值的详细信息,请参阅指定单个值或范围值。
单击“设置默认值”以确定允许输入的输入值类型。
出现“设置默认值”对话框。
从“浏览表”下拉列表中选择默认值的表。
从“浏览字段”下拉列表中选择默认值的字段。
与该表和字段相关联的值出现在“选择或输入要添加的值”区域中。
选择列出的值或创建您自己的值,然后使用箭头按钮将它们移动到“默认值”区域。
根据需要调整显示、顺序和长度限制。
单击“确定”。
------------------------------------------------2、使用参数字段应用条件格式设置参数字段可用于创建条件格式设置公式。
每当刷新报表数据时,都可以自定义这些公式。
条件格式设置公式可用于对满足特定条件的数据做颜色标记。
例如:销售额超过10% 限额的销售代表。
在上一季度没有定货的客户。
上个月没有任何周转的存货。
如果标记这些项所基于的条件永不更改,则不需使用参数字段。
可只使用公式(对于文本标记)或条件格式设置(对于边框标记)。
⽔晶报表公式使⽤必读⽬录:⼀、公式组件⼆、公式语法三、公式类型----------------------------------------------------------------公式包含两个关键部分:组件和语法。
组件是创建公式所添加的部分,⽽语法是组织组件所遵循的规则。
在 Crystal Reports 中有⼏种不同种类的公式:报表、格式化、选定、搜索、运⾏总计条件和警报公式。
报表中的多数公式为报表公式和条件格式化公式。
----------------------------------------------------------------⼀、公式组件在 Crystal Reports 中创建公式与在任何电⼦数据表应⽤程序中创建公式类似。
可以在公式中使⽤下列组件:字段⽰例:{客户.客户名}、{客户.去年销售额}数字⽰例:1、2、3.1416Text⽰例:“数量”、“:”、“您的⽂本”运算符⽰例:+(加)、/(除)、-x(求负)运算符是可以在公式中使⽤的操作。
函数⽰例:Round (x)、Trim (x)函数执⾏求平均值、求和与计数之类的计算。
列出所有可⽤的函数,其参数⼀并列出,并根据⽤途排列。
⾃定义函数⽰例:cdFirstDayofMonth、cdStatutoryHolidays⾃定义函数提供了⼀种共享和重复使⽤公式逻辑的途径。
它们可存储在 Crystal 储备库中,⽽后可将其添加到报表中。
⼀旦⾃定义函数添加到报表后,当创建公式时,⽤户就可在“公式专家”中使⽤⾃定义函数。
控制结构⽰例:“If”和“Select”、“For”循环组字段值⽰例:Average (fld, condFld)、Sum (fld, condFld, "条件")组字段值对组进⾏汇总。
例如,可以使⽤组字段值来得出各个组在总计中所占百分⽐。
其它公式⽰例:}、}有关详细信息,请参阅公式语法。
⽔晶报表参数字段在代码中赋值阅读全⽂下载例⼦:根据参数⾃段可得到具体要显⽰哪些报表// 声明将参数传递给查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields ();ParameterField paramField = new ParameterField ();ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();ParameterRangeValue rangeVal = new ParameterRangeValue ();// 第⼀个参数是具有多个值的离散参数。
设置参数字段的名称,它必须和报表中的参数相符。
paramField.ParameterFieldName = "客户姓名";// 设置第⼀个离散值并将其传递给该参数。
discreteVal.Value = "AIC Childrens";paramField.CurrentValues.Add (discreteVal);// 设置第⼆个离散值并将其传递给该参数。
discreteVal 变量被设置为新值,这样,以前的设置就不会被覆盖。
discreteVal = new ParameterDiscreteValue ();discreteVal.Value = "Aruba Sport";paramField.CurrentValues.Add (discreteVal);// 将该参数添加到参数字段集合。
paramFields.Add (paramField);// 第⼆个参数为区域值。
paramField 变量被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField ();// 设置参数字段的名称,它必须和报表中的参数相符。
水晶报表入门教程:对比FineReport之报表参数水晶报表入门教程:对比FineReport之报表参数水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的报表参数设置功能。
水晶报表参数设置功能如下:参数提示报表用户输入信息。
将参数看作是在报表生成之前用户需要回答的问题。
用户输入的信息或用户响应的方式决定报表的内容。
例如,在销售人员使用的报表中,或许有要求用户选择地区的参数。
该报表将返回特定地区的结果,而不是返回所有地区的结果。
通过在公式、选定公式和报表中使用参数字段,可创建单个报表,并可随时根据需要对其进行修改。
参数字段也可用于子报表。
、创建参数字段1.进行检查以确保报表已在“设计”选项卡中打开。
该过程使用Crystal Reports软件中包含的示例报表Group.rpt。
2.在“视图”菜单上单击“字段资源管理器”。
提示:执行此任务的另一种方法是单击“标准”工具栏上的“字段资源管理器”按钮。
3.出现“字段资源管理器”对话框。
4.选择“参数字段”并单击“新建”。
出现“创建参数字段”对话框。
5.在“名称”字段中输入参数的名称(最多255个字母数字字符)。
本例使用“国家和地区”。
6.在“提示文本”字段中输入想要的提示文本(最多255个字母数字字符)。
这是在刷新报表后,出现在“输入参数值”对话框中的文本。
本示例使用“选择一个国家/地区”。
7.从列表中选择适当的“值类型”。
本示例使用“字符串”。
使用参数字段时,需要注意下列事项:参数字段支持下列数据类型:布尔值:要求回答是/否或true/false。
示例:在摘要中包括计划预算数吗?货币:要求一个美元金额。
示例:显示购买金额超过XXXXX的客户。
日期:要求采用日期格式回答。
示例:输入季度的开始和结束日期。
日期时间:要求日期和时间。
示例:显示07/04/19991:00pm-2:00pm之间的统计。
数字:要求一个数值。
水晶报表中select 用法在水晶报表中,使用SELECT语句是非常常见的操作。
SELECT语句用于从数据库表中检索数据,根据特定的条件筛选并返回所需的数据。
本文将详细介绍水晶报表中SELECT语句的用法,并给出一些示例以帮助读者更好地理解。
在水晶报表中,SELECT语句可以用于以下几个方面:1. 选择所有字段:使用SELECT * FROM 表名,可以选择指定表中的所有字段。
例如,SELECT * FROM Employees可以选择Employees表中的所有字段。
2. 选择特定字段:使用SELECT字段1, 字段2, ... FROM 表名可以选择指定表中的特定字段。
例如,SELECT EmployeeID, LastName, FirstName FROM Employees可以选择Employees表中的EmployeeID、LastName和FirstName字段。
3. 选择特定条件的记录:使用SELECT字段 FROM 表名 WHERE 条件可以选择满足特定条件的记录。
例如,SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice > 50可以选择Products表中UnitPrice大于50的记录,并返回ProductName和UnitPrice字段。
4. 按照指定条件对结果进行排序:使用SELECT字段 FROM 表名 ORDER BY字段1, 字段2, ...可以按照指定的字段对结果进行排序。
例如,SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC可以按照UnitPrice字段进行降序排序,返回Products表中的ProductName和UnitPrice字段。
5. 对选择的结果进行聚合计算:使用SELECT 聚合函数(字段) FROM 表名GROUP BY 字段可以对选择的结果进行聚合计算。
⽔晶报表Crystal语法实⽤字段编辑公式字段转⽇期⽂本totext ({IC_AvailabilityContract.Thedatethecontractissigned},"yyyy年MM⽉dd⽇")产品图⽚超链接,尚未研究出⽔晶报表⾥直接显⽰图⽚,给个图⽚超链接算折中⽅案。
if Trim({})<>""then"<a href='/upload/"+{ProductView.Picurl}+"' target='_blank'>"+{}+"</a>"else{};字段分割显⽰{ProductView.AttributeCatogory}内容为“1;2;3……”或“1|2|3|4”时,取固定元素内容⽤if Trim({ProductView.AttributeCatogory})<>"" AND Count(Split({ProductView.AttributeCatogory},";"))>=1thenSplit({ProductView.AttributeCatogory},";")[1]else""报表⾃定义函数⽤作报表字段点击转向对应产品⽹页⽤,参数为⾃增长主键Function (numberVar v1)"<a href='/product_detailed.aspx?id="+ Replace (ToText(v1),".00" ,"" )+"' target='_blank'>"+ Replace (ToText(v1),".00" ,"" )+"</a>"其实这是个个⼈备忘,⽤到crystal的童鞋可以看看。
水晶报表讲义[键入文字]水晶报表课程讲义苏州工业园区博思企业管理咨询有限公司1 / 58[键入文字]第一章水晶报表的作用 ..................................................................... ............................... 4 第二章做一个简单的报表 ..................................................................... .............................. 4 第三章报表打印位置与打印机设置 ..................................................................... ................ 6 1、报表打印位置 ..................................................................... ............................................ 6 2、打印机设置 ..................................................................... ................................................ 7 第四章数据库专家 ..................................................................... ............................................ 7 第五章报表中字段 ..................................................................... ............................................ 7 1、数据库字段 ..................................................................... ................................................ 7 2、公式字段 ..................................................................... .................................................... 8 3、sql表达式字段 ..................................................................... .......................................... 8 4、参数字段 ..................................................................... .................................................... 8 5、运行总计字段 ..................................................................... .......................................... 10 6、特殊字段 ..................................................................... .................................................. 11 7、文本字段 ..................................................................... .................................................. 11 8、图片字段 ..................................................................... .................................................. 12 第六章排序、分组、过滤 ..................................................................... .............................. 14 1、排序 ..................................................................... .......................................................... 14 2、分组 ..................................................................... .......................................................... 15 3、过滤 ..................................................................... .......................................................... 16 第七章多节报表 ..................................................................... .............................................. 17 1、防止可变长度的对象相互覆盖 ..................................................................... .............. 17 2、当字段为空时消除空白行 ..................................................................... ...................... 18 3、在特定情况下添加空白行 ..................................................................... ...................... 19 4、使对象延续到后续节 ..................................................................... .............................. 21 第八章图表 ..................................................................... ...................................................... 21 1、图表类型 ..................................................................... .................................................. 21 2、使用数据库中字段绘制图表 ..................................................................... .................. 28 3、使用汇总或小计字段上绘制图表 ..................................................................... .......... 34 4、在交叉表中绘制图表 ..................................................................... .............................. 38 第九章 OLE对象 ..................................................................... .. (38)2 / 58[键入文字]1、插入静态OLE对象 ..................................................................... .................................. 39 2、插入嵌入对象 ..................................................................... .......................................... 39 3、插入链接对象 ..................................................................... .......................................... 40 第十章交叉表 ..................................................................... .................................................. 41 1、交叉表示例 ..................................................................... .............................................. 41 2、在交叉表中插入图表 ..................................................................... .............................. 43 第十一章报表警报 ..................................................................... .......................................... 46 第十二章公式 ..................................................................... .................................................. 47 1、公式的用途 ..................................................................... .............................................. 48 2、公式的创建 ..................................................................... .............................................. 48 第十三章自定义函数 ........................................................................................................... 50 1、自定义函数的使用 ..................................................................... .................................. 50 第十四章子报表 ..................................................................... .............................................. 53 1、子报表与主报表之间的区别 ..................................................................... .................. 53 2、何时使用子报表 ..................................................................... ...................................... 53 3、将不相关的报表组合到单个报表中 ..................................................................... ...... 54 4、一对多查询 ..................................................................... .............................................. 55 5、协调无法链接的数据 ..................................................................... .............................. 57 6、在单个报表中显示相同数据的不同视图 ...................................................................583 / 58[键入文字]第一章水晶报表的作用一、创建所能想象的任何报表Crystal Reports 几乎可以从任何数据源生成您需要的报表。
VB中水晶报表使用第一步:在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。
这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:Option Explicitdim Report as New Cystal1Private Sub Form_Load()Screen.MousePointer = vbHourglass '调用水晶报表时置鼠标为沙漏状CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改CRViewer91.ViewReportScreen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状End SubPrivate Sub Form_Resize()CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd Sub第二步:点击Crystal Report设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。
最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。
第三步:该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。
代码如下:Public conn As New ADODB.ConnectionPublic rs As New ADODB.Recordset第四步:关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。
⽔晶报表-控制结构-If表达式(Crystal语法)当对公式求值时,没有控制结构的公式只执⾏⼀次公式中的每个表达式。
表达式按顺序执⾏,从公式的第⼀个表达式到最后⼀个表达式。
控制结构能使这种死板的顺序有很多变化。
根据所选的控制结构不同,您可以跳过⼀些表达式或根据某些条件对⼀些表达式重复求值。
控制结构是表达商务逻辑的主要⽅法,典型的报表公式都⼴泛采⽤它。
If 表达式(Crystal 语法)If 表达式是最有⽤的控制结构之⼀。
它使您得以在条件为 true 时对⼀系列表达式求值,⽽在条件不为 true 时对其他⼀系列表达式求值。
注意⽤条件公式格式设置时,始终要包括 Else 关键字;否则,不符合 If 条件的值可能不会保留原来的格式。
为避免此类情况发⽣,可以使⽤DefaultAttribute 函数 (If...Else DefaultAttribute)。
某公司计划发给其员⼯ 4% 的奖⾦,⽽销售部门的员⼯将得到 6% 的奖⾦。
下⾯的公式使⽤ If 表达式实现这⼀⽬的:If {Employee.Dept} = "Sales" Then{Employee.Salary} * 0.06Else{Employee.Salary} * 0.04在本⽰例中,若条件 {雇员.部门} = "Sales" 求值为真,则处理{Employee.Salary} * 0.06表达式。
否则处理 Else 后⾯的表达式,也就是{Employee.Salary} * 0.04表达式。
假设另⼀公司想要发给其员⼯ 4% 的奖⾦,但奖⾦最低⾦额是 $1,000。
注意没有包含 Else ⼦句;该⼦句是可选的,在这种情况下并不需要。
Local CurrencyVar bonus := {Employee.Salary} * 0.04;If bonus < 1000 Thenbonus := 1000;//最后⼀个表达式正好是变量 'bonus'。
水晶报表中select 用法在使用水晶报表进行数据分析和报表制作的过程中,select 语句是至关重要的部分。
select 语句是用来从数据库中选择数据的关键语句,它可以根据需要选择特定的字段,进行筛选和排序,以便得到所需的数据结果。
在水晶报表中,合理灵活地运用select 语句可以帮助我们更好地完成报表制作和数据分析工作。
以下将详细介绍水晶报表中select 语句的用法。
一、基本的select 语句在水晶报表中,最常见的select 语句是用来选择特定的字段,以便进行数据展示和分析。
基本的select 语句的格式为:1. SELECT field1, field2, ...FROM table_nameWHERE condition;其中,"SELECT" 后面跟着需要选择的字段,可以是一个字段也可以是多个字段,用逗号分隔;"FROM" 后面是数据来源的表名;"WHERE" 后面是筛选条件。
通过这种基本的select 语句,我们可以从数据库中选择特定的字段,并按照条件进行筛选,得到我们需要的数据结果。
二、select 语句的扩展用法除了基本的选择字段和筛选条件之外,select 语句还可以通过一些扩展用法来实现更加灵活的数据分析和报表制作。
2.1 使用别名在水晶报表中,我们经常需要给选择的字段添加别名,方便在报表中进行展示。
可以通过以下方式实现别名的设置:SELECT field1 AS alias1, field2 AS alias2, ...FROM table_nameWHERE condition;通过"AS"关键字,我们可以给选择的字段设置别名,这样在报表中展示的时候,可以更加直观地表达字段的含义,方便用户理解。
2.2 聚合函数的使用在数据分析过程中,我们经常需要对数据进行聚合计算,例如求和、平均值、最大值、最小值等。
浅谈水晶报表(Crystal Reports)缘由Crystal Reports在中国算是个知名度不低的软件,但论起实际的了解,或相关于国外的同意度来比较,Crystal Reports显然在中国这块土地上,还有待尽力。
笔者从1999年末开始接触Crystal Reports以来,从报表精灵试探起到熟悉许多细节,再加上项目中协助客户的建置等等的进程下来,深深感觉此软件在报表上能够发挥的空间相当大。
也因此我希望透过这篇文章的介绍,让更多人能明白Crystal Reports的精华。
历史Crystal Reports自问市以来已有十余个年头,开始被人们较注意到应该推算到Microsoft的Visual Basic 5开始,因为其中Bundle了Crystal Reports的版。
随着时刻的通过,目前2005年要面市的是XI(数字编号为11)版,但其中还有类似像的版本,因此其实早就过13个版本以上了。
也因为经历许连年,有些人对Crystal Reports的印象还停留在超级久远的版本(如VB 5的版),事实上对那个不断前进的产品是不太公平的。
像是9版开始,便完满是以Unicode为其核心,省去了以往多国语言所造成的困扰。
专门是因特网发达以来,它的技术也是突飞猛进,像是MS的IIS,目前已到6版,而Crystal Reports那么是从7版开始有可配合Web Server。
我想此刻应该可不能还有人用IIS的1版吧,因此Crystal Reports产品也请以较新的版本来搭配利用。
报表的标准性报表有所谓的标准吗?有的,假设提起目前市面上的开发主流,大伙儿会拿出来讨论的应该只有两个标准方向:Microsoft .NET和Java。
Crystal Reports自从Microsoft的Visual Basic 5开始,直到目前的Visual Studio .NET 2002/2003乃至于今年会面市的2005,都一直选用Crystal Reports做为其中的报表工具,可见其功能及技术上都深受这世界第一大软件商的确信。
c#⽔晶报表使⽤说明⽔晶报表介绍⽔晶报表是 vs 早期版本⾃带的⼀款报表控件。
vs2017不⾃带⽔晶报表,需要⾃⾏安装。
虽然⽔晶报表是收费控件,但是微软已经付过钱了,所以vs⾃带的⽔晶报表可以直接使⽤。
如果项⽬是 .net 4.0 以上版本,需要修改 App.config ⽂件。
因为⽔晶报表的 .net 版本可能低于 .net 4.0在软件发布的时候需要把对应的config⽂件⼀起发布,否则也⽆法使⽤⽔晶报表<startup useLegacyV2RuntimeActivationPolicy="true"> //在这⼀⾏加⼊ useLegacyV2RuntimeActivationPolicy="true"<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>在解决⽅案资源管理器中添加数据集DataSet1.xsd,在数据集中添加 DataTable.新建 Crystal Reports ⽂件在解决⽅案资源管理器中新建 Crystal Reports ⽂件: CrystalReport1.rpt 。
添加后左侧会出现 “字段资源管理器” 。
如果不⼩⼼关掉字段资源管理器,可以在 “视图” “其它窗⼝” “⽂档⼤纲” 将其调出。
vs的⼯具箱中也会出现相应的控件。
可以将⽂本对象添加到报表中。
⽂本对象常⽤属性:CanGrow (可以⾃动换⾏) HorAlignment (居中,靠左,靠右)。
在数据库字段右键选择数据库专家。
添加项⽬数据中的 DataTable1在 “组名字段” 右键插⼊组。
选择 DataTable1 中的字段,排序⽅式选择按原始顺序(⽔晶报表的排序⽅式不实⽤,⼀般在设置 DataTable 时⾃⾏排序)。
水晶报表公式大全汇总函数的条件以下是每个汇总函数的条件列表:布尔型条件任何更改更改为“是”更改为“否”对每个“是”对每个“否”对下一个“是”对下一个“否”日期条件每天每周每两周每半月每月每季每半年每年时间条件每秒每分钟每小时上午/下午SumBasic语法和Crystal语法。
重载Sum(fld)Sum(fld,condFld)Sum(fld,condFld,cond)Sum(x)参数fld是可由函数求值的任何有效的数据库字段或公式字段。
condFld是用于对fld中的值进行分组时所依据的字段。
cond是表明condFld分组类型的字符串。
只能在condFld是一个日期、时间、日期时间或布尔字段时才指定此参数。
有关此参数有效字符串的详细信息,参见汇总函数的条件。
x是可由正在使用的函数求值的数字或货币值的数组。
返回数字操作使您能够添加报表中出现的值。
例如:如果销售报表包含一个显示每张订单金额的字段,则可以计算报表上出现的所有订单的总和(总计和)。
如果对订单进行分组(例如,按订单所来自的省份对其分组),则可以计算每组订单金额的总和(在本例中,为每个省)。
如果将订单按日期或布尔值分组(例如,对订单按其发出的月份进行分组),则可以根据日期字段或布尔字段中的特定变化来计算每组订单金额的总和(在本例中,为每月)。
如果指定单个值的集合,则也可以计算该集合中值的总和。
有关这种汇总的详细信息,参见数组汇总函数。
示例下列示例适用于Basic语法和Crystal语法:Sum({file.QTY})计算QTY字段中所有值的总和。
Sum({订单.金额},{订单.客户ID})对“金额”字段中每个订单组的订单求和(总计)。
每当“客户ID”字段中的值变化时,订单都将进行分组。
Sum({订单.金额},{订单.日期},"monthly")%Sum({订单.金额})对“金额”字段中的值按月分组,并计算每个月组中值的总和相对于整个报表值的总和的百分比。
⽔晶报表中公式字段ifelse语句⽆法正常执⾏的问题公式字段内容如下:
if {MainTable.bOtherDoc}="on" then
chrw(254)
else
chrw(168)
MainTable.bOtherDoc来⾃于复选框直接通过FromConnection获得的字符串值,当选中时为“on",不选中时候为null
上述公式字段只有当值为on时候才能正常执⾏,也就是说else永远不执⾏。
其它环境:
⽔晶报表采⽤了push⽅式,⾻架⽤了数据集Delegation.xsd, 其中只有⼀个表MainTable
解决办法:
将xsd中的MainTable.bOtherDoc字段默认值改为""或者其它⾮null⼜⾮"on"的字符串,则上述公式字段能正常⼯作。
注:MainTable.bOtherDoc字段的默认值修改前为:<DBNull>
也就是说,都是这个默认的<DBNull>值惹的祸。
一、人事部分基础信息部分修改:1、向人员信息表(TB_USER)添加一个字段:2、修改人员信息添加页面,添加文件上传控件:<asp:FileUpload ID="File1" runat="server" Width="303px" /> <asp:Button ID="btn_Submit" runat="server" Text="提交" Width="50px" onclick="btn_Submit_Click" />具体效果根据人员添加界面。
3、提交按钮函数:protected void btn_Submit_Click(object sender, EventArgs e){//获取文件全路径string fullFileName = this.File1.PostedFile.FileName;//获取文件名string fileName = fullFileName.Substring(stIndexOf("\\") + 1);//获取文件扩展名string ext = fullFileName.Substring(stIndexOf(".") + 1);ViewState["PostFileName"] = fileName;if (ext == "bmp" || ext == "gif" || ext == "jpg" || ext == "png"){btnSave_Click();}else{Response.Write("文件格式不正确");}}//以二进制形式将图片存进数据库。
水晶报表(Crystal Reports)常用字段
1、数据库字段:
数据源已有字段,无论是表还是TTX文件,在报表中已有的字段,可以直接拉取数据;
2、公式字段:
公式字段主要是要用来数据类型间的计算与换算,算数运算(+、-、*、/、%百分比运算),条件运算(if then else),比较运算(=、<>、<、>、>=、<=),转换运算,或且非运算(And、Not和Or)等;
3、参数字段:
参数字段主要是作为报表筛选条件,如:楼区,时间,帐户类型,交易代码,班次等;
4、组名字段:
组字段其实是多个字段值的集合,是按照相同条件筛选的结果集;如:某天在店的宾客名单,挂入的每一笔消费或者付款列表,各种汇总统计报表等;
5、运行总和字段:
汇总一个字段的求和,最大,最小,平均,计数等等;
6、SQL表达式字段:
SQL表达式与公式类似,都写在查询语言,也可以用来查询数据库,为特定的数据集;
SQL表达式可以是一个组合的一个或多个值,运算符和SQL函数的值计算。
7、特殊字段:
特殊字段主要是水晶报表本身的一些字段属性,如:打印时间,打印日期,页数,页码,统计时间,修改时间,修改日期等等;
8、未绑定字段:。