以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  引用列如何设置下拉选项?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159933)

--  作者:happyft
--  发布时间:2021/1/14 11:56:00
--  引用列如何设置下拉选项?
打开窗口的afterLoad代码:
Tables(e.Form.name & "_主表").Cols("科目名称").ComboList = "A|B|C"
或者
Tables(e.Form.name & "_主表").Cols("科目名称").ComboList = "..."

上面的"科目名称"列是从其他数据表left join显示出来的引用列,不是主表的数据列,此时用上面的两行代码都不起作用
引用列或者表达式列都不能那样设置吗?

谢谢!




--  作者:有点蓝
--  发布时间:2021/1/14 13:32:00
--  
可以的。如果之后重新fill或者设置datasource,需要重新调用上面的代码
--  作者:HappyFt
--  发布时间:2021/1/14 14:02:00
--  
表是这样fill的

Tables(收款单_主表).Fill("Select a.*,(select top 1 科目名称 from bugetAcc x0 where a.科目代码 = x0.科目代码) As 科目名称 from 收款单a where a.[_Identify] = 0",Mydata,False)


在后面用了
Tables("收款单_主表").Cols("科目名称").ComboList = "..."

打开窗口后却出现不了那个带三个点的小按钮呢?

--  作者:有点蓝
--  发布时间:2021/1/14 14:06:00
--  
生成的表格是锁定的吧

Tables("收款单_主表").AllowEdit = True
Tables("收款单_主表").Cols("科目名称").ComboList = "..."

--  作者:HappyFt
--  发布时间:2021/1/14 14:11:00
--  
不是,表中还有其他列都可以修改的,相同的代码,只要是换成任何一列数据列,就完全正常,但这样引用进来的列就不行
--  作者:有点蓝
--  发布时间:2021/1/14 14:15:00
--  
我测试没有问题,请上传实例说明
--  作者:HappyFt
--  发布时间:2021/1/15 16:17:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar


那个压缩文件是sql数据库脚本文件(数据库登录名:ABC,密码:888)


图片点击可在新窗口打开查看此主题相关图片如下:test01.jpg
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2021/1/15 16:43:00
--  
这种列是不能编辑的,所以无法录入和点击按钮。改为查询表即可

tbl.Fill("Select a.*,(select top 1 科目名称 from 科目 x0 where a.科目代码 = x0.科目代码) As 科目名称 from 收款单 a where a.[_Identify] = 0","test",True)
[此贴子已经被作者于2021/1/15 16:42:46编辑过]

--  作者:HappyFt
--  发布时间:2021/1/15 17:00:00
--  
不能用查询表,因为这个窗口是用于录入数据的,实际表中有科目代码列,但因为不直观,所以fill时根据科目代码提取科目名称来作为显示用(隐藏了科目代码列),
主要是不想再让科目代码列显示出来,不然就可以直接用科目代码来出现弹窗选择