Foxtable(狐表)用户栏目专家坐堂 → [求助]代码错误,但不知错在何处,望高手赐教!


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

主题:[求助]代码错误,但不知错在何处,望高手赐教!

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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
[求助]代码错误,但不知错在何处,望高手赐教!  发帖心情 Post By:2011/8/27 17:27:00 [只看该作者]

If e.DataCol.Name = "住院号" Then
    If e.DataRow("住院号") IsNot Nothing Then
        Dim dr As DataRow = DataTables("长期医嘱").Find("[住院号] = '" & e.DataRow("住院号") & "'  ")
        If dr IsNot Nothing Then
            Dim cf As DataRow = DataTables("收费项目").Find("项目名称 = '餐费标准'")
            Dim jc As DataRow = DataTables("长期医嘱").Find("项目名称 = '诊疗费'And 执行 =1 And [住院号] = '" & e.DataRow("住院号") & "'")
            e.DataRow("本月开嘱日期") = DataTables("长期医嘱").Compute("min(开嘱日期)","[住院号] = '" & e.DataRow("住院号") & "'")
            e.DataRow("本月停嘱日期") = DataTables("长期医嘱").Compute("max(停嘱日期)","[住院号] = '" & e.DataRow("住院号") & "'")
            e.DataRow("假出日期") =jc("停嘱日期")
        Else
            e.DataRow("本月开嘱日期") = Nothing
            e.DataRow("本月停嘱日期") = Nothing
            e.DataRow("假出日期") =Nothing
        End If
    End If
End If

 

问题出在红色字体的代码上,加了条件[住院号] = '" & e.DataRow("住院号") & "'后出现问题。

 

 不管 执行 =1还是 执行 =true,代码分开写后,运行结果正确,代码如下:

If e.DataCol.Name = "住院号" Then
    If e.DataRow("住院号") IsNot Nothing Then
        Dim dr As DataRow = DataTables("长期医嘱").Find("[住院号] = '" & e.DataRow("住院号") & "'  ")
        Dim jc As DataRow = DataTables("长期医嘱").Find("项目名称 = '诊疗费'And 执行 =True And [住院号] = '" & e.DataRow("住院号") & "'")
           If dr IsNot Nothing Then
            Dim cf As DataRow = DataTables("收费项目").Find("项目名称 = '餐费标准'")
            e.DataRow("本月开嘱日期") = DataTables("长期医嘱").Compute("min(开嘱日期)","[住院号] = '" & e.DataRow("住院号") & "'")
            e.DataRow("本月停嘱日期") = DataTables("长期医嘱").Compute("max(停嘱日期)","[住院号] = '" & e.DataRow("住院号") & "'")
                   Else
            e.DataRow("本月开嘱日期") = Nothing
            e.DataRow("本月停嘱日期") = Nothing
                   End If
        If jc IsNot Nothing Then
            e.DataRow("假出日期") =jc("停嘱日期")
        Else
            e.DataRow("假出日期") =Nothing
        End If
    End If
End If

[此贴子已经被作者于2011-8-27 18:17:13编辑过]

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/27 17:59:00 [只看该作者]

Dim jc As DataRow = DataTables("长期医嘱").Find("项目名称 = '诊疗费' And 执行 =True And [住院号] = '" & e.DataRow("住院号") & "'")

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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
  发帖心情 Post By:2011/8/27 18:22:00 [只看该作者]

问题已升级,请高手指点:

如何找到第一行和最后一行

 

Dim jc As DataRow = DataTables("长期医嘱").Find("项目名称 = '诊疗费' And 执行 =True And [住院号] = '" & e.DataRow("住院号") & "'")

 

找出"长期医嘱"该住院号的第一个符合条件的数据,条件:项目名称= '诊疗费' 执行 =True


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/27 18:52:00 [只看该作者]

拜托看帮助

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/8/27 20:48:00 [只看该作者]

Dim n As Integer = DataTables("长期医嘱").Compute("count(住院号)","你的条件···")

 

'最后一行

Dim jc As DataRow = DataTables("长期医嘱").Find("项目名称 = '诊疗费' And 执行 =True And [住院号] = '" & e.DataRow("住院号") & "'","",n-1)


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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
  发帖心情 Post By:2011/8/28 0:22:00 [只看该作者]

帮助看了n遍了,不符合我的要求。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/8/28 0:48:00 [只看该作者]

什么破论坛啊,有回帖却看不到内容.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/28 9:26:00 [只看该作者]

如何找出第一行和最后一行,这里有说明:
 
http://www.foxtable.com/help/topics/0396.htm

 

如果如果不根据Find的时候,应该设置排序参数,例如按日期排序,可以找出最早和最迟的一行,按价格排序,可以找出最贵和最便宜的商品。

在没有排序参数的情况下,所谓的第一行和最后一行,是没有意义的。
 


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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
  发帖心情 Post By:2011/8/28 10:48:00 [只看该作者]

以下是引用狐狸爸爸在2011-8-28 9:26:00的发言:

如何找出第一行和最后一行,这里有说明:
 
http://www.foxtable.com/help/topics/0396.htm

 

如果如果不根据Find的时候,应该设置排序参数,例如按日期排序,可以找出最早和最迟的一行,按价格排序,可以找出最贵和最便宜的商品。

在没有排序参数的情况下,所谓的第一行和最后一行,是没有意义的。
 

谢谢老总,帮助中的例子好像不太适合。如果符合条件的数据只有一行呢?我本来就要查找日期的,现在又要用日期排序,显得多余。

在易表中使用参数“1”第一行,“-1”最后一行。狐表只能用排序的办法解决吗?


 回到顶部