Создание каскадного списка

Каскадные списки позволяют пользователям заполнять формы быстрее и обеспечивают правильный ввод данных. В этом статье описывается создание каскадных списков и заполнение их данными. В Microsoft Office InfoPath список можно заполнять значениями из формы, из внешнего XML-документа или из базы данных Microsoft Office Access.

В этой статье:

Что такое каскадный список?

Шаг 1. Вставка каскадного списка

Шаг 2. Предоставление данных

Что такое каскадный список?

Каскадный список — это список, варианты выбора в котором меняются в зависимости от значений, выбранных пользователем в другом списке. Например, если пользователь выбирает пункт Приправы в поле Категории, как показано на иллюстрации ниже, в поле Продукты будет приведен список приправ.

Пример каскадного списка

В следующих разделах показано, как создать шаблон формы с двумя списками, где содержимое второго списка фильтруется в соответствии со значением, которое пользователь выбирает в первом. Когда значение в первом списке меняется, фильтр автоматически применяется ко второму списку, что приводит к изменению значений в нем.

Возможность совместимости.

Фильтры можно применять только в шаблонах форм, созданных для заполнения в InfoPath. Фильтры недоступны в шаблонах форм с поддержкой веб-браузера.

К началу страницы

Шаг 1. Вставка каскадного списка

Чтобы создать каскадный список, необходимо вставить в шаблон формы два списка.

Примечание : При вставке каскадного списка в шаблон формы списки, из которых он состоит, не должны находиться в повторяющемся разделе или повторяющейся таблице.

  1. Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.

  2. В разделе Добавить элементы управления области задач Элементы управления щелкните элемент Раскрывающийся список. Когда пользователь будет заполнять форму, основанную на этом шаблоне формы, значение, выбранное в этом раскрывающемся списке, будет определять варианты, доступные для выбора во втором списке.

  3. Щелкните элемент Список. Шаблон формы теперь должен содержать раскрывающийся список и стандартный список.

    Раскрывающийся список и список в форме

  4. Дважды щелкните раскрывающийся список, который вы вставили в шаблон формы в шаге 2.

  5. В диалоговом окне Свойства раскрывающегося списка перейдите на вкладку Данные.

  6. В поле Имя поля введите список1, а затем нажмите кнопку ОК.

  7. Дважды щелкните список, который вы вставили в шаблон формы в шаге 3.

  8. В диалоговом окне Свойства списка перейдите на вкладку Данные.

  9. В поле Имя поля введите список2Каскадный, а затем нажмите кнопку ОК.

К началу страницы

Шаг 2. Предоставление данных

Теперь, когда вы добавили списки в шаблон формы, необходимо указать данные, которые будут отображаться в них. Затем следует применить фильтр фильтр, чтобы варианты выбора во втором списке зависели от значения, выбранного пользователем в первом списке.

В этом разделе описывается, как подключить списки к данным тремя стандартными способами: путем добавления данных в саму форму, путем подключения формы к существующему XML-документу с данными или путем подключения формы к базе данных. Чтобы завершить создание каскадного списка, выберите один из способов ниже.

Подключение к данным в форме

Подключение к внешнему XML-документу

Подключение к базе данных

Подключение к данным в форме

В этом разделе вы узнаете, как заполнить списки данными из формы. Для этого нужно сначала настроить поля в шаблоне формы, чтобы можно было ввести названия категорий и набор продуктов для каждой категории.

Настройка полей в шаблоне формы

  1. Если область задач Источник данных скрыта, в меню Вид выберите пункт Источник данных.

  2. В области задач Источник данных щелкните правой кнопкой мыши группу моиПоля и выберите пункт Добавить.

  3. В поле Имя диалогового окна Добавление поля или группы введите КатегорииПродукты.

  4. В списке Тип выберите пункт Группа.

  5. Установите флажок Повторяется и нажмите кнопку ОК.

  6. В области задач Источник данных щелкните правой кнопкой мыши группу КатегорииПродукты.

  7. В поле Имя диалогового окна Добавление поля или группы введите Категория и нажмите кнопку ОК. В этом поле будут содержаться названия категорий для первого списка.

  8. Щелкните правой кнопкой мыши группу КатегорииПродукты и выберите пункт Добавить.

  9. В поле Имя диалогового окна Добавление поля или группы введите Продукт.

  10. Установите флажок Повторяется и нажмите кнопку ОК. В этом поле будут содержаться названия продуктов для второго списка.

