Foxtable(狐表)用户栏目专家坐堂 → [求助]控件与控件之间的关联问题


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

主题:[求助]控件与控件之间的关联问题

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
[求助]控件与控件之间的关联问题  发帖心情 Post By:2023/4/14 12:42:00 [显示全部帖子]

控件与控件之间可以互相控制吗?
比如控件A为ComboBox组合框在未选取列表数据时,控件B的可见属性为Flase,控件C没有绑定列表A任何列。
控件A在选取列表数据时a后,控件B的可见属性变为true,同时控件C绑定表A的第一列。
可以实现吗?如果可以实现,代码要怎么写?
[此贴子已经被作者于2023/4/14 13:04:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/14 14:06:00 [显示全部帖子]

不好意思,蓝老师,我没看懂你写的这一句控件B.visible = 控件A.text > "",自我感觉好像是比较数据的大小,不知道我判断的对不对,因为我上面说的控件A选取的列表数据是字符型的。
还有就是“同时控件C绑定表A的第一列”,也是在控件A的aluechanged事件中编写代码,是吗?代码要怎么写呢?新手学习中,还请老师多包涵。


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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/14 14:15:00 [显示全部帖子]

谢谢蓝老师

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By: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 = "陪产假"

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/17 13:17:00 [显示全部帖子]

不能保存,Table类型出错
[此贴子已经被作者于2023/4/17 14:36:41编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/17 14:35:00 [显示全部帖子]

Table加s后保存正常,但是运行时出现错误提示
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看
这是代码在命令窗口执行时提示的错误信息
图片点击可在新窗口打开查看
[此贴子已经被作者于2023/4/17 14:35:34编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/17 14:59:00 [显示全部帖子]

问题已解决,但是不知道是什么原因。删除项目所在的文件夹里的bin目录后问题依旧,检查了名字也是没错的,也没有多加空格什么的,后来把控件名称复制粘贴后,问题突然就解决了,但是运行的时候,日期控件输入日期,表中数据无变化。如果要实现日期控件DateTimePicker13和DateTimePicker16输入日期,表中数据跟着变化,要如何实现呢?
[此贴子已经被作者于2023/4/17 16:22:04编辑过]

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/18 15:11:00 [显示全部帖子]

在控件DateTimePicker13的ValueChanged事件编写代码已解决日期输入,表中数据也跟着变化的问题,就是在运行过程中,如果表中数据为空,控件在选择日期时不是定位到当前年月日,不影响使用运行,代码如下:
e.Sender.WriteValue()
Dim b As String = e.Form.controls("ComboBox17").text
Dim c As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker13")
If c.Value Is Nothing Then
    Tables("LOA").current(b & "_天数") = Nothing
Else
    Tables("LOA").current(b & "_开始日期") = c.Value
End If

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


加好友 发短信
等级:幼狐 帖子:85 积分:722 威望:0 精华:0 注册:2018/5/2 16:58:00
  发帖心情 Post By:2023/4/18 16:51:00 [显示全部帖子]

验证了一下,运行的效果是一样的,因为是动态绑定的列,开始日期那里有数据时,是读取的当前数据的值,没有数据时,比如说新增一行时,日期那里是没有数据的,控件自动读取的就是空值
[此贴子已经被作者于2023/4/18 16:55:34编辑过]

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