Foxtable(狐表)用户栏目专家坐堂 → 求助,如何优化下面的代码


  共有11677人关注过本帖树形打印复制链接

主题:求助,如何优化下面的代码

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 15:25:00 [显示全部帖子]

If r("涂") = True Then
    Dim b As Row = Tables("表B").AddNew()
    Dim nms() As String = {"组","下单日","客户",单号","代号","品名"}
    For Each nm As String nms
        b(nm) = r(nm)
    Next
    r.delete()
End If

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 15:40:00 [显示全部帖子]

If r("涂") = True Then
    Dim b As Row = Tables("表B").AddNew()
    For Each c As Col In Tables("表A").Cols
        b(c.name) = r(c.name)
    Next
    r.delete()
End If

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/9 16:55:00 [显示全部帖子]

出了什么问题?

你最好上传表,这样别人才能调试好代码再发给你,否则都只能大概。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/10 9:29:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目33.rar

 

你的代码非常离谱,建议你先细看帮助,特别市开发指南中《编程基础》和《foxtable编程》这两章。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/10 10:22:00 [显示全部帖子]

再加一行:

 

 

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "涂"
        If dr1("涂") = True Then
            Dim dr2 As DataRow = DataTables("完成记录").AddNew()
            For Each dc As DataCol In DataTables("完成记录").DataCols
                If e.DataTable.DataCols.Contains(dc.name) Then
                    dr2(dc.name) = dr1(dc.name)
                End If
            Next
            dr1.Delete
        End If
    Case "涂日"
        If dr1.IsNull("涂日") = False  Then
            Dim d As Date = dr1("涂日")
            dr1("月份") =cstr("Y"& d.month )
            dr1("日期") =cstr( d.day & "日")
        Else
            dr1("月份") = Nothing
            dr1("日期") = Nothing
        End If
End Select


 回到顶部
帅哥,在线噢!
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/10 10:39:00 [显示全部帖子]

那就继续用7楼的文件,然后自己做一个保存按钮,删除符合条件的行再保存:

 

DataTables("排单").DeleteFor("涂 = True")
DataTables.Save()

 

同时我们会考虑改进BeForeSaveDatarow事件,允许在这个事件中删除行,这样你的问题就可以更加简单地解决。

 

 


 回到顶部