powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как в ZEN на графиках сделать адекватный масштаб?
11 сообщений из 11, страница 1 из 1
Как в ZEN на графиках сделать адекватный масштаб?
    #36594460
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю в ZEN с графиками.
Данные получаю через ControllerID.
Вывожу грфик linechart. Разброс значений по оси "Y" около 1%.
Если делаю масштаб "Авто" в <yAxis> то вместо графика выводит практически сплошную ровную линию. То есть у меня разброс значений в диапазоне от 70 до 72, а ZEN выводит шкалу "У" с диапазоном от 0 до 80.
Если задаю minValue maxZalue, - то уже могу вручную выставлять трубуюмую вилку (от 69 до 73), но в этом случае появляется другая проблема. Через две-три недели график может "уплыть" в диапазон к "65" или к 76, что выходит за рамки указанных вручную значений. Постоянно менять - не хлопотно.
Растягивать в <SVGFrame> пробовал - ничего хорошего - только линия толще, а детализации не бовавляется.

Хотелось бы сообразить нечто макроса, чтобы минимальное и максимальное "вилки" значение брал из указанной базы. Пытался напрямую указать ссылки - не срабатывает. Черех Javascript - чую тоже не получится.

Кто и как решил данный недотсаток в ZEN при выводе графиков.
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36594470
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел сказать, что постоянно менять вручную выставленные значения = Хлопотно!
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36594721
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fotopravka,

в %OnAfterCreatePage задать вилку, думаю.
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36595305
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Спасибо, попробую! Думаю, что мысль в самомо деле стоящая.
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36595821
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем код, где minValue и maxValue установлены вручную.

Код: plaintext
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.
/// ПРОБА
Class GrafikFull.proba Extends %ZEN.Component.page
{
Parameter APPLICATION;
Parameter PAGENAME;
Parameter DOMAIN;
XData Style
{
<style type="text/css">
  </style>
}
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="H1G1">
<spacer height="4px" />
<dataController id="H1G1Tcena" autoRefresh="15000" modelClass="ContrID.H1G1Tcena" modelId="1" /> 
<svgFrame id="svgFrame" width="625" height="280">
<lineChart id="L1" 
	controllerId="H1G1Tcena" 
	width="620" height="275"
	plotAreaStyle="fill: white;"
	plotStyle="stroke-width: 0.1;" >
    <xAxis id="X1" labelAngle="270" labelStyle="font-size: 0.18em; font-family: Bookman Old Style; "
	labelUnits="70" majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;"
	majorUnits="70" minValue="0"  baseValue="0" maxValue="610" 	/>
	<yAxis id="Y1" labelStyle="font-size: 0.18em; font-family: Arial Narrow; fill:#222222;"
	majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;" 
	labelUnits="1" majorUnits="1" minorGridLines="true" minorUnits="0.5" 
	minorGridStyle="stroke-width: 0.1; color: #EEEEEE;" minValue="71" maxValue="75" />
	</lineChart>
</svgFrame>
</page>
}
}


получаем
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36595824
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь код с автоматическим определением мастаба по оси "Y"


Код: plaintext
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.
/// ПРОБА
Class GrafikFull.proba Extends %ZEN.Component.page
{
Parameter APPLICATION;
Parameter PAGENAME;
Parameter DOMAIN;
XData Style
{
<style type="text/css">
  </style>
}
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="H1G1">
<spacer height="4px" />
<dataController id="H1G1Tcena" autoRefresh="15000" modelClass="ContrID.H1G1Tcena" modelId="1" /> 
<svgFrame id="svgFrame" width="625" height="280">
<lineChart id="L1" 
	controllerId="H1G1Tcena" 
	width="620" height="275"
	plotAreaStyle="fill: white;"
	plotStyle="stroke-width: 0.1;" >
    <xAxis id="X1" labelAngle="270" labelStyle="font-size: 0.18em; font-family: Bookman Old Style; "
	labelUnits="70" majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;"
	majorUnits="70" minValue="0"  baseValue="0" maxValue="610" 	/>
	<yAxis id="Y1" labelStyle="font-size: 0.18em; font-family: Arial Narrow; fill:#222222;"
	majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;" 
	labelUnits="" majorUnits="" minorGridLines="true" minorUnits="" 
	minorGridStyle="stroke-width: 0.1; color: #EEEEEE;"/>
	</lineChart>
</svgFrame>
</page>
}
}

Получаем такой график
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36595830
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал это. Вообще про %OnAfterCreatePage пишут, что создает кнопки, текст меняет (в формах)
а вот про графики нигде ничего.

