Foxtable(狐表)用户栏目专家坐堂 → 设置RichTextBox行距与模拟关联表问题


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

主题:设置RichTextBox行距与模拟关联表问题

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
设置RichTextBox行距与模拟关联表问题  发帖心情 Post By:2018/7/25 20:25:00 [只看该作者]

请教老师,根据论坛例子就RichTextBox设置行距(内部函数,全局代码),如果在模拟关联表的情况,表A增加行时报错

如果不使用模拟关联表,表A增加行,并不报错

请老师测试看看

 

测试:

1. 模拟关联:表A(父表)表B(子表)

2. 窗口1点击表A增加行按钮报错

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设置控件间距例子(报错测试).table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/25 20:45:00 [只看该作者]

修改红色代码(两个地方afterLoad、currentchanged)

 

If Forms("窗口1").Opened() '一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("表B")
    With Tables("表A")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "项目编号 = '" & .Current("项目编号") & "'"
        End If
    End With
End If


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/7/26 10:04:00 [只看该作者]

老师好,上面问题解决了,现在同样的项目有个新问题请教

1. 如果表中无任何数据行时,打开窗口,报未引用实例,窗口完全打开后对应的控件panel能出现,此时增加行正常

2. 如果在对应控件的代码上加入如下代码,打开窗口不报错,但panel不出现,此时如果增加空数据行,就报错

If Tables("表B").Current Is Nothing Then
        Return '则返回

  ......

测试:窗口1,表B此时为空表,根据需要点击按钮增加行就报错,如果有控件panel3出现就不报错,但打开窗口时又报错

 

请老师再帮忙看看,谢谢!

 

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:设置控件间距例子11.table

[此贴子已经被作者于2018/7/26 10:04:16编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/26 10:17:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设置控件间距例子11.table


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/7/26 16:07:00 [只看该作者]

感谢老师上述的指导,还得麻烦指教下下

在删除按钮写入如下代码,报错调用目标发生异常,问题在“自定义函数...........”,想实现的是删除行后,RichTextBox的mytxt控件内容也同时删除,不然虽然删除行了,但panel内依然有内容

 

Tables("表A").Current.Delete
Dim rtxt = Forms("窗口1").Controls("Panel1").basecontrol.Controls("mytxt")
    rtxt.text = ""

 

另外,在关闭窗口时把RichTextBox的控件释放掉,是否这样写

e.Form.Panel.Controls.Remove(rtxt)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/26 16:19:00 [只看该作者]

1、

 

systemready = False
Dim rtxt = Forms("窗口1").Controls("Panel1").basecontrol.Controls("mytxt")
rtxt.text = ""
Tables("表A").Current.Delete
systemready = True

 

2、不需要释放掉的,关闭窗口自动释放了。

 

或者写 e.form.panel.controls.clear

 


 回到顶部