私のアプリでは、従業員の選択(エンティティセットEmployeesListにバインドされている)と選択した従業員(AttAbsTypeにバインドされている)にデータを追加するエントリビューを持つマスタービューがあります。バインドされたDataSetのみを使用したXML式バインディングが可能ですか?
EmployeesListエンティティセットのフィールド「schkz」に基づいて、エントリビューでいくつかのフィールドを表示または非表示にしたいとします。現在のビューにバインドされているものとは異なるデータセットから値にアクセスできますか?
画面ロジックがある:
- 従業員の選択画面(schkz値を含む基本的なデータを読み取る)
- 詳細は、既存のエントリに新しいエントリを追加する
- エントリ・ビューを表示する表示します。ここでは、フィールドを表示/非表示にするために、選択した従業員のschkz値を使用したいと考えています。
モデル全体の画像:コンソールで Odata model
私は入力ビューにいる間、値が偶数があることをテストすることができます。
sap.ui.getCore().getModel("schkz");
しかし、詳細でビュー私は式バインディングのためにこの値を直接使用することはできません。私はこのように試してみました:
ビュー:
<Input id="__input0" visible="{= ${schkz} === 'NORM' }"/>
私は隠されたラベルに値をコピーし、そのラベルを使用しようとしても、それは動作しません:
コントローラー:
をthis.byId("_label21").setText(schkz);
ビュー:
visible="{= ${_label21} === 'NORM' }"
私は画面の値を見ることができますが、式バインディングはそれを使用して動作しません。これは、本当にコアから値にアクセスできることをテストすることです。
これは式バインディングのみを使用しても可能ですか?そうでない場合は、これを動作させる最も簡単な方法は何ですか?論理的にそこに属していなくても、AttAbsTypeSetにフィールドを追加しますか?または、コントローラーですべてのことを行い、そこにフィールドを表示/非表示にしますか?
ありがとうございました! :)
あなたのバインディングは意味をなさないので、動作しません。モデルデータの構造も投稿してください。一般に、マスタデータがロードされていることを確認できないため、詳細ビューでマスタデータをバインドすることは有効ではありません。マスターがロードされていないため、詳細ビューが直接ナビゲーションを介してロードされている場合、マスタはロードされないため、スモールデバイスにロードされない可能性があります。 – matbtt
私はちょっと曇っていると思うのですが、私はバックエンド、今は詳細ビューで使用したいのですが、式バインディングについてはビューでは表示されません。 最初に従業員を選択せずに[詳細]画面に移動することは不可能です。したがって、私たちは常にschkzの価値を持っています。 ビューに表示するには、どこに貼り付ける必要がありますか?詳細ビューにバインドされているエンティティセットに追加する唯一のオプションはありますか? – Blackadder
記載のとおり:あなたのデータの例を投稿してください。シュクツとは何ですか?それはモデル名か財産ですか?あなたの例からは明らかではありませんか? – matbtt