Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
1.例如:我只修改了最后进店日期 点 保存修改 就会跳出没有更改公里数 yes no对话框 如果选择 no 返回修改了当前里程 再点保存修改时 又跳出没有更改进店日期的yes no 对话框
我想 如果出现提示 当前里程未更改 点no 返回 修改里程后 再点保存修改 就会保存这一记录 并往历史进店记录添加一行
最后进店日期同上
2.还有个问题 就是窗口beforeclose事件里有
If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged Then '如果当前行已经修改过
e.Cancel = True
End If
但是 这代码貌似没用 如果我随便点开一个数据 修改了公里数后 没点保存 还是可以关闭窗口
3.这个更bug 由于窗口是独立窗口 可以选中后面的数据表(主要是想利用 数据表里自带的查询功能,用模式窗口无法使用查询功能)。如果我在窗口中 更改了数据 但是未保存 此时 我在后面的表里换行了 结果发现更改的数据已保存了。。 这个能否解决?
如果不能解决 看来只有自己设计一个查询窗口镶嵌到 数据录入窗口里了!
下载信息 [文件大小: 下载次数: ] | |
![]() |
还有1个想法 就不开新帖问了
我发现保存修改这个按钮 点击的时候 没感觉! 能否设置下 如果点击保存 且保存成功了 则这个按钮变灰
如果选择了新记录 或者 又更改了数值 则又变回来!
发现用flat 设置 但是flat好丑感觉 设计不到原来按钮的效果啊!
popup保存动作好一点 但是 也不怎么美观
在保存按钮的最后加上一条:e.Form.Controls("Button2").Enabled = False,
反之:e.Form.Controls("Button2").Enabled = True
1、问题一个一个提,不要总是一大堆,这是你在设计系统,不是人家设计。
2、没有怎么看懂你的逻辑,瞎蒙一下:
Dim r As Row = Tables("客户档案").Current
Dim lc As Single = e.Form.Controls("lc").Text
Dim rq As Date = e.Form.Controls("rq").Text
Dim xz As DialogResult
Dim yz As DialogResult
If r.Isnull("最后进店日期") OrElse r.Isnull("当前里程") OrElse r.Isnull("底盘号") Then
messagebox.show("请输入最后进店日期,当前里程,底盘号","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
End If
If lc = r("当前里程") AndAlso rq <> r("最后进店日期") Then
xz = MessageBox.Show("当前里程 未更改!确定不填写吗?", "提示", MessageBoxButtons.yesno, MessageBoxIcon.Question)
If xz = DialogResult.yes Then
r.Save()
e.Form.Controls("rq").Text = r("最后进店日期")
End If
Return
End If
If lc <> r("当前里程") AndAlso rq = r("最后进店日期") Then
yz = MessageBox.Show("最后进店日期 未更改!确定不填写吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If yz = DialogResult.yes Then
r.Save()
e.Form.Controls("lc").Text = r("当前里程")
End If
Return
End If
If lc <> r("当前里程") AndAlso rq <> r("最后进店日期") Then
Dim dr As DataRow = DataTables("历史进店记录").Find("底盘号 = '" & r("底盘号") & "' And 当前里程 = " & r("当前里程") & " And 进店时间 = #" & r("最后进店日期") & "#")
If dr Is Nothing Then
dr = DataTables("历史进店记录").AddNew()
dr("底盘号") = r("底盘号")
dr("当前里程") = r("当前里程")
dr("进店时间") = r("最后进店日期")
dr.Save()
End If
End If
r.Save()
e.Form.Controls("rq").Text = r("最后进店日期")
e.Form.Controls("lc").Text = r("当前里程")
下载信息 [文件大小: 下载次数: ] | |
![]() |
代码基本就这样 关键是由于考虑到很多种情况 逻辑太复杂了! 牵涉到很多问题 又怕单单提一个问题
解决后 又出现新问题!!
双击出现窗口点保存后
换行 不修改任何数据 再保存 则会在历史记录里添加数据了。。。
在表的CurrentChanged事件加上代码:
With Forms("客户档案信息")
If .Opened
Dim lc As WinForm.Label = .Controls("lc")
Dim rq As WinForm.Label = .Controls("rq")
rq.text = Tables("客户档案").Current("最后进店日期")
lc.text = Tables("客户档案").Current("当前里程")
End If
End With
下载信息 [文件大小: 下载次数: ] | |
![]() |
我1楼有个问题:
由于窗口是独立窗口 可以选中后面的数据表(主要是想利用 数据表里自带的查询功能,用模式窗口无法使用查询功能)。如果我在窗口中 更改了数据 但是未保存 此时 我在后面的表里换行了 结果发现更改的数据已保存了。。 这个能否解决?
我在你这代码后面加了一段代码
Tables("客户档案").Current.Reject()
用以处理上面的问题,但是出现了 如果我双击窗口 更改了公里数或者日期 然后换行 再换回来 的确记录不会更改了
但是我点保存的时候 会出跳出 这段代码的提示框
yz = MessageBox.Show("最后进店日期 未更改!确定不填写吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
由于数据根本没更改 只是换了行,所以很纳闷~
貌似和最后这段代码有关
e.Form.Controls("rq").Text = r("最后进店日期")
e.Form.Controls("lc").Text = r("当前里程")
只能用模式窗口,窗口加上上一行、下一行、第一行、最末行的按钮。
要筛选的时候关闭窗口。