<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
	
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


 
	
<meta>
<topic id="textsharedautopi01090000xml" indexer="include">
<title id="tit" xml-lang="en-US">Form Wizard</title>
<filename>/text/shared/autopi/01090000.xhp</filename>
</topic>
</meta>
<body>
<bookmark xml-lang="en-US" branch="hid/WIZARDS_HID_DLGFORM_DIALOG" id="bm_id3156211" localize="false"/>
<bookmark xml-lang="en-US" branch="index" id="bm_id9834894"><bookmark_value>forms;wizards</bookmark_value>
<bookmark_value>wizards;forms</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3109850" xml-lang="en-US" level="1" l10n="U" oldref="1">Form Wizard</paragraph>
<paragraph role="paragraph" id="par_id3150247" xml-lang="en-US" l10n="U" oldref="2"><variable id="formular"><ahelp hid="HID_DLGFORM_DIALOG">Activates the Wizard for creating forms.</ahelp>
</variable></paragraph>
<section id="howtoget">
<embed href="text/shared/00/00000401.xhp#autopilotformular"/>
</section>
<paragraph role="paragraph" id="par_id3152801" xml-lang="en-US" l10n="U" oldref="3">Select the form properties using the following steps:</paragraph>
<embed href="text/shared/autopi/01090100.xhp#fieldselection"/>
<embed href="text/shared/autopi/01090200.xhp#setupsubform"/>
<embed href="text/shared/autopi/01090210.xhp#addsubformfields"/>
<embed href="text/shared/autopi/01090220.xhp#getjoinedfields"/>
<embed href="text/shared/autopi/01090300.xhp#arrangecontrols"/>
<embed href="text/shared/autopi/01090400.xhp#setdataentry"/>
<embed href="text/shared/autopi/01090500.xhp#applystyles"/>
<embed href="text/shared/autopi/01090600.xhp#setname"/>
<embed href="text/shared/00/00000001.xhp#zurueckautopi"/>
<embed href="text/shared/00/00000001.xhp#weiterautopi"/>
<bookmark xml-lang="en-US" branch="hid/WIZARDS_HID_DLGFORM_CMDFINISH" id="bm_id6868800" localize="false"/>
<paragraph role="paragraph" id="par_idN10686" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Click to create the form without answering further pages.</ahelp></paragraph>
<embed href="text/shared/00/00000001.xhp#abbrechen"/>
</body>
</helpdocument>