Так как этот список заполняется данными из формы, необходимо добавить данные в форму. Для этого нужно создать значения по умолчанию для полей Продукт и Категория.

Совет

Также можно создавать списки, в которых отображаются значения, вводимые пользователями в форме. Для этого необходимо связать список с полями, привязанными к элементам управления в форме. Когда пользователь вводит значения в элементах управления, варианты выбора в списке меняются.

Создание значений по умолчанию

  1. В меню Сервис выберите пункт Значения по умолчанию.

  2. В диалоговом окне Изменение значений по умолчанию в группе КатегорииПродукты выберите поле Категория (не снимайте флажок), а затем в поле Значение по умолчанию введите Морепродукты.

  3. Выберите поле Продукт (не снимайте флажок), а затем в поле Значение по умолчанию введите Крабовое мясо.

  4. Щелкните правой кнопкой мыши поле Продукт и выберите пункт Добавить Продукт выше. Это позволит добавить еще один продукт для категории "Морепродукты" в качестве значения по умолчанию.

  5. Щелкните правой кнопкой мыши второй экземпляр поля Продукт (не снимайте флажок), а затем в поле Значение по умолчанию введите Лосось.

  6. Щелкните правой кнопкой мыши группу КатегорииПродукты и выберите пункт Добавить КатегорииПродукты ниже. Это позволит добавить еще одну категорию в качестве значения по умолчанию.

  7. Выполните описанные выше действия, чтобы добавить Молочные продукты, Чеддер и Шоколадное молоко в качестве значений по умолчанию для второго экземпляра полей Категория и Продукт.

  8. Нажмите кнопку ОК .

Теперь, когда вы ввели значения по умолчанию для полей Продукт и Категория, вы можете подключить первый список к введенным данным.

Подключение первого списка к данным

  1. В шаблоне формы дважды щелкните раскрывающийся список, который вы вставили ранее.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства раскрывающегося списка в разделе Элементы списка щелкните Подставить значения из источника данных формы.

  4. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  5. В диалоговом окне Выбор поля или группы в группе КатегорииПродукты щелкните поле Категория, а затем два раза нажмите кнопку ОК.

Теперь необходимо подключить второй список к данным. Когда вы будете производить это подключение к данным, потребуется применить фильтр ко второму списку. Этот фильтр будет заполнять второй список соответствующими продуктами в зависимости от категории, выбранной в первом списке. Фильтр сравнивает значение, выбранное в первом списке (поле "список1"), со списком категорий, сохраненным в форме (поле "Категория").

Подключение второго списка к данным

  1. В шаблоне формы дважды щелкните стандартный список, который вы вставили ранее.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства списка в разделе Элементы списка щелкните Подставить значения из источника данных формы.

  4. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  5. В диалоговом окне Выбор поля или группы в группе КатегорииПродукты щелкните поле Продукт, а затем щелкните Фильтрация данных.

  6. В диалоговом окне Фильтрация данных нажмите кнопку Добавить.

  7. В диалоговом окне Задание условий фильтра щелкните Выбрать поле или группу в первом поле.

  8. В диалоговом окне Выбор поля или группы выберите поле список1 и нажмите кнопку ОК.

  9. В диалоговом окне Задание условий фильтра щелкните Выбрать поле или группу в третьем поле.

  10. В диалоговом окне Выбор поля или группы щелкните поле Категория, а затем нажмите кнопку ОК, чтобы закрыть все открытые диалоговые окна.

Теперь, когда вы подключили второй список к данным и применили фильтр, можно протестировать списки, чтобы проверить правильность их работы.

Тестирование списков

  1. Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.

  2. В раскрывающемся списке выберите пункт Морепродукты. В стандартном списке должна появиться пустая строка и пункты Крабовое мясо и Лосось.

    Примечание : С помощью пустой строки пользователь может отменить выбранное в списке значение.

Если списки работают неправильно, проверьте фильтр для второго списка и убедитесь в том, что он сравнивает поле список1 с полем Категория.

К началу раздела

Подключение к внешнему XML-документу

В этом разделе вы узнаете, как создать подключение к данным в XML-документе, содержащем значения продуктов и категорий. XML-документ будет дополнительным источником данных. Чтобы создать это подключение к данным, необходимо создать XML-документ, связать с ним списки в шаблоне формы, а затем применить фильтр ко второму списку, чтобы список продуктов менялся соответствующим образом.

