1

私は Lotus Notes プログラミングの初心者であり、あなたのアドバイスと助けが必要です。

私のメインフォームにはtablewith8 rowsとが含まれてい2 columnsます。(あります16 cells) すべての各セルには がありnumeric fieldます。私のフィールド名は次のとおりです。

txt_n1txt_i1(1 行目)

txt_n2およびtxt_i2(2 列目用)

....

txt_n8txt_i8(8行目)

私がやりたいことは次のとおりです。

vwMarketing1列だけで呼び出されるビューがあります。このビューにそれらのドキュメントのみを表示したい。セルに等しい値が含まれる行が少なくとも 1 つ以上ある場合。

したがって、 txt_n4 = txt_i4 => OK としましょう

row(k) (k=1..8) : セル 1 の値が 5 でセル 2 の値が 5 の場合 => OK。

このプロパティには複数の行が存在する可能性があります。重要なのは、少なくとも 1 つ存在し、値が null にならないようにすることです。私はかなり明確であることを望みました、ありがとう!

PS:実際には、数式ステートメントを列に入れたいので、OKの場合=>「A」、そうでない場合=>「」(ビュープロパティでチェックしましたDon't show empty categories:)

4

2 に答える 2

2
  1. ビューに少量のドキュメントがある場合は、提案されたように、選択式を使用して間違った状態のドキュメントを除外します。
  2. 計算済みアイテム/フラグをドキュメントに追加できます。フィールドは、ドキュメントをビューに表示するかどうかを計算します。そうすれば、パフォーマンスの問題は発生しません。すなわち

しかし、必要なコードはそのように見えるはずです(ドキュメントがビューに表示されても問題ないかどうかを確認します)。パフォーマンスを向上させるため) 次に Select youritem = 1

   _res := 0;
    @For(i:=1;i<=8;i:=i+1;
        _post := @Text(i);
        _txt_n := @GetField("txt_n"+_post);
        _txt_i := @Text(@GetField("txt_i"+_post));
        @If(    (_txt_n=_txt_i) & (_txt_n!=""); 
                @Do(    _res := 1; i:=9);
                0
        )
    );
    _res
于 2013-02-25T11:51:22.253 に答える
0

私はそれを少し違った方法で解決します:

  1. 'DisplayInView' (または同様のもの) と呼ばれる非表示のテキスト フィールドをフォームに作成します。
  2. ビューの選択を変更します: SELECT DisplayInView="Yes"
  3. 以下のコードをフォームの PostSave イベントに追加します。

    Dim thisdoc As NotesDocument
    Dim isSame As Boolean
    isSame = False
    Set thisdoc = source.Document
    '*** Loop through all fields in document and compare the field pairs
    Forall i In thisdoc.Items
        If Left(i.Name,5) = "txt_n" Then
            If i.Text = thisdoc.GetItemValue( Replace(i.Name,"txt_n","txt_i") )(0) Then
                isSame = True
                Exit Forall
            End If
        End If
    End Forall
    If isSame Then
        Call doc.ReplaceItemValue("DisplayInView","Yes")
        Call doc.Save(True,False)
    End If
    

私はそれをテストしていませんが、うまくいくはずです。

于 2013-02-25T22:24:47.583 に答える