以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码优化 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125275) |
||||
-- 作者:q2520 -- 发布时间:2018/9/25 11:36:00 -- [求助]代码优化 Select Case e.DataCol.Name Case "单位","岗位" If e.DataRow.IsNull("日期") = False AndAlso e.DataRow("单位") = "安全科" AndAlso e.DataRow("岗位") = "安检科科长" Then If e.DataRow.GetChildRows("责任制明细").Count = 0 Then Dim dr As DataRow = DataTables("责任制明细").AddNew() dr("日期")=e.DataRow("日期") dr("单位")=e.DataRow("单位") dr("岗位")="安检科科长" dr("姓名")="" dr("考核内容")="认真贯彻党和国家安全生产方针、政策、法律、法规,在安全矿长的领导下,负责矿井安全监督检查工作,是本科室安全第一责任者." dr("总分")="10" End If End If End Select 1.老师我有一个表 有很多条上面这个代码 在代码编辑框里 下拉都不正常 拉不到底 太多了 几千行了 2.还有一个问题是 每个月都会生成一次表 速度越来越慢 是不是和下面这个代码有关系 老师给帮忙优化一下 责任制明细_DataColChanging
Dim t As Table = Tables("责任制明细") t.Sort = "日期,岗位,考核内容,单位" If t.Rows.Count > 1 Then Dim r As Row = t.Rows(t.Rows.Count - 1) For i As Integer = t.Rows.Count - 2 To 0 Step -1 Dim r1 As Row = t.Rows(i) If r("姓名") = r1("姓名") And r("岗位") = r1("岗位") And r("考核内容") = r1("考核内容") And r("日期") = r1("日期") And r("单位") = r1("单位") Then r1.Delete Else r = r1 End If Next End If |
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 12:04:00 -- 1、试试 http://www.foxtable.com/webhelp/scr/1273.htm
2、代码不要写到 DataColChanging 事件,单独做一个按钮单独执行试试 |
||||
-- 作者:q2520 -- 发布时间:2018/9/25 15:57:00 -- 1.我加 \'\'\' 这个了 但是不是那个意思 是类似那个代码很多条 编辑框里下拉条 已经不能拉到底了 我现在都得复制出来 改完在复制进去 还有我那个方法是不是太笨了 还有什么好的办法吗 2.按钮代码不会弄啊 你给帮忙写个吧 意思你应该都明白吧
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 16:07:00 -- 1、你事件里面为什么要写那么多代码?写的是同样的重复的代码?具体做个实例发上来测试。
2、直接把代码拷贝出去即可。 |
||||
-- 作者:q2520 -- 发布时间:2018/9/25 16:38:00 --
老师给帮忙看看 主要功能就那样 每个月200多的人员 每人都要生成一张考核表 我是直接在外面写好岗位姓名 直接复制进去 但是要等很久 才弄了2个月的都很慢了 以后肯定会更慢
[此贴子已经被作者于2018/9/25 16:38:29编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 16:48:00 -- 1、做一个考核制度表,需要添加数据的时候,从这个表,把数据添加过来
http://www.foxtable.com/webhelp/scr/0680.htm
http://www.foxtable.com/webhelp/scr/1533.htm
2、删除这段代码
Dim t As Table = Tables("责任制明细") |
||||
-- 作者:q2520 -- 发布时间:2018/9/25 16:56:00 -- 是不是就是相当于 复制一个 我现在的考核明细表 然后下个月的时候 改下日期 再增加到 考核明细表里? 如果是这个意思 那我那些代码就不用写了是吧 如果按那个教程做 是不是得做一个按钮
[此贴子已经被作者于2018/9/25 16:57:38编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 17:58:00 -- 以下是引用q2520在2018/9/25 16:56:00的发言:
是不是就是相当于 复制一个 我现在的考核明细表 然后下个月的时候 改下日期 再增加到 考核明细表里? 如果是这个意思 那我那些代码就不用写了是吧 如果按那个教程做 是不是得做一个按钮
[此贴子已经被作者于2018/9/25 16:57:38编辑过]
1、是的。你不需要写那些代码了,直接拷贝6楼,就可以拷贝内容过去了。
2、不需要改日期吧,你只需要修改代码,把日期改成某一个值即可。
3、不需要做成按钮,依然在你datacolchanged事件写代码即可。不同的人员不同的类型,拷贝不同的数据过去。 |