4.6 命令及批命令文件
前面我们介绍的报表管理操作方法如格式、公式定义等都是通过调用菜单来实现的,另外,还可以采用命令行单击方式或批命令文件即程序单击方式来达到管理报表的目的。
命令行方式是指在命令窗口中输入一条命令,然后立即单击。
批命令文件是把多个命令序列集合在一起形成一个文件,即在一个批命令文件中编写多个命令。单击这个批命令文件就可以一次性完成这些命令。
4.6.1 常用函数、命令、变量和语句
UFO提供了由函数、命令、变量和语句组成的语言系统。可以在命令窗口输入命令来代替菜单操作,还可以编制批命令文件和自定义菜单,开发出适合本企业的专用系统。
函数、命令、变量可以在命令窗、批命令文件和自定义菜单文件中使用;语句只能用于批命令文件中。
1.变量
格式:&变量名
变量名长度小于等于8个字节。可以由字母、数字和下画线组成,必须以字母或下画线开头,不能以数字开头。例如,&test1、&_test1为合法的,&1test为非法的。
总变量个数:小于等于80个。
2.命令
命令的一般表达格式:
命令字<参数>FOR<表页筛选条件>;<可变区筛选条件>][RELATION<关联条件>]
在命令窗或批命令中,当表页筛选条件缺省时为当前表页,当可变区筛选条件缺省时为当前可变行或可变列。
筛选条件:
筛选是在单击命令或函数时,根据指定的筛选条件,对报表表页和可变区的判断,只处理符合筛选条件的表页或可变行(列)。
格式:FOR<表页筛选条件>;<可变区筛选条件>
说明:表页筛选条件确定要处理的表页,若省略,则指当前表页;ALL表示选择所有的表页。可变区筛选条件表示要处理的可变行或可变列,若省略,则表示当前光标所在可变行(列);ALL表示整个可变区。
如:C4:C7=B4:B7FOR年=2003,表示对2003年的表页,将C4:C7的赋值给B4:B7。
关联条件:
一张报表中不同表页的数据或多个报表中的数据可能存在着这样或那样的经济关系,关联条件就是用来描述表页间的对应关系。可以利用关联条件来引用本表他页的数据或其他表页的数据。
格式:RELATION<单值表达式1>WITH<单值表达式2>
说明:其中“RELATION”为关联条件关键字,关联条件可以有多个,每个同类关系之间用“,”隔开。
当<单值表达式1>与<单值表达式2>相等时,关联关系成立;否则,关联关系不成立。
例如,RELATION月WITH“ZJB”->月,表示在“ZJB”表中找到和本表当前表页的关键字“月”的值相等的表页。
本表他页取数的关联条件的格式为:
RELATION<参数>WITH“<当前表表名>”-><参数>
参数为“单元|关键字|变量|常量”。
表示目标页与数据源所在的表页使WITH前后的参数相等。
C=“LRB”->B RELATION月WITH“LRB”->月+1,表示“LRB”各页C列取该页上月B列数值。
他表他页取数的关联条件的格式为:
格式:RELATION<参数>WITH“<他表表名>”-><参数>
如:C=“LRB”->B RELATION月WITH“LRB”->月+1,表示本表各页C列取表“LRB”上月各页B列数值。
(1)赋值命令
功能:将表达式的值赋给单元或区域或关键字或变量。
格式:LET<区域|关键字|变量>=<表达式>[,<区域|关键字|变量>=<表达式>]
[FOR〈表页筛选条件〉[;〈可变区筛选条件〉]]
[RELATION〈表页关联条件〉[,〈表页关联条件〉]]
举例:LETB5=B4+1
(2)注释命令
格式://
功能:将其后至回车换行的内容视为注释。
(3)其他常用命令
OPEN REPORT 打开报表命令
CLOSE 关闭当前文件命令
SAVE 保存文件命令
DO 单击批命令
APPEND 追加表页命令
DELETE 删除表页命令
INSERT 插入表页/行/列命令
APPEND FROM 数据采集命令
RECAL 重计算命令
SORT 表页排序命令
TOTAL 报表汇总命令
SKIP 翻页命令
FIND 查找表页命令
CONTINUE 继续上次查找命令
3.函数
UFO函数包括统计函数、数学函数、表操作辅助函数、日期函数、条件取值函数、读取数据库数据函数、指针状态类函数、字符处理函数。在UFO中,有170个“业务函数”,使用业务函数可以从“总账”、“应收”、“应付”等系统中提取数据。
(1)窗口交互输入函数
功能:窗口交互输入字符函数。
格式:GETINT(提示输入说明)
参数:对话框标题中出现的字符串。
返回值:在窗口中用户输入的数值。
举例:LET&A=GETINT(“请输入您的编号”)
(2)条件函数
格式:IFF(<逻辑表达式>,<条件真值>,<条件假值>)
返回值:当算术表达式为真时,返回条件真值,当算术表达式为假时,返回条件假值。
举例:IFF(A3>0,10,-10),如果A3大于0,B5的值为10,如果A3小于等于0,B5的值为-10.
(3)本表他页取数函数
格式:SELECT(<区域>[,<页面筛选条件>])
参数:区域为绝对地址表示的数据来源区域,不含页号和表名。页面筛选条件为确定数据源所在表页,格式为:<目标页关键字@|目标页单元@|变量|常量><关系运算符><数据源表页关键字|数据源表页单元|变量|常量>,缺省为与目标页在同一表页。
返回值:符合页面筛选条件的本表他页数据区域。
举例:B=SELECT(B,年@=年+1),若当前表页中关键字“年”为2003,如下命令表示本页B列取本表关键字“年”为2002的表页中B列的数值。
D=C+SELECT(D,年@=年and月@=月+1),表示:累计数=本月数+同年上月累计数
本年累计:D=C+SELECT(D,年@=年and月@=月+1)
上月数:E=SELECT(C,年@=年and月@=月+1)
上年同期:F=SELECT(C,年@=年+1and月@=月)
4.语句
(1)分支语句
简单条件分支语句:
功能:如果条件为真,则单击IF语句后面的语句行序列;如果条件为假,则单击END后面的语句。
选择条件分支语句:
功能:如果条件为真,则单击语句行序列1;如果条件为假,则单击ELSE后的语句行序列2。
(2)循环语句
功能:当条件为真时,循环单击语句行序列;直到条件为假时,单击END之后的语句。
【例4-11】给12张表页中的关键字“月”分别赋值为1~12。
(3)跳转语句
格式:BREAK
功能:跳出最近一层循环体。
(4)返回语句
格式:RETURN
功能:结束最近一层批命令。
4.6.2 命令行方式
命令行方式必须在命令窗口中输入,输入后按回车键即可立即单击该命令。
【例4-12】假设现有益达公司6月份的损益表,利用命令行方式增加7月份的表页。
操作步骤:
①单击“文件→命令窗”,打开命令窗口。
②在命令窗口中输入命令:APPEND1。然后回车,即可增加一张表页。提示:
*命令窗口中输入的命令只能一条一条单击,不能成批单击。
*命令单击后在报表窗口中立即能够观察到单击的结果。
*命令窗口保持已单击过的命令行,重复单击某命令,可将光标放回该行回车即可。
4.6.3 批命令文件
批命令实质上是把多个UFO命令进行集合操作处理,即在一个批命令文件中编写多个命令,单击这个批命令文件就可以一次性完成这些命令。批命令在许多时候是必不可少的。
大部分命令和函数可在批命令中使用,批命令可以嵌套、递归和带参调用,批命令可以在批命令和自定义菜单中调用。
【例4-13】假设现有益达公司6、7月份的利润表,利用批命令文件计算各表页中的本年累计销售收入。
1.建立批命令文件
批命令文件在UFO提供的二次开发窗口UFOENIT中编写,编写完成后以后缀“.SHL”保存。
操作步骤:
①单击【工具】、【二次开发】命令按钮,打开UFOEDIT窗口,
②单击【文件】、【新建】按钮,打开“新建”对话框。
③在对话框中选“批命令文件(*.shl)”。
④单击【确认】按钮,进入编辑状态。
⑤在窗口中输入批命令:
⑥单击【保存】按钮。
提示:
● 在编辑批命令时,一条命令占一行,输入一条命令之后回车,即可开始输入下一条命令。可以利用光标移动键在批命令正文中移动。
● 在批命令中不能使用全角字符。
● 因为UFOEDIT窗口没有检查错误的功能,批命令编写完毕后,应检查一下是否有语法错误和逻辑错误。
● 批命令文件定义完之后需要单击才能达到取数的目的。当单击批命令时,可以在命令窗口中进行,也可以在报表数据窗口中单击。
2.单击批命令文件
可以通过系统提供的菜单命令单击批命令文件,也可通过命令窗口单击DO“XXXX.SHL”语句运行批命令。在UFO批命令的单击过程中,按[Esc]键可以终止批命令的单击。
操作步骤:
①单击【文件】、【单击】,打开“单击”对话框。
②输入批命令文件名:P1.
③单击【单击】按钮,系统弹出“累计值计算完毕!”
④单击【确定】按钮。
提示:
● 这里以系统菜单命令方式为例单击批处理文件。
● 单击批处理文件,也可在命令窗中单击DO“XXXX.SHL”语句运行批命令。
● 当单击批命令时,如果命令有错,系统会提示:第*行命令出错!继续单击此文件吗?回答是,则忽略此错误命令;否则,放弃单击该批命令文件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。