以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口事件求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73563)

--  作者:cqlwsam
--  发布时间:2015/8/21 15:27:00
--  [求助]窗口事件求助
我做了一个排班窗口,单击小日历单元格按时期筛选浏览排班表,双击进行修改排班或排班。因窗口没设计保存按钮,我想实现:
1. 单击时先进行判断,如果表中数据已修改,询问是否保存;
2. 双击时也需要进行判断,如果表中数据已修改,询问是否保存。
但是,如果单击或双击的小日历中的单元格没有改变,就不需要弹出询问框;我弄一个文本框来接受单击或双击单元格的日期,比较文本框oldvalue和NewValue,但提示没有该属性。不知道怎么改了。



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

代码如下:

Dim MyDate As Date
Dim t As Table = Tables("医生排班表")
Dim dt As DataTable = DataTables("医生排班表")
If  (DateTime.TryParse(e.Row(e.Col.Name) ,MyDate)) Then
    e.Form.Controls("BL_日历_当前选择年月").text = Format(MyDate,"yyyy-MM-dd")
    If dt.HasChanges AndAlso e.Form.Controls("BL_日历_当前选择年月").newvalue<> e.Form.Controls("BL_日历_当前选择年月").oldvalue Then
        Dim Result As DialogResult
        Result = MessageBox.Show("排班表已经修改,是否需要保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            dt.Save
        Else
            dt.RejectChanges
        End If
    End If
    t.Filter="日期=#" & MyDate & "#"
    t.AllowEdit=False
End If

--  作者:大红袍
--  发布时间:2015/8/21 15:37:00
--  

保存上次点击的日期

 

static pdate As Date = Nothing

Dim MyDate As Date
Dim t As Table = Tables("医生排班表")
Dim dt As DataTable = DataTables("医生排班表")
If  (DateTime.TryParse(e.Row(e.Col.Name) ,MyDate)) Then
    e.Form.Controls("BL_日历_当前选择年月").text = Format(MyDate,"yyyy-MM-dd")
    If dt.HasChanges AndAlso MyDate <> pdate  Then
        Dim Result As DialogResult
        Result = MessageBox.Show("排班表已经修改,是否需要保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            dt.Save
        Else
            dt.RejectChanges
        End If
    End If
    pdate = mydate
    t.Filter="日期=#" & MyDate & "#"
    t.AllowEdit=False
End If