Foxtable(狐表)用户栏目专家坐堂 → 列内容XXX


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

主题:列内容XXX

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


加好友 发短信
等级:五尾狐 帖子:1187 积分:8266 威望:0 精华:0 注册:2015/3/30 10:44:00
列内容XXX  发帖心情 Post By:2022/9/26 20:02:00 [只看该作者]

查询,可能查出登录者邮箱和技术支持邮箱不同的数据,也能包含登录者邮箱和技术支持邮箱相同的数据。
希望如果登录者邮箱和技术支持邮箱不同的行,那么查询结果客户列内容希望打XXX,但不是后台这行数据改为XXX. 导出的表也是客户列内容也是XXX。
登录者邮箱和技术支持邮箱相同的行,客户列内容不做修改。正常显示。不同的才需要打XXX

查询代码:
DataTables("临时版本跟踪表").LoadFilter = ""
DataTables("临时版本跟踪表").Load
Dim kh As WinForm.ComboBox = e.Form.Controls("客户")
Dim bdjx As WinForm.ComboBox = e.Form.Controls("博达机型")

Dim xqms As WinForm.TextBox = e.Form.Controls("需求描述")
Dim qssj As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker3")
Dim jzsj As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker4")


If qssj.text = "" AndAlso jzsj.text = "" Then 
    If xqms.text = "请输入字符串模糊查询" Then
        DataTables("临时版本跟踪表").LoadFilter = "客户 like '%" & kh.text & "%' and 博达机型 like '%" & bdjx.text & "%'"
        DataTables("临时版本跟踪表").Load
    Else
        DataTables("临时版本跟踪表").LoadFilter = "客户 like '%" & kh.text & "%' and 博达机型 like '%" & bdjx.text & "%' and [需求描述] like '%" & xqms.text & "%'"
        DataTables("临时版本跟踪表").Load
    End If
Else
    If xqms.text = "请输入字符串模糊查询" Then
        DataTables("临时版本跟踪表").LoadFilter = "客户 like '%" & kh.text & "%' and 博达机型 like '%" & bdjx.text & "%' and 需求提交时间 > '" & qssj.Value & "' and 需求提交时间 < '" & jzsj.Value.adddays(1) & "'"
        DataTables("临时版本跟踪表").Load
    Else
        DataTables("临时版本跟踪表").LoadFilter = "客户 Like '%" & kh.text & "%' and 博达机型 like '%" & bdjx.text & "%' and [需求描述] like '%" & xqms.text & "%' and 需求提交时间 > '" & qssj.Value & "' and 需求提交时间 < '" & jzsj.Value.adddays(1) & "'"
        DataTables("临时版本跟踪表").Load
    End If 
End If
Tables("临时版本跟踪表").Sort = "需求编号 DESC"


导出代码:
Tables("临时版本跟踪表").Sort = "需求编号 DESC"
Dim dt As Table = Tables("临时版本跟踪表")
Dim dtt As DataTable = DataTables("临时版本跟踪表")
Dim sss1 As String = Date.Now
Dim sss As String = sss1.Replace(":", "-")
Dim filepath As String = "C:\临时版本跟踪表\" & "查询导出-" & sss & ".xls"

Dim nms() As String = {"临时版本编号", "需求编号", "博达机型", "客户", "需求提交时间", "预计提供时间", "开发环境", "代码message", "软件环境", "show_version", "技术支持邮箱", "研发邮箱", "客户期望交期", "log", "发布目录", "测试目录", "状态", "状态直白", "需求描述"} '要导出的列名
Dim caps() As String = {"临时版本编号", "需求编号", "博达机型", "客户", "需求提交时间", "预计提供时间", "开发环境", "代码message", "软件环境", "show_version", "技术支持邮箱", "研发邮箱", "客户期望交期", "log", "发布目录", "测试目录", "状态", "状态直白", "需求描述"} '对应的列标题
Dim szs() As Integer = {100, 100, 100, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 80, 200, 300} '对应的列宽
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim st As XLS.Style = Book.NewStyle '日期列的显示格式
st.Format = "yyyy-MM-dd hh:mm:ss"
For c As Integer = 0 To nms.length - 1
    Sheet(0, c).Value = caps(c) '指定列标题
    Sheet.Cols(c).Width = szs(c) '指定列宽
    If dt.Cols(nms(c)).IsDate Then '如果是日期列
        Sheet.Cols(c).Style = st '设置显示格式
    End If
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length - 1
        If Not dt.rows(r).Isnull(nms(c)) Then Sheet(r + 1, c).Value = dt.rows(r)(nms(c))
    Next
Next
Book.Save(filepath)
MessageBox.show("保存路径:" & FilePath, "导出成功", MessageBoxButtons.OK, MessageBoxIcon.Information)


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/26 20:23:00 [只看该作者]

没看懂,请截图说明一下

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


加好友 发短信
等级:五尾狐 帖子:1187 积分:8266 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2022/9/26 20:33:00 [只看该作者]

这张表有客户列,有技术支持邮箱列。
就是如果username和技术支持邮箱列不同,那么这些行的客户列内容显示XXX,相同不用管。
意思就是不希望查到别人的客户信息,查到客户
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220926202519.png
图片点击可在新窗口打开查看
就XXX显示。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/26 20:39:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1187 积分:8266 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2022/9/26 20:53:00 [只看该作者]

嗯,就是这个内容。查了好久帮忙没找到。
但导出的excel文件还是显示了真实的客户列内容,而不是XXX。这个有啥好办法处理?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/26 20:57:00 [只看该作者]

导出的时候遍历每行,判断每行的邮箱是否等于用户,如果不等于就不要给单元格赋值

    For c As Integer = 0 To nms.length - 1
        If Not dt.rows(r).Isnull(nms(c)) andalso 这一行的邮箱是否等于用户 Then Sheet(r + 1, c).Value = dt.rows(r)(nms(c))
    Next

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


加好友 发短信
等级:五尾狐 帖子:1187 积分:8266 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2022/9/26 21:19:00 [只看该作者]

For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length - 1
        If Not dt.rows(r).Isnull(nms(c)) AndAlso dt.Rows(r)("技术支持邮箱") = User.Name Then Sheet(r + 1, c).Value = dt.rows(r)(nms(c))
    Next
Next
但这样做,假如技术支持邮箱和use.name不同,所有列不给赋值了。应该是只有客户列为XXX

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/26 21:50:00 [只看该作者]

那就再判断一下列,是某个名称的列,再判断邮箱,其它列直接赋值

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


加好友 发短信
等级:五尾狐 帖子:1187 积分:8266 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2022/9/27 11:27:00 [只看该作者]

For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    If dt.cols(r).Name <> "客户" Then
        For c As Integer = 0 To nms.length - 1
            Sheet(r + 1, c).Value = dt.rows(r)(nms(c))
        Next
    Else
        If dt.Rows(r)("技术支持邮箱") <> User.name AndAlso user.Group = "录入" Then
            Sheet(r + 1, c).Value = dt.rows(r)(nms(c))   ---------不会写这个逻辑。
        End If 
    End If 
Next

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/27 11:35:00 [只看该作者]

和红色代码没有关系

If dt.Rows(r)("技术支持邮箱") = User.name AndAlso user.Group = "录入" Then

 回到顶部
总数 14 1 2 下一页