0

別のフォームのフィールドを含めるように既存のLotusビューを変更しています。

  1. 最初に新しい列を追加し、それを目的のフィールドに設定しました。ただし、更新した後、データがあることがわかっていても、新しい列は空白でした。

  2. 次に、ビュー選択式を次の場所から更新しました。

SELECT Form = "A" & StatusIndex < "06"
に:
SELECT (Form = "A"| Form = "B") & StatusIndex < "06"

まだ運がない。ビューは正常に更新されていますが、新しいフィールドはまだ空白です。この新しい列をこのビューに追加するために他に何がありますか?

Lotusを試すのはこれが初めてなので、主要な概念が欠けているように思われる場合は、おそらくそうです。

編集

SQLを使用してこのデータをプルする場合、ステートメントはおそらく次のようになります。

Select A.* , B.*  
from A inner join B on A.id=B.id  
where A.StatusIndex < "06";  

これは別の質問を引き起こします:これらのテーブル/フォーム間の関係はどこで定義されていますか?

4

3 に答える 3

1

残念ながら、Notes ビューから利用できる (本質的な) "結合" 機能はありません。ビューの同じ行 (ドキュメント) に表示される異なる列が絶対に必要な場合、1 つのオプションは、データを非正規化することです。これにより、「ドキュメント B」の保存時に、関連する「ドキュメント A」を必要なフィールド値。(これは、全文検索を「結合された」データ全体で機能させる唯一の実際の方法でもあります)。

ビューがブラウザーでのみ表示される場合は、AJAX 呼び出しを行って関連するデータ フィールドを読み込むなど、他のオプションがある場合があります。

于 2010-05-26T17:22:26.747 に答える
0

ケンが指摘した「複数の形式」のトリックのより単純なバージョンがあります。

Form = "A": "B"&StatusIndex<"06"を選択します

または必要に応じて:

Select(Form = "A": "B")&StatusIndex <"06"

この式は次のようになります。if(form = AまたはB)AND St​​atusIndex <"06"

注:StatusIndexが(引用したとおりに)Textであり、値を持つフィールドStatusIndexが両方のフォームに含まれていることを確認してください。そうでない場合は、ロジックを修正する必要があります。

プラス:ドキュメントは1行に1つずつ、並べ替えられた順序または時系列で表示されるため、1行にAおよびBデータを含めることはできません。次のようになります。

A
A
A
B
B
B

また

A
B
A
B
A
B
A

しかし決して

A & B
A & B
A & B
于 2010-08-17T15:52:30.560 に答える
0

複数のフォームを追加するためのトリックを次に示します。このようにして、多くの OR ステートメントを使用せずに、許可されるフォームのリストに簡単に追加できます。

@IsMember(Form; "A":"B") & StatusIndex < "06"

ただし、次に試みることは、ビュー内のすべての条件を取り除き、B フォームにステップ 1 で追加したフィールドがあると仮定して、Form = "B" を表示することです。ビュー選択式の問題。

また、ドキュメント プロパティを使用してドキュメント アイテムを検査することもできます。[ファイル] > [ドキュメント] > [プロパティ] でアクセスできます。そのビューに表示されるドキュメントに、ステップ 1 のフィールドのデータが実際にあることを 3 回確認します。

最後に、ビュー内の列のプログラム可能な名前が一意であることを確認してください。ビュー デザイナーで列ヘッダーをダブルクリックし、最後のタブ (ビーニー ハット) をクリックします。そこにある名前は通常、列に表示するフィールドと同じか、列の値が数式の場合は $number になります。安全のために、その名前を一意であることがわかっている名前に変更できます。ここでの理論は、そのプログラム名が別の列のプログラム名と一致する場合、ビューは列の値を評価せず、代わりにキャッシュされた値を使用するというものです。この場合は空白になる可能性があります。まれですが、起こります。

于 2010-05-25T19:26:47.777 に答える