今のところ、モバイルプロジェクトでは、テキスト、日付、時間、整数など、ほとんどすべてのタイプの属性を使うことができます…。4D v19 R4は、もう一つの属性を提供します。
オブジェクトの属性にご挨拶しましょう。
プロジェクトエディタ側
オブジェクトの属性が4D構造にあれば、構造セクションから公開することができます。
他の属性と同じように、 ラベルとアイコンのセクションから、アイコン、短いラベルと長いラベル、フォーマットを定義できます。
オブジェクトの属性を表示するために、2つのフォーマットがすでに用意されています。
- Human readable: デフォルトのフォーマットで、人間が読める構造化データをモバイルアプリに表示します。
- JSON Pretty Print:インデントされたJSONをモバイルアプリに表示します。
あとは、フォームセクションからリストや詳細フォームにフィールドをドロップするだけで、生成されたモバイルアプリにフィールドが表示されます。
モバイルアプリ側
このように、iOSとAndroidでは、オブジェクトの属性が適切に表示されます。
さらに進む
モバイルでの表示については、自由にカスタマイズすることができます。そのためには、次の2つの方法を利用できます。
- 計算された属性: サーバーサイドで必要な形式を作成する
- クライアントサイドで必要な値のみを表示する Swift フォーマッター
計算された属性
次の例では、計算された属性を使用して、次のオブジェクトで利用可能な関連する値のみを取得して、アドレスを表示したいと思います。
$Obj:=New object $Obj.name:="4D SAS" $Obj.address1:="66 rue de Sartrouville" $Obj.address2:="Parc les Erables, bâtiment 4" $Obj.zipCode:="78230" $Obj.city:="Le Pecq" $Obj.country:="France" $Obj.phoneNumber:="+33 1 30 53 92 00" $Obj.website:="fr.4d.com" $Ent:=ds.Employees.get(4) $Ent.Object_Attribute:=$Obj $Ent.save()
そのために、EmployeesEntityクラスを拡張しましょう。
Class extends Entity exposed Function get fullAddress->$result :Text $result:=ThisAddress.name+" - "+This.Address.address1+" - "+This.Address.zipCode+" "+This.Address.city
このように簡単です。
swift フォーマッタ
swiftフォーマッターを使うと、テキストを太字にしたり、スタイルや色を追加したりと、オブジェクトの属性を思い通りに表示するための幅が広がります。最初の Swift フォーマッタを作成するためのチュートリアルは、こちらでご覧になれます!
4Dフォーラムでフィードバックするのをためらわないでください。