itemchanged事件在datawindow里的字段被修改并且失去焦点后发生,当然在Update函数被调用之前也会触发这个事件:itemchanged(long row,dwobject dwo,string data)
long row ,表示当前行
dwobject dwo,表示datawindow里的字段
string data, 表示new data也就是刚刚输入的数据
return Values
0 (默认) 接收数据,并转移焦点到下一行
1 拒绝输入的数据,并焦点不转移
2 拒绝数据的输入,但转移焦点到下一行,并且数据不改变,跟修改之前一样
根据身份证号码来得出出生日期 代码片
.
String ls_identno //身份证号码
String ls_biryear //出生年
String ls_birmonth //出生月
String ls_birday //出生日
String ls_birplace //出生地点
datetime ldt_sys //系统日期
date ld_sys
Date ld_birth //出生日期
Integer li_age //年龄
Integer li_sysyeau //系统年
Integer li_identno //身份证长度(15/18位)
Integer li_sex //性别,月日的整数
//将“漂浮”在数据窗口控件上编辑框的内容放入到数据窗口控件的当前项中(主缓区中)。
//在将数据放入到当前项之前,编辑框中的数据必须通过有效性规则检查
this.AcceptText()
//SetNull()功能将指定变量的值设置为NULL。这里的变量可以是除数组、结构、自动实例化对象之外的任何数据类型。
//setNull(ls_null)
//dwo就是dwobject,dwobject是数据窗口(datawindow)对象,比如datawindow里的列,文本,按钮等.
Choose case dwo.name
Case "id_card_no"
//身份证号15/18位,格式:行政区代码6位+出生日期(6/8)位+序号(3/4位)
//由身份证号获得:病人出生日期,出生地,性别
ls_identno = data
if ls_identno = "" or isnull(ls_identno) then
return
end if
//Len() :得到Blob类型变量的数据长度,以字节为单位。
//身份证长度 = len(身份证号码)
li_identno = len(ls_identno)
//如果身份证号长度为15或者18
if li_identno = 15 or li_identno = 18 then
/**
Left():得到字符串左部指定个数的字符。
语法:Left ( string, n )string:
string类型,指定要提取子串的字符串。
n:long类型,指定子串长度。
*/
//出生地 = left(身份证号,左边6位数)
ls_birplace = left(ls_identno,6)
// li_identno = 15
if li_identno = 15 then
/**
Trim():删除字符串首部和尾部的空格。
语法:Trim ( string )。参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。
函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。
如果任何参数的值为NULL,Trim()函数返回NULL。
*/
// c出生年 = ‘19’+ mid(要截取的字符串,开始位置,截取长度)
ls_biryear = '19'+ trim(mid(ls_identno,7,2))
//出生月
ls_birmonth = mid(ls_identno,11,2)
else
//mid(截取的字符串,开始截取位置,截取长度)
ls_biryear = trim(mid(ls_identno,7,4))
ls_birmonth = mid(ls_identno,11,2)
end if
if li_identno = 15 then
ls_birday = mid(ls_identno,11,2)
else
ls_birday = mid(ls_identno,13,2)
end if
//出生日期 date:将三个表示年、月、日的整数组合成一个日期 语法:date(year,month,day)
ld_birth = date(integer(ls_biryear),integer(ls_birmonth),integer(ls_birday))
this.setitem(row,"SICK_BIRTHDATE",ld_birth)
end if
end Choose