...
Rapor içeriğine iletilen nesne tipini bilmenin ve buna göre raporu düzenlemeniz gerekmektedir. GEODI Pro ile oluşturacağınız raporlarda makro data nesnesi GeodiEntry Array'dir. Mobidi Server Raporları için nesne MobidiEntry Array'dir.
Sunucu tag (Kontrol) kullanımı
...
Array içeriğindeki her bir item'a ulaşmak için dcc:Repeater kullanılmalıdır. Repeater data içeriğinde verilen koleksiyonu gezmenizi sağlar. data değeri verilmezse aktif veriyi gezmeye çalışır. Repeater içerisinde data gezilen array elemanı olarak değişir. Repater dışındaki nesneye ulaşmak için context.Parent kullanılabilir. Repater "data" özelliği sadece makro ile çalıştığından = veya [= beklemez.
MyReport.html
Code Block |
---|
language | xml | title | MyReport.html |
---|
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dokümanlarınız</title>
</head>
<body>
<ul>
<dcc:repeater>
<li>[=d.OutputGeodiContent.DisplayName]</li>
</dcc:repeater>
</ul>
</body>
</html>
|
Repater tag'i içerisinde Repater tarafından ismi bilinen panel nesneleri kullanılarak hiç veri bulunmaması durumunda özel mesajlar verilebilir.
MyReport.html
Code Block |
---|
language | xml |
---|
title | MyReport.html |
---|
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dokümanlarınız</title>
</head>
<body>
<dcc:repeater>
<dcc:panel name="empty">
Hiç içerik bulunamadı.
</dcc:panel>
<dcc:panel name="header">
<ul>
</dcc:panel>
<dcc:panel name="body">
<li>[=d.OutputGeodiContent.DisplayName]</li>
</dcc:panel>
<dcc:panel name="footer">
</ul>
</dcc:panel>
</dcc:repeater>
</body>
</html>
|
İç içe kontrol kullanımı
MyReport.html
Code Block |
---|
language | xml | title | MyReport.html |
---|
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dokümanlarınız</title>
</head>
<body>
<ul>
<dcc:repeater>
<li>
[=d.OutputGeodiContent.DisplayName] <br>
Benzeyen Dokümanlar
<ul>
<dcc:repeater data='d.WS.Query.QueryForDocuments(d.WS.ToQuery("similar:(docid:"+(d.OutputGeodiContent.SystemContentID)+")"))'>
[=d.OutputGeodiContent.DisplayName]
</dcc:repeater>
</ul>
</li>
</dcc:repeater>
</body>
</html>
|
Kontrol visible koşulu
Tüm dcc elementlerinde makro destekli "visible" özelliği bulunur. Bu özellik yardımı içerek gösteriminde kural tanımlayabilirsiniz. Javascript üzerinde kural işlemenizden farklı olarak bu kurala uymayan element istemciye iletilmez. Olası açıkların önüne geçilmiş olur.
MyReport.html
Code Block |
---|
language | xml | title | MyReport.html |
---|
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dokümanlarınız</title>
</head>
<body>
<ul>
<dcc:repeater>
<li>[=d.OutputGeodiContent.DisplayName]</li>
<dcc:panel visible='=c["geodi"].WsHasPermission("GEODI.WS.EDIT") && !string.IsNullOrEmpty(d.OutputGeodiContent.ScanError)'>
<div>
Bu projeyi düzenleyebilirsiniz. Bu içeriğe ait tarama hatası var : [=d.OutputGeodiContent.ScanError]
</div>
</dcc:panel>
</dcc:repeater>
</ul>
</body>
</html>
|
Rapor dönüş tipi düzenleme
jSettings dosyası ile dönüş tipini değiştirebilirsiniz. Bu yolla Rapor linki ile servis sunabilir veya farklı formatlarda içerikler oluşturulup indirilebilmesini sağlayabilirsiniz. html yerine bir txt veya xmld dosyası indirilmesini sağlayabilirsiniz.
Bu örnek ile Alınan Rapor RSS formatında olacaktır. Raporun linkini paylaşarak RSS Servisi sunulabilir.
Code Block |
---|
language | js | title | MyRSSReport.jSettings |
---|
|
{
ID:"MyRSS",
DisplayName:"[$.en:My RSS Report;tr:Benim RSS Raporum]",
IconName:"Layer/newspaper",
__type: "Factory.ActionFactory:HTMLReporter",
ActionTargets:"*",
ConditionMacro:'c.HasPermission("DECE.SYSTEMMANAGER")',
ForcedExtension:"xml"
} |
Code Block |
---|
language | xml |
---|
title | MyRSSReport.html |
---|
|
<rss version="2.0">
<channel>
<title>GEODI</title>
<link>[=c.ResolveUrl("~/")]</link>
<dcc:repeater>
<item>
<title>[=HttpUtility.HtmlEncode(d.OutputGeodiContent.DisplayName)]</title>
<link>[=c["geodi.link"\].ViewerLink(d)]</link>
<description>[=HttpUtility.HtmlEncode(d.EntryBackRef.OutputSummary)]</description>
</item>
</dcc:repeater>
</channel>
</rss>
|
2 veya Daha Fazla Geçiş
Rapor başında özet, sonrasında detay gibi bir özelliği birden çok repeater kullanarak gerçekleyebilirsiniz. Her bir repeater için farklı data nesnesi kullanmak da mümkündür.
Code Block |
---|
<dcc:repeater Data='=c.GroupBy(data,...)">
...
</dcc:repeater>
<dcc:repeater>
..
</dcc:repeater> |