IBM Lotus Symphony


CreateUnoValue 函数 [运行时]

返回一个对象,表明涉及 Uno 类型系统的精确输入值。

该对象被传送到 Uno 时,将自动转换为一种相应的 Any 类型。此类型必须由全限定的 Uno 类型名称来指定。

备注图标 Lotus® Symphony™ API 经常使用 Any 类型。它与其他环境中的变体类型相对应。Any 类型具有一个任意类型的 Uno,可用于一般的 Uno 接口。

语法:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) 以获取字节序列。

如果 CreateUnoValue 无法转换为指定的 Uno 类型,将发生错误。转换时使用了 TypeConverter 服务。

此函数适用于 Basic 到 Uno 类型的缺省转换机制效果不佳的场合。当您尝试访问 Lotus Symphony Basic 中基于一般 Any 类型的接口,例如 XPropertySet::setPropertyValue (Name, Value ) 或 X???Container::insertBy??? (???, Value) 时,可能会出现这种情况。由于这些类型仅在相应的服务中进行了定义,因此 Basic 运行时不能识别这些类型。

在这种情况下,Lotus Symphony Basic 将为您要转换的 Basic 类型选择最佳的匹配类型。但是如果选择了错误的类型,就会发生错误。您可以使用 CreateUnoValue() 函数为未知的 Uno 类型创建一个值。

此外,还可以使用此函数来传送非 Any 值,但不建议您这样做。如果 Basic 已知目标类型,那么使用 CreateUnoValue() 函数只会导致额外的转换操作,从而降低 Basic 的执行速度。


产品反馈 | 其他文档 | 商标