пользователям программных продуктов Scala 5.1, iScala 2.1, iScala 2.2, iScala 2.3, iScala 3.0, iScala 3.1, iScala 3.2 (и так далее)

Использование внешней таблицы с первичными данными. Как сделать отчёт с бюджетами по дням?

      «Артиллерия не стреляла по двадцати причинам;

во-первых, не было снарядов…»

 

Сколь ни был бы мощен наш инструментарий для дизайна отчётов, тем не менее, мы может столкнуться с, казалось бы, неразрешимой проблемой отсутствия «снарядов» (первичных данных в исходной ERP-системе).

Как известно, в настоящий момент нет возможности завести в iScala 3.0 бюджеты по дням (бюджетирование ведётся только по периодам).

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

Цитата из родительской статьи:

Третий способ — использование «внешней таблицы». Кстати, знаете ли Вы, что AFR может читать данные из внешней таблицы? Этот метод подробно рассматривать не будем в силу его «нестандартности», однако отдельный материал о том, как обращаться из AFR к «внешним» данным, будет обязательно подготовлен

Итак, «снаряды» подвезли. Дальнейший наш план таков:

  1. Импортировать данные из Excel-файла базу данных AFR
  2. Добавить обращение к новым данным в структуру AFR-отчёта при помощи функциональности custom query

Представим, что у нас есть исходный Excel-файл подобного вида

1

Импортировать данные из Excel-файла базу данных AFR можно при помощи стандартной функциональности импорта в SQL Management Studio.

Как сделать импорт из Excel-файла в SQL-таблицу
Нажимаем правой кнопкой на нашу AFR базу с финансовыми данными и выбираем Tasks->Import

В появившемся диалоговом окне определяем Microsoft Excel как Data Source и указываем путь к нашему файлу с дневными бюджетами. Первая строка у нас будет содержать наименования столбцов, поэтому, ставим соответствующую галку.

2

На следующей странице необходимо выбрать SQL Native Client  и имя нашей AFR базы должно подставиться автоматически.

3

На следующем шаге выбираем опцию копирования данных.4

Следующий шаг позволяет нам выбрать лист Excel-файла, данные которого будут перенесены в SQL-таблицу.

Необязательная опция: при желании вы можете изменить формат поля в SQL-таблице, используя кнопку Edit Mapping.

5

Далее всё банально: Next – Next – Finish, и новая таблица вместе с данными будет создана в AFR базе.

6

7

Использование внешних данных в AFR при помощи custom query

Теперь давайте откроем AFR Designer и рассмотрим, как получить доступ к внешним данным.

 

Для этого откройте набор строк и добавьте новое свойство типа Query (Row Set –Details – User Properties). Определим его имя как DailyBudget и нажмём на кнопку (…) для определения значений.

Появится окно Query Builder и наша новая таблица доступна для выбора

8

Выберем поле Budget из таблицы DailyBudget$, а также отфильтруем данные по дню и по маске счёта.

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

Важно помнить, что наше SELECT-выражение должно возвращать только одно значение, поэтому надо внимательно подбирать WHERE условие. Если будет возвращено более одной строки, то в AFR отчёте будет пустое значение.

9

Теперь давайте рассмотрим, как использовать эти данные из свойства DailyBudget в колонках. Да очень просто! Добавляем колонку с ссылкой на свойство DailyBudget и всё!

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

a

Для тестового примера давайте создадим простейший Row Set с одной строкой Account List.

b

И не менее простой отчёт, который базируется на дневных данных.

c

И, наконец, давайте взглянем на результат нашего творчества.

Result

Мы сделали это – получили отчёт с дневными бюджетами!

И, что не менее важно, мы научились использовать данные из внешних таблиц, что значительно расширяет наши возможности.

Замечу, что мы можем обращаться не только к таблицам AFR базы, но и к другим базам на этом SQL-сервере, где у вашего аккаунта есть права. Для этого путь к таблице должен также содержать имя базы и схемы данных.

e

Если у Вас возникли какие-либо вопросы, не стесняйтесь их задать.

Список опубликованных процедур: