Foxtable(狐表)用户栏目专家坐堂 → 往焦点所在单元格传输数据失败


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

主题:往焦点所在单元格传输数据失败

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


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
往焦点所在单元格传输数据失败  发帖心情 Post By:2020/2/9 16:33:00 [只看该作者]

老师,我通过双击tables("试样信息表").current("检测内容")打开“窗口1”,进行一系列操作后,得到字符串 str,希望:tables("试样信息表").current("检测内容")=str

发现不成功。在tables("试样信息表").current("备注")单元格双击后打开“窗口1”,就能实现tables("试样信息表").current("检测内容")=str。

想请教,从窗口向主表中的焦点所在单元格写数据不可以吗?我希望双击哪个单元格,就向哪个单元格传输数据。可以做到吗? 谢谢!

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/9 22:47:00 [只看该作者]

肯定可以的。双击事件写了什么代码?窗口向单元格赋值又是怎么做的?

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


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2020/2/10 20:27:00 [只看该作者]

If System.Windows.Forms.Control.ModifierKeys = Keys.Control And e.Col.Name="检测内容"  ‘*********************如果改成其他列,比如“备注”就没有问题
    Dim ddr As DataRow  = DataTables("通用检测价格表").Find("次分类 = '" & e.Row("试样名称") & "'")
    If ddr Is Nothing Then
        msgbox("请检查【试样名称】是否填写正确")
        e.Cancel = True
    End If
    If ddr IsNot Nothing Then
        Public_检测大类 = ddr("首分类")
        Public_次分类=DDR("次分类")
        Public_表名称=e.Table.name
        Forms("窗口1").open
    End If
End If

*******************以下是窗口1的代码
Dim nr1 As WinForm.TextBox = e.Form.Controls("详细内容")
Dim jg1 As WinForm.TextBox = e.Form.Controls("检测费")'
Dim sl1 As WinForm.TextBox = e.Form.Controls("检测数量")
Dim nr2 As WinForm.TextBox = e.Form.Controls("试样名称")
Dim jg2 As WinForm.TextBox = e.Form.Controls("加工费")
Dim sl2 As WinForm.TextBox = e.Form.Controls("试样数量")
Dim dr1 As Row= Tables(public_表名称).current
dr1("检测内容")=iif( sl1.text>0,(nr1.text & "*" & sl1.text),"")
dr1("加工内容")=iif(sl2.text>0,(nr2.text & "*" & sl2.text),"")
dr1("检测费")=jg1.text
dr1("加工费")=jg2.text

如果双击的是“检测内容”列,dr1("检测内容")=iif( sl1.text>0,(nr1.text & "*" & sl1.text),"")就没有结果。双击其他列打开窗口,就没有问题


[此贴子已经被作者于2020/2/10 20:30:13编辑过]

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/10 20:46:00 [只看该作者]

If System.Windows.Forms.Control.ModifierKeys = Keys.Control And e.Col.Name="检测内容"  ‘*********************如果改成其他列,比如“备注”就没有问题
    Dim ddr As DataRow  = DataTables("通用检测价格表").Find("次分类 = '" & e.Row("试样名称") & "'")
    If ddr Is Nothing Then
        msgbox("请检查【试样名称】是否填写正确")
    else
        Public_检测大类 = ddr("首分类")
        Public_次分类=DDR("次分类")
        Public_表名称=e.Table.name
        Forms("窗口1").open
    End If
    e.Cancel = True
End If

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


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2020/2/11 5:26:00 [只看该作者]

问题解决了,谢谢老师。我有些疑惑,为什么没有代码e.Cancel = True 就不能往焦点单元格写数据?有什么规则吗?

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/11 8:43:00 [只看该作者]

只要是在设计事件里打开窗口的都需要这样用,这是固定用法:http://www.foxtable.com/webhelp/topics/1499.htm

 回到顶部