フォームへの事前入力

フォームに事前入力すると、レンダリングされるフォーム内で、データがユーザーに表示されます。例えば、ユーザー名とパスワードを使用してユーザーが Web サイトにログインするとします。認証に成功すると、カスタムアプリケーションがユーザー情報についてデータベースに対してクエリーを実行します。次に、データがフォームにマージされ、フォームがユーザーに表示されます。その結果、フォーム内に個人設定されたデータが表示されます。

フォームへの事前入力には、次のような利点があります。

  • ユーザーがフォーム内にカスタムデータを表示できる

  • ユーザーがフォームに入力する作業を削減できる

  • データを配置する場所を制御できるため、データの整合性を維持できる

    フォームに事前入力できるのは、次の 2 つの XML データソースです。

  • XDP データソース。これは、XFA 構文に準拠した XML(または Acrobat を使用して作成されたフォームに事前入力するための XFDF データ)です。

  • フォームのフィールド名に一致する名前と値のペアを含む、任意の XML データソース。

    XML 要素は、事前入力するフォームフィールドごとに存在している必要があります。XML 要素名は、フィールド名と一致している必要があります。XML 要素がフォームフィールドに対応していない場合、または XML 要素名がフィールド名に一致していない場合、XML 要素は無視されます。すべての XML 要素を指定していれば、XML 要素を表示する順序どおりとする必要はありません。

    既にデータを含んでいるフォームに事前入力する際は、XML データソース内で既に表示されているデータを指定します。10 個のフィールドを含むフォームで、そのうち 4 つのフィールドにデータがあるとします。次に、残りの 6 つのフィールドに事前入力するとします。この状況では、フォームへの事前入力に使用される XML データソースで、10 個の XML 要素を指定する必要があります。6 つの要素のみを指定する場合、元の 4 つのフィールドは空になります。

    例えば、ある確認フォームに事前入力するには、3 つのフォームフィールドに一致する 3 つの XML 要素を含む XML データソースを作成する必要があります。このフォームには、FirstNameLastName および Amount の 3 つのフィールドが含まれます。最初の手順は、フォームデザインにあるフィールドに一致する XML 要素を含む XML データソースを作成することです。これは次の XML コードのようになります。

    <Untitled> 
        <FirstName> 
        <LastName> 
        <Amount> 
    </Untitled>

    次の手順では、次の XML コードに示すように、XML 要素にデータ値を割り当てます。

    <Untitled> 
        <FirstName>Jerry</FirstName> 
        <LastName>Johnson</LastName> 
        <Amount>250000</Amount> 
    </Untitled>

    この XML データソースを確認フォームに事前入力し、フォームをレンダリングすると、XML 要素に割り当てたデータ値が表示されます。次の図のようにデータ値が表示されます。

流動レイアウトのフォームへの事前入力

流動レイアウトのフォームは、不確定な量のデータをユーザーに表示する際に便利です。このようなフォームのレイアウトは、マージされるデータの量に応じて自動的に調整されます。したがって、固定レイアウトのフォームとは異なり、ページ数を事前に決める必要がありません。

通常、流動レイアウトのフォームには、実行中に取得されるデータが入力されます。その結果、メモリ内 XML データソースを作成し、そこにデータを直接配置して、フォームに事前入力することができます。

次の図は、流動レイアウトの発注書フォームの例を示しています。

フルサイズのグラフィックを表示
A.
フォームの動的な部分を表します

B.
フォームのヘッダデータを表します

注意: フォームには、エンタープライズデータベースや外部アプリケーションなど、他のソースからのデータを事前入力することもできます。

データサブグループについて

フォームへの事前入力には XML データソースが使用されます。流動レイアウトのフォームへの事前入力に使用される XML データソースには、繰り返しデータサブグループが含まれます。次の XML コードは、発注書フォームへの事前入力に使用される XML データソースを示しています。

    <header>  
        <!-- XML elements used to prepopulate non-repeating fields such as address 
        <!and city  
        <txtPONum>8745236985</txtPONum>  
        <dtmDate>2004-02-08</dtmDate>  
        <txtOrderedByCompanyName>Any Company Name</txtOrderedByCompanyName>  
        <txtOrderedByAddress>555, Any Blvd.</txtOrderedByAddress>  
        <txtOrderedByCity>Any City</txtOrderedByCity>  
        <txtOrderedByStateProv>ST</txtOrderedByStateProv>  
        <txtOrderedByZipCode>12345</txtOrderedByZipCode>  
        <txtOrderedByCountry>Any Country</txtOrderedByCountry>  
        <txtOrderedByPhone>(123) 456-7890</txtOrderedByPhone>  
        <txtOrderedByFax>(123) 456-7899</txtOrderedByFax>  
        <txtOrderedByContactName>Contact Name</txtOrderedByContactName>  
        <txtDeliverToCompanyName>Any Company Name</txtDeliverToCompanyName>  
        <txtDeliverToAddress>7895, Any Street</txtDeliverToAddress>  
        <txtDeliverToCity>Any City</txtDeliverToCity>  
        <txtDeliverToStateProv>ST</txtDeliverToStateProv>  
        <txtDeliverToZipCode>12346</txtDeliverToZipCode>  
        <txtDeliverToCountry>Any Country</txtDeliverToCountry>  
        <txtDeliverToPhone>(123) 456-7891</txtDeliverToPhone>  
        <txtDeliverToFax>(123) 456-7899</txtDeliverToFax>  
        <txtDeliverToContactName>Contact Name</txtDeliverToContactName>  
    </header>  
    <detail>  
        <!-- A data subgroup that contains information about the monitor> 
        <txtPartNum>00010-100</txtPartNum>  
        <txtDescription>Monitor</txtDescription>  
        <numQty>1</numQty>  
        <numUnitPrice>350.00</numUnitPrice>  
    </detail>  
    <detail>  
        <!-- A data subgroup that contains information about the desk lamp> 
        <txtPartNum>00010-200</txtPartNum>  
        <txtDescription>Desk lamps</txtDescription>  
        <numQty>3</numQty>  
        <numUnitPrice>55.00</numUnitPrice>  
    </detail>  
    <detail> 
        <!-- A data subgroup that contains information about the Phone> 
            <txtPartNum>00025-275</txtPartNum>  
            <txtDescription>Phone</txtDescription>  
            <numQty>5</numQty>  
            <numUnitPrice>85.00</numUnitPrice>  
    </detail>  
    <detail> 
        <!-- A data subgroup that contains information about the address book> 
        <txtPartNum>00300-896</txtPartNum>  
        <txtDescription>Address book</txtDescription>  
        <numQty>2</numQty>  
        <numUnitPrice>15.00</numUnitPrice>  
    </detail>

各データサブグループには、次の情報に対応する 4 つの XML 要素が含まれます。

  • アイテムの品番

  • アイテムの説明

  • アイテムの数量

  • 単価

    データサブグループの親 XML 要素の名前は、フォームデザイン内のサブフォームの名前に一致する必要があります。例えば、前の図では、データサブグループの親 XML 要素の名前は detail です。これは、発注書フォームの基になっているフォームデザインにあるサブフォームの名前に対応します。データサブグループの親 XML 要素の名前とサブフォームが一致しない場合は、サーバー側のフォームは事前入力されません。

    各データサブグループには、サブフォームのフィールド名に一致する XML 要素が含まれている必要があります。フォームデザイン内の detail サブフォームには、次のフィールドが含まれています。

  • txtPartNum

  • txtDescription

  • numQty

  • numUnitPrice