Создание отчётов — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
| Строка 5: | Строка 5: | ||
Свои отчёты вы можете сделать интерактивными. К примеру, перед его формированием, предложить пользователю указать необходимый период времени или выбрать другие параметры. | Свои отчёты вы можете сделать интерактивными. К примеру, перед его формированием, предложить пользователю указать необходимый период времени или выбрать другие параметры. | ||
[[Файл:reports.png|right|640px]] | [[Файл:reports.png|right|640px]] | ||
| + | |||
| + | Для генерации отчётов необходимо создать шаблоны отчётов. | ||
| + | Сделать это можно в меню "Главное меню"->"Шаблоны документов" | ||
| + | |||
| + | В левой части окна расположены категории отчётов. Часть отчётов предзадана и мы не рекомендуем их удалять. | ||
| + | Чтобы создать новый отчёт необходимо выбрать первый пункт в дереве типов шаблонов "-- Новый шаблон --" и указать параметры шаблона справа. | ||
| + | Выберите тип шаблона, его имя и задайте тело шаблона. С помощью кнопки "Сохранить" на панели инструментов сохраните его. Кнопка "Предпросмотр" служит для предварительного просмотра созданного шаблона | ||
| + | |||
| + | === Краткая информация по синтаксису шаблонов === | ||
| + | Обозначение переменных: | ||
| + | <pre> | ||
| + | ${value1} | ||
| + | ${object.value} | ||
| + | </pre> | ||
| + | Вызов функций и методов | ||
| + | <pre> | ||
| + | ${int(a)} | ||
| + | ${object.method()} | ||
| + | </pre> | ||
| + | Вычисления | ||
| + | <pre> | ||
| + | ${a+100} | ||
| + | ${(1/2)+200**7} | ||
| + | </pre> | ||
| + | |||
| + | Выполнение кода на языке python в теле отчёта | ||
| + | <pre> | ||
| + | <% | ||
| + | import datetime | ||
| + | #получение текущего времени | ||
| + | now = datetime.datetime.now() | ||
| + | %> | ||
| + | </pre> | ||
| + | Цикл for в теле отчёта | ||
| + | <pre> | ||
| + | %for account in accounts^ | ||
| + | ${account.id}, ${account.username} | ||
| + | %endfor | ||
| + | </pre> | ||
| + | |||
| + | === Доступ к rpc серверу из отчёта === | ||
| + | В самом начале работы отчёта уже присутствует переменная connection, которая хранит в себе подключение к rpc серверу. | ||
| + | Доступ к rpc серверу понадобится вам в том случае, если вы захотите получить доступ к данным, хранящимся в базе данных. Помимо доступа к данным вам будут доступны другие функции rpc сервера. Такие как сброс активной сессии на севрере доступа, активация/деактивация пользователя на сервере доступа и многие другие. | ||
| + | Основные функции | ||
| + | '''sql'''() - выполнение запроса. Функция возвращает результат вопроса в виде списка объектов записей | ||
| + | '''get_model'''(id, table_name) - получить конкретную запись из указанной таблицы по её id | ||
| + | '''get_models'''(table_name) - получить список записей из указанной таблицы | ||
| + | |||
| + | Пример: | ||
| + | <pre> | ||
| + | <% | ||
| + | accounts = connection.get_model("billservice_account") | ||
| + | %> | ||
| + | <table> | ||
| + | <tr> | ||
| + | <td>id</td><td>username</td> | ||
| + | </tr> | ||
| + | %for account in accounts: | ||
| + | <tr> | ||
| + | <td>${account.id}</td><td>${account.username}</td> | ||
| + | </tr> | ||
| + | %endfor | ||
| + | </table> | ||
| + | </pre> | ||
| + | В примере производится выборка всех аккаунтов и вывод их id и имён пользователей в виде таблицы. | ||
| + | === Документация по синтаксису шаблонов === | ||
| + | * http://www.makotemplates.org/ | ||
| + | |||
| + | === Особенности работы с шаблонами в ExpertBilling === | ||
Версия 14:57, 15 марта 2011
В ExpertBilling 1.4 внедрена принципиально новая система работы с отчётами. Сейчас вы сами сможете задать их внешний вид, а, также, создавать новые виды отчётов и документов. Из тела отчёта можно обратиться к rpc серверу, выполнить выборки из базы данных и отформатировать их в удобном для вас виде.
Свои отчёты вы можете сделать интерактивными. К примеру, перед его формированием, предложить пользователю указать необходимый период времени или выбрать другие параметры.
Для генерации отчётов необходимо создать шаблоны отчётов. Сделать это можно в меню "Главное меню"->"Шаблоны документов"
В левой части окна расположены категории отчётов. Часть отчётов предзадана и мы не рекомендуем их удалять. Чтобы создать новый отчёт необходимо выбрать первый пункт в дереве типов шаблонов "-- Новый шаблон --" и указать параметры шаблона справа. Выберите тип шаблона, его имя и задайте тело шаблона. С помощью кнопки "Сохранить" на панели инструментов сохраните его. Кнопка "Предпросмотр" служит для предварительного просмотра созданного шаблона
Содержание
Краткая информация по синтаксису шаблонов
Обозначение переменных:
${value1}
${object.value}
Вызов функций и методов
${int(a)}
${object.method()}
Вычисления
${a+100}
${(1/2)+200**7}
Выполнение кода на языке python в теле отчёта
<% import datetime #получение текущего времени now = datetime.datetime.now() %>
Цикл for в теле отчёта
%for account in accounts^
${account.id}, ${account.username}
%endfor
Доступ к rpc серверу из отчёта
В самом начале работы отчёта уже присутствует переменная connection, которая хранит в себе подключение к rpc серверу. Доступ к rpc серверу понадобится вам в том случае, если вы захотите получить доступ к данным, хранящимся в базе данных. Помимо доступа к данным вам будут доступны другие функции rpc сервера. Такие как сброс активной сессии на севрере доступа, активация/деактивация пользователя на сервере доступа и многие другие. Основные функции sql() - выполнение запроса. Функция возвращает результат вопроса в виде списка объектов записей get_model(id, table_name) - получить конкретную запись из указанной таблицы по её id get_models(table_name) - получить список записей из указанной таблицы
Пример:
<%
accounts = connection.get_model("billservice_account")
%>
<table>
<tr>
<td>id</td><td>username</td>
</tr>
%for account in accounts:
<tr>
<td>${account.id}</td><td>${account.username}</td>
</tr>
%endfor
</table>
В примере производится выборка всех аккаунтов и вывод их id и имён пользователей в виде таблицы.