1

計算フィールドをドキュメントフィールドにバインドする方法を知っています。そして、JavaScriptを使用して計算フィールドを計算する方法を知っています。しかし、どうすれば両方を行うことができますか?

計算フィールドのJavaScriptは次のとおりです。

 @Name("[ABBREVIATE]" ,@UserName());

それをdocument1.ReqNameフィールドにバインドするにはどうすればよいですか?

4

5 に答える 5

3

私は2つのフィールドを使用します:

  1. 必要な値を計算する非表示の入力フィールド(xp:inputHiddenコントロールを使用)。作曲時にComputedをエミュレートするために「デフォルト値」を使用し、Computedをエミュレートするためにコンバーターを使用します(Tommy Valandに触発されました)。
  2. 同じ計算を行う、読み取り専用に設定された表示計算フィールドまたは表示入力フィールド。おそらくこれは、getComponent( "")。getValue()を使用して非表示の入力フィールドの値を表示するように変更できますか?
于 2012-06-19T18:09:08.890 に答える
1

たぶん私はポイントを逃しますが、なぜあなたは単に次のことをしませんか?

<xp:inputText id="inputText1" value="#{document1.Reader}">
    <xp:this.defaultValue>
        <![CDATA[#{javascript:@Name("[ABBREVIATE]",@UserName());}]]>
    </xp:this.defaultValue>
</xp:inputText>

これは、ELごとにDocumentFieldにバインドされたテキストフィールドです。フィールドが空の場合、デフォルト値で計算されます。

素晴らしい!-要点を逃した。しかし、あなたはこれを試すことができます:

<xp:text escape="true" id="computedField3">
    <xp:this.value>
        <![CDATA[#{javascript: 
                    if(@IsNewDoc()){
                          document1.replaceItemValue("Reader",@Name("[ABBREVIATE]",@UserName()));
                    }
                    return document1.getItemValue("Reader");}]]>
    </xp:this.value>
</xp:text>
于 2013-08-01T11:20:27.967 に答える
0

計算フィールドの値には、高度なデータバインディングを使用し、[式言語(EL)]を選択します。使用する式は、単に「document1.ReqName」(引用符なし)です。

于 2012-06-19T17:27:52.437 に答える
0

この場合、私はバインドしません。他のすべてのコントロールをバインドします。この場合、保存アクションの前に、スクリプトを使用してドキュメントフィールドに直接手動で追加します。

だから次のようなもの:(私の仕事のコンプにないコードを許してください)

<eventhandler>
   <actionGroup>
      <script><![CDATA[#{javascript:
         doc.replaceItemValue("ReqName", @Name("[ABBREVIATE]" ,@UserName()));
      }]]><script>

      <saveDocument></saveDocument>
   </actionGroup>
</eventhandler>
于 2012-06-19T18:52:29.883 に答える
0
<xp:text escape="true" id="computedFieldTest1">
[CDATA[#{javascript:
  var userName = "Username: "+("Reader",@Name("[ABBREVIATE]",@UserName()));
  currentDocument.replaceItemValue("computedFieldTest1",userName);
  return userName;
  }]]></xp:this.value>
</xp:text>
于 2014-08-16T15:17:18.910 に答える