2012年04月20日,星期五
今天朋友让我帮忙提取身份证号中的出生日期 发现需要区分15位身份证号和18为身份证号 做了如下的代码以供大家参考: 在单元格内输入如下代码=IF(LEN(E2)=18,MID(E2,7,4)&”年”&MID(E2,11,2)&”月”&MID(E2,13,2)&”日”,”19″&MID(E2,7,2)&”年”&MID(E2,9,2)&”月”&MID(E2,11,2)&”日”) 身份证号提取出生日期
2012年03月20日,星期二
今天用vf做了个成绩录入的小系统,编译后, 可执行文件exe运行出现错误“不能更新临时表” 查看源代码发现用的两个工作区 没有问题,代码分析发现没有什么问题,表也打开了,直接在vf中运行表单发现可以更新表,不提示“不能更新临时表” 只要已编译运行exe文件就提示“不能更新临时表” 看了问题出现在编译过程,最后在项目管理器中找到下图所示的地方选中排查,重新编译就不出现提示“不能更新临时表” 了, vf连编以后表不能修改,表示表被包含在exe文件中了,只读。 在项目管理器中把用户表“排除”即可。 试试吧。 每次打开表的时候选择工作区一个工作区 select 1在打开表 就能避免好多的问题  
2012年03月18日,星期日
visual foxpro常用命令4–赋值语句(store…to) 赋值语句(store…to) 将一个数据赋给一个变量。 语法: STORE 表达式 TO 变量名表 参数: 表达式的值即为要赋给变量的数据。 变量名表即为要被赋值的各变量。在这里可以是一个变量,也可以是多个变量,如果有多个变量,其间用“,”(逗号)隔开。 备注: 如果是给一个变量赋值,该语句可写成如下形式: 变量名=表达式 表达式可以是一个数值,也可以是一个算术式。 举例: 例1:将3赋给ab、xyz、jfz三个变量,程序如下: store 3 to ab,xyz,jfz 例2:将变量gz的值加100赋给yfgz。程序如下: yfgz=gz+100
2012年03月18日,星期日
数值转换字符函数(str()   返回与指定数值表达式对应的字符。   语法:   str(数值表达式[,长度[,小数位数]])   返回值的类型   字符型   参数:   数值表达式:要被转换为字符的数值表达式。   长度:转换后字符的长度。该长度等于小数点和小数点右边第个数字所占字符的数目总和。   如果指定长度大于所需长度,自动在前面加空格补齐。   如果指定长度小于所需长度,返回一串星(*)号,表示数值溢出。   如省略长度,则默认长度为10。   小数位数:指定返回字符串中的小数位数。   如指定位数小于实际位数,则返回值四舍五入。   如指定位数大于实际位数,则加0补齐。   如省略小数位数,默认为0。   在指定了小数位数的情况下,如指定长度(第二个参数)小于总长度,但大于整数长度,则返回对小数部分做了四舍五入的字符。   备注:   返回后的值看起来还是数···
2012年03月17日,星期六
分支 语句(do case…endcase) 根据不同的条件执行不同的程序组。 语法 : DO CASE CASE 逻辑表达式1 程序组1 [CASE 逻辑表达式2 程序组2 ... CASE 逻辑表达式n 程序组n ] [OTHERWISE 程序组0 ] ENDCASE 参数 : CASE 逻辑表达式 程序组 … 当程序执行到 do case 时,便检验第一个 case 的逻辑表达式( 逻辑表达式1 )是否为真,如不为真,接着检验第二个 case的逻辑表达式,以此类推直到 逻辑表达式n 。当检测到第一个为真的逻辑表达式时,便执行跟随在其后面的程序组,执行完后跳过后面所有的 case ,接着执行 endcase 后面的语句,也就是说即使后面还有为真的逻辑表达式也不执行了。 如果所有 case 后面的逻辑表达式都为假,则执行 otherwise 后面的程序组(如果有的话, otherwise 及其程序组是可以没有的,如果没有则什么都不做,直接执行 endcase 以后的程序) 备注 : 在do case 和 endcase 之间可以有任意多个 case 。 下面看个例子 set t···
2012年03月16日,星期五
状态检验函数 ⒈ 数据库参数测试函数 ⑴返回数据库的别名──ALIAS() 【格式】ALIAS([<别名>]) 其中,<别名>可以为工作区编号(1 ̄255),也可以为工作区代码(A ̄J)或工作区别 名。 【功能】返回指定工作区中已打开数据库文件的别名。 【说明】该函数可以使用0(或1)个参数,函数值类型为字符型。省略<别名>时则返回 当前工作区中数据库文件的别名。如果指定的工作区内并未打开数据库文件,则返回一空串。   例如: SELECT 1 USE MYDBF &&在工作区1打开数据库文件MYDBF.DBF ? ALIAS(1), ALIAS(“A”), ALIAS() MYDBF MYDBF MYDBF   ⑵返回数据库文件名──DBF() 【格式】DBF([<别名>]) 【功能】返回指定工作区中已打开数据库文件名称。 【说明】该函数可以使用0(或1)个参数,函数值类型为字符型。省略<别名>时则返回 当前工作区数据库文件的名称。如果指定的工作区中并未打开数据库文件,则返回一空串。 例如:···
2012年03月14日,星期三
第一步也是最重要的一步就是把你的表单设置为主文件  在你的工程管理器中选中你的表单  右键设   置为主文件 1。 新建一个表单 并要注明windowstype=1 而且 showwindow是作为顶层表单使用 2。新建一个PRG 作为主文件或启动文件使用。而且 在PRG中写下类似这样的语句 _screen.Visible =.f. DO FORM form1 READ events 3。新建一个文本文件 命名为CONFIG.FPW 并写下 类似 SCREEN=OFF 4。退出程序时 在FORM1(主表单) 的DESTORY事件中 写下类似 CLEAR EVENTS 这样的语句 经过以上的几个步骤应在编译你的程序就可以显示表单了!
2012年03月13日,星期二
由于工作需要 要在两个foxpro的表中根据某一字段查找 含有或者含有的数据 1、下边的是pbmk表中有的数据而11hcfs没有的数据,根据sfzh进行查询(pbmk表中数据包含11hcfs表中数据) SELECT SFZH,XM FROM pbmk WHERE SFZH not in (SELECT SFZH FROM 11hcfs)   2、下边的是pbmk表中与11hcfs表中都有的数据,根据sfzh进行查询(pbmk表中数据包含11hcfs表中数据) SELECT SFZH,XM FROM pbmk WHERE SFZH in (SELECT SFZH FROM 11hcfs)
2012年03月13日,星期二
索引是一个文件,你如果不想打开索引,直接关闭该索引文件就行,用命令: set index to 或直接关闭表后再重新打开表就行了。 如果想删除索引文件,那就用dele file <文件名>去删除。 如果要删除某项索引,dele tag <索引名>
2012年03月13日,星期二
Do While 循环、for 循环、Scan循环 1、DO WHILE <条件> <命令序列> [LOOP] [EXIT] <命令序列> ENDDO 2 、FOR 变量=初值TO终值 [STEP 步长] <命令序列> [LOOP] [EXIT] <命令序列> ENDFOR(或NEXT) 3、SCAN [范围] [FOR条件] <命令序列> [LOOP] [EXIT] <命令序列> ENDSCAN 第1种根据条件执行循环,条件不满足则退出循环 第2种根据变量初值、终值、增量值决定循环次数 第3种根据指定范围在满足条件时执行循环