Comparing SharePoint List and Form Library Forms

So you’ve heard about SharePoint list form customization in InfoPath 2010 and you’ve seen the cool demos. But you may be asking yourself – What’s the difference between list and library forms and when should I use one or the other? In this post, we will answer these questions and provide guidance on when to create list vs. library forms.

When designing InfoPath forms for SharePoint 2010, the first choice you need to make is between a SharePoint list form and a SharePoint form library form.

Popular Form Templates

Recommendation

Use a list form if you just need to collect data and store it on SharePoint. Use a form library form if you want more advanced functionality such as complex or repeating data or code.

What are list forms and form library forms?

SharePoint list forms store data directly in a SharePoint list.  Each control (e.g. text box) in the form is bound to a column in the list. SharePoint list forms are directly connected to the list, which means that you don’t have to worry about setting up the publish and submit locations.
Form library forms store data in XML files in a SharePoint form library. This means they are more flexible and you can do more with them. For example, they can be configured to save drafts and submit to different locations. However, they are more complex to work with and require more decisions to be made during configuration.

Because the way data is stored between these template types is different, it is not possible to switch between them.

Guidelines

Here are some basic guidelines to help you decide what type of form to design.

Use a list if:

  • You want to quickly get started building InfoPath forms on SharePoint
  • You need to use your form offline with SharePoint Workspace (formerly Groove)
  • You want to filter your SharePoint list based on a person or group
  • You would like to use the built-in display / edit views

Use a form library if:

  • You have repeating or nested data
  • You are working from a predefined industry or complex schema
  • Your form needs to be digitally signed
  • You need code in your form
  • Your form is not hosted in SharePoint or you need to store results as an XML document

How can I build advanced functionality into my forms?

In general, form libraries provide better support for more complex and advanced forms. Here are a few examples of the way InfoPath can be used to build more powerful forms.

Repeating data or complex schema

  • In some cases, you will want to collect repeating data in a form. For example, you have a project proposal form and want to include a list of potential risks for each project, or you have a book request form where users can request multiple books at once.
  • If you have a schema that has any nesting or repeating structures, or a defined industry schema such as Dublin core or Health Level 7, form library forms will allow you to organize your fields into groups to match your schema as opposed to having to flatten your schema to work with a list.
  • SharePoint lists store only one value per column; you can’t use list forms to store repeating data in a single item. As form library forms use XML to store data they can store repeating data in a single form.

Using repeating data in list forms

  • If you have a SharePoint list form, you have several options for dealing with repeating data other than using the built in support of a form library.
  • If part of your content is repeating, consider flattening that schema so that it can repeat. For example, you could limit your book request form to no more than ten books per form.
  • You can also use multiple lists and link them together using lookup fields and web part connections. This works well for master/detail scenarios where one list tracks all the items and another contains the specific details for each item.

Using repeating data in form library forms

  • Form library forms include controls that are designed to deal with repeating data inside the current item.  Form libraries have built-in support for repeating data with controls such as plain list, bulleted list, numbered list, repeating table, and repeating section.
  • They also support more customization of the form using the choice group and choice section controls. Advanced choice controls such as option button and optional sections are also available. All of these controls will be available by default in the controls gallery in InfoPath Designer for form library forms.

Digital Signatures

Managed Code

  • Form libraries support code-behind. This will allow you to do actions beyond logic in your form, such as advanced financial calculations.
  • Code can be used to extend InfoPath functionality or create custom business logic.
  • For example, in a pet food store you may use an InfoPath form to track food orders and use code behind the scenes to make sure you have enough inventory to meet the order and make sure that it isn’t sold before the form is submitted.
  • For more detail about forms with code, see Introduction to Programming in InfoPath 2010.

Control over where your form is stored

  • Form libraries allow you to choose the location of where your form XML is sent when the form is submitted.
  • If you need to store your form as an XML document for use outside of SharePoint, then you should use a form library.
  • For example, if you have an insurance questionnaire and you want to store the completed form in a document collection with related content, a form library will allow you to do this.

Bottom line

Overall, both list forms and form library forms support much of the key functionality that InfoPath provides, such as data validation, custom rules, default values, and control over visual layout. In most cases, a list form will be sufficient for your needs. Lists have the most straightforward design and form management experience. However, for more complex scenarios such as repeating data or the need to add code, a form library may be necessary.

Please leave a comment if you have any further questions!

Daniel Broekman and Kate Everitt

InfoPath Program Managers