-
バーコードフィールドと署名フィールドがフォームに表示されないのはなぜですか?
回答:バーコードフィールドと署名フィールドは HTML やモバイルのシナリオに関係していません。これらのフィールドは、非対話操作領域として表示されます。ただし、AEM Forms Designer は署名フィールドの代わりに使用できる新しい署名手書きフィールドを提供します。また、バーコードのカスタムウィジェットを追加し、それを統合することもできます。
-
繰り返し可能なサブフォームの使用に関して制限はありますか?
回答:繰り返し可能なサブフォームには、初期カウントとして「1」以上の値を設定する必要があります。繰り返し可能なサブフォームの初期カウントとして「0」を設定することはできません。繰り返し可能なサブフォームを使用する場合、フォームのロード時に繰り返し可能なサブフォームを非表示にすることもできます。その場合は、以下の手順を実行します。
-
フォームの初期化イベントを使用して、サブフォームのプライマリインスタンスを非表示にします。例えば、フォームを初期化する際にサブフォームのプライマリインスタンスを非表示にするには、以下のようなコードを記述します。また、このコードでアプリケーションタイプを確認し、スクリプトをクライアント側でのみ実行することもできます。
if ((xfa.host.appType == "HTML 5" || xfa.host.appType == "Exchange-Pro" || xfa.host.appType == "Reader")&&(_RepeatSubform.count == 1)&&(form1.Page1.Subform1.RepeatSubform.Key.rawValue == null)) { RepeatSubform.presence = "hidden"; }
-
サブフォームのインスタンスを追加するためのスクリプトを編集用に開き、インスタンスをサブフォームスクリプトに追加するための、以下のようなコードを記述します。
このコードにより、サブフォームの非表示インスタンスが存在するかどうかが確認されます。サブフォームの非表示インスタンスが検出された場合は、そのインスタンスが削除され、サブフォームの新しいインスタンスが挿入されます。サブフォームの非表示インスタンスが検出されなかった場合は、単純にサブフォームの新しいインスタンスが挿入されます。
if (RepeatSubform.presence == "hidden") { RepeatSubform.instanceManager.insertInstance(0); RepeatSubform.instanceManager.removeInstance(1); } else { RepeatSubform.instanceManager.addInstance(1); }
-
サブフォームのインスタンスを削除するためのスクリプトを編集用に開き、サブフォームスクリプトからインスタンスを削除するための、以下のようなコードを記述します。
このコードにより、サブフォームのカウントが確認されます。サブフォームのカウントが「1」になると、サブフォームが非表示になります。その際、サブフォームが削除されることはありません。
if (RepeatSubform.instanceManager.count == 1) { RepeatSubform.presence = "hidden"; } else { RepeatSubform.instanceManager.removeInstance(RepeatSubform.instanceManager.count - 1); }
-
-
HTML5 で、一部のテキストが切り捨てられてしまう、あるいは正しく表示されないのはなぜですか?
回答:Draw または Caption のテキスト要素に十分なスペースが与えられていないとき、モバイルフォームのレンダリングでテキストが切り捨てらて表示されます。この切り捨ては AEM Forms Designer のデザインビューでも見られます。この切り捨ては PDF では対処できますが、HTML5 フォームでは対処できません。この問題を回避するには、AEM Forms Designer のデザインモードで切り捨てが発生しないよう、Draw または Caption のテキスト用に十分なスペースを用意します。
-
HTML フォームで表示されるフォントの一部がフォームをデザインする間に使用されるものと違う理由は?
回答:HTML5 フォームは、フォーム内にフォントが埋め込まれる PDF フォームと違い、フォントを埋め込みません。HTML バージョンのフォームが期待どおりに表示されるようにするには、XDP で指定したフォントがサーバー上およびクライアントのマシンで使用できることを確認してください。目的のフォントがサーバー上で使用できない場合、代替フォントが使用されます。さらに、クライアントデバイスで使用できない、フォームテンプレートのフォントを使用すると、テキストの表示にはブラウザーのデフォルトのフォントが使用されます。
-
XDP を HTML フォームにレンダリングするには、多くの中間データ構造とフォーム DOM、データ DOM、レイアウト DOM などのオブジェクトが必要になります。
PDF フォームの場合、Adobe Acrobat には中間データ構造およびオブジェクトを作成するための組み込み XTG エンジンがあります。Acrobat はレイアウトおよびスクリプトも管理します。
HTML5 フォームの場合、ブラウザーには未加工の XDP バイトで中間データ構造およびオブジェクトを作成するための組み込み XTG エンジンはありません。このため、HTML5 フォームの場合、中間構造はサーバーで生成され、クライアントに送信されます。クライアントでは、JavaScript ベースのスクリプトおよびレイアウトエンジンがこれらの中間構造を使用します。
中間構造のサイズは、元の XDP および XDP にマージされたデータのサイズによって異なります。
-
アクセス可能なテーブルには制限事項がありますか?
回答:はい。アクセス可能なテーブルには次の制限事項があります。
- 階層化テーブルとテーブル内のサブフォームはサポートされません。
- ヘッダーがサポートされているのは、テーブルの一番上の行または左の列に対してのみです。ヘッダーは中間テーブル要素に対してサポートされていません。複数行にヘッダーを適用することができます。そのような行および列がすべてテーブルの一番上の行または一番左の列に連動している場合、列ヘッダーがサポートされます。
- テーブル内のランダムな場所の Rowspan および colspan はサポートされません。
- 1 より大きい rowspan 値を持つ要素を含む行のインスタンスを動的に追加または削除することはできません。
-
サポート対象のブラウザーで HTML5 フォームを開くと、隣接して配置されたフィールドの境界線が正しく配列されないか、またはサブフォームが重なって表示されます。同じ HTML5 フォームを Forms Designer でプレビューすると、フィールドとレイアウトは正しく配列されており、サブフォームも適切な位置に表示されます。どのようにして修正できますか?
サブフォームがコンテンツをフローするように設定されており、そのサブフォームに非表示の境界線要素が含まれている場合、隣接して配置されたフィールドの境界線が正しく配置されないか、サブフォームが重なって表示されます。この問題を解決するには、対応する XDP から非表示の <border> 要素を削除するか、コメントを指定します。例えば、次の <border> 要素はコメントとしてマークされます。
<!--<border> <edge presence="hidden"/> <corner thickness="0.175mm" presence="hidden"/> </border> -->
-
HTML フォームの JavaScript 実装に関して制限事項はありますか?
回答:
- xfa.connectionSet スクリプトではサポートが制限されています。connectionSet の場合、Web サービスの server-side 起動のみがサポートされています。詳しくは、「スクリプティングのサポート」を参照してください。
- クライアント側スクリプトでは $record および $data のサポートはありません。 ただし、スクリプトが formReady、layoutReady ブロックで記述されている場合は、これらのイベントはサーバー側で発生するため、スクリプトは機能します。
- Draw Text(またはフィールドでは Caption テキスト)の変更などの Xfa Draw 要素固有のスクリプトはサポートされていません。
-
formCalc の使用に関して制限事項はありますか?
回答:formCalc スクリプトのサブセットのみが現在実装されています。詳しくは、「スクリプティングのサポート」を参照してください。
-
推奨される命名規則はありますか?また、避けるべき予約済みのキーワードはありますか?
- AEM Forms Designer では、オブジェクト(サブフォーム、テキストフィールドなど)の名前を、アンダースコア(_)で始めないようにすることをお勧めします。名前の最初にアンダースコアを使用するには、アンダースコアの後に接頭辞を追加します。例えば、_<prefix><objectname>のようにします。
- すべての HTML5 フォーム API は予約済みのキーワードです。カスタムの API/機能には、HTML5 フォーム API と異なる名前を使用します。
-
注意:
デフォルトでは、フィールドのフローティングは有効になっていません。Forms Designer を使用して、フィールドのフローティングプロパティを設定できます。
-
HTML5 フォームには予約済みのキーワードがありますか?
回答:すべての HTML5 フォーム API は予約済みのキーワードです。カスタムの API/機能については、HTML5 フォーム API と異なる名前を使用します。予約済みのキーワード以外で、アンダースコア(_)で始まるオブジェクト名を使用する場合、アンダースコアの後に一意の接頭辞を追加することをお勧めします。接頭辞を追加することで、HTML5 フォームの内部 API との競合を回避しやすくなります。例えば、_fpField1です。