二、输入新的记录值
向新建的记录中增加属性记录数据,可通过一定的输入形式输入新值。MultiInput消息框为用户构建一个可以输入数据的窗口,其返回一个数据列表。
MultiInput消息框需要四个参数。第一个字串定义了消息,第二个字串定义了标题,第一个列表定义了用户输入的说明标志,第二个列表定义了缺省值。
1.获取列表中的每个值
Msgbox.MultiInput请求返回一个由用户输入后存储在valuelist中的值列表。由于输入框中有三个输入,因此,valuelist存储了三个值,可以用Get命令来取出。列表中的元素从0开始计数,第一个值的序号为0,第二个为1,依次类推。
2.获取字段
对字段进行更新之前,必须首先获取对字段的控制。命令FindField可以根据名字获得某单个的字段。如果想获得表中所有字段的控制就用GetFields命令。
3.用新值更新每个字段
一旦获得新值,就可以用SetValue来更新表。SetValue需要定义字段,记录和值。由于要在同一记录中修改三个字段的值,因此要重复三次使用SetValue请求,每次变动字段名和相应的值,而记录号则不变。
4.刷新表
命令Refresh用变动后的数据值更新Ftab,并且将显示出变动后的表文档数据。
[例7]输入新的记录值示例
'定义消息框标题和提示信息
theInstruction="输入新公园数据"
theTitle="公园信息"
'定义消息框文本标签和默认值
theLabelList={"编号","公园名称","占地面积"}
theDefaultList={"","","0"}
'显示消息框,输入新值
valueList=MsgBox.MultiInput(theInstruction,theTitle,theLabelList,theDefaultList)
'获取列表值
theID=valueList.Get(0)
theName=valueList.Get(1)
area=valueList.Get(2)
'获取字段
theFtab=av.getactiveDoc.findtheme("公园.shp").getftab
newrecord=theFTab.AddRecord
theIDField=theFtab.FindField("编号")
theNameField=theFtab.Findfield("公园名称")
areaField=theFtab.FindField("占地面积")
'用新值更新字段
theFtab.setValue(theIDField,newrecord,theID)
theFtab.setValue(theNameField,newrecord,theName)
theFtab.setValue(areaField,newrecord,area)
'刷新表
theFtab.Refresh
程序运行结果如图7-19、图7-20所示。
图7-19 新记录输入界面
图7-20 添加的新记录
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。