powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN. Report научите делать отчеты...
25 сообщений из 89, страница 1 из 4
ZEN. Report научите делать отчеты...
    #36285133
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для примера возьмем такую структуру данных... Есть:

Квартальные планыКварталГод
Типы работНазваниеПриоритет
СотрудникиФИО
РаботыНазваниеОписаниеПлановое завершениеИД типа работИД квартала
ЭтапыНазваниеОписаниеИД сотрудникаПолучилЗавершилИД работы
Вот как мне сделать выходную форму квартального плана? Примерно такого вида

автор План на <такой-то квартал>

1. Тип работы 1
№Исполнители Название и описаниеОкончание1.1ИвановДоработать это и вот этоНоябрь 2009
2. Тип работы 2
№Исполнители Название и описаниеОкончание2.1ПетровСделать этоДекабрь 2009
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285467
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну это же элементарно "Ватсон"
смотри SAMPLES ZENApp.MyReport.cls
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285504
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это действительно элементарно - значит это можно прямо тут и быстренько рассказать/показать.
На это и расчитываю...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285598
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока с десяток отчетов не накатаешь не разберешься
совет №1 :
начать нужно с XData ReportDefinition - это формирование данных, нужно написать, соответствующий запрос в котором будут присутствовать все необходимые данные,
для того чтобы посмотреть что получилось пишем Parameter DEFAULTMODE = "xml"; нажимаем "показать в браузере" и смотрим структуру
ПРИМЕЧАНИЕ:
если нужны в отчете совершенно разные таблицы, то
1. в <report sql=""> формируем какой нибудь запросик, который вернет одну результирующую строку
2. <group name='таблица1' sql="..."> - формируем первую таблицу
3. обязательно формирование второй группы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<group name='SalesRep' sql="...">
<attribute name='name' field='SalesRep' />
<aggregate name='count' type="COUNT" field='Num' />
<aggregate name='subtotal' type="SUM" field='Num' />
<aggregate name='avg' type="AVG" field='Num' />
<group name="record"> /// вторая группа
<attribute name='id' field='ID' />
<attribute name='number' field='Num' />
<element name='date' field='SaleDate' />
<element name='customer' field='Customer' />
</group>
</group>
4. для таблицы №2 и т.д. повторяем п.2-п.3
5. смотрим через Parameter DEFAULTMODE = "xml"; что получилось

ЗЫ если отображается сообщение о какой либо ошибке смотрим log (http://localhost:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GZEN_reports#GZEN_C13542)
НО СКОРЕЕ ВСЕГО В ДАННЫХ ПРИСУТСТВУЕТ ЗНАЧЕНИЕ '' (пусто), которое нужно заменить на null

отработаешь, определись что за отчет ты хочешь получить (pdf,rtf,html,xls) после получишь совет №2
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285682
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007 , сейчас пока только данные вносят... Не по чем делать отчет.

В моем случае я могу сделать запрос где будут все данные... Но как мне в таком случае группировать по тематике?
Могу сделать запрос по тематике... Но как тогда внутри него выбрать работы? Параметры внешние так же передавать в отчет (т.е. как и на зен-страницу)?
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285704
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
напиши sql, который ты планируешь использовать
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285711
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
параметры соответственно можно передавать как обычно,
что бы они использовались в sql запросе их определяешь их через "?", а передаешь <parameter expression='..Month'/>, как в примере SAMPLES
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285719
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще, для формирования отчета как написано в ПРИМЕЧАНИИ тебе для твоей версии нужно будет иметь adHoc, я его заказывал в ИС
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285722
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007напиши sql, который ты планируешь использовать

Ща данные появятся.
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285724
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007и еще, для формирования отчета как написано в ПРИМЕЧАНИИ тебе для твоей версии нужно будет иметь adHoc, я его заказывал в ИС

Опа!
Адхока пока у меня нет...
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285766
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты напиши один sql
а там посмотрим, скорее всего без хока все обойдется, отчет то не сложный
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285830
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этот запрос вернет мне все нужные работы...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Select
   Subject->Name as Tema,
   wrk.Job_AllMember(ID) as Member,
   Name,
   Task->Text as Text,
   wrk.sys_Month(dEnd, 1 ) as Break
From
   wrk.Job
Where
   Plan= 1 
Order by 
   Subject->Prio,
   dEnd

Код: plaintext
   Plan= 1 

Это ИД нужного мне плана...

Код: plaintext
   Subject->Name as Tema

А вот по этой колонке мне нужно работы группировать...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285851
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.о. получаю пока вот это...

Код: 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.
...
/// Id элемента
Property idItem As %ZEN.Datatype.id(ZENURL = "id");
...
/// 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="Plan" 
 sql="
	Select
		Subject->Name as Tema,
		wrk.Job_AllMember(ID) as Member,
		Name,
		Task->Text as Text,
		wrk.sys_Month(dEnd,1) as Break
	From
		wrk.Job
	Where
		Plan=?
	Order by 
		Subject->Prio,
		dEnd
   "
>
<parameter expression='..idItem'/>
<!-- add definition of the report here. -->
</report>
}
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285864
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa План на <такой-то квартал>

