QTP使用公共函数处理空值

时间:2014-06-11 16:18:54

标签: vbscript qtp hp-uft

我正在尝试编写一个QTP脚本,其工作方式如下 *从表检查中获取一列是否为空 如是 它在变量中添加了列名。

稍后该列名将用于向用户显示所有此类字段都留空。 像这样:

Set rsRecordset1 = dbConnection.Execute("select formcd,sndrpstlcd,recppstlcd,sndrcntrycd, from test_data where trk in ('"&tin&"')")

If rsRecordset1.EOF = false Then
Blank_field="blank_fields->"

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (typcd,Blank_field)
packaging = rsRecordset1("packaging").value
typcd="packaging"
Call validatenull (typcd,Blank_field)
......

Public function validatenull (typcd,Blank_field)
   If (isnull(typcd) )Then
    Blank_field = Blank_field & " " & typcd &", "
   End If
End Function

blank_Field的值应该捕获值为" blank_fields-> Form_id,打包(考虑Form_id,打包传递Null值){它不应该将非空的值添加到blank_fields}

用简单的话说

ss = Null
call nnn(ss)
Public function nnn(ss)
    If isnull(ss) Then
        msgbox("yes")
    End If
End Function

msgbox没有填充错误但是,

ss= Null 
nnn(ss) 
If isnull(ss) Then 
    msgbox("yes") 
End If 

将Msgbox填充为是 但我希望案例1正常工作,我不想再向函数名添加任何变量。

如果通过制作阵列我们可以做到,请建议。

1 个答案:

答案 0 :(得分:1)

看来你的功能正常,但是你传递的是错误的值。来自您的代码段:

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (typcd,Blank_field)

当您致电' validatenull'时,您正在传递变量' typecd'。在上一行中,您使用字符串填充此变量,因此它永远不会为null。看起来你打算传递的是变量&form;'。你第二次打电话给'validatenull'做同样的事情。这是您修改的第一个调用以使用其他变量。

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (formcd,Blank_field)