ЄС-11

Цифрова комутаційна система

Науково-виробничий центр
"Автоматизовані мікропроцесорні системи"
ЄДРПОУ: 13807402 тел: +380-32-237-21-36

Користувальницькькі налаштування

Налаштування сайту


extrasoft:agnreport:index

Програма AgnReport

Програма AgentRpt - засіб формування звітів, використовуючи дані баз MySQL сервера. Основні функції програми:

  • Ручне формування звітів
  • Автоматичне формування звітів
  • Вивід даних на екран
  • Вивід даних у файл
  • Вивід даних на друк
  • Використання різних шаблонів відображення
Системні вимоги:
  • Windows 95, 98, ME, 2000, XP
  • Процесор 400 Мгц/128 Мбайт ОЗП/4 Гбайт HDD

Опис програми

Програма AgnReport здійснює запити до MySQL сервера і відображає отримані дані згідно шаблонів з налаштувань користувача. Шаблоном може бути TXT-файл, в якому спеціальними ключовими послідовностями визначено розміщення окремих елементів SQL-відповіді, RTF-файл, чи XSL-файл, в якому описано схему перетворення результатів виконання SQL-запиту. Загальний вигляд вікна програми:

Вигляд головного вікна AgentRpt

Основні елементи головного вікна:

  1. Вкладки окремих звітів
  2. Тип використаного шаблону
  3. Елементи налаштування змінних параметрів
  4. Кнопки налаштувань та ручного формування звітів
  5. Вікно відображення результатів формування звітів

Керування програмою

Керування здійснюється за допомогою таких елементів:

  • Кнопка “Сформувати звіт” - формує звіт в ручному режимі
  • Кнопка “Налаштування” - викликає діалог налаштування звіту
  • Кнопка “ОК” - зберігає зміни налаштувань звітів
  • Кнопка “Відміна” - відновлює останні збережені налаштування звітів

Налаштування програми

Натискання кнопки “Налаштування” викликає діалог налаштувань звіту. Загальний вигляд цього діалогу такий:

Вигляд діалогу налаштувань

Основні елементи цього діалогу:

  1. вкладки елементів налаштувань
  2. налаштування з'єднання з MySQL сервером (хост, користувач, пароль та база даних)
  3. налаштування періодичності автоматичного формування звітів, а також період аварійних звітів (після збоїв при формуванні автоматичних звітів)
  4. кнопки застосування чи відміни змін

Після введення глобальних налаштувань необхідно ввести SQL-запит для вибірки необхідних даних з бази. Вікно налаштувань SQL-запитів виглядає так:

Налаштування SQL-запитів

Його основними елементами є:

  1. Кодування, в якому отримуються дані з бази даних
  2. Основний запит на видачу даних з бази. В цьому запиті дозволяються додаткові елементи формату $НАЗВА$. Їх використання дозволяє мати параметризовані запити. Параметри описаного формату можна вводити відразу в головному вікні програми.
  3. Підтверджувальний запит для випадку успішного виконання основного запиту (виконується тільки при успішному виконанні основного запиту)
  4. Відкатний запит для випадку неуспішного виконання основного запиту

Результати виконання основного запиту можуть бути представлені в одному з трьох виглядів (TXT, RTF, XML→XSL). Кожен з шаблонів має налаштування. Діалог налаштування шаблону виглядає так:

Налаштування виводу результатів

Елементи цього вікна такі:

  1. Файл шаблону
  2. Шаблон назви файлу для збереження на диск
  3. Режим виводу (у файл/на друк) [На екран вивід відбувається завжди]

Засоби формування шаблонів

TXT-формат

Звіт TXT-формату друкується шрифтом з фіксованою шириною. Сам шаблон теж є текстовим файлом, в якому можуть бути присутні керуючі послідовності. Вони дозволяють в потрібних місцях розміщувати окремі елементи результатів виконання SQL-запитів. Є такі керуючі послідовності:

  • ^^число1$число2^ - означає підстановку результату колонки число2 запиту номер число1.
  • ^^[число1^ - означає початок блоку повторюваних параметрів, який повторюється для кожного рядка запиту число1.
  • ^^]число1^ - означає кінець блоку повторюваних параметрів, який повторюється для кожного рядка запиту число1.