Перед тем как связывать форму с дополнительным источником данных, необходимо создать XML-документ.

Создание XML-документа

  1. Запустите Блокнот или другой текстовый редактор.

  2. Скопируйте и вставьте в текстовый редактор следующие данные в формате XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <ListBoxData>
    <CategoriesAndProducts>
    <Categories>Seafood</Categories>
    <Products>
    <Product>Crab meat</Product>
    </Products>
    <Products>
    <Product>Salmon</Product>
    </Products>
    </CategoriesAndProducts>
    <CategoriesAndProducts>
    <Categories>Dairy</Categories>
    <Products>
    <Product>Chocolate milk</Product>
    </Products>
    <Products>
    <Product>Cheddar</Product>
    </Products>
    </CategoriesAndProducts>
    </ListBoxData>
  3. Сохраните файл на компьютере с именем listBoxData.xml.

Теперь, когда вы создали XML-документ, его можно подключить к шаблону формы. При этом будет создан дополнительный источник данных.

Подключение XML-документа к шаблону формы

  1. В меню Сервис выберите пункт Подключения к данным.

  2. В диалоговом окне Подключения к данным нажмите кнопку Добавить.

  3. В мастере создания подключения к данным выберите пункт Получение данных и нажмите кнопку Далее.

  4. На следующей странице мастера выберите пункт XML-документ, а затем нажмите кнопку Далее.

  5. На следующей странице мастера нажмите кнопку Обзор, выберите файл listBoxData.xml, сохраненный на компьютере, а затем нажмите кнопку Открыть.

  6. На следующей странице мастера выберите пункт Включить данные в шаблон формы или блок шаблона в виде файла ресурса и нажмите кнопку Далее.

  7. На следующей странице мастера в поле Введите имя подключения данных введите listBoxDataXMLFile.

  8. Установите флажок Автоматически извлекать данные при открытии формы. Благодаря этому данные списка будут доступны каждый раз при открытии формы, и пользователю не придется запрашивать их.

  9. Нажмите кнопку Готово.

  10. В диалоговом окне Подключения к данным нажмите кнопку Закрыть.

Теперь все готово для подключения первого списка в шаблоне формы к данным в XML-документе.

Подключение первого списка к данным

  1. В шаблоне формы дважды щелкните раскрывающийся список, который вы вставили ранее.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства раскрывающегося списка в разделе Элементы списка щелкните Искать значения во внешнем источнике данных.

  4. В поле Источник данных выберите listBoxDataXMLFile.

  5. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  6. В диалоговом окне Выбор поля или группы в группе КатегорииПродукты щелкните поле Категории.

    Примечание : Желтый фон диалогового окна Выбор поля или группы указывает на то, что вы работаете с дополнительным источником данных.

  7. Нажмите кнопку ОК два раза.

Теперь необходимо подключить второй список к XML-документу. Когда вы будете производить это подключение к данным, потребуется применить фильтр ко второму списку. Этот фильтр будет заполнять второй список соответствующими продуктами в зависимости от категории, выбранной в первом списке. Фильтр сравнивает значение, выбранное в первом списке (поле "список1"), со списком категорий, сохраненным в форме (поле "Категория").

Подключение второго списка к данным

  1. В шаблоне формы дважды щелкните стандартный список, который вы вставили ранее.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства списка в разделе Элементы списка щелкните Искать значения во внешнем источнике данных.

  4. В поле Источник данных выберите listBoxDataXMLFile.

  5. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  6. В диалоговом окне Выбор поля или группы в группе КатегорииПродукты разверните группу Продукты, а затем щелкните поле Продукт.

  7. Нажмите кнопку Фильтрация данных.

  8. В диалоговом окне Фильтрация данных нажмите кнопку Добавить.

  9. В диалоговом окне Задание условий фильтра щелкните Выбрать поле или группу в первом поле.

  10. В диалоговом окне Выбор поля или группы в поле Источник данных выберите Основной.

  11. Щелкните поле список1 и нажмите кнопку ОК.

  12. В диалоговом окне Задание условий фильтра щелкните Выбрать поле или группу в третьем поле.

  13. В поле Источник данных диалогового окна Выбор поля или группы выберите элемент listBoxDataXMLFile (дополнительный), а затем щелкните Категории.

  14. Закройте все диалоговые окна с помощью кнопки ОК.

