早上好,
我开发了一个用于预订的笔记应用程序。该应用程序由多个用户同时使用。 我对这个开发很陌生,现在我想开发一个功能,以便用户可以打印出口数据到excel。
我创建了一个视图(共享),其选择公式基于每个用户在搜索表单中指定的关键。我有问题,当用户正在打印但尚未完成时,其他用户也同时点击打印,两侧导出数据的结果与首先创建的人相同。
我原本以为可能正在使用(第一次使用View上的Shared,Private),但是它产生了一个错误[Notes错误:在服务器上不生成索引(“视图名称”)]叫
view.Clear view.SelectionFormula = formula uiw.ViewRebuild
我不知道如何解决这个问题。你能建议如何解决这个问题吗?
提前感谢您的大力帮助。
致以最诚挚的问候,
Veasna
答案 0 :(得分:2)
有不同的方法可以做到这一点。一种可能性是在首次使用时使用"共享,私有" (spofu)观点:然后每个用户都获得他自己的视图副本,并且他们不会相互影响。但我认为这样做并不是一个好主意,因为每个用户都需要设计师权利才能更改视图的选择公式。这是你不想要的。
更好的方法是为每个用户使用spofu文件夹并将文档放入其中:
Dim ses as New NotesSession
Dim db as NotesDatabase
Dim dc as NotesDocumentCollection
Dim folder As NotesView
Dim formula as String
Set db = ses.currentDatabase
Set folder = db.GetView("NameOfTheSpofuFolder" )
'Make it empty
Call folder.AllEntries.RemoveFromFolder("NameOfTheSpofuFolder")
'Search documents based on the formula
Formula = "Field1 = 2 & Field2 = 5"
Set dc = db.Search( formula, Nothing, 0)
Call dc.PutInFolder("NameOfTheSpofuFolder")
Spofu文件夹需要一点点"关心"但通常他们工作得很好。
此代码未经过测试,只是在没有语法检查的情况下写下来。它可能包含拼写错误,但应该让您知道如何开始。
答案 1 :(得分:0)
您可以创建一个Lotusscript代理来导出用户指定的数据。 从表单中获取搜索条件,然后使用db.Search或(最好)db.FTSearch来获取要导出的文档。 现在,您可以使用以下描述的技术之一将这些文档的数据导出到Excel: http://blog.texasswede.com/export-from-notes-to-excel-3-different-ways/
如果您要导出为CSV,则可以将此代码用作开头:http://blog.texasswede.com/export-notes-view-to-excel-with-multi-value-fields/
答案 2 :(得分:0)
根据this thread on the Notes 6/7 forum,可能有针对此问题的解决方法。您还没有显示足够的代码来确定。如果您使用getView()
访问共享 - 首次使用私人(SPOFU)视图,则该功能无效。解决方法是遍历db.Views()
数组,检查Name
和Readers
属性,以确保您获取视图的私有实例而不是共享的句柄实例