Foxtable(狐表)用户栏目专家坐堂 → [求助]当前单元格的值


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

主题:[求助]当前单元格的值

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]当前单元格的值  发帖心情 Post By:2018/7/6 10:51:00 [显示全部帖子]

窗口都是以并列窗口形式打开,所有者表都是Main。
窗口中WebBrowser控件解析html文件,将html中的多个div控件绑定foxtable数据表。
另有一个朗读窗口,打开时,窗口中的文本框获取当前单元格的值:
e.Form.controls("TextBox1").text = CurrentTable.value

 

 

现在的问题是:
朗读窗口获取的值始终是Main第一个单元格的值,并不是窗口div控件绑定的表的值。
经测试,点击不同窗口div,其绑定表的选定单元格是跟随相应变化的。
怎样获取这个变化的单元格值呢?

[此贴子已经被作者于2018/7/6 11:52:44编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/6 16:34:00 [显示全部帖子]

请看实例。谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2018-2-28当前值.rar


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/7 13:07:00 [显示全部帖子]

按照老师楼上的指点修改了函数代码,同时修改了语音朗读窗口的AfterLoad、全局表事件 AfterSelChange,
将“CurrentTable.value”替换为“vars("val") ”。

现在存在下列问题:
1、朗读窗口显示或朗读的是离开的单元格内容,不是当前的单元格内容;
2、朗读窗口打开时,点击不同的窗口div时,非当前div框线不消失,朗读窗口关闭时,不存在上述情况;
3、校对按钮不起作用,表A的ValidateEdit代码应该怎样修改?
谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2018-2-28当前值 (1).rar




[此贴子已经被作者于2018/7/8 17:24:35编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/9 10:28:00 [显示全部帖子]

按照楼上蓝老师答复内容修改后,仍存在下列问题:

1、点击校对按钮后,再点击不同的div,校对没有反应;
2、打开“语音朗读”窗口,双击当前div,希望朗读当前div内容。
请老师指教,谢谢!
 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2018-2-28当前值 (2).rar


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/9 16:33:00 [显示全部帖子]

谢谢田老师!

 

1、就是点击“校对”按钮以后,直接朗读当前的div内容。

不用打开朗读窗口。

 

2、另外,老师加的这段函数代码,如果有很多个不同的"编辑窗口",加黑代码怎样修改? 

 

If Forms("语音朗读").opened Then
    Dim web = forms("编辑窗口").controls("webbrowser1").basecontrol
    Forms("语音朗读").controls("TextBox1").text = vars("val")
    Forms("语音朗读").controls("朗读").performclick
    Forms("语音朗读").controls("暂停").checked = True
    web.Document.InvokeScript("eval", new String() {"document.getElementById('" & arr(0) & "').setAttribute('class', '');" })
   
End If

[此贴子已经被作者于2018/7/9 17:01:38编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/9 22:00:00 [显示全部帖子]

老师,加黑代码提示出错。
是这样设置变量吗?

If Forms("语音朗读").opened Then
  Dim f As WinForm.Form = Forms.ActiveForm
  If f IsNot Nothing Then
      Dim web As WinForm.webbrowser = f.controls("webbrowser1").basecontrol
      Forms("语音朗读").controls("TextBox1").text = vars("val")
      Forms("语音朗读").controls("朗读").performclick
      Forms("语音朗读").controls("暂停").checked = True
      web.Document.InvokeScript("eval", new String() {"document.getElementById('" & arr(0) & "').setAttribute('class', '');" })
  End If
End If
[此贴子已经被作者于2018/7/10 7:28:44编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/13 16:47:00 [显示全部帖子]

按照老师指点,功能都实现了。
我在编辑窗口中的页面集合上又增加了一个页面BBB,在变换div校对时,会出现下列两个错误提示,请老师再帮助看看是哪里的原因?
谢谢!

 


图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看


 


图片点击可在新窗口打开查看此主题相关图片如下:image 2.jpg
图片点击可在新窗口打开查看 


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2018-7-13.rar


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/15 17:20:00 [显示全部帖子]

谢谢甜老师的耐心解答!
我还有两个问题:
1、点击“语音校对”按钮后,变换不同div,校对都能及时跟随变换。
但是,如果校对中(就是当前div内容还没有朗读完毕时),点击按钮停止校对,还会出现楼上第一个提示。
这个问题是不是校对采用的“同步朗读”模式造成的?
与朗读窗口中的这段代码有关系吗?能不能避免?

图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

2、我想打开朗读窗口,朗读当前网页所有div的文本内容,下列代码是老师以前提供的,我不知道怎样修改,请老师指教,谢谢!
Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate(ProjectPath & "2.html")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementById("bd").GetElementsByTagName("div")
For Each elem As object In elems
    If elem.getattribute("className") = "dc-ccm1" Then
        Dim divs As object = elem.GetElementsByTagName("div")
        For Each div As object In divs
            'output.show(div.innertext)
            'ClipBoard.SetText(div.innertext)    ’写入剪贴板
            Forms("语音朗读").open()
            Forms("语音朗读").Controls("TextBox1").Text = div.innertext
        Next
    End If
Next
[此贴子已经被作者于2018/7/15 17:50:17编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/16 11:51:00 [显示全部帖子]

第一个问题,增加一句暂停代码,然后增加一个关闭朗读窗口的按钮,不会报错。

但是,把关闭按钮合并进来或者模拟点击关闭按钮,都不行。

这个怎样解决?

If e.Form.Controls("语音校对").text ="语音校对" Then
    e.Form.Controls("语音校对").text ="校对中..."
    e.Form.Controls("语音校对").BackColor = Color.red
    Forms("语音朗读").open(-1000,0)
    Forms("语音朗读").baseform.Hide()
   
Else
    e.Form.Controls("语音校对").text ="语音校对"
    e.Form.Controls("语音校对").BackColor = Color.Transparent
    Forms("语音朗读").Controls("TextBox1").text = "校对结束"   '清空
    Forms("语音朗读").controls("暂停").checked = True  
   
    Forms("语音朗读").close
    'e.Form.Controls("关闭").Select() '单击关闭按钮
    'Sendkeys.Send("{Enter}")
End If

 

第二个问题:vars("web") = forms.activeform.activecontrol  这个放哪里?

调用的时候,Forms("语音朗读").Controls("TextBox1").Text = vars("web")

函数和Forms("语音朗读")的afterload里是Forms("语音朗读").Controls("TextBox1").Text =vars("val"),用不用修改?


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/7/18 9:20:00 [显示全部帖子]

1、我把“语音朗读”窗口打开后的默认朗读模式设置为“异步朗读”,这样就能在朗读过程中点击“停止”按钮,正常关闭“语音朗读”窗口了。
但是,出现一个新问题,我在“校对”按钮中模拟点击“停止”按钮,关闭“语音朗读”窗口的代码为什么没起作用呢?而且,在“校对”过程中点击不同的div,会把div当前行的文字在光标处断成两行。
切换校对按钮的代码如下:

If e.Form.Controls("语音校对").text ="语音校对" Then
    e.Form.Controls("语音校对").text ="校对中..."
    e.Form.Controls("语音校对").BackColor = Color.red
    Forms("语音朗读").open(-1000,-1000)
    Forms("语音朗读").baseform.Hide()
   
Else
    e.Form.Controls("语音校对").text ="语音校对"
    e.Form.Controls("语音校对").BackColor = Color.Transparent
    If Forms("语音朗读").opened Then
        Forms("语音朗读").Controls("停止").Select()
        Sendkeys.Send("{Enter}")
        Forms("语音朗读").close
    End If
End If


2、朗读当前网页所有div的文本内容,还是做不了。

请老师有空再给看一看。谢谢!

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:2018-7-18当前值.rar


 回到顶部
总数 16 1 2 下一页