Теперь, когда вы подключили второй список к XML-документу и применили фильтр, можно протестировать списки, чтобы проверить правильность их работы.

Тестирование списков

  1. Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.

  2. В раскрывающемся списке выберите пункт Морепродукты. В стандартном списке должна содержаться только пустая строка и пункты "Крабовое мясо" и "Лосось".

    Примечание : С помощью пустой строки пользователь может отменить выбранное в списке значение.

Если списки работают неправильно, проверьте фильтр для второго списка и убедитесь в том, что он сравнивает поле список1 с полем Категория.

К началу раздела

Подключение к базе данных

В этом разделе вы узнаете, как создать подключение к данным в двух таблицах базы данных Access. Для этого нужно связать списки в шаблоне формы с базой данных, а затем применить фильтр ко второму списку, чтобы его содержимое менялось в соответствии со значением, выбранным в первом списке. В этом примере мы предположим, что база данных Access содержит две таблицы с именами "Категории" и "Продукты", которые связаны с помощью поля "КодКатегории", имеющегося в каждой таблице.

Таблица "Категории"    

КодКатегории

ИмяКатегории

1

Морепродукты

2

Молочные продукты

Таблица "Продукты"    

КодПродукта

КодКатегории

ИмяПродукта

1

1

Крабовое мясо

2

1

Лосось

3

2

Шоколадное молоко

4

2

Чеддер

Подключение шаблона формы к источнику данных

Сначала необходимо создать подключение данных между шаблоном формы и таблицами в базе данных. Так как данные выводятся из базы данных, а не изменяются напрямую, база данных Access будет дополнительным источником данных для шаблона формы.

  1. В меню Сервис выберите пункт Подключения к данным.

  2. В диалоговом окне Подключения к данным нажмите кнопку Добавить.

  3. В мастере создания подключения к данным выберите пункт Получение данных и нажмите кнопку Далее.

  4. На следующей странице мастера выберите пункт База данных (только Microsoft SQL Server или Microsoft Office Access) и нажмите кнопку Далее.

  5. На следующей странице мастера щелкните Выбрать базу данных, а затем найдите базу данных Access на жестком диске и дважды щелкните ее.

  6. В диалоговом окне Выбор таблицы щелкните таблицу с данными, которые должны выводиться в первом списке (в этом примере это таблица "Категории"), а затем нажмите кнопку ОК. Таблица будет задана в качестве основной для подключения к данным.

  7. В окне мастера нажмите кнопку Добавить таблицу.

  8. В диалоговом окне Добавление таблицы или запроса щелкните таблицу с данными, которые должны выводиться во втором списке (в этом примере это таблица "Продукты"), а затем нажмите кнопку Далее.

  9. В диалоговом окне Изменение отношения проверьте правильность связующих полей. В этом примере таблицы связаны по полю "КодКатегории".

    Совет : Если связующие поля неправильны, выберите их, а затем щелкните Удалить отношение. Затем щелкните Добавить отношение, выберите правильные поля и нажмите кнопку ОК.

  10. Нажмите кнопку Готово.

    Примечание : В этом примере таблица "Категории" связана с таблицей "Продукты" отношением "один ко многим". Это означает, что в каждой категории может быть много продуктов. В базе данных такое отношение обычно устанавливается с помощью ключевых полей. В этом случае ключевое поле "КодКатегории" позволяет программе Access связывать с категорией соответствующий набор продуктов.

  11. В окне мастера просмотрите структуру источника данных. Она должна содержать две связанные друг с другом таблицы: основную и дополнительную. Чтобы просмотреть поля таблицы, установите флажок Показать столбцы таблицы. Завершив просмотр структуры данных, нажмите кнопку Далее.

  12. Снимите флажок Сохранить копию данных в шаблоне формы и затем нажмите кнопку Далее.

  13. На следующей странице мастера в поле Введите имя подключения данных введите имя подключения к данным.

  14. Установите флажок Автоматически извлекать данные при открытии формы.

  15. Нажмите кнопку Готово, а затем в диалоговом окне Подключения к данным нажмите кнопку Закрыть.

Подключение первого списка к данным

