Использование MS Excel

Материал из AutoPark
Перейти к: навигация, поиск

Содержание

Отчеты с использованием сводных таблиц

Для удобства часть отчетов выполнена в виде сводных таблиц Excel. Помечаются в меню АвтоПарка знаком "[E]". Для каждого периода (или даты) выполнения отчета имеется возможность сохранить данные и внешнее представление отчета, чтобы воспользоваться ими впоследствии.

Прежде всего, для работы Excel-отчетов на конкретном компьютере, необходимо выполнить в АвтоПарк "Главное меню-Прочее-Администратор-Настройка системного окружения-... для работы с MS Excel".

Термины

<форма_отчета>
Название программного модуля, выполняющего отчет. Так же этим именем назван шаблон отчета и подпапка в папке BASIS, содержащий книги Excel и файлы базисов.
<шаблон_отчета> 
Файл Excel, служащий образцом при создании нового отчета. Не содержит никаких данных и определяет лишь внешний вид нового отчета (группировка и сортировка данных, фильтры, раскраска и т.п.). Для одной формы отчета может быть подготовлено несколько шаблонов, (если для данной формы надо настроить много разных сводных таблиц, помещение их в один шаблон может создавать неудобства - например, длительное время обновления отчета).
Шаблон имеет имя <форма_отчета> или <форма_отчета>#NN, где # - символ "#", NN - номер шаблона. Например "T9021#01". Расширение - XLT.
<экземпляр_отчета>
Комплект из трёх файлов: книги и базиса. Имеет уникальное имя, присваиваемое файлам базиса и XLS-файлу книги. Его можно увидеть в заголовке окна Excel или в отчете на листе "Заголовок", там же рядом показан путь к этим файлам. Правила формирования имени экземпляра отчета:
На дату
<имя>_YYYYMMDD
За период (маленькие буквы - конец периода)
полный месяц
<имя>_YYYYMM
в пределах месяца
<имя>_YYYYMM_DD_dd
несколько полных месяцев
<имя>_YYYYMM_yyyymm
остальное
<имя>_YYYYMMDD_yyyymmdd,
где <имя> для книги = <шаблон_отчета>, для файлов базиса = <форма_отчета>.
Книга
Собственно отчет, сводная таблица Excel, построенная на основе шаблона и содержащая в себе данные из базиса. Внешний вид книги можно изменить (пересортировать данные, раскрасить таблицы) и сохранить, чтобы при следующем открытии отчета он предстал в том же виде. Находится в папке BASIS\<форма_отчета>\.
Базис
Данные, подготовленные в системе для отражения с помощью Excel. В случае каких-либо изменений в базе данных, которые должны повлиять на отчет, базис необходимо создать заново. Состоит из двух текстовых файлов: <экземпляр_отчета>.TXT – содержит данные, и <экземпляр_отчета>.CSV – содержит сведения о периоде (дате), за который(-ую) выполнялся отчет, исполнителе, подготовившем базис, дате создания отчета и его названии. Находятся в папке BASIS\<форма_отчета>\.
Обновить данные
При выборе в Excel кнопки Обновить данные с таким названием или пункта меню "АвтоПарк"-"Обновить данные" данные из базиса заносятся в сводную таблицу. Не путать со стандартным пунктом меню Excel "Данные"-"Обновить данные".

Шаблоны отчетов

Виды шаблонов

Шаблоны, предоставляемые Разработчиком
предоставляются с заранее разработанными формами отчетов. Шаблоны, предоставляемые Разработчиком, недоступны для редактирования.
Пользовательские шаблоны
находятся в папке XLT. Ни при каких обстоятельствах не модифицируются Разработчиком.

Выбор шаблонов

При формировании отчета сначала выполняется поиск соответствующего шаблона в папке с пользовательскими шаблонами, если шаблон не найден - в локальных шаблонах, затем в папках с системными шаблонами. Если найдено более одного подходящего шаблона, пользователю будет предложен список из всех доступных шаблонов. По умолчанию в списке доступных шаблонов отображаются только пользовательские шаблоны. Если необходим принудительный доступ к шаблонам, предоставляемым Разработчиком, необходимо включить соответствующий режим доступа ("Главное меню-Прочее-Сервис-Настройки-Показывать MS Excel шаблоны, предоставленные разработчиком"). В списке доступных шаблонов шаблон, предоставляемый Разработчиком, будет с пометкой "Образец". В списке доступных шаблонов существует возможность загрузки (занимает время) описания шаблонов - дополнительная информация, позволяющая облегчить выбор шаблона из списка доступных шаблонов.

Создание нескольких шаблонов одного отчета

Некоторые отчеты требуется отображать в различных разрезах. Это приводит к увеличению количества листов в XLT-шаблоне и увеличению времени обновления. Чтобы избежать перегруженности отчета данными, существует возможность использования нескольких вариантов шаблона для одного отчета. Для создания дополнительного шаблона необходимо скопировать основной шаблон со специальным именем: <имя XLT-шаблона>#NN.xlt, где NN - двухзначный номер варианта шаблона (рекомендуется начать с номера 01, последующие варианты нумеровать в порядке возрастания). При подготовке отчета в АвтоПарке будет предложено выбрать нужный шаблон из списка доступных.

Подготовка шаблона

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

Для подготовки шаблона необходимо выполнить следующие действия:

  1. Выполнить отчет и привести его к желаемому виду:
    1. Откройте любой имеющийся отчет или изготовьте новый, сделайте копию листа "Исходная", настройте нужный вид отчета.
    2. Когда получили на листе то, что хочется, дайте этому листу понятное название.
    3. Если требуется несколько разных форм (а обычно требуется), повторить п. 2-3 для каждой формы.
    4. В шаблон может быть добавлено текстовое описание. Рекомендуется размещать описание на листе "Заголовок". Добавление текстового описания:
      MS Office 2007
      Выделить ячейку, в которой будет находиться описание, на вкладке "Формулы" в группе "Присвоенные имена" выберите команду "Присвоить имя". В диалоговом окне "Создание имени" в поле "Имя" укажите имя "RepComment".
      MS Office XP-2003
      Выделить ячейку, в которой будет находиться описание, пункт меню "Вставка" - "Имя" - "Присвоить", присвоить имя "RepComment".
  2. В меню Excel «АвтоПарк» - «Подготовка шаблона» выбрать один из режимов подготовки Excel-шаблонов:
    БЕЗ зачистки данных
    Автоматически будет создан шаблон по подготовленному отчету с сохранением всех пользовательских настроек этого отчета (группировка, скрытие/отображение данных и т.п.).
    с ЧАСТИЧНОЙ зачисткой данных
    в этом режиме сохраняются пользовательские настройки в полях области страницы сводной таблицы и группировки полей. Из-за особенностей работы MS Excel могут быть сохранены только "пользовательские фильтры" (установка пользовательского фильтра в MS Excel 2007, установка пользовательского фильтра в MS Excel 2003), установленный отбор по единственному значению из списка возможных значений НЕ СОХРАНЯЕТСЯ. Таким образом, если в шаблоне требуется сохранить отбор по конкретному значению поля сводной таблицы, необходимо наложить пользовательский фильтр так, чтобы это значение осталось единственным доступным из всех возможных. Подготовка шаблона в этом режиме может занимать продолжительное время.
    с ПОЛНОЙ зачисткой данных
    Перед созданием шаблона будут зачищены все сводные таблицы отчета, все пользовательские настройки будут потеряны.
  3. После окончания процедуры подготовки будет предложено сохранить шаблон (по умолчанию - в папку пользовательских шаблонов \AutoPark\XLT) с возможностью изменить имя шаблона. Если шаблон с указанным именем уже присутствует в выбранной папке, перед сохранением будет сделана резервная копия существующего шаблона с именем <имя шаблона>.xl_.

Удаление/переименование поля

