Foxtable(狐表)用户栏目专家坐堂 → [求助]动态加载表格控件时,为什么会报“表无_identify列“?


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

主题:[求助]动态加载表格控件时,为什么会报“表无_identify列“?

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]动态加载表格控件时,为什么会报“表无_identify列“?  发帖心情 Post By:2014/12/25 9:14:00 [只看该作者]

报错描述:
做简单的对照事例时,有弄不清故障出处:
具体是:
1.发现在“窗口1”中用代码加TabContro控件,然后在子页上加Table控件,最后加载“表C”,运行无错误(在窗体1中的AfterLoad事件中加代码 )
2.而在自己编写的项目中,用同样思路来加载表C,却报”表C不存在名为“_Identify"的列!


窗口表事件

 

窗口与控件事件

 

窗口1_AfterLoad

 

Dim tcl As WinForm.TabControl

tcl = e.Form.CreateControl("TabControl1",ControlTypeEnum.TabControl)

tcl.Dock = 5

tcl.TabPages.Add("Page1","试验")

Forms("窗口1").AddControl(tcl)

 

 

 

Dim tbl As WinForm.Table

tbl = e.Form.CreateTable("Table1", "表C",True )

tbl.Dock = 5

Forms("窗口1").Controls("TabControl1").TabPages("Page1").AddControl(tbl)

 

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/25 9:20:00 [只看该作者]

表C 没有_Identify列导致的吧,你检查一下.

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]动态加载表格控件时,为什么会报“表无_identify列“?  发帖心情 Post By:2014/12/25 9:41:00 [只看该作者]

表C确实有_Identify列,我通过复制表的对话框能看到有。

下面我再重新描述一遍。
报错描述:
做简单的对照事例时,有弄不清故障出处:
具体是:
1.发现在“窗口1”中用代码加TabContro控件,然后在子页上加Table控件,最后加载“表C”,运行无错误(在窗体1中的AfterLoad事件中加代码 )
2.而在自己编写的项目中,用同样思路来加载表C,却报”表C不存在名为“_Identify"的列!

1.无报错的简化标准代码

窗口表事件

 

窗口与控件事件

 

窗口1_AfterLoad

 

Dim tcl As WinForm.TabControl

tcl = e.Form.CreateControl("TabControl1",ControlTypeEnum.TabControl)

tcl.Dock = 5

tcl.TabPages.Add("Page1","试验")

Forms("窗口1").AddControl(tcl)

 

 

 

Dim tbl As WinForm.Table

tbl = e.Form.CreateTable("Table1", "表C",True )

tbl.Dock = 5

Forms("窗口1").Controls("TabControl1").TabPages("Page1").AddControl(tbl)


2.有报错的工程代码

Dim EndTab As  WinForm.Table


For Each TopPg In TopGroup.TabPages

LevSecTab = e.Form.CreateControl("LevSec" & TopPg.Name ,ControlTypeEnum.TabControl )


    For Each drSec As DataRow In DtRep.Select(ReSysFilter & " And " & TaCoFilter  & " And ReportGroupCode = '" &TopPg.Name & "'","ReportGroupCode")

        LevSecTab.TabPages.Add(drSec("ReportCode"),drSec("ReportCode") & "|" & drSec("ReportName"))

            If drSec("ReportCode") = "Z1" Then

            EndTab = e.Form.CreateTable(drSec("ReportCode") & "Tab" ,"表C",True )

            EndTab.Dock = 5

            EndTab.ShowCheckBox = False

            LevSecTab.TabPages(drSec("ReportCode")).AddControl(EndTab)

            End If

    Next


LevSecTab.Dock = 5

TopPg.AddControl(LevSecTab)

Next 



疑问:

  EndTab = e.Form.CreateTable(drSec("ReportCode") & "Tab" ,"表C",True ) 中的True改为false时不报错.

我已经把问题简化求证,但还没查出错误点.


求助:请费心看一下我的工程代码,看问题出在哪?(工程代码在"录入主窗口"的AfterLoad事件中。

工程文件我随后上传

出故障时的图片,我也随后上传。

故障点在我点多页控件时,点z1的那个页,报错的。


[此贴子已经被作者于2014-12-25 10:57:18编辑过]

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]附报错图片  发帖心情 Post By:2014/12/25 9:43:00 [只看该作者]

图片点击可在新窗口打开查看为什么插入不了图片,为什么不能上传附件。。。
[此贴子已经被作者于2014-12-25 9:46:07编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/25 9:46:00 [只看该作者]

能不能做个简单例子.

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
  发帖心情 Post By:2014/12/25 9:50:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]我把工程文件再处理处理。。。。  发帖心情 Post By:2014/12/25 9:52:00 [只看该作者]

我再处理处理,就怕处理之后错误就没了。。。。


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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]不动表格,只把工程中有关窗体删除,新加窗体和代码,不报错。说明是窗体问题,不是基础表有问题。  发帖心情 Post By:2014/12/25 10:05:00 [只看该作者]

不动表格,只把工程中有关窗体删除,新加窗体和代码,不报错。说明是窗体问题,不是基础表有问题。表C没问题。。。。我再接着查窗体代码有什么问题。。。。

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


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[分享]窗口中多层动态添加控件,要有顺序,否则出莫名其妙的错。  发帖心情 Post By:2014/12/25 10:55:00 [只看该作者]

找到了。。。。做个简单例子。。。。我不断精简无关代码。。。。发现,窗口中多层动态添加控件,要有顺序,否则出错。即顶层控件没添加,里面一层控件添加到顶层控件,最后再添加顶层控件,就会出现我的莫名其妙的情况。

 

1.正确代码顺序

Dim TBC As  WinForm.TabControl
Dim TB As  WinForm.Table
TBC = e.Form.CreateControl("LevSecName" ,ControlTypeEnum.TabControl )
TBC.TabPages.Add("test","test")

TBC.Dock = 5
e.Form.AddControl(TBC)

 

TB = e.Form.CreateTable( "Tab1" ,"表C",True )
TB.Dock = 5
TBC.TabPages("test").AddControl(TB)

 

2.错误的代码顺序

Dim TBC As  WinForm.TabControl
Dim TB As  WinForm.Table
TBC = e.Form.CreateControl("LevSecName" ,ControlTypeEnum.TabControl )
TBC.TabPages.Add("test","test")

 

TB = e.Form.CreateTable( "Tab1" ,"表C",True )
TB.Dock = 5
TBC.TabPages("test").AddControl(TB)

 

TBC.Dock = 5
e.Form.AddControl(TBC)

 


 回到顶部