以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]e.Datarow的问题请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7966)

--  作者:飞鱼
--  发布时间:2010/8/25 11:23:00
--  [求助]e.Datarow的问题请教

写了一段代码:

 

Dim drs AS List(of Datarow)
Dim dr AS Datarow=e.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="电池型号" Or e.Datacol.Name="容量" Then
   drs=Datatables("BPB量产电池").SELECT(filter2)
   Dim n AS Integer=drs.count
       If n=1 Then 
         Dim dr0 AS DATAROW=drs(0)
         dr("BPBPN1")=dr0("产品名称")
         dr("BPBPN2")=Nothing
         dr("capacity2")=Nothing
         dr("BPBPN3")=Nothing
         dr("capacity3")=Nothing
       Elseif n=1
         Dim dr0 AS DATAROW=drs(0)
         Dim dr1 AS Datarow=drs(1)
         dr("BPBPN1")=dr0("产品名称")
         dr("capacity2")=dr1("Capacity")
         dr("BPBPN2")=dr1("产品名称")
         dr("BPBPN3")=Nothing
         dr("capacity3")=Nothing
       Elseif n>2
         Dim dr0 AS DATAROW=drs(0)
         Dim dr1 AS Datarow=drs(1)
         Dim dr2 AS Datarow=drs(2)
         dr("BPBPN1")=dr0("产品名称")
         dr("BPBPN2")=dr1("产品名称")
         dr("capacity2")=dr1("Capacity")
         dr("BPBPN3")=dr2("产品名称")
         dr("capacity3")=dr2("Capacity")
       Else n=0
         dr("BPBPN1")="None"
         dr("BPBPN2")=Nothing
         dr("capacity2")=Nothing
         dr("BPBPN3")=Nothing
         dr("capacity3")=Nothing
   END IF
END If

 

运行的时候,当"电池型号"输入字符而“容量”列无字符时,程序直接就跑到ELSE后面了,输出“NONE”,然后“容量”列输入字符后,才进行筛选。而我希望得到的结果是,当“电池型号”列有输入时,就出现初步的筛选结果,接着“容量”列输入后,再出现进一步的筛选结果。

 

请教:上面的程序段该怎么调整下?


--  作者:狐狸爸爸
--  发布时间:2010/8/25 11:34:00
--  

If e.DataRow.IsNull("电池型号") Then \'如果没有输入电池型号

  \'无动作

Elseif e.Datarow.Isnull("容量") Then \'如果输入了电池型号,但没有输入容量

  \'初步筛选

Else \'如果两者都输入了

  \'进一步筛选

End If