При получении уведомления о переименовании или об объявлении устаревшими полей Excel-отчета необходимо внести исправления в каждый имеющийся пользовательский шаблон этого отчета. При переименовании поля в уведомлении указывается старое и новое наименование поля, а также указывается срок (как правило, 30 дней), по окончании которого поле со старым наименованием/объявленное устаревшим будет удалено. Для исправления пользовательских шаблонов необходимо:

  1. Сформировать новый отчет.
  2. На каждом листе отчета заменить устаревшие поля на новые или удалить. Не забывать, что в сводной таблице поля могут быть переименованы и следует ориентироваться на "Исходное имя поля".
  3. На каждом листе отчета проверить, не используются ли удаляемые поля в формулах вычисляемых полей, при необходимости внести исправления.
  4. На основании исправленного отчета выполнить подготовку шаблона.

Ранее подготовленные отчеты

Если отчет выполняется за период (или дату), за который(-ую) он уже ранее запускался (т.е. базис уже создан), пользователю будет предложен выбор:

"Использовать имеющийся базис и Excel книгу" 
Будут использоваться базис и книга, полученные при предыдущем выполнении отчета. Данный пункт может отсутствовать, если отсутствует книга (например, удалена в целях экономии места на сервере).
"Использовать имеющийся базис и Excel шаблон"
Будет взят готовый базис, но старая книга будет удалена (если она существовала) и создана заново на основе шаблона.
"Заново построить базис"
Будут заново подготовлены данные базиса с учетом изменений в системе, которые произошли с момента предыдущего запуска отчета. Книга будет создана заново на основе шаблона.

Полезные приемы

Разделение поля ФИО по столбцам отчета

Разделение возможно только в обычных таблицах Excel, в сводных таблицах эта операция не может быть выполнена.

  1. При разделении текста по столбцам данные вставляются в режиме замены в соседние столбцы справа, заменяя данные и в текущем столбце. Если в заменяемых столбцах присутствуют данные, Excel выдаст соответствующее предупреждение. Для сохранения этих данных перед разделением текста рекомендуется либо вставить несколько (по количеству элементов ИО, разделенных пробелом, как правило - 2) столбцов справа от текущего столбца, либо указать начальную ячейку столбца, в которую будет помещен первый элемент (поле "Поместить в" мастера разделения текста по столбцам). Остальные элементы будут помещены в соседние столбцы справа от указанного.
  2. Выделить колонку
  3. Меню: Данные -> Текст по столбцам
Формат данных
С разделителем
Символ разделитель
Пробел

Размещение папки хранения отчетов вне папки AutoPark

  1. При размещении папки хранения отчетов вне папки AutoPark папки BASIS и XLT размещаются только совместно (нельзя папку BASIS перенести, а XLT нет, и наоборот).
  2. Наличие в путях к BASIS и к XLT папки с именем AutoParkBasisAndXLT (или любой другой, содержащей в имени AutoPark) обязательно.
  3. Копирование папок необходимо выполнять с сохранением разрешений NTFS. Это можно сделать, используя консольную команду xcopy (для получения справки о ключах команды наберите xcopy /?): Для выполнения консольных команд нажмите в Windows Пуск -> Выполнить. Введите команду cmd и нажмите ОК. В открывшемся окне введите:
    • xcopy /E /I /H /R /K /O /X AutoPark\BASIS \\Server1\AutoParkBasisAndXLT\BASIS. Копируются все вложенные папки и файлы.
    • xcopy /I /H /R /K /O /X AutoPark\XLT \\Server1\AutoparkBasisAndXLT\XLT. Копируются только пользовательские шаблоны.
  4. После копирования необходимо открыть общий доступ к папке \\Server1\AutoparkBasisAndXLT и проверить сетевые разрешения.
  5. В RED-файле в раздел [ASB Special Folders] необходимо добавить новый путь в формате UNC
    BasisRoot = путь к папке, где необходимо хранить отчеты, например, \\Server1\AutoParkBasisAndXLT\BASIS.
  6. Для размещения пользовательских шаблонов в папке, отличной от AutoPark\XLT, необходимо в RED-файле:
    1. в разделе [ASB Special Folders] добавить новый путь в формате UNC
      xltRoot = путь к папке, где необходимо хранить пользовательские шаблоны, например, \\Server1\AutoparkBasisAndXLT\XLT. Шаблоны, предоставляемые разработчиком (находятся в папках AutoPark\XLT\LOCAL и AutoPark\XLT\TMP_LIB) не перемещаются.
    2. в разделе [Redirection] поправить строку *.xlt = xlt;xlt\local;xlt\tmp_lib;$_lib\xlt\ap;$_lib\xlt\sys.
      Исправленная строка должна быть такой: *.xlt = $(xltRoot);xlt\local;xlt\tmp_lib;$_lib\xlt\ap;$_lib\xlt\sys.
  7. Чтобы изменения red файла вступили в силу, пользователям необходимо перезайти в АвтоПарк.
  8. После проверки работоспособности Excel-отчетов рекомендуется все пользовательские шаблоны, находящиеся в папке AutoPark\XLT, заархивировать, архив перенести для хранения, и удалить все пользовательские шаблоны.

