Вывод в расширеном отчете ссылки на карточку

Источник: dvprofessionals
Михаил Захаров

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

Итак, будем рассматривать отчеты, которые строятся хранимыми процедурами (не MS Reporting)

Для создания расширенного отчета, который будет отображен в браузере, разработчик должен сделать
а) Хранимую процедуру в базе данных.
б) Xslt преобразование, которое будет применяться к результатам работы процедуры.

Сервер расширенных отчетов возвращает результаты работы процедуры (т.е. все SELECT'ы) в виде одного xml:

<newdataset>
<table>
<column1></column1>
<column2></column2>
</table>
<table1>
<column1></column1>
<column2></column2>
</table1>
</newdataset>

Пусть в одной из колонок в результирующем SELECT'е возвращается идентификатор карточки: колонка InstanceID.
Ссылка на карточку имеет вид http://dvserver/docsvision/?CardID={AE16A7C0-25A0-40D8-B149-5EA2EFFAE337}&ShowPanels=2048&

Фактически для вывода требуется соединить 3 строки:
1) "http://dvserver/docsvision/?CardID={"
2) InstanceID
3) "}&ShowPanels=2048&"

Сделать это можно используя переменные в xslt

<xsl:variable name="clink1">http://dvserver/docsvision/?CardID={</xsl:variable>
<xsl:variable name="clink2" select="InstanceID">
<xsl:variable name="clink3">}&аmp;ShowPanels=2048</xsl:variable>

<a href="{$clink1}{$clink2}{$clink3}">
Открыть карточку
</a>

Внимание, в тексте примера в "&аmp;" стоит кириллическая "а", - сделано, чтобы опубликовать статью. При копировании наберите тег правильно.

Готово. Теперь в отчете будет выведена ссылка, нажав на которую пользователь откроет карточку.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=20235