2016-11-14 6 views
1

SAPUI5 splitAppアプリケーションを使用して、単一のクライアントの情報を複数の異なる機会に収集し、データベースに挿入することができます。したがって、データベーステーブルは次のようになります。 clients informationJSUIデータをSAPUI5 XMLビューのテーブルに表示する方法

私はので、私は解決策provided hereの助けを借りて、ネストされたJSONを作成するために、両方のテーブルを使用しているクライアントの連絡先の詳細を保持している別のテーブルを持っています。私のJSONはこのように見えます。

{ 
 
    "contacts": [{ 
 
    "clientno": "100", 
 
    "firstname": "Joe", 
 
    "secondname": "John", 
 
    "note": "Knocking vehicle", 
 
    "email": "[email protected]", 
 

 
    "feed": [{ 
 
     "clientno": "100", 
 
     "amount": "8745", 
 
     "reason": "Day 1 of xx" 
 
    }, { 
 
     "clientno": "100", 
 
     "amount": "7823", 
 
     "reason": "Day 2 of xx" 
 

 
    }, { 
 
     "clientno": "100", 
 
     "amount": "9000", 
 
     "reason": "Day 3 of xx" 
 
    }] 
 
    }, { 
 
    "clientno": "104", 
 
    "firstname": "Gatlin", 
 
    "secondname": "Joe", 
 
    "note": "Overspeeding", 
 
    "email": "[email protected]", 
 

 
    "feed": [{ 
 
     "clientno": "104", 
 
     "amount": "4556", 
 
     "reason": "Day 1 of xx" 
 

 
    }, { 
 
     "clientno": "104", 
 
     "amount": "9000", 
 
     "reason": "Day 2 of xx" 
 
    }] 
 
    }] 
 
}

FIRSTNAME、secondnameとclientnoは、マスター・ビューと詳細ビューの残りの部分に表示されます。詳細ビューでは、各クライアントのすべてのフィードを表示するテーブルがあります。テーブルの詳細ビューに次のコードがありますが、各クライアントの最初のフィードのみが表示されています。

<Table> 
 
    <columns> 
 
    <Column> 
 
     <header> 
 
     <Label text="Amount" /> 
 
     </header> 
 
    </Column> 
 
    <Column minScreenWidth="Tablet" demandPopin="true" hAlign="Center"> 
 
     <header> 
 
     <Label text="Reason" /> 
 
     </header> 
 
    </Column> 
 

 
    </columns> 
 
    <ColumnListItem> 
 
    <cells> 
 
     <Text text="{feed/0/amount}" /> 
 
     <Text text="{feed/0/reason}" /> 
 
    </cells> 
 
    </ColumnListItem> 
 
</Table>

親切に、私は、例えば、各クライアントのすべてのフィードを表示するのですか、クライアント100用のテーブルが3行を持つことになります。私は1つしか持っていない。私は何が欠けていますか?助けてください。

私はいくつかの過去の投稿を行っており、探しているもので1つを得ることができません。いくつかの他のプラスthisthisand this too

おかげで、

ドミニク

答えて

0

あなたはあなたのビューでバインドを変更し、選択した顧客に応じて、バインディングコンテキストを設定する必要があります。

まず、集約バインディングを変更します。これは、フィード配列をデータソースとして使用するバインディングを示します。ただし、オブジェクトにはフィードプロパティがあり、バインディングコンテキストがないと宣言しているので、これは何も表示されませんUI5はどこを見つけるかわかりません。

<Table id="feeds" items="{feed}"> 

第2:プロパティバインディングを変更します。ここでは、表示するフィードプロパティを宣言します。 UI5は自動的にそれらがフィード配列内に存在することがわかります。

<Text text="{amount}" /> 
<Text text="{reason}" /> 

第3:対応する顧客にバインディングコンテキストを設定します。バインディング・コンテキストはデータへのポインタと考えることができます。あなたの場合、バインディング・コンテキストは次のようなものになります:contacts/0(最初の顧客を指します)。バインディングコンテキストにはスラッシュが付いていますが、これは非常に重要です。 UI5では、連絡先の最初のエントリのコンテキストでのフィードが表示されます。 JSONモデルと構文を結合について

var table = this.byId("feeds"); 
table.bindElement("/contacts/0"); 

更なる詳細は、hereを見つけることができます。

関連する問題