以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  研究了一早上!修改保存按钮还有些小问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12008)

--  作者:gaoyong30000
--  发布时间:2011/8/19 11:31:00
--  研究了一早上!修改保存按钮还有些小问题!

1.例如:我只修改了最后进店日期   点 保存修改 就会跳出没有更改公里数 yes no对话框  如果选择 no 返回修改了当前里程 再点保存修改时   又跳出没有更改进店日期的yes no 对话框 

 

   我想 如果出现提示 当前里程未更改 点no  返回 修改里程后  再点保存修改  就会保存这一记录 并往历史进店记录添加一行

                         最后进店日期同上

 

2.还有个问题  就是窗口beforeclose事件里有

If Tables("客户档案").Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行已经修改过
    e.Cancel = True
End If

 

但是 这代码貌似没用  如果我随便点开一个数据 修改了公里数后  没点保存  还是可以关闭窗口

 

3.这个更bug  由于窗口是独立窗口 可以选中后面的数据表(主要是想利用 数据表里自带的查询功能,用模式窗口无法使用查询功能)。如果我在窗口中 更改了数据 但是未保存  此时 我在后面的表里换行了  结果发现更改的数据已保存了。。  这个能否解决?

如果不能解决 看来只有自己设计一个查询窗口镶嵌到 数据录入窗口里了!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:内控系统10.rar

[此贴子已经被作者于2011-8-19 11:31:41编辑过]

--  作者:gaoyong30000
--  发布时间:2011/8/19 11:46:00
--  

还有1个想法 就不开新帖问了

 

 

我发现保存修改这个按钮 点击的时候 没感觉! 能否设置下  如果点击保存 且保存成功了  则这个按钮变灰

                                                                               如果选择了新记录  或者 又更改了数值  则又变回来!

 

 

 

发现用flat 设置 但是flat好丑感觉 设计不到原来按钮的效果啊!

 

            popup保存动作好一点  但是 也不怎么美观

[此贴子已经被作者于2011-8-19 11:53:20编辑过]

--  作者:yangming
--  发布时间:2011/8/19 11:51:00
--  

在保存按钮的最后加上一条:e.Form.Controls("Button2").Enabled = False,

反之:e.Form.Controls("Button2").Enabled = True


--  作者:狐狸爸爸
--  发布时间:2011/8/19 11:57:00
--  

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("当前里程")

[此贴子已经被作者于2011-8-19 12:07:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/19 12:13:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:扬州华泰内控系统.rar


--  作者:gaoyong30000
--  发布时间:2011/8/19 12:26:00
--  

代码基本就这样 关键是由于考虑到很多种情况  逻辑太复杂了! 牵涉到很多问题  又怕单单提一个问题 

 

解决后 又出现新问题!!


--  作者:gaoyong30000
--  发布时间:2011/8/19 12:40:00
--  

双击出现窗口点保存后

 

换行 不修改任何数据 再保存  则会在历史记录里添加数据了。。。

[此贴子已经被作者于2011-8-19 12:40:20编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/19 14:18:00
--  

在表的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

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:扬州华泰内控系统.rar


--  作者:gaoyong30000
--  发布时间:2011/8/19 15:01:00
--  

我1楼有个问题:

由于窗口是独立窗口 可以选中后面的数据表(主要是想利用 数据表里自带的查询功能,用模式窗口无法使用查询功能)。如果我在窗口中 更改了数据 但是未保存  此时 我在后面的表里换行了  结果发现更改的数据已保存了。。  这个能否解决?

 

我在你这代码后面加了一段代码

 

Tables("客户档案").Current.Reject()

 

用以处理上面的问题,但是出现了 如果我双击窗口 更改了公里数或者日期  然后换行 再换回来  的确记录不会更改了 

 

但是我点保存的时候 会出跳出 这段代码的提示框

 yz = MessageBox.Show("最后进店日期 未更改!确定不填写吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
由于数据根本没更改 只是换了行,所以很纳闷~

 

貌似和最后这段代码有关

e.Form.Controls("rq").Text = r("最后进店日期")
e.Form.Controls("lc").Text = r("当前里程")

[此贴子已经被作者于2011-8-19 15:05:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/19 15:13:00
--  

只能用模式窗口,窗口加上上一行、下一行、第一行、最末行的按钮。

 

 

要筛选的时候关闭窗口。