以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74637)

--  作者:bestorange
--  发布时间:2015/9/15 21:35:00
--  代码问题


此主题相关图片如下:图1.png
按此在新窗口浏览图片

此主题相关图片如下:图2.png
按此在新窗口浏览图片

在图1中单击“统计”按钮后,跳转窗口的同时,会勾选所选教师行的逻辑列,
在图2表中单击“工资发放”按钮以后,同时隐藏图1中被勾选的行

 

问题:

1、现在单击“工资发放”按钮后,被勾选行不隐藏

2、如果没有发放工资,只是查看然后关闭了窗口,怎样取消图一中本次操作新增的勾选
3、如果单击”上一步“返回图1窗口,也是取消勾选的操作

 

求大师帮忙修改

 

下面分别是”统计“和”工资发放“、”上一步“按钮的代码:

统计:

Dim g As New GroupTableBuilder("统计表1", DataTables("培训课时统计表"))
g.Groups.AddDef("教师姓名")
g.Groups.AddDef("授课内容")
g.Totals.AddDef("授课内容", AggregateEnum.Count,"签到次数")
g.Filter = "教师姓名 = \'" & e.Form.Controls("ComboBox1").Text & "\'and 已结算 = false"
g.Build(False)

DataTables("教师课时统计表").DataRows.Clear
Dim f As new Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "教师姓名,授课内容,签到次数" \'指定数据来源列
f.DataTable = DataTables("教师课时统计表") \'指定数据接收表
f.DataCols = "教师姓名,授课内容,签到次数" \'指定数据接收列
f.Fill() \'填充数据

MainTable = Tables("教师课时统计表")
DataTables.Unload("统计表1")

For Each r As DataRow In DataTables("培训课时统计表").Select("教师姓名 = \'" & e.Form.Controls("ComboBox1").Text & "\' and 已结算 = false")
    r("已结算") = True
    r.Save
Next

DataTables("培训课时统计表").Save
DataTables("教师课时统计表").Save
forms("培训课时统计表").close
forms("教师工资结算表").show

 

工资发放:

Dim mr As Row =Tables("培训课时统计表").Current
Dim Result As DialogResult
Result = MessageBox.Show(mr("教师姓名") &" 您是否已核对过表格中各项统计及金额无误,确定领取工资?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
   
    For Each r As Row In Tables("教师课时统计表").Rows
        r("工资已发") = True
        r.Locked = True
        r.Save
    Next
    For Each r1 As Row In Tables("培训课时统计表").Rows
        r1.Locked = True
        r1.Remove
    Next
   
   
    Dim nma()As String = {"教师姓名","教师工资","授课内容"}  \'A表数据来源列
    Dim nmb()As String = {"相关人员","账目金额","名目"}  \'B表数据接收列
    Dim dr3 As Row = Tables("教师课时统计表").Current
    Dim dr4 As Row = Tables("经营相关账目").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr4(nmb(i)) = dr3(nma(i))
    Next
   
    MessageBox.Show(mr("教师姓名") &" 您的工资已结算完毕,发放到您的手中!是不是要请客哦!O(∩_∩)O~","提示")
End If
e.Form.Controls("Button1").Enabled = False
e.Form.Controls("Button3").Enabled = False
e.Form.Controls("Button4").Enabled = False

DataTables("培训课时统计表").Save
DataTables("经营相关账目").Save

 

上一步

forms("教师工资结算表").close

For Each r As Row In Tables("培训课时统计表").Rows
    r("已结算") = False
    r.Locked = False
    r.Save
Next

forms("培训课时统计表").show


--  作者:大红袍
--  发布时间:2015/9/15 22:10:00
--  

1、设置一下filter

 

Tables("教师课时统计表").Filter = "工资已发 = false or 工资已发 is null"

 

2、直接rejectChanged http://www.foxtable.com/help/topics/1538.htm

 

3、取消操作,即可

 


--  作者:bestorange
--  发布时间:2015/9/15 22:12:00
--  
以下是引用大红袍在2015/9/15 22:10:00的发言:

1、设置一下filter

 

Tables("教师课时统计表").Filter = "工资已发 = false or 工资已发 is null"

 

2、直接rejectChanged http://www.foxtable.com/help/topics/1538.htm

 

3、取消操作,即可

 

返回上一步这个按钮 我现在用的代码

forms("教师工资结算表").close

For Each r As Row In Tables("培训课时统计表").Rows
    r("已结算") = False
    r.Locked = False
    r.Save
Next

forms("培训课时统计表").show

 

有一个问题,而且很严重, 返回之后,回把所有之前勾选的行全部取消。。。那就惨了 


--  作者:大红袍
--  发布时间:2015/9/15 22:15:00
--  
2、3,都是用 rejectChanged
--  作者:bestorange
--  发布时间:2015/9/15 22:21:00
--  
以下是引用大红袍在2015/9/15 22:10:00的发言:

1、设置一下filter

 

Tables("教师课时统计表").Filter = "工资已发 = false or 工资已发 is null"

 

2、直接rejectChanged http://www.foxtable.com/help/topics/1538.htm

 

3、取消操作,即可

 

Tables("教师课时统计表").Filter = "工资已发 = false or 工资已发 is null"

加在工资发放按钮代码

    For Each r1 As Row In Tables("培训课时统计表").Rows
        r1.Locked = True
        r1.Remove
    Next

之上吗?

 


--  作者:大红袍
--  发布时间:2015/9/15 22:22:00
--  

 自由测试。


--  作者:bestorange
--  发布时间:2015/9/15 22:24:00
--  
以下是引用大红袍在2015/9/15 22:15:00的发言:
2、3,都是用 rejectChanged

forms("教师工资结算表").close
DataTables("培训课时统计表").RejectChanges
forms("培训课时统计表").show

 

就这样吗?


--  作者:大红袍
--  发布时间:2015/9/15 22:26:00
--  

思路:打开窗口的时候,保存数据,关闭的窗口的时候,如果要撤销,就执行 RejectChanges


--  作者:bestorange
--  发布时间:2015/9/15 22:30:00
--  
懂了 多谢大师~~晚安