主题:[请教] 测试字段宽度和小数位数的函数
北京惬意
[专家分:1330] 发布于 2009-03-05 10:39:00
打开一个表,已知某字段是“N”型,
想知道其宽度和小数位数用什么函数?
谢谢!
回复列表 (共30个回复)
沙发
北京惬意 [专家分:1330] 发布于 2009-03-05 11:08:00
各位兄弟好:
我是北京种子乐,因原密码丢失不能使用,才又注册的“北京惬意”。
因故有近半年没有编程了,所以也就很少来和各位交流,抱歉!
现在又开始编程了,如不出其它原因,愿一直编到共产主义。
现在又开始编程了,又会有许多问题要向兄弟们请教,望各位兄弟能不吝赐教,致以诚挚的谢意!
现在又开始编程了,又能有机会与各位进行交流。因水平有限,说的对与不对,希望大家能包含。
板凳
fyyylyl [专家分:8550] 发布于 2009-03-05 12:02:00
字段宽度:Fsize(),小数位数....
3 楼
北京惬意 [专家分:1330] 发布于 2009-03-05 16:30:00
fyyylyl弟你好:
我用你告诉的“Fsize()”测出字段全宽,还是没法测出其中的小数位数,请再指导。
4 楼
CCB2000 [专家分:690] 发布于 2009-03-05 17:41:00
老种子,你好!
参考:
PROC flddec
PARAMETER m.q_fld,m.q_alias
* m.q_fld =
* m.q_alias =
* 参数:字段、工作区
* 返回:字段小数位数
*PRIVATE ALL LIKE q_*
*PRIVATE m.q_fld
*PRIVATE m.q_alias
PRIVATE m.q_exact
PRIVATE m.q_flda
PRIVATE m.q_nn
PRIVATE m.q_sele
IF TYPE("m.q_fld")#"C"
m.q_fld=""
ENDI
m.q_fld=UPPE(ALLTRIM(m.q_fld))
IF TYPE("m.q_alias")#"C"
m.q_alias=""
ENDI
m.q_alias=UPPE(ALLTRIM(m.q_alias))
IF m.q_alias==""
m.q_alias=ALIAS()
ENDI
IF !USED(m.q_alias).OR.FSIZE(m.q_fld,m.q_alias)=0
RETU 0
ENDI
IF TYPE(m.q_alias+"->"+m.q_fld)#"N"
RETU 0
ENDI
DIME q_flda(1)
m.q_flda=""
#IF !"WINDOWS"$UPPE(VERSION())
m.q_sele=SELE()
SELE (m.q_alias)
=AFIELD(m.q_flda)
SELE (m.q_sele)
#elif "WINDOWS"$UPPE(VERSION())
=AFIELD(m.q_flda,m.q_alias)
#ENDI
m.q_exact=SET("EXACT")
SET EXACT ON
m.q_nn=0
DO WHILE .T.
m.q_nn=ASCAN(m.q_flda,m.q_fld,m.q_nn+1)
IF m.q_nn=0
SET EXACT &q_exact
RETU 0
ENDI
IF MOD(m.q_nn-1,ALEN(m.q_flda,2))+1=1
SET EXACT &q_exact
RETU q_flda(INT((m.q_nn-1)/ALEN(m.q_flda,2))+1,4)
ENDI
ENDDO
* END OF PROC FLDDEC.
5 楼
jinlonggao [专家分:17130] 发布于 2009-03-05 18:29:00
老种子,你好!
有一种方法:
copy stru to gg extend
use gg in 0
select field_len,field_dec from gg where field_name = upper('<你的字段名>')
得到的field_len是字段长度,field_dec是字段的小数位数
6 楼
北京惬意 [专家分:1330] 发布于 2009-03-05 20:34:00
用ADIR()函数将表结构复制到数组里,再从数组中找到某字段的宽度或和小数位数是可以的。但我觉得太复杂,想找到更简捷的方法。在没找到理想涵数和方法前,我还是准备用ADIR()函数来解决。
谢谢4楼的指导,广东管我叫老种子的应该只有MOZ,祝老朋友事业有成,心想事成。
谢谢5楼高老师的指导,祝你工作顺利,家庭幸福!
7 楼
北京惬意 [专家分:1330] 发布于 2009-03-05 20:38:00
想听听乌鸦老弟的声音,
还想听听CBL518老弟的声音。
8 楼
moz [专家分:37620] 发布于 2009-03-05 21:49:00
那不是我,我没有那么高的水平。我现在是越活越倒退了,谢谢老种子居然还记得我的存在,让我很感欣慰。
9 楼
0901chang [专家分:10660] 发布于 2009-03-06 01:04:00
拷贝你的表的数据结构到临时表,里边就有你要的东东在 field_dec 字段中。下面的例子只拷贝一个字段。
use 我的表
copy stru exte to 临时表 field 要检查的字段
use 临时表
? field_name
? field_len && 字段宽度
? field_dec && 小数位长
? field_type && 字段类型
brow
10 楼
北京惬意 [专家分:1330] 发布于 2009-03-06 09:20:00
[quote]那不是我,我没有那么高的水平。我现在是越活越倒退了,谢谢老种子居然还记得我的存在,让我很感欣慰。[/quote]
在广西时MOZ兄弟帮助解决了那么多问题,特别是帮助解决了DBF转电子表格的问题,怎么会不记得呢?如果不记得了那就是忘本。
我来回复