Foxtable(狐表)用户栏目专家坐堂 → 谁来开发一个直接建表的程序


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

主题:谁来开发一个直接建表的程序

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
谁来开发一个直接建表的程序  发帖心情 Post By:2015/5/13 14:21:00 [显示全部帖子]

这个功能如果开发好了则系统开发就容易多了。

要求

建立表时,就像写一个EXCEL表格文件一样

关键七列: 表名,字段名,字段类型,数据长度,字段说明,建立人,建立日期

 

然后做一个按钮,点击就按该表行数据自动建立表,如果字段已有的就自动过滤掉。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/13 14:42:00 [显示全部帖子]

系统建表很不方便

如果这样建立表就方便多了,上一次已经建立过的字段,可以直接选择了,可有效防止同一个字段建立了不同的名字,建立了不同的类型,长度,还可以标记字段说明

 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 7:37:00 [显示全部帖子]

请问官方1:字段标题,表标题 如何用代码操控。

请问官方2:小数本来可以整一个类型一般就能满足需求,确搞了三个,日期字段类型一般最少要三个短日期,长日期,纯时间,可系统字段类型仅一个日期时间型,然后需通过FT本身的附加功能设置,为什么不直接在建立表时直接设置呢,一直以为这是FT不足的一个地方,或者这是FT故意设置的软件控制策略(但有点将一个简单的事情复杂化了)。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 13:58:00 [显示全部帖子]

afterOpenproject之后设置进去;能给个代码示例不

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 19:37:00 [显示全部帖子]

Dim say As String  =  Tables("Systablename").Current("FSSXTtable")
If say IsNot Nothing Then
    Dim r As Row = Tables("FS_XTJB").addnew()
    r("FSSTableName")= say
   
   
    Dim  Builder As  New  ADOXBuilder("HCCL")  '要指定数据源名称
    Dim tbl  As ADOXTable
    Builder.Open()
    tbl = Builder.NewTable(say) '创建表
    With tbl
        .AddColumn("FSS1" ,ADOXType.String, 20)
        .AddColumn("FSS2" ,ADOXType.String, 20)
    End With
   
    Builder.AddTable(tbl, True, True) '增加表
    Builder.Close()
End If

 

这段代码已可以自动根据输入内容来建立表了,但如何在建表前 判断 变量 say  这个表已存在否呢,如果已存在就不建立了,不存在才建立。

 

同样 字段变量为 zdz 如果判断这个表中这个字段是否已经存在呢,存在就不建立字段,否则建立字段。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 19:50:00 [显示全部帖子]

Dim say As String  =  Tables("Systablename").Current("FSSXTtable")
If say IsNot Nothing Then
    Dim r As Row = Tables("FS_XTJB").addnew()
    r("FSSTableName")= say
   
    If DataTables.Contains(say) = False Then
       
        Dim  Builder As  New  ADOXBuilder("HCCL")  '要指定数据源名称
        Dim tbl  As ADOXTable
        Builder.Open()
        tbl = Builder.NewTable(say) '创建表
        With tbl
            .AddColumn("FSS1" ,ADOXType.String, 20)
            .AddColumn("FSS2" ,ADOXType.String, 20)
        End With
       
        Builder.AddTable(tbl, True, True) '增加表
        Builder.Close()
    End If
End If

 

我加上了红色部份判断,测试并不起作用,错在哪里了

 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 19:58:00 [显示全部帖子]

12楼 错误依旧,没有解决。第二次执行时,系统提示表已存在不能再建立,If DataTables.Contains(say) = False Then 这个不起作用?

 

13楼理解偏差,我本意是用FS_XTJB存要建立的字段数据,所以这个判断 If DataTables("FS_XTJB").Find("FSSTableName = '" & say & "'") Is Nothing Then  跟表有没有建立一点逻辑关系都没有。

 

所以还是要在 DataTables.Contains(say) 上作文章才行。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 20:11:00 [显示全部帖子]

If DataTables.Contains("ydh001") '如果存在统计表1
     MessageBox.Show("此表已经存在")
End If

 

经测试 这个判断只能判断已经加载到系统中的表,这种动态建立的表,并没有加载到系统中来,所以无法判断。如果使用手工加载外部表的方式加载后,该判断方式生效了。

 

根据帮助文件说明 :DataTables.Load("ydh009")应该 能加载已建立的外部数据表,但测试不能加载表。

另根据帮助说明:采用这种方法动态建立外部表后,重新启动项目后,外部表会自动加载,但多次测试,重新启动项目也未能加载这个表

请官方查一下原因


 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/14 20:12:00 [显示全部帖子]

那么如何 用SQL语句判断目标外部数据源有无表或字段呢

 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/5/15 8:50:00 [显示全部帖子]

先建立内部表,然后再重定向到外部表去,貌似很好的方案。但不是根本解决问题的方法,在大型应用设计中,总要加字段的,增加字段后就不能用这种方法了。所以说这还不是最根本的解决问题的方法,请官方给一个 可承时随地,加载外部表的代码示例,第一次加载,还有后续增加字段了,重新加载外部表把增加的字段也加载进来。

 回到顶部
总数 11 1 2 下一页