<?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="textshared0201170802xml" indexer="include">
<title id="tit" xml-lang="en-US">Table Element Wizard: Field Selection</title>
<filename>/text/shared/02/01170802.xhp</filename>
</topic>
</meta>
<body>
<section id="seite2">
<paragraph role="heading" id="hd_id3155934" xml-lang="en-US" level="1" l10n="U" oldref="13"><link href="text/shared/02/01170802.xhp" name="Table Element Wizard: Field Selection">Table Element Wizard: Field Selection</link></paragraph>
<paragraph role="paragraph" id="par_id3150476" xml-lang="en-US" l10n="U" oldref="10">Specifies which fields in the table control field should be displayed.</paragraph>
</section>
<section id="howtoget">
<embed href="text/shared/00/00040501.xhp#aupitab2"/>
</section>
<embed href="text/shared/autopi/01090100.xhp#vorhandenefelder"/>
<embed href="text/shared/autopi/01090100.xhp#uebernehmen"/>
<embed href="text/shared/autopi/01090100.xhp#uebernehmealle"/>
<embed href="text/shared/autopi/01090100.xhp#entfernen"/>
<embed href="text/shared/autopi/01090100.xhp#entfernealle"/>
<!-- removed HID DBP_LISTBOX_RID_PAGE_GW_FIELDSELECTION_LB_SELECTED_FIELDS -->
<paragraph role="heading" id="hd_id3149346" xml-lang="en-US" level="2" l10n="U" oldref="11">Selected Fields</paragraph>
<paragraph role="paragraph" id="par_id3155941" xml-lang="en-US" l10n="U" oldref="12"><ahelp hid="DBP_LISTBOX_RID_PAGE_GW_FIELDSELECTION_LB_SELECTED_FIELDS">Displays the data fields that are accepted into the form field.</ahelp></paragraph>
</body>
</helpdocument>