Наприклад для SQL запиту SELECT 1,2,3, ^^1$1^ дорівнюватиме 1, ^^1$2^ дорівнюватиме 2, а ^^1$3^ дорівнюватиме 3.

Для запиту SELECT username, userclass FROM subscribers виведення переліку абонентів в шаблоні виглядатиме так:

^^[1^  абонент:^^1$1^    клас:^^1$2^
^^]1^

RTF-формат

Керуючі послідовності RTF-шаблону повністю відповідають послідовностям TXT-шаблону. Відмінність полягає в тому, що RTF формат має більші можливості форматування тексту.

XML-формат

XML файл результатів виконання запиту має таку структуру:

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/xsl' href='ШАБЛОН.xsl'?>
<resultset>
	<select name ='№ЗАПИТУ'>
		<row>
			<field name='НАЗВА ПОЛЯ 1'>ДАНІ ПОЛЯ 1</field>
			<field name='НАЗВА ПОЛЯ 2'>ДАНІ ПОЛЯ 2</field>
		</row>
	</select>
	<select name ='№ЗАПИТУ'>
		<row>
			<field name='НАЗВА ПОЛЯ 1'>ДАНІ ПОЛЯ 1</field>
			<field name='НАЗВА ПОЛЯ 2'>ДАНІ ПОЛЯ 2</field>
		</row>
		<row>
			<field name='НАЗВА ПОЛЯ 1'>ДАНІ ПОЛЯ 1</field>
			<field name='НАЗВА ПОЛЯ 2'>ДАНІ ПОЛЯ 2</field>
		</row>
	</select>
</resultset>
 
Приклад готового XML-файлу:
<code xml>
<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/xsl' href='month.xsl'?>
<resultset>
	<select name ='1'>
		<row>
			<field name='Date'>2008.03</field>
			<field name='Subscriber'>380324762746</field>
		</row>
	</select>
	<select name ='2'>
		<row>
			<field name='Дата'>2007-04-25</field>
			<field name='Напрямок'>КИЇВСТАР</field>
			<field name='Тривалість'>00:00:39</field>
			<field name='Сума, грн'>0.78</field>
		</row>
		<row>
			<field name='Дата'>2007-04-25</field>
			<field name='Напрямок'>ЛЬВІВ</field>
			<field name='Тривалість'>00:01:00</field>
			<field name='Сума, грн'>0.24</field>
		</row>
	</select>
	<select name ='3'>
		<row>
			<field name='COUNT'>17</field>
			<field name='Rest'>13.58</field>
			<field name='SUM'>16.92</field>
		</row>
	</select>
</resultset>

Шаблоном для відображення XML-файлу є файл XSL - файл трансформації в потрібний формат. Про використання XSL можна почитати тут чи тут

Ось приклад XSL-шаблону для відображення будь-яких даних в табличному вигляді.

<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="Print.css" />
</head>
<body>
          <xsl:for-each select="/resultset//select">
               <xsl:call-template name="print_table"/>
	  </xsl:for-each>
</body>
</html>
</xsl:template>
 
<xsl:template name="print_table">
     <table border="1" cellpadding="6">
	<xsl:for-each select="row">
		<xsl:if test="position()=1">
	<tr>
		<xsl:for-each select="field">
				<th><xsl:value-of select="@name"/></th>
		</xsl:for-each>
	</tr>
		</xsl:if>
	<tr>
		<xsl:for-each select="field">
				<td><xsl:value-of select="."/></td>
		</xsl:for-each>
	</tr>
	</xsl:for-each>
     </table>
     <br></br>
</xsl:template>
</xsl:stylesheet>
extrasoft/agnreport/index.txt · В останнє змінено: 2015/04/17 15:24 (зовнішнє редагування)