Создание отчётов — различия между версиями

Материал из ExpertBilling
Перейти к: навигация, поиск
Строка 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 ===

Версия 15:57, 15 марта 2011

В ExpertBilling 1.4 внедрена принципиально новая система работы с отчётами. Сейчас вы сами сможете задать их внешний вид, а, также, создавать новые виды отчётов и документов. Из тела отчёта можно обратиться к rpc серверу, выполнить выборки из базы данных и отформатировать их в удобном для вас виде.

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

Reports.png

Для генерации отчётов необходимо создать шаблоны отчётов. Сделать это можно в меню "Главное меню"->"Шаблоны документов"

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

Краткая информация по синтаксису шаблонов

Обозначение переменных:

${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 и имён пользователей в виде таблицы.

Документация по синтаксису шаблонов

Особенности работы с шаблонами в ExpertBilling