Нам надо создать скрипт , который переводил бы наши отчеты в html формат и правильно форматировал шапку отчета для печатания.
Кростаблицы формируються в нашей системе и есть встроенный IronPython интерпритатор , который может обращаться к таким таблицам и проводя манипуляции ,возвращать обратно в наше приложение сформатированный HTML.
На посланных картинках Вы видите , что результат неправильно форматирует шапку отчета и дублирует название полей справа.
Таких отчетов у нас может быть много и разных и шапок отчетов много разных, поэтому нужен универсальный подход.
Также нам нужен надежный инструмент печатания и экспорта в различные форматы таких отчетов с онлайн страницы в браузере.
В приложении файл для разбора и 2 картинки
кростаблицу и результат срабатывания скрипта.
надо исправить скрипт ,чтобы получить правильную таблицу с шапкой
пример скрипта :
from System.IO import Path, StreamWriter
from Spotfire.Dxp.Application.Visuals import CrossTablePlot
from Spotfire.Dxp.Application.Visuals import HtmlTextArea
#Temp file for storing the cross table data
tempFolder = Path.GetTempPath()
tempFilename = Path.GetTempFileName()
#Export CrossTable data to the temp file
writer = StreamWriter(tempFilename)
cTable.As[CrossTablePlot]().ExportText(writer)
f = open(tempFilename)
htmlReport = '<table id="example" class="display" cellspacing="0" width="100%">n'
htmlReport += "<thead><TR><TH>"
colHeader = "</TH><TH>".join(f.readline().split("t"))
htmlReport += colHeader.strip()
htmlReport += "</TH></TR></thead>"
f = open(tempFilename)
htmlReport += "<tfoot><TR><TH>"
colHeader = "</TH><TH>".join(f.readline().split("t"))
htmlReport += colHeader.strip()
htmlReport += "</TH></TR></tfoot><tbody>n"
for line in f:
htmlReport += "<TR><TD>"
htmlReport += "</TD><TD>".join(line.split("t")).strip()
htmlReport += "</TD></TR>n"
f.close()
htmlReport += "</tbody></TABLE>n"
textArea.As[HtmlTextArea]().HtmlContent = htmlReport.decode( "utf-8" )
Опубликован 17.05.2016 в 18:54 Последнее изменение: 18.05.2016 в 09:35