Lotus notes 类型不匹配-Lotusscript
我不知道我哪里错了,但我不断得到“类型不匹配”错误 这是原始代码Lotus notes 类型不匹配-Lotusscript,lotus-notes,lotusscript,lotus,Lotus Notes,Lotusscript,Lotus,我不知道我哪里错了,但我不断得到“类型不匹配”错误 这是原始代码 Dim policy As New Policy Dim policyDocument As NotesDocument Set policyDocument = p_baseManager.base_policyDocument policy.formName = policyDocument.Getitemvalue("Form")(0) //Had type mismatch erro
Dim policy As New Policy
Dim policyDocument As NotesDocument
Set policyDocument = p_baseManager.base_policyDocument
policy.formName = policyDocument.Getitemvalue("Form")(0) //Had type mismatch error on this line
policy.universalId = policyDocument.Universalid
policy.formX = policyDocument.Getitemvalue("FormX")(0)
我尝试对它进行一些修改,以显示一些值
Dim policy As New Policy
Dim policyDocument As NotesDocument
Set policyDocument = p_baseManager.base_policyDocument
Print "universal id = " + policyDocument.Universalid
Print "FORM NAME = " + policy.formName
policy.formName = "FormName"
Print "FORM NAME = " + policy.formName
policy.formName = policyDocument.Getitemvalue("Form")(0) // still getting type mismatch
policy.universalId = policyDocument.Universalid
policy.formX = policyDocument.Getitemvalue("FormX")(0)
谢谢大家! 添加错误处理是找出错误发生位置的最佳方法。类型不匹配将是特定于数据的,因此在没有访问环境的情况下很难进行故障排除。LotusScript中用于错误处理的最佳库是毫无疑问的。好的,让我们使用“调试”代码来分析它。我们有两个我们一无所知的自定义类: 类名:策略 实例:政策 及 类名:??? 实例:p_baseManager 然后我们有一行抛出错误:
policy.formName = policyDocument.Getitemvalue("Form")(0)
从你的测试线
policy.formName = "FormName"
我们知道,policy.formName接受字符串作为输入,错误行的左侧本身也会抛出错误
现在,如果我们有一个“类型不匹配”,这意味着赋值的右侧部分不返回字符串
如果p\u baseManager.base\u policyDocument
没有返回有效的NotesDocument,那么我们将在该行中得到一个对象变量not set
,我们可以得出结论,该policyDocument是一个有效的NotesDocument,而不是Nothing
现在让我们看看GetItemValue(“Form”)
:如果文档不包含名为“Form”的项,它将返回一个空字符串:在这种情况下,空字符串仍然是字符串-->没有类型不匹配
唯一的可能性是,policyDocument.Getitemvalue(“Form”)(0)
不返回字符串,如果项目存在但包含数字或日期值
那么:现在该怎么办
首先:您确定错误在那一行吗(您是否使用了调试器)?第二:使用调试器查找PolicyDocument的表单项的值
第三:正如Paul Stephen Withers所提到的:使用错误处理来准确识别错误行、错误代码和错误。p_baseManager不是内置类,而是自定义类。这里没有人可以告诉您,如果p_baseManager.base_policyDocument返回NotesDocument对象并且不是空的。。。没有更多的代码,就不可能有帮助。顺便说一句,策略也是一个自定义类:没有人知道这个类的formName属性需要什么,如果在策略文档的“Form”项中确实有一个字符串(如果需要的话)