Foxtable(狐表)用户栏目专家坐堂 → SQLTable动态表的绑定与设置显示行


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

主题:SQLTable动态表的绑定与设置显示行

美女呀,离线,留言给我吧!
采菊东篱下
  111楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/21 23:57:00 [只看该作者]


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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  112楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/22 0:09:00 [只看该作者]

全局的ValidateEdit事件我已经写入了:
For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit = True
Next

窗口中的ValidateEdit事件写入:
With Tables("月租收费_Table1")
    .DataTable.GlobalHandler.AfterEdit = True
End With

依然不行!

 回到顶部
帅哥,在线噢!
有点蓝
  113楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539596 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 8:25:00 [只看该作者]

以下是引用采菊东篱下在2021/3/21 23:57:00的发言:

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

提示很明显了,单号是一个普通字符串,不是合法的日期值,无法直接转换为日期:Dim d As Date = yzdh.Value

如果要提取里面的日期,需要截取第4~9个字符

 回到顶部
帅哥,在线噢!
有点蓝
  114楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539596 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 8:26:00 [只看该作者]

以下是引用采菊东篱下在2021/3/22 0:09:00的发言:
全局的ValidateEdit事件我已经写入了:
For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit = True
Next

窗口中的ValidateEdit事件写入:
With Tables("月租收费_Table1")
    .DataTable.GlobalHandler.AfterEdit = True
End With

依然不行!

把全部的ValidateEdit事件代码去掉,把处理自动换行的代码放到全局表AfterEdit 事件

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  115楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/22 10:17:00 [只看该作者]

Dim yzdh As WinForm.TextBox = e.Form.Controls("dh")'dh是单号控件
Dim di As String = yzdh.Value 'di单号控件中的变量
Dim yzrq As WinForm.DateTimePicker = e.Form.Controls("rq") 'rq是日期控件
Dim d As Date = yzrq.Value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Dim c As Integer = DataTables("缴费情况").SQLCompute("Count([车牌号码])","[单号] = '" & Forms("月租收费").Controls("dh").Value & "'")
If c > 0 Then
    If d < fd Or d > ld Then
        e.Cancel = True '如果是,取消操作
        MessageBox.Show("修改的日期不能超出已保存单号所属月份","提示")
    ElseIf e.DataCol.Name = "车牌号码" AndAlso e.DataRow.IsNull("车牌号码") = False Then
        e.Cancel = True
    End If
End If
这段代码写在月租收费窗口的DataColChanging事件,修改车牌号码时,其依然被修了,在而且修改月租收费窗口的日期并无弹窗提示。

 回到顶部
帅哥,在线噢!
有点蓝
  116楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539596 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 10:21:00 [只看该作者]

到全局表事件DataColChanging事件处理

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  117楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/22 10:23:00 [只看该作者]

把代码写到全局表事件的AfterEdit上:
For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit = True
Next

把代码写到记账凭证窗口的AfterEdit事件上:
With Tables("记账凭证_Table1")
    .DataTable.GlobalHandler.AfterEdit = True
End With
窗口上依然没有自动行高!

 回到顶部
帅哥,在线噢!
有点蓝
  118楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539596 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 10:24:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  119楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/3/22 10:37:00 [只看该作者]

Dim yzdh As WinForm.TextBox = e.Form.Controls("dh")'dh是单号控件
Dim di As String = yzdh.Value 'di单号控件中的变量
Dim yzrq As WinForm.DateTimePicker = e.Form.Controls("rq") 'rq是日期控件
Dim d As Date = yzrq.Value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Dim c As Integer = DataTables("缴费情况").SQLCompute("Count([车牌号码])","[单号] = '" & Forms("月租收费").Controls("dh").Value & "'")
If c > 0 Then
    If d < fd Or d > ld Then
        e.Cancel = True '如果是,取消操作
        MessageBox.Show("修改的日期不能超出已保存单号所属月份","提示")
    ElseIf e.DataCol.Name = "车牌号码" AndAlso e.DataRow.IsNull("车牌号码") = False Then
        e.Cancel = True
    End If
End If
这段代码到全局表DataColChanging事件的中一样修改车牌号码时,其依然被修了,在而且修改月租收费窗口的日期并无弹窗提示。

 回到顶部
帅哥,在线噢!
有点蓝
  120楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539596 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 10:43:00 [只看该作者]

开启全局表DataColChanging事件了吗

 回到顶部