Известные проблемы

Ошибка при удалении файла <имя отчета>.xls

При формировании Excel-отчета возможно возникновении ошибки "Ошибка при удалении файла <имя отчета>.xls. Файл используется на других рабочих станциях или доступ к файлу запрещен" либо "Не удалось удалить файл <имя отчета>.xls. Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". Возможные причины возникновения:

"AUTOPARK.XLS уже используется. Редактирование AUTOPARK.XLS запрещено пользователем XXX"

Необходимо проверить права на папку ASBClient - права на запись должны быть только у Администратора ДОМЕНА.

"RunTime Error 1004 Не удалось найти файл AUTOPARK.XLS" или "Compile error: Can't find project or library"

Возможные причины возникновения:

"RunTime error 91 ... variable not set"

При открытии Excel-отчета ошибка "RunTime error 91 ... variable not set". Следует снять галочку в AVP Касперского "макросы" - "включить постоянную проверку VBA-макросов".

Прочие RunTime ошибки или завершение работы Excel с ошибкой

При возникновении RunTime ошибок с другим номером рекомендуется в папке AutoPark\BASIS\Имя отчета найти последний по дате (самый новый) рабочий xls-отчет (т.е. при открытии отчета не случается ошибки) и на основе этого отчета переформировать шаблон XLT.

В данных какие-то 7,78755Е-12?

При суммировании данных в большом количестве ячеек Excel "путается" и показывает очень малое число (что-то в минус большой степени) вместо нуля. Это ошибка Excel, поскольку исходные данные представлены с конкретной точностью и должны в сумме давать чистый ноль. Для исправления ситуации следует задать формат вывода (числа) проблемного поля (в мастере сводных таблиц) с необходимым количеством знаков после точки.

Вместо значений вычисляемых полей выводится #ИМЯ?

Иногда в Excel 2007 и 2010 вычисляемые поля выводятся как #ИМЯ?, при этом в Excel 2003 и более ранних такой отчет открывается корректно. Четкой закономерности появления ошибки выявить не удалось. Единственный способ исправления ошибки - удалить испорченные вычисляемые поля и создать заново, исправленный отчет сохранить в качестве шаблона.

Отчеты с использованием технологии OLE

Технология OLE позволяет использовать в ячейках Excel формулы, извлекающие данные из АвтоПарка, что позволяет реализовать сложные отчеты, например, требующие настройки состава выдаваемой информации, а также отчетов, в которых наряду с данными АвтоПарка выводится другая информация (например, данные из отчетов прошлых периодов). Помечаются в меню АвтоПарка знаком "[O]".

Необходимые настройки

Для работы отчета необходимо, чтобы на компьютере была выполнена сетевая инсталляция АвтоПарка
Excel 2010
Выбрать закладку "Файл". В появившемся окне перейти на закладку "Параметры", далее на закладку "Центр управления безопасностью". Нажать кнопку "Параметры центра управления безопасностью". В открывшемся окне перейти на закладку "Параметры макросов" и поставить галочку "Доверять доступ к объектной модели VBA".
Excel 2007
Нажать кнопку MS Office.jpg, в появившемся окне нажать кнопку "Параметры Excel". Перейти на закладку "Центр управления безопасностью". Нажать кнопку "Параметры центра управления безопасностью". В открывшемся окне перейти на закладку "Параметры макросов" и поставить галочку "Доверять доступ к объектной модели VBA".
Excel XP/2003
Сервис - Макрос - Безопасность, на закладке "Надежные источники" поставить галочку "Доверять доступ к объектной модели VBA".

