0

私は蓮が初めてです。Java を使用して Lotus データベースから情報を取得する必要があります。私はデータベースを持っています:

Session session = NotesFactory.createSession(host, user, pwd);
Database database = session.getDatabase(server, database);

私はその情報を持っています:

 field - fldContractorCode;
 form - form="formAgreement";

たとえば、フィールドは「abcde」です。では、そのデータベースから情報を取得するにはどうすればよいでしょうか? 座席式を使用する必要がありますか? または、どのような方法を使用する必要がありますか? 助けてくれてありがとう。

UPD

今、私はそのような方法を使用しています:

DocumentCollection collection = DATABASE.search("form=\"formAgreement\"");
Document doc = collection.getFirstDocument();
while(doc != null) {
   doc.getItemValueString("fldContractorCode");
   doc = collection.getNextDocument();
}

そして、それは私にとってはうまくいきますが、たとえば field="abcd" でドキュメントを見つけるには、毎回コレクションを反復処理する必要があるため、その方法はあまり快適ではないと思います...だから、私は何らかの方法を求めていますフィールド値でドキュメントを検索します。そして、データベース内のVIEWとは何か、このVIEW名をどこで取得するのかわかりません。

4

3 に答える 3

2

既存のコードでは、次の 1 行を変更するだけです。

DocumentCollection collection = DATABASE.search("form=\"formAgreement\ & "fldContractorCode=\"abcd\"");

ただし、データベースに多くのドキュメントが含まれている場合、これは遅くなります。最高のパフォーマンスを得るには、Domino Designer を使用して新しいビューをデータベースに追加getDocumentByKey()し、他の回答で提案されている方法を使用することを検討する必要があります。それができない場合、この方法を使用するという Simon の提案は、そのFTSearch()方法よりも高速ですがSearch()、データベースに全文索引が存在する場合に限られます。また、検索文字列の構文も少し異なります。

于 2013-03-19T13:29:40.533 に答える
1

書類の入手方法はいくつかあります。

1. ビューからドキュメントを検索します。ビューの最初の列には、fldContractorCode のソートされた値が含まれています。

例えば:

String key = "abide";
View view = db.getView("viewName");
Document doc = view.getDocumentByKey(key, true);

2. データベース FTSearch メソッドを使用して全文検索を実行し、ドキュメントを見つけることができます。全文索引を作成するには、データベースが必要です。

3. ドキュメントの UNID または Notes ID がわかっている場合は、getDocumentByUNID() または getDocumentByID() を使用できます。

あなたの質問は非常に幅広いので、Infocenter を読むことをお勧めします。各メソッドのサンプル コードが詳しく説明されています。

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.main.doc/H_NOTESDATABASE_CLASS_JAVA.html

于 2013-03-19T11:23:12.097 に答える
1

フィールドを取得するドキュメント (フォームではない) にドリルダウンする必要があります。

Lotus Notes には、目的の場所に到達するための非常に理解しやすい階層的な方法があります。次の順序でオブジェクトをインスタンス化する必要があります。

Session
Database
View
Document 

すべてのフォーム「formAgreement」をリストする $(sysAgreements) というビューがあるとします。その選択式は次のようになります。

SELECT Form="formAgreement"

必要なドキュメントにアクセスするには、次のようにします。

Session session = NotesFactory.createSession(host, user, pwd);
Database database = session.getDatabase(server, database);
View view = database.getView("$(sysAgreements)");
Document doc = view.getDocumentByKey(VIEW_KEY);
String fieldContent = doc.getItemValueString("fldContractorCode");

Notes データベースから情報を取得するには、いくつかの方法があります。これはそれらの1つです。Notes が getDocumentByKey でビューを検索するために使用するキーは、最初にソートされた列であることに注意してください。

複数のドキュメントを取得する場合は、次を使用できます。

DocumentCollection docCol = view.getAllDocumentsByKey(VIEW_KEY);

そしてそれを繰り返します。

ftsearch の実行は遅く、Notes にとって少し面倒なので避けてください。ビューで見上げるのが好きです。

もう 1 つの強力なヘルプ ソースは、Notes ヘルプです。Notes Development Client がインストールされているコンピューターからヘルプ データベースを取得します。ただし、選択するヘルプの名前に注意してください。Notes には、クライアント、開発、および管理の 3 つのヘルプがあります。開発はあなたが望むものです。

于 2013-03-19T11:36:03.737 に答える