以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  非常规跨表引用,如何写代码?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12129)

--  作者:yanzhen2010
--  发布时间:2011/8/23 21:16:00
--  非常规跨表引用,如何写代码?
非常规跨表引用,如何写代码?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:住院收费.rar


项目中“住院信息”表“本月伙食费”列需要引用“收费项目”表“餐费标准”行的单价进行计算,
请教如何引用?最好是全局代码。
“本月伙食费”列的天数代码已经写好,就等引用单价,“本月伙食费”=天数*餐费标准单价。



我在代码窗口写了如下代码,执行后错误。请教老师如何编写?
Dim cf As String = DataTables("收费项目").Find("[拼音码] = "jcbz"")
Output.Show(cf)

“住院信息”表“本月伙食费”列要引用“收费项目”表“餐费标准”行的单价,但是“住院信息”表不存在相应的“拼音码”列。
[此贴子已经被作者于2011-8-23 21:40:55编辑过]

--  作者:czy
--  发布时间:2011/8/23 21:55:00
--  
            Dim dr1 As DataRow = DataTables("收费项目").Find("项目名称 = \'餐费标准\'")
            e.DataRow("本月伙食费") =(DataTables("长期医嘱").Compute("max(停嘱日期)","[住院号] = \'" & e.DataRow("住院号") & "\'")- DataTables("长期医嘱").Compute("min(开嘱日期)","[住院号] = \'" & e.DataRow("住院号") & "\'")).TotalDays * dr1("单价")

--  作者:狐狸爸爸
--  发布时间:2011/8/23 21:57:00
--  

1、代码为什么要那么长,分成几个短句,看起来没那么累的。

2、我没有觉得有什么非常规啊,不就是从收费标准项目中找出餐费标准来计算吗:

 

Dim cr As DataRow = DataTables("收费项目").find("项目名称 = \'餐费标准\'")
Dim dt1 As Date = DataTables("长期医嘱").Compute("max(停嘱日期)","[住院号] = \'" & e.DataRow("住院号") & "\'")
Dim dt2 As Date = DataTables("长期医嘱").Compute("min(开嘱日期)","[住院号] = \'" & e.DataRow("住院号") & "\'")
e.DataRow("本月伙食费") =(dt1-dt2).TotalDays * cr("单价")

 

 

[此贴子已经被作者于2011-8-23 22:02:13编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/23 22:03:00
--  

呵呵,老是落后老曹一步

 

图片点击可在新窗口打开查看


--  作者:yanzhen2010
--  发布时间:2011/8/23 22:06:00
--  
谢谢czy版主,学习了,原来直接引用的条件是这样的Find("项目名称 = \'餐费标准\'")
--  作者:yanzhen2010
--  发布时间:2011/8/23 22:11:00
--  
谢谢两位老师,我比您们都落后。

又学了一招,很有用,很多地方都需要,举一反三。
[此贴子已经被作者于2011-8-23 22:12:36编辑过]