Foxtable(狐表)用户栏目专家坐堂 → 如何根据会议议题表的当前行 来自动打开议题资料的第一行对应的二进制未见到web浏览控件里呢?


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

主题:如何根据会议议题表的当前行 来自动打开议题资料的第一行对应的二进制未见到web浏览控件里呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
如何根据会议议题表的当前行 来自动打开议题资料的第一行对应的二进制未见到web浏览控件里呢?  发帖心情 Post By:2022/4/24 10:22:00 [只看该作者]

如何根据会议议题表的当前行  来自动打开议题资料的第一行对应的二进制未见到web浏览控件里呢?

想实现点击会议议题某行  就自动打开关联议题资料的第一行数据 到web浏览控件内!不管第一行数据是啥,只要这个数据行不为空,都显示出来!

 

 

会议议题表的当前行事件代码:正常实现议题资料的所有关联行数据显示出来

Dim zs1 As Integer = Tables(e.form.name & "_table1").Count
If zs1 >0 Then
    If Tables(e.form.name & "_table1").Current("uuid")<>"" Then
        vars("议题uuid")=Tables(e.form.name & "_table1").Current("uuid")
        vars("议题标题")=Tables(e.form.name & "_table1").Current("议题标题")
        Tables(e.form.name & "_table2").Filter="uuid='" & Tables(e.form.name & "_table1").Current("uuid") &"'and 会议主题='" & Tables(e.form.name & "_table1").Current("议题标题") &"'"
    Else
        Tables(e.form.name & "_table2").Filter="uuid='XXXXXXX'and 会议主题='" & Tables(e.form.name & "_table1").Current("议题标题") &"'"
        vars("议题uuid")=""
        vars("议题标题")=""
    End If
Else
    Tables(e.form.name & "_table2").Filter="uuid='XXXXXXX' and 会议主题='" & Tables(e.form.name & "_table1").Current("议题标题") &"'"
End If

 

 

议题资料事件代码  正常实现双击某行能够对应打开对应的二进制文件到web浏览控件内

If Tables(e.form.name & "_table2").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = Tables(e.form.name & "_table2").Current.DataRow
Dim fl As String =  ProjectPath &  dr("文件名")
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
Else '否则从数据库提取文件
    If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If
'Dim Proc As New Process '打开文件
'Proc.File = fl
'Proc.Start()
Dim wb As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
wb.Address=fl


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110668 积分:563254 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/24 10:35:00 [只看该作者]

Dim web = e.form.controls("webbrowser1").basecontrol
web.documenttext = "<html><body><img width='500px' height='500px' src='" & fl & "' /></body></html>"

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)Dim web = e.form.controls("webbrow...  发帖心情 Post By:2022/4/25 8:48:00 [只看该作者]

老师  应该是这样


图片点击可在新窗口打开查看此主题相关图片如下:44.png
图片点击可在新窗口打开查看
该怎么操作呢?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110668 积分:563254 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/25 8:53:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/2717.htm

比如,

Dim lst As List(of String)
lst = 
Tables("A").Current.DataRow.Lines("文件")
msgbox("第一个文件为:" & lst(0))
[此贴子已经被作者于2022/4/25 8:52:56编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)参考:http://www.foxtable.com/webh...  发帖心情 Post By:2022/4/25 9:59:00 [只看该作者]

在会议主题中加入如下点击代码  可以实现议题资料里面有文件名的时候  文件对应的打开并显示在web浏览控件中   
怎么实现当会议主题对应的议题资料没有文件的时候   web浏览里面的为空呢  包括之前打开的所有的文件全部清空

 

Dim wb As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
If Tables(e.form.name & "_table2").Current Is Nothing Then
    Return
End If

Dim lst As List(of String)
lst = Tables(e.form.name & "_table2").Current.DataRow.Lines("文件名")
'msgbox("第一个文件为:" & lst(0))

Dim dr As DataRow = Tables(e.form.name & "_table2").Current.DataRow
Dim fl As String =  ProjectPath &  lst(0)
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
Else '否则从数据库提取文件
    If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If

If lst(0).Count>1 Then
    wb.Address=fl
Else
    wb.Address=Nothing
End If


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110668 积分:563254 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/25 10:03:00 [只看该作者]

If lst.Count>1 Then
    wb.Address=fl

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)If lst.Count>1 Then  ...  发帖心情 Post By:2022/4/25 10:14:00 [只看该作者]


If lst.Count>1 Then
    wb.Address=fl
Else
    wb.Address=Nothing
End If

 

老师  改成这样的话 结果一个都不显示了


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110668 积分:563254 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/25 10:16:00 [只看该作者]

If lst.Count>0 Then

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)If lst.Count>0 Then  发帖心情 Post By:2022/4/25 10:18:00 [只看该作者]

一样试过  不得行呢

 

代码改成如下:基本可以到达预期 
老师有没有更简便的写法呢?

Dim wb As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
If Tables(e.form.name & "_table2").Current Is Nothing Then
    wb.Address=Nothing
    Return
End If

Dim lst As List(of String)
lst = Tables(e.form.name & "_table2").Current.DataRow.Lines("文件名")
'msgbox("第一个文件为:" & lst(0))

Dim dr As DataRow = Tables(e.form.name & "_table2").Current.DataRow
Dim fl As String =  ProjectPath &  lst(0)
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
Else '否则从数据库提取文件
    If dr.SQLLoadFile("附件",fl) = False Then '如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If
wb.Address=fl


 回到顶部