Foxtable(狐表)用户栏目专家坐堂 → 用SQL生成窗口中的table能否再增加临时列?(已解决)


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

主题:用SQL生成窗口中的table能否再增加临时列?(已解决)

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
用SQL生成窗口中的table能否再增加临时列?(已解决)  发帖心情 Post By:2013/1/6 23:40:00 [显示全部帖子]

各位老师,

 

用SQL command查询生成窗口中的table,得到的临时表能否再增加临时列,但如下代码为何总提示出错,但最后又正确显示出结果?

 谢谢!

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()
dt.DataCols.Add("选择1", Gettype(Boolean))
Tables(e.Form.name & "_Table1").DataSource = dt
Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择1").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()

tr.BuildTree(dt,"产品类别|产品系列")
tr.Nodes.Insert("显示所有",0) '插入顶端节点


 


此主题相关图片如下:360截图20130106-1.jpg
按此在新窗口浏览图片

 

此主题相关图片如下:360截图20130106-2.jpg
按此在新窗口浏览图片


 


此主题相关图片如下:360截图20130106-3.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2013-1-7 13:41:04编辑过]

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/1/7 10:06:00 [显示全部帖子]

还是不可以,

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20130107-1.jpg
图片点击可在新窗口打开查看

后来这句改成

Tables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择1", Gettype(Boolean))

 

可以通过但在运行窗口选择时又提示:

  


图片点击可在新窗口打开查看此主题相关图片如下:360截图20130107-2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/1/7 10:38:00 [显示全部帖子]

没有啊,我的代码是改过来的,是选择。

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
'用SQL语句从后台表取数形成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}"
dt = cmd.ExecuteReader()

Tables(e.Form.name & "_Table1").DataSource = dt
Tables(e.Form.name & "_Table1").DataTable.DataCols.Add("选择", Gettype(Boolean))

Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/1/7 11:41:00 [显示全部帖子]

上传例子,锁定及解锁行的代码在全局事件中

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询后增加临时列及父子表同时锁定解锁行问题.foxdb


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/1/7 13:39:00 [显示全部帖子]

我其实已经搞定了,但增加了一个临时表,不知道这种方式效率怎么样?代码如下:

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
'生成临时表再用SQL语句查找需要的字段生成table
Dim temptb As New DataTableBuilder("临时表")
temptb.Build()
Dim dt As DataTable = DataTables("临时表")
dt.Fill("SELECT 产品编码,产品类别,产品系列,名称,规格,颜色,计量单位 From {产品编码}","EI",True)
dt.DataCols.Add("选择", Gettype(Boolean))
Tables(e.Form.name & "_Table1").DataSource = dt
Tables(e.Form.name & "_Table1").AllowEdit = True
Tables(e.Form.name & "_Table1").Cols("选择").Move(0)
Tables(e.Form.name & "_Table1").AutoSizeCols()

tr.BuildTree(dt,"产品类别|产品系列")
tr.Nodes.Insert("显示所有",0) '插入顶端节点


 回到顶部