You are previewing Developing Solutions with Microsoft® InfoPath™.
O'Reilly logo
Developing Solutions with Microsoft® InfoPath™

Book Description

Deliver innovative, XML-based business solutions with a dynamic, easy-to-use front end—faster—with expert guidance, design patterns, and inside insights from two veterans of the Microsoft InfoPath development team.

Table of Contents

  1. Developing Solutions with Microsoft® InfoPath™
  2. Acknowledgments
  3. Introduction
    1. What Is InfoPath?
      1. XML Forms
      2. Form Templates
      3. XML Standards and Data Interoperability
      4. A Rich Office Client
        1. Word vs. InfoPath
      5. An Enterprise Business Client
      6. A .NET Programming Tool
        1. InfoPath, .NET Forms, and SharePoint Web Parts
    2. The Goals of This Book
    3. How This Book Is Organized
    4. Programming Prerequisites
      1. Windows Components
      2. Other Server Software
    5. Online Companion Content
    6. Share Your Experience
    7. Support
  4. I. Getting Started
    1. 1. Customizing Sample Forms
      1. Choosing Among 25 Sample Forms
      2. Customizing a Sample Form
      3. Working with Data Sources
        1. Modifying the Main Data Source
        2. Adding a Data Source
      4. Modifying the View
      5. Examining the Form
        1. Previewing the Form
        2. Editing the Form
        3. Form Contents
      6. Publishing the Form
        1. Using a Shared Folder
        2. Using SharePoint
        3. Creating a Form Library from InfoPath
      7. Summary
    2. 2. Creating and Using Forms
      1. Writing Application Logic
        1. Managed Code Support
        2. Data Source Event Handlers
          1. DOM Event Handlers
          2. Other Form Event Handlers
          3. New SP1 Event Handlers
        3. Writing an Event Handler for the DOM
        4. Writing an Event Handler in VBScript
      2. Implementing Workflow
        1. Rules and User Roles
          1. Create a Book Purchase Approval Form
          2. Using the Book Purchase Form
        2. Implementing Roll-Up
          1. Merging Forms
        3. Custom Merge
        4. Exporting to Excel
      3. Using Data Connections
        1. Connecting to a Database
        2. Connecting to a Web Service
        3. Connecting to a SharePoint List
      4. Summary
  5. II. Form Design Patterns
    1. 3. Creating Smart Forms
      1. Using Conditional Visibility
        1. Why Use Conditional Visibility?
        2. Parking Registration Form Example
        3. Conditional Formatting
        4. Dynamic Data Filtering
        5. Using Event Handling
      2. Using Data Validation
        1. Schema Validation
        2. Custom Validation
        3. Validating Data Using the InfoPath UI
        4. The Data Entry Pattern
        5. Validating Data Through Code
        6. Data Validation on Save and Submit
        7. Adding a Warning Dialog Box Using Rules
      3. Autopopulating Data
        1. Declarative Default Data
        2. Autopopulating the Last Modified Date
        3. Data Based on Primary Fields
        4. Programmatic Autopopulation
        5. Autopopulating Data from a SQL Database
      4. Using Master Detail Controls
        1. Overview of Repeating Controls
        2. Repeating Table
        3. Repeating Section
        4. Repeating Recursive Group
        5. Repeating Choice Group
        6. Master/Detail Repeating Control
        7. Link Detail by Row Position
        8. Link Detail by Key
        9. Adding Repeating Data Programmatically
      5. Summary
    2. 4. Creating Rich Forms
      1. InfoPath vs. Smart Documents
        1. User Interface
        2. Data and Presentation
        3. Schema Support and Validation
        4. Business Logic and Deployment
      2. InfoPath’s Rich Features
        1. Rich Text
          1. XML Schema Definition (XSD) for Rich Text
          2. Types of Rich Text
        2. XML Lists
          1. Merging Lists Across Forms
        3. Spell Checking and Autocomplete
        4. Multiple Views
        5. Task Pane
        6. Custom User Interface
        7. Digital Signatures
          1. Signature Metadata
          2. Schema Impact
          3. Dependent Signing
          4. Programmatic Support
      3. Dynamic Structures
        1. Optional Sections
        2. Choice Groups
        3. Choice Sections
        4. Repeating Recursive Sections
          1. Hierarchical Numbering Using Repeating Recursion
        5. Programmatic Support for Dynamic Sections
        6. Contextual Editing
        7. Programmatic Selection and Clipboard Support
      4. Summary
    3. 5. Advanced Form Design
      1. Advanced Form Controls
        1. File Attachment and Picture Controls
          1. Picture Control Options
          2. File Attachment Options
          3. Controlling the File Attachment Control with Code
          4. Adding an Ink Picture to a Form
        2. Using File and Picture Control Data Outside of InfoPath
          1. Examining the Code of the Attachment Saver Sample
        3. Custom Controls with ActiveX
          1. Using Existing ActiveX Controls
          2. ActiveX Control Security
          3. Managing the Quirks of Certain ActiveX Controls
          4. Creating Your Own ActiveX Controls
      2. Using Extension and XDocument from XSL
        1. Extension
        2. XDocument
      3. Summary
  6. III. Deployment Design Patterns
    1. 6. Database Integration
      1. Integrating with ADO
      2. Integrating with Access
        1. Testing and Debugging ADO-Based Forms
        2. Deploying Access-Based Forms
          1. Standalone Database
          2. Shared Database
      3. Integrating with SQL
        1. Authors Scenario
          1. Creating a Data Connection to SQL
          2. Creating the Form View
          3. Testing the Form for Query and Submit
          4. Debugging Database Submit Errors
          5. Data Validation for SQL Constraints
          6. Updating Specific Fields
        2. Using ADO Connection Through Code
      4. InfoPath-Related Database Concepts
        1. Creating a Secondary Connection to a Database
        2. Including Required Fields
          1. Updating a Database Connection
        3. Data Type Compatibility
        4. Query, New Record, and Submit
          1. Designing for Submit
        5. Defining Table Relationships
          1. Deleting Foreign Key Records
        6. Custom Submit Errors
          1. Executing a SQL Stored Procedure in an InfoPath Form
      5. Summary
    2. 7. Web Services
      1. Designer Support
        1. Creating a Form Based on a Web Service
        2. Using a Web Service as a Data Connection to Receive Data
          1. Using UDDI
        3. Using a Web Service as a Data Connection to Submit Data
          1. PictureBlog Schema
          2. Creating the PictureBlog Submit Web Service
          3. Creating the PictureBlog Form
          4. Using a Typed, Structured Web Service Method
        4. ADO.NET Dataset Integration
        5. Using Web Service Data Connections in Code
        6. The Return Value of a Web Service Submit Data Connection
      2. Error Handling
      3. Rebinding a Web Service
        1. Updating Data Connection Web Service Binding in the Designer
        2. Updating Data Connection Web Service URL Binding in the Manifest
          1. Changing the Submit Parameter Mapping in the Manifest
        3. Updating Data Connection Web Service URL Binding with Code
      4. Setting the Timeout When Calling a Web Service
      5. Unsupported Web Service Types
        1. RPC/Encoded Web Services
        2. Web Services That Return Untyped XML
        3. Web Services That Return XML in a String
      6. Using .NET Web References
        1. Rebinding Web References at Run Time
      7. Cross-Domain Rules for Calling Web Services
      8. Summary
    3. 8. Deployment and Security
      1. Deployment
        1. Deploying Forms in E-Mail
          1. Send Form Template As An Attachment
          2. Send Windows Installer .MSI File As An Attachment
          3. Digitally Sign the Form
        2. Deploying Forms to a Web Site or a SharePoint Server
        3. Mixed-Mode Deployment: E-Mail and Web Site
        4. Deploying Forms to a Local Machine (My Computer)
      2. Security Levels
        1. Coding Guidelines
          1. Restricted
          2. Domain Security
          3. Full Trust
        2. How InfoPath Sets the Security Level
        3. Configuring Security Permissions
          1. Managed Code
          2. Full Trust Forms
      3. Version Upgrade
        1. Do Nothing
        2. Automatically Upgrade Existing Forms
          1. Customizing the Upgrade.xsl File
        3. Using Custom Events
          1. Upgrading Old Forms
          2. Using Merge Forms to Import Old Forms
      4. Summary
    4. 9. SharePoint Collaboration
      1. Prerequisites
      2. Publishing to a SharePoint Form Library
        1. Using a Form in a Document Library
      3. Promoting Data to SharePoint Form Library Columns
        1. Selecting Form Properties to Promote
          1. Promoting Fields in the Meeting Agenda Form
        2. Limits on the Number of Promoted Columns
        3. Using Merged Fields to Present Repeating Data
          1. Joining Agenda Information to Guest Speaker for Promotion
        4. Promotion Technical Details: The manifest.xsf and properties.xfp Files
      4. SharePoint Views
        1. SharePoint Merge Views
        2. Exporting to Excel
        3. The OpenXMLDocuments Control
        4. Relinking Forms
      5. Using SharePoint Lists from InfoPath Forms
        1. Reading the Form Library as a List
        2. Reading the User List
          1. Reading Columns Not Shown by the Designer Data Connection Wizard
          2. Displaying The Modified Date of an Open Form
      6. Submitting Forms to a SharePoint Site
        1. Submitting a Form Using the SharePoint Submit Data Connection
        2. Troubleshooting the Submit Data Connection
        3. Overwriting Existing Files with the SharePoint Submit Data Connection
        4. Using Code to Control the SharePoint Submit Data Connection
        5. Using HTTP WebDAV Directly
        6. Creating Items in a SharePoint List
        7. Reading SharePoint List Items Directly
      7. Summary
    5. 10. Forms-Based Workflow
      1. The Approval Process
      2. Controlling Access
        1. The Take Ownership Section
          1. Conditional Visibility for Approvers
          2. Conditional Visibility for Read-Only
          3. Getting the Current User
        2. Take Ownership Logic
      3. Coordinating E-Mail and SharePoint
        1. Opening via Attachment vs. Opening from SharePoint
        2. Submitting to SharePoint
        3. Opening from SharePoint
        4. Uniquely Naming the Form
      4. Schema Changes for Workflow
        1. State
        2. Actions
      5. User Roles
        1. Order of User Role Evaluation
        2. Setting the User Role
      6. Adding Open Rules
        1. Using Status to Control Workflow State
          1. Approve—Assigned
          2. Approve—Unassigned
          3. Approved-Reporting
          4. Approved-ReadOnly
        2. Users with Multiple Roles
          1. Specifying Assignment for Manager
          2. Approved-Reporting-ApproverIsManager
          3. To Restrict or Not to Restrict
          4. Using Conditional Formatting
          5. Controlling Access to SharePoint
          6. Controlling Access in Code
      7. Stepping Through the Workflow
        1. User Roles
        2. Open Rules
        3. OnLoad Event Handler
        4. Conditional Formatting
        5. Take Ownership
        6. OnLoad Event Handler (SharePoint Form)
      8. Tracking History Through Event Logging
        1. Security
      9. Deploying Forms to External Users
        1. Sending a Restricted Form to External Requesters
          1. Pros
          2. Cons
        2. Sending a Full Trust Form to Everyone
          1. Pros
          2. Cons
        3. Sending RegForm Packages to Everyone
          1. Pros
          2. Cons
        4. Sending a Separate Form for External Requesters
          1. Pros
          2. Cons
      10. Summary
    6. 11. Advanced Workflow with BizTalk
      1. HWS and InfoPath
        1. HWS Objects
          1. InfoPath Maps Forms to HWS
          2. BizTalk Generates InfoPath Forms
        2. Task Pane Workflow
        3. Status Synchronization
      2. Programming Prerequisites
        1. BizTalk Server 2004
        2. HWS Pipeline Component
          1. Downloading the Component
        3. BizTalk Server 2004 SDK
        4. Lab 12: Workflow Support in InfoPath 2003
      3. Integration Steps
        1. Creating HWS Orchestration
        2. Attaching the HWS Pipeline Component
          1. Building the Send Pipeline Adapter
          2. Attaching to Orchestration
        3. Enabling HWS in InfoPath
          1. Extracting the Form Files
          2. Adding Receive Data Connections
          3. Modifying the Schema to Support Workflow
          4. Activating the HWS Workflow in the Manifest
          5. Adding a Resource File for Action Activations
          6. Adding HWS Data Adapters for the Actions
          7. Adding Event Handlers for Workflow Buttons
      4. Additional Resources
        1. BizTalk Adapter for SharePoint Libraries
        2. FabriKam Solutions Kit
        3. Information Bridge Framework
      5. Summary
    7. Resources
      1. On Your Computer
      2. Microsoft Online
      3. Other
      4. Books
    8. About the Author
      1. Patrick Halstead
      2. Vani Mandava-Teredesai
      3. Matthew Blain
  7. Index
  8. About the Authors
  9. Copyright