Если этого не сделать, то при открытии отчета возникает ошибка "Compile error: Sub or Function not defined".

Известные проблемы

"Compile Error: User-defined type not defined"

Из-за ошибки в MS Excel при открытии отчета в редких случаях может выдаваться указанное в заголовке сообщение об ошибке. Способ обойти проблему: открыть отчет с отключенными макросами, сохранить его, закрыть Excel, открыть отчет с включенными макросами.

Automation Error. Неопознанная ошибка

Может возникать на MS Excel 2010. В этом случае помочь могут следующие действия:

  1. Обновить MS Excel 2010. Должна быть версия не меньше, чем 14.0.6112.1000.
  2. Открыть отчет с пользователем, имеющим права на запись в папку $_LIB\XLA\SYS. Включить макросы.
  3. Будут возникать ошибки "Compile Error: User-defined type not defined" - нажимать "ОК", пока они не кончатся.
  4. В Excel перейти в редактор Visual Basic ("Alt+F11"), убедиться, что в списке проектов (левое верхнее окно) нет "AP_OLE (AP_OLE.XLA)", и есть другой проект с расширением XLA (Например, "STMAN (STMAN.XLA)" или "CAR (CAR.XLA)"), выделить его.
  5. В редактор Visual Basic открыть "Tools" - "References..." вручную добавить ссылку на AP_OLE.XLA: Нажать кнопку "Browse", найти и выбрать $_LIB\XLA\SYS\AP_OLE.XLA, закрыть диалог "References", сохранить проект ("Ctrl+S"), закрыть редактор Visual Basic.
  6. Закрыть Excel.

"Subscript out of range"

Решение проблемы: при получении такой ошибки продолжить открытие отчёта (выбрать "End"), сохранить его, закрыть Excel и открыть отчет снова из АвтоПарк. После этого может произойти такая же ошибка - это нормально, следует повторить то же самое ещё раз. После максимум 3-4 раз отчет должен "заработать". Может возникать после обновления используемых в отчете Excel-модулей (XLA) разработчиком. Дело в том, что Excel хранит в своих файлах прямые ссылки на связанные модули. Если имеющаяся в файле ссылка оказывается неверной, эта ссылка исправляется, но затем возникает данная ошибка. Если "портятся" сразу несколько ссылок, то исправятся они только после нескольких "исправлений".

"System Error &H80040111(-2147221231). Требуемый класс отсутствует в ClassFactory"

Причина - ошибка в MS Excel 2010 версий меньше, чем 14.0.6112.1000. Решение проблемы: обновить MS Excel 2010.

Работа с отчетами

Меню Excel "АвтоПарк"

В меню Excel "АвтоПарк" имеются специальные пункты для работы с OLE-отчётами:

Слепок
Копирует подготовленный отчёт за месяц на новый лист книги Excel, заменяя все формулы вычисленными значениями.
Пересчитать
Производит пересчёт всех формул на листе, подготавливая наборы данных, только если их нет.
Перестроить индексы
Подготавливает все наборы данных, даже если они существуют, и производит пересчёт всех формул на листе.
Настройка ASL
Используется только в процессе разработки отчета.
Построить список
Используется в отчетах-построителях списков. Заполнение отчета по подготовленной форме с помещением полученных данных на новый лист (делается "слепок").
Вставить определение поля
Используется в отчетах-построителях списков. Серия диалогов ("мастер") для построения определения значения, которое нужно выводить.

'Обычные' OLE-отчеты

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

Для подготовки такого отчета обычно следует ввести в специально выделенные ячейки параметры отчета (например, дата или период отчета), выполнить пункт "Пересчитать", сохранить полученный отчет с помощью пункта "Слепок".

