以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]控件与控件之间的关联问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186226) |
-- 作者:dhyskyworld -- 发布时间:2023/4/14 12:42:00 -- [求助]控件与控件之间的关联问题 控件与控件之间可以互相控制吗? 比如控件A为ComboBox组合框在未选取列表数据时,控件B的可见属性为Flase,控件C没有绑定列表A任何列。 控件A在选取列表数据时a后,控件B的可见属性变为true,同时控件C绑定表A的第一列。 可以实现吗?如果可以实现,代码要怎么写?
[此贴子已经被作者于2023/4/14 13:04:22编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/4/14 13:33:00 -- 控件A,valuechanged事件 |
-- 作者:dhyskyworld -- 发布时间:2023/4/14 14:06:00 -- 不好意思,蓝老师,我没看懂你写的这一句控件B.visible = 控件A.text > "",自我感觉好像是比较数据的大小,不知道我判断的对不对,因为我上面说的控件A选取的列表数据是字符型的。 还有就是“同时控件C绑定表A的第一列”,也是在控件A的aluechanged事件中编写代码,是吗?代码要怎么写呢?新手学习中,还请老师多包涵。 |
-- 作者:有点蓝 -- 发布时间:2023/4/14 14:09:00 -- e.form.controls("控件B").visible = (e.sender.text > "") 看不懂可以改为这样 dim b as boolean = (e.sender.text > "") e.form.controls("控件B").visible =b 或者这样 if e.sender.text > "" then e.form.controls("控件B").visible =true else e.form.controls("控件B").visible =false end if 都是一样的东西,自己理解一下
|
-- 作者:dhyskyworld -- 发布时间:2023/4/14 14:15:00 -- 谢谢蓝老师 |
-- 作者:dhyskyworld -- 发布时间:2023/4/16 11:47:00 -- 老师,你好,还是接之前的问题 控件A为ComboBox组合框在未选取列表数据时,控件B的可见属性为Flase,控件C(日期时间型)没有绑定列表A任何列。 控件A在选取列表数据a后,控件B的可见属性变为true,同时控件C绑定表A的第一列(日期时间型)。 现在控件A和控件B之间的能实现,但是控件A和控件C之间的还是没弄成功,我想实现的是ComboBox组合框在选取不同数据时,DataTimePicker13和DataTimePicker16两个日期控件可以实现给表LOA不同的日期列录入数据。 请帮忙看一下代码,保存的时候一直显示编译错误:Property \'Item\'is \'Readonly\'. 错误代码: e.Form.controls("DataTimePicker13") = e.DataTable(LOA).DataRow("年休假_开始日期") 检查了我的控件没有设为只读状态,表LOA只在表属性PrepareEdit里有一段代码不能编辑表格的代码e.cancel = true 麻烦大神帮看看 Dim b As String = e.sender.text > "" If b = "年休假" Then e.Form.controls("DataTimePicker13")=e.DataTable(LOA).DataRow("年休假_开始日期") e.Form.controls("DataTimePicker16")=e.DataTable(LOA).DataRow("年休假_结束日期") End If If b = "探亲假" Then e.Form.controls("DataTimePicker13")=e.DataTable(LOA).DataRow("探亲假_开始日期") e.Form.controls("DataTimePicker16")=e.DataTable(LOA).DataRow("探亲假_结束日期") End If If b = "婚假" Then e.Form.controls("DataTimePicker13")=e.DataTable(LOA).DataRow("婚假_开始日期") e.Form.controls("DataTimePicker16")=e.DataTable(LOA).DataRow("婚假_结束日期") End If If b = "产假" Then e.Form.controls("DataTimePicker13")=e.DataTable(LOA).DataRow("产假_开始日期") e.Form.controls("DataTimePicker16")=e.DataTable(LOA).DataRow("产假_结束日期") End If If b = "陪产假" Then e.Form.controls("DataTimePicker13")=e.DataTable(LOA).DataRow("陪产假_开始日期") e.Form.controls("DataTimePicker16")=e.DataTable(LOA).DataRow("陪产假_结束日期") End If If e.sender.text > "产假" Then e.Form.controls("CheckedComboBox1").visible = False Else e.Form.controls("CheckedComboBox1").visible = True End If e.Form.Controls("Label48").visible = e.Form.Controls("ComboBox17").Text = "年休假" e.Form.Controls("Label49").visible = e.Form.Controls("ComboBox17").Text = "探亲假" e.Form.Controls("Label50").visible = e.Form.Controls("ComboBox17").Text = "婚假" e.Form.Controls("Label51").visible = e.Form.Controls("ComboBox17").Text = "产假" e.Form.Controls("Label52").visible = e.Form.Controls("ComboBox17").Text = "陪产假" |
-- 作者:有点蓝 -- 发布时间:2023/4/16 20:17:00 -- 建议还是多看几遍编程基础:http://www.foxtable.com/webhelp/topics/1592.htm,很多代码都不符合语法,基本都是乱用 Dim b As String = e.sender.text e.Form.controls("DataTimePicker13")=Table("LOA").current(b & "_开始日期") e.Form.controls("DataTimePicker16")=Table("LOA").current(b & "_结束日期") e.Form.Controls("Label48").visible = (b = "年休假") e.Form.Controls("Label49").visible = (b = "探亲假") e.Form.Controls("Label50").visible = (b = "婚假") e.Form.Controls("Label51").visible = (b = "产假") e.Form.Controls("Label52").visible =( b = "陪产假") |
-- 作者:dhyskyworld -- 发布时间:2023/4/17 10:29:00 -- 不能使用,还是出现之前的问题,但是删除下面这两段 e.Form.controls("DataTimePicker13")=Table("LOA").current(b & "_开始日期") e.Form.controls("DataTimePicker16")=Table("LOA").current(b & "_结束日期") 可以正常运行。 [此贴子已经被作者于2023/4/17 10:56:24编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/4/17 11:36:00 -- e.Form.controls("DataTimePicker13").value = Table("LOA").current(b & "_开始日期") |
-- 作者:dhyskyworld -- 发布时间:2023/4/17 13:17:00 -- 不能保存,Table类型出错 [此贴子已经被作者于2023/4/17 14:36:41编辑过]
|