以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]重置时保持数据不变?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12258)

--  作者:yanzhen2010
--  发布时间:2011/8/27 14:03:00
--  [求助]重置时保持数据不变?

Select Case e.DataCol.Name
    Case "住院号","患者姓名","主管医生"
        If e.DataCol.Name = "患者姓名" Then
            If e.DataRow.IsNull("患者姓名") Then
                e.DataRow("sys_拼音码") = Nothing
            Else
                e.DataRow("sys_拼音码") = getpy(e.DataRow("患者姓名"),True)
            End If
        End If
        If e.DataCol.Name = "患者姓名"
            Dim Filter As String = "[住院号] = \'" & e.DataRow("住院号") & "\'"
            DataTables("长期医嘱").ReplaceFor("患者姓名", e.NewValue, Filter)
            DataTables("临时医嘱").ReplaceFor("患者姓名", e.NewValue, Filter)
        End If
        If e.DataCol.Name = "主管医生"
            Dim Filter As String = "住院号= \'" & e.DataRow("住院号") & "\'"
            Dim drs1 As List(of DataRow) = DataTables("长期医嘱").Select(Filter)
            Dim drs2 As List(of DataRow) = DataTables("临时医嘱").Select(Filter)
            For Each dr1 As DataRow In drs1
                If dr1("医生") = ""
                    dr1("医生") = e.DataRow("主管医生")
                End If
            Next
            For Each dr2 As DataRow In drs2
                If dr2("医生") = ""
                    dr2("医生") = e.DataRow("主管医生")
                End If
            Next
        End If      
End Select

 

 

问题在标注为红色的代码。

 

我在入院登记表写入代码,要求:长期医嘱和临时医嘱表“医生”列如果存在医生姓名,那么姓名保持不变,如果更换了医生,那么新录入的数据将显示更换的医生姓名。

 

简单的说就是:长期医嘱和临时医嘱表“医生”列,就得数据保持不变,新的数据使用新的医生。

 

 

[此贴子已经被作者于2011-8-27 14:09:27编辑过]

--  作者:yanzhen2010
--  发布时间:2011/8/27 14:15:00
--  

 

文件已上传

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:住院收费.rar

 


 

简单的说就是:长期医嘱和临时医嘱表“医生”列,旧的数据保持不变,新增数据使用新的医生。

[此贴子已经被作者于2011-8-27 15:30:48编辑过]

--  作者:hhbb
--  发布时间:2011/8/27 16:09:00
--  
Select Case e.DataCol.Name
    Case "住院号","患者姓名","主管医生"         
         Dim drs1,drs2 As  List(of DataRow)
         Dim dt1,dt2 as DataTable
         Dim dr,dr1 As  DataRow
         dr = e.DataRow
         Dim Filter As String = "[住院号] = \'" & dr("住院号") & "\'"
         dt1 = DataTables("长期医嘱")
         dt2 = DataTables("临时医嘱")
         drs1 = dt1.Select(Filter)
         drs2 = dt2.Select(Filter)

         If e.DataCol.Name = "患者姓名"
           dr("sys_拼音码") = getpy(dr("患者姓名"),True)
            For Each dr1  In drs1           
                    dr1("患者姓名") = e.NewValue
            Next
            For Each dr1 In drs2
                 dr1("患者姓名") = e.NewValue
            Next
        End If

        If e.DataCol.Name = "主管医生"            
            For Each dr1 In drs1
                If dr1("医生") = Nothing Then
                    dr1("医生") = dr("主管医生")
                End If
            Next
            For Each dr1 In drs2
                If dr1("医生") = Nothing Then
                    dr1("医生") = dr("主管医生")
                End If
            Next
        End If

End Select

--  作者:yanzhen2010
--  发布时间:2011/8/27 17:15:00
--  

朋友的代码不能满足我的要求。

 

入院登记表某个病人更换医生后,长期医嘱和临时医嘱重置后刷新为更换后的医生。

我的要求是更换以前的医生不变。


--  作者:hhbb
--  发布时间:2011/8/27 17:20:00
--  
我的要求是更换以前的医生不变

上面是什么意思?

--  作者:yanzhen2010
--  发布时间:2011/8/27 17:35:00
--  

比如入院登记是某个病人“唐连刚”的医生是“张月霞”,那么长期医嘱和临时医嘱该病人的医嘱“医生”列为“张月霞”。

过得一段时间,该病人的医生更换为“武爱花”,那么该病人新增医嘱医生为“武爱花”,此前的医生姓名不变。


--  作者:hhbb
--  发布时间:2011/8/27 18:04:00
--  
我测试3楼代码没有更改 旧数据