最后 在评价上 进行赋值出了点问题,我把狐表开发给的内部函数导入到程序,在表的datacolchanged里加入如下代码:If e.DataCol.Name ="气质类型_胆汁质" Or e.DataCol.Name ="气质类型_多血质" Or e.DataCol.Name ="气质类型_粘液质" Or e.DataCol.Name ="气质类型_抑郁质" Then
Dim qz1 As Integer = e.DataRow("气质类型_胆汁质")
Dim qz2 As Integer = e.DataRow("气质类型_多血质")
Dim qz3 As Integer = e.DataRow("气质类型_粘液质")
Dim qz4 As Integer = e.DataRow("气质类型_抑郁质")
Functions.Execute("气质类型",qz1,qz2,qz3,qz4)
End If
但是赋值出现了问题,如果在后面直接加上
e.DataRow("气质类型_评价") = lxs,提示未定义lxs。
附 气质类型 内部函数代码
' Args(0) '胆汁质的值
' Args(1) '多血质的值
' Args(2) '粘液质的值
' Args(3) '抑郁质的值
Dim lxs() As String = {"胆汁质","多血质","粘液质","抑郁质"}
Dim dtb As New DataTableBuilder("气质类型Temp")
dtb.AddDef("id", Gettype(Integer))
dtb.AddDef("气质", Gettype(Integer))
dtb.Build()
Dim tb As Table = Tables("气质类型Temp")
tb.Visible = False
Dim n As Integer = Args.Length -1
For i As Integer = 0 To n 'Args.Length -1 ' 3
Dim dr As DataRow = tb.DataTable.AddNew() ' DataTables("气质类型Temp").AddNew()
dr("id") = i
dr("气质") = Args(i)
Next
tb.Sort = "气质" ' DESC"
If tb.Rows(3)("气质") - tb.Rows(2)("气质") > 3 Then
Return lxs(tb.Rows(3)("id"))
ElseIf tb.Rows(2)("气质") - tb.Rows(1)("气质") > 3 Then
tb.Rows(1).Delete()
tb.Rows(0).Delete()
tb.Sort = "" '按数组lxs的顺序返回
Return lxs(tb.Rows(0)("id")) & "," & lxs(tb.Rows(1)("id"))
ElseIf tb.Rows(1)("气质") - tb.Rows(0)("气质") > 3 Then
tb.Rows(0).Delete()
tb.Sort = "" '按数组lxs的顺序返回
Return lxs(tb.Rows(0)("id")) & "," & lxs(tb.Rows(1)("id")) & "," & lxs(tb.Rows(2)("id"))
Else
Return "无法判断"
End If