Notlar alanı xml yolu üzerinde çoklu olarak tutulmaktadır ve ilk girilen not değeri için aşağıdaki gibi Template[last()] template içerisine last() indexi yazılarak alınır. son not değeri için 1 değeri kullanılır. 

Not alanına hiç not yazılmama ihtimalini if kontrolü ile kontrol ederek değere ulaşmak gereklidir aksi takdirde henüz oluşmamış detay yollar sebebi ile script hata alacaktır. Bu kontrol ilgili yolun içerisindeki satır sayısını Count ile hesaplayarak 0 dan farklı olduğu durumlarda çalışmasını sağlar. Bu kontrolü Equals ile sağlamaktadır. 

Örnek form verisi
	<formData>
	<Notlar>
    	<Template>
			<id/>
			<Author/>
			<Date/>
			<Description/>
    	</Template>
    	<Data>
			<Template guid="{00000000-0000-0000-0000-000000000000}"><id/>
				<Author/>
				<Date/>
				<Description/>
			</Template>
			<Template guid="2ca8d4e9-adea-4fbf-a7c4-3020a223f112"><id>92dcb1a7-cf4e-4277-8fd5-e8e75f77f8aa</id>
				<Author>İPEK ARAS</Author>
				<Date>2017-03-08T08:56:39.0923283Z</Date>
				<Description>son yorum</Description>
			</Template>
			<Template guid="1ec1ce97-2aff-432a-bf11-195c43f84577">
				<id>92dcb1a7-cf4e-4277-8fd5-e8e75f77f8aa</id>
				<Author>İPEK ARAS</Author>
				<Date>2017-03-08T08:56:32.9927283Z</Date>
				<Description>test</Description>
			</Template>
			<Template guid="d0a05cd0-cc14-4f38-b590-a2e633a53885">
				<id>92dcb1a7-cf4e-4277-8fd5-e8e75f77f8aa</id>
				<Author>İPEK ARAS</Author>
				<Date>2017-03-08T08:56:29.1707283Z</Date>
				<Description>bu bir test</Description>
			</Template>
    	</Data>
	</Notlar>
</formData>
Örnek Sentaks
<SetVariable Name="$(PNotalani)">
   <Value Culture="" Target="None" />
</SetVariable>
<If>
 <Then>
    <Condition>
      <NotEquals>
        <Count><![CDATA[/*/Notlar/Details/Template]]></Count>
        <Value Culture="" Target="None">0</Value>
      </NotEquals>
    </Condition>
    <Perform>
      <SetVariable Name="$(PNotalani)">
        <Value Culture="" Target="None">eval::/*/Notlar/Details/Template[last()]/Description</Value>
      </SetVariable>
    </Perform>
 </Then>
</If>

 

Notlar alanına girilen her not değeri xml yolunun en başına eklendiği için ilk notu bulmak için last() indexi kullanılır ve bu değeri alarak PNotalani değerine set edebilirsiniz. 

İlk girilen notu alma
<SetVariable Name="$(PNotalani)">
   <Value Culture="" Target="None">eval::/*/Notlar/Details/Template[last()]/Description</Value>
</SetVariable>

 

Notlar alanına girilen her not değeri xml yolunun en başına eklendiği için ilk notu bulmak için 1 indexi kullanılır ve bu değeri alarak PNotalani değerine set edebilirsiniz. 

Son girilen notu alma
<SetVariable Name="$(PNotalani)">
   <Value Culture="" Target="None">eval::/*/Notlar/Details/Template[1]/Description</Value>
</SetVariable>

 

ForEach kontrolü sayesinde tüm xml yolu üzerinde dönerek girilen yorumlar aralara boşluk Character bırakarak StringConcat işlemi ile birleştirilir.  PNotalani değerine set edebilirsiniz. 

Son girilen notu alma
<ForEach Node="/*/Notlar/Details/Template">
	<SetVariable Name="$(PNotalani)">
   		<Value Culture="" Target="None">eval::./Description</Value>
   		<Character Type="Space" />
   		<Value Culture="" Target="None">$(PNotalani)</Value>
	</SetVariable>
</ForEach>

 

Ekran görüntüleri aşağıdaki gibidir. 

Ayrıca Bakınız

ForEach

SetVariable

Character

Equals

Form Verisi

  • No labels