Foxtable(狐表)用户栏目专家坐堂 → 多值转换问题


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

主题:多值转换问题

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
多值转换问题  发帖心情 Post By:2016/4/29 9:45:00 [只看该作者]

请教老师,下列代码会遇到多值字段的审核,应该怎样调整,比如:

校对  老马,老张    审核  老刘,老王   批准  老吴

校对  老马
校对  老张
审核  老刘
审核  老王
批准  老吴


Dim cs() As String = {"设计","校对","审核","批准"}
Dim r As Row = Tables("工作策划操作_Table3").Current 'SQL工作策划副表
For Each c As String In cs
    If r.IsNull(c) = False Then
        Dim i As Integer '以下代码功能,当产生第一次转换后,再转换时重复值删除
        Dim nr As Row 
        Dim idx As Integer = Tables("工作策划副表审核").FindRow("审批流程='" & c & "'")
Dim st() As String = cs(c).Split(",")
        If idx >= 0 Then
            nr = Tables("工作策划副表审核").rows(idx)
        Else
            nr = Tables("工作策划副表审核").addnew
        End If
        nr("审批流程") = c
        nr("审批人员") = r(c)
    End If
Next
[此贴子已经被作者于2016/4/29 9:45:48编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/29 9:49:00 [只看该作者]

 

[此贴子已经被作者于2016/4/29 9:49:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/29 9:51:00 [只看该作者]

Dim cs() As String = {"设计","校对","审核","批准"}
Dim r As Row = Tables("工作策划操作_Table3").Current 'SQL工作策划副表
For Each c As String In cs
    If r.IsNull(c) = False Then
        Dim i As Integer '以下代码功能,当产生第一次转换后,再转换时重复值删除
        Dim nr As Row
        Dim idx As Integer = Tables("工作策划副表审核").FindRow("审批流程='" & c & "'")
       
        If idx >= 0 Then
            nr = Tables("工作策划副表审核").rows(idx)
        Else
            nr = Tables("工作策划副表审核").addnew
        End If
        Dim st() As String = r(c).Split(",")
        For Each s As String In st
            nr("审批流程") = c
            nr("审批人员") = s
        Next
    End If
Next

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/4/29 10:31:00 [只看该作者]

老师,还没有转过了,转换时候,只转换多值字段的其中一个,做了例子,请帮忙再看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试eee.table



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/29 10:35:00 [只看该作者]

Dim cs() As String = {"设计","校对","审核","批准"}
Dim r As Row = Tables("工作策划操作_Table3").Current 'SQL工作策划副表
For Each c As String In cs
    If r.IsNull(c) = False Then
        Dim i As Integer '以下代码功能,当产生第一次转换后,再转换时重复值删除
        DataTables("工作策划副表审核").deletefor("审批流程='" & c & "'")
       
        Dim st() As String = r(c).Split(",")
        For Each s As String In st
            Dim nr = Tables("工作策划副表审核").addnew
            nr("审批流程") = c
            nr("审批人员") = s
        Next
    End If
Next


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/4/29 10:38:00 [只看该作者]

谢谢老师,是要把.....ADDNEW换到下面才行,我刚才也试了,谢谢

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/4/29 11:55:00 [只看该作者]

又得麻烦老师了,引用上面例子,下面代码在运行时,如果多值字段形成的了审核行后,审核的时候,勾选多值行其中一个,所对应的逻辑列就打钩了,希望是多值的审核行打钩后,上表对应的逻辑列才打钩,是再遍历一次,还是COUNT行,不是很清楚了。

校对  老马,老张  口    审核  老刘,老王  口   批准  老吴  口

校对  老马  口
校对  老张  口
审核  老刘
审核  老王
批准  老吴


If e.DataCol.Name = "审批完成" Then '窗口工作策划操作,SQL工作策划副表审核勾选后,SQL工作策划副表对应列打钩
    Dim fdr As DataRow = DataTables("工作策划操作_Table3").find("任务索引 = '" & e.DataRow("任务索引") & "'") '模拟主表,SQL工作策划副表
    If fdr IsNot Nothing Then
        Dim str As String = e.DataRow("审批流程")
        If str.length >= 2 Then
            str = str.SubString(0,str.length -2)
            If fdr.DataTable.DataCols.Contains(str & "完成") Then
                fdr(str & "完成") = e.DataRow("审批完成")
            End If
        End If
    End If
End If



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/29 12:03:00 [只看该作者]

If e.DataCol.Name = "审批完成" Then '窗口工作策划操作,SQL工作策划副表审核勾选后,SQL工作策划副表对应列打钩
    Dim fdr As DataRow = DataTables("工作策划操作_Table3").find("任务索引 = '" & e.DataRow("任务索引") & "'") '模拟主表,SQL工作策划副表
    If fdr IsNot Nothing Then
        Dim str As String = e.DataRow("审批流程")
        If str.length >= 2 Then
            str = str.SubString(0,str.length -2)
            If fdr.DataTable.DataCols.Contains(str & "完成") Then
                If e.DataRow("审批完成") = False
                    fdr(str & "完成") = False
                Else
                    Dim c1 As Integer = e.DataTable.compute("count(任务索引)", "任务索引 = '" & e.DataRow("任务索引") & "'")
                    Dim c2 As Integer = e.DataTable.compute("count(任务索引)", "任务索引 = '" & e.DataRow("任务索引") & "' and 审批完成 = true")
                    fdr(str & "完成") = (c1 = c2)
                End If
            End If
        End If
    End If
End If

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/4/29 12:47:00 [只看该作者]

请教老师,最后这段指导的代码,是全部行勾选后的控制,我想实现的是“表E审批”多值行勾选后,“表E”有多值字段的逻辑列才勾选,其他如果没有多值字段的逻辑列,对应勾选

我又上个例子,请老师指导指导

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试eee.table



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/29 14:35:00 [只看该作者]

If e.DataCol.Name = "审批完成" Then
    Dim fdr As DataRow = DataTables("表E").find("编号 = '" & e.DataRow("编号") & "'") '模拟主表,SQL工作策划副表
    If fdr IsNot Nothing Then
        Dim str As String = e.DataRow("审批流程")
        If str.length >= 2 Then
            str = str.SubString(0,str.length -2)
            If fdr.DataTable.DataCols.Contains(str & "完成") Then
                If e.DataRow("审批完成") = False
                    fdr(str & "完成") = False
                Else
                    Dim c1 As Integer = e.DataTable.compute("count(编号)", "编号 = '" & e.DataRow("编号") & "' and 审批流程 = '" & e.DataRow("审批流程") & "'")
                    Dim c2 As Integer = e.DataTable.compute("count(编号)", "编号 = '" & e.DataRow("编号") & "' and 审批完成 = true  and 审批流程 = '" & e.DataRow("审批流程") & "'")
                    fdr(str & "完成") = (c1 = c2)
                End If
            End If
        End If
    End If
End If

 回到顶部