以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于listview 问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108528)

--  作者:堕落的后天
--  发布时间:2017/10/24 16:43:00
--  [求助]关于listview 问题
在窗口里,添加了页面集合控件,有两个选项卡,每个选项卡里面都有一个Listview,分别为listview1/listview2;对于这两个listview 他们的click时间我都编辑了如下;当单击listview1某行后,再切换到listview2时(来回切换),就会出错:错误代码如下:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.8.19.1
错误所在事件:窗口,医生预约,ListView2,Click
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据


***********************  listview 的click 时间代码如下


Dim a,b As String
Dim Sum1,Sum2,Sum3,Sum4 As Integer
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current \'获取ListView中选定的行
If vr Is Nothing Then \'如果不存在当前行,也就是内有选定任何一行
    Return
End If
Dim dr As DataRow = vr.tag \'获取此行对应的DataRow

e.Form.Controls("TextBox4").Text = dr("病人姓名")
e.Form.Controls("TextBox5").Text = dr("病历号")
e.Form.Controls("TextBox6").Text = dr("预约项目")
e.Form.Controls("TextBox10").Text = dr("预约电话")
e.Form.Controls("TextBox9").Text = dr("备注")
a =  dr("病人姓名")
b =  dr("病历号")





Sum1 =  DataTables("预约表").Compute("Count(病人姓名)", "[病历号] = \'" &  b  &    "\' And [病人姓名] = \'" & a & "\'  ")

Sum2 =  DataTables("预约表").Compute("Count(病人姓名)", "[病历号] = \'" &  b  &    "\' And [病人姓名] = \'" & a & "\' And [状态] = \'过期\' ")

Sum3 =  DataTables("收费明细").Compute("Sum(实收费用)", "[病历号] = \'" &  b  &    "\' And [患者姓名] = \'" & a & "\' And [状态] = \'已完成\' ")

Sum4 =  DataTables("收费明细").Compute("Sum(欠费)", "[病历号] = \'" &  b  &    "\' And [患者姓名] = \'" & a & "\' And [状态] = \'已完成\' ")


e.Form.Controls("TextBox7").Text = Sum1
e.Form.Controls("TextBox8").Text = Sum2
e.Form.Controls("TextBox11").Text = Sum3
e.Form.Controls("TextBox01").Text = Sum4



*********************求助错误在哪里?


--  作者:有点甜
--  发布时间:2017/10/24 17:30:00
--  

如果你重新加载了表数据,那就不能用下面的代码了,因为你刷新了行。

 

Dim dr As DataRow = vr.tag \'获取此行对应的DataRow

 

你要用别的方式获取行数据,具体问题做个例子发上来。