<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0" 
    xmlns:xl="http://www.w3.org/1999/xlink" 
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
       <title>The Find Financial Accounts screen.</title>
        <para>This screen is used to locate existing financial accounts that
        have been created.</para>
        <para>It also includes the option to use the 'Advanced Search' button to display additional fields that can be used to locate a specific financial account.</para>
        <para>New Financial Accounts can be created using the 'Create New Financial Account' button.</para>
        <section>
            <title>How do locate an existing Financial Account?</title>
            <para>Press the 'Search' button</para>
            <para>A list of all existing Financial Accounts will be displayed.</para>
        </section>        
        <section>
        <title>How do I delete an existing Financial Account?</title>
               <para>Press the 'Search' button on the Financial Account main screen</para>
               <para>A list of all existing Financial Accounts will be displayed</para>
               <para>Press the 'Delete' button next to the Financial Account that needs to be deleted.</para>
           </section>
</section>
