Notes 总结

参与开发了一个Notes的项目。

遇到了一些问题。粗浅的总结一下。

 

Notes开发技巧
1. 模拟数据的使用。测试的时候特别单体测试的时候避免不了使用假的模拟数据。Notes上给Form上的隐藏字段赋值的往往比较困难。
   使用Universal Edit-> 小地球的图片Button 在Button的Formula里写上赋值公式可以设置表单的值。
   在想修改的Form上点击小地球的图片执行赋值。

2. 子文书用公式取得主文书的值。
   @GetDocField(@Text($Ref);"主文书域名") = "主文书域名的值"

3. View 制作的时候为了按照自定义的顺序排序。在显示列前后加入同样的隐藏列。用自定义公式做排序处理。
4. 表格的行列无法删除。一般是合并了单元格。去掉合并单元格的操作。再处理。
5. 全角半角判断。 Len()函数取得长度。lenBp()函数取得Byte长度。根据2个长度是否相同来判断结果。
6. 对于Notes脚本里的错误。可以用如下的方式捕获并且显示。

On Error Goto ErrorHandle
   ...
ErrorHandle:
   对应处理
 

   例如:

Msgbox "错误:["+Cstr(Err)+"]:"+Error+" Erl:"+ Cstr(Erl),0+16,"Error"
       Exit Function 
 

 

   不过这种方法只限于一个方法内的错误。在方法本身调用了其他方法时出现的错误, 无法显示其他方法的错误信息。
7. Form的操作。合理利用Postopen等方法做初始化操作。类似于VB。控件的一些属性和事件要考虑是否可以利用。

8. 判断是否有特殊的非法字符输入的正则表达式。例如: Like "*[!:,0-9,a-z,A-Z,-]*"

9. 读取Excel文件

 

varfile = workspace.OpenFileDialog(False, "Select File","ExcelFile|*.xls")
If Not(IsEmpty(varfile)) Then
   Set xlApp = CreateObject("Excel.Application") 
   Set xlbook = xlApp.Workbooks.Open(varfile(0))
   xlsheetcount = xlApp.WorkBooks(1).worksheets.Count
   ...
End If
 

 

Notes开发中遇到的各种问题。
1. 页面元素取值的时候一般多用变量值的域(0)的方式操作。
2. 页面元素赋值的时候往往又不能使用(0)
3. 对于CheckBox这样的控件。虽然有OnChange的方法。但是。如果不在属性里面设置。可能这个方法依然不起作用。
4. 对于RichText 的操作。取值和赋值往往比较复杂。
   NotesRichTextItem.Text 可以取到文本的内容。但是加上了RichText本身的一些格式。
   NotesRichTextItem.item.Getunformattedtext() 只按照行定义来取得文本内容。
5. Notes开发的代码的版本管理是比较让人头疼的。跟SVC相比功能比较简单。对于版本恢复比较等都比较麻烦。需要单独备份。

6. Notes8虽然提供了一些新功能。不过。稳定性不是很好。经常死掉。

7. Notes的Debug的帮助太少。跟踪起来不是特别方便。有的时候断点莫名奇妙的就不知道哪去啦。

8. Notes的帮助比较差劲。应该说很差劲。

    第一。说明异常简单。举得例子也非常的少。有的时候。不是亲自测试。是搞不清楚Notes提供的函数的功能的。

    第二。并且分为Notes脚本的函数和JAVA代码的函数。名字还很像。可能只区分大小写。

    第三。帮助文档提供的检索功能也不是特别好。有的时候不知道全部的函数名称。很难查到你要找的内容。Notes的函数查询时不按照功能来分类的。只是按照字母的顺序排序。找起来可想而知。好在Notes能提供的函数也就这些了。

 

Notes开发项目的特点

Notes开发更像是VB 开发。因为至少还算有比较丰富的API和一些Notes能提供的拿来就可以使用的功能。比如权限。控件的属性等。对于规模小,人员少,要求不是特别多的项目来说比较适合。对于规模比较大,人员多,需求比较复杂的项目来说Notes的很多问题就暴露了。比如。耦合性比较大。代码难于管理。不便于维护等等。

 

Notes的项目适合小型的特定的某些客户。

 

 

你可能感兴趣的:(Note)