Working with Tables

Working with Tables
Working with Tables
B
ack in Chapter 8 we talked about creating tables in Acrobat. Here we
are again talking about tables but now we look at tables as they relate
to LiveCycle Designer ES. Because we have two chapters devoted to
tables, you should get an idea for the level of significance we give to adding
tables on forms.
To substantiate our belief that tables are an important part of creating forms,
you need only look at Designer and see that the program has a special tool
for creating and formatting tables. As a matter of fact, the table editor in
Designer is almost on par with the table editors you find in programs like
Adobe InDesign and Microsoft Word.
Tables really shine when we create dynamic forms and flow data into a table
where we can watch Designer spawn new rows as the data are introduced. In
Chapter 8 we talked about static tables in Acrobat and in Chapter 19 we talked
about spawning new pages from templates that contain tables. However, the
one thing Acrobat cannot do is create a form that dynamically extends a table
design to accommodate data, either imported into a form, or by extending a
user’s need to spawn more rows or columns to add additional data.
The wonderful thing about the dynamic characteristics of an XML form is
that the table expansion opportunities you provide to form recipients can be
handled by both the Adobe Reader user and the Acrobat user when adding
buttons to spawn new table rows.
In this chapter we look at designing both static tables and dynamic tables
and how to work with table data.
833
IN THIS CHAPTER
Creating static and dynamic
tables
Using XML data with tables
Adding sections to tables
Part VIII
Creating Dynamic Forms with LiveCycle Designer
Creating Tables in LiveCycle Designer ES
Let’s start talking about tables with a basic understanding for static versus dynamic tables. If you
remember the Workshop Summary form we used in Chapter 19, we created a static table in
Acrobat. A modified version of the table from Chapter 19 when populated with data appears as
you see in Figure 27.1. On this form we use a single table instead of the two tables we used in
Chapter 19.
FIGURE 27.1
A static table created in Acrobat with data
Let’s review this form again. The data you see in the table on the form in Figure 27.1 was summarized from other form data. The data could be from a database file you create in another program
or in Acrobat sending data from one form to another form as we did in Chapter 19. When data are
imported into a PDF form the table displays the data records and fields of data.
When we designed the form shown in Figure 27.1 in Acrobat we created the table to hold up to 15
records of data. Only eight records were imported into the form. If we have more than 15 records
of data while using an Acrobat Form we need to create a template and spawn pages from a template to create additional data fields to hold the imported data or forget about any records in excess
of 15. This means you need to anticipate ahead of time how much data you’ll import on a form
that you create in Acrobat.
As a comparison, take a look at Figure 27.2. This form was created in LiveCycle Designer. Notice
that the form appears as though it can hold only one record of data.
834
Working with Tables
FIGURE 27.2
A form having a dynamic table that was created in LiveCycle Designer
Using our Designer form when we import the same data into the form, the table on the form expands
to accommodate all the records. Our new design for the form can hold up to 12 records on the form.
If we use fewer than 12 records of data, the table conforms precisely to the amount of data we
import, as shown in Figure 27.3. If we had substantially more data, the table could overflow to additional pages that are dynamically created to accommodate the data. This would require using a subform and constructing the file a little differently than the example file we use in this chapter.
We limit our discussion on tables in this chapter to tables used for a single page form
without getting into flowing data across multiple pages. For more on tables and adding more dynamic features that enable you to create new pages with tables, see Chapter 28.
CROSS-REF
If you worked through some of the exercises in Chapter 19 you know that we used many
JavaScripts to calculate the data and send summary data to a slave document. The scripts weren’t
easy and they were quite complicated.
Now here’s the nice surprise you find with creating a form like Figure 27.2 and importing the data
resulting in a form like Figure 27.3. There are absolutely no programming steps you have to take
to produce similar results. Everything is handled for you in the wonderful Table Assistant wizard.
No FormCalc and no JavaScript code are necessary for you to write to create a dynamic table like
you see in Figure 27.3.
835
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.3
When data are imported, the table expands to accommodate all records.
Creating a static table in Designer
We’ve added a little drama in this chapter to keep you on the edge and wanting to turn the page to
read on. Just when you thought you were going to continue with Scene One, the authors decide to
introduce a new scene. We’re going to postpone Scene One regarding creating dynamic tables in
Designer and begin by talking about a design similar to Figure 27.1 that is a flat form with no
dynamic characteristics.
The reason we bother talking about static tables is that you may need to use design elements from
other applications to create a form—something on the order of using a PDF background. If we
open the form shown in Figure 27.1 in Designer, we cannot duplicate the background design if we
want to dynamically create fields. A flat form like this requires you to set up a table very similar to
the way you would create a table in Acrobat.
In addition to having no options for editing a background design, when you use a PDF background in Designer you cannot use the Insert Table command or the Table Assistant. Designer
forces you to use manual methods for adding fields to a form when using backgrounds. If you have
to adhere to a particular design created in another application and import the layout into Designer,
you need to create a static table.
Fortunately Designer doesn’t have the issues you find in Acrobat regarding field naming when you
duplicate fields. If you remember some of the things we talked about in Chapter 8 regarding creating tables in Acrobat, you may remember how we had to copy fields to a temporary document,
836
Working with Tables
rename the fields, and paste different columns on our form using the fields we renamed in the
temporary document. In Designer, each field you duplicate is automatically renamed in the
Hierarchy palette. With this single difference for field naming, you’ll find it easier to manually
construct tables in Designer.
To see how we create a table that uses a PDF background, do the following.
ON the CD-ROM
For the steps that follow we use the workshopSummaryBackground.pdf file from
the Chapter27 folder on the book’s CD-ROM.
STEPS: Creating a Static Table in LiveCycle Designer ES
1. Open a PDF file with a table design in Designer. For this example we use the workshopSummaryBackground.pdf form from the book’s CD-ROM. Choose File ➪ Open or click
the Open tool, select the form to open, and click Open to display the New Form
Assistant. In the New Form Assistant wizard click the Create an Interactive Form with
Fixed Pages radio button as shown in Figure 27.4 and click Next.
2. Disable the Return Setup options. Uncheck the Add an email button and Add a print
button in the second pane in the wizard as shown in Figure 27.5. Click Finish to open
the document in Designer.
FIGURE 27.4
Leave the default radio button selection at Create an Interactive Form with Fixed Pages
and click Next.
837
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.5
Uncheck the two check boxes and click Finish to open the form in Designer.
3. Examine the Table menu. Open the Table menu and notice that the Insert Table command is grayed out. If you open the Table ➪ Insert menu, all the submenu commands are
also grayed out as shown in Figure 27.6. Because we use a PDF background for this form,
we do not have access to the Table commands in Designer. Notice also on Figure 27.6
that we hid the panels on the left side of the Designer window to make room for a larger
view of our form and we have the Standard Library palette in view and ready to drag
fields from the palette to the form.
4. Add a field to the form. We start populating this form by dragging a text field from the
Standard Library palette and positioning the field in the first row and the first column of
our table. In our example the field is the first workshop field. Size the field by dragging the
corner handles so the field fits vertically and horizontally within the first row/first column
in the table.
FIGURE 27.6
When using PDF backgrounds all the Table commands are not accessible.
838
Working with Tables
5. Format the field. We open the Hierarchy palette and click the default name, then type a
field name for this first field. In our example we use workshop for the field name. We
open the Object palette and choose None for the Appearance as shown in Figure 27.7.
6. Close the right panels. Because we have one field on the page with the formatting we’ll
use for the remaining fields, we can dismiss all the right panels from view. Click the vertical separator bar to collapse the panels.
7. Duplicate the field. Because we have this field formatted we can easily duplicate the field
on our table for the field that we need added to the first row and second column. Click
the first field, and then drag to the right to the spot where you want the new field added.
Press Ctrl and release the mouse button. Size the field horizontally to fit the design.
8. Rename the field. The default name added by Designer is workshop[1]. Click the name
and type speaker.
9. Duplicate the remaining fields for the first row. Continue with drag, position, and
press Ctrl on a selected field to duplicate the field. As each field is duplicated, size the
fields horizontally to fit the design. We’ll worry about the vertical height later after creating all fields for the first row. For the remaining fields following the speaker field, we
name the fields: email, sessionQuality, and speakerQuality as you can see in the Hierarchy
palette in Figure 27.8.
10. Size the first field to the exact vertical height and position on the page.
11. Select all the fields. Be sure to drag the cursor around all the fields. Remember, in
Designer you need to completely surround the fields with a marquee to select them.
FIGURE 27.7
Drag a text field from the Standard Library palette, change the field name in the
Hierarchy palette, and set the Appearance properties to None.
839
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
12. Size the fields to the same height as the first field in the row. Be certain the first field
is your anchor field appearing with highlighted corner handles and choose Layout ➪
Make Same Size ➪ Height as shown in Figure 27.8.
13. Align the fields. With the fields still selected and the first field in the row highlighted
with larger handles, choose Layout ➪ Align ➪ Top. Alternately, if the Layout toolbar is
open you can click the Align Top tool.
14. Copy multiple fields. With the fields selected choose Edit ➪ Copy Multiple. The Copy
Multiple dialog box opens as shown in Figure 27.9. In the Copy Multiple dialog box click
the Place Below radio button and type the number of copies you want to place. On our
example form we need nine copies. Type 9 for the number of copies, click the No Horizontal
Movement radio button, and click OK to create the remaining nine rows of fields.
FIGURE 27.8
Select the fields and choose Layout ➪ Make Same Size ➪ Height.
FIGURE 27.9
Chose Edit ➪ Copy Multiple and set the attributes for multiple copies in the Copy
Multiple dialog box.
840
Working with Tables
15. Examine the form. Notice in the Hierarchy palette all the fields have been named with
different field names as you can see in Figure 27.10. Also notice that the fields on the
table fit nicely on the design without you having to move the fields.
FIGURE 27.10
The Hierarchy palette lists the fields as an array.
16. Save the form. Choose File ➪ Save or click the Save tool. In the Save As dialog box that
opens, notice that you only have the option to save the form as a Static Form. Type a
name for the form and click Save.
CROSS-REF
For more information on duplicating fields, setting field attributes, and sizing/aligning fields in LiveCycle Designer, see Chapter 24.
We won’t bother populating the form because a much better solution for us is to create a dynamic
form. We demonstrate the method here for creating a static form with a table to show you how to
do it in the event you must use a PDF background to preserve the design of a form created in
another application.
Things to note when comparing the methods for adding field objects in a table in Designer compared to Acrobat include the following:
n Field naming. In Acrobat you need to name fields in tables with unique field names.
Designer automatically creates an array of field names when you duplicate a field.
841
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
Designer File Naming Conventions
I
n Acrobat we add fields to a form and name the fields with unique field names or we use hierarchical names such as item.0, item.1, item.2, and so on. When you duplicate names in Designer,
Designer creates an array of field names such as item[0], item[1], item[2], etc. The names in Designer
are not really unique field names but rather each instance of a field is treated as a unique field unless
the binding for the fields is Global. When the binding is Global, the fields are treated the same way
Acrobat treats the field names. The only difference is that the fields remain as separate instances
unless you instruct Designer to make them different.
When you drag a field from a library palette to a form, Designer treats the fields as truly unique,
much as you would add new field objects in Acrobat. However, if you add fields from a custom
group, like the row fields we use as an example in this chapter, Designer creates an array.
n Populating a table. In Acrobat you use the Place Multiple Fields command and you
need to copy the total number of fields pertaining to the rows (or columns) you want to
duplicate. For example, if you have 10 rows as in our example, type 10 in the Create
Multiple Copies of Fields dialog box. In Designer, specify the copies while excluding the
selected fields. For example, when you have one row of selected fields, as in our example
form, type 9 for the number of copies in the Copy Multiple dialog box.
n Sizing and Aligning fields. In Acrobat you size and align fields using a context menu
command. In Designer you use the Layout tools in the Layout toolbar or use menu
commands.
n Duplicating fields. In Acrobat you can duplicate fields using the Ctrl (or Option on the
Mac) and click + drag (or use copy/paste keyboard shortcuts) a field or fields to duplicate
them. All the duplicated fields have the same field name. You need to edit the field names
in the Fields panel in Form Editing Mode, choose Rename Field from a menu command
or context menu, or edit the field names in the field Properties window. In Designer,
when you duplicate a field or fields by using either drag, position, Ctrl or copy/paste, the
fields are automatically renamed.
Because of the renaming feature, manually creating tables is a much faster task in Designer than in
Acrobat. The one advantage we believe Acrobat has over Designer is the use of a context menu to
align and size fields. However, this is a minor issue because you can easily undock the Layout toolbar and keep it in a handy area for accessing the tools when aligning, sizing, and distributing
fields.
CROSS-REF
842
For more information on designing tables in Acrobat, populating tables with fields,
and setting field properties, see Chapter 8.
Working with Tables
Creating static tables using Insert Table
If you want to start from scratch and create a table in Designer, you can use the Insert Table command. When you choose Table ➪ Insert Table the Insert table dialog box opens. To create a simple
table leave the radio button choice at the default as shown in Figure 27.11.
FIGURE 27.11
Choose table ➪ Insert Table to open the Insert Table dialog box.
Identify the number of columns and rows you want to appear in the table and if you want a header
(and/or footer) row make the choice(s) and click OK. In Figure 27.12 we added six columns and
15 rows and checked the Include Header Row in Table check box in the Insert Table dialog box.
We then resized the columns by dragging the separator lines to set the cell sizes for each column
and added a black solid fill in the Border palette for the header row.
You can format the table appearance by using the Border palette and choose from options for fills
and border colors. In Figure 27.12 we chose Edit Individually for our Header row because we
want a black border at the top of the table and white borders on the right and left sides and bottom
of the header row.
When you design a table it’s a good idea to periodically look over a PDF Preview in case you miss
assigning colors and formatting cell appearances. In Figure 27.13 we clicked the PDF Preview tab
and when the file appeared as a PDF Preview in Acrobat we noticed the type in the header row
wasn’t visible. Therefore we needed to return to Design View and set the type color to white in the
Font palette. Frequent checks like this can help you make your design tweaks to get the appearances right before you start working with field objects.
You adjust column widths by moving the vertical lines left and right. Text for the table is handled
by opening the Window ➪ Font palette. In our example we want the type for the header row to be
white against the black background. You can select the text for the first row in the Hierarchy palette and open the drop-down menu on a selection (for example, beside the A character) in the Font
palette and choose a color from the pop-up color palette shown in Figure 27.12.
843
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGRUE 27.12
Use the Border palette to change table cell fills and border colors.
FIGURE 27.13
Frequently look at a PDF Preview as you design a table to be certain the appearance is correct.
844
Working with Tables
So far the table design aspect of creating a static table is straightforward and easy. The next step is
where you run into some problems. When data fields are added to a table, you need to individually
drag the first row of fields to the table cells. For example, if you want to create a text field, open the
Standard Library palette and drag a text field to the first cell in the first row. The field fits perfectly
within the cell so you don’t need to worry about sizing fields. You do have to adjust the field properties in the Object and Layout palettes. After you format the first row, you still need to manually add
data cells to the table. Designer won’t let you use the copy multiple command to populate the table.
The easiest way create a static table in Designer is to create only two rows (assuming you want a
header row) in the Insert Table dialog box. Set up the header appearance and format the first row
of data cells by adding text fields. Select all the data cells and drag them to the My Favorites in the
Object Library. Designer prompts you to name the new Library item so type a name and click OK
in the Add Library Object dialog box.
CROSS-REF
For more information on creating custom library objects, see Chapter 24.
Once you have a complete row of fields in the My Favorites Library palette, drag a new row below
the first row in the table. Designer won’t let you use the Copy Multiple command so you need to
drag each row individually; however, as the fields are added to your form, Designer renames the
fields as shown in Figure 27.14.
We’re not going to go into much more detail on creating static tables using the method described
here because the method we used in the steps “Creating a Static Table in LiveCycle Designer” is a
much faster solution.
Why does the Table Assistant exist? This may be your question if our claim is that Inserting a table
for a number of rows and columns designed for handling data isn’t the best way to approach the
job. The answer is that using the Insert Table dialog box and choosing the Create Table Using
Assistant option is where Designer excels at creating dynamic tables.
Working with dynamic tables
Dynamic tables can be designed for many uses and a few different models. For one model you can
create a table that dynamically creates rows and/or columns on a single page, or for another model
you can create tables that flow to additional pages along with any headers or footers assigned to the
table.
In Figure 27.1 we’re working with a known issue. The form is a summary of speaker evaluations at
a conference event. The conference promoters know that there are a maximum of 12 workshops
that will be held at any given event. No conference will have more than 12 workshop sessions.
Since we can fit all 12 records of data on a single page, there is no need to set up the form to flow
to additional pages. The dynamic aspects of the form create from one to 12 rows of data depending
on the number of workshops held at any given event.
845
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.14
As new rows of fields are added to the form, the Hierarchy palette shows the fields as an array.
For other forms we may not have a known issue as it relates to the amount of data introduced on a
form. If, for example, the conference promoters hold an event and collect evaluations data they
want to aggregate on a form and the conference attendance varies between 100 and 500, the design
of the form would be quite different. In this example we would create a form that dynamically
spawns new pages as the data are introduced into the form.
For our immediate purposes in regard to using the table features in Designer, we’ll
stick to designing tables on single page forms. For information related to flowing
data across multiple pages see Chapter 28 where we talk about using subforms.
CROSS-REF
Designing the form
When we create a dynamic table like the original design shown earlier in Figure 27.2 and the populated form shown in Figure 27.3 we start with a blank new form in Designer we create by using
the New Form Assistant. We can add graphic objects to the design using the Image tool from the
Standard Library palette, but we cannot use a PDF background for the design of the table.
CROSS-REF
846
For more information on creating new documents using the New Form Assistant,
see Chapter 23.
Working with Tables
Check out the CD-ROM and look in the Chapter27 folder for the workshopSummaryLCD.pdf form. We use this form to explain the design we create in LiveCycle
Designer. Additionally we use the workshopSummaryLCD_data.xmI file to create the fields in
Designer.
ON the CD-ROM
We created a new form U.S. letter size, landscape, and dismissed the e-mail tool and the print button in the New Form Assistant. We started on this form on the master page where we added an
Image field to the form and imported the graphic in the top-left corner and added some text in the
top-right corner. We also added two fields with captions in the top-right corner. One of the fields
was Drop-down list where we added city names to the list in the List Items area in the Object palette Field panel as shown in Figure 27.15.
FIGURE 27.15
The first order of business for designing the form was adding elements in the Master Pages tab.
After adding a 2-point line horizontally across the page, we moved the content area frame just
below the line.
Using the Table Assistant
After completing the master pages items, we’re ready to design the form. The form design we use
in this example is a table with a single header row and a single data row. Because the form will use
a dynamic table we don’t need to create all rows on the form as we did in the steps “Creating a
Static Table in LiveCycle Designer” earlier in this chapter.
847
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
Use the workshopSummaryLCD.pdf form for the steps that follow. You can follow
the steps by creating a table in a new form and then switch to the form on the
CD-ROM to add the fields. Or, you can delete the table on the form from the CD-ROM to follow
the steps.
ON the CD-ROM
We’ll first look at creating the table design then later look at setting up field properties. To create a
dynamic table, follow these steps.
STEPS: Creating Tables with the Table Assistant
1. Create a new document in Designer. We continue using the same file shown earlier in
Figure 27.15. You can open the workshopSummaryLCD.pdf file from the book’s CD-ROM,
delete the table, and save the file under a new filename to follow the steps here.
2. Insert a Table. Choose Table ➪ Insert Table to open the Insert table dialog box shown in
Figure 27.16.
3. Use the Table Assistant. Click the Create Table Using Assistant radio button and click
OK to open the Table Assistant wizard.
FIGURE 27.16
Click Create Table Using Assistant to open the Table Assistant wizard.
4. Define the body layout. In the first pane in the Table Assistant wizard you have two
choices for the design of the table as shown in Figure 27.17. The first radio button choice
is used when you want to create a static table like the table we designed earlier in Figure
27.12. The second radio button choice permits you to create a dynamic table. This radio
button choice is your key to creating a table that sizes automatically to accommodate
data. Click this radio button and type the number of columns you want for the table in
the text box. In our example we used a table with six columns; therefore we typed 6 in
the Number of Columns text box.
Notice in Figure 27.17 that you do not have an option for choosing the number of body
rows. Designer creates one body row for the form. Additional body rows are added when
data are imported into the form.
848
Working with Tables
FIGURE 27.17
Click Body Rows Vary Depending on Data and type the number of columns you want
for the table.
5. Add a Header row. Click Next and you arrive at the second pane in the Table Assistant
wizard as shown in Figure 27.18. This pane provides choices for adding a header row.
Click the Has Header Row radio button. Note that if you add a header row, Designer
anticipates you’ll flow headers across pages. When you create a data connection with a
table containing a header, you’ll see an error warning if the header isn’t bound to the data
file. We can get around this problem by not binding a header to a data connection as
you’ll see in the steps “Adding Fields to a Dynamic Table” later in this chapter. Also
notice the Repeat Header Row for Each Page check box. You have to insert the table in a
subform that is set up for flowed content for the check box to be active.
6. Determine if you want a footer. In our example we won’t use a footer on the form.
When you click Next in the wizard you arrive at the Footer Row panel. Bypass the
options and click Next.
7. Determine if you want sections added to the table. The Sections pane shown in
Figure 27.19 provides choices for adding table sections. You can add sections to a table
with a new header and footer, and as sections are added move them up and down to
organize the order. For our example we won’t use sections so click Next when you arrive
at this pane.
849
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.18
Add a Header Row and click Next.
FIGURE 27.19
Leave the default at Has Body Rows And No Sections and click Next.
850
Working with Tables
8. Format the row colors. The last pane in the Table Assistant wizard offers options for formatting row colors. Check the Alternating Row Colors check box shown in Figure 27.20
and click the down-pointing arrow adjacent to the First n Rows text box. Choose a color
from the palette and make a similar choice for the Next row if you want two custom row
colors. After setting up the row colors click Finish and your table appears on the form as
shown in Figure 27.2.
FIGURE 27.20
Choose colors for the alternating rows and click Finish to add the table to the form.
9. Save the file. Keep this file handy to follow additional steps in this chapter.
At this point we have the table designed for appearances but, as yet, we don’t have any field objects
on the form. To make this form a dynamic form, we’ll bind the table cells to a data source.
Working with Table Data
You can add field objects to forms by dragging fields from the various Library palettes or by using
a data source file and dragging fields from the Data View palette. When you drag fields from the
Data View palette you are binding the field to the data source. When you add additional data to a
dynamic form from a data file having the same file attributes you can flow the data into the form
and Acrobat (where the data are imported) automatically creates additional field objects to accommodate the data.
851
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
When we set up our form, we use the Data View palette to drop field objects on the form. In order
to see fields in the Data View palette you need to create a new Data Connection. Data connections
are made to a variety of different file types. In this chapter we work with a simple solution to create
a data file and then bind the data file to the form so you can drag and drop the fields on the form.
Creating an XML file
Oh horrors… you’re going to have to read about XML and data files! Don’t worry. If you’re a
beginner using LiveCycle Designer, we’re going to make this section easy enough for you to create
XML files and bind the data to your form.
For this section and the steps that follow we use a sample XML file you can find in
the Chapter 27 folder on the book’s CD-ROM. When we import data into our form
we’ll use the workshopSummaryLCD_data.xml file.
ON the CD-ROM
Let’s begin by looking at an XML file. In Figure 27.21 you can see an XML file opened in Microsoft
XML Notepad. The file contains one record and six fields per record. This is enough data to create
a data connection and add fields to our form.
The fields follow the root item Row1 in the hierarchy in the left panel such as workshop, speaker,
email, and so on. The data records appear in the right panel where you see sample data for the first
record. You can edit a file like this by adding more records using simple copy/paste actions to copy
the Row1 item to create a duplicate. Using XML Notepad you press the Ctrl key drag-down to create another record. The name for the next group remains as Row1. Do not change this name. In the
right panel you edit the data for each field while leaving the field names the same as shown in
Figure 27.21.
FIGURE 27.21
A sample XML file opened in Microsoft XML Notepad
852
Working with Tables
Using XML Editors
T
o create and edit XML files it’s best to use an XML editor. These editors are designed to create
and edit XML tags and data. You can find a number of free editors by searching the Internet for
XML Editors. We chose XML Notepad from Microsoft to use for an external editor in this chapter.
There are many editors and some much more sophisticated than XML Notepad. XML Notepad is
easy to access from Microsoft’s Web site and the download is less than a minute if you have a highspeed connection.
Microsoft Word is not the best XML editor but you can view XML data in Word. A quick launch of
Word and viewing the XML data can inform you of the tag names and structure of the XML file.
This type of file is an example of a file you might use to create a data connection. If you use this file
to create a data connection in Designer, the Data View palette shows the field names: workshop
speaker, email, and so on. Each field shown in Figure 27.21 is included in the Data View palette
with field names derived from the XML file.
The first thing we need to do is create an XML file. You could write the XML in an XML editor
from scratch, but you may struggle to get the syntax right. The easiest way to create an XML file is
to export data from the form you created in Designer. Since we don’t have any fields on the form,
we need to populate the form with field objects.
To create an XML file do the following.
853
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
To follow these steps you need a form created in Designer. Use the workshopSummaryLCD.pdf form from the Chapter27 folder from the book’s CD-ROM. If you
worked through steps earlier in this chapter for creating the summary form, you can use that
form to follow the steps.
ON the CD-ROM
STEPS: Creating an XML Data File
1. Open a form in Designer. For our example we use the workshopSummaryLCD.pdf form
from the book’s CD-ROM.
2. Open the Hierarchy palette and the panels on the right side of the Designer window. We need the Object, Layout, Object Library, and Paragraph palettes to add fields
and format the fields.
3. Open the Object Library palette and drag a text field to the first cell in the row
below the header. The field fills the cell without a need to resize the field object.
4. Name and format the field. In the Hierarchy palette click the default name TextField1
and rename the field to workshop. In the Layout palette choose None for the caption and
set the margins as you like. In our example we used 0.125 for the left margin as shown in
Figure 27.22.
FIGURE 27.22
Drag the Text Field object to the first table cell below the header and name the field in
the Hierarchy palette.
854
Working with Tables
5. Add the remaining fields. Add text fields to all the cells in the table by dragging the
Text Field object to each cell. Name the additional fields: speaker, email, sessionQuality,
speakerQuality, and conferenceEvaluation in the Hierarchy palette. Open the Paragraph palette (Window ➪ Paragraph) and click the Center icon for the last three cells in the row.
6. Save the file. Choose File ➪ Save As and choose Adobe Dynamic XML Form (*.pdf) from
the Save as type drop-down menu. Click Save to overwrite the file you opened.
7. Populate the form with data. Open the form in Acrobat and type data in the first row of
fields. (Note that you cannot use PDF Preview in Designer. You need to open the PDF in
Acrobat to add the data.)
8. Export the data as XML. Choose Forms ➪ Manage Form Data ➪ Export Data as shown
in Figure 27.23. When you release the mouse button the Export Form Data As dialog box
opens. Be certain to choose XML Files (*.xml) from the Save as type drop-down menu.
Type a name for the file. In our example we used workshopOneLine_data.xml for the file
name.
FIGURE 27.23
Add data to the six fields in the row and export the data as XML.
9. Save the form. Save the form with the data from Acrobat. We now have the data file we
need to bind the fields using a data connection in our Designer form. We’ll use this form
in the next series of steps to populate our form with fields from the XML file.
If you want to look at the XML code you can open the data file in an XML editor. Pay particular
attention to the tag names where you see items similar to Figure 27.21 earlier in this chapter. In
the left panel in XML Notepad we find the tags Table1, HeaderRow, and Row1. These names are
important because we want to use the same names in the Hierarchy palette in Designer in addition
to the field names you see below the Row1 tag shown in Figure 27.21.
855
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
Adding field objects from a data source file
At this point we have our form design populated with fields we created in Designer and the data
file we created by adding data in Acrobat and exporting the data as XML. We’ll now replace our
original field objects with the fields we retrieve from the data file.
To follow these steps you need to continue using the file saved from the previous series of steps as
well as the data source file we created.
STEPS: Adding Field Objects from a Data File
1. Open the form in Designer. Launch Designer and click File. From the menu options the
form you last edited appears at the top of the list of recent files. Click the file you last
edited to open in Designer. This filename should appear as workshopSummaryLCD.pdf or
a name you used when you saved the file in Step 6 in the last series of steps.
2. Delete the fields you added to the form. Select the fields by clicking the first field
inside the first cell in the row, press Shift, and click the last cell in the row. Press Delete
to clear the fields. We don’t need the fields now because we’ll use the XML file to add
new fields to the form.
3. Open the Data View palette. Click the Data View palette tab in the left panel area or
choose Window ➪ Data View.
4. Create a data connection. Click the icon in the top-right corner of the Data View palette
to open the flyout menu and choose New Data Connection as shown in Figure 27.24.
This action opens the Data Connection dialog box.
FIGURE 27.24
Choose New Data Connection from the flyout menu.
5. Choose a data description. When the New Data Connection dialog box opens, click
Sample XML Data from the list of descriptions as shown in Figure 27.25.
856
Working with Tables
FIGURE 27.25
Click the Sample XML Data radio button.
6. Bind the data to a data source. Click the folder icon to the right of the Select Sample
XML Data File text box and the Open XML File dialog box opens. Locate the XML file
you exported in Step 8 in the last series of steps, select it, and click Open. In our example
we selected the workshopOneLine_data.xml file. After opening the file, Designer takes you
back to the New Data Connection dialog box and your data connection appears in the
text box as shown in Figure 27.26.
FIGURE 27.26
Select the XML file and the filename appears in the New Data Connection dialog box.
7. Review the fields added to the form. Click Finish and the Data View palette displays
the fields bound to the data source as shown in Figure 27.27. These fields are the field
objects you need to add to the first row in the table.
857
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.27
The fields from the XML file are added to the Data View palette.
8. Drag the first field in the Data View palette to the first cell in the row below the
header. In our example the first field is workshop. Drag the field to the first cell in the
table below the header.
9. Set the Binding Properties. When you drag a field object to the form, the Binding
Properties dialog box opens as shown in Figure 27.28. Update all properties by leaving
the selection in the Binding Properties dialog box at the default and click OK.
FIGURE 27.28
Leave the settings at the default and click OK in the Binding Properties dialog box.
10. Drag all fields individually to the form and click OK each time the Binding
Properties dialog box opens.
11. Check for errors. After adding fields from the Data View palette you’ll find a few warning icons to the right of the header row. Designer wants to bind the header to the data
file, but there are no data fields to bind to the form for the header row. We need to
remove the data connection from the header on this form. To view the list of errors, open
the Warnings palette by clicking the separator bar at the bottom of the Designer window.
858
Working with Tables
If you don’t see a separator bar at the bottom of the window, choose Window ➪ Report
and you’ll see the three errors on this form as shown in Figure 27.29.
12. Remove the binding from the objects shown in the Warnings palette. Double-click
the first item you see listed in the Warnings palette. In our example the item is Row1. The
item is selected on your form. Open the Object palette and click the Bindings tab. In the
Bindings tab open the Default Binding (Open, Save, Submit) drop-down menu. Note that
the current binding for the object is Normal. We want to change it to None to remove the
binding. Choose None from the menu as shown in Figure 27.29.
13. Remove bindings from all the items reported in the Warnings tab. Follow the same
steps in Step 12 to remove the bindings from the remaining two items shown in the
Warnings tab.
14. Save the file. Choose File ➪ Save or click the Save tool and save the file under a new filename. On the CD-ROM in the Chapter 27 folder is the final file we created: workshopSummaryLCD.pdf.
FIGURE 27.29
Open the Warnings palette to review the errors found on the form. Change data binding
for the head row cells to None.
Separator bar
859
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
15. Open the form in Acrobat.
16. Import data into the form. Choose Forms ➪ Manage Form Data ➪ Import Data. Select
the workshopSummaryLCD_data.xml file and import the data. The final file appears as
shown in Figure 27.30.
Your treatment for binding headers (see Steps 13 and 14) is handled differently
when you create forms that flow across multiple pages. For more information on
binding headers (and footers) to data sources, see Chapter 31.
NOTE
Do you need to have an XML form each time you create a table or a dynamic form? Quite simply,
no you don’t. The steps we used to create the form in Figure 27.30 could have been created even
before you have a data file available. You can use other methods to create dynamic tables where
you add field objects without a data source. We used the example to create the form shown in
Figure 27.30 using field objects from the data source file. Next, we take a look at creating a similar
table from scratch without using the field objects from a data file.
FIGURE 27.30
Import data and the table conforms to the amount of data imported.
Creating Sections in Tables
We’ll continue creating a form with a known number of maximum records that can fit on a single
page form. In addition to creating a table as we’ve done in previous steps in this chapter, we’ll add
a section to our table. In our example we have some data that we’ll add for a domestic (from the
860
Working with Tables
United States) to one section of the table and data for an international section. We want to break
up our data to appear with different header rows so the result appears as you see in Figure 27.31.
When we populate the table with data we want the domestic data to fall below the first header row
and the international data to flow below the second header row. Our total amount of records will
easily fall on a single page so we’ll create a table with a section to divide the domestic data from the
international data using dynamic properties that confine our results to a single page form.
Designing the form
The form shown in Figure 27.31 was created in Designer. Because we’re not using a PDF
Background we can use the Table Assistant to create the table with two sections. To follow steps to
create the form you can use the evenstLayout.xdp file on the book’s CD-ROM. When you open the
file, you’ll see the master page items have been added to the form as shown in Figure 27.32.
The following steps show you how to set up the form before we configure the fields for
accepting data.
FIGURE 27.31
A dynamic table containing two sections
861
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.32
The sample file has master page items.
For these steps we’ll use the eventsLayout.xdp file from the Chapter27 folder on the
CD-ROM. This file has the master page items placed on the form. The file can be
opened only in Designer.
ON the CD-ROM
STEPS: Designing a Form for Table Sections
1. Create a new file in Designer. In our example we use the eventsLayout.xdp file from the
book’s CD-ROM. You can use this file or create a design of your own to follow the steps.
2. Open the Table Assistant. Be certain you are on the Design View page and choose
Table ➪ Insert Table. When the Insert Table dialog box opens, type 6 for the number of
columns and 1 for the number of rows and click the Create Table Using Assistant radio
button to open the Table Assistant.
3. Add a section to the table. Click Next in the Body Layout pane, make sure Has Header
Row is enabled in the second pane, and click Next. Click Next again without adding a
footer and you arrive at the Sections pane. Click the Has Sections of Body Rows and click
the Plus (+) icon to add a section to the table as you see in Figure 27.33. In the Table
Selection dialog box you can add a name or click OK without adding a name for the section. Either choice is okay because we need to rename the section to the tag name used in
our data file later. In our example we added International for the section name and clicked
OK to return to the Sections pane in the Table Assistant.
862
Working with Tables
FIGURE 27.33
Add a Section by clicking Has Sections of Body Rows and click the Plus (+) icon.
4. Finish configuring the table. Click Next and choose any colors you want for alternating
row colors. In our example we used a light gray for the first row and white for the second
row. After choosing the colors you want, click Finish and the table with two header rows
is added to the form.
5. Format the text cells. Type headings for the six columns in both header rows as shown
in Figure 27.34. Also move the column dividers to adjust the column sizes to the similar
approximate sizes you see in Figure 27.34.
6. Set the Fill color for the header rows and the header rows text. In our example we
filled the two header rows with black by selecting the rows, choosing Solid from the
Background Fill Style drop-down menu in the Border palette, and choosing Black for the
color. (Note that for the first cell we left the left side black, and the last cell in the row we
left as black.) We adjusted the individual cell strokes by choosing White for the left and
right sides of the cells. We then selected the cells in the first row and in the Text palette
chose White for the color. We repeated the same steps to produce the same fills for the
second header row as shown in Figure 27.35.
To easily select a row when you want to change the background fill color, first
select the table and move the cursor to the far left of the row you want to edit—outside the table. When the cursor appears as a right-pointing arrow, click and the row is selected.
When applying Border attributes you can apply changes to all cells within a selection. To change
text color, click the cursor inside one cell and press Shift while clicking the last cell in a row. In
the Text palette choose the text color you want to use.
TIP
863
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.34
Type names for the columns in each header row.
FIGURE 27.35
Fill the header rows black and fill the type with white.
7. Save the form. Choose File ➪ Save As. Type a new name for the file and from the Save as
type drop-down menu be certain to choose Adobe Dynamic XML For (*.pdf) as shown in
Figure 27.36.
864
Working with Tables
FIGURE 27.36
Save the file as a dynamic form.
Adding fields
What we’ve accomplished up to this point is creating the basic layout for the form. We have a lot
of flexibility and we can exercise freedom and artistic license for the appearance of the form. We
can make our own personal choices by changing the attributes of the type and cells and other
design elements. Other than setting up the initial table in the Table Assistant, you can make editing
changes based on personal choices and don’t need to worry about a rigid series of steps to be followed in a particular order.
Adding fields and adjusting field properties
What follows is completely different. Each step you perform to complete the table by adding data
fields and setting up the form to accept data from a data file has to be performed with precision
and in a more rigid order. If you miss one step, the form won’t appear correctly in Acrobat and you
won’t be able to import data from the sample data file.
ON the CD-ROM
If you had any trouble creating the table from the previous series of steps you can
use the eventsFormRaw.pdf file in the Chapter27 folder on the book’s CD-ROM.
To add fields and complete the form created in the previous series of steps, do the following.
STEPS: Adding Fields to a Table Containing Sections
1. Open a form in Designer. It’s essential to use the form you saved in Step 7 in the previous series of steps or use the eventsFormRaw.pdf file from the book’s CD-ROM to follow
these steps.
2. Add fields to the table. Drag the Text Field object from the Standard Library palette to the
cell rows for both rows following the headers. The field names for both rows beginning on
the left side of the row are organizer, venue, dates, anticipated, registered, and workshops.
Change the names from the default names to the names listed here in the Hierarchy palette.
Later in these steps we’ll import data into our form. The data form must use names precisely the same as the fields and elements contained in the data file. Be certain to name all
the fields exactly as shown in Figure 27.37. Double check your work to make sure you
typed the field names properly.
3. Change the Table and Row names. You may have names in the Hierarchy palette different from the tag names used in the data file. Be certain to change the names to match the
names shown in Figure 27.38. Right below the (untitled Subform) (page 1) item in the
Hierarchy palette you should see Table1.
865
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
Below Table1 in both areas of the Hierarchy palette, change the names of the header rows
to HeaderRow and HeaderRow2.
Below the first row fields change the name from any other name you may find on your
form to Table1. The first and second rows may have a name like Row[0] and Row[1].
Change Row[1] to Row2. The first row fields should change to Row1. If it does not change,
be certain to change it to Row1.
Before you move on, carefully look over Figure 27.38 and be certain all the names in the
Hierarchy palette match your form.
4. Set up the binding for the Table. We need to make sure all bindings are properly identified. We’ll walk through each binding property in the Hierarchy palette to be sure they
are properly set. Click the first Table1 item in the Hierarchy palette. Open the Object palette and click the Binding tab. You should see the Default Binding appear as None. If it is
not set to None, open the drop-down menu (click the icon to the right of the Default
Binding text box to open the menu) and choose None as shown in Figure 27.39. The second Table1 farther down the Hierarchy palette should automatically have no choice for
setting the binding. You don’t need to make any changes in the Binding tab for this item.
FIGURE 27.37
Change the field names in the Hierarchy palette.
866
Working with Tables
5. Set up the binding for the Header Rows. Click HeaderRow in the Hierarchy palette.
This item should appear under the first Table1 item. Set the Binding to None in the
Object palette Binding tab. Click the second header row labeled HeaderRow2 in the
Hierarchy palette. Change the binding to Normal.
6. Set up the binding for the fields. Set the binding for the Row1 ad Row2 items to
Normal. Under these headings click each field to be certain all the fields have the same
Normal binding.
7. Repeat the rows for each data item. Click Row1 in the Hierarchy palette and in the
Binding tab in the Object palette check Repeat Row for Each Data Item and check the
Min Count check box as shown in Figure 27.40. By default 1 will appear in the text box.
Leave the default and make the same change to the Row2 item.
FIGURE 27.38
Edit the names in the Hierarchy palette.
FIGURE 27.39
Be sure the binding for the first Table1 item is set to None.
867
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
FIGURE 27.40
Check the Repeat Row for Each Data Item and Min Count check boxes.
8. Save the form. Keep this file open to follow the remaining steps.
Setting some global properties
We have a few more steps to make our form a dynamic form. We need to set up some general
global settings and adjust the subform properties. To complete the form, do the following.
ON the CD-ROM
In addition to the file saved from the last series of steps, you need the events_data.
xml file from the Chapter27 folder on the book’s CD-ROM.
STEPS: Adjusting Form Properties
1. Use the file saved from the last series of steps.
2. Adjust the subform properties. Notice in the Hierarchy palette you see (untitled
Subform) (page 1) at the top of the palette. Click this item and in the Object palette you
find a new tab labeled Subform. Click the Subform tab and choose Flowed from the
Content drop-down menu as shown in Figure 27.41. You must have this item set to
Flowed in order to flow the data in the table.
FIGURE 27.41
Set the Subform Content properties to Flowed.
3. Adjust the Default Form Properties. Choose File ➪ Form Properties. In the Form Properties
window, click the Defaults tab. At the bottom of the window open the PDF Render Format
drop-down menu and choose Dynamic XML Form as shown in Figure 27.42.
868
Working with Tables
4. Set the Preview properties. Click Preview in the Form Properties window. From the
Preview Type drop-down menu choose Interactive Form. This choice enables you to
add and modify data on the form. Click the folder icon to display the Open XML File
dialog box. We want to identify the data file we’ll use for this form. Locate the events_
data.xml file from the book’s CD-ROM, select it, and click Open. When you return to the
Form Properties window you’ll see the file listed in the Data File text box as shown in
Figure 27.43.
FIGURE 27.42
Set the PDF Render Format to Dynamic XML Form.
FIGURE 27.43
Choose Interactive Form and open the data file to use with this form.
5. Save the file.
869
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
6. Import the data. Open the file in Acrobat and choose Forms ➪ Manage Form
Data ➪ Import Data. Select the XML file from the book’s CD-ROM and open it. If you
performed all steps correctly your form should appear as you see in Figure 27.44.
FIGURE 27.44
The final form after importing data
While in Designer you can click the PDF Preview tab to preview the form. In many
cases the preview you see will be exactly the same as when opening the form in
Acrobat. However, in some circumstances you won’t see the exact same view when opening the
file in Acrobat as when clicking the PDF Preview button. For your final test, be sure to open the
file in Acrobat and test the data before you plan to use the final version of the form.
NOTE
Debugging problems
Every form author’s dream is to get it all right the first time. Unfortunately, this is a rare occasion.
We encounter problems designing complex forms in Designer about as often as you do. If you follow all the steps to create a form as shown in Figure 27.44 and you don’t produce the same result,
you need to diagnose the form for problems and double check the settings.
First, make a copy of the form in Designer by choosing File ➪ Save As and save the file under a
new name. If you change a lot of items, you may want to return to the original form and start over
or use some alternatives for making changes.
The most common problems you’ll encounter with the form shown in Figure 27.44 are that you may
see only one data row appearing under the first header row or you may find that the form looks okay
870
Working with Tables
when opened in Acrobat but the data don’t import on the form. Another problem you may find is
that when the data are imported only one section of data is imported under the first header row.
If these problems exist, the first items to check are the field and tag names. Open the data file in
an XML editor like XML Notepad and look over the names used in the XML file. You need to be
certain all the names for the Table item, the header rows, and the rows are the same as the same
items in the Hierarchy palette. In addition, check all the field names and be certain they are identical to the field names in the Hierarchy palette.
The next area to examine is the Binding tab for all the items where we adjusted the binding properties. Be certain that the binding is set properly for all the fields. Table 27.1 provides a summary
of the items we addressed in the Hierarchy palette.
TABLE 27.1
Properties Summary
Item
Palette
Tab
Properties Settings
(untitled Subform) (page 1)
Object
Subform
Flowed
Table 1 (first item below the untitled
Subform)
Object
Binding
None
Table 1 (second Table1 in Hierarchy
palette)
Object
Binding
Repeat check box off
HeaderRow
Object
Binding
None
HeaderRow2
Object
Binding
Normal
Row1 (and all fields nested below the
heading)
Object
Binding
Normal
Row1 only
Object
Binding
Repeat Row for Each Data Item
(checked) plus Min Count (checked)
Row2 (and all fields nested below the
heading)
Object
Binding
Normal
Row2 only
Object
Binding
Repeat Row for Each Data Item
(checked) plus Min Count (checked)
After you’ve checked the fields and tag names and verified all settings are as shown in Table 1,
review the options we discussed related to setting the Form Properties. Review each property
choice and make sure your settings match the steps in the section “Adjusting Form Properties.”
If you still encounter problems, you may have just one field name misspelled, a tag name not
spelled correctly, or maybe just one setting that makes you think that the Adobe engineers in
Ottawa goofed up the program. Realize that the mistake is most likely yours, and perhaps one
small oversight is the root of the problem. Step away from the situation, relax a little, and then
come back and review your settings. When we first created the form shown in Figure 27.44 Ted
871
27
Part VIII
Creating Dynamic Forms with LiveCycle Designer
contacted Angie in complete frustration because the data wasn’t flowing into the form. Angie suggested reviewing the Form Properties but that didn’t resolve the problem. What we both missed
was that Ted saved the form as a Static Form on the first design. He forgot to save the form as a
Dynamic Form. That one problem took quite a bit of time because neither of us thought that
something so simple would be missed. Little oversights like this can be missed more often than the
major changes you apply to field properties.
We reiterate that the form designs we created in this chapter were used for a known maximum
number of records that can be added to a single page form. You have many more options available
in Designer for flowing data across multiple pages, flowing headers and footers together with data
on multiple pages, adding buttons to spawn new rows for something like a purchase order form,
and other types of dynamic instances you want to add to your forms.
All of the options you have for creating tables to flow across multiple pages and adding buttons to
spawn new fields are part of subforms, which is the subject of the next chapter. Turn the page to
learn more about tables, subforms, and adding dynamic features to your forms.
Summary
n You use the Table ➪ Insert Table menu command to create a table in Designer.
n You open the Table Assistant by checking the Create Table Using Assistant check box in
the Insert table dialog box.
n When using PDF backgrounds you are limited to creating static tables.
n Dynamic tables automatically add field objects according to the amount of data imported
on a form.
n Field objects can be added to a form by binding the form to a data file and dragging the
imported field objects from the Data View palette to the form.
n XML files can be edited in an XML Editor. You can view tags and field names in XML files
by opening the files in an XML Editor, a text editor, a Web browser, or Microsoft Word.
n You add sections to tables in the Table Assistant.
n When creating dynamic tables without binding data to a form, you need to carefully
review all the binding attributes as you add field objects to a form.
n You must set the binding attributes for tables, header rows, and rows to precise settings
to flow data on a form.
n You must choose Flowed for the Content in a subform to flow data introduced in a
dynamic form.
n You need to set certain Form Properties to make your form dynamic.
n Forms must be saved as Dynamic forms to import data from an XML file.
872
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement