Foxtable(狐表)用户栏目专家坐堂 → 关于共用一个录入窗口


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

主题:关于共用一个录入窗口

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
关于共用一个录入窗口  发帖心情 Post By:2020/10/27 10:40:00 [显示全部帖子]

老师,下列蓝字部份1、在全局代码中加上以下代码:

Public btName As String的代码在全局表事件吗?如果是具体是在哪个事件呢??

不同类型的Table共用一个录入窗口

通过控件的BindingField属性,可以在运行过程中将控件动态绑定到Table的列。

假定表A和表B建立了关联,另外窗口1中插入了一个Table控件,此Table控件绑定到表B,“作为副本”属性设置为True。

这样系统中将存在三个表B:

主表:   Tables("表B")
关联表: Tables("表A.表B")
窗口中: Tables("窗口1_Table1")

假定我们为表B设计了一个录入窗口,希望在上述三个Table中双击任何一行,即可打开这个录入窗口来编辑修改此行的数据。

设计步骤:

1、在全局代码中加上以下代码:

Public btName As String

2、将表B的DoubleClick事件代码设置为:

btName = e.Table.Name '将Table名称保存在全局标量btName中
e.Cancel = True '禁止进入编辑状态
Forms(
"录入窗口名").Open()

3、按常规设计好这个录入窗口,各个字段如常绑定到表B的各列。

4、将窗口的AfterLoad事件代码设置为:

If btName  > "" AndAlso btName <> "B" Then
    For Each c As Winform.Control In e.Form.Controls
        If c.Bindingfield > "" AndAlso c.Bindingfield.StartsWith(
"
B."Then
            c.BindingField= c.BindingField.Replace(
"
B.", btName & ".")
        End If
   
Next
End
If

5、如果窗口中有增加行的按钮,此按钮的代码应该为:

Tables(btName).AddNew()

6、同样删除行按钮的代码为:

Tables(btName).Current.Delete()


 回到顶部