代码之家  ›  专栏  ›  技术社区  ›  Kris.Mitchell

lotus视图列与string/integer比较

  •  0
  • Kris.Mitchell  · 技术社区  · 15 年前

    我有一个存储数字的lotus视图。我需要对值执行一些数学运算,但是我在匹配类型时遇到了很多问题。

    doc.numOfGold = numGold 
    

    CInt(doc.numOfGold) = numGold

    CInt(doc.numOfGold) = CInt(numGold)

    doc.numOfGold = CInt(numGold)

    所有返回类型不匹配。我已经尝试更改列属性,将其视为十进制,但运气不佳。

    有什么想法吗?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  1
  •   Christian Waidner    15 年前

    永远不要访问这样的字段:“doc.fieldname”。用户doc.getitemvalue(“fieldname”)(0),返回正确的类型。

    如果doc.numofgold是一个numberfield,numgold是一个int,它应该如下工作:

    Dim numOfGold as integer
    numOfGold = doc.GetItemValue("numOfGold")(0)
    

    如果doc.numofgold是文本字段,则必须进行转换,例如 val(doc.GetItemValue("numOfGold")(0))

    还要验证字段值不是空字符串,例如使用字段验证公式。

        2
  •  0
  •   Ashish Chaurasia    15 年前

    永远不要访问这样的字段: “文档字段名”。

    有点苛刻,访问文档字段值完全可以接受:

    X=文档字段名(0)

    doc.fieldname=标量值

    甚至

    doc.fieldname=数组值

    为了确保成功,您可能需要先查看“doc.hasitem(“fieldname”)”是否正确(getfirstitem也是如此)。

    注意:getfirstitem是获取字段值的直接方法,对于最大性能:

    x=doc.getfirstitem(“fieldname”)。值(0)

    因为这样可以避免“默认属性”。

    此外,错误报告/语法检查可以“忽略”“假定默认值”doc.fieldname(0)