Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

Table of Contents

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
languagexmltitleMyReport.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
languagexml
titleMyReport.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
title
languagexmlMyReport.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
title
languagexmlMyReport.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.

MyRSSReport.jSettings
Code Block
title
languagejsMyRSSReport.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"
	
}


MyRSSReport.html
Code Block
languagexml
titleMyRSSReport.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>