Код: plaintext
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.
/// ПРОБА
Class GrafikFull.proba Extends %ZEN.Component.page
{
Parameter APPLICATION;
Parameter PAGENAME;
Parameter DOMAIN;
XData Style
{
<style type="text/css">
  </style>
}
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="H1G1">
<spacer height="4px" />
<dataController id="H1G1Tcena" autoRefresh="15000" modelClass="ContrID.H1G1Tcena" modelId="1" /> 
<svgFrame id="svgFrame" width="625" height="280">
<lineChart id="L1" 
	controllerId="H1G1Tcena" 
	width="620" height="275"
	plotAreaStyle="fill: white;"
	plotStyle="stroke-width: 0.1;" >
    <xAxis id="X1" labelAngle="270" labelStyle="font-size: 0.18em; font-family: Bookman Old Style; "
	labelUnits="70" majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;"
	majorUnits="70" minValue="0"  baseValue="0" maxValue="610" 	/>
	<yAxis id="Y1" labelStyle="font-size: 0.18em; font-family: Arial Narrow; fill:#222222;"
	majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;" 
	labelUnits="" majorUnits="" minorGridLines="true" minorUnits="" 
	minorGridStyle="stroke-width: 0.1; color: #EEEEEE;" minValue=""/>
	</lineChart>
</svgFrame>
</page>
}

Method %OnAfterCreatePage() As %Status
{
	Set minValue= 50 
	Quit minValue
}
}

В конце просто добавил метод и все. Но реакции никакой. minValue я просто указал 50, ясно, что можно дать ссылку на глобал, но даже так не сработало.

Каккие могут быть варианты или что сделано не так?
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36596029
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fotopravka,
Код: plaintext
1.
2.
3.
4.
5.
Method %OnAfterCreatePage() As %Status
{
	%page.%GetComponentById("Y1").minValue= 50 
	%page.%GetComponentById("Y1").maxValue= 55 
	Quit $$$OK
}
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36596067
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Не сработало. Выдавало то одну то другую ошибку. Но вчера вечером при засыпании мелкнула мысль - почитать в он-лайновский Зеноский мануал. Раздел ZEN/SVG/linechart.

Вот что нашел

[src][/SRC]
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36596069
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После чего стал мучать очень похожий Метод %OnAddToPageAfter()
Получилось. Код полностью заработал.

В итоге получился следующий код.

Код: plaintext
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.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="H1G1">
<spacer height="4px" />
<dataController id="H1G1Tcena" autoRefresh="15000" modelClass="ContrID.H1G1Tcena" modelId="1" /> 
<svgFrame id="svgFrame" width="625" height="280">
<lineChart id="L1" 
	controllerId="H1G1Tcena" 
	width="620" height="275"
	plotAreaStyle="fill: white;"
	plotStyle="stroke-width: 0.1;" >
    <xAxis id="X1" labelAngle="270" labelStyle="font-size: 0.18em; font-family: Bookman Old Style; "
	labelUnits="70" majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;"
	majorUnits="70" minValue="0"  baseValue="0" maxValue="610" 	/>
	<yAxis id="Y1" labelStyle="font-size: 0.18em; font-family: Arial Narrow; fill:#222222;"
	majorGridLines="true" majorGridStyle="stroke-width: 0.1; color: #E0FFFF;" 
	labelUnits="2" majorUnits="" minorGridLines="true" minorUnits="2" 
	minorGridStyle="stroke-width: 0.1; color: #EEEEEE;" minValue=""/>
	</lineChart>
</svgFrame>
</page>
}

Method %OnAddToPageAfter() as %Status
{
	Set aaa=##class(B.min).%OpenId( 2 )
	Set min=aaa.min
	Set bbb=##class(B.min).%OpenId( 3 )
	Set max=bbb.min
	Set ..%page.%GetComponentById("Y1").minValue=min
	Set ..%page.%GetComponentById("Y1").maxValue=max
	Quit $$$OK
}


Все работает.
Для новичков - описание всех методов, параметров можно получить здесь (встроенный каталожник)
http://localhost:57772/csp/documatic/%25CSP.Documatic.cls
...
Рейтинг: 0 / 0
Как в ZEN на графиках сделать адекватный масштаб?
    #36596070
fotopravka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

В любом случае, Вам спасибо. Без вас этот код не был бы написан, так как вот этот кусок я бы точно не вставил

Код: plaintext
%page.%GetComponentById("Y1").maxValue= 55 
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как в ZEN на графиках сделать адекватный масштаб?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]