以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  定位到找到的行后怎么将当前行整行突出显示呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177497)

--  作者:cnsjroom
--  发布时间:2022/5/25 1:07:00
--  定位到找到的行后怎么将当前行整行突出显示呢?

定位到找到的行后怎么将当前行整行突出显示呢?

 

With tb.Table
    Dim r As Integer
    r = .FindRow("uuid=\'" & tb.Table.Current("uuid") & "\'") \'从第一行开始查找
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行。
    End If
End With


--  作者:有点蓝
--  发布时间:2022/5/25 8:35:00
--  
方法1、http://www.foxtable.com/webhelp/topics/1634.htm
--  作者:cnsjroom
--  发布时间:2022/5/25 12:37:00
--  回复:(有点蓝)方法1、http://www.foxtable.com/web...

老师 参照你的提示  当前可以选定行突出显示了

 

一级窗体table1  打开二级窗体录入或编辑数据后,利用如下代码编辑数据后,会正常找到并定位行   但是在新增数据保存后  下述代码不能定位到符合条件的行  有没有办法修正呢?

主表uuid的弹出值  和一级表得到的数据是一致的

 

编辑是因为一级表本身已经存在主表uuid的记录 

 

录入是因为一级表本身没有数据,怎么解决录入后新增的数据  在一级表中对应的定位到符合条件的行呢?

 

代码如下:

Dim cmd As New S QLCommand
cmd.Connec ti
cmd.Command Text = "S ELE CT * FR OM 知识库主表"
MessageBox.Show(vars("主表uuid"))

Dim dt As DataTable
dt = cmd.ExecuteReader()
Dim tb As WinForm.Table = Forms("知识库").Controls("Table1")
tb.Table.StopRedraw
tb.Table.DataSource = dt
tb.Table.SetColVisibleWidth("类别|120|级别|60|行业|120|单位|120|文件名|700")


cmd.Comm andText = "SEL ECT * FR OM 知识库附件 where 主表uuid=\'" & tb.Table.Current("uuid") & "\'"
dt = cmd.Execut eReader()
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource = dt
tb1.Table.SetColVisibleWidth("文件名|1120")
tb.Table.ResumeRedraw

With tb.Table
    Dim r As Integer
    r = .FindRow("uuid=\'" & vars("主表uuid") & "\'") \'从第一行开始查找
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行。
    End If
End With
tb.Table.ListMode=True


--  作者:有点蓝
--  发布时间:2022/5/25 13:29:00
--  
上面的定位代码没有问题,除非没有符合条件的数据
--  作者:cnsjroom
--  发布时间:2022/5/25 17:04:00
--  回复:(有点蓝)上面的定位代码没有问题,除非没有符...

看嘛  实际上测试的时候  对应的uuid的值又是存在于数据库记录中的……

麻烦老师指导下  谢谢!


此主题相关图片如下:4.gif
按此在新窗口浏览图片


以下内容是专门发给有点蓝浏览

 

录入窗体关闭后事件代码如下:

代码如下:

Dim cmd As New S QLCommand
cmd.Connec ti
cmd.Command Text = "S ELE CT * FR OM 知识库主表"
MessageBox.Show(vars("主表uuid"))

Dim dt As DataTable
dt = cmd.ExecuteReader()
Dim tb As WinForm.Table = Forms("知识库").Controls("Table1")
tb.Table.StopRedraw
tb.Table.DataSource = dt
tb.Table.SetColVisibleWidth("类别|120|级别|60|行业|120|单位|120|文件名|700")


cmd.Comm andText = "SEL ECT * FR OM 知识库附件 where 主表uuid=\'" & tb.Table.Current("uuid") & "\'"
dt = cmd.Execut eReader()
Dim tb1 As WinForm.Table = Forms("知识库").Controls("Table2")
tb1.Table.DataSource = dt
tb1.Table.SetColVisibleWidth("文件名|1120")
tb.Table.ResumeRedraw

With tb.Table
    Dim r As Integer
    r = .FindRow("uuid=\'" & vars("主表uuid") & "\'") \'从第一行开始查找
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行。
    End If
End With
tb.Table.ListMode=True

[此贴子已经被作者于2022/5/25 17:05:00编辑过]

--  作者:有点蓝
--  发布时间:2022/5/25 17:11:00
--  
With tb.Table
    Dim r As Integer
msgbox("uuid=\'" & vars("主表uuid") & "\'")
    r = .FindRow("uuid=\'" & vars("主表uuid") & "\'") \'从第一行开始查找
msgbox("r=" & r)
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行。
    End If
End With
tb.Table.ListMode=True