SAPUI5のスマートフィールドとは

SmartFieldコントロールは、ODataサービスのエンティティ関係モデル、データ型、サービス機能、および注釈を表すメタデータを解釈し底层内部控件て、アプリケーションの開発に必要なコードの量を自動的に生成および削減します。場合によっては、ODataエンティティはコントロールのバインディングコンテキストから派生します。コントロールで変更または表示されるODataエンティティのプロパティは、コントロールのvalueプロパティから取得されます。

重要:SmartFieldは、すべてのSAPUI5スマートコントロールと同様に、ODataサービスからメタデータと注釈を取得して分析します。ODataメタデータはそのメインAPIです。これらのODataサービスは、SAPUI5フレームワークの一部ではなく、通常、アプリケーションのバックエンド開発者によって維持されます。

SmartFieldは、時間の経過とともに進化し、新しい機能を獲得できます。これは、この変更を定義するアノテーションがバックエンドメタデータに残っている場合、その動作または機能が変更される可能性があることを意味します。新しい機能を活用するには、SAPUI5アプリケーションがバックエンドメタデータに適応できる必要があります。したがって、SAPは、開発者がアプリケーションのメタデータを完全に制御できる場合にのみSmartFieldを使用することをお勧めします。

アクセシビリティ

相互運用性とアクセシビリティの理由から、sap.m.LabelコントロールはSmartFieldの内部構造を認識しないため、SmartFieldコントロールはsap.m.Labelコントロールではなくsap.ui.comp.smartfield.SmartLabelコントロールでマークする必要があります。コントロール。SmartFieldコントロールがスマートコンテナコントロール(SmartFormコントロールなど)でレンダリングされる場合、SmartLabelコントロールが自動的に生成され、アプリケーション側で必要なコードの量が削減されます。ただし、その他の場合、SmartFieldを単独で使用するか、SimpleFormコントロールなどのスマートコンテナコントロールの外部で使用すると、SmartLabelコントロールは自動的に生成されません。sap.ui.comp.smartfield.SmartLabelはプライベート/内部コントロールですが、アプリケーションでは、SmartFieldコントロールにラベルを付けるための次の基本的な使用法が許可されています。

一例:

<sap.ui.comp.smartfield.SmartLabel labelFor="IDProduct"/>
<sap.ui.comp.smartfield.SmartField id="IDProduct" value="{ProductId}"/>

SmartLabelコントロールを単独で使用することはお勧めしません。可視性の自動処理を除いて、基本的な使用法のみが許可されます。単独で使用する場合、アプリケーションロジックはラベルの可視性を処理する必要があります。

FieldControl

フィールドが必須、非表示、または読み取り専用/編集可能モードのいずれであるかを定義します。

エンティティデータモデル(EDM)プロパティは、OData V4モデルのcom.sap.vocabularies.Common.v1.FieldControlアノテーション、またはOData V2モデルのsap:field-controlアノテーションを使用して、別のプロパティへのバインディングを提供することで動的にアノテーションを付けることができます。EDMパスタイプがEdm.Byteのプロパティで、データモデルの値は次のとおりです。

  • 0:フィールドが非表示であることを示します。注:非表示はN / Aの同義語であり、非推奨です。UIのフィールドを静的に非表示にするために使用せず、代わりに静的なFieldControlアノテーションを使用してください。

  • 1:フィールドが読み取り専用モードであり、その値を変更できないことを示します。注:EDMプロパティに読み取り専用として静的に注釈を付けるには、代わりにOrg.OData.Core.V1.Computed注釈を使用します。

  • 3:フィールドが編集可能でオプションであることを示します(デフォルト)。

  • 7:フィールドがビジネスの観点から必須であることを示します。この値は、EDM属性の値の範囲に制限があることを意味するものではありません。たとえば、値の範囲の使用を制限するには、null値を除外するために値falseの標準タイプファセットNullableを使用するか、Org.OData.Validation.V1語彙からの用語を使用する必要があります。

おすすめ

転載: blog.csdn.net/i042416/article/details/123728870