Создав подключение к дополнительному источнику данных, вы можете подключить первый список в шаблоне формы к таблицам базы данных.

  1. В шаблоне формы дважды щелкните раскрывающийся список, который вы вставили ранее.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства раскрывающегося списка в разделе Элементы списка щелкните Искать значения во внешнем источнике данных.

  4. В поле Источник данных должно быть выбрано созданное вами подключение к данным.

  5. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  6. В диалоговом окне Выбор поля или группы щелкните таблицу с данными, которые должны выводиться в раскрывающемся списке (в этом примере это таблица d:Категории), а затем нажмите кнопку ОК.

    Примечание : Желтый фон диалогового окна Выбор поля или группы указывает на то, что вы работаете с дополнительным источником данных.

  7. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Значение.

  8. В диалоговом окне Выбор поля или группы убедитесь в том, что выбрано связующее поле (в этом примере это поле :КодКатегории), а затем нажмите кнопку ОК. Это значение, которое будет сохраняться при выборе пользователем элемента в списке.

  9. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Отображаемое имя.

  10. В диалоговом окне Выбор поля или группы щелкните поле, которое должно выводиться в раскрывающемся списке (в этом примере это поле d:ИмяКатегории).

  11. Нажмите кнопку ОК два раза.

Подключение второго списка к данным

Теперь необходимо подключить второй список к базе данных. Когда вы будете производить это подключение к данным, потребуется применить фильтр ко второму списку. Этот фильтр будет заполнять второй список соответствующими значениями в зависимости от значения, выбранного в первом списке.

  1. В шаблоне формы дважды щелкните стандартный список.

  2. Перейдите на вкладку Данные.

  3. В диалоговом окне Свойства списка в разделе Элементы списка щелкните Искать значения во внешнем источнике данных.

  4. В поле Источник данных должно быть выбрано созданное вами подключение к данным.

  5. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Элементы.

  6. В диалоговом окне Выбор поля или группы разверните основную группу (в этом примере это группа d:Категории), а затем щелкните дополнительную группу, соответствующую таблице с данными, которые должны отображаться в каскадном списке (в этом примере это группа Продукты).

  7. Нажмите кнопку Фильтрация данных.

  8. В диалоговом окне Фильтрация данных нажмите кнопку Добавить.

  9. В диалоговом окне Задание условий фильтра убедитесь в том, что в первом поле выбрано связующее поле из второй таблицы (в этом примере это поле Продукты).

    Важно : Если связующие поля имеют одинаковые имена в обеих таблицах, не ошибитесь при выборе нужного поля. Поля из каждой таблицы сгруппированы в списке. Таким образом, вы можете определить нужное поле по находящимся рядом элементам. В этом примере мы выбираем поле "КодКатегории", которое отображается вместе с другими полями из таблицы "Продукты".

  10. В третьем поле выберите пункт Выбрать поле или группу.

  11. В поле Источник данных диалогового окна Выбор поля или группы выберите элемент Основной, щелкните поле список1, а затем нажмите кнопку ОК.

    Вы настроили фильтр, который сравнивает значение, выбранное в раскрывающемся списке (поле "список1"), со списком значений в стандартном списке.

  12. Нажмите кнопку ОК три раза, чтобы вернуться в диалоговое окно Свойства списка.

  13. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Значение.

  14. В диалоговом окне Выбор поля или группы выберите значение, которое следует сохранять при выборе пользователем элемента в списке. В этом примере необходимо сохранить поле "КодПродукта" для дальнейшего использования. Поэтому мы выбираем группу :КодПродукта, а затем нажимаем кнопку ОК.

  15. Нажмите кнопку Выбрать XPath  Изображение кнопки рядом с полем Отображаемое имя.

  16. В диалоговом окне Выбор поля или группы щелкните поле, которое должно выводиться в списке (в этом примере это поле d:ИмяПродукта).

  17. Нажмите кнопку ОК два раза.

Тестирование списков

Теперь, когда вы подключили второй список к базе данных и применили фильтр, можно протестировать списки, чтобы проверить правильность их работы.

  1. Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.

  2. Выберите значение в раскрывающемся списке. В стандартном списке должны отображаться соответствующие значения из дополнительной таблицы в зависимости от выбранного связующего поля.

Совет : Если списки работают неправильно, проверьте фильтр для второго списка и убедитесь в том, что он сравнивает поле список1 с полем КодКатегории.

К началу раздела

К началу страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×