Foxtable(狐表)用户栏目专家坐堂 → 狐爸看看 如何用代码改变外部表的对应关系。


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

主题:狐爸看看 如何用代码改变外部表的对应关系。

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/9 11:07:00 [只看该作者]

以下是引用Fotable在2012-9-9 10:47:00的发言:
对呀,我现在的实现思路就是 前台同样的表 对应后台不同的数据库表名,来实现虚拟数据库

对表名用表进行管理,我没有使用你这个来加载表,我都是用窗口使用fill来实现的。以下是飞的代码,你可以试试看

 

'此函数用于动态生成数据表
Dim TblName As String = Args(0)           '要生成的表名称
Dim SQLStr As String = Args(1)            'SQL语句
Dim CanEdit As Boolean = Args(2)          '是否允许修改,用于权限控制

If DataTables.Contains(TblName ) Then
    DataTables(TblName ).Fill(SQLStr ,"Test",not CanEdit)
Else
    Dim TblBu As new OuterTableBuilder
    TblBu.TableCaption = TblName
    TblBu.TableName = TblName
    TblBu.C
    TblBu.SelectString = SQLStr
    TblBu.Build
End If
With DataTables(TblName )
    .AllowEdit = CanEdit                           '根据权限设置是否允许编辑
    .GlobalHandler.PrepareEdit = True              '开启全局表事件
    .GlobalHandler.DataRowAdding = True
    .GlobalHandler.BeforeShowContextMenu = True
    .GlobalHandler.DataColChanged = True
    If .Name Like "员工资料*" Then .GlobalHandler.BeforeAttachFile = True
    If .Name Like "成品资料维护*" Then .GlobalHandler.DataColChanged = True
End With
Tables(TblName ).AutoSizeCols
Tables(TblName ).Grid.AllowFiltering = True
Tables(TblName ).Grid.AllowFreezing = True
'If TblName.Contains("录入") Then Tables(TblName).Grid.AllowAddNew = True
MainTable = Tables(TblName )


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


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/9/11 11:30:00 [只看该作者]

动态加载总结

前面介绍了各种动态加载数据的方法,现在总结一下:

1、如果是从同一个表重新加载数据,那么使用DataTable的Load方法。

2、如果需要从另一个表加载数据,那么用Fill方法。

3、DataTable和Table都有Fill方法,对于标准的表,应该使用DataTable的Fill方法,对于窗口中的SQLTable和SQLquery型Table,以及作为副本的Normal型Table,应该使用Table的Fill方法。

4、如果需要从另一个数据源加载一个结构完全相同的表,那么用DataTable的ChangeConnection方法。

5、对于窗口中的Table,通过设置DataSource属性,可以显示任何已经加载的表的数据。

6、如果要在主界面中增加查询表,可以使用QueryBuilder,如果要在主界面中增加外部数据表,可以使用OuterTableBuilder

7、如果要在窗口中动态增加Table,需要使用Form的CreateSQLTable、CreateSQLQuery、CreateTable方法。

8、如果希望关联表中的子表随父表同步加载数据,可以参考表事件AfterLoad


 回到顶部
总数 12 上一页 1 2