Foxtable(狐表)用户栏目专家坐堂 → [求助]内部函数问题


  共有1896人关注过本帖树形打印复制链接

主题:[求助]内部函数问题

帅哥哟,离线,有人找我吗?
cqlwsam
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
[求助]内部函数问题  发帖心情 Post By:2015/12/17 16:10:00 [只看该作者]

因为项目多次使用患者ID号(姓名+出生日期)和访问日期间的比较,我想做一个内部函数,每次调用即可。但过不了。提示:datarow 不是 datatable的成员。代码如下:

Dim dt As DataTable=DataTables(args(0))
Dim dr As DataRow= dt.DataRow
If dt.DataCol.Name="访问日期" Then
    If dr("patientsID")>"" Then
        Dim s As String = dr("patientsID")
        Dim s1 As Date = CDate(left(right(s,8),4) & "-" & _
        left(right(s,4),2) & "-" & right(s,2))
        Dim s2 As Date=dr("访问日期")
        If s2 IsNot Nothing Then
            If s1>s2 Then
                MessageBox.Show("访问日期不可能早于出生日期,请仔细核对访问日期","提示" )
            End If
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/17 16:48:00 [只看该作者]

Dim dr As DataRow= dt.DataRows(0)'具体要指定某行,这里是第一行

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/17 16:50:00 [只看该作者]

还不如直接传入一个datarow

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2015/12/17 16:55:00 [只看该作者]

实际上就是想把某一个表中的datacolchanged的代码变成通用代码,改了半天搞不定。代码:

Dim dr As DataRow= e.DataRow
If e.DataCol.Name="访问日期" Then
    If dr("patientsID")>"" Then
        Dim s As String = dr("patientsID")
        Dim s1 As Date = CDate(left(right(s,8),4) & "-" & _
        left(right(s,4),2) & "-" & right(s,2))
        Dim s2 As Date=dr("访问日期")
        If s2 IsNot Nothing Then
            If s1>s2 Then
                MessageBox.Show("访问日期不可能早于出生日期,请仔细核对访问日期","提示" )
            End If
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1014 积分:7535 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2015/12/17 16:56:00 [只看该作者]

因为在每个表中字段都是一样的,都是patientsID 和访问日期,不同的就是每个表不同。所以我想传表名。

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/17 16:59:00 [只看该作者]


函数
Dim dr As DataRow= args(0)

If dr("patientsID")>"" Then
    Dim s As String = dr("patientsID")
    Dim s1 As Date = CDate(left(right(s,8),4) & "-" & _
    left(right(s,4),2) & "-" & right(s,2))
    Dim s2 As Date=dr("访问日期")
    If s2 IsNot Nothing Then
        If s1>s2 Then
            MessageBox.Show("访问日期不可能早于出生日期,请仔细核对访问日期","提示" )
        End If
    End If
End If

 

调用
Functions.Execute("函数名",e.DataRow)


 回到顶部