1. Тип работы 1
№Исполнители Название и описаниеОкончание1.1ИвановДоработать это и вот этоНоябрь 2009
2. Тип работы 2
№Исполнители Название и описаниеОкончание2.1ПетровСделать этоДекабрь 2009

в итоге у тебя должна получится таблица SQL, в которой должны быть поля:
квартал;
тип работы;
№п.п. (у тебя кстати есть такая реализация?)
исполнитель;
название и описание;
окончание.

Твой запрос отвечает этому условию?
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285888
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про план забыл...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sql="
	Select
		wrk.Plan_KvrToStr(Plan) as Kvrt,
		Subject->Name as Tema,
		wrk.Job_AllMember(ID) as Member,
		Name,
		Task->Text as Text,
		wrk.sys_Month(dEnd,1) as Break
	From
		wrk.Job
	Where
		Plan=?
	Order by 
		Subject->Prio,
		dEnd
"

Вот теперь все данные есть

ИдентификаторНазначение/названиеKvrtкварталTemaТематика работMemberисполнителиNameНазвание работTextОписание работBreakПлановое завершение

----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285891
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нумерации пока нету... Но думается она в разметке будет реализована.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285894
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
№п.п. тебе нужен именно такой?
или для каждой таблицы будет своя нумерация?
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285899
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще Break - может оказаться зарезервированным словом
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285902
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай пока с нумерацией отложим... А брейк если чего и заменить на Brk можно ;)
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285931
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то вот эдакое должно получиться?

Код: 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.
/// 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="Plan" 
	sql="
		Select
			wrk.Plan_KvrToStr(Plan) as Kvrt,
			Subject->Name as Tema,
			wrk.Job_AllMember(ID) as Member,
			Name,
			Task->Text as Text,
			wrk.sys_Month(dEnd,1) as Break
		From
			wrk.Job
		Where
			Plan=?
		Order by 
			Subject->Prio,
			dEnd
	"
>
<parameter expression='..idItem'/>
<attribute name='Kvartal' expression='Kvrt' />
<group name='Tema' breakOnField='Tema'>
	<attribute name='Title' expression='Tema' />
	<group name='Job'>
		<attribute name='Member' expression='Member' />
		<attribute name='Name' expression='Name' />
		<attribute name='Text' expression='Text' />
		<attribute name='Break' expression='Break' />
	</group>
</group>
<!-- add definition of the report here. -->
</report>
}
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285959
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
далее, если проверка Parameter DEFAULTMODE = "xml"; прощла успешно, то:
продолжаем формировать ReportDefinition
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition" ]
{
<report xmlns="http://www.intersystems.com/zen/report/definition"
name='Plan'
sql="Select wrk.Plan_KvrToStr(Plan) as Kvrt, Subject->Name as Tema, wrk.Job_AllMember(ID) as Member, Name,Task->Text as Text,wrk.sys_Month(dEnd,1) as Br From wrk.Job Where Plan=? Order by Subject->Prio,dEnd"">
<parameter expression='..idItem'/>
<attribute name='runTime' expression='$ZDT($H,3)' /> //дата формирования отчета если нужна
<attribute name='author' expression='..ReportAuthor' /> // если нужен пользователь сформировавший отчет задать его можно (Property ReportAuthor As %String [ InitialExpression = "ШАХ" ];) или вызвать метод который что нить вернет

<group name='kvrt' breakOnField='Kvrt'>
 <attribute name='kvrtName' field='Kvrt' />
 <group name='Tema' breakOnField='Tema' >
  <attribute name='temaName' field='Tema' />
  <group name="rec">
   <element name='tMember' field='Member' />
   <element name='tText' field='Text' />
   <element name='tBr' field='Br' />
  </group>
 </group>
</group>
</report>
}
сея конструкция должна в режиме 'xml' вернуть xml файл нужной тебе конфигурации, проверяй
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36285985
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал так...

Код: 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.
/// 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="Plan" 
	sql="
		Select
			wrk.Plan_KvrToStr(Plan) as Kvrt,
			Subject->Name as Tema,
			wrk.Job_AllMember(ID) as Member,
			Name,
			Task->Text as Text,
			wrk.sys_Month(dEnd,1) as Break
		From
			wrk.Job
		Where
			Plan=?
		Order by 
			Subject->Prio,
			dEnd
	"
>
<parameter expression='..idItem'/>
<group name='Plan' breakOnField='Kvrt'>
	<attribute name='Kvrt' expression='Kvrt' />
	<group name='Tema' breakOnField='Tema'>
		<attribute name='Title' expression='Tema' />
		<group name='Job'>
			<element name='Member' expression='Member' />
			<element name='Name' expression='Name' />
			<element name='Text' expression='Text' />
			<element name='Break' expression='Break' />
		</group>
	</group>
</group>
<!-- add definition of the report here. -->
</report>
}

Но в браузере пишет ошибку...

авторВозникла CSP ошибка

Ошибка: <UNDEFINED>%RunReport+21^wrk.REP.Plan.1 *Kvrt
Ошибка: 5001
CSP страница: /wrk/wrk.REP.Plan.cls
Область: ERR
Класс: wrk.REP.Plan

А чем отличается attribute от element ?

----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36286023
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотри внимательно что я написал и что ты
они отличаются тем что структура xml файла будет различной, попробуй когда исправишь ошибку
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36286098
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Заменил экспрессион на фиелд... Это я с примера копировал...

Код: 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.
/// 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="Plan" 
	sql="
		Select
			wrk.Plan_KvrToStr(Plan) as Kvrt,
			Subject->Name as Tema,
			wrk.Job_AllMember(ID) as Member,
			Name,
			Task->Text as Text,
			wrk.sys_Month(dEnd,1) as Brk
		From
			wrk.Job
		Where
			Plan=?
		Order by 
			Subject->Prio,
			dEnd
	"
>
<parameter expression='..idItem'/>
<group name='gPlan' breakOnField='Kvrt'>
	<attribute name='tKvrt' field='Kvrt' />
	<group name='gTema' breakOnField='Tema'>
		<attribute name='tTema' field='Tema' />
		<group name='gJob'>
			<element name='tMember' field='Member' />
			<element name='tName' field='Name' />
			<element name='tText' field='Text' />
			<element name='tBrk' field='Brk' />
		</group>
	</group>
</group>
<!-- add definition of the report here. -->
</report>
}

В браузере показывается только текс по элементам группы gJob.

Как теперь это все в ХТМЛ показать?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN. Report научите делать отчеты...
    #36286136
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нука прикрепи ка ентот xml, хочу поглядеть
...
Рейтинг: 0 / 0
25 сообщений из 89, страница 1 из 4
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN. Report научите делать отчеты...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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