Хранить данные в csv файла зачастую очень удобно. Всегда можно открыть файл любым текстовым редактором и подправить. Но как быть, если в одном документе у вас есть ссылки на данные из другого? Вам нужно объединить два файла в один, для удобства дальнейшей работы с csv документом. Сделать это вручную – очень трудоемко, с помощью Excel – потребует знания макросов. Но, по счастливой случайности у вас под рукой FastReport.
В этой статье мы рассмотрим, как с помощью FastReport.Net объединить два логически связанных csv файла в один.
Итак, мы имеем два csv файла. Один – список заказов, второй – список клиентов. Нам нужно отображать названия и телефоны клиентов для каждого заказа. Таблица Orders имеет внешний ключ CustNo к таблице Customers. В свою очередь таблица Customers имеет первичный ключ CustNo. Как вы понимаете мы будем связывать две таблицы именно по этому полю.
Создаем новый отчет в дизайнере. Добавляем новый источник данных – CSV файл:
И еще один источник данных – второй файл.
В итоге мы получаем два подключения:
Теперь нам необходимо связать две таблицы. Для этого нажимаем на выпадающее меню «Действия» и выбираем «Новая связь».
Выбираем главную таблицу, например Orders. Подчиненная таблица Customers. Для обеих таблиц определяем поля-ключи. В нашем случае в обеих таблицах ключи называются CustNo:
Теперь обратите внимание на окно «Данные»:
Для таблицы Customers появилась связанная таблица Orders.
Теперь разместим на бэнде «Данные» поле Company из таблицы Customers. А также все поля, кроме CustNo из связанной таблицы Orders. Так как полей достаточно много, они не помещаются на странице отчета. Открываем настройки страницы в верхней панели инструментов «Отчет»:
На вкладке «Прочее» устанавливаем свойства: Широкая страница в дизайнере, бесконечная высота, бесконечная ширина. Последние два свойства позволят расширить страницу отчета до необходимых размеров в режиме просмотра отчета.
Перед экспортом отчета в CSV файл я дам пару советов по форматированию. Чтобы экспорт не содержал лишние колонки и строки, старайтесь располагать поля на странице встык. А длч заголовка данных уменьшаем высоту до минимума:
Теперь запускаем отчет в режиме предварительного просмотра.
Нажимаем кнопку «Сохранить» и выбираем «CSV формат…». Соглашаемся с установками экспорта по умолчанию и задаем расположение сохранения файла. В результате – имеем csv файл с информацией о заказах и именем компании вместо идентификатора CustNo.
Таким способом можно объединить сколь угодно много таблиц из разных csv-файлов. Создание такого объединенного файла заняло у нас 10 минут. А сколько бы вы потратили времени если бы подбирали имена компаний по идентификатору вручную?