以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 多条件筛选无法实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58396)

--  作者:wumingrong1
--  发布时间:2014/10/16 9:00:00
--  [求助] 多条件筛选无法实现
如下命令想实现:筛选出   “机房名称”相同和“业务名称”为空   或者  “机房名称”相同和“设备名称端口”为空  的内容;但是以下命令无法兼容这两种情况;我该怎么改这个命令?

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("机房板盘端子台帐表","板盘类型|机柜编号|板盘端子名称","机房名称 = \'" & Forms("设备端口成端窗口").Controls("机房名称").Text & "\'and 业务名称 Is Null  Or  机房名称 = \'" & Forms("设备端口成端窗口").Controls("机房名称").Text & "\'and  设备名称端口 Is Null " )

--  作者:Bin
--  发布时间:2014/10/16 9:02:00
--  
trv.BuildTree("机房板盘端子台帐表","板盘类型|机柜编号|板盘端子名称","(机房名称 = \'" & Forms("设备端口成端窗口").Controls("机房名称").Text & "\'and 业务名称 Is Null)  Or  (机房名称 = \'" & Forms("设备端口成端窗口").Controls("机房名称").Text & "\'and  设备名称端口 Is Null) " )
--  作者:FOTOER
--  发布时间:2016/4/8 0:06:00
--  
学过留痕
--  作者:wumingrong1
--  发布时间:2016/4/29 14:11:00
--  

我的表中有很多列;在查询条件的Enter中写有以下命令;红色部分命令的意思是除了里面写的这些列不显示、其他都显示;但是由于我的列数很多而我希望只显示其中很小部分列、其他列不显示;命令该怎么修改?

 

Dim t As Table = Forms("宽带帐号割接回访主窗口").Controls("Table1").Table
If t IsNot Nothing Then
    Dim cs As String = ""
    For Each c As Col In t.Cols
       If c.Name <> "割接情况"  AndAlso  c.Name <> "工单责任人"  AndAlso  c.Name <> "全部统计"  AndAlso  c.Name <> "编辑锁定工号"  AndAlso  c.Name <> "编辑锁定"  AndAlso  c.Name <> "用户是否过期" AndAlso  c.Name <> "用户到期日期" AndAlso  c.Name <> "移动产品方案" AndAlso  c.Name <> "用户办理的移动产品编码"   AndAlso  c.Name <> "七级地址"  AndAlso  c.Name <> "地址ID"  AndAlso  c.Name <> "地址"  AndAlso  c.Name <> "密码"    AndAlso  c.Name <> "最后修改时间"  AndAlso c.Name <> "最后修改帐号" AndAlso c.Name <> "预约处理时间"  AndAlso c.Name <> "预约处理帐号"  AndAlso c.Name <> "首次回访时间" AndAlso c.Name <> "首次回访帐号" Then
            cs &= c.Name & "|"
        End If
    Next
    e.Sender.ComboList = cs.TrimEnd("|")
End If

[此贴子已经被作者于2016/4/29 14:11:56编辑过]

--  作者:大红袍
--  发布时间:2016/4/29 14:46:00
--  

If c.Name = "列1" OrElse c.Name = "列2" Then

    cs &= c.Name & "|"

End If


--  作者:wumingrong1
--  发布时间:2016/5/4 16:39:00
--  

我的【PON端口】列内容格式为:00-01-12  或者  00-12-01 类似这样的格式;

 

1、我想把它分列、以下公式红色部分内容该怎么修改?

2、如果拆分出来的内容第一个为0就删除第一个;比如00=0、01=1、12=12

 

\'If e.DataCol.Name = "PON端口" Then
\'  If e.NewValue = Nothing Then
\'    e.DataRow("框号") = Nothing
\'    e.DataRow("槽号") = Nothing
\'    e.DataRow("PON口号") = Nothing
\' Else
\'   Dim str As String = e.NewValue
\'  Dim reg As new System.Text.RegularExpressions.Regex("(?<=\\=+)[0-9]+(?=;+)")
\'  Dim mc As Object = reg.matches(str)
\'  If mc.Count = 2 Then
\'    e.DataRow("框号") = str.SubString(0,4)
\'   e.DataRow("槽号") = mc(0).Value
\'   e.DataRow("PON口号") = mc(1).Value
\' End If
\'  End If
\'End If


--  作者:大红袍
--  发布时间:2016/5/4 17:03:00
--  

参考

 

http://www.foxtable.com/help/topics/0245.htm

 


--  作者:wumingrong1
--  发布时间:2016/5/4 17:43:00
--  

        Dim str As String = e.NewValue
        e.DataRow("框号") = str.SubString(0,2)
         e.DataRow("槽号") = str.SubString(3,2)
        e.DataRow("PON口号") = str.SubString(6,2)

 

如果我的列内容是00-00-12 分列出来的结果分别是  00      03     12   如果我想实现0    3   12 就是将前面的0去掉;该怎么办?


--  作者:大红袍
--  发布时间:2016/5/4 18:50:00
--  

 

e.DataRow("框号") = val(str.SubString(0,2))


--  作者:wumingrong1
--  发布时间:2016/5/5 9:11:00
--  

我有一个表、有48列为:电话号码1、电话号码2 ...........电话号码48 ;我的查询按钮公式如下:想实现如果我需要查询【电话号码】的时候、就在 【电话号码1 .....电话号码48】这48列中进行查询;以下红色字体命令该怎么写会比较简单?

 

 

Dim filter As String = "1=1"

Dim 内容 As String = e.Form.Controls("内容").text
Dim 条件 As String = e.Form.Controls("条件").text

If 内容 > "" AndAlso 条件 > "" Then

If e.Form.Controls("条件").text = \'电话号码\' Then

filter &= " and ( 电话号码1 = \'%" & 内容 & "%\'  or  电话号码2 = \'%" & 内容 & "%\'  or 电话号码3 = \'%" & 内容 & "%\'   ......  or   电话号码48 = \'%" & 内容 & "%\'     ) "

Else
    filter &= " and " & 条件 & "  like \'%" & 内容 & "%\'"
End If
End If

CurrentTable.Filter = filter

[此贴子已经被作者于2016/5/5 9:12:54编辑过]