报表制作过程 - 图文(10)

2019-09-01 09:18

报表脚本

编写脚本

使用变量

这里不需要指定变量类型,它们都是变体类型,但是为了保证报表的可读性,我们建议您将报表中用到的每一个变量都在数据字典中定义好,这样比较容易管理整个报表中的变量或常量。一般情况下可以使用拉丁字母,数据和下划线作为变量名。脚本中的变量可以在对象中使用,并且变量列表中的变量同样也能用于脚本。这是一个使用报表变量的例子: ? 首先定义变量

在数据字典中定义变量Prod和ProductStorage,同时初始化变量值,如下图所示:

? 用脚本代码给变量赋值 begin

Prod := [DataSet1.\ if IsFinal then

ProductStorage := Prod else

ProductStorage := 0; end

这一步中,首先设置变量Prod的值等于数据集DataSet1的字段DataField1的值;然后调用系统函数IsFinal,判断报表当前是否运行于两遍报表的第二遍,如果是就把变量Prod的值赋给变量ProductStorage,否则就设置变量ProductStorage的值为0。 ? 调用显示变量值

在需要显示变量的文本框的Memo属性中调用并显示变量值,写法如下:[ProductStorage],如图示

注意:

在脚本程序片断中调用在数据字典中定义的变量,系统变量和用户变量。自定义变量名不能像系统变量一样包含符号(例如Page# 系统变量),调用不带符号的变量的时候,可以直接引用,但是如果要调用带符号系统变量你必须使用方括号把变量扩起来: begin

a := [Page#]; end

使用数据集字段

在脚本程序中可以直接调用当前报表中包含的数据集的字段值。正确的语法:[DataSetName.”FieldName”],数据集字段可以直接参加运算。

例如,你有主项数据Band,设置其数据源为 数据集Customers,你可以在该Band上的指定文本框(如Memo1和Memo2)的OnbeforePrint属性中调用数据集Customers的字段,根据字段值设置Memo1的值,代码如下: begin

if [Customers.”CustomerType”]=0 then begin

Memo1.Memo:='VIP高级客户';

Memo2.Memo:=[Customers.”VIP_Remark”]; end else begin

Memo1.Memo:='一般客户'; Memo2.Memo:='没有特惠记录';

end end

使用数组

除了变量外,你也可以在你的脚本中创建数组。只能使用一维数据,但你可以使用它们来代替二维数组,下面是一个数组应用的例子: begin

MyArr[0] := 'a';

MyArr[1] := 'b'; MyArr[3] := 'd';

MyArr[2] := MyArr[0] + MyArr[1] + 'c' + MyArr[3]; end;

使用常量

在你的脚本中可以使用常量。一个简单的例子是使用数字,字符和逻辑常量: begin

a := 0;

b := 'abcd'; c := True;

d := 'That''s all!'; end;

需要注意的是在常量字符串内使用单引号-与Pascal一样,必须这样定义:d := 'That''s all!'。除了使用简单的常量外,你也可以使用像颜色名,字体名等等。下面是可用的常量列表:

? 颜色:clWhite,clBlack等等。-所有标准颜色和系统颜色; ? 对话框返回值常量:mrNone,mrOk,mrCancel; ? 系统常量:CRLF,Null;

? Band对齐:baNone, baLeft, baRight, baCenter, baWidth, baBottom。

另外还有对象附带的常量,例如,“CheckBoxObject”对象的csCheck。任何一个你在对象查看器的属性下拉列表中找到的, 你都可以在脚本中作为常量使用。

使用对象

你可以在脚本中使用报表对象的属性和方法。报表对象指可视对象,控件,Bands,报表页面和报表自己等几乎所有报表的组成元素。要使用一个对象必须使用点号。

? 简单属性的调用

简单属性可以直接用“对象名称.属性名称”来调用。例如: Memo1.Memo

使用内部属性和方法可以不需要指明“对象名称”,直接写“属性名称”就可以了。一般显示在对象观察器中的属性都是可以使用的。

? 复合属性的调用

一些象字体这样的复合属性必须连续使用点号才可以。如下例所示: begin

Memo1.Font.Name := 'Courier New'; Memo1.Font.Size := 10;

Memo1.Font.Color := clRed;

Memo1.Font.Style := fsBold + fsItalic end;

? 特别属性的用法

象Memo, Items等的某些属性可以通过它们的索引引用: if Memo1.Lines[1] = 'a' then Memo1.Lines[1] := 'b'

这样的属性也可以使用Add, Delete, Clear和Count等方法: if Memo1.Lines.Count > 10 then Memo1.Lines.Delete(10) else begin

Memo1.Lines.Clear; Memo1.Lines.Add('a'); end;

对象的属性和方法的完整列表可以从“对象属性和方法”一节中找到。注意,使用一个不存在的方法或属性将提示错误,写代码必须小心。

内置过程和函数

合计函数

合计函数一般用于报表的汇总类的计算,可以应用在报表的页注脚、主项注脚、细项注脚、子细项注脚和分组注脚、总结等注脚类Band区域中。

过程或函数名 Sum([,band][,1]) 描 述 为Band中的行按计算值的总和。 如果Band的参数没有设置,sum缺省是计算所有数据值(主项数据,细项数据和子细项数据); sum只能用于已命名的Band中的数据; 如果使用“1”这个参数,sum也可用于非可视对象。例如: Sum([Part total], Band1); Sum([[Part total] + [Part price]]); Sum([Part total], Band1, 1)。 Avg, Min, Max 语法与sum函数类似。 函数Avg计算算术平均值; 函数Min返回最小值; 函数Max返回最大值。 Count() 返回数据行的总数。例如:Count(Band1)。

字符处理函数

过程或函数名 CNumber( [,1|2|3]) 描 述 将阿拉伯数字转化为中文数字。应用第二个参数将分别显示不同的格式,下面举例说明: [1]:CNumber(1203, 1) = ?壹仟贰佰零叁‘ [2]:CNumber(12, 2) = ?一十二‘ [3]:CNumber(12, 3) = ?壹拾贰‘ 省略第二个参数:CNumber(1203) = ?一千二百○三‘ Copy(,, count>) 从开始,按长度返回字符串中的子串,该函数支持中文字符串。 CurrToBigNum CurrToEnglish FormatDateTime(,value>) 数字转化为人民币中文大写。 数组转化为英文货币大写。 将时期、时间按格式符转换为字符。 格式符说明请参照下面的“日期/时间格式符参照表” FormatFloat(, ) 将浮点数按格式符转换为字符。可以用0作为掩码,如: [FormatFloat('00-000-0',123456789)]=12345-678-9 [FormatFloat('00A-000-0',123456789)]=12345A-678-9 以(Mask)格式化给定字符串。可以用字符a或0作为掩码,如: [FormatText('00-000-0','ABCDEFG')]=AB-CDE-FGH [FormatText('aa-000-0','ABCDEFG')]=AB-CDE-FGH [FormatText('0b-000-0','ABCDEFG')]=Ab-BCD-EFGH Length() CharLength() LowerCase() NameCase() Pos(, ) SinglNumToBig(, [,1]) 返回的长度,按字节数。 返回的长度,按字符数。 转换字符为全部小写。 转换字符第一个字符为大写,其它字符为小写。 返回子串在字符串中的位置。 返回数值中小数点左侧(大于0)或右侧(小于0)第位数字的中文大写。若使用[1]参数则转换为“○一二三”, 否则转换为“零壹贰叁” SmallToBig( [,1]) 按位转换数字为中文大写。如 SmallToBig(2003)等于“贰零零叁”; 若使用[1]参数则转换为“二○○三”,即: SmallToBig(2003, 1)等于“二○○三”; Str() StringOfChar(,) Trim() UpperCase() 将包含的数值转换成字符。 生成的字符串, 整理(去除)的开始和末尾的所有空格,并返回结果。 转换字符为全部大写。 FormatText(,) StringReplace(,,) 将字符串中的子串替换为。 If(,, ) 如果表达式为True,返回字符串;否则,返回字符串

日期/时间格式符参照表:


报表制作过程 - 图文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江省嘉兴市2018年9月选考科目教学测试地理试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: