Foxtable(狐表)用户栏目专家坐堂 → [求助]关于复制后台数据行


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

主题:[求助]关于复制后台数据行

帅哥哟,离线,有人找我吗?
沪上游客
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:266 积分:2144 威望:0 精华:0 注册:2012/3/28 16:49:00
[求助]关于复制后台数据行  发帖心情 Post By:2018/6/20 15:29:00 [只看该作者]

老师您好!
我设置了工程合同数据基础表的流程设置,每个用户会根据“流程设置”表中的节点(进度)加载数据到“我的工作台”表,但是我的“工程合同数据基础表”是整个项目的主表,设置了分页加载(每页20条记录),现在以下命令在”我的工作台“表中只会加载第一页的20条记录。
请问在以下命令中怎么样复制附合条件的后台数据行?请指教!
以下是主表DataColChanged代码:
For Each sz As DataRow In DataTables("流程设置").Select("姓名 = '" & User.Name & "'")
If e.DataCol.Name = "进度" AndAlso e.DataRow("进度") = sz("进度") Then
    Dim nma() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","录入日期","记录编号"} '工程合同数据基础表数据来源列
    Dim nmb() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","申请日期","记录编号"} '我的工作台表数据接收列
    Dim dr As DataRow = DataTables("我的工作台").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))

“我的工作台”表是内部表,项目每次启动会先清除所有行,然后重新加载。
以下是我的工作台窗口更新按钮代码:
'显示工程合同登记待办
Dim F1 As String = "(进度 <> 'SLHT2B')"
If User.Type = UserTypeEnum.Administrator Then
    DataTables("工程合同基础数据").LoadFilter = F1 
Else If User.Type = UserTypeEnum.Developer Then
    DataTables("工程合同基础数据").LoadFilter = F1
Else If User.Group = "总公司" Then
    DataTables("工程合同基础数据").LoadFilter = F1
Else If User.Group Like "*区域" Then
    DataTables("工程合同基础数据").LoadFilter = "所属部门_区域公司 = '" & User.Group & "' And" & F1
Else If User.Group Like "*分公司" Then
    DataTables("工程合同基础数据").LoadFilter = "所属部门_分公司 = '" & User.Group & "'And" & F1
Else If User.Group = "项目部" Then
    Dim dr As DataRow
    dr = DataTables("操作人员").SQLFind("[姓名] = '" & User.name & "'")
    If dr IsNot Nothing
        DataTables("工程合同基础数据").LoadFilter = "项目部全称 = '" & dr("项目部全称") & "'"
    End If
End If
DataTables("工程合同基础数据").Load()
DataTables("工程合同基础数据").DataCols("进度").RaiseDataColChanged()

Dim t As Table = Tables("我的工作台")
Dim n As Integer = t.DataTable.GetValues("记录编号", t.filter).count
Dim lbl As WinForm.Label
Dim lb2 As WinForm.Label
lb2 = e.Form.Controls("Label2")
lb2.Text = "您的待办事项有" & n & "条"
If n = 0 Then
    e.Form.Controls("Label1").Visible = True
    lbl = e.Form.Controls("Label1")
    lbl.Text = "没有数据"    
Else
    e.Form.Controls("Label1").Visible = False
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 16:16:00 [只看该作者]

重置列代码改成

 

For Each cdr As DataRow In DataTables("工程合同基础数据").sqlselect("")
    For Each sz As DataRow In DataTables("流程设置").Select("姓名 = '" & User.Name & "'")
        If cdr("进度") = sz("进度") Then
            Dim nma() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","录入日期","记录编号"} '工程合同数据基础表数据来源列
            Dim nmb() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","申请日期","记录编号"} '我的工作台表数据接收列
            Dim dr As DataRow = DataTables("我的工作台").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = cdr(nma(i))
            Next
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
沪上游客
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:266 积分:2144 威望:0 精华:0 注册:2012/3/28 16:49:00
  发帖心情 Post By:2018/6/20 21:18:00 [只看该作者]

老师您好!我按照您代码做了,代码如下:

For Each cdr As DataRow In DataTables("工程合同基础数据").sqlselect("进度 <> 'SLHT2B'")
    For Each sz As DataRow In DataTables("流程设置").Select("姓名 = '" & User.Name & "'")
        If cdr("进度") = sz("进度") And sz("所属表名") = "工程合同基础数据" Then
            Dim nma() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","录入日期","记录编号"} '工程合同数据基础表数据来源列
            Dim nmb() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","申请日期","记录编号"} '我的工作台表数据接收列
            Dim dr As DataRow = DataTables("我的工作台").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = cdr(nma(i))
                dr("所属表名") = "工程合同基础数据"
                dr("窗口名") = "待办编缉收入合同"
                If dr("进度") = "SLHT1A" Then
                    dr("事项") = "收入合同登记录入" & "(合同价款:" & cdr("合同价款") & "元)"
                ElseIf dr("进度") = "SLHT1B" Then
                    dr("事项") = "收入合同待审批" & "(合同价款:" & cdr("合同价款") & "元)"
                End If
            Next
        End If
    Next
Next

但是每条记录重复了20条,这是怎么会事?导致复制很慢,复制完后系统速度很慢。请老师指教,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 21:22:00 [只看该作者]

For Each cdr As DataRow In DataTables("工程合同基础数据").sqlselect("进度 <> 'SLHT2B'")
            Dim nma() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","录入日期","记录编号"} '工程合同数据基础表数据来源列
            Dim nmb() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","申请日期","记录编号"} '我的工作台表数据接收列
            Dim dr As DataRow = DataTables("我的工作台").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = cdr(nma(i))
                dr("所属表名") = "工程合同基础数据"
                dr("窗口名") = "待办编缉收入合同"
                If dr("进度") = "SLHT1A" Then
                    dr("事项") = "收入合同登记录入" & "(合同价款:" & cdr("合同价款") & "元)"
                ElseIf dr("进度") = "SLHT1B" Then
                    dr("事项") = "收入合同待审批" & "(合同价款:" & cdr("合同价款") & "元)"
                End If
            Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
沪上游客
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:266 积分:2144 威望:0 精华:0 注册:2012/3/28 16:49:00
  发帖心情 Post By:2018/6/20 21:26:00 [只看该作者]

Dim nma() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","录入日期","记录编号"} '工程合同数据基础表数据来源列
            Dim nmb() As String = {"进度","合同编号","工程名称","所属部门_区域公司","所属部门_分公司","申请日期","记录编号"} '我的工作台表数据接收列
            Dim dr As DataRow = DataTables("我的工作台").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = cdr(nma(i))

老师这个复制行的命令如果设置在窗口的AfterLoad 或者 按钮中,怎么指定来源表列?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 22:12:00 [只看该作者]

不理解你的意思。你现在不是指定了?如果要修改,直接修改代码。

 回到顶部
帅哥哟,离线,有人找我吗?
沪上游客
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:266 积分:2144 威望:0 精华:0 注册:2012/3/28 16:49:00
  发帖心情 Post By:2018/6/20 22:53:00 [只看该作者]

我的意思 是如果在窗口中设置命令,指定来源表列复制到另一个表应该怎么做?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 23:11:00 [只看该作者]

直接用4楼代码,不可以?

 回到顶部