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


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

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

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2012/9/9 10:08:00 [显示全部帖子]

以下是引用Fotable在2012-9-8 23:36:00的发言:

我来说说我为什么要用代码更改数据表的对应关系吧。

假设我的软件中有两张表。{订单表 }和 {库存表} 我的软件做好了之后 我准备发布给A销售公司和B销售公司使用。

A公司和B公司是独立没有关系的公司。但我让他们共享一个互联网数据库。所以就必须在这个共享的数据库里面建立4张表。

给A公司的软件 中 订单表 对应共享数据中的,{订单表A}  库存表对应 {库存表A}

给B公司的软件中  订单表 对应共享数据中的,{订单表B}  库存表对应 {库存表B}

 

同时我还可以把软件卖给C公司那么 又需要更改软件的对应关系

给c公司的软件中  订单表 对应共享数据中的,{订单表c}  库存表对应 {库存表c}

这样虽然不同的公司共享了同一个数据库,但对他们每个公司来说,数据时相互独立的。

所以我需要用代码 来一键操作这些修改。

[此贴子已经被作者于2012-9-8 23:37:28编辑过]

你换种思路,你不是有外部数据源吗?定义一个全局变量,以后在所有的数据源都引用这个。你想要修改数据源名称或换个数据源时,只需改这个变量,这样数据源就更改了。不同公司怎么能用同个数据源?万一出现程序错误,你这责任可不小


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 )


 回到顶部