Foxtable(狐表)用户栏目专家坐堂 → 怎样根据不合格项目的内容,填写相应字段的内容?


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

主题:怎样根据不合格项目的内容,填写相应字段的内容?

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


加好友 发短信
等级:小狐 帖子:391 积分:3179 威望:0 精华:0 注册:2008/8/31 20:44:00
怎样根据不合格项目的内容,填写相应字段的内容?  发帖心情 Post By:2021/7/24 7:37:00 [显示全部帖子]

怎样根据不合格项目的内容,填写相应字段的内容? 如不合格项目内容:使用登记,安全管理人员,安全管理制度,标志,则相应字段这填写“X”,其他字段填写“√”。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:wsm.table

[此贴子已经被作者于2021/7/24 7:38:15编辑过]

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


加好友 发短信
等级:小狐 帖子:391 积分:3179 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2021/7/24 10:21:00 [显示全部帖子]

If e.DataCol.Name = "不合格项目"  Then

    If e.DataRow.IsNull("不合格项目") Then

        For Each dc As DataCol In e.DataTable.DataCols

            If dc.Name <> "不合格项目" Then

                e.DataRow(dc.Name) = Nothing

            End If

        Next

    Else

        Dim lst As new List(of String)

        lst.AddRange(e.DataRow("不合格项目").split(","))

        For Each dc As DataCol In e.DataTable.DataCols

            If dc.Name <> "不合格项目" Then

                If lst.Contains(dc.Name) Then

                    e.DataRow(dc.Name) = "X"

                Else

                    e.DataRow(dc.Name) = "√"

                End If

            End If

        Next

    End  If

End  If

 

 

如果不合格项目不包含“实时监控”且字段“是否公共场所”为“否”

字段“实时监控”应为“/ ,怎样增加判断语句?


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


加好友 发短信
等级:小狐 帖子:391 积分:3179 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2021/7/24 11:42:00 [显示全部帖子]

有点问题,记录内容有变化时,会把字段“是否公共场所”改为“”,应该排除该字段。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:wsm.table


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


加好友 发短信
等级:小狐 帖子:391 积分:3179 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2021/7/24 13:31:00 [显示全部帖子]

If e.DataCol.Name = "不合格项目"  Then
    If e.DataRow.IsNull("不合格项目") Then
        For Each dc As DataCol In e.DataTable.DataCols
            If dc.Name <> "不合格项目" Then
                e.DataRow(dc.Name) = Nothing
            End If
        Next
    Else
        Dim lst As new List(of String)
        lst.AddRange(e.DataRow("不合格项目").split(","))
        For Each dc As DataCol In e.DataTable.DataCols
            If dc.Name <> "不合格项目" Then
                If lst.Contains(dc.Name) Then
                    e.DataRow("使用登记") = "X"
                    e.DataRow("安全管理人员") = "X"
                    e.DataRow("安全管理制度") = "X"
                    e.DataRow("标志") = "X"
                    e.DataRow("紧急报警") = "X"
                    e.DataRow("实时监控") = "X"
                    e.DataRow("层门") = "X"
                    
                Else
                    e.DataRow("使用登记") = "√"
                    e.DataRow("安全管理人员") = "√"
                    e.DataRow("安全管理制度") = "√"
                    e.DataRow("标志") = "√"
                    e.DataRow("紧急报警") = "√"
                    e.DataRow("实时监控") = "√"
                    e.DataRow("层门") = "√"
                    
                End If
            End If
        Next
        If e.DataRow("是否公共场所") = "否" Then
            e.DataRow("实时监控") = "/"
            
        End If
    End  If
End  If

已经可以排除其他字段,但是“不合格项目”字段非空时,相应字段不会打“X”,相应字段全打“√”,不知公式哪里错?

[此贴子已经被作者于2021/7/24 13:34:38编辑过]

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


加好友 发短信
等级:小狐 帖子:391 积分:3179 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2021/7/24 14:05:00 [显示全部帖子]

If dc.Name <> "不合格项目" andalso dc.Name <> "是否公共场所" andalso dc.Name <> "出厂编号"Then   
现在可以实现功能了,但是如果排除的字段比较多,用这个公式比较长,有没有其他办法

 回到顶部