Специальный отчет - построитель разовых списков

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

Подготовка отчета производится следующим образом:

  1. Указать дату, на которую строится список.
  2. С помощью пункта "Вставить определение поля" настроить набор сведений, выводимый в отчет.
  3. В случае, если в отчет добавлялись столбцы, в строках-заготовках отчета настроить формулы, для этого надо скопировать формулы из любой (кроме первой) ячейки той же строки. При этом в ячейке должны появиться требующиеся данные.
  4. С помощью пункта "Построить список" получить список объектов с необходимыми данными на другом листе.
  5. Подготовленный список обработать средствами Excel, если требуется - изменить сортировку, применить фильтр, оформить внешний вид. Система всегда готовит "полный" список объектов, например, в список работников выводятся все работники, числящиеся в штате на дату отчета. Если нужен список только объектов с определенными свойствами, следует вывести эти свойства в отчет, а затем отсортировать список по этим свойствам и удалить лишние строки.

Выгрузка произвольных файлов в Excel

Для самостоятельного изготовления отчетов можно воспользоваться выгрузкой произвольных файлов в Excel. Доступны три варианта выгрузки:

Весь текущий файл
"F7-Выгрузка в Excel-Весь текущий файл". Будут выгружены записи текущего файла.
Текущая запись файла
"F7-Выгрузка в Excel-Текущая запись файла". Будет выгружена одна выбранная запись текущего файла.
Выбрать файл
"Главное меню-Прочее-Сервис-Выгрузка в Excel-Выбрать файл". Будет предложен перечень всех файлов базы данных для выбора файла для выгрузки.

В зависимости от выгружаемого файла доступны разные варианты выгрузки:

Файлы, чьи записи относятся к конкретной дате
Только записи за отчетный период.
Файлы, чьи записи имеют период действия
Все записи.
Только действующие записи на текущую дату.
Только записи за отчетный период.
Остальные файлы
Все записи.

Кроме того, можно выбрать перечень связанных с выгружаемым файлов (подчиненных или справочников), которые будут выгружены на отдельные листы MS-Excel. Связанные файлы выгружаются не полностью, а лишь те записи, которые связаны с выгружаемыми записями основного файла.

Названия полей выгруженного файла будут выведены в первой строке листа Excel, в соответствии со структурой базы данных. Для получения привычного вида отчета, можно оформить новый лист Excel, в который скопировать данные из листов, созданных в результате выгрузки. Для того, чтобы увязать между собой коды справочника на одном листе и содержимое этого справочника (например, значения поля "Наименование") из листа с содержимым этого справочника, можно воспользоваться функцией Excel ВПР:

  • В качестве параметра "Искомое_значение" указываем ячейку в этой же строке, в которой выведен код справочника.
  • В качестве параметра "Таблица" на странице с данными справочника нужно выделить несколько столбцов таким образом, чтобы первым столбцом был столбец с кодами справочника, а последним - столбец с наименованиями.
  • В качестве параметра "Номер_столбца" указываем порядковый номер столбца с наименованиями, считая столбец с кодами справочника за первый.
  • В параметре "Интервальный_просмотр" указываем 0.

Проблемы совместимости Excel 2003 и Excel 2007

Лучше, конечно, сказать - проблемы несовместимости.

"В книге обнаружено содержимое, которое не удалось прочитать"

Такое сообщение возникает при открытии в MS Excel 2007 книги, изготовленной (сохраненной) в MS Excel 2003 (или более ранней версии). Проблема проявляется лишь иногда - только в некоторых книгах шаблонах и/или книгах. Следует выбирать "Да" из двух предложенных MS Excel вариантов ("Пробовать восстановить? Да/Нет"). Никакой закономерности в том, когда и почему возникают такие галлюцинации, пока не установлено. Да, собственно, и проблемой это не является - просто несколько надоедает. Лекарство - переход на какую-нибудь одну версию MS Office, по крайней мере, в пределах одного отдела (службы).

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
Другие ресурсы