Foxtable(狐表)用户栏目专家坐堂 → 窗口动态生成表的行怎样定义


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

主题:窗口动态生成表的行怎样定义

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


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

如果要重排单号,删除的时候到DataRowDeleting事件把后面的单号全部减1即可。

如果不能重排,直接把旧单号给新的单据使用即可

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


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

已把双击缴费情况表任意行,自动弹出当前单据代码改为动态加载,但点保存按钮,已修改的内容没法保存!
If e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_临时停放_缴费金额") = False Then
    Forms("临时收费录入").Open()
    Forms("临时收费录入").Controls("rq").text = e.Row("日期")
    Forms("临时收费录入").Controls("dh").text = e.Row("单号")
    Forms("临时收费录入").Controls("CheckBox1").Checked = e.Row("已审核")
    Forms("临时收费录入").Controls("shr").text = e.Row("审核人")
    With DataTables("临时收费录入_Table1")
        For i As Integer = .DataRows.count - 1 To 0 Step -1
            .DataRows(i).Delete
        Next
    End With
    Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("临时收费录入").Controls("dh").text & "'")
    Dim cmd As New SQLCommand
    cmd.CommandText = "SELECT [_Identify],分类,亲属临时停车,车牌号码,备注,日期,缴费_临时停放_起计时间,缴费_临时停放_止计时间,缴费_临时停放_缴费时间,缴费_月租_缴费金额 Fr om {缴费情况} where [单号] = '" & Forms("临时收费录入").Controls("dh").text & "'"
    Tables("临时收费录入_Table1").DataSource = cmd.ExecuteReader()
    Tables("临时收费录入_Table1").SetColVisibleWidth("亲属临时停车|50|车牌号码|80|备注|153|缴费_临时停放_起计时间|125|缴费_临时停放_止计时间|125|缴费_临时停放_缴费时间|60|缴费_临时停放_缴费金额|80")
    Tables("临时收费录入_Table1").SetHeaderRowHeight(0,25,40)
    If dts.count < 10 Then
        Dim r As DataRow = DataTables("临时收费录入_Table1").AddNew(10 - (dts.count))
    End If
    Tables("临时收费录入_Table1").Cols("车牌号码").DropForm = "车牌目录树"
    Tables("临时收费录入_Table1").DataTable.dataCols("缴费_临时停放_起计时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
    Tables("临时收费录入_Table1").DataTable.dataCols("缴费_临时停放_止计时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
ElseIf e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_月租_缴费金额") = False Then
    Forms("月租收费").Open()
    Forms("月租收费").Controls("rq").text = e.Row("日期")
    Forms("月租收费").Controls("dh").text = e.Row("单号")
    Forms("月租收费").Controls("CheckBox1").Checked = e.Row("已审核")
    Forms("月租收费").Controls("shr").text = e.Row("审核人")
    With DataTables("月租收费_Table1")
        For i As Integer = .DataRows.count - 1 To 0 Step -1
            .DataRows(i).Delete
        Next
    End With
    Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("月租收费").Controls("dh").text & "'")
    Dim cmd As New SQLCommand
    cmd.CommandText = "SELECT [_Identify],分类,住址_巷,住址_号,住址_房,姓名,手机号码,车牌号码,备注,缴费_月租_起计日期,缴费_月租_止计日期,缴费_月租_缴费月数,缴费_月租_月租单价,缴费_月租_缴费金额 Fr om {缴费情况} where [单号] = '" & Forms("月租收费").Controls("dh").text & "'"
    Tables("月租收费_Table1").DataSource = cmd.ExecuteReader()
    Tables("月租收费_Table1").SetColVisibleWidth("住址_巷|60|住址_号|40|住址_房|40|姓名|50|手机号码|80|车牌号码|100|备注|140|缴费_月租_起计日期|70|缴费_月租_止计日期|70|缴费_月租_缴费月数|40|缴费_月租_月租单价|40|缴费_月租_缴费金额|60")
    Tables("月租收费_Table1").SetHeaderRowHeight(0,25,40)
    If dts.count < 10 Then
        Dim r As DataRow = DataTables("月租收费_Table1").AddNew(10 - (dts.count))
    End If
    Tables("月租收费_Table1").Cols("车牌号码").DropForm = "车牌目录树"
    Tables("月租收费_Table1").Cols("缴费_月租_起计日期").UsetBuildInEditor = True
    Tables("月租收费_Table1").Cols("缴费_月租_止计日期").UsetBuildInEditor = True
End If

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


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

保存代码:
Select Case e.StripItem.Name
    Case "保存" '保存代码
        If e.Form.Controls("rq").text = "" Then'当日期为空取消保存操作
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then '当窗口中的行为空取消保存操作
            Return
        Else
            For Each tr As DataRow In DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                Dim dr As DataRow = DataTables("缴费情况").SQLFind("[单号] = '" & e.Form.Controls("dh").text & "' And [车牌号码] = '" & tr("车牌号码") & "' And ([已审核] = False Or [已审核] Is null)") '将窗口上的数据刷新替换保存到缴费情况表上,
                If dr IsNot Nothing Then
                    dr("日期") = e.Form.Controls("rq").text
                    dr("单号") = e.Form.Controls("dh").text
                    dr("分类") = DataTables("分类").DataRows(0)("分类")
                    dr("备注") = tr("备注")
                    dr("前缀") = "YZ"
                    dr("缴费_月租_起计日期") = tr("缴费_月租_起计日期")
                    dr("缴费_月租_止计日期") = tr("缴费_月租_止计日期")
                    dr("缴费_月租_缴费月数") = tr("缴费_月租_缴费月数")
                    dr("缴费_月租_月租单价") = tr("缴费_月租_月租单价")
                    dr("缴费_月租_缴费金额") = tr("缴费_月租_缴费金额")
                    dr.save
                ElseIf dr Is Nothing Then
                    dr = DataTables("缴费情况").addnew
                    dr("日期") = e.Form.Controls("rq").text
                    dr("单号") = e.Form.Controls("dh").text
                    dr("分类") = DataTables("分类").DataRows(0)("分类")
                    dr("车牌号码") = tr("车牌号码")
                    dr("备注") = tr("备注")
                    dr("前缀") = "YZ"
                    dr("缴费_月租_起计日期") = tr("缴费_月租_起计日期")
                    dr("缴费_月租_止计日期") = tr("缴费_月租_止计日期")
                    dr("缴费_月租_缴费月数") = tr("缴费_月租_缴费月数")
                    dr("缴费_月租_月租单价") = tr("缴费_月租_月租单价")
                    dr("缴费_月租_缴费金额") = tr("缴费_月租_缴费金额")
                    dr("录入员") = e.Form.Controls("lry").text
                    dr("操作人姓名") = User.Name & " " & Date.Now
                    dr.save
                End If
            Next
            DataTables("缴费情况").Load
        End If
End Select

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


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

Select Case e.StripItem.Name
    Case "保存" '保存代码
        If e.Form.Controls("rq").text = "" Then'当日期为空取消保存操作
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then '当窗口中的行为空取消保存操作
            Return
        Else
msgbox(1)
            For Each tr As DataRow In DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                Dim dr As DataRow = DataTables("缴费情况").SQLFind("[单号] = '" & e.Form.Controls("dh").text & "' And [车牌号码] = '" & tr("车牌号码") & "' And ([已审核] = False Or [已审核] Is null)") '将窗口上的数据刷新替换保存到缴费情况表上,
msgbox(dr IsNot Nothing)
                If dr IsNot Nothing Then
msgbox(e.Form.Controls("rq").text)
                    dr("日期") = e.Form.Controls("rq").text
                    dr("单号") = e.Form.Controls("dh").text
……
……
                    dr("操作人姓名") = User.Name & " " & Date.Now
                    dr.save
                End If
            Next
            DataTables("缴费情况").loadfilter = ""
            DataTables("缴费情况").loadtop = nothing
            DataTables("缴费情况").Load
        End If
End Select

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


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

这种方法只能保存车牌号码没变的行,如果车牌号码被修改了呢?也就是用最后的单据替换原单号内容,这种方法就无法实现了。再者这是一个共用窗口,保存下面的代码是保存录入的数据,在此窗口上的车牌号码列并无设置如缴费情况表存此单号取消修改,一旦车牌号码被修改了,就无法保存数据。因此这方法还是绕回根本的问题,无法替换与原单内容不乎的数据!

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


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

绕那么多还是绕回原点!无论用加载还是引用原单数据替换单据内容,无法保存!我的观点还是那个,不能以条件匹配为保存依据,它们除了单号相同,内容完全不一致,只能从位置上执行替换。
[此贴子已经被作者于2021/3/25 14:45:43编辑过]

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


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

缴费情况表作为后台数据,不能直接修改,只能对窗口上的单据进行修改,这单据不能替换不行吧。

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.zip


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


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

按你的方法做只能保存表上的数据,加上窗口控件上的代码就报错了。
Select Case e.StripItem.Name
    Case "保存" '保存代码
        If e.Form.Controls("rq").text = "" Then'当日期为空取消保存操作
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then '当窗口中的行为空取消保存操作
            Return
        Else
            Dim dr As DataRow = DataTables("缴费情况").SQLFind("[单号] = '" & e.Form.Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)") '将窗口上的数据刷新替换保存到缴费情况表上,
            dr("日期") = e.Form.Controls("rq").text
            dr("单号") = e.Form.Controls("dh").text
            dr("录入员") = e.Form.Controls("lry").text
            dr("分类") = DataTables("分类").DataRows(0)("分类")
            DataTables("月租收费_Table1").Save
            DataTables("缴费情况").Load
        End If
End Select

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

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




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


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

不能保存

 回到顶部
总数 47 上一页 1 2 3 4 5 下一页