Foxtable(狐表)用户栏目专家坐堂 → [求助]请教一个字符串的问题


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

主题:[求助]请教一个字符串的问题

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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
[求助]请教一个字符串的问题  发帖心情 Post By:2010/8/24 12:28:00 [只看该作者]

    表中有备注列,备注列中的内容较多,比如有“60.46W18.001, 60.49S17.001, 60.49S17.021, 60.49S22.011, 91.46W28.001, 91.49S28.001, BTP-43D1”,如果用菜单自带的筛选,如筛选“BTP-43D1”是没有问题的,但使用事件编程,则无法选出,同样,如“60.46W18.001”这种字符串也无法选出。只要是带了“-”或者“.”这种连接符号的就出问题。

    请问大侠们,这是怎么回事呢?如何解决呢?

 


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/24 14:34:00 [只看该作者]

没发现有这个问题,贴出你的代码看看。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/24 15:29:00 [只看该作者]

我将我做的搜索贴上来,大家看看有没有用?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选和搜索并标记好.table


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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
  发帖心情 Post By:2010/8/24 16:18:00 [只看该作者]

使用如下代码,有问题:

 

Dim drs AS List(of Datarow)
Dim dr0 AS Datarow=e.Datarow
Dim dr1,dr2,dr3 AS Datarow
Dim filter1,filter2 AS String
filter1="[Replacement For] like '*" & e.Datarow("电池型号") & "*'"    
filter2="[Replacement For] like '*" & e.Datarow("电池型号") & "*' and [Capacity]='" & e.Datarow("容量") & "'"

If e.Datacol.Name= "电池型号" Then
    If e.NewValue Is Nothing Then
       dr0("BPBPN1")=Nothing
       dr0("BPBPN2")=Nothing
       dr0("capacity2")=Nothing
       dr0("BPBPN3")=Nothing
       dr0("capacity3")=Nothing
    Else    
       drs=Datatables("BPB量产电池").Select(filter1)  
       If drs IsNot Nothing Then
          dr1=drs(0)
          dr2=drs(1)
          dr3=drs(2)
          dr0("BPBPN1")=dr1("产品名称")
          dr0("BPBPN2")=dr2("产品名称")
          dr0("BPBPN3")=dr3("产品名称")
          dr0("capacity2")=dr2("capacity")
          dr0("capacity3")=dr3("capacity")
       Else
          dr0("BPBPN1")="NULL"
       End If
   End If
End If

 

 

使用如下代码,正常:

If e.Datacol.Name="电池型号" Then
   Dim drs AS list(of Datarow)
   Dim filter As String
   filter="[Replacement For] Like '*" & e.Datarow("电池型号") & "*' "
   drs=Datatables("BPB量产电池").SELECT(filter)
   If drs IsNot Nothing Then   '如果不为空
         Dim dr AS DATAROW=drs(0)
         e.Datarow("BPBPN1")=dr("产品名称")
   Else
         e.Datarow("BPBPN1")="NULL"
   END IF
END If


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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
  发帖心情 Post By:2010/8/24 16:36:00 [只看该作者]

是不是问题出在  

      dr2=drs(1)
      dr3=drs(2)

 如果搜索的结果只有1条,而定义了2、3不存在,就有此问题?


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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
  发帖心情 Post By:2010/8/24 17:01:00 [只看该作者]

是这个问题。我修改代码后,解决了。

 回到顶部