VFP *** 作中遇到的问题1

VFP *** 作中遇到的问题1,第1张

1数值型
2不一样,答案如楼上所说的一样,"a"="aa",这是正确的,但==就是要两边完全一 样
3不是的最后添加的命令是append blank,如果要再中间插入记录的话,就用insert命令,如:当前指针在第一条记录上,则insert命令就在当前记录的下面一行插入一条记录,如果输入insert blank则在当前记录的下面插入一条空记录
4可能是你输入的类型错误
希望能帮到你

CALCULATE 命令
对表中的字段或包含字段的表达式进行财务和统计 *** 作。
CALCULATE eExpressionList [Scope] [FOR lExpression1] [WHILE lExpression2]
[TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
[IN nWorkArea | cTableAlias]
参数
eExpressionList
指定表达式,该表达式可以包含下列函数的任意组合: AVG(nExpression) CNT( ) 或 COUNT( ) MAX(eExpression) MIN(eExpression) NPV(nExpression1, nExpression2 [, nExpression3]) STD(nExpression) SUM(nExpression) VAR(nExpression) ,用逗号分隔表达式列表 eExpressionList 中的函数。这些函数仅用于 CALCULATE 命令,在本部分后面将详细说明这些函数。不要与有相似名称的独立函数相混淆。例如, CALCULATE MIN( ) 与 MIN( ) 不同。
Scope
指定计算中所使用记录的范围。只有在范围之内的记录才进行计算。Scope 子句有:ALL, NEXT nRecords, RECORD nRecordNumber, 和 REST。 更多的信息,请参见 Scope 子句。 包含 Scope 子句的命令只能在活动工作区内的表上 *** 作。CALCULATE 命令默认的范围是所有记录(ALL)。
FOR lExpression1
指定只有满足逻辑条件 lExpression1 的记录才进行计算。在计算中包含 FOR 子句可以有条件的选择记录,筛选出不想要的记录。如果 lExpression1 是一个可优化表达式,Rushmore 查询优化将对 CALCULATE FOR 进行优化。为了获得最佳的性能,应在 FOR 子句中使用可优化表达式。有关 Rushmore 优化表达式的更多信息,请参见SET OPTIMIZE 和 使用 Rushmore 查询优化来加速数据访问。
WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 结果为真(T),记录就进行计算。(译者注:直至遇到第一个为F的记录为止)
TO VarList
指定一个或多个用以存储计算结果的变量。若指定的内存变量不存在,Visual FoxPro 自动用指定的名称创建此变量。
TO ARRAY ArrayName
指定存储计算结果的数组名。如果指定的数组不存在,Visual FoxPro 自动用指定的名称创建此数组。如果数组存在,但其容纳不下所有的计算结果,Visual FoxPro 自动扩充数组以容纳信息。如果数组比需要的大,多余元素内容保持不变。计算结果按照 CALCULATE 命令指定的顺序保存到数组。
NOOPTIMIZE
禁止在 CALCULATE 中使用 Rushmore 优化技术。更多的信息,请参见 SET OPTIMIZE 和 使用 Rushmore 查询优化来加速数据访问。
AVG( nExpression)
计算 nExpression 的算术平均值。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
CNT( ) 或 COUNT( )
返回表中记录的数目。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
MAX( eExpression)
返回 eExpression的最大值或最新值。在 MAX( ) 子句中,可指定任何字符型, 日期型, 日期时间型, 数值型, 浮点型, 整型, 双精度型, 或货币型字段,或任何使用这些数据类型的表达式。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
MIN( eExpression)
返回 eExpression 的最小值或最早值。 eExpression 中,可以包含任何字符型, 日期型, 日期时间型, 数值型, 浮点型, 整型, 双精度型, 或货币型字段,或任何使用这些数据类型的有效表达式。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
NPV( nExpression1, nExpression2[, nExpression3])
计算一个固定周期利率下,一系列现金流转的净现值。nExpression1 指定用十进制表示的利率。 nExpression2 指定代表一系列现金流转的字段, 字段表达式, 或数值表达式。每个现金流转可正可负。当 nExpression2 是字段时,每个记录的字段值都认为是一个现金流转。 nExpression3 指定可选的初始投资。如果不包括初始投资,则假定初始投资发生在第一阶段末。这个初始投资就是第一条记录,而且是负的,代表现金流出。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
STD( nExpression)
计算 nExpression 的标准偏差。标准偏差用来衡量字段或包含字段的表达式的值,偏离平均值的程度。标准偏差越小,这些值偏离平均值就越少。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
SUM( nExpression)
对 nExpression 求和。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
VAR( nExpression)
从 nExpression 的平均值中计算方差。方差是标准方差的平方。方差越小,值偏离平均值就越少。只有满足 Scope 和/或 可选的 FOR 或 WHILE 条件的记录才包含到结果中。
IN nWorkArea| cTableAlias
指定受 CALCULATE 命令影响的工作区或表别名。使用该子句指定当前工作区之外的工作区或表。
说明
含有 null 值的记录不包含在 CALCULATE 的 *** 作中。
示例
复制代码
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE orders && 打开 Orders 表
SET TALK ON
CLEAR
CALCULATE AVG(order_amt), MIN(order_amt), MAX(order_amt)
CALCULATE STD(order_amt), VAR(order_amt) TO gnStd, gnVar

wait 只能从键盘上输入一个字符,不用按回车键
accept 能从键盘上输入一串字符,要按回车键结束输入
input 能从键盘输入数值型、字符型、逻辑型、日期型、日期时间型、货币型数据,也可以是表达式。

Pub我执行你的程序时没看见这个,而是priv,也就是私有变量所以得出应该是Public 那就是这个是公共变量的意思: public a 就是定义一个公共变量a
一竖排的ACLDL TCY 意思是:a,说明这一列是什么内容:字符类型
c意思是后面的数据是字符型“xxx”
l逻辑型 f
d日期型 2001年03月23日
t就是时间日期型
c 还是字符型
t 时间日期型
(1/60-3/56)1845 不写后面的两个0系统就默认为你要求的精确度是小数点后两位,多了两个0精确数位就多了两位。没有其他的意思。

1 VAL()把字符串中的数字取出来 所以为06 结果为0
4 同上 结果为 12
2 D答案表达式前面是个日期时间型和后面的TIME()函数值类型不匹配
3 -123
负号也算一位所以STR(X,3)输出星号
5 EMPTY()函数测试参数是否为空
当表达式取下列值时,empty( ) 函数返回“真”(T)。
表达式类型取值 字符型 数值型 货币型 浮点型 整型 双精度型 日期型 日期时间型 逻辑型 备注字段 通用字段 empty( ) 函数返回“真”(T)
6 & 命令执行宏替换。
参数
& MemVarName
指定宏替换中引用的内存变量名或数组元素名。请不要加上用于区分内存变量与字段的前缀 M,否则将产生语法错误。宏的长度不要超过 Visual FoxPro 中允许的最大语句长度。
在宏替换中,变量不能递归引用其自身。
7 set strictdate 命令
指定不明确的日期和日期时间常数是否产生错误。
语法
SET STRICTDATE TO [0 | 1 | 2]
参数
0
(默认值)指定关闭严格的日期格式检查。这个设置提供了对以前版本的Visual FoxPro 的兼容性。
1
指定所有的日期和日期时间常数必须符合严格的日期格式。任何不符合严格日期格式的日期或日期时间常数,或任何无效值都会产生一个错误,不论是在编译时、运行时或在一个交互的 Visual FoxPro 工作期中。
2
对于将 STRICTDATE 设置为 1,但是也加强了 CTOD( ) 和 CTOT( )函数中字符串的严格日期格式。注意,要小心应用这个级别,因为 Visual FoxPro 60以前版本的代码使用的日期格式可能不符合严格数据格式,有可能造成难以料的运行时错误。

W, Blob 大二进制对象(Blob)
C, Char, Character 字符型
Y, Currency 货币型
D, Date 日期型
T, DateTime 日期时间型
B, Double 双精度型字段
F, Float 浮点型字段
G, General 通用型字段型
I, Int, Integer 整型字段
L, Logical 逻辑型
M, Memo 备注型
N, Num, Numeric 数值型
Q, Varbinary 可变长二进制型(Varbinary)
V, Varchar 可变长字符型(Varchar)字段

依据一个逻辑表达式的值来返回两个值中的一个。
IIF(lExpression, eExpression1, eExpression2)

参数
lExpression
指定 IIF( ) 计算的逻辑表达式。
eExpression1, eExpression2
如果 lExpression 计算为真(T),eExpression1 被返回而 eExpression2 不被计算。如果 lExpression 计算为假(F) 或空(NULL),eExpression2 被返回而 eExpression1 不被计算。
返回值
字符型、数值型、货币型、日期型或日期时间型
说明
该函数也称作 Immediate IF,计算一个逻辑表达式然后返回两个表达式之一。如果逻辑表达式计算为真(T),IIF( ) 返回第一个表达式。如果逻辑表达式计算为假(F) 或空(NULL),IIF( ) 返回第二个表达式。
提示:
对于简单的条件表达式,该函数可以被用于替代 IF ENDIF,并且,对有条件地指定字段内容的报表和标签表达式尤其有用。IIF( ) 函数同样比等价的 IF ENDIF 执行得更快。
示例
下面的示例利用 IIF( ) 来检查 employee 中的 notes 字段是否为空,如果为空,显示“No notes”;否则,显示该备注字段的内容。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE employee && 打开 Employee 表
CLEAR
SCAN
IIF(EMPTY(notes), 'No notes', notes) && 空备注字段吗?
ENDSCAN


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13128630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-06
下一篇 2023-06-06

发表评论

登录后才能评论

评论列表(0条)

保存