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

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

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

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
02.11.2009, 11:46
    #36285467
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
ну это же элементарно "Ватсон"
смотри SAMPLES ZENApp.MyReport.cls
...
Рейтинг: 0 / 0
02.11.2009, 11:57
    #36285504
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
Если это действительно элементарно - значит это можно прямо тут и быстренько рассказать/показать.
На это и расчитываю...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
02.11.2009, 12:24
    #36285598
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
пока с десяток отчетов не накатаешь не разберешься
совет №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
02.11.2009, 12:46
    #36285682
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
Ymka2007 , сейчас пока только данные вносят... Не по чем делать отчет.

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

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

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

Код: 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
02.11.2009, 13:49
    #36285851
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
Т.о. получаю пока вот это...

Код: 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
02.11.2009, 13:52
    #36285864
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
krvsa План на <такой-то квартал>

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

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

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

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

Код: 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
02.11.2009, 14:22
    #36285959
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
далее, если проверка 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
02.11.2009, 14:30
    #36285985
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
Написал так...

Код: 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
02.11.2009, 14:41
    #36286023
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
смотри внимательно что я написал и что ты
они отличаются тем что структура xml файла будет различной, попробуй когда исправишь ошибку
...
Рейтинг: 0 / 0
02.11.2009, 15:02
    #36286098
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
Ага. Заменил экспрессион на фиелд... Это я с примера копировал...

Код: 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
02.11.2009, 15:13
    #36286136
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN. Report научите делать отчеты...
нука прикрепи ка ентот xml, хочу поглядеть
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN. Report научите делать отчеты... / 25 сообщений из 89, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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