|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Снова о выводах отчета в формате pdf. Имею вывод графиков в стандартной форме через ZEN . График генерируются около 3 секунд. При этом выводится одновременно 9-10 графиков каждый по 520 точек. Смотрю через Google Chrome (одна из последних офиц версий). Те же графики запускаю на вывод, как для генерации отчета. Те же графики генерируются уже 40-45 секунд. ТЕ ЖЕ ГРАФИКИ!!!. Код прилагается. Загрузите в систему, откомпилируйте (вирусов и вреда нет). В архиве два типа вывода графиков. Первый "kakEXPRESS" - тот что рисует графики в Chrome за 3 секунды и второй график называется "kakPDF" он рисует за 45 секунд. Запускать графики через Cache-Studio. Проблема в том, что данные графики генерируются автоматически при проверке торговой стратегии. Сам анализ точек входа и выхода работает максимум 10 секунд на каждый анализируемый день. При этом его реально еще ускорить. Вывод графика 45 секунд, с увеличением до 60 секунд при потоковом анализе данных (чем больше обработано данных, тем дольше рисуется график). 10-20 графиков не беда. Но если требуется проанализировать 200 дней, то время набегает существенное (отчётов по графикам может быть два или три на каждый день). В идеале, генерация графиков (точек входа и выхода на рынке акций) должны быть меньше по времени, чем сам анализ поведения робота (точек входа и выхода). То есть расчёт 10 сек, построение графика 3-8 сек (параллельно расчёту нового дня). ВОПРОС: Неужто нет способов ускориться. Если разница в 12 раз, то потенциал явно есть. Пробовал всякое и вывод в xml а затем в pdf и через класс в pdf и вариантов 15. Все что касалось pdf в инструкции по Cache с оф сайта - все попробовал. В итоге - ничего так и не улучшилось. Графики можете смело использовать в дальнейшей работе. Выкладываю в свободный доступ. Кому надо - пользуйтесь. . ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 17:42 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Сначала думал, что FOP долго обрабатывает графики, то по результатам ^PERFMON большая нагрузка на %Stream.TmpCharacter.1 Думаю, вам лучше написать по этому вопросу в WRC Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 06:47 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Разница в том, что во втором случае над отчётом делается xsl преобразование по шаблону, на генерацию которого уходит большинство времени. Может стоит посмотреть в сторону использования заранее подготовленного шаблона, а не генерировать его каждый раз? Не знаю есть ли такая возможность в ZEN отчётах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 07:00 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Вчера еще раз всё протестировал. Можно вывести отчёты в формате html 2213 kb 33,7 sec Можно вывести в формате xml 2487 kb 33,8 sec Можно вывести в формате pdf 540 kb 35,1 sec Получается, что *.pdf выводится, генерируется всего на 2 секунды дольше, а размер при этом имеет в 5 раз меньше. Тут как говорится, без вариантов. Ускорится можно, разбив график на несколько (три) части. Тогда мы получим три pdf файла вместо одного. Время уменьшится до 11-15 сек. Генерируется все быстрее, но потом, на его склейку в один файл уходит примерно те же 30 секунд, что в итоге получается еще дольше (15+30сек). Я просмотрел что на выходе получается - генерируется здоровенный файл, в котором каждой точке графика прописывается своя точка в виде координат (здоровенные таблицы с данными в текстовом формате). Можно конечно попытаться вывести отчёты в формате TIFF, но он также будет весить около 6 Мб без возможности увеличить картинку. Файл pdf можно увеличить в 5 раз и все точки будут отчетливо видны (не будет размытия и потери резкости). В общем, надежда на Cache 15.2 или на непротокольные возможности C'ache. . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 10:08 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Я тестировал ваш пример на 2015.1. думаю в версии 2015.2 врятли генерация графиков ускорится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 11:06 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Залез в системные настройки Cache. Увеличил размер памяти под процесс, буфер, и кучу прочих параметров, которые связаны с памятью и быстродействием (в 12-14 местах). Запустил генерацию отчёта. Те же 35 секунд. Я помню, что под Streem данные, выделяется всего размер в 32 кб. В новой версии Каше 64 кб. С учетом того, что файл xml весит 2500 кб, то даже 64 кб будет явно недостаточно. При этом процессор вообще не нагружен. Установлен SSD Samsung 840Pro 256Mb, так что он явно так не влияет на производительность. Памяти 16Гб и её ещё полно свободной. Так что проблема не в железе. Проблема в том как Каше это делает, а делает он как то странно, раз ресурсы ПК вообще не задействованы, то есть делает через какое то бутылочное горлышко. . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 11:40 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
О-О-Оалез в системные настройки Cache. Sorry! Не вытерпел. Cache не виноват. Для решения данной задачи xml не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 11:56 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Владимир2012, Вопрос и состоит в том, как можно вывести графики автоматически (сохранить их) при работе в Cache. В инструкции к Каше это делается через генерацию отчётов. Если Вы знаете как можно сохранить файл (сгенерировать графики и сохранить их во внешнем файле) минуя работу через генерацию отчёта - поделитесь. Буду весьма благодарен. Сгенерировать просто файл через вариант "kakEXPRESS" и сохранить его в html файле - не годится. При открытии сохранённого файла с графиками, окно с фрэймом (там где сами графики) получается пустое, то есть графики не сохраняются. Сгенерировать файл через вариант "kakEXPRESS" и запустить его на печать в pdf файл (через тот же Chrome) можно, но как это сделать автоматически. Кроме того, печать файла вручную из html в pdf через Chrome длится около 10 секунд. В итоге получается 3+10=13секунд. Проблема в том, что это наверняка делается через java скрипт, в котором я полный ноль. Мне легче ждать 40-60 секунд, чем городить огород на изучение Java в пределах 10-15 дней. Оно того не стоит. В то же время ОЧЕНЬ хочется ускорить вывод графиков (отчётов) в формате pdf. Если нельзя ускорить, будет очень жалко, очень, но не критично. Терпимо. В то же время, сама суть вопроса, почему отличия по скорости построения (выводу) графиков отличаются в 13 раз (3 сек и 40 сек) так и остаётся нерешённой. Явно дело не в железе компьютера. А если дело только в софте (в C'ache), то ВСЕГДА существует несколько способов оптимизировать код, что я и пытаюсь сделать (во всяком случае найти решение, как это можно сделать). . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 22:04 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
То есть, насколько я понял: НЕЛЬЗЯ УСКОРИТЬ ВЫВОД ГРАФИКОВ (ОТЧЁТОВ) В ФОРМАТЕ PDF (в моём конкретном случае). То есть сохранение *.pdf отчёта (файла) быстрее чем за 35-40 секунд у меня даже в теории не выйдет. Я всё правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 22:10 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
О-О-ОЯ всё правильно понял? Скорее всего нет. xml и html терпимо работают до определенного их размера. Затем просто тупят. Попробуйте без Cache поработать с xml или html размером от 100 до 10000 строк и увидите существенную разницу в скорости получения результата. Да оно и понятно откуда тормоза идут. Скорее всего в вашем случае если Cache поддерживает работу с сторонними dll или OLE ... ... ... /или например имеется поддержка plugins или иного подобного механизма/ нужно их использовать для связки с какой-либо libraries умеющей строить графики /их море готовых и с исходниками/. PS: Мой совет был дан вам исходя из практики использования xml и html в некоторых своих проектах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2015, 22:37 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
О-О-О, Попробуйте использовать XPath charts http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GRPT_charts_in_reports Пример Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
А чтобы ещё быстрее генерировать отчёты – Render Server http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GRPT_report_running#GRPT_renderserver ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 01:58 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Александр Коблов, Спасибо, то что нужно. Ваш метод сработал. Не идеально, но сработал (поплыли все цвета, толщина графиков, подписи по оси Y, и Titl, короче пришлось заново делать все графические/визуальные настройки). Вот что получилось в итоге ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:28 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Александр Коблов, То есть сократили время генерации отчета с 40 до 3 секунд. Вот что получили на выходе (Файл *.pdf). Вот что получили в виде скриншота графиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:30 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Александр Коблов, Вот итоговый файл в формате *.pdf Часть 1 из 2. Одним файлом не удаётся загрузить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:35 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Вот итоговый файл в формате *.pdf Часть 2 из 2-х. Одним файлом не удаётся загрузить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:36 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Всем большое спасибо. Особенно Александру Коблову из Краснодара, Москвы. Благодаря вашей помощи удалось сократить время генерации отчёта с 35 секунд до 3,5 секунд. Что и требовалось. При этом файл генерируется в формате pdf, который можно увеличивать до 500%, без потери в качестве. Честно говоря я особо и не надеялся на такой явный успех. Думал, что в лучшем случае сократив раза в 2, а тут в 10! Еще раз БОЛЬШОЕ спасибо Александру Коблову. . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:42 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Александр КобловО-О-О, А чтобы ещё быстрее генерировать отчёты – Render Server http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GRPT_report_running#GRPT_renderserver Там я был уже давно, но застопорился на Ping, Так и не понял что от меня хотят. . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:44 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
Выкладываю код для Cahce заново, т.к. сохранился некорректно. Модератор: у тебя видимо файлы больше 150kb, такое ограничение на форуме по размеру файлов ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:50 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
О-О-О , Если всё ещё актуально, то также можно ускорить и самый первый Ваш пример RobotGrafiki4.kakPDF из 17961483 . Достаточно выставить markersVisible="false" и markerScale="0", остальные атрибуты относящиеся к маркерам [marker*] удалить как лишние. markersVisible="false" тоже можно удалить, т.к. они и так по умолчанию выключены. Обновлённый класс RobotGrafiki4.kakPDFClass RobotGrafiki4.kakPDF Extends %ZEN.Report.reportPage { /// This is the default display mode for this report. Parameter DEFAULTMODE = "pdf"; /// This XML defines the logical contents of this report. XData ReportDefinition [ XMLNamespace = " http://www.intersystems.com/zen/report/definition" ] { <report xmlns=" http://www.intersystems.com/zen/report/definition" name="test" runonce="true"> <!-- dummy ReportDefinition, all data is gotten from callback methods ongetXXX --> </report> } /// This XML defines the display for this report. /// This is used to generate the XSLT stylesheets for both HTML and XSL-FO. XData ReportDisplay [ XMLNamespace = " http://www.intersystems.com/zen/report/display" ] { <report xmlns=" http://www.intersystems.com/zen/report/display" name="test"> <document width="355mm" height="269mm" marginLeft="5" marginRight="5" marginTop="0" marginBottom="0" headerHeight="0"/> <body> <ccomboChart id="d1" title=" " titleX="46" titleY="5" titleStyle="font-size: 9px; fill:#929292;" width="1000" height="245" legendVisible="false" backgroundStyle="fill:#DCDCDC;" plotAreaStyle="fill:#F9FAFB;" seriesColors="#FF0000,#22B14C,#262728,#D2D2D2" seriesCount="4" seriesSize="521" seriesTypes="line,line,line,area" lineStyle="stroke-width:1px;" ongetData="getChartData" plotStyle="stroke-width: 0.25; fill-opacity: 1;" markerScale="0" marginRight="3" marginBottom="1" marginLeft="1" marginTop="2" > <xAxis id="xAxis" labelStyle="font-size: 8px; " majorGridLines="true" majorGridStyle="stroke-width: 1px; color:#EEEEEE; opacity: 0.2;" majorUnits="60" minorGridLines="true" minorGridStyle="stroke-width:0.1; color:#EEEEEE;" minorUnits="15" minValue="0" baseValue="0" maxValue="530" /> <yAxis id="yAxis" labelAngle="45" labelStyle="font-size: 10px; font-family: Arial Narrow; fill:#222222;" labelPosition="right" majorUnits="50" majorGridLines="true" majorGridStyle="stroke-width: 1px; color:rgb(255,0,255); opacity: 0.2;" minorGridLines="false" minValue="7060" baseValue="0" maxValue="7330" /> </ccomboChart> <clineChart id="d2" title=" " titleX="40" titleY="5" titleStyle="font-size: 10px; fill:#929292;" width="1000" height="255" legendVisible="false" backgroundStyle="fill:#DCDCDC;" plotAreaStyle="fill:#F3F3F3;" seriesColors="#5CAADE,#2424E0,#DD8282,#E00000,#A3A3A3,#515151" seriesCount="4" seriesSize="521" ongetData="getChartData2" ongetLabelY="dd" lineStyle="stroke-width:1px;" plotStyle="stroke-width: 0.3; fill-opacity: 1;" markerScale="0" marginRight="3" marginBottom="1" marginLeft="1" marginTop="2" > <xAxis labelStyle="font-size: 8px; " majorGridLines="true" majorGridStyle="stroke-width: 1px; color:rgb(255,0,255); opacity: 0.2;" majorUnits="60" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #EEEEEE;" minorUnits="15" minValue="0" baseValue="0" maxValue="530" /> <yAxis labelAngle="45" labelStyle="font-size: 10px; font-family: Arial Narrow; fill:#555555;" labelPosition="right" majorUnits="0.100" majorGridLines="true" majorGridStyle="stroke-width: 1px; color:rgb(255,0,255); opacity: 0.2;" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #E0FFFF;" minorUnits="0.050" minValue="" baseValue="0" maxValue="" /> </clineChart> <clineChart id="d3" title=" " titleX="40" titleY="6" titleStyle="font-size: 10px; fill:#929292;" width="1000" height="245" legendVisible="false" backgroundStyle="fill:#DCDCDC;" plotAreaStyle="fill:#F3F3F3;" seriesColors="#DD8282,#E00000,#A3A3A3,#515151,#FFC90E,#5CAADE,#2424E0,#FFC90E" seriesCount="4" seriesSize="521" ongetData="getChartData3" ongetLabelY="dd" valueLabelFormat="#.##" lineStyle="stroke-width:1px;" plotStyle="stroke-width: 0.3; fill-opacity: 1;" markerScale="0" marginRight="3" marginBottom="1" marginLeft="1" marginTop="2" > <xAxis labelStyle="font-size: 8px; " majorGridLines="true" majorGridStyle="stroke-width: 1px; color:rgb(255,0,255); opacity: 0.2;" majorUnits="60" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #EEEEEE;" minorUnits="15" minValue="0" baseValue="0" maxValue="521" /> <yAxis labelAngle="45" labelStyle="font-size: 10px; font-family: Arial Narrow; fill:#444444;" majorGridLines="true" majorGridStyle="stroke-width: 1px; color:rgb(255,0,255); opacity: 0.2;" labelUnits="0.400" majorUnits="0.400" labelPosition="right" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #E0FFFF;" minorUnits="0.200" minValue="" baseValue="0" maxValue="" /> </clineChart> </body> </report> } /// Get chart data Method getChartData( ByRef data, chartObject) { Set data(0,0)="" Set data(1,0)="" Set data(2,0)="" Set data(3,0)="" For i=1:1:520 { Set data(0,i)="" Set data(1,i)=7070+$Random(20) Set data(2,i)=7195+$Random(70) Set data(3,i)=7280+$Random(40) } } Method getChartData2( ByRef data, chartObject) { Set data(0,0)="" Set data(1,0)="" Set data(2,0)="" Set data(3,0)="" For i=1:1:520 { Set data(0,i)=0.100 Set data(1,i)=0.180 Set data(2,i)=0.120 Set data(3,i)=0.150 } } Method getChartData3( ByRef data, chartObject) { Set data(0,0)="" Set data(1,0)="" Set data(2,0)="" Set data(3,0)="" For i=1:1:520 { Set data(0,i)=($Random(3))/12+0.350 Set data(1,i)=($Random(4))/16+0.420 Set data(2,i)=($Random(5))/20+0.280 Set data(3,i)=($Random(4))/16+0.240 } } Method dd( value, yAxisNo, chartObject) { s format=chartObject.valueLabelFormat s format=$s(format'="" : format, 1 : $s(($$$FLOOR(value)'=value):"#,#.###", 1:"#,##")) q ##class(%DeepSee.ResultSet).%FormatNumber(value,format) } } источник ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 10:02 |
|
Катострофическое отличие по скорости генерации графиков
|
|||
---|---|---|---|
#18+
servit О-О-О , Если всё ещё актуально, то также можно ускорить и самый первый Ваш пример RobotGrafiki4.kakPDF из 17961483 . Достаточно выставить markersVisible="false" и markerScale="0", остальные атрибуты относящиеся к маркерам [marker*] удалить как лишние. А вот этот способ самый простой и эффективный. Подтверждаю, что если отключить маркеры ( выставить значение markersVisible="false" ), то графики генерируются не 37 секунд, а всего 3. При это не плывут ни цвета, ни масштабы, ни подписи по оси Y, ни другие цветовые составляющие. То есть получаем от графиков всё то хотели по дизайну, при этом всего за 3 секунды! Это вариант устраивает на все 200% !!! В итоге получили два самых эффективных способа: Первый - загрузка данных как Stream , предложенный Александром Кобловым и второй способ - отключение markersVisible предложенный Servit из г. Кишинёв. Кстати, кто решит всё таки загружать данные в виде потока данных, как Staream данные, то вот код, исправляющие искажения по цвету, графикам, линиям, фону и осям Х и У. Class RobotGrafiki4.ttt2 Extends %ZEN.Report.reportPage { /// This XML defines the logical contents of this report. Parameter DEFAULTMODE = "pdf"; XData ReportDefinition [ XMLNamespace = " http://www.intersystems.com/zen/report/definition" ] { <report xmlns=" http://www.intersystems.com/zen/report/definition" name="test" runonce="true"> <call method="GetSub"/> <call method="GetSub2"/> </report> } /// This XML defines the display for this report. /// This is used to generate the XSLT stylesheets for both HTML and XSL-FO. XData ReportDisplay [ XMLNamespace = " http://www.intersystems.com/zen/report/display" ] { <report xmlns=" http://www.intersystems.com/zen/report/display" name="test"> <document width="1050" height="780" marginLeft="5" marginRight="5" marginTop="0" marginBottom="0" headerHeight="0"/> <body> <lineChart title=" График 1" titleStyle="font-size: 3.7pt; font-family: Arial; fill: #727374;" width="1000" height="380" dataGroup ="object" dataFields="!@line1,!@line2,!@line3" seriesNames ="line1, line2, line3" valueLabelFormat="#.##" legendVisible="false" backgroundStyle="fill:#DCDCDC;" plotAreaStyle="fill:#F3F3F3;" seriesColors="#5CAADE,#2424E0,#DD8282,#E00000,#A3A3A3,#515151" seriesCount="4" seriesSize="523" lineStyle="stroke-width: 1px;" plotStyle="stroke-width: 0.1; fill-opacity: 1;" markersVisible="true" markerScale="0.03" markerShapes="square,square,circle,circle" marginRight="1" marginBottom="1" marginLeft="5" marginTop="1" > <xaxis id="xAxis" labelStyle="font-size:3pt; color: #A2A2A2;" majorGridLines="true" majorGridStyle="stroke-width: 0.2; color: #A2A2A2; opacity: 0.2;" majorUnits="60" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #EEEEEE; opacity: 0.2;" minorUnits="15" minValue="0" baseValue="0" maxValue="530" /> <yaxis id="yAxis" labelStyle="font-size: 2.2pt; font-family: Arial; fill: #232131;" labelAngle="" labelDisplacement="-3" majorGridLines="true" majorGridStyle="stroke-width: 0.2; color: #563215; opacity: 0.2;" majorUnits="0.20" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #E0FFFF; opacity: 0.2;" minorUnits="0.20" minValue="" baseValue="0" maxValue="" /> </lineChart> <lineChart title=" График 2" titleStyle="font-size: 3.7pt; font-family: Arial; fill: #727374;" width="1000" height="380" dataGroup ="object2" dataFields="!@line21,!@line22,!@line23" seriesNames ="line21, line22, line23" ongetLabelY="gety2" valueLabelFormat="#.##" legendVisible="false" backgroundStyle="fill:#DCDCDC;" plotAreaStyle="fill:#F3F3F3;" seriesColors="#5CAADE,#2424E0,#DD8282,#E00000,#A3A3A3,#515151" seriesCount="4" seriesSize="523" lineStyle="stroke-width: 1px;" plotStyle="stroke-width: 0.1; fill-opacity: 1;" markersVisible="true" markerScale="0.03" markerShapes="square,square,circle,circle" marginRight="1" marginBottom="1" marginLeft="5" marginTop="1" > <xaxis id="xAxis" labelStyle="font-size:3pt; color: #A2A2A2;" majorGridLines="true" majorGridStyle="stroke-width: 0.2; color: #A2A2A2; opacity: 0.2;" majorUnits="60" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #EEEEEE; opacity: 0.2;" minorUnits="15" minValue="0" baseValue="0" maxValue="530" /> <yaxis id="yAxis2" labelStyle="font-size: 2.2pt; font-family: Arial; fill: #232131;" labelAngle="" labelDisplacement="-3" majorGridLines="true" majorGridStyle="stroke-width: 0.2; color: #563215; opacity: 0.2;" majorUnits="0.20" minorGridLines="true" minorGridStyle="stroke-width: 0.1; color: #E0FFFF; opacity: 0.2;" minorUnits="0.20" minValue="10" baseValue="0" maxValue="20" /> </lineChart> </body> </report> } Method GetSub() As %GlobalCharacterStream { set stream=##class(%GlobalBinaryStream).%New() for i=1:1:520 { Set Em=##class(TestStrateg.BDTestStrateg).%OpenId(i) Set rrt1=Em.ччч1 // где ччч1 - это данные из Базы Данных Set rrt2=Em.ччч2 // где ччч2 - это данные из Базы Данных Set rrt3=Em.ччч3 // где ччч3 - это данные из Базы Данных do stream.WriteLine("<object line1="""_rrt1_""" line2="""_rrt2_""" line3="""_rrt3_"""/>") } quit stream } Method GetSub2() As %GlobalCharacterStream { set stream=##class(%GlobalBinaryStream).%New() for i=1:1:520 { Set Em=##class(TestStrateg.BDTestStrateg).%OpenId(i) Set rrt1=Em.ччч4 // где ччч4 - это данные из Базы Данных Set rrt2=Em.ччч5 // где ччч5 - это данные из Базы Данных Set rrt3=Em.ччч6 // где ччч6 - это данные из Базы Данных do stream.WriteLine("<object2 line21="""_rrt1_""" line22="""_rrt2_""" line23="""_rrt3_"""/>") } quit stream } Method gety2(value, yAxisNo, chartObject) { // НЕ РАБОТАЕТ!!! // НЕ РАБОТАЕТ!!! // НЕ РАБОТАЕТ!!! s format=chartObject.valueLabelFormat s format=$s(format'="" : format, 1 : $s(($$$FLOOR(value)'=value):"#,#.###", 1:"#,##")) q ##class(%DeepSee.ResultSet).%FormatNumber(value,format) } ClassMethod OnAfterCreateDisplay() { // может меняться автоматически, если прописать код Set write1=..%GetComponentById("yAxis2") Set write1.minValue=-0.40 Set write1.maxValue=0.40 } } ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 19:38 |
|
|
start [/forum/topic.php?fid=39&msg=39020731&tid=1556608]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 424ms |